aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/args.go
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-03-27 03:52:09 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-03-27 03:52:09 +0800
commit9ca87afd0ba043043a3d2b4919d72b7f7a39ffe8 (patch)
treee15cd955e22f97a2094086c1d98c5e270f65f5f8 /rpc/args.go
parent81f36df910533de63dc5ac66f38b5481961cc0c8 (diff)
downloaddexon-9ca87afd0ba043043a3d2b4919d72b7f7a39ffe8.tar.gz
dexon-9ca87afd0ba043043a3d2b4919d72b7f7a39ffe8.tar.zst
dexon-9ca87afd0ba043043a3d2b4919d72b7f7a39ffe8.zip
WhisperFilterArgs
Diffstat (limited to 'rpc/args.go')
-rw-r--r--rpc/args.go24
1 files changed, 18 insertions, 6 deletions
diff --git a/rpc/args.go b/rpc/args.go
index 0169ece58..5ad971ced 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -720,9 +720,8 @@ type WhisperFilterArgs struct {
func (args *WhisperFilterArgs) UnmarshalJSON(b []byte) (err error) {
var obj []struct {
- To string
- From string
- Topics []string
+ To interface{}
+ Topics []interface{}
}
if err = json.Unmarshal(b, &obj); err != nil {
@@ -733,9 +732,22 @@ func (args *WhisperFilterArgs) UnmarshalJSON(b []byte) (err error) {
return NewInsufficientParamsError(len(obj), 1)
}
- args.To = obj[0].To
- args.From = obj[0].From
- args.Topics = obj[0].Topics
+ var argstr string
+ argstr, ok := obj[0].To.(string)
+ if !ok {
+ return NewInvalidTypeError("to", "is not a string")
+ }
+ args.To = argstr
+
+ t := make([]string, len(obj[0].Topics))
+ for i, j := range obj[0].Topics {
+ argstr, ok := j.(string)
+ if !ok {
+ return NewInvalidTypeError("topics["+string(i)+"]", "is not a string")
+ }
+ t[i] = argstr
+ }
+ args.Topics = t
return nil
}