|
@@ -175,7 +175,7 @@ func TestTransactionQueue(t *testing.T) {
|
|
|
pool.resetState()
|
|
pool.resetState()
|
|
|
pool.enqueueTx(tx.Hash(), tx)
|
|
pool.enqueueTx(tx.Hash(), tx)
|
|
|
|
|
|
|
|
- pool.promoteExecutables(currentState)
|
|
|
|
|
|
|
+ pool.promoteExecutables(currentState, []common.Address{from})
|
|
|
if len(pool.pending) != 1 {
|
|
if len(pool.pending) != 1 {
|
|
|
t.Error("expected valid txs to be 1 is", len(pool.pending))
|
|
t.Error("expected valid txs to be 1 is", len(pool.pending))
|
|
|
}
|
|
}
|
|
@@ -184,7 +184,7 @@ func TestTransactionQueue(t *testing.T) {
|
|
|
from, _ = deriveSender(tx)
|
|
from, _ = deriveSender(tx)
|
|
|
currentState.SetNonce(from, 2)
|
|
currentState.SetNonce(from, 2)
|
|
|
pool.enqueueTx(tx.Hash(), tx)
|
|
pool.enqueueTx(tx.Hash(), tx)
|
|
|
- pool.promoteExecutables(currentState)
|
|
|
|
|
|
|
+ pool.promoteExecutables(currentState, []common.Address{from})
|
|
|
if _, ok := pool.pending[from].txs.items[tx.Nonce()]; ok {
|
|
if _, ok := pool.pending[from].txs.items[tx.Nonce()]; ok {
|
|
|
t.Error("expected transaction to be in tx pool")
|
|
t.Error("expected transaction to be in tx pool")
|
|
|
}
|
|
}
|
|
@@ -206,7 +206,7 @@ func TestTransactionQueue(t *testing.T) {
|
|
|
pool.enqueueTx(tx2.Hash(), tx2)
|
|
pool.enqueueTx(tx2.Hash(), tx2)
|
|
|
pool.enqueueTx(tx3.Hash(), tx3)
|
|
pool.enqueueTx(tx3.Hash(), tx3)
|
|
|
|
|
|
|
|
- pool.promoteExecutables(currentState)
|
|
|
|
|
|
|
+ pool.promoteExecutables(currentState, []common.Address{from})
|
|
|
|
|
|
|
|
if len(pool.pending) != 1 {
|
|
if len(pool.pending) != 1 {
|
|
|
t.Error("expected tx pool to be 1, got", len(pool.pending))
|
|
t.Error("expected tx pool to be 1, got", len(pool.pending))
|
|
@@ -304,16 +304,16 @@ func TestTransactionDoubleNonce(t *testing.T) {
|
|
|
t.Errorf("second transaction insert failed (%v) or not reported replacement (%v)", err, replace)
|
|
t.Errorf("second transaction insert failed (%v) or not reported replacement (%v)", err, replace)
|
|
|
}
|
|
}
|
|
|
state, _ := pool.currentState()
|
|
state, _ := pool.currentState()
|
|
|
- pool.promoteExecutables(state)
|
|
|
|
|
|
|
+ pool.promoteExecutables(state, []common.Address{addr})
|
|
|
if pool.pending[addr].Len() != 1 {
|
|
if pool.pending[addr].Len() != 1 {
|
|
|
t.Error("expected 1 pending transactions, got", pool.pending[addr].Len())
|
|
t.Error("expected 1 pending transactions, got", pool.pending[addr].Len())
|
|
|
}
|
|
}
|
|
|
if tx := pool.pending[addr].txs.items[0]; tx.Hash() != tx2.Hash() {
|
|
if tx := pool.pending[addr].txs.items[0]; tx.Hash() != tx2.Hash() {
|
|
|
t.Errorf("transaction mismatch: have %x, want %x", tx.Hash(), tx2.Hash())
|
|
t.Errorf("transaction mismatch: have %x, want %x", tx.Hash(), tx2.Hash())
|
|
|
}
|
|
}
|
|
|
- // Add the thid transaction and ensure it's not saved (smaller price)
|
|
|
|
|
|
|
+ // Add the third transaction and ensure it's not saved (smaller price)
|
|
|
pool.add(tx3)
|
|
pool.add(tx3)
|
|
|
- pool.promoteExecutables(state)
|
|
|
|
|
|
|
+ pool.promoteExecutables(state, []common.Address{addr})
|
|
|
if pool.pending[addr].Len() != 1 {
|
|
if pool.pending[addr].Len() != 1 {
|
|
|
t.Error("expected 1 pending transactions, got", pool.pending[addr].Len())
|
|
t.Error("expected 1 pending transactions, got", pool.pending[addr].Len())
|
|
|
}
|
|
}
|
|
@@ -1087,7 +1087,7 @@ func benchmarkFuturePromotion(b *testing.B, size int) {
|
|
|
// Benchmark the speed of pool validation
|
|
// Benchmark the speed of pool validation
|
|
|
b.ResetTimer()
|
|
b.ResetTimer()
|
|
|
for i := 0; i < b.N; i++ {
|
|
for i := 0; i < b.N; i++ {
|
|
|
- pool.promoteExecutables(state)
|
|
|
|
|
|
|
+ pool.promoteExecutables(state, nil)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|