diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-27 03:10:31 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-27 03:10:31 +0800 |
commit | 1f1e98f96b57c0c5c7a9350129f67d425a4c6af4 (patch) | |
tree | e2a6a9e8e273fe7240cec9d7c73aa9113a165fa9 | |
parent | 62ebf999bf71ef05e34e234b6e07cc31188970b7 (diff) | |
download | go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.tar go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.tar.gz go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.tar.bz2 go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.tar.lz go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.tar.xz go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.tar.zst go-tangerine-1f1e98f96b57c0c5c7a9350129f67d425a4c6af4.zip |
FilterIdArgs
-rw-r--r-- | rpc/args.go | 11 | ||||
-rw-r--r-- | rpc/args_test.go | 30 |
2 files changed, 37 insertions, 4 deletions
diff --git a/rpc/args.go b/rpc/args.go index 96188d02e..921d8e98c 100644 --- a/rpc/args.go +++ b/rpc/args.go @@ -664,9 +664,8 @@ type FilterIdArgs struct { } func (args *FilterIdArgs) UnmarshalJSON(b []byte) (err error) { - var obj []string - r := bytes.NewReader(b) - if err := json.NewDecoder(r).Decode(&obj); err != nil { + var obj []interface{} + if err := json.Unmarshal(b, &obj); err != nil { return NewDecodeParamError(err.Error()) } @@ -674,7 +673,11 @@ func (args *FilterIdArgs) UnmarshalJSON(b []byte) (err error) { return NewInsufficientParamsError(len(obj), 1) } - args.Id = int(common.Big(obj[0]).Int64()) + var num int64 + if err := numString(obj[0], &num); err != nil { + return err + } + args.Id = int(num) return nil } diff --git a/rpc/args_test.go b/rpc/args_test.go index 9325b1c9b..7bbf729f2 100644 --- a/rpc/args_test.go +++ b/rpc/args_test.go @@ -1056,6 +1056,36 @@ func TestFilterIdArgs(t *testing.T) { } } +func TestFilterIdArgsInvalid(t *testing.T) { + input := `{}` + + args := new(FilterIdArgs) + str := ExpectDecodeParamError(json.Unmarshal([]byte(input), &args)) + if len(str) > 0 { + t.Errorf(str) + } +} + +func TestFilterIdArgsEmpty(t *testing.T) { + input := `[]` + + args := new(FilterIdArgs) + str := ExpectInsufficientParamsError(json.Unmarshal([]byte(input), &args)) + if len(str) > 0 { + t.Errorf(str) + } +} + +func TestFilterIdArgsBool(t *testing.T) { + input := `[true]` + + args := new(FilterIdArgs) + str := ExpectInvalidTypeError(json.Unmarshal([]byte(input), &args)) + if len(str) > 0 { + t.Errorf(str) + } +} + func TestWhsiperFilterArgs(t *testing.T) { input := `[{"topics": ["0x68656c6c6f20776f726c64"], "to": "0x34ag445g3455b34"}]` expected := new(WhisperFilterArgs) |