aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/tx_pool.go27
1 files changed, 8 insertions, 19 deletions
diff --git a/core/tx_pool.go b/core/tx_pool.go
index 1f5b46d4b..5e399d95f 100644
--- a/core/tx_pool.go
+++ b/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)
}
}