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 return
} }
func HasHexPrefix(str string) bool {
l := len(str)
return l >= 2 && str[0:2] == "0x"
}
func IsHex(str string) bool { func IsHex(str string) bool {
l := len(str) l := len(str)
return l >= 4 && l%2 == 0 && str[0:2] == "0x" 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": case "pending":
*number = -2 *number = -2
default: 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 return nil