mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-02-26 15:47:21 +00:00
GetMetadata can return nil
This commit is contained in:
parent
f8763cbf49
commit
909d38901d
1 changed files with 23 additions and 22 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue