From c10734cc7c5e2c0cbf6d31c8894944fe51c53bf2 Mon Sep 17 00:00:00 2001 From: Satya Date: Fri, 4 Aug 2023 20:28:44 +0800 Subject: [PATCH] fix: Parsing error due to Special.BREAK in required sig array. --- .../model/serializers/TransactionBodySerializer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/bloxbean/cardano/yaci/core/model/serializers/TransactionBodySerializer.java b/core/src/main/java/com/bloxbean/cardano/yaci/core/model/serializers/TransactionBodySerializer.java index 73fe9b4..5390394 100644 --- a/core/src/main/java/com/bloxbean/cardano/yaci/core/model/serializers/TransactionBodySerializer.java +++ b/core/src/main/java/com/bloxbean/cardano/yaci/core/model/serializers/TransactionBodySerializer.java @@ -2,7 +2,7 @@ import co.nstant.in.cbor.model.*; import co.nstant.in.cbor.model.Map; -import com.bloxbean.cardano.client.util.AssetUtil; +import com.bloxbean.cardano.client.api.util.AssetUtil; import com.bloxbean.cardano.yaci.core.model.*; import com.bloxbean.cardano.yaci.core.model.certs.Certificate; import com.bloxbean.cardano.yaci.core.protocol.Serializer; @@ -146,6 +146,9 @@ public TransactionBody deserializeDI(DataItem di) { if (collateralArray != null) { Set collateral = new HashSet<>(); for (DataItem inputItem : collateralArray.getDataItems()) { + if (inputItem == Special.BREAK) + continue; + TransactionInput ti = TransactionInputSerializer.INSTANCE.deserializeDI(inputItem); collateral.add(ti); } @@ -157,6 +160,9 @@ public TransactionBody deserializeDI(DataItem di) { if (requiredSignerArray != null) { Set requiredSigners = new HashSet<>(); for (DataItem requiredSigDI: requiredSignerArray.getDataItems()) { + if (requiredSigDI == Special.BREAK) + continue; + ByteString requiredSigBS = (ByteString) requiredSigDI; requiredSigners.add(HexUtil.encodeHexString(requiredSigBS.getBytes())); } @@ -194,6 +200,9 @@ public TransactionBody deserializeDI(DataItem di) { if (referenceInputsArray != null) { Set referenceInputs = new LinkedHashSet<>(); for (DataItem inputItem : referenceInputsArray.getDataItems()) { + if (inputItem == Special.BREAK) + continue; + TransactionInput ti = TransactionInputSerializer.INSTANCE.deserializeDI(inputItem); referenceInputs.add(ti); }