Skip to content

tag v116, revm v43.0.0

Latest

Choose a tag to compare

@rakita rakita released this 26 Aug 11:02
08c17c1

REVM v116 — all crates v43.0.0

REVM v116 brings every publishable workspace crate to version 43.0.0. This release aligns the implementation with Glamsterdam devnet-8, adds asynchronous database execution, and includes correctness and performance improvements across the EVM stack.

Highlights

  • Glamsterdam devnet-8 gas repricing. Updates EIP-8038 account, storage, CREATE, access-list, refund, and state-gas accounting to the latest devnet values.
  • Async database execution. The new asyncdb feature provides fiber-backed async database support, including async transaction and system-call APIs.
  • Correct self-destruct finalization. Cancun self-destructed accounts are finalized in place; Amsterdam's EIP-8246 preserves a remaining balance when applicable.
  • Execution correctness fixes. Memory growth failures now return MemoryOOG, and failed CREATE pre-access checks no longer warm or add the destination account to the block access list.
  • State and test improvements. Newly created contract code is cached in State, and revme blockchain tests now validate receipt-trie roots.
  • Faster BLS12-381 pairing. The precompile uses fused multi-Miller loops for improved performance.

See the migration guide for full upgrade details.

What's Changed

  • docs(precompile): correct read_fp canonical-check comment by @4waan in #3824
  • perf(precompile): use fused multi-miller loop for BLS12-381 pairing by @4waan in #3823
  • feat: add async database fiber support by @DaniPopes in #3709
  • chore: update Cargo.lock by @rakita in #3827
  • feat(examples): add custom frame in my_evm example by @aroralanuk in #3825
  • chore(deps): bump taiki-e/install-action from 2.83.2 to 2.84.1 by @dependabot[bot] in #3830
  • chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #3831
  • feat(revme): validate receipt trie root in blockchain tests by @rakita in #3841
  • chore(deps): bump ruint to 1.20.0 for RUSTSEC-2026-0220 by @rakita in #3845
  • bench(precompile): cover BLS MSM sizes where blst switches algorithm by @4waan in #3846
  • fix(database): cache newly created contract code by @figtracer in #3855
  • feat: glamsterdam devnet-8 gas repricing by @rakita in #3850
  • bench(precompile): measure the blake2 portable compression path by @4waan in #3848
  • chore: remove duplicate Amsterdam gas overrides and dead CPSB constants by @rakita in #3857
  • bench(precompile): benchmark KZG verify arkworks/blst backends directly by @4waan in #3849
  • fix: check call depth in CREATE pre-access checks (EIP-8037) by @rakita in #3829
  • perf(precompile): unroll blake2 portable rounds to const-fold the message schedule by @4waan in #3840
  • bench(precompile): port benchmarkoor bls12-381 benches from #3766 by @rakita in #3858
  • chore(deps): bump CodSpeedHQ/action from 4.18.5 to 5.0.2 by @dependabot[bot] in #3854
  • chore(deps): bump taiki-e/install-action from 2.84.1 to 2.85.8 by @dependabot[bot] in #3853
  • chore(deps): bump taiki-e/cache-cargo-install-action from 3.0.7 to 3.0.8 by @dependabot[bot] in #3852
  • chore(deps): bump crate-ci/typos from 1.48.0 to 1.49.0 by @dependabot[bot] in #3851
  • chore(deps): bump mozilla-actions/sccache-action from 0.0.10 to 0.0.11 by @dependabot[bot] in #3844
  • docs(handler): clarify PrecompileProvider::run return semantics by @flag4table in #3769
  • fix(state): align Account's manual Deserialize field order with derived Serialize by @WonderLawrence in #3870
  • fix(interpreter): return MemoryOOG when memory resize fails by @cuiweixie in #3864
  • feat(journal): finalize selfdestructed accounts in place from Cancun by @rakita in #3863
  • chore(deps): replace unmaintained bincode with postcard in tests by @rakita in #3874
  • chore: release by @github-actions[bot] in #3862
  • chore: release v116 by @rakita in #3882

New Contributors

Full Changelog: v115...v116