core: added fork test & double nonce test
This commit is contained in:
@ -152,3 +152,52 @@ func TestNegativeValue(t *testing.T) {
|
||||
t.Error("expected", ErrNegativeValue, "got", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransactionChainFork(t *testing.T) {
|
||||
pool, key := setupTxPool()
|
||||
addr := crypto.PubkeyToAddress(key.PublicKey)
|
||||
pool.currentState().AddBalance(addr, big.NewInt(100000000000000))
|
||||
tx := transaction()
|
||||
tx.GasLimit = big.NewInt(100000)
|
||||
tx.SignECDSA(key)
|
||||
|
||||
err := pool.add(tx)
|
||||
if err != nil {
|
||||
t.Error("didn't expect error", err)
|
||||
}
|
||||
pool.RemoveTransactions([]*types.Transaction{tx})
|
||||
|
||||
// reset the pool's internal state
|
||||
pool.resetState()
|
||||
err = pool.add(tx)
|
||||
if err != nil {
|
||||
t.Error("didn't expect error", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransactionDoubleNonce(t *testing.T) {
|
||||
pool, key := setupTxPool()
|
||||
addr := crypto.PubkeyToAddress(key.PublicKey)
|
||||
pool.currentState().AddBalance(addr, big.NewInt(100000000000000))
|
||||
tx := transaction()
|
||||
tx.GasLimit = big.NewInt(100000)
|
||||
tx.SignECDSA(key)
|
||||
|
||||
err := pool.add(tx)
|
||||
if err != nil {
|
||||
t.Error("didn't expect error", err)
|
||||
}
|
||||
|
||||
tx2 := transaction()
|
||||
tx2.GasLimit = big.NewInt(1000000)
|
||||
tx2.SignECDSA(key)
|
||||
|
||||
err = pool.add(tx2)
|
||||
if err != nil {
|
||||
t.Error("didn't expect error", err)
|
||||
}
|
||||
|
||||
if len(pool.pending) != 2 {
|
||||
t.Error("expected 2 pending txs. Got", len(pool.pending))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user