This commit is contained in:
maskpp 2025-07-27 14:35:37 +08:00
parent 50958bac5c
commit b07605627f

View file

@ -78,18 +78,17 @@ func (m *SortedMap) Get(nonce uint64) *types.Transaction {
// index. If a transaction already exists with the same nonce, it's overwritten. // index. If a transaction already exists with the same nonce, it's overwritten.
func (m *SortedMap) Put(tx *types.Transaction) { func (m *SortedMap) Put(tx *types.Transaction) {
nonce := tx.Nonce() nonce := tx.Nonce()
// If the tx already exit, return immediately. if m.items[nonce] == nil {
if m.items[nonce] != nil { heap.Push(m.index, nonce)
return
} }
m.items[nonce] = tx m.items[nonce] = tx
heap.Push(m.index, nonce)
m.cacheMu.Lock() m.cacheMu.Lock()
if m.cache != nil { if m.cache != nil {
m.cache = append(m.cache, tx) index := slices.IndexFunc(m.cache, func(tx *types.Transaction) bool {
sort.Sort(types.TxByNonce(m.cache)) return tx.Nonce() == nonce
})
m.cache[index] = tx
} }
m.cacheMu.Unlock() m.cacheMu.Unlock()
} }