aboutsummaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-02-17 21:19:05 +0800
committerobscuren <geffobscura@gmail.com>2015-02-17 21:19:05 +0800
commit547788b1b0c6a27c24ba3bc4362aa93143dfea2c (patch)
treeeec78227e21d9846a2f33858d2214a32ec278da0 /rpc
parent2c454863f2f41fb232778a4cbd4cf135a58c4118 (diff)
downloadgo-tangerine-547788b1b0c6a27c24ba3bc4362aa93143dfea2c.tar.gz
go-tangerine-547788b1b0c6a27c24ba3bc4362aa93143dfea2c.tar.zst
go-tangerine-547788b1b0c6a27c24ba3bc4362aa93143dfea2c.zip
Added optional address slice. Closes #326
Diffstat (limited to 'rpc')
-rw-r--r--rpc/args.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/rpc/args.go b/rpc/args.go
index 12e3103bc..9c2c7d7a6 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -1,6 +1,7 @@
package rpc
import "encoding/json"
+
import "github.com/ethereum/go-ethereum/core"
type GetBlockArgs struct {
@@ -203,7 +204,7 @@ func (obj *Sha3Args) UnmarshalJSON(b []byte) (err error) {
type FilterOptions struct {
Earliest int64
Latest int64
- Address string
+ Address interface{}
Topic []string
Skip int
Max int
@@ -211,9 +212,22 @@ type FilterOptions struct {
func toFilterOptions(options *FilterOptions) core.FilterOptions {
var opts core.FilterOptions
+
+ // Convert optional address slice/string to byte slice
+ if str, ok := options.Address.(string); ok {
+ opts.Address = [][]byte{fromHex(str)}
+ } else if slice, ok := options.Address.([]interface{}); ok {
+ bslice := make([][]byte, len(slice))
+ for i, addr := range slice {
+ if saddr, ok := addr.(string); ok {
+ bslice[i] = fromHex(saddr)
+ }
+ }
+ opts.Address = bslice
+ }
+
opts.Earliest = options.Earliest
opts.Latest = options.Latest
- opts.Address = fromHex(options.Address)
opts.Topics = make([][]byte, len(options.Topic))
for i, topic := range options.Topic {
opts.Topics[i] = fromHex(topic)