aboutsummaryrefslogtreecommitdiffstats
path: root/eth/filters/api.go
diff options
context:
space:
mode:
authorrjl493456442 <garyrong0905@gmail.com>2018-05-10 15:04:45 +0800
committerPéter Szilágyi <peterke@gmail.com>2018-05-18 16:46:44 +0800
commita2e43d28d01ef9642c7f6992b78b86bd0696c847 (patch)
tree2f5d3444071125e84155321db6fd79d941cfee0b /eth/filters/api.go
parent6286c255f16a914b39ffd3389cba154a53e66a13 (diff)
downloadgo-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.tar
go-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.tar.gz
go-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.tar.bz2
go-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.tar.lz
go-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.tar.xz
go-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.tar.zst
go-tangerine-a2e43d28d01ef9642c7f6992b78b86bd0696c847.zip
all: collate new transaction events together
Diffstat (limited to 'eth/filters/api.go')
-rw-r--r--eth/filters/api.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/eth/filters/api.go b/eth/filters/api.go
index 1297b7478..d2c9258f9 100644
--- a/eth/filters/api.go
+++ b/eth/filters/api.go
@@ -104,7 +104,7 @@ func (api *PublicFilterAPI) timeoutLoop() {
// https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newpendingtransactionfilter
func (api *PublicFilterAPI) NewPendingTransactionFilter() rpc.ID {
var (
- pendingTxs = make(chan common.Hash)
+ pendingTxs = make(chan []common.Hash)
pendingTxSub = api.events.SubscribePendingTxEvents(pendingTxs)
)
@@ -118,7 +118,7 @@ func (api *PublicFilterAPI) NewPendingTransactionFilter() rpc.ID {
case ph := <-pendingTxs:
api.filtersMu.Lock()
if f, found := api.filters[pendingTxSub.ID]; found {
- f.hashes = append(f.hashes, ph)
+ f.hashes = append(f.hashes, ph...)
}
api.filtersMu.Unlock()
case <-pendingTxSub.Err():
@@ -144,13 +144,17 @@ func (api *PublicFilterAPI) NewPendingTransactions(ctx context.Context) (*rpc.Su
rpcSub := notifier.CreateSubscription()
go func() {
- txHashes := make(chan common.Hash)
+ txHashes := make(chan []common.Hash, 128)
pendingTxSub := api.events.SubscribePendingTxEvents(txHashes)
for {
select {
- case h := <-txHashes:
- notifier.Notify(rpcSub.ID, h)
+ case hashes := <-txHashes:
+ // To keep the original behaviour, send a single tx hash in one notification.
+ // TODO(rjl493456442) Send a batch of tx hashes in one notification
+ for _, h := range hashes {
+ notifier.Notify(rpcSub.ID, h)
+ }
case <-rpcSub.Err():
pendingTxSub.Unsubscribe()
return