From fda4d02f946dcef8b6896c8798c318876de0138d Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Tue, 10 Mar 2015 18:08:31 -0500 Subject: [PATCH] Left-pad odd length hex inputs and tests --- rpc/util.go | 3 +++ rpc/util_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 rpc/util_test.go diff --git a/rpc/util.go b/rpc/util.go index fb4efdb45f..a0d858a678 100644 --- a/rpc/util.go +++ b/rpc/util.go @@ -132,6 +132,9 @@ func fromHex(s string) []byte { if s[0:2] == "0x" { s = s[2:] } + if len(s)%2 == 1 { + s = "0" + s + } return ethutil.Hex2Bytes(s) } return nil diff --git a/rpc/util_test.go b/rpc/util_test.go new file mode 100644 index 0000000000..b0a4979b5a --- /dev/null +++ b/rpc/util_test.go @@ -0,0 +1,25 @@ +package rpc + +import ( + "bytes" + "testing" +) + +//fromHex +func TestFromHex(t *testing.T) { + input := "0x01" + expected := []byte{1} + result := fromHex(input) + if bytes.Compare(expected, result) != 0 { + t.Errorf("Expected % x got % x", expected, result) + } +} + +func TestFromHexOddLength(t *testing.T) { + input := "0x1" + expected := []byte{1} + result := fromHex(input) + if bytes.Compare(expected, result) != 0 { + t.Errorf("Expected % x got % x", expected, result) + } +}