Detect non-valid strings for blockheight

This commit is contained in:
Taylor Gerring 2015-04-02 15:53:04 +02:00
parent 3908590578
commit aa71e27a3b
2 changed files with 10 additions and 1 deletions

View File

@ -127,6 +127,11 @@ func CopyBytes(b []byte) (copiedBytes []byte) {
return
}
func HasHexPrefix(str string) bool {
l := len(str)
return l >= 2 && str[0:2] == "0x"
}
func IsHex(str string) bool {
l := len(str)
return l >= 4 && l%2 == 0 && str[0:2] == "0x"

View File

@ -41,7 +41,11 @@ func blockHeight(raw interface{}, number *int64) error {
case "pending":
*number = -2
default:
*number = common.String2Big(str).Int64()
if common.HasHexPrefix(str) {
*number = common.String2Big(str).Int64()
} else {
return NewInvalidTypeError("blockNumber", "is not a valid string")
}
}
return nil