core/txpool: don't track blobtxs, don't track invalid txs

This commit is contained in:
Martin Holst Swende 2025-01-07 09:53:18 +01:00
parent 231a2a5794
commit 8639d5c044
No known key found for this signature in database
GPG Key ID: 683B438C05A5DDF0
2 changed files with 9 additions and 2 deletions

View File

@ -70,21 +70,29 @@ func New(journalPath string, journalTime time.Duration, chainConfig *params.Chai
}
// Track adds a transaction to the tracked set.
// Note: blob-type transactions are ignored.
func (tracker *TxTracker) Track(tx *types.Transaction) {
tracker.TrackAll([]*types.Transaction{tx})
}
// TrackAll adds a list of transactions to the tracked set.
// Note: blob-type transactions are ignored.
func (tracker *TxTracker) TrackAll(txs []*types.Transaction) {
tracker.mu.Lock()
defer tracker.mu.Unlock()
for _, tx := range txs {
if tx.Type() == types.BlobTxType {
continue
}
// If we're already tracking it, it's a no-op
if _, ok := tracker.all[tx.Hash()]; ok {
continue
}
tracker.all[tx.Hash()] = tx
addr, _ := types.Sender(tracker.signer, tx)
addr, err := types.Sender(tracker.signer, tx)
if err != nil { // Ignore this tx
continue
}
if tracker.byAddr[addr] == nil {
tracker.byAddr[addr] = legacypool.NewSortedMap()
}

View File

@ -352,7 +352,6 @@ func (p *TxPool) Add(txs []*types.Transaction, sync bool) []error {
// back the errors into the original sort order.
errsets := make([][]error, len(p.subpools))
for i := 0; i < len(p.subpools); i++ {
// Note: local is explicitly set to false here.
errsets[i] = p.subpools[i].Add(txsets[i], sync)
}
errs := make([]error, len(txs))