From 1cd5bf080ea82caeef8bebb4f0e46a47ee647f55 Mon Sep 17 00:00:00 2001 From: lmittmann Date: Thu, 22 Aug 2019 11:45:07 +0200 Subject: [PATCH] common: unify hex prefix check code (#19937) --- common/bytes.go | 10 ++++------ common/types.go | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/common/bytes.go b/common/bytes.go index c82e616241..910c97d3c1 100644 --- a/common/bytes.go +++ b/common/bytes.go @@ -43,10 +43,8 @@ func ToHexArray(b [][]byte) []string { // FromHex returns the bytes represented by the hexadecimal string s. // s may be prefixed with "0x". func FromHex(s string) []byte { - if len(s) > 1 { - if s[0:2] == "0x" || s[0:2] == "0X" { - s = s[2:] - } + if has0xPrefix(s) { + s = s[2:] } if len(s)%2 == 1 { s = "0" + s @@ -65,8 +63,8 @@ func CopyBytes(b []byte) (copiedBytes []byte) { return } -// hasHexPrefix validates str begins with '0x' or '0X'. -func hasHexPrefix(str string) bool { +// has0xPrefix validates str begins with '0x' or '0X'. +func has0xPrefix(str string) bool { return len(str) >= 2 && str[0] == '0' && (str[1] == 'x' || str[1] == 'X') } diff --git a/common/types.go b/common/types.go index 98c83edd4f..5cba4e9f3d 100644 --- a/common/types.go +++ b/common/types.go @@ -193,7 +193,7 @@ func HexToAddress(s string) Address { return BytesToAddress(FromHex(s)) } // IsHexAddress verifies whether a string can represent a valid hex-encoded // Ethereum address or not. func IsHexAddress(s string) bool { - if hasHexPrefix(s) { + if has0xPrefix(s) { s = s[2:] } return len(s) == 2*AddressLength && isHex(s)