tag v114 revm v42.0.0
REVM v42.0.0 Release Notes
Date: 2026-07-23
v114 aligns REVM with Glamsterdam devnet-7 and the
tests-glamsterdam-devnet@v7.0.0 fixtures — all state_tests and
blockchain_tests pass. All crates are released as 42.0.0.
EIP-2780 runtime gas phase (#3795, ethereum/EIPs#11844)
State-dependent transaction charges move out of intrinsic gas into a runtime
phase applied as the first frame is entered. Gated on
CfgEnv::enable_amsterdam_eip2780; older forks are unchanged.
- Create transactions: new-account state gas is charged at runtime, only
when the deployment target does not exist; an initcode revert/halt unwinds it. - EIP-7702: the pessimistic per-auth intrinsic charge becomes an intrinsic
REGULAR_PER_AUTH_BASE_COST(7,816) plus per-authority runtime charges, with
no refunds. The delegation target now follows the normal EIP-2929 warm/cold
model. - Runtime out-of-gas no longer invalidates the transaction: it is included
as an OOG halt consuming all gas, with all runtime state changes (including
applied delegations) reverted, and returns the EIP-8037 reservoir. - Charging is incremental and stops at the first unaffordable charge, so later
authorities and a cold delegation target are never loaded and stay out of the
EIP-7928 BAL.
Other devnet-7 alignment (#3795)
- #11836: calldata floor anchored
on the decomposed intrinsic base instead of flatTX_BASE. - #11891: 7702
ACCOUNT_WRITE
charged on first write per authority, skipped only when already paid. - #11858:
CREATE/CREATE2
account-creation state gas charged conditionally at access in the creating
frame, refilled LIFO when the create fails. - #11854:
SSTOREmust cover the
slot access cost before the implicit read; an unaffordable cold access keeps
the slot out of the block access list. - EIP-8246 replaces the EIP-7708 delayed burn; system-contract addresses
updated per EIP-8282. JournalEntry::CodeChangenow records and restores the previous code hash and
bytecode, fixing a phantom BAL code write on reverted 7702 delegation changes.
Other changes
feat(database): database fallback mode for BAL misses (#3754).feat: configurable max refund quotient (#3757); BAL account change slices (#3762).fix(inspector): EIP-7708 transfer logs reach the inspector (#3816); stale
SELFDESTRUCT journal entries ignored (#3805); journal finalized on error so the
EIP-2929 warm set does not leak (#3780).fix:GasTrackerused-gas underflow (#3813);is_emptypreserved on 7702
accounts inload_account_delegated(#3802); storageoriginal_value
re-baselined only across tx boundaries (#3746); bytecode iterator fixes
(#3800, #3792).perf: fewer bounds checks in precompile parsing (#3784); no intermediate BAL
account allocation (#3775); no double cloning intake_n_reverts(#3539).chore(deps):crossbeam-epoch0.9.20 for RUSTSEC-2026-0204 (#3804).
See MIGRATION_GUIDE.md
for the full list.
What's Changed
- feat(database): add database fallback mode for BAL misses by @mattsse in #3754
- chore(deps): bump crate-ci/typos from 1.46.1 to 1.47.2 by @dependabot[bot] in #3749
- chore(deps): bump taiki-e/install-action from 2.77.7 to 2.81.3 by @dependabot[bot] in #3748
- chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #3747
- feat: make max refund quotient configurable by @decofe in #3757
- chore: make
refundfallible by @klkvr in #3758 - feat(state): accept BAL account change slices by @mattsse in #3762
- chore(deny): allow proc-macro-error2 advisory by @mattsse in #3763
- fix(state): re-baseline storage original_value only across tx boundaries by @asdv23 in #3746
- perf: avoid intermediate BAL account allocation by @mattsse in #3775
- fix(inspect): finalize journal on error to prevent EIP-2929 warm set leak by @KyrinCode in #3780
- chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #3772
- chore(deps): bump taiki-e/install-action from 2.81.3 to 2.82.0 by @dependabot[bot] in #3774
- chore(deps): bump MarcoIeni/release-plz-action from 0.5.129 to 0.5.130 by @dependabot[bot] in #3759
- chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.18 to 2.0.20 by @dependabot[bot] in #3738
- chore(database): use Option::filter in BundleAccount::take_info_revert by @mrheyday in #3730
- refactor: clarify EIP-7702 regular-gas GasId names by @rakita in #3725
- perf(database): avoid double cloning in take_n_reverts by @saylor-mik87786 in #3539
- chore(deps): bump CodSpeedHQ/action from 4.15.1 to 4.17.5 by @dependabot[bot] in #3773
- test(bytecode): cover all truncated pushes by @decofe in #3783
- chore(deps): bump taiki-e/install-action from 2.82.0 to 2.82.3 by @dependabot[bot] in #3786
- chore(deps): bump CodSpeedHQ/action from 4.17.5 to 4.18.1 by @dependabot[bot] in #3785
- perf(precompile): reduce bounds checks in precompile parsing by @0xalpharush in #3784
- feat(amsterdam): glam devnet-6 gas accounting & EIP alignment by @rakita in #3782
- chore(deps): bump dependencies by @rakita in #3794
- fix(bytecode): avoid iterating legacy padding opcodes by @weifanglab in #3792
- refactor(revme): separate bytecode from account in test state by @rakita in #3803
- chore(deps): bump crossbeam-epoch to 0.9.20 (RUSTSEC-2026-0204) by @rakita in #3804
- chore(deps): bump taiki-e/install-action from 2.82.3 to 2.83.2 by @dependabot[bot] in #3809
- chore(deps): bump MarcoIeni/release-plz-action from 0.5.130 to 0.5.131 by @dependabot[bot] in #3810
- chore(deps): bump CodSpeedHQ/action from 4.18.1 to 4.18.5 by @dependabot[bot] in #3808
- chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.20 to 2.1.1 by @dependabot[bot] in #3811
- fix: prevent GasTracker used gas underflow by @1sgtpepper in #3813
- fix(inspector): ignore stale SELFDESTRUCT journal entries by @0xalpharush in #3805
- test(bytecode): cover InvalidMagic and verify EIP-7702 magic constants by @4waan in #3806
- fix(bytecode): preserve iterator position after truncated push by @pengqima in #3800
- fix(context): keep is_empty on EIP-7702 account in load_account_delegated by @cuiweixie in #3802
- chore(deps): bump crate-ci/typos from 1.47.2 to 1.48.0 by @dependabot[bot] in #3791
- feat(amsterdam): glamsterdam devnet-7 alignment (EIP-2780 runtime gas phase, fixtures v7.0.0) by @rakita in #3795
- refactor(handler): validate state before tracking gas by @klkvr in #3815
- fix(inspector): forward EIP-7708 transfer logs to the inspector by @rakita in #3816
- chore: release by @github-actions[bot] in #3814
- bump: prep v114 release by @rakita in #3819
New Contributors
- @asdv23 made their first contribution in #3746
- @KyrinCode made their first contribution in #3780
- @mrheyday made their first contribution in #3730
- @0xalpharush made their first contribution in #3784
- @weifanglab made their first contribution in #3792
- @1sgtpepper made their first contribution in #3813
- @4waan made their first contribution in #3806
- @pengqima made their first contribution in #3800
Full Changelog: v113...v114