eth/filters: fix race in NewPendingTransactions and NewHeads subscriptions

Co-authored-by: s1na <1591639+s1na@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-11 16:18:13 +00:00
parent 3e0889571b
commit 58696fa2ae

View file

@ -189,9 +189,10 @@ func (api *FilterAPI) NewPendingTransactions(ctx context.Context, fullTx *bool)
rpcSub := notifier.CreateSubscription()
txs := make(chan []*types.Transaction, 128)
pendingTxSub := api.events.SubscribePendingTxs(txs)
go func() {
txs := make(chan []*types.Transaction, 128)
pendingTxSub := api.events.SubscribePendingTxs(txs)
defer pendingTxSub.Unsubscribe()
chainConfig := api.sys.backend.ChainConfig()
@ -262,9 +263,10 @@ func (api *FilterAPI) NewHeads(ctx context.Context) (*rpc.Subscription, error) {
rpcSub := notifier.CreateSubscription()
headers := make(chan *types.Header)
headersSub := api.events.SubscribeNewHeads(headers)
go func() {
headers := make(chan *types.Header)
headersSub := api.events.SubscribeNewHeads(headers)
defer headersSub.Unsubscribe()
for {