forked from cerc-io/plugeth
Should on empty params #466
This commit is contained in:
parent
21fca93852
commit
4418e4ea6a
26
rpc/args.go
26
rpc/args.go
@ -188,10 +188,34 @@ type GetBalanceArgs struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
|
func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
|
||||||
if err = UnmarshalRawMessages(b, &args.Address, &args.BlockNumber); err != nil {
|
var obj []interface{}
|
||||||
|
r := bytes.NewReader(b)
|
||||||
|
if err := json.NewDecoder(r).Decode(&obj); err != nil {
|
||||||
return errDecodeArgs
|
return errDecodeArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(obj) < 1 {
|
||||||
|
return errArguments
|
||||||
|
}
|
||||||
|
|
||||||
|
addstr, ok := obj[0].(string)
|
||||||
|
if !ok {
|
||||||
|
return errDecodeArgs
|
||||||
|
}
|
||||||
|
args.Address = addstr
|
||||||
|
|
||||||
|
if len(obj) > 1 {
|
||||||
|
if obj[1].(string) == "latest" {
|
||||||
|
args.BlockNumber = -1
|
||||||
|
} else {
|
||||||
|
args.BlockNumber = ethutil.Big(obj[1].(string)).Int64()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if err = UnmarshalRawMessages(b, &args.Address, &args.BlockNumber); err != nil {
|
||||||
|
// return errDecodeArgs
|
||||||
|
// }
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +43,17 @@ func TestGetBalanceArgs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetBalanceEmptyArgs(t *testing.T) {
|
||||||
|
input := `[]`
|
||||||
|
|
||||||
|
args := new(GetBalanceArgs)
|
||||||
|
err := json.Unmarshal([]byte(input), &args)
|
||||||
|
if err == nil {
|
||||||
|
t.Error("Expected error but didn't get one")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetBlockByHashArgs(t *testing.T) {
|
func TestGetBlockByHashArgs(t *testing.T) {
|
||||||
input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]`
|
input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]`
|
||||||
expected := new(GetBlockByHashArgs)
|
expected := new(GetBlockByHashArgs)
|
||||||
@ -418,6 +429,16 @@ func TestFilterStringArgs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFilterStringEmptyArgs(t *testing.T) {
|
||||||
|
input := `[]`
|
||||||
|
|
||||||
|
args := new(FilterStringArgs)
|
||||||
|
err := json.Unmarshal([]byte(input), &args)
|
||||||
|
if err == nil {
|
||||||
|
t.Error("Expected error but didn't get one")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestWhisperIdentityArgs(t *testing.T) {
|
func TestWhisperIdentityArgs(t *testing.T) {
|
||||||
input := `["0xc931d93e97ab07fe42d923478ba2465f283"]`
|
input := `["0xc931d93e97ab07fe42d923478ba2465f283"]`
|
||||||
expected := new(WhisperIdentityArgs)
|
expected := new(WhisperIdentityArgs)
|
||||||
|
Loading…
Reference in New Issue
Block a user