Skip to content
This repository has been archived by the owner on Feb 19, 2024. It is now read-only.

Commit

Permalink
Merge pull request #212 from radixdlt/hotfix/fix-rris-returned
Browse files Browse the repository at this point in the history
Hotfix/fix rris returned
  • Loading branch information
talekhinezh authored Apr 23, 2021
2 parents 920fb40 + 4ee051e commit cb59670
Show file tree
Hide file tree
Showing 34 changed files with 185 additions and 163 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public Supplier<Balances> initial() {
public BiFunction<Balances, TokensParticle, Balances> outputReducer() {
return (balance, p) -> {
if (p.getAddress().equals(address)) {
return balance.add(p.getRri(), p.getAmount());
return balance.add(p.getResourceAddr(), p.getAmount());
}
return balance;
};
Expand All @@ -68,7 +68,7 @@ public BiFunction<Balances, TokensParticle, Balances> outputReducer() {
public BiFunction<Balances, TokensParticle, Balances> inputReducer() {
return (balance, p) -> {
if (p.getAddress().equals(address)) {
return balance.remove(p.getRri(), p.getAmount());
return balance.remove(p.getResourceAddr(), p.getAmount());
}
return balance;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ private SubstateCacheRegister<?> registeredValidator(@Self RadixAddress self) {
private SubstateCacheRegister<?> registeredSubstate(@Self RadixAddress self) {
return new SubstateCacheRegister<>(
TokensParticle.class,
p -> p.getAddress().equals(self) && p.getRri().isSystem()
p -> p.getAddress().equals(self) && p.getResourceAddr().isSystem()
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public Supplier<Integer> initial() {
public BiFunction<Integer, TokensParticle, Integer> outputReducer() {
return (count, p) -> {
if (p.getAddress().equals(address)
&& p.getRri().isSystem()
&& p.getResourceAddr().isSystem()
&& p.getAmount().compareTo(fee.multiply(UInt256.TWO)) > 0) {
return count + 1;
}
Expand All @@ -57,7 +57,7 @@ public BiFunction<Integer, TokensParticle, Integer> outputReducer() {
public BiFunction<Integer, TokensParticle, Integer> inputReducer() {
return (count, p) -> {
if (p.getAddress().equals(address)
&& p.getRri().isSystem()
&& p.getResourceAddr().isSystem()
&& p.getAmount().compareTo(fee.multiply(UInt256.TWO)) > 0) {
return count - 1;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package com.radixdlt.client.handler;

import com.radixdlt.crypto.HashUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.bouncycastle.util.encoders.Hex;
Expand All @@ -37,7 +38,6 @@
import com.radixdlt.client.store.TokenBalance;
import com.radixdlt.client.store.TokenDefinitionRecord;
import com.radixdlt.client.store.berkeley.BalanceEntry;
import com.radixdlt.constraintmachine.ConstraintMachine;
import com.radixdlt.crypto.ECDSASignature;
import com.radixdlt.crypto.ECKeyUtils;
import com.radixdlt.crypto.ECPublicKey;
Expand Down Expand Up @@ -271,7 +271,7 @@ private List<TransactionAction> mergeMessageAction(org.json.JSONArray params, Li
}

private Result<ECDSASignature> toRecoverable(byte[] blob, ECDSASignature signature, ECPublicKey publicKey) {
return ECKeyUtils.toRecoverable(signature, ConstraintMachine.computeHashToSignFromBytes(blob).asBytes(), publicKey);
return ECKeyUtils.toRecoverable(signature, HashUtils.sha256(blob).asBytes(), publicKey);
}

private Result<byte[]> parseBlob(JSONObject request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package com.radixdlt.client.service;

import com.google.inject.Inject;
import com.radixdlt.client.Rri;
import com.radixdlt.client.api.TransactionAction;
import com.radixdlt.client.handler.ActionParser;
import com.radixdlt.client.store.ClientApiStore;
Expand Down Expand Up @@ -70,7 +71,7 @@ public Result<List<TokenBalance>> getTokenBalances(RadixAddress radixAddress) {

public Result<TokenDefinitionRecord> getNativeTokenDescription() {
return clientApiStore.getTokenDefinition(REAddr.ofNativeToken())
.flatMap(r -> clientApiStore.getTokenSupply(REAddr.ofNativeToken()).map(r::withSupply));
.flatMap(r -> clientApiStore.getTokenSupply(Rri.of(r.getSymbol(), REAddr.ofNativeToken())).map(r::withSupply));
}

public Result<List<TransactionAction>> parse(JSONArray actions) {
Expand Down Expand Up @@ -110,7 +111,7 @@ private static <T> T findLast(T first, T second) {

private Result<TokenDefinitionRecord> withSupply(String rri, TokenDefinitionRecord definition) {
return definition.isMutable()
? clientApiStore.parseRri(rri).flatMap(clientApiStore::getTokenSupply).map(definition::withSupply)
? clientApiStore.getTokenSupply(rri).map(definition::withSupply)
: Result.ok(definition);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ private static ActionEntry create(ActionType type, String from, String to, UInt2
}

public static ActionEntry transfer(RadixAddress user, TransferToken transferToken) {
return create(ActionType.TRANSFER, user.toString(), transferToken.to().toString(), transferToken.amount(), transferToken.rri());
return create(ActionType.TRANSFER, user.toString(), transferToken.to().toString(), transferToken.amount(), transferToken.addr());
}

public static ActionEntry burn(RadixAddress user, BurnToken burnToken) {
return create(ActionType.BURN, user.toString(), null, burnToken.amount(), burnToken.rri());
return create(ActionType.BURN, user.toString(), null, burnToken.amount(), burnToken.addr());
}

public static ActionEntry stake(RadixAddress user, StakeTokens stakeToken, REAddr nativeToken) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ public interface ClientApiStore {
*
* @return eventually consistent token supply
*/
Result<UInt384> getTokenSupply(REAddr rri);
Result<UInt384> getTokenSupply(String rri);

/**
* Retrieve token definition. Note that for mutable supply tokens supply is returned zero.
* If actual token supply value is necessary then {@link #getTokenSupply(REAddr)} should be used.
* If actual token supply value is necessary then {@link #getTokenSupply(String)} should be used.
*
* @param rri token for which definition is requested
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.radixdlt.client.store.berkeley.BalanceEntry;
import com.radixdlt.identifiers.REAddr;
import com.radixdlt.serialization.DsonOutput;
import com.radixdlt.serialization.SerializerConstants;
import com.radixdlt.serialization.SerializerDummy;
Expand All @@ -43,30 +42,30 @@ public class TokenBalance {

@JsonProperty("rri")
@DsonOutput(DsonOutput.Output.ALL)
private final REAddr rri;
private final String rri;

@JsonProperty("amount")
@DsonOutput(DsonOutput.Output.ALL)
private final UInt384 amount;

private TokenBalance(REAddr rri, UInt384 amount) {
private TokenBalance(String rri, UInt384 amount) {
this.rri = rri;
this.amount = amount;
}

@JsonCreator
public static TokenBalance create(REAddr rri, UInt384 amount) {
public static TokenBalance create(String rri, UInt384 amount) {
requireNonNull(rri);
requireNonNull(amount);

return new TokenBalance(rri, amount);
}

public static TokenBalance from(BalanceEntry balanceEntry) {
return create(balanceEntry.getRri(), balanceEntry.getAmount());
return create(balanceEntry.rri(), balanceEntry.getAmount());
}

public REAddr getRri() {
public String getRri() {
return rri;
}

Expand Down Expand Up @@ -99,6 +98,6 @@ public String toString() {
}

public JSONObject asJson() {
return jsonObject().put("rri", rri.toString()).put("amount", amount);
return jsonObject().put("rri", rri).put("amount", amount);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ public class TokenDefinitionRecord {
@DsonOutput(DsonOutput.Output.ALL)
private final String name;

@JsonProperty("rri")
@JsonProperty("addr")
@DsonOutput(DsonOutput.Output.ALL)
private final REAddr rri;
private final REAddr addr;

@JsonProperty("description")
@DsonOutput(DsonOutput.Output.ALL)
Expand All @@ -77,7 +77,7 @@ public class TokenDefinitionRecord {
private TokenDefinitionRecord(
String symbol,
String name,
REAddr rri,
REAddr addr,
String description,
UInt384 currentSupply,
String iconUrl,
Expand All @@ -86,7 +86,7 @@ private TokenDefinitionRecord(
) {
this.symbol = symbol;
this.name = name;
this.rri = rri;
this.addr = addr;
this.description = description;
this.currentSupply = currentSupply;
this.iconUrl = iconUrl;
Expand All @@ -98,7 +98,7 @@ private TokenDefinitionRecord(
public static TokenDefinitionRecord create(
@JsonProperty("symbol") String symbol,
@JsonProperty("name") String name,
@JsonProperty("rri") REAddr rri,
@JsonProperty("addr") REAddr addr,
@JsonProperty("description") String description,
@JsonProperty("currentSupply") UInt384 currentSupply,
@JsonProperty("iconUrl") String iconUrl,
Expand All @@ -107,12 +107,12 @@ public static TokenDefinitionRecord create(
) {
Objects.requireNonNull(symbol);
Objects.requireNonNull(name);
Objects.requireNonNull(rri);
Objects.requireNonNull(addr);
Objects.requireNonNull(description);
Objects.requireNonNull(currentSupply);

return new TokenDefinitionRecord(
symbol, name, rri, description, currentSupply, iconUrl == null ? "" : iconUrl, url == null ? "" : url, mutable
symbol, name, addr, description, currentSupply, iconUrl == null ? "" : iconUrl, url == null ? "" : url, mutable
);
}

Expand Down Expand Up @@ -169,7 +169,7 @@ public static TokenDefinitionRecord from(RadixAddress user, CreateMutableToken c
public JSONObject asJson() {
return jsonObject()
.put("name", name)
.put("rri", Rri.of(symbol, rri))
.put("rri", Rri.of(symbol, addr))
.put("symbol", symbol)
.put("description", description)
.put("currentSupply", currentSupply)
Expand All @@ -190,8 +190,12 @@ public boolean isMutable() {
return mutable;
}

public REAddr rri() {
return rri;
public REAddr addr() {
return addr;
}

public String rri() {
return Rri.of(symbol, addr);
}

public UInt384 currentSupply() {
Expand All @@ -203,12 +207,12 @@ public TokenDefinitionRecord withSupply(UInt384 supply) {
return this;
}

return create(symbol, name, rri, description, supply, iconUrl, url, true);
return create(symbol, name, addr, description, supply, iconUrl, url, true);
}

public String toString() {
return String.format("%s{%s:%s:%s:%s:%s:%s:%s}",
this.getClass().getSimpleName(), symbol, name, rri, description, currentSupply, iconUrl, url
this.getClass().getSimpleName(), symbol, name, addr, description, currentSupply, iconUrl, url
);
}

Expand All @@ -223,7 +227,7 @@ public final boolean equals(Object o) {

return mutable == that.mutable
&& name.equals(that.name)
&& rri.equals(that.rri)
&& addr.equals(that.addr)
&& Objects.equals(symbol, that.symbol)
&& Objects.equals(currentSupply, that.currentSupply)
&& Objects.equals(description, that.description)
Expand All @@ -236,6 +240,6 @@ public final boolean equals(Object o) {

@Override
public final int hashCode() {
return Objects.hash(symbol, name, rri, description, currentSupply, iconUrl, url, mutable);
return Objects.hash(symbol, name, addr, description, currentSupply, iconUrl, url, mutable);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ private UInt256 computeFeePaid(REParsedTxn radixEngineTxn) {
.map(REParsedAction::getTxAction)
.filter(BurnToken.class::isInstance)
.map(BurnToken.class::cast)
.filter(t -> t.rri().equals(nativeToken))
.filter(t -> t.addr().equals(nativeToken))
.map(BurnToken::amount)
.reduce(UInt256::add)
.orElse(UInt256.ZERO);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.radixdlt.identifiers.REAddr;
import com.radixdlt.identifiers.RadixAddress;
import com.radixdlt.serialization.DsonOutput;
import com.radixdlt.serialization.SerializerConstants;
Expand All @@ -45,7 +44,7 @@ public class BalanceEntry {

@JsonProperty("rri")
@DsonOutput(DsonOutput.Output.ALL)
private final REAddr rri;
private final String rri;

@JsonProperty("amount")
@DsonOutput(DsonOutput.Output.ALL)
Expand All @@ -56,8 +55,8 @@ public class BalanceEntry {
private final boolean negative;

private BalanceEntry(
RadixAddress owner, RadixAddress delegate, REAddr rri,
UInt384 amount, boolean negative
RadixAddress owner, RadixAddress delegate,
String rri, UInt384 amount, boolean negative
) {
this.owner = owner;
this.delegate = delegate;
Expand All @@ -69,7 +68,7 @@ private BalanceEntry(
public static BalanceEntry createFull(
RadixAddress owner,
RadixAddress delegate,
REAddr rri,
String rri,
UInt384 amount,
boolean negative
) {
Expand All @@ -83,15 +82,15 @@ public static BalanceEntry createFull(
public static BalanceEntry create(
@JsonProperty("owner") RadixAddress owner,
@JsonProperty("delegate") RadixAddress delegate,
@JsonProperty("rri") REAddr rri,
@JsonProperty("rri") String rri,
@JsonProperty("amount") UInt384 amount,
@JsonProperty("negative") boolean negative
) {
return createFull(owner, delegate, rri, amount, negative);
}

public static BalanceEntry createBalance(
RadixAddress owner, RadixAddress delegate, REAddr rri, UInt384 amount
RadixAddress owner, RadixAddress delegate, String rri, UInt384 amount
) {
return createFull(owner, delegate, rri, amount, false);
}
Expand All @@ -104,7 +103,7 @@ public RadixAddress getDelegate() {
return delegate;
}

public REAddr getRri() {
public String rri() {
return rri;
}

Expand Down
Loading

0 comments on commit cb59670

Please sign in to comment.