aboutsummaryrefslogtreecommitdiff
path: root/core/tx_pool.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/tx_pool.go')
-rw-r--r--core/tx_pool.go8
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()