From edfd2757d9d958dca936fe38efe350cf60b2c3ce Mon Sep 17 00:00:00 2001
From: Taylor Gerring <taylor.gerring@gmail.com>
Date: Thu, 2 Apr 2015 12:52:25 +0200
Subject: [PATCH] Better decoding of uint*

---
 rpc/types.go | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/rpc/types.go b/rpc/types.go
index 205b58b0a..0789a9901 100644
--- a/rpc/types.go
+++ b/rpc/types.go
@@ -101,11 +101,15 @@ func newHexData(input interface{}) *hexdata {
 	case int16:
 		d.data = big.NewInt(int64(input)).Bytes()
 	case uint16:
-		d.data = big.NewInt(int64(input)).Bytes()
+		buff := make([]byte, 8)
+		binary.BigEndian.PutUint16(buff, input)
+		d.data = buff
 	case int32:
 		d.data = big.NewInt(int64(input)).Bytes()
 	case uint32:
-		d.data = big.NewInt(int64(input)).Bytes()
+		buff := make([]byte, 8)
+		binary.BigEndian.PutUint32(buff, input)
+		d.data = buff
 	case string: // hexstring
 		d.data = common.Big(input).Bytes()
 	default:
-- 
GitLab