-
Notifications
You must be signed in to change notification settings - Fork 0
/
eth_uninstallFilter.go
40 lines (32 loc) · 1.04 KB
/
eth_uninstallFilter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package transformer
import (
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/labstack/echo"
"github.com/revolutionchain/charon/pkg/eth"
"github.com/revolutionchain/charon/pkg/revo"
)
// ProxyETHUninstallFilter implements ETHProxy
type ProxyETHUninstallFilter struct {
*revo.Revo
filter *eth.FilterSimulator
}
func (p *ProxyETHUninstallFilter) Method() string {
return "eth_uninstallFilter"
}
func (p *ProxyETHUninstallFilter) Request(rawreq *eth.JSONRPCRequest, c echo.Context) (interface{}, eth.JSONRPCError) {
var req eth.UninstallFilterRequest
if err := unmarshalRequest(rawreq.Params, &req); err != nil {
// TODO: Correct error code?
return nil, eth.NewInvalidParamsError(err.Error())
}
return p.request(&req)
}
func (p *ProxyETHUninstallFilter) request(ethreq *eth.UninstallFilterRequest) (eth.UninstallFilterResponse, eth.JSONRPCError) {
id, err := hexutil.DecodeUint64(string(*ethreq))
if err != nil {
return false, eth.NewInvalidParamsError(err.Error())
}
// uninstall
p.filter.Uninstall(id)
return true, nil
}