Browse Source

Important FIX to payment-related isValid()!

Non-native-coin payments (e.g. transfer-asset) didn't build map
for checking whether sender had enough balance.

Also fixed raw layout description for TRANSFER_ASSET.

Also fixed ISSUE_ASSET deserialization to use empty string (instead
of null) for v1 transactions.
split-DB
catbref 6 years ago
parent
commit
2a45e27048
  1. 2
      src/main/java/org/qora/payment/Payment.java
  2. 2
      src/main/java/org/qora/transform/transaction/IssueAssetTransactionTransformer.java
  3. 2
      src/main/java/org/qora/transform/transaction/TransferAssetTransactionTransformer.java

2
src/main/java/org/qora/payment/Payment.java

@ -79,7 +79,7 @@ public class Payment {
return ValidationResult.INVALID_AMOUNT;
// Set or add amount into amounts-by-asset map
amountsByAssetId.compute(paymentData.getAssetId(), (assetId, amount) -> amount == null ? amount : amount.add(paymentData.getAmount()));
amountsByAssetId.compute(paymentData.getAssetId(), (assetId, amount) -> amount == null ? paymentData.getAmount() : amount.add(paymentData.getAmount()));
}
// Check sender has enough of each asset

2
src/main/java/org/qora/transform/transaction/IssueAssetTransactionTransformer.java

@ -76,7 +76,7 @@ public class IssueAssetTransactionTransformer extends TransactionTransformer {
boolean isDivisible = byteBuffer.get() != 0;
// in v2, assets have "data" field
String data = null;
String data = "";
if (timestamp >= BlockChain.getInstance().getQoraV2Timestamp())
data = Serialization.deserializeSizedString(byteBuffer, Asset.MAX_DATA_SIZE);

2
src/main/java/org/qora/transform/transaction/TransferAssetTransactionTransformer.java

@ -32,7 +32,7 @@ public class TransferAssetTransactionTransformer extends TransactionTransformer
layout.add("transaction's groupID", TransformationType.INT);
layout.add("reference", TransformationType.SIGNATURE);
layout.add("asset owner's public key", TransformationType.PUBLIC_KEY);
layout.add("asset's new owner", TransformationType.ADDRESS);
layout.add("asset quantity", TransformationType.ASSET_QUANTITY);
layout.add("asset ID", TransformationType.LONG);
layout.add("fee", TransformationType.AMOUNT);
layout.add("signature", TransformationType.SIGNATURE);

Loading…
Cancel
Save