From 530ab6b8fc9e7ea2b784dbd3f16d0272d227f6d6 Mon Sep 17 00:00:00 2001
From: Nick Savers <nicksavers@gmail.com>
Date: Tue, 20 May 2014 13:02:37 +0200
Subject: [PATCH] Re-arranged transaction RLP encoding...

According to latest Yellow Paper specs and conform other clients
https://github.com/ethereum/latexpaper/commit/4794642e51ac1884e5e1af8a18ebc83aca115d64
---
 ethchain/transaction.go | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ethchain/transaction.go b/ethchain/transaction.go
index 8ea4704cb..c18ff7c53 100644
--- a/ethchain/transaction.go
+++ b/ethchain/transaction.go
@@ -109,10 +109,10 @@ func (tx *Transaction) Sign(privk []byte) error {
 	return nil
 }
 
-// [ NONCE, VALUE, GASPRICE, GAS, TO, DATA, V, R, S ]
-// [ NONCE, VALUE, GASPRICE, GAS, 0, CODE, INIT, V, R, S ]
+// [ NONCE, GASPRICE, GAS, TO, VALUE, DATA, V, R, S ]
+// [ NONCE, GASPRICE, GAS, 0, VALUE, CODE, INIT, V, R, S ]
 func (tx *Transaction) RlpData() interface{} {
-	data := []interface{}{tx.Nonce, tx.Value, tx.GasPrice, tx.Gas, tx.Recipient, tx.Data}
+	data := []interface{}{tx.Nonce, tx.GasPrice, tx.Gas, tx.Recipient, tx.Value, tx.Data}
 
 	if tx.contractCreation {
 		data = append(data, tx.Init)
@@ -135,10 +135,10 @@ func (tx *Transaction) RlpDecode(data []byte) {
 
 func (tx *Transaction) RlpValueDecode(decoder *ethutil.Value) {
 	tx.Nonce = decoder.Get(0).Uint()
-	tx.Value = decoder.Get(1).BigInt()
-	tx.GasPrice = decoder.Get(2).BigInt()
-	tx.Gas = decoder.Get(3).BigInt()
-	tx.Recipient = decoder.Get(4).Bytes()
+	tx.GasPrice = decoder.Get(1).BigInt()
+	tx.Gas = decoder.Get(2).BigInt()
+	tx.Recipient = decoder.Get(3).Bytes()
+	tx.Value = decoder.Get(4).BigInt()
 	tx.Data = decoder.Get(5).Bytes()
 
 	// If the list is of length 10 it's a contract creation tx
-- 
GitLab