WhisperFilterArgs
This commit is contained in:
parent
81f36df910
commit
9ca87afd0b
@ -417,7 +417,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
opts := new(xeth.Options)
|
opts := new(xeth.Options)
|
||||||
opts.From = args.From
|
// opts.From = args.From
|
||||||
opts.To = args.To
|
opts.To = args.To
|
||||||
opts.Topics = args.Topics
|
opts.Topics = args.Topics
|
||||||
id := api.xeth().NewWhisperFilter(opts)
|
id := api.xeth().NewWhisperFilter(opts)
|
||||||
|
24
rpc/args.go
24
rpc/args.go
@ -720,9 +720,8 @@ type WhisperFilterArgs struct {
|
|||||||
|
|
||||||
func (args *WhisperFilterArgs) UnmarshalJSON(b []byte) (err error) {
|
func (args *WhisperFilterArgs) UnmarshalJSON(b []byte) (err error) {
|
||||||
var obj []struct {
|
var obj []struct {
|
||||||
To string
|
To interface{}
|
||||||
From string
|
Topics []interface{}
|
||||||
Topics []string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = json.Unmarshal(b, &obj); err != nil {
|
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)
|
return NewInsufficientParamsError(len(obj), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
args.To = obj[0].To
|
var argstr string
|
||||||
args.From = obj[0].From
|
argstr, ok := obj[0].To.(string)
|
||||||
args.Topics = obj[0].Topics
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1086,10 +1086,9 @@ func TestFilterIdArgsBool(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWhsiperFilterArgs(t *testing.T) {
|
func TestWhisperFilterArgs(t *testing.T) {
|
||||||
input := `[{"topics": ["0x68656c6c6f20776f726c64"], "to": "0x34ag445g3455b34"}]`
|
input := `[{"topics": ["0x68656c6c6f20776f726c64"], "to": "0x34ag445g3455b34"}]`
|
||||||
expected := new(WhisperFilterArgs)
|
expected := new(WhisperFilterArgs)
|
||||||
expected.From = ""
|
|
||||||
expected.To = "0x34ag445g3455b34"
|
expected.To = "0x34ag445g3455b34"
|
||||||
expected.Topics = []string{"0x68656c6c6f20776f726c64"}
|
expected.Topics = []string{"0x68656c6c6f20776f726c64"}
|
||||||
|
|
||||||
@ -1098,10 +1097,6 @@ func TestWhsiperFilterArgs(t *testing.T) {
|
|||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if expected.From != args.From {
|
|
||||||
t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
|
|
||||||
}
|
|
||||||
|
|
||||||
if expected.To != args.To {
|
if expected.To != args.To {
|
||||||
t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
|
t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
|
||||||
}
|
}
|
||||||
@ -1111,6 +1106,46 @@ func TestWhsiperFilterArgs(t *testing.T) {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestWhisperFilterArgsInvalid(t *testing.T) {
|
||||||
|
input := `{}`
|
||||||
|
|
||||||
|
args := new(WhisperFilterArgs)
|
||||||
|
str := ExpectDecodeParamError(json.Unmarshal([]byte(input), args))
|
||||||
|
if len(str) > 0 {
|
||||||
|
t.Error(str)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestWhisperFilterArgsEmpty(t *testing.T) {
|
||||||
|
input := `[]`
|
||||||
|
|
||||||
|
args := new(WhisperFilterArgs)
|
||||||
|
str := ExpectInsufficientParamsError(json.Unmarshal([]byte(input), args))
|
||||||
|
if len(str) > 0 {
|
||||||
|
t.Error(str)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestWhisperFilterArgsToBool(t *testing.T) {
|
||||||
|
input := `[{"topics": ["0x68656c6c6f20776f726c64"], "to": false}]`
|
||||||
|
|
||||||
|
args := new(WhisperFilterArgs)
|
||||||
|
str := ExpectInvalidTypeError(json.Unmarshal([]byte(input), args))
|
||||||
|
if len(str) > 0 {
|
||||||
|
t.Error(str)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestWhisperFilterArgsTopicInt(t *testing.T) {
|
||||||
|
input := `[{"topics": [6], "to": "0x34ag445g3455b34"}]`
|
||||||
|
|
||||||
|
args := new(WhisperFilterArgs)
|
||||||
|
str := ExpectInvalidTypeError(json.Unmarshal([]byte(input), args))
|
||||||
|
if len(str) > 0 {
|
||||||
|
t.Error(str)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestCompileArgs(t *testing.T) {
|
func TestCompileArgs(t *testing.T) {
|
||||||
input := `["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"]`
|
input := `["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"]`
|
||||||
expected := new(CompileArgs)
|
expected := new(CompileArgs)
|
||||||
|
Loading…
Reference in New Issue
Block a user