mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-24 13:46:43 +00:00
fix address checking used in CLI
This commit is contained in:
parent
4b28705df4
commit
d4d1b8c1d8
1 changed files with 15 additions and 4 deletions
|
|
@ -23,9 +23,14 @@ import (
|
|||
"encoding/hex"
|
||||
"fmt"
|
||||
"math/big"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
hexRe = regexp.MustCompile("^(0x)?([a-fA-f0-9]{2})+$")
|
||||
)
|
||||
|
||||
func ToHex(b []byte) string {
|
||||
hex := Bytes2Hex(b)
|
||||
// Prefer output of "0x0" instead of "0x"
|
||||
|
|
@ -139,8 +144,14 @@ func HasHexPrefix(str string) bool {
|
|||
}
|
||||
|
||||
func IsHex(str string) bool {
|
||||
l := len(str)
|
||||
return l >= 4 && l%2 == 0 && str[0:2] == "0x"
|
||||
return hexRe.MatchString(str)
|
||||
}
|
||||
|
||||
func NormaliseHex(str string) (string, bool) {
|
||||
if HasHexPrefix(str) {
|
||||
str = str[2:]
|
||||
}
|
||||
return str, IsHex(str)
|
||||
}
|
||||
|
||||
func Bytes2Hex(d []byte) string {
|
||||
|
|
@ -202,8 +213,8 @@ func ParseData(data ...interface{}) (ret []byte) {
|
|||
switch t := item.(type) {
|
||||
case string:
|
||||
var str []byte
|
||||
if IsHex(t) {
|
||||
str = Hex2Bytes(t[2:])
|
||||
if n, ok := NormaliseHex(t); ok {
|
||||
str = Hex2Bytes(n)
|
||||
} else {
|
||||
str = []byte(t)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue