Skip to content

chore: bump revm to 42.0.1 + EIP-8282 system calls - #396

Open
rakita wants to merge 5 commits into
mainfrom
bump-revm-v114
Open

chore: bump revm to 42.0.1 + EIP-8282 system calls#396
rakita wants to merge 5 commits into
mainfrom
bump-revm-v114

Conversation

@rakita

@rakita rakita commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Bumps revm to 42.0.1 (revm v115) and ports the Amsterdam system calls that were previously only on the glamsterdam-devnet-7 branch, with the devnet-7 predeploy addresses.

revm bump

No source changes were required for the bump itself.

EIP-8282 builder execution requests

Two post-block system calls, active from Amsterdam, each called as SYSTEM_ADDRESS with empty calldata; their output is pushed as EIP-7685 requests:

  • builder deposit requests (type 0x03) — 0x0000BFF46984E3725691FA540A8C7589300D8282
  • builder exit requests (type 0x04) — 0x000064D678505AD48F8CCB093BC65613800E8282

These are the current devnet-7 predeploy addresses; they match revm (bins/revme/src/cmd/blockchaintest/post_block.rs) and supersede the earlier …008282 / …008282 pair. Two matching BlockValidationError variants were added.

EIP-7997 deterministic CREATE2 factory

Dropped per review: the implemented design is obsolete — EIP-7997 now uses the existing factory at 0x4e59b44847b379578588920cA78FbF26c0B4956C and no longer performs a fork-boundary state transition. The factory is provided via a normal deployment transaction or genesis configuration instead.

MSRV bump to 1.94.1

Unrelated to revm: alloy-consensus/alloy-eips/alloy-tx-macros 2.2.0 were published with rust-version = 1.94.1. Since the workspace requires ^2.0.0 and no lockfile is committed, CI resolves 2.2.0 and the old 1.91 MSRV jobs fail — main is affected too. Bumped rust-version and the CI matrix to match. Happy to split this into its own PR if preferred.

Clippy clean; MSRV build verified against a real 1.94.1 toolchain.

@rakita rakita changed the title chore: bump revm to 42.0.0 chore: bump revm to 42.0.0 + EIP-8282/EIP-7997 system calls Jul 23, 2026
@rakita rakita changed the title chore: bump revm to 42.0.0 + EIP-8282/EIP-7997 system calls chore: bump revm to 42.0.1 + EIP-8282/EIP-7997 system calls Jul 23, 2026
};

/// Address of the EIP-7997 deterministic `CREATE2` factory predeploy.
pub const FACTORY_ADDRESS: Address = address!("0x0000000000000000000000000000000000000012");

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we drop this module and the apply_factory_predeploy hook? This implements an obsolete EIP-7997 design. Before this PR opened, the EIP had switched to the existing factory at 0x4e59b44847b379578588920cA78FbF26c0B4956C, different runtime code, and a nonzero nonce. It subsequently removed the fork-boundary lookup/mutation and now says clients MUST NOT check for the factory at the fork boundary. As written, Amsterdam execution writes unrelated code at 0x12, potentially with nonce zero, causing a consensus state-root divergence. The factory should instead be provided by the normal deployment transaction or genesis configuration.

References: current specification, factory change, irregular state transition removal.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — removed the module and the apply_factory_predeploy hook in 5464284.

The EIP-7997 design implemented here is obsolete: the EIP now uses the
existing factory at 0x4e59b44847b379578588920cA78FbF26c0B4956C with
different runtime code and a nonzero nonce, and it removed the
fork-boundary irregular state transition entirely (clients MUST NOT
check for the factory at the fork boundary). The factory is instead
provided via a normal deployment transaction or genesis configuration.
@rakita rakita changed the title chore: bump revm to 42.0.1 + EIP-8282/EIP-7997 system calls chore: bump revm to 42.0.1 + EIP-8282 system calls Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants