From b33a5294eaf06a3e952efe1ce4ef810af37d1062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Wed, 29 Nov 2017 02:21:41 +0200 Subject: [PATCH] common: fix hex utils to handle 1 byte address conversions --- common/bytes.go | 9 ++++----- common/bytes_test.go | 13 +++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/common/bytes.go b/common/bytes.go index 66577bbfd..bb40ac1d7 100644 --- a/common/bytes.go +++ b/common/bytes.go @@ -35,12 +35,11 @@ func FromHex(s string) []byte { if s[0:2] == "0x" || s[0:2] == "0X" { s = s[2:] } - if len(s)%2 == 1 { - s = "0" + s - } - return Hex2Bytes(s) } - return nil + if len(s)%2 == 1 { + s = "0" + s + } + return Hex2Bytes(s) } // Copy bytes diff --git a/common/bytes_test.go b/common/bytes_test.go index fc164b13d..71631e6dd 100644 --- a/common/bytes_test.go +++ b/common/bytes_test.go @@ -74,7 +74,7 @@ func TestFromHex(t *testing.T) { expected := []byte{1} result := FromHex(input) if !bytes.Equal(expected, result) { - t.Errorf("Expected % x got % x", expected, result) + t.Errorf("Expected %x got %x", expected, result) } } @@ -83,6 +83,15 @@ func TestFromHexOddLength(t *testing.T) { expected := []byte{1} result := FromHex(input) if !bytes.Equal(expected, result) { - t.Errorf("Expected % x got % x", expected, result) + t.Errorf("Expected %x got %x", expected, result) + } +} + +func TestNoPrefixShortHexOddLength(t *testing.T) { + input := "1" + expected := []byte{1} + result := FromHex(input) + if !bytes.Equal(expected, result) { + t.Errorf("Expected %x got %x", expected, result) } }