diff options
author | obscuren <geffobscura@gmail.com> | 2015-02-22 20:12:01 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-02-22 20:12:01 +0800 |
commit | 483d96a89d68023360d211ab329400f4b960fe48 (patch) | |
tree | 985a6cd9d713cb36e57064da5b465d8810bc42d0 /rpc | |
parent | bba7ccb07f08e0c6ad404abfb363deaec1db5fab (diff) | |
download | dexon-483d96a89d68023360d211ab329400f4b960fe48.tar.gz dexon-483d96a89d68023360d211ab329400f4b960fe48.tar.zst dexon-483d96a89d68023360d211ab329400f4b960fe48.zip |
Added eth_logs & fixed issue with manual log filtering
* Implemented `eth_logs`
* Fixed issue with `filter.Find()` where logs were appended to an
incorrect, non-returned slice resulting in no logs found
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/packages.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/rpc/packages.go b/rpc/packages.go index aed43cae2..b51bde7ce 100644 --- a/rpc/packages.go +++ b/rpc/packages.go @@ -167,6 +167,15 @@ func (self *EthereumApi) Logs(id int, reply *interface{}) error { return nil } +func (self *EthereumApi) AllLogs(args *FilterOptions, reply *interface{}) error { + filter := core.NewFilter(self.xeth.Backend()) + filter.SetOptions(toFilterOptions(args)) + + *reply = toLogs(filter.Find()) + + return nil +} + func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error { err := args.requirements() if err != nil { @@ -509,6 +518,12 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error return err } return p.Logs(args, reply) + case "eth_logs": + args, err := req.ToFilterArgs() + if err != nil { + return err + } + return p.AllLogs(args, reply) case "eth_gasPrice": *reply = defaultGasPrice return nil |