mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-08 07:58:40 +00:00
PR #34841 lifts the EIP-7825 per-transaction gas cap once Amsterdam (EIP-8037) is active, since tx.Gas() then includes the state-gas reservoir in addition to the regular gas dimension. The PR added an !IsAmsterdam guard in five call sites (txpool.ValidateTransaction, state_transition.preCheck, miner.fillTransactions, eth/gasestimator, cmd/evm t8ntool) but missed one: legacypool.runReorg still purges all transactions with tx.Gas() > MaxTxGas at the Osaka fork boundary, regardless of whether Amsterdam is also active on the new head. On a chain that activates Osaka and Amsterdam at the same timestamp (the expected EIP-8037 devnet/testnet layout before mainnet cuts the two forks), the first reorg crossing that boundary deletes otherwise valid Amsterdam transactions whose total gas legitimately exceeds MaxTxGas. Add the missing IsAmsterdam guard so the purge matches the stated semantics of #34841. Add a regression test that constructs a chain config with OsakaTime == AmsterdamTime, injects a tx with gas = MaxTxGas+100k in the pre-fork state, and verifies the tx survives the reorg into the post-fork head. The test fails on master and passes with this change. |
||
|---|---|---|
| .. | ||
| legacypool.go | ||
| legacypool2_test.go | ||
| legacypool_test.go | ||
| list.go | ||
| list_test.go | ||
| noncer.go | ||
| queue.go | ||