diff options
author | Bas van Kervel <basvankervel@gmail.com> | 2015-10-29 23:58:23 +0800 |
---|---|---|
committer | Bas van Kervel <basvankervel@gmail.com> | 2015-10-30 00:35:43 +0800 |
commit | 76410df6a21a10dec09ca955b1896ac083853ef7 (patch) | |
tree | 2b40fc8df739be1ecdecf8838dc1fe149836820e | |
parent | 56f8699a6c6bfe613d2ab28c47631a1f4a29e36f (diff) | |
download | go-tangerine-76410df6a21a10dec09ca955b1896ac083853ef7.tar.gz go-tangerine-76410df6a21a10dec09ca955b1896ac083853ef7.tar.zst go-tangerine-76410df6a21a10dec09ca955b1896ac083853ef7.zip |
rpc: return an unsupported error when "pending" was used to create a filter
-rw-r--r-- | rpc/api/args_test.go | 12 | ||||
-rw-r--r-- | rpc/api/eth_args.go | 7 |
2 files changed, 12 insertions, 7 deletions
diff --git a/rpc/api/args_test.go b/rpc/api/args_test.go index 23ae2930d..130315bd9 100644 --- a/rpc/api/args_test.go +++ b/rpc/api/args_test.go @@ -1394,13 +1394,10 @@ func TestBlockFilterArgsDefaults(t *testing.T) { } func TestBlockFilterArgsWords(t *testing.T) { - input := `[{ - "fromBlock": "latest", - "toBlock": "pending" - }]` + input := `[{"fromBlock": "latest", "toBlock": "latest"}]` expected := new(BlockFilterArgs) expected.Earliest = -1 - expected.Latest = -2 + expected.Latest = -1 args := new(BlockFilterArgs) if err := json.Unmarshal([]byte(input), &args); err != nil { @@ -1411,8 +1408,9 @@ func TestBlockFilterArgsWords(t *testing.T) { t.Errorf("Earliest shoud be %#v but is %#v", expected.Earliest, args.Earliest) } - if expected.Latest != args.Latest { - t.Errorf("Latest shoud be %#v but is %#v", expected.Latest, args.Latest) + input = `[{"toBlock": "pending"}]` + if err := json.Unmarshal([]byte(input), &args); err == nil { + t.Errorf("Pending isn't currently supported and should raise an unsupported error") } } diff --git a/rpc/api/eth_args.go b/rpc/api/eth_args.go index 6aca6a663..a406d0817 100644 --- a/rpc/api/eth_args.go +++ b/rpc/api/eth_args.go @@ -714,6 +714,13 @@ func (args *BlockFilterArgs) UnmarshalJSON(b []byte) (err error) { return err } } + + if num == -2 { + return fmt.Errorf("\"pending\" is unsupported") + } else if num < -2 { + return fmt.Errorf("Invalid to block number") + } + args.Latest = num if obj[0].Limit == nil { |