diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-06-09 20:47:20 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-06-09 20:47:20 +0800 |
commit | 046411866b257f6242a37b561b8e417199f7e52b (patch) | |
tree | 36aacc636447efd98f7659dc5677bc5162fa6fe5 /rpc/args.go | |
parent | 3054fd481175286591e5d867ec119e9151d02cb8 (diff) | |
download | dexon-046411866b257f6242a37b561b8e417199f7e52b.tar dexon-046411866b257f6242a37b561b8e417199f7e52b.tar.gz dexon-046411866b257f6242a37b561b8e417199f7e52b.tar.bz2 dexon-046411866b257f6242a37b561b8e417199f7e52b.tar.lz dexon-046411866b257f6242a37b561b8e417199f7e52b.tar.xz dexon-046411866b257f6242a37b561b8e417199f7e52b.tar.zst dexon-046411866b257f6242a37b561b8e417199f7e52b.zip |
Fixed signing + tests
Diffstat (limited to 'rpc/args.go')
-rw-r--r-- | rpc/args.go | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/rpc/args.go b/rpc/args.go index 686872a59..11d9a2a70 100644 --- a/rpc/args.go +++ b/rpc/args.go @@ -172,13 +172,8 @@ type NewSigArgs struct { } func (args *NewSigArgs) UnmarshalJSON(b []byte) (err error) { - var obj []json.RawMessage - var ext struct { - From string - Data string - } + var obj []interface{} - // Decode byte slice to array of RawMessages if err := json.Unmarshal(b, &obj); err != nil { return NewDecodeParamError(err.Error()) } @@ -188,21 +183,26 @@ func (args *NewSigArgs) UnmarshalJSON(b []byte) (err error) { return NewInsufficientParamsError(len(obj), 1) } - // Decode 0th RawMessage to temporary struct - if err := json.Unmarshal(obj[0], &ext); err != nil { - return NewDecodeParamError(err.Error()) + from, ok := obj[0].(string) + if !ok { + return NewInvalidTypeError("from", "not a string") } + args.From = from - if len(ext.From) == 0 { + if len(args.From) == 0 { return NewValidationError("from", "is required") } - if len(ext.Data) == 0 { + data, ok := obj[1].(string) + if !ok { + return NewInvalidTypeError("data", "not a string") + } + args.Data = data + + if len(args.Data) == 0 { return NewValidationError("data", "is required") } - args.From = ext.From - args.Data = ext.Data return nil } |