Added whisper messages
* have identity & get messages
This commit is contained in:
@ -287,7 +287,7 @@ func (req *RpcRequest) ToWhisperFilterArgs() (*xeth.Options, error) {
|
||||
return &args, nil
|
||||
}
|
||||
|
||||
func (req *RpcRequest) ToWhisperChangedArgs() (int, error) {
|
||||
func (req *RpcRequest) ToWhisperIdArgs() (int, error) {
|
||||
if len(req.Params) < 1 {
|
||||
return 0, NewErrorResponse(ErrorArguments)
|
||||
}
|
||||
@ -314,3 +314,17 @@ func (req *RpcRequest) ToWhisperPostArgs() (*WhisperMessageArgs, error) {
|
||||
rpclogger.DebugDetailf("%T %v", args, args)
|
||||
return &args, nil
|
||||
}
|
||||
|
||||
func (req *RpcRequest) ToWhisperHasIdentityArgs() (string, error) {
|
||||
if len(req.Params) < 1 {
|
||||
return "", NewErrorResponse(ErrorArguments)
|
||||
}
|
||||
|
||||
var args string
|
||||
err := json.Unmarshal(req.Params[0], &args)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
rpclogger.DebugDetailf("%T %v", args, args)
|
||||
return args, nil
|
||||
}
|
||||
|
@ -299,6 +299,16 @@ func (p *EthereumApi) WhisperPost(args *WhisperMessageArgs, reply *interface{})
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) HasWhisperIdentity(args string, reply *interface{}) error {
|
||||
*reply = p.xeth.Whisper().HasIdentity(args)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) WhisperMessages(id int, reply *interface{}) error {
|
||||
*reply = p.xeth.Whisper().Messages(id)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error {
|
||||
// Spec at https://github.com/ethereum/wiki/wiki/Generic-ON-RPC
|
||||
rpclogger.DebugDetailf("%T %s", req.Params, req.Params)
|
||||
@ -405,7 +415,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
|
||||
}
|
||||
return p.NewWhisperFilter(args, reply)
|
||||
case "shh_changed":
|
||||
args, err := req.ToWhisperChangedArgs()
|
||||
args, err := req.ToWhisperIdArgs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -413,9 +423,21 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
|
||||
case "shh_post":
|
||||
args, err := req.ToWhisperPostArgs()
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return p.WhisperPost(args, reply)
|
||||
case "shh_haveIdentity":
|
||||
args, err := req.ToWhisperHasIdentityArgs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return p.HasWhisperIdentity(args, reply)
|
||||
case "shh_getMessages":
|
||||
args, err := req.ToWhisperIdArgs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return p.WhisperMessages(args, reply)
|
||||
default:
|
||||
return NewErrorResponse(fmt.Sprintf("%v %s", ErrorNotImplemented, req.Method))
|
||||
}
|
||||
|
Reference in New Issue
Block a user