DRY up the use of fromHex and put it in ethutil

This commit is contained in:
Maran
2015-03-14 11:39:35 +01:00
parent b927c29469
commit 991993357c
10 changed files with 75 additions and 90 deletions

View File

@@ -64,6 +64,19 @@ func DefaultDataDir() string {
return path.Join(usr.HomeDir, ".ethereum")
}
}
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"
}

View File

@@ -1,8 +1,10 @@
package ethutil
import (
"bytes"
"math/big"
"os"
"testing"
checker "gopkg.in/check.v1"
)
@@ -66,3 +68,22 @@ 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)
}
}