From c7019045e5b338b30fc7dd335e8862ee36e91cae Mon Sep 17 00:00:00 2001 From: Antonio Pancorbo <48168255+apancorb@users.noreply.github.com> Date: Thu, 26 Sep 2024 09:23:21 +0000 Subject: [PATCH] feat(peg): rollback to include current serialization logic for state federator Fix failing test after rebase --- .../src/main/java/co/rsk/peg/StateForFederator.java | 9 ++++++--- .../main/java/co/rsk/peg/StateForProposedFederator.java | 8 +++++--- .../test/java/co/rsk/peg/bitcoin/BitcoinUtilsTest.java | 5 +++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/rskj-core/src/main/java/co/rsk/peg/StateForFederator.java b/rskj-core/src/main/java/co/rsk/peg/StateForFederator.java index 97ca6e6debd..02df23f235d 100644 --- a/rskj-core/src/main/java/co/rsk/peg/StateForFederator.java +++ b/rskj-core/src/main/java/co/rsk/peg/StateForFederator.java @@ -25,6 +25,7 @@ import java.util.Objects; import java.util.SortedMap; import org.ethereum.util.RLP; +import org.ethereum.util.RLPList; public class StateForFederator { @@ -52,13 +53,15 @@ public SortedMap getRskTxsWaitingForSignatures() { * @return The RLP-encoded byte array representing the current state. */ public byte[] encodeToRlp() { - return BridgeSerializationUtils.serializeRskTxsWaitingForSignatures( - rskTxsWaitingForSignatures); + byte[] serializedRskTxsWaitingForSignatures = + BridgeSerializationUtils.serializeRskTxsWaitingForSignatures(rskTxsWaitingForSignatures); + return RLP.encodeList(serializedRskTxsWaitingForSignatures); } private static byte[] decodeRlpToMap(byte[] rlpData) { Objects.requireNonNull(rlpData); - return RLP.decode2(rlpData).get(0).getRLPData(); + RLPList rlpList = (RLPList) RLP.decode2(rlpData).get(0); + return rlpList.get(0).getRLPData(); } } diff --git a/rskj-core/src/main/java/co/rsk/peg/StateForProposedFederator.java b/rskj-core/src/main/java/co/rsk/peg/StateForProposedFederator.java index 1f75bcac833..841adcb7e77 100644 --- a/rskj-core/src/main/java/co/rsk/peg/StateForProposedFederator.java +++ b/rskj-core/src/main/java/co/rsk/peg/StateForProposedFederator.java @@ -54,13 +54,15 @@ public Map.Entry getSvpSpendTxWaitingForSignatures() * @return The RLP-encoded byte array representing the current state. */ public byte[] encodeToRlp() { - return BridgeSerializationUtils.serializeRskTxWaitingForSignatures( - svpSpendTxWaitingForSignatures); + byte[] serializedSvpSpendTxWaitingForSignatures = + BridgeSerializationUtils.serializeRskTxWaitingForSignatures(svpSpendTxWaitingForSignatures); + return RLP.encodeList(serializedSvpSpendTxWaitingForSignatures); } private static byte[] decodeRlpToEntry(byte[] rlpData) { Objects.requireNonNull(rlpData); - return RLP.decode2(rlpData).get(0).getRLPData(); + RLPList rlpList = (RLPList) RLP.decode2(rlpData).get(0); + return rlpList.get(0).getRLPData(); } } diff --git a/rskj-core/src/test/java/co/rsk/peg/bitcoin/BitcoinUtilsTest.java b/rskj-core/src/test/java/co/rsk/peg/bitcoin/BitcoinUtilsTest.java index 3bd167f4516..bb40abbfeb3 100644 --- a/rskj-core/src/test/java/co/rsk/peg/bitcoin/BitcoinUtilsTest.java +++ b/rskj-core/src/test/java/co/rsk/peg/bitcoin/BitcoinUtilsTest.java @@ -381,10 +381,11 @@ void removeSignaturesFromTransaction_whenTransactionIsLegacyAndInputsHaveP2shMul "member03", "member04", "member05" - }, true); // using private keys from federation declared above + }, true); // using private keys from federation declared above List inputs = transaction.getInputs(); for (TransactionInput input : inputs) { - BitcoinTestUtils.signTransactionInputFromP2shMultiSig ansaction, + BitcoinTestUtils.signTransactionInputFromP2shMultiSig( + transaction, inputs.indexOf(input), keysToSign );