diff --git a/eth/catalyst/simulated_beacon.go b/eth/catalyst/simulated_beacon.go index 8c99c4e4ea..5c7971f42a 100644 --- a/eth/catalyst/simulated_beacon.go +++ b/eth/catalyst/simulated_beacon.go @@ -20,6 +20,7 @@ import ( "crypto/rand" "errors" "math" + "math/big" "sync" "time" @@ -30,6 +31,7 @@ import ( "github.com/ethereum/go-ethereum/eth" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/node" + "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rpc" ) @@ -282,10 +284,11 @@ func (c *SimulatedBeacon) Commit() common.Hash { // Rollback un-sends previously added transactions. func (c *SimulatedBeacon) Rollback() { - // TODO (MariusVanDerWijden): implement a way in the transaction pool - // to flush _all_ transactions, even local transactions. - // Since the transactions send via the simulated backend are all - // send via the RPC, they end up all being local to the node + // Flush all transactions from the transaction pools + c.eth.TxPool().SetGasTip(big.NewInt(-1)) + // Set the gas tip back to accept new transactions + // TODO (Marius van der Wijden): set gas tip to parameter passed by config + c.eth.TxPool().SetGasTip(big.NewInt(params.GWei)) } // Fork sets the head to the provided hash. diff --git a/ethclient/simulated/backend.go b/ethclient/simulated/backend.go index c65ad06149..8cfb7992f3 100644 --- a/ethclient/simulated/backend.go +++ b/ethclient/simulated/backend.go @@ -89,6 +89,7 @@ func New(alloc core.GenesisAlloc, gasLimit uint64) *Backend { conf := ethconfig.Defaults conf.Genesis = &genesis conf.SyncMode = downloader.FullSync + conf.TxPool.NoLocals = true sim, err := newWithNode(stack, &conf, math.MaxUint64) if err != nil { // This should never happen, if it does, please open an issue