Skip to content

Commit dba4f31

Browse files
committed
Added uninstall filter methods
1 parent fdecc11 commit dba4f31

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

rpc/message.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,21 @@ func (req *RpcRequest) ToFilterStringArgs() (string, error) {
231231
return args, nil
232232
}
233233

234+
func (req *RpcRequest) ToUninstallFilterArgs() (int, error) {
235+
if len(req.Params) < 1 {
236+
return 0, NewErrorResponse(ErrorArguments)
237+
}
238+
239+
var args int
240+
err := json.Unmarshal(req.Params[0], &args)
241+
if err != nil {
242+
return 0, NewErrorResponse(ErrorDecodeArgs)
243+
}
244+
245+
rpclogger.DebugDetailf("%T %v", args, args)
246+
return args, nil
247+
}
248+
234249
func (req *RpcRequest) ToFilterChangedArgs() (int, error) {
235250
if len(req.Params) < 1 {
236251
return 0, NewErrorResponse(ErrorArguments)

rpc/packages.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,13 @@ func (self *EthereumApi) NewFilter(args *FilterOptions, reply *interface{}) erro
105105
return nil
106106
}
107107

108+
func (self *EthereumApi) UninstallFilter(id int, reply *interface{}) error {
109+
delete(self.logs, id)
110+
self.filterManager.UninstallFilter(id)
111+
*reply = true
112+
return nil
113+
}
114+
108115
func (self *EthereumApi) NewFilterString(args string, reply *interface{}) error {
109116
var id int
110117
filter := core.NewFilter(self.xeth.Backend())
@@ -444,6 +451,12 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
444451
return err
445452
}
446453
return p.NewFilterString(args, reply)
454+
case "eth_uninstallFilter":
455+
args, err := req.ToUninstallFilterArgs()
456+
if err != nil {
457+
return err
458+
}
459+
return p.UninstallFilter(args, reply)
447460
case "eth_changed":
448461
args, err := req.ToFilterChangedArgs()
449462
if err != nil {

0 commit comments

Comments
 (0)