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) {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]`
|
||||
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) {
|
||||
input := `["0xc931d93e97ab07fe42d923478ba2465f283"]`
|
||||
expected := new(WhisperIdentityArgs)
|
||||
|
Loading…
Reference in New Issue
Block a user