Repository navigation
Conversation
The harness ran only monad-revm, with a Monad-only hardfork schedule. A spec is now a Monad hardfork or an Ethereum one (Merge..Osaka); unpinned, the chain ID picks it: 143/10143 follow monad-revm's schedule, 1, Sepolia and Hoodi follow Ethereum's, and the network's EVM (monad-revm or mainnet revm) is fixed at init. Simulated gas limits now cover gas spent before refunds and the EIP-7623 calldata floor, which Monad (no refunds) never needed. The simulation draws `chain.network`: Anvil runs `--network monad --chain-id 143` or `--chain-id 1 --hardfork osaka --enable-tx-gas-limit` with 12s blocks, genesis after both activations, and no pinned hardfork. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Specis a Monad hardfork or an Ethereum one (Merge..Osaka). When it isn't pinned, the chain ID picks it: 143/10143 use monad-revm's schedule; 1, Sepolia, and Hoodi use Ethereum's activation timestamps (checked against alloy-hardforks). The harness picks monad-revm or mainnet revm through a smallBackendtrait, and the network stays fixed after init.gas_limitis nowmax(gas spent before refund + reserve, EIP-7623 floor). Monad has no refunds, sotx_gas_usedwas enough there. On Ethereum it under-provisions any tx that clears a slot (newreserve_covers_refundstest).chain.network. Anvil keeps its chain ID (31337), which has no hardfork schedule, so the sim pins the hardfork to match:--network monadrunsMonadTen, and--hardfork osaka --enable-tx-gas-limitwith 12s blocks runsOsaka. Choosing the hardfork from the chain ID is covered by the Rust and TS unit tests.Validation
intrinsic gas too high -- tx.gas_limit > resolved tx gas limit cap.Ethereum blockers this exposes (not fixed here)
TODO(kyle) cap a submission. Monad has no such cap.EXPIRATION_MARGIN= 5s. It is shorter than one 12s slot, so 1–15% of mutations per seed are dropped from reverted settlements. With expirations off, 0x4d and 0x87 drop 0.eth_sendRawTransactionSyncvs the 5sREQUEST_TIMEOUT. With 12s blocks, every sync send times out before inclusion. The sim's transport doesn't resend a known tx, so it passes; on a real node this depends on how the node answers a resent known tx.🤖 Generated with Claude Code