From 909d38901dbbd214b7ccd0ed2140154f7ed5a2b4 Mon Sep 17 00:00:00 2001 From: healthykim Date: Mon, 9 Feb 2026 15:04:36 -0500 Subject: [PATCH] GetMetadata can return nil --- eth/handler.go | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/eth/handler.go b/eth/handler.go index e40950b848..81c03df722 100644 --- a/eth/handler.go +++ b/eth/handler.go @@ -477,29 +477,30 @@ func (h *handler) BroadcastTransactions(txs []common.Hash) { ) for _, tx := range txs { - var directSet map[*ethPeer]struct{} - meta := h.txpool.GetMetadata(tx) - switch { - case meta.Type == types.BlobTxType: - blobTxs++ - case meta.Size > txMaxBroadcastSize: - largeTxs++ - default: - // Get transaction sender address. Here we can ignore any error - // since we're just interested in any value. - directSet = choice.choosePeers(peers, meta.Sender) - } - - for _, peer := range peers { - if peer.KnownTransaction(tx) { - continue + if meta := h.txpool.GetMetadata(tx); meta != nil { + var directSet map[*ethPeer]struct{} + switch { + case meta.Type == types.BlobTxType: + blobTxs++ + case meta.Size > txMaxBroadcastSize: + largeTxs++ + default: + // Get transaction sender address. Here we can ignore any error + // since we're just interested in any value. + directSet = choice.choosePeers(peers, meta.Sender) } - if _, ok := directSet[peer]; ok { - // Send direct. - txset[peer] = append(txset[peer], tx) - } else { - // Send announcement. - annos[peer] = append(annos[peer], tx) + + for _, peer := range peers { + if peer.KnownTransaction(tx) { + continue + } + if _, ok := directSet[peer]; ok { + // Send direct. + txset[peer] = append(txset[peer], tx) + } else { + // Send announcement. + annos[peer] = append(annos[peer], tx) + } } } }