diff --git a/common/bytes.go b/common/bytes.go index 5e553d23c..2d885ac74 100644 --- a/common/bytes.go +++ b/common/bytes.go @@ -9,6 +9,28 @@ import ( "strings" ) +func ToHex(b []byte) string { + hex := Bytes2Hex(b) + // Prefer output of "0x0" instead of "0x" + if len(hex) == 0 { + hex = "0" + } + return "0x" + hex +} + +func FromHex(s string) []byte { + if len(s) > 1 { + if s[0:2] == "0x" { + s = s[2:] + } + if len(s)%2 == 1 { + s = "0" + s + } + return Hex2Bytes(s) + } + return nil +} + type Bytes []byte func (self Bytes) String() string { diff --git a/common/bytes_test.go b/common/bytes_test.go index ec106bf4b..4b00aa49b 100644 --- a/common/bytes_test.go +++ b/common/bytes_test.go @@ -1,6 +1,9 @@ package common import ( + "bytes" + "testing" + checker "gopkg.in/check.v1" ) @@ -191,3 +194,21 @@ func (s *BytesSuite) TestRightPadString(c *checker.C) { c.Assert(resstd, checker.Equals, exp) c.Assert(resshrt, checker.Equals, val) } + +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) + } +} diff --git a/common/common.go b/common/common.go index 155bb5c2a..a61b866c9 100644 --- a/common/common.go +++ b/common/common.go @@ -65,27 +65,6 @@ func DefaultDataDir() string { } } -func ToHex(b []byte) string { - hex := Bytes2Hex(b) - // Prefer output of "0x0" instead of "0x" - if len(hex) == 0 { - hex = "0" - } - return "0x" + hex -} - -func FromHex(s string) []byte { - if len(s) > 1 { - if s[0:2] == "0x" { - s = s[2:] - } - if len(s)%2 == 1 { - s = "0" + s - } - return Hex2Bytes(s) - } - return nil -} func IsWindows() bool { return runtime.GOOS == "windows" } diff --git a/common/common_test.go b/common/common_test.go index c7ba87f90..0fb5c56f0 100644 --- a/common/common_test.go +++ b/common/common_test.go @@ -1,10 +1,8 @@ package common import ( - "bytes" "math/big" "os" - "testing" checker "gopkg.in/check.v1" ) @@ -68,22 +66,3 @@ func (s *CommonSuite) TestLarge(c *checker.C) { c.Assert(adalarge, checker.Equals, "10000E7 Einstein") c.Assert(weilarge, checker.Equals, "100 Babbage") } - -//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) - } -}