From 6661bc35efc9c5d5a874e42558d568d9aa183fee Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Thu, 26 Mar 2015 17:27:29 +0100 Subject: Accept number or string for BlockFilterArgs to/fromBlock --- rpc/args.go | 19 +++++++++++-------- rpc/args_test.go | 6 +++--- 2 files changed, 14 insertions(+), 11 deletions(-) (limited to 'rpc') 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 { diff --git a/rpc/args_test.go b/rpc/args_test.go index 0c7360c53..2622891b9 100644 --- a/rpc/args_test.go +++ b/rpc/args_test.go @@ -759,10 +759,10 @@ func TestBlockFilterArgsWords(t *testing.T) { } } -func TestBlockFilterArgsNums(t *testing.T) { +func TestBlockFilterArgsBool(t *testing.T) { input := `[{ - "fromBlock": 2, - "toBlock": 3 + "fromBlock": true, + "toBlock": false }]` args := new(BlockFilterArgs) -- cgit v1.2.3