diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-27 00:27:29 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-27 00:27:29 +0800 |
commit | 6661bc35efc9c5d5a874e42558d568d9aa183fee (patch) | |
tree | be70091cea5dbaa0d14095f99274b5018bb5d32b /rpc/args.go | |
parent | 745dd5b7a517cf0930f96a9b162821d0d631dea9 (diff) | |
download | go-tangerine-6661bc35efc9c5d5a874e42558d568d9aa183fee.tar.gz go-tangerine-6661bc35efc9c5d5a874e42558d568d9aa183fee.tar.zst go-tangerine-6661bc35efc9c5d5a874e42558d568d9aa183fee.zip |
Accept number or string for BlockFilterArgs to/fromBlock
Diffstat (limited to 'rpc/args.go')
-rw-r--r-- | rpc/args.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/rpc/args.go b/rpc/args.go index b23216c98..206472aa2 100644 --- a/rpc/args.go +++ b/rpc/args.go @@ -424,17 +424,20 @@ func (args *BlockFilterArgs) UnmarshalJSON(b []byte) (err error) { return NewInsufficientParamsError(len(obj), 1) } - fromstr, ok := obj[0].FromBlock.(string) - if !ok { - return NewInvalidTypeError("fromBlock", "is not a string") + var num int64 + if err := blockHeight(obj[0].FromBlock, &num); err != nil { + return err + } + if num < 0 { + args.Earliest = -1 //latest block + } else { + args.Earliest = num } - switch fromstr { - case "latest": - args.Earliest = -1 - default: - args.Earliest = int64(common.Big(obj[0].FromBlock.(string)).Int64()) + if err := blockHeight(obj[0].ToBlock, &num); err != nil { + return err } + args.Latest = num tostr, ok := obj[0].ToBlock.(string) if !ok { |