PackageTrack
Sign in Get early access

revm-interpreter

Revm Interpreter that executes bytecode.

42.0.0 8.5M downloads/mo #3401 most downloaded on crates.io bluealloy/revm

What this package is like to depend on

Last release 1 months ago

23 Jul 2026

Ships fairly regularly

a new release about every 4 weeks

Most releases are documented

notes for 56 of 66 stable releases

5 versions withdrawn

withdrawn after publishing

4 years old

77 releases · first in 2023

23 releases in the last 12 months

see the full history below

Release timeline

77 releases · Jan 2023 to Jul 2026
2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 77
  1. 42.0.0 23 Jul 2026
    Release notes

    REVM v42.0.0 Release Notes

    Date: 2026-07-23

    v114 aligns REVM with Glamsterdam devnet-7 and the
    [email protected] 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 flat TX_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: SSTORE must 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::CodeChange now 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: GasTracker used-gas underflow (#3813); is_empty preserved on 7702
      accounts in load_account_delegated (#3802); storage original_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 in take_n_reverts (#3539).
    • chore(deps): crossbeam-epoch 0.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 refund fallible 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

    Full Changelog: v113...v114

    Open source →
    Release notes

    Added

    • (amsterdam) glamsterdam devnet-7 alignment (EIP-2780 runtime gas phase, fixtures v7.0.0) (#3795)
    • (amsterdam) glam devnet-6 gas accounting & EIP alignment (#3782)
    • make max refund quotient configurable (#3757)
    Open source →
  2. 41.0.0 11 Jun 2026
    Release notes

    date: 11.06.2026

    All crates are now versioned in lockstep, starting at 41.0.0 — hence the version jump (e.g. revm-bytecode 11.0.1 → 41.0.0). Released by #3711 and #3753; full diff v112...v113.

    Breaking:

    • TransientStorage is now a newtype over AddressMap<StorageKeyMap<StorageValue>> (#3736)
    • OnStateHook::on_state takes EvmState by value; TransitionAccount gained a storage generic (#3732)
    • GasStateTr removed, superseded by the SSTORE gas hook (#3750)

    Other highlights:

    • SSTORE gas accounting hook (#3734, #3750), StateBuilder::with_bundle_update_if (#3729), Account::is_changed (#3727)
    • Commit perf improvements (#3732)
    • Fix out-of-bounds pointer in analyze_legacy (#3752) and a const-eval panic in pop_address (#3735)

    See MIGRATION_GUIDE.md for migration notes.

    What's Changed

    • docs: add v112 changelog entry by @rakita in #3724
    • feat: Account::is_changed by @klkvr in #3727
    • feat(database): add conditional bundle update builder by @mattsse in #3729
    • perf: avoid reallocations and cloning during commit by @klkvr in #3732
    • feat: add SSTORE gas-state policy hook by @rakita in #3734
    • feat: wrap TransientStorage as AddressMap<StorageKeyMap> by @rakita in #3736
    • fix(interpreter): use IntoAddress in pop_address to avoid const-eval panic by @pjdurden in #3735
    • chore: make GasStateTr expose StateLoad by @0xrusowsky in #3737
    • Add MODEXP precompile benchmarks by @decofe in #3744
    • refactor: remove GasStateTr by @klkvr in #3750
    • Run cargo fmt by @decofe in #3751
    • fix(bytecode): avoid out-of-bounds pointer in analyze_legacy by @anders94 in #3752
    • chore: release by @github-actions[bot] in #3711
    • chore: bump all crates to v41.0.0 by @rakita in #3753

    New Contributors

    Full Changelog: v112...v113

    Open source →
    Release notes

    Added

    • add SSTORE gas-state policy hook (#3734)

    Fixed

    • (interpreter) use IntoAddress in pop_address to avoid const-eval panic (#3735)

    Other

    • run cargo fmt (#3751)
    • remove GasStateTr (#3750)
    • make GasStateTr expose StateLoad (#3737)
    Open source →
  3. 37.0.3 26 May 2026
    Release notes

    Added

    • Bake EIP-8037 CPSB into gas params (#3714)
    Open source →
  4. 37.0.2 22 May 2026
    Release notes

    Other

    • updated the following local packages: revm-context-interface
    Open source →
  5. 37.0.1 21 May 2026
    Release notes

    Other

    • (eip8037) remove dead refill_amount tracking (#3699)
    Open source →
  6. 37.0.0 20 May 2026
    Release notes

    Release v106

    Features

    • EIP-8037 / TIP-1016 state gas support (#3406) — Introduces the state gas reservoir model for separating state and execution gas accounting.
    • Amsterdam devnet3 EIP updates (#3438) — Partial implementation of Amsterdam devnet3 EIP changes.
    • frame_start and frame_end on Inspector trait (#3518) — New inspector hooks for observing frame lifecycle events.
    • Crate-level re-exports for all revm- dependencies* (#3507) — Each revm sub-crate now re-exports its public dependencies for easier downstream use.
    • CallInput::as_bytes (#3515) — Convenience accessor for raw call input bytes.
    • Local context accessors on CallInput (#3537) — Access local context fields directly from CallInput.
    • revme: list all failed tests with --keep-going (#3491) — Summary of all failures printed at the end of test runs.

    Bug Fixes

    • Reject transactions with nonce at u64::MAX (#3553) — Prevents nonce overflow.
    • Ensure both inspectors receive paired call/create events in tuple impl (#3473) — Fixes missing events when using inspector tuples.
    • swap/swapn/exchange report StackOverflow on underflow (#3483) — Correct error variant for stack underflow in swap operations.
    • Expose JournalLoadError from load_account_mut_skip_cold_load (#3477) — Error type was previously hidden.
    • Make Bytecode Ord consistent with PartialEq and Hash (#3479) — Fixes ordering inconsistency.
    • Make DummyHost return defaults instead of errors for storage ops (#3503) — Better behavior for testing.
    • revme: use transact state for debug "State after" output (#3498)
    • revme: guard unconditional println in blockchaintest for --json mode (#3500)

    Refactoring & Breaking Changes

    • Use AnyError for PrecompileError::Fatal and EVMError::Custom (#3502) — Replaces stringly-typed errors with AnyError.
    • Remove option for known bytecode (#3532) — Simplifies bytecode handling.
    • Deprecate set_spec and clean up deprecation attrs (#3550)
    • Move EIP-8037 gas cap validation into validate_initial_tx_gas (#3552)
    • Remove unused gas-related functions (#3534)
    • Take large array args by reference in precompiles (#3524)

    Performance

    • Remove redundant log clone in inspector precompile path (#3520)

    What's Changed

    • ci: add cargo-semver-checks to catch breaking changes in PRs by @decofe in #3476
    • fix: ensure both inspectors receive paired call/create events in tuple impl by @bobtajson in #3473
    • chore: bump aws-lc-rs from 1.16.0 to 1.16.1 by @rakita in #3481
    • chore: simplify stack dup by @DaniPopes in #3478
    • fix: make Bytecode Ord consistent with PartialEq and Hash by @zeroprooff in #3479
    • fix: expose JournalLoadError from load_account_mut_skip_cold_load by @rakita in #3477
    • fix(handler): rename misleading underflow variable to success by @zeroprooff in #3486
    • chore: remove unused bytecode dependency from revm-statetest-types by @bobtajson in #3485
    • fix(interpreter): swap/swapn/exchange report StackOverflow on underflow by @bluebluesaku in #3483
    • chore(revme): use alloy-trie instead of triehash by @DaniPopes in #3488
    • feat(revme): list all failed tests at the end with --keep-going by @rakita in #3491
    • chore: bump c-kzg from 2.1.6 to 2.1.7 by @rakita in #3495
    • docs: clarify PrecompileError::Fatal vs Other and EVMError::Custom by @mattsse in #3496
    • feat: Amsterdam devnet3 EIP updates by @rakita in #3438
    • ci: exclude revme from semver-checks by @bluebluesaku in #3501
    • fix(revme): guard unconditional println in blockchaintest for --json mode by @bluebluesaku in #3500
    • fix(revme): use transact state for debug State after output by @rakita in #3498
    • fix: make DummyHost return defaults instead of errors for storage ops by @decofe in #3503
    • ci: remove semver-checks workflow by @rakita in #3508
    • feat: add crate-level re-exports for all revm-* dependencies by @rakita in #3507
    • refactor: use AnyError for PrecompileError::Fatal and EVMError::Custom by @ndavd in #3502
    • feat: add CallInput::as_bytes by @DaniPopes in #3515
    • Add [OpTrace] to awesome list by @tanghaosuan11 in #3514
    • fix(op-revm): use typed error for missing enveloped tx in all paths by @bluebluesaku in #3509
    • chore: remove no-op background transition merge builder toggle by @saylor-mik87786 in #3510
    • feat(inspector): add frame_start and frame_end to Inspector trait by @mablr in #3518
    • chore: add comment about frame stack initial capacity by @DaniPopes in #3527
    • bench: add secp256r1 (P256) precompile benchmark by @decofe in #3525
    • refactor(precompile): take large array args by reference by @decofe in #3524
    • perf(inspector): remove redundant log clone in precompile path by @saylor-mik87786 in #3520
    • refactor: remove redundant Option by @klkvr in #3532
    • feat: Add local context accessors to CallInput by @rakita in #3537
    • fix: Remove unused gas-related functions by @popzxc in #3534
    • ci: add PR audit workflow by @legion2002 in #3551
    • refactor: deprecate set_spec and clean up deprecation attrs by @rakita in #3550
    • feat: add EIP-8037 / TIP-1016 state gas support by @rakita in #3406
    • refactor: state gas cleanup and EIP-8037 validation consolidation by @rakita in #3552
    • chore: release by @github-actions[bot] in #3472
    • fix: reject transactions with nonce at u64::MAX by @rakita in #3553
    • chore: v106 release prep by @rakita in #3554

    New Contributors

    Full Changelog: v105...v106

    Open source →
    Release notes

    Added

    • (eip8037) Amsterdam bal-devnet-7 (#3667)

    Fixed

    • (bytecode) mark Bytecode::new_analyzed as unsafe (#3557)

    Other

    • change &mut self to &self for read-only methods (#3669)
    • (interpreter) cache init_code_hash in CreateInputs for inspector reuse (#3664)
    • (interpreter) unify call handlers (#3626)
    • rm unused MemoryExtensionResult (#3646)
    • remove unused spec ids (#3649)
    • audit #[allow] attributes (#3611)
    • backport v107 release notes from branch (#3617)
    • move memory_limit check into cold resize path (#3599)
    • [breaking] return Result from instruction functions (#3558)
    • enable and fix clippy::missing_const_for_fn (#3592)
    • (interpreter) separate instruction and gas tables (#3561)
    • thread reservoir through OOG constructors (#3580)
    • pass reservoir into first_frame_input (#3578)
    • (interpreter) dedup account loading across host instructions (#3562)
    • rm op-revm (migrated to ethereum-optimism/optimism) (#3568)
    • (interpreter) remove unused loop_control module (#3555)
    Open source →
  7. 36.0.0 19 May 2026

    Nothing published for this version

  8. 35.0.1 17 Apr 2026
    Release notes

    Other

    • pass reservoir into first_frame_input (#3578)
    Open source →
  9. 35.0.0 10 Apr 2026
    Release notes

    Added

    • add EIP-8037 / TIP-1016 state gas support (#3406)
    • Add local context accessors to CallInput (#3537)
    • add CallInput::as_bytes (#3515)
    • add crate-level re-exports for all revm-* dependencies (#3507)
    • Part of amsterdam devnet3 EIP updates (#3438)

    Fixed

    • Remove unused gas-related functions (#3534)
    • (interpreter) swap/swapn/exchange report StackOverflow on underflow (#3483)

    Other

    • deprecate set_spec and clean up deprecation attrs (#3550)
    • remove option for known bytecode (#3532)
    • simplify stack dup (#3478)
    Open source →
  10. 34.0.0 04 Mar 2026
    Release notes

    Other

    • [breaking] bump revm-context-interface to v16.0.0 (⚠ dependency bump)
    Open source →
  11. 33.0.0 03 Mar 2026 withdrawn
    Release notes

    Added

    • Implement EIP-7843 SLOTNUM opcode for Amsterdam (#3340)
    • Implement EIP-8024 for Amsterdam (#3223)

    Fixed

    • (bytecode) improve analyze_legacy padding for SWAPN/DUPN/EXCHANGE (#3332)

    Other

    • [breaking] flatten Bytecode (#3375)
    • (interpreter) deduplicate slice range logic (#3376)
    • remove GPL mention and update gmp feature comments (#3383)
    • elide some jumps in jump (#3347)
    • remove outdated stack pop TODO (#3315)
    Open source →
  12. 32.0.0 15 Jan 2026
    Release notes

    Added

    • add new_oog helpers to InterpreterResult, CallOutcome, CreateOutcome, and FrameResult (#3309)
    • new gas params, tx initial gas and codedeposit (#3260)
    • move GasParams to Cfg (#3229)
    • BAL EIP-7928 (#3070)
    • Gas params (#3132)
    • (create) Implement Cache for CreateInputs::created_address (#3218)

    Fixed

    • (create) Fix CreateInputs::created_address Cache invalidation (#3222)

    Other

    • fix typos, grammar errors, and improve documentation consistency (#3294)
    • add optimization for push and pop (#3263)
    • happy new year, 2026 licence (#3272)
    • avoid loading bytecode in extcodehash (#3261)
    • (clippy) remove unused imports (#3227)
    • (fmt) merge all imports (#3184)
    Open source →
  13. 31.1.0 14 Nov 2025
    Release notes

    Fixed

    • correctly handle selfdestruct cold load (#3174)
    Open source →
  14. 31.0.0 12 Nov 2025
    Release notes

    Added

    • process precompile logs to inspector (#3148)
    • selfdestruct oog on cold load (#3140)

    Other

    • merge v98 versions bumps (#3155)
    • add eq/serde for InitialAndFloorGas (#3147)
    • (interpreter) deprecate public otry! macro (#3146)
    Open source →
  15. 30.0.0 10 Nov 2025 withdrawn

    Nothing published for this version

  16. 29.0.1 07 Nov 2025
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-context-interface
    Open source →
  17. 29.0.0 30 Oct 2025

    Nothing published for this version

  18. 28.0.0 17 Oct 2025
    Release notes

    Added

    • Optional Bytecode in CallInput (#3110)

    Fixed

    • return MemoryLimitOOG when memory_limit is enabled (#3109)

    Other

    • (instructions) fix typo in spurious_dragon variable (#3106)
    Open source →
  19. 27.0.2 15 Oct 2025
    Release notes

    Other

    • updated the following local packages: revm-bytecode, revm-state, revm-context-interface
    Open source →
  20. 27.0.1 15 Oct 2025
    Release notes

    Fixed

    • support legacy JumpTable serde format (#3098)

    Other

    • make CallInput::bytes accept immutable ContextTr (#3082)
    Open source →
  21. 27.0.0 09 Oct 2025
    Release notes

    Other

    • remove deprecated methods (#3050)
    Open source →
  22. 26.0.0 07 Oct 2025
    Release notes

    Added

    • Support bubbling up first precompile error messages (#2905)
    • send bytecode with call input (#2963)

    Fixed

    • remove redundant U256::from on Host getters in instructions (#3053)
    • (interpreter) remove redundant stack underflow check in LOG instruction (#3028)
    • unsafe stack capacity invariant and serde deserialization assumptions (#3025)
    • Apply spelling corrections from PRs #2926, #2915, #2908 (#2978)
    • skip cold load on oog (#2903)

    Other

    • changelog update for v87 (#3056)
    • add boundless (#3043)
    • expose stack data (#3047)
    • use offset_from_unsigned (#2999)
    • rm eof comments (#2987)
    • comments on EIP-2929/2930 constants (#2969)
    • add SECURITY.md (#2956)
    • remove duplicate comment for TOTAL_COST_FLOOR_PER_TOKEN constant (#2950)
    • clean static_selfdestruct_cost (#2944)
    • rename SELFDESTRUCT to SELFDESTRUCT_REFUND (#2937)
    Open source →
  23. 25.0.3 23 Sep 2025
    Release notes

    Other

    • updated the following local packages: revm-context-interface
    Open source →
  24. 25.0.2 24 Aug 2025
    Release notes

    Fixed

    • (interpreter) correct CreateContractStartingWithEF halt mapping (#2890)
    Open source →
  25. 25.0.1 12 Aug 2025
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode, revm-context-interface
    Open source →
  26. 25.0.0 07 Aug 2025
    Release notes

    Added

    • short address for journal cold/warm check (#2849)
    • gastable, record static gas in Interpreter loop (#2822)

    Fixed

    • map new once and for all (+ci) (#2852)

    Other

    • (deps) bump ruint (#2811)
    • specialize halt, making instruction code very slightly smaller (#2840)
    • update README.md (#2842)
    • add debug assertions to set_action (#2832)
    • improve ExtBytecode hash handling (#2826)
    • fix inspector, cleanup loop (#2797)
    • start InstructionResult at 1 (#2802)
    • fix typos (#2800)
    • improve inspector loop (#2776)
    • add rust-version and note about MSRV (#2789)
    • collapse debug info for interpreter macros (#2780)

    Changelog

    All notable changes to this project will be documented in this file.

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    Open source →
  27. 24.0.0 23 Jul 2025
    Release notes

    Added

    • (interpreter) update CLZ cost (#2739)

    Fixed

    • features and check in ci (#2766)

    Other

    • un-Box frames (#2761)
    • interpreter improvements (#2760)
    • evaluate instruction table initializer at compile time (#2762)
    • discard generic host implementation (#2738)
    • add release safety section for SharedMemory fn (#2718)
    • (interpreter) update docs for slice_mut and slice_range (#2714)
    Open source →
  28. 23.0.2 14 Jul 2025
    Release notes

    Other

    • simplify gas calculations by introducing a used() method (#2703)
    Open source →
  29. 23.0.1 03 Jul 2025
    Release notes

    Other

    • updated the following local packages: revm-bytecode, revm-context-interface
    Open source →
  30. 23.0.0 30 Jun 2025

    Nothing published for this version

  31. 22.0.1 20 Jun 2025
    Release notes

    Other

    • updated the following local packages: revm-context-interface
    Open source →
  32. 22.0.0 19 Jun 2025 withdrawn
    Release notes

    Added

    • remove EOF (#2644)
    • configurable contract size limit (#2611) (#2642)
    • (precompile) rug/gmp-based modexp (#2596)
    • add clz opcode (#2598)
    • added instruction_result fn in LoopControl trait (#2595)

    Other

    • lints handler inspector interpreter (#2646)
    • bump all deps (#2647)
    • re-use frame allocation (#2636)
    • make CallInput default 0..0 (#2621)
    Open source →
  33. 21.0.0 06 Jun 2025
    Release notes

    Added

    • expand timestamp/block_number to u256 (#2546)
    • transact multi tx (#2517)

    Other

    • ContextTr rm *_ref, and add *_mut fn (#2560)
    • simplify Interpreter loop (#2544)
    • Add InstructionContext instead of Host and Interpreter (#2548)
    Open source →
  34. 20.0.0 23 May 2025
    Release notes

    Added

    • expose Gas::memory field (#2512)
    • added CallInput::bytes<CTX>(ctx: &CTX) -> Bytes {} function (#2507)

    Other

    • make crates.io version badge clickable (#2526)
    • fix clippy (#2523)
    • Storage Types Alias (#2461)
    Open source →
  35. 19.1.0 07 May 2025
    Release notes

    Dependency bump

    Open source →
  36. 19.0.0 07 May 2025 withdrawn
    Release notes

    Added

    • (Osaka) disable EOF (#2480)
    • skip cloning of call input from shared memory (#2462)
    • Add a custom address to the CreateScheme. (#2464)
    • replace input Bytes and refactored code where required (#2453)
    • (EOF) Changes needed for devnet-1 (#2377)
    • Move SharedMemory buffer to context (#2382)

    Fixed

    • (inspector) fix call return with Some (#2469)
    • skip account list for legacy (#2400)

    Other

    • Add Bytecode address to Interpreter (#2479)
    • make ReturnDataImpl and LoopControlImpl public (#2470)
    • copy edit The Book (#2463)
    • Replace InterpreterAction with InterpreterTypes::Output (#2424)
    • simplify reading signed integers (#2456)
    • (revm-interpreter) remove unused deps (#2447)
    • bump dependency version (#2431)
    • fixed broken link (#2421)
    Open source →
  37. 18.0.0 09 Apr 2025
    Release notes

    Added

    • (tests) Add dupn, swapn and exhange tests (#2343)
    • support for system calls (#2350)

    Other

    • (test) uncommented bitwise.rs and system.rs tests (#2370)
    • (tests) fix program counter for eof jump instructions (#2368)
    • fix tests in data.rs file (#2365)
    • remove redundant U256 conversions in instructions (#2364)
    • add 0x prefix to b256! and address! calls (#2345)
    Open source →
  38. 17.0.0 28 Mar 2025
    Release notes

    Other

    • remove redundant clone (#2293)
    • Remove LATEST variant from SpecId enum (#2299)
    • make number more readable (#2300)
    Open source →
  39. 16.0.0 24 Mar 2025
    Release notes

    Stable version

    Open source →
  40. 16.0.0-alpha.7 21 Mar 2025 pre-release
    Release notes

    Added

    • allow reuse of API for calculating initial tx gas for tx (#2215)

    Other

    Open source →
  41. 16.0.0-alpha.6 16 Mar 2025 pre-release
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode, revm-context-interface
    Open source →
  42. 16.0.0-alpha.5 12 Mar 2025 pre-release
    Release notes

    Added

    • add custom error to context (#2197)
    Open source →
  43. 16.0.0-alpha.4 11 Mar 2025 pre-release
    Release notes

    Fixed

    • correct propagate features (#2177)
    Open source →
  44. 16.0.0-alpha.3 10 Mar 2025 pre-release
    Release notes

    Fixed

    • set zero if blockhash is out of range (#2173)
    Open source →
  45. 16.0.0-alpha.2 10 Mar 2025 pre-release withdrawn
    Release notes

    Added

    • remove specification crate (#2165)
    • Standalone Host, remove default fn from context (#2147)
    • allow host to be implemented on custom context (#2112)

    Other

    • JournalTr, JournalOutput, op only using revm crate (#2155)
    • docs and cleanup (rm Custom Inst) (#2151)
    • add immutable gas API to LoopControl (#2134)
    • expose popn macros (#2113)
    • Add docs to revm-bytecode crate (#2108)
    • fix wrong comment & remove useless struct (#2105)
    • move all dependencies to workspace (#2092)
    Open source →
  46. 16.0.0-alpha.1 16 Feb 2025 pre-release
    Release notes

    Added

    • Evm structure (Cached Instructions and Precompiles) (#2049)
    • Add essential EIP-7756 tracing fields (#2023)
    • Context execution (#2013)
    • EthHandler trait (#2001)
    • (EIP-7623) adjuct floor gas check order (main) (#1991)
    • (eip7702) apply latest EIP-7702 changes, backport from v52 (#1969)
    • (EIP-7623) Increase calldata cost. backport from rel/v51 (#1965)
    • simplify Transaction trait (#1959)
    • align Block trait (#1957)
    • Make Ctx journal generic (#1933)
    • Restucturing Part7 Handler and Context rework (#1865)
    • (interpreter) impl Clone for Stack (#1820)
    • restructuring Part6 transaction crate (#1814)
    • Merge validation/analyzis with Bytecode (#1793)
    • restructure Part2 database crate (#1784)
    • project restructuring Part1 (#1776)
    • introducing EvmWiring, a chain-specific configuration (#1672)

    Fixed

    • make macro crate-agnostic (#1802)

    Other

    • backport op l1 fetch perf (#2076)
    • add default generics for InterpreterTypes (#2070)
    • Check performance of gas with i64 #1884 (#2062)
    • Bump licence year to 2025 (#2058)
    • relax halt reason bounds (#2041)
    • remove duplicate instructions (#2029)
    • align crates versions (#1983)
    • Add bytecode hash in interpreter #1888 (#1952)
    • Make inspector use generics, rm associated types (#1934)
    • use MemoryOOG (#1941)
    • fix comments and docs into more sensible (#1920)
    • Move CfgEnv from context-interface to context crate (#1910)
    • implement serde for interpreter (#1909)
    • make ExtBytecode pointer private (#1904)
    • fix typos (#1868)
    • (primitives) replace HashMap re-exports with alloy_primitives::map (#1805)
    • refactor -copy common code (#1799)
    • add ReentrancySentryOOG for SSTORE (#1795)
    • simplify SuccessOrHalt trait bound (#1768)
    Open source →
  47. 15.2.0 11 Feb 2025
    Release notes

    Other

    • revm v19.4.0 tag v54
    Open source →
  48. 15.1.0 13 Jan 2025
    Release notes

    Added

    • (EIP-7623) adjuct floor gas check order (#1990)
    Open source →
  49. 15.0.0 26 Dec 2024
    Release notes

    Added

    • apply latest EIP-7702 changes (#1850)
    • (Prague) EIP-7623 Increase Calldata Cost (#1744)
    Open source →
  50. 14.0.0 06 Nov 2024
    Release notes

    Other

    • bump alloy-eip7702 and remove Parity re-export (#1842)
    Open source →
  51. 13.0.0 23 Oct 2024
    Release notes

    Other

    • updated the following local packages: revm-primitives
    Open source →
  52. 12.0.0 17 Oct 2024
    Release notes

    Other

    • updated the following local packages: revm-primitives
    Open source →
  53. 11.0.0 17 Oct 2024
    Release notes

    Other

    • updated the following local packages: revm-primitives
    Open source →
  54. 10.0.3 26 Sep 2024
    Release notes

    Other

    • updated the following local packages: revm-primitives
    Open source →
  55. 10.0.2 18 Sep 2024
    Release notes

    Other

    • make clippy happy (#1755)
    Open source →
  56. 10.0.1 30 Aug 2024
    Release notes

    Other

    Open source →
  57. 10.0.0 29 Aug 2024
    Release notes

    Added

    • (eip7702) Impl newest version of EIP (#1695)
    Open source →
  58. 9.0.0 08 Aug 2024
    Release notes

    Added

    • (EOF) add evmone test suite (#1689)
    • check for typos in CI (#1686)
    • (EOF) Add non-returning CALLF/JUMPF checks (#1663)
    • (EOF) EOF Validation add code type and sub container tracker (#1648)
    • (EOF) implement std::error::Error trait for EofValidationError and EofError (#1649)
    • (interpreter) derive traits on FunctionStack (#1640)

    Fixed

    • add DATACOPY to OpCode::modifies_memory (#1639)
    • (EOF) returning to non-returning jumpf, enable valition error (#1664)
    • (EOF) Validate code access in stack (#1659)
    • (eof) deny static context in EOFCREATE (#1644)

    Other

    • improve InstructionResult documentation (#1673)
    • Add EOF Layout Fuzz Loop to revme bytecode (#1677)
    • (eof) Add opcodes that expand memory (#1665)
    • (clippy) 1.80 rust clippy list paragraph ident (#1661)
    • avoid cloning original_bytes (#1646)
    • use is_zero for U256 and B256 (#1638)
    • fix some typos & remove useless Arc::clone (#1621)
    • (eof) avoid some allocations (#1632)
    • bump versions bcs of primitives (#1631)
    Open source →
  59. 8.1.0 16 Jul 2024

    Nothing published for this version

  60. 8.0.0 16 Jul 2024
    Release notes

    Added

    • (eof) cli eof-validation (#1622)
    • use kzg-rs for kzg point evaluation (#1558)

    Fixed

    • (eip7702) Add tests and fix some bugs (#1605)
    • (EOF) MIN_CALLEE_GAS light failure, static-mode check (#1599)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive