From 4e81a62b74d81e8b5def73f9e6baf0550a7e9444 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 18 Nov 2019 15:15:53 +0100 Subject: [PATCH] miner: add SubscribePendingLogs --- miner/miner.go | 6 ++++++ miner/worker.go | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/miner/miner.go b/miner/miner.go index ab97b0c038..03a215e861 100644 --- a/miner/miner.go +++ b/miner/miner.go @@ -182,3 +182,9 @@ func (self *Miner) SetEtherbase(addr common.Address) { self.coinbase = addr self.worker.setEtherbase(addr) } + +// SubscribePendingLogs starts delivering logs from pending transactions +// to the given channel. +func (self *Miner) SubscribePendingLogs(ch chan<- []*types.Log) event.Subscription { + return self.worker.pendingLogsFeed.Subscribe(ch) +} diff --git a/miner/worker.go b/miner/worker.go index 183499ec30..772eb35956 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -128,6 +128,9 @@ type worker struct { eth Backend chain *core.BlockChain + // Feeds + pendingLogsFeed event.Feed + // Subscriptions mux *event.TypeMux txsCh chan core.NewTxsEvent @@ -818,7 +821,7 @@ func (w *worker) commitTransactions(txs *types.TransactionsByPriceAndNonce, coin cpy[i] = new(types.Log) *cpy[i] = *l } - go w.mux.Post(core.PendingLogsEvent{Logs: cpy}) + w.pendingLogsFeed.Send(cpy) } // Notify resubmit loop to decrease resubmitting interval if current interval is larger // than the user-specified one.