aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/util.go
diff options
context:
space:
mode:
authorEthan Buchman <ethan@coinculture.info>2015-02-27 06:54:57 +0800
committerEthan Buchman <ethan@coinculture.info>2015-02-27 06:54:57 +0800
commit5a827417d9cef0d2a765df11e747b1755bf04898 (patch)
treecd3764686dcb59f5b1b9faf16c9f29dcc5efd593 /rpc/util.go
parent9446489cf3f2eb4b5237b9355b3975fde2886508 (diff)
parentcc5c8a444dbc23501ba1a131eb2334f4b5e1ce9f (diff)
downloaddexon-5a827417d9cef0d2a765df11e747b1755bf04898.tar
dexon-5a827417d9cef0d2a765df11e747b1755bf04898.tar.gz
dexon-5a827417d9cef0d2a765df11e747b1755bf04898.tar.bz2
dexon-5a827417d9cef0d2a765df11e747b1755bf04898.tar.lz
dexon-5a827417d9cef0d2a765df11e747b1755bf04898.tar.xz
dexon-5a827417d9cef0d2a765df11e747b1755bf04898.tar.zst
dexon-5a827417d9cef0d2a765df11e747b1755bf04898.zip
Merge branch 'develop' of https://github.com/ethereum/go-ethereum into develop
Diffstat (limited to 'rpc/util.go')
-rw-r--r--rpc/util.go43
1 files changed, 40 insertions, 3 deletions
diff --git a/rpc/util.go b/rpc/util.go
index 679d83754..3e8ca3fef 100644
--- a/rpc/util.go
+++ b/rpc/util.go
@@ -20,10 +20,12 @@ import (
"encoding/json"
"io"
"net/http"
+ "time"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/state"
+ "github.com/ethereum/go-ethereum/xeth"
)
var rpclogger = logger.NewLogger("RPC")
@@ -80,8 +82,9 @@ type RpcServer interface {
type Log struct {
Address string `json:"address"`
- Topics []string `json:"topics"`
+ Topic []string `json:"topic"`
Data string `json:"data"`
+ Number uint64 `json:"number"`
}
func toLogs(logs state.Logs) (ls []Log) {
@@ -89,14 +92,48 @@ func toLogs(logs state.Logs) (ls []Log) {
for i, log := range logs {
var l Log
- l.Topics = make([]string, len(log.Topics()))
+ l.Topic = make([]string, len(log.Topics()))
l.Address = toHex(log.Address())
l.Data = toHex(log.Data())
+ l.Number = log.Number()
for j, topic := range log.Topics() {
- l.Topics[j] = toHex(topic)
+ l.Topic[j] = toHex(topic)
}
ls[i] = l
}
return
}
+
+type whisperFilter struct {
+ messages []xeth.WhisperMessage
+ timeout time.Time
+ id int
+}
+
+func (w *whisperFilter) add(msgs ...xeth.WhisperMessage) {
+ w.messages = append(w.messages, msgs...)
+}
+func (w *whisperFilter) get() []xeth.WhisperMessage {
+ w.timeout = time.Now()
+ tmp := w.messages
+ w.messages = nil
+ return tmp
+}
+
+type logFilter struct {
+ logs state.Logs
+ timeout time.Time
+ id int
+}
+
+func (l *logFilter) add(logs ...state.Log) {
+ l.logs = append(l.logs, logs...)
+}
+
+func (l *logFilter) get() state.Logs {
+ l.timeout = time.Now()
+ tmp := l.logs
+ l.logs = nil
+ return tmp
+}