Browse Source

fix hex conversion bug in RPC for byte slices

Gustav Simonsson 10 years ago
parent
commit
037772fc07
1 changed files with 8 additions and 1 deletions
  1. 8 1
      rpc/types.go

+ 8 - 1
rpc/types.go

@@ -18,6 +18,7 @@ package rpc
 
 import (
 	"encoding/binary"
+	"encoding/hex"
 	"encoding/json"
 	"fmt"
 	"math/big"
@@ -117,7 +118,13 @@ func newHexData(input interface{}) *hexdata {
 		binary.BigEndian.PutUint32(buff, input)
 		d.data = buff
 	case string: // hexstring
-		d.data = common.Big(input).Bytes()
+		// aaargh ffs TODO: avoid back-and-forth hex encodings where unneeded
+		bytes, err := hex.DecodeString(strings.TrimPrefix(input, "0x"))
+		if err != nil {
+			d.isNil = true
+		} else {
+			d.data = bytes
+		}
 	default:
 		d.isNil = true
 	}