From 2a45e27048938f467edeb2f6a967ff8d39c62419 Mon Sep 17 00:00:00 2001 From: catbref Date: Mon, 25 Mar 2019 11:23:18 +0000 Subject: [PATCH] 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. --- src/main/java/org/qora/payment/Payment.java | 2 +- .../transform/transaction/IssueAssetTransactionTransformer.java | 2 +- .../transaction/TransferAssetTransactionTransformer.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/qora/payment/Payment.java b/src/main/java/org/qora/payment/Payment.java index 509fb002..fd55b0db 100644 --- a/src/main/java/org/qora/payment/Payment.java +++ b/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 diff --git a/src/main/java/org/qora/transform/transaction/IssueAssetTransactionTransformer.java b/src/main/java/org/qora/transform/transaction/IssueAssetTransactionTransformer.java index 6c5b0d86..329cb48c 100644 --- a/src/main/java/org/qora/transform/transaction/IssueAssetTransactionTransformer.java +++ b/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); diff --git a/src/main/java/org/qora/transform/transaction/TransferAssetTransactionTransformer.java b/src/main/java/org/qora/transform/transaction/TransferAssetTransactionTransformer.java index 720f0ed8..6918a217 100644 --- a/src/main/java/org/qora/transform/transaction/TransferAssetTransactionTransformer.java +++ b/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);