diff options
Diffstat (limited to 'core/tx_pool.go')
-rw-r--r-- | core/tx_pool.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core/tx_pool.go b/core/tx_pool.go index caabd5c..3454936 100644 --- a/core/tx_pool.go +++ b/core/tx_pool.go @@ -213,6 +213,7 @@ type TxPool struct { chain blockChain gasPrice *big.Int txFeed event.Feed + headFeed event.Feed scope event.SubscriptionScope signer types.Signer mu sync.RWMutex @@ -328,6 +329,7 @@ func (pool *TxPool) loop() { if ev.Block != nil { pool.requestReset(head.Header(), ev.Block.Header()) head = ev.Block + pool.headFeed.Send(NewTxPoolHeadEvent{head}) } // System shutdown. @@ -398,6 +400,12 @@ func (pool *TxPool) SubscribeNewTxsEvent(ch chan<- NewTxsEvent) event.Subscripti return pool.scope.Track(pool.txFeed.Subscribe(ch)) } +// SubscribeNewHeadEvent registers a subscription of NewHeadEvent and +// starts sending event to the given channel. +func (pool *TxPool) SubscribeNewHeadEvent(ch chan<- NewTxPoolHeadEvent) event.Subscription { + return pool.scope.Track(pool.headFeed.Subscribe(ch)) +} + // GasPrice returns the current gas price enforced by the transaction pool. func (pool *TxPool) GasPrice() *big.Int { pool.mu.RLock() |