|
|
@ -833,6 +833,9 @@ func (pool *TxPool) AddRemotes(txs []*types.Transaction) []error { |
|
|
|
|
|
|
|
|
|
|
|
// addTx enqueues a single transaction into the pool if it is valid.
|
|
|
|
// addTx enqueues a single transaction into the pool if it is valid.
|
|
|
|
func (pool *TxPool) addTx(tx *types.Transaction, local bool) error { |
|
|
|
func (pool *TxPool) addTx(tx *types.Transaction, local bool) error { |
|
|
|
|
|
|
|
// Cache sender in transaction before obtaining lock (pool.signer is immutable)
|
|
|
|
|
|
|
|
types.Sender(pool.signer, tx) |
|
|
|
|
|
|
|
|
|
|
|
pool.mu.Lock() |
|
|
|
pool.mu.Lock() |
|
|
|
defer pool.mu.Unlock() |
|
|
|
defer pool.mu.Unlock() |
|
|
|
|
|
|
|
|
|
|
@ -851,6 +854,10 @@ func (pool *TxPool) addTx(tx *types.Transaction, local bool) error { |
|
|
|
|
|
|
|
|
|
|
|
// addTxs attempts to queue a batch of transactions if they are valid.
|
|
|
|
// addTxs attempts to queue a batch of transactions if they are valid.
|
|
|
|
func (pool *TxPool) addTxs(txs []*types.Transaction, local bool) []error { |
|
|
|
func (pool *TxPool) addTxs(txs []*types.Transaction, local bool) []error { |
|
|
|
|
|
|
|
// Cache senders in transactions before obtaining lock (pool.signer is immutable)
|
|
|
|
|
|
|
|
for _, tx := range txs { |
|
|
|
|
|
|
|
types.Sender(pool.signer, tx) |
|
|
|
|
|
|
|
} |
|
|
|
pool.mu.Lock() |
|
|
|
pool.mu.Lock() |
|
|
|
defer pool.mu.Unlock() |
|
|
|
defer pool.mu.Unlock() |
|
|
|
|
|
|
|
|
|
|
|