From e2be467535d32191a0a611f9b18f6619e9584e60 Mon Sep 17 00:00:00 2001 From: nicksavers Date: Wed, 21 May 2014 00:11:05 +0200 Subject: [PATCH] Fix sending Transaction to CPP client --- .../src/main/java/org/ethereum/core/Transaction.java | 9 +++++++-- .../src/main/java/org/ethereum/gui/PayOutDialog.java | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ethereumj-core/src/main/java/org/ethereum/core/Transaction.java b/ethereumj-core/src/main/java/org/ethereum/core/Transaction.java index 150253f2..a02a6a56 100644 --- a/ethereumj-core/src/main/java/org/ethereum/core/Transaction.java +++ b/ethereumj-core/src/main/java/org/ethereum/core/Transaction.java @@ -8,6 +8,7 @@ import org.ethereum.util.RLPItem; import org.ethereum.util.RLPList; import org.ethereum.util.Utils; import org.spongycastle.util.BigIntegers; +import org.spongycastle.util.encoders.Hex; import java.util.Arrays; @@ -256,8 +257,12 @@ public class Transaction { byte[] data = RLP.encodeElement(this.data); byte[] v = RLP.encodeByte( signature.v ); - byte[] r = RLP.encodeElement(BigIntegers.asUnsignedByteArray(signature.r)); - byte[] s = RLP.encodeElement(BigIntegers.asUnsignedByteArray(signature.s)); + byte[] rBytes = BigIntegers.asUnsignedByteArray(signature.r); + System.out.println(Hex.toHexString(rBytes)); + byte[] r = RLP.encodeElement(rBytes); + byte[] sBytes = BigIntegers.asUnsignedByteArray(signature.s); + System.out.println(Hex.toHexString(sBytes)); + byte[] s = RLP.encodeElement(sBytes); if(Arrays.equals(this.receiveAddress, new byte[0])) { byte[] init = RLP.encodeElement(this.init); diff --git a/ethereumj-core/src/main/java/org/ethereum/gui/PayOutDialog.java b/ethereumj-core/src/main/java/org/ethereum/gui/PayOutDialog.java index e41e3931..297108bb 100644 --- a/ethereumj-core/src/main/java/org/ethereum/gui/PayOutDialog.java +++ b/ethereumj-core/src/main/java/org/ethereum/gui/PayOutDialog.java @@ -5,6 +5,7 @@ import org.ethereum.core.Transaction; import org.ethereum.crypto.HashUtil; import org.ethereum.manager.MainData; import org.ethereum.net.client.ClientPeer; +import org.spongycastle.util.BigIntegers; import org.spongycastle.util.encoders.Hex; import java.awt.*; @@ -70,8 +71,8 @@ class PayOutDialog extends JDialog { byte[] gasPrice= Hex.decode("09184e72a000"); byte[] gas = Hex.decode("4255"); - Transaction tx = new Transaction(null, value.toByteArray(), - receiveAddress.getAddress(), gasPrice, gas, null); + Transaction tx = new Transaction(null, gasPrice, gas, + receiveAddress.getAddress(), BigIntegers.asUnsignedByteArray(value), null); try { tx.sign(senderPrivKey);