Sfoglia il codice sorgente

core: don't uselessly recheck transactions on dump

Péter Szilágyi 8 anni fa
parent
commit
9702badd83
1 ha cambiato i file con 8 aggiunte e 19 eliminazioni
  1. 8 19
      core/tx_pool.go

+ 8 - 19
core/tx_pool.go

@@ -339,17 +339,6 @@ func (pool *TxPool) Pending() (map[common.Address]types.Transactions, error) {
 	pool.mu.Lock()
 	defer pool.mu.Unlock()
 
-	state, err := pool.currentState()
-	if err != nil {
-		return nil, err
-	}
-
-	// check queue first
-	pool.promoteExecutables(state)
-
-	// invalidate any txs
-	pool.demoteUnexecutables(state)
-
 	pending := make(map[common.Address]types.Transactions)
 	for addr, list := range pool.pending {
 		pending[addr] = list.Flatten()
@@ -551,12 +540,12 @@ func (pool *TxPool) Add(tx *types.Transaction) error {
 	if err != nil {
 		return err
 	}
-	state, err := pool.currentState()
-	if err != nil {
-		return err
-	}
 	// If we added a new transaction, run promotion checks and return
 	if !replace {
+		state, err := pool.currentState()
+		if err != nil {
+			return err
+		}
 		pool.promoteExecutables(state)
 	}
 	return nil
@@ -579,11 +568,11 @@ func (pool *TxPool) AddBatch(txs []*types.Transaction) error {
 	}
 	// Only reprocess the internal state if something was actually added
 	if added > 0 {
-		state, err := pool.currentState()
-		if err != nil {
-			return err
-		}
 		if !replaced {
+			state, err := pool.currentState()
+			if err != nil {
+				return err
+			}
 			pool.promoteExecutables(state)
 		}
 	}