Skip to content

Latest commit

 

History

History
661 lines (443 loc) · 32.1 KB

File metadata and controls

661 lines (443 loc) · 32.1 KB

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.

[Unreleased]

42.0.0 - 2026-07-16

Added

  • (amsterdam) glam devnet-6 gas accounting & EIP alignment (#3782)
  • make max refund quotient configurable (#3757)

Fixed

  • (inspect) finalize journal on error to prevent EIP-2929 warm set leak (#3780)
  • faillible refund (#3758)

Other

  • (revme) separate bytecode from account in test state (#3803)
  • clarify EIP-7702 regular-gas GasId names (#3725)

41.0.0 - 2026-06-11

Other

  • updated the following local packages: revm-bytecode, revm-state, revm-database-interface, revm-context-interface, revm-context, revm-database, revm-interpreter, revm-precompile

20.0.3 - 2026-05-26

Added

  • Bake EIP-8037 CPSB into gas params (#3714)

20.0.2 - 2026-05-22

Other

  • updated the following local packages: revm-database-interface, revm-context-interface, revm-context, revm-database, revm-interpreter, revm-precompile

20.0.1 - 2026-05-21

Other

  • (eip8037) remove dead refill_amount tracking (#3699)

20.0.0 - 2026-05-19

Added

  • (eip8037) Amsterdam bal-devnet-7 (#3667)
  • propagate InitialAndFloorGas to validate_against_state_and_deduct_caller (#3577)

Fixed

  • (precompile) halt with PrecompileOOG when precompile over-spends gas (#3639)
  • re-add PrecompileOutput::gas_refunded (#3574)
  • (handler) skip reimburse_caller and reward_beneficiary when fee charge is disabled (#3559)

Other

  • (interpreter) cache init_code_hash in CreateInputs for inspector reuse (#3664)
  • Revert "refactor: use Cow for warm precompile addresses (#3652)" (#3653)
  • use Cow for warm precompile addresses (#3652)
  • reject nonce-max senders before execution (#3531)
  • audit #[allow] attributes (#3611)
  • backport v107 release notes from branch (#3617)
  • enable and fix clippy::missing_const_for_fn (#3592)
  • avoid cloning precompiles on warmup (#3586)
  • (interpreter) separate instruction and gas tables (#3561)
  • thread reservoir through OOG constructors (#3580)
  • pass reservoir into first_frame_input (#3578)
  • rm op-revm (migrated to ethereum-optimism/optimism) (#3568)

18.1.0 - 2026-04-17

Added

  • propagate InitialAndFloorGas to validate_against_state_and_deduct_caller (#3577)

Fixed

  • re-add PrecompileOutput::gas_refunded (#3574)

Other

  • pass reservoir into first_frame_input (#3578)

18.0.0 - 2026-04-10

Added

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

Other

  • move EIP-8037 gas cap validation into validate_initial_tx_gas (#3552)
  • remove option for known bytecode (#3532)
  • use AnyError for PrecompileError::Fatal and EVMError::Custom (#3502)
  • (handler) rename misleading underflow variable to success (#3486)

17.0.0 - 2026-03-04

Other

  • bump revm-database-interface to v10.0.0

16.0.0 - 2026-03-02

Added

  • (gas_params) add configurable EIP-7702 auth refund (#3366)

Fixed

  • (handler) respect is_fee_charge_disabled in calculate_caller_fee (#3401)

Other

  • (handler) remove Default for EthPrecompiles and EthInstructions (#3434)
  • remove unused alloy-provider dev-dependency (#3423)
  • [breaking] add logs to Revert and Halt variants of ExecutionResult (#3424)
  • [breaking] add ResultGas struct to ExecutionResult (#3413)
  • [breaking] flatten Bytecode (#3375)
  • remove GPL mention and update gmp feature comments (#3383)
  • use fixed bytes hashmaps from alloy-core (#3358)
  • (handler) extract duplicate ContextError handling (#3312)
  • (revm-handler) add ItemOrResult::map_item (alias map_frame) (#3320)

15.0.0 - 2026-01-15

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)
  • Gas params (#3132)
  • (create) Implement Cache for CreateInputs::created_address (#3218)
  • JournaledAccount sload/sstore (#3201)
  • Restrict Database::Error. JournaledAccountTr (#3199)

Fixed

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

Other

  • apply improvements from ai-bot labeled PRs (#3297)
  • fix typos, grammar errors, and improve documentation consistency (#3294)
  • happy new year, 2026 licence (#3272)
  • description of Handler::validate_against_state_and_deduct_caller should match responsibilities (#3256)
  • (handler) eliminate code duplication in transaction validation (#3243)
  • (handler) validate_initial_tx_gas takes &mut Evm (#3235)
  • (clippy) remove unused imports (#3227)
  • optimize vector initialization using size hints (#3200)
  • apply_auth_list helper fn (#3187)
  • (fmt) merge all imports (#3184)

14.1.0 - 2025-11-14

Other

  • updated the following local packages: revm-context-interface, revm-context, revm-database, revm-interpreter

14.0.0 - 2025-11-10

Added

  • process precompile logs to inspector (#3148)
  • add gas refund to PrecompileOutput (#3152)

Other

  • merge v98 versions bumps (#3155)

12.0.2 - 2025-11-10

Other

  • updated the following local packages: revm-database, revm-context

12.0.1 - 2025-11-07

Other

  • updated the following local packages: revm-primitives, revm-context, revm-bytecode, revm-state, revm-database-interface, revm-context-interface, revm-database, revm-interpreter, revm-precompile

12.0.0 - 2025-10-30

Added

  • JournaledAccount, a nice way to update and track changes (#3086)
  • dont load access list immediately (#3116)

Fixed

  • hook up Cfg::memory_limit (#3129)

Other

  • (op) use helper function in validate against state (#3069)
  • remove redundant alloy-eip7702 from handler dev-dependencies (#3105)

11.2.0 - 2025-10-17

Added

  • Optional Bytecode in CallInput (#3110)

11.1.2 - 2025-10-15

Other

  • updated the following local packages: revm-bytecode, revm-state, revm-database-interface, revm-context-interface, revm-context, revm-database, revm-interpreter

11.1.1 - 2025-10-15

Other

  • resize short addresses bitvec instead of reallocating (#3083)
  • (handler) extract duplicate gas price validation (#3045)

11.1.0 - 2025-10-09

Other

  • helper calculate_caller_fee (#3040)

11.0.0 - 2025-10-07

Added

  • Support bubbling up first precompile error messages (#2905)
  • in JumpTable use Bytes instead of BitVec (#3014)
  • add transaction index to batch execution error handling (#3000)
  • allow EIP-7623 to be disabled (#2985)
  • send bytecode with call input (#2963)
  • (revme) ef blockchain tests cli (#2935)

Fixed

  • Apply spelling corrections from PRs #2926, #2915, #2908 (#2978)
  • interpreter_result_mut should return mutable reference (#2941)
  • FrameStack mark push/end_init as unsafe (#2929)

Other

  • changelog update for v87 (#3056)
  • add boundless (#3043)
  • helper function gas_balance_spending (#3030)
  • helper caller_initial_modification added (#3032)
  • Frame use From in place of Into (#3036)
  • EvmTr and InspectorEvmTr receive all/all_mut fn (#3037)
  • add ensure_enough_balance helper (#3033)
  • prealloc few frames (#2965)
  • Fix infinite recursion in EthPrecompiles PrecompileProvider methods (#2962)
  • add SECURITY.md (#2956)
  • update EthFrame::invalid visibility (#2947)
  • remove unused generic from validate_tx_env and fix call site (#2946)
  • cargo update (#2930)
  • (handler) provide &CallInputstoPrecompileProvider::run (#2921)

10.0.1 - 2025-09-23

Other

  • updated the following local packages: revm-context-interface, revm-context, revm-interpreter

10.0.0 - 2025-08-23

Added

  • (fusaka) Add PrecompileId (#2904)

9.0.1 - 2025-08-12

Other

  • updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-context-interface, revm-database, revm-precompile, revm-database-interface, revm-context, revm-interpreter

9.0.0 - 2025-08-06

Added

  • short address for journal cold/warm check (#2849)
  • gastable, record static gas in Interpreter loop (#2822)
  • fix renamed functions for system_call (#2824)
  • Align naming of SystemCallEvm function to ExecuteEvm (#2814)

Fixed

  • nonce changed is not reverted in journal if fail due to insufficient balance (#2805)

Other

  • update README.md (#2842)
  • rm commented code (#2839)
  • (benches) clean up criterion callsites (#2833)
  • improve ExtBytecode hash handling (#2826)
  • fix run-tests.sh (#2801)
  • reuse global crypto provide idea (#2786)
  • add rust-version and note about MSRV (#2789)
  • Add dyn Crypto trait to PrecompileFn (#2772)

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.

8.1.0 - 2025-07-23

Added

  • add a way for precompiles to revert (#2711)

Fixed

  • fully deprecate serde-json (#2767)
  • system call should have 30M gas limit (#2755)
  • gas deduction with disable_balance_check (#2699)

Other

  • change gas parameter to immutable reference (#2702)
  • remove State bound from JournalTr in Handler::Evm (#2715)

8.0.3 - 2025-07-14

Other

  • simplify gas calculations by introducing a used() method (#2703)

8.0.2 - 2025-07-03

Other

  • document external state transitions for EIP-4788 and EIP-2935 (#2678)
  • minor fixes (#2686)
  • fix in pre_execution.rs about nonce bump for CREATE (#2684)

8.0.1 - 2025-06-30

Added

  • optional_eip3541 (#2661)

Other

  • cargo clippy --fix --all (#2671)
  • use TxEnv::builder (#2652)
  • fix copy-pasted inner doc comments (#2663)

7.0.1 - 2025-06-20

Fixed

  • call stack_frame.clear() at end (#2656)

7.0.0 - 2025-06-19

Added

  • remove EOF (#2644)
  • configurable contract size limit (#2611) (#2642)
  • (precompile) rug/gmp-based modexp (#2596)
  • change blob_max_count to max_blobs_per_tx (#2608)
  • add optional priority fee check configuration (#2588)

Other

  • lints handler inspector interpreter (#2646)
  • bump all deps (#2647)
  • re-use frame allocation (#2636)
  • store coinbase address separately to avoid cloning warm addresses in the common case (#2634)
  • rename transact methods (#2616)

6.0.0 - 2025-06-06

Added

  • add with_caller for system_transact (#2587)
  • (Osaka) EIP-7825 tx limit cap (#2575)
  • expand timestamp/block_number to u256 (#2546)
  • transact multi tx (#2517)

Other

  • tag v75 revm v24.0.1 (#2563) (#2589)
  • (docs) add lints to database-interface and op-revm crates (#2568)
  • unify calling of journal account loading (#2561)
  • ContextTr rm *_ref, and add *_mut fn (#2560)
  • (cfg) add tx_chain_id_check fields. Optimize effective gas cost calc (#2557)
  • simplify Interpreter loop (#2544)

5.0.1 - 2025-05-31

Other

  • unify calling of journal account loading

5.0.0 - 2025-05-22

Added

  • make blob max number optional (#2532)

Other

  • add TxEnvBuilder::build_fill (#2536)
  • make crates.io version badge clickable (#2526)
  • fix clippy (#2523)
  • Storage Types Alias (#2461)

4.1.0 - 2025-05-07

Dependency bump

4.0.0 - 2025-05-07

Added

  • system_call switch order of inputs, address than bytes (#2485)
  • (Osaka) disable EOF (#2480)
  • skip cloning of call input from shared memory (#2462)
  • Add a custom address to the CreateScheme. (#2464)
  • remove spec id verification on apply_eip7702_auth_list (#2466)
  • (Handler) merge state validation with deduct_caller (#2460)
  • replace input Bytes and refactored code where required (#2453)
  • (tx) Add Either RecoveredAuthorization (#2448)
  • (EOF) Changes needed for devnet-1 (#2377)
  • Move SharedMemory buffer to context (#2382)

Fixed

  • (eof) extdelegate bytecode check after eip7702 load (#2417)
  • skip account list for legacy (#2400)

Other

  • Add clones to FrameData (#2482)
  • Add Bytecode address to Interpreter (#2479)
  • copy edit The Book (#2463)
  • bump dependency version (#2431)
  • fixed broken link (#2421)
  • backport from release branch (#2415) (#2416)
  • (lints) revm-context lints (#2404)

3.0.0 - 2025-04-09

Added

  • support for system calls (#2350)

Other

  • make blob params u64 (#2385)
  • add 0x prefix to b256! and address! calls (#2345)

2.0.0 - 2025-03-28

Added

  • cache precompile warming (#2317)
  • provide more context to precompiles (#2318)
  • Add JournalInner (#2311)

Fixed

  • broken disable balance check (#2286)

Other

  • remove outdated TODO comments (#2325)
  • add EIP-170 contract code size limit tests (#2312)
  • Remove LATEST variant from SpecId enum (#2299)
  • add unit test for EIP-3860 initcode size limit (#2302)

1.0.0 - 2025-03-24

Other

  • updated the following local packages: revm-database, revm-precompile

1.0.0-alpha.7 - 2025-03-21

Added

  • Remove PrecompileError from PrecompileProvider (#2233)
  • allow reuse of API for calculating initial tx gas for tx (#2215)

Other

  • remove wrong &mut and duplicated spec (#2276)
  • Add custom instruction example (#2261)
  • use AccessListItem associated type instead of AccessList (#2214)

1.0.0-alpha.6 - 2025-03-16

Added

  • (docs) MyEvm example and book cleanup (#2218)

1.0.0-alpha.5 - 2025-03-12

Added

  • add custom error to context (#2197)
  • Add tx/block to EvmExecution trait (#2195)

Other

  • add debug to precompiles type (#2193)

1.0.0-alpha.4 - 2025-03-11

Added

  • decouple first_frame_input from inspector (#2180)

Fixed

  • (op) fix inspection call (#2184)
  • correct propagate features (#2177)

Other

  • Add comments to handler methods (#2188)
  • remove CTX phantomdata from precompile providers (#2178)

1.0.0-alpha.3 - 2025-03-10

Other

  • updated the following local packages: revm-interpreter, revm-precompile

1.0.0-alpha.2 - 2025-03-10

Added

  • (handler) add MainnetContext alias generic over Database (#2166)
  • remove specification crate (#2165)

Fixed

  • (op) Handler deposit tx halt, catch_error handle (#2144)
  • call clear (#2091)

Other

  • op-revm cleanup and few docs (#2156)
  • JournalTr, JournalOutput, op only using revm crate (#2155)
  • rename transact_previous to replay, move EvmTr traits (#2153)
  • docs and cleanup (rm Custom Inst) (#2151)
  • move mainnet builder to handler crate (#2138)
  • add immutable gas API to LoopControl (#2134)
  • PrecompileErrors to PrecompileError (#2103)
  • re-export all crates from revm (#2088)

1.0.0-alpha.1 - 2025-02-16

Added

  • Split Inspector trait from EthHandler into standalone crate (#2075)
  • Introduce Auth and AccessList traits (#2079)
  • 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)
  • (EIP-7840) Add blob schedule to execution client cfg (#1980)
  • (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)
  • expose precompile address in Journal, DB::Error: StdError (#1956)
  • Make Ctx journal generic (#1933)
  • removed create address collision check (#1928)
  • Restucturing Part7 Handler and Context rework (#1865)
  • (examples) generate block traces (#895)
  • implement EIP-4844 (#668)
  • (Shanghai) All EIPs: push0, warm coinbase, limit/measure initcode (#376)
  • Migrate primitive_types::U256 to ruint::Uint<256, 4> (#239)
  • Introduce ByteCode format, Update Readme (#156)

Fixed

  • (Inspector) call handler functions (#2026)
  • deduplicate validate_initial_tx_gas API (#2006)
  • (eof) dont run precompile on ext delegate call (#1964)
  • fix typos (#620)

Other

  • set alpha.1 version
  • backport op l1 fetch perf (#2076)
  • relax trait req in EthPrecompiles::default (#2071)
  • add default generics for InterpreterTypes (#2070)
  • API cleanup (#2067)
  • Add helpers with_inspector with_precompile (#2063)
  • Add bytecode hash in interpreter #1888 (#1952)
  • Make inspector use generics, rm associated types (#1934)
  • fix comments and docs into more sensible (#1920)
  • Rename PRAGUE_EOF to OSAKA (#1903)
  • Bump new logo (#1735)
  • (README) add rbuilder to used-by (#1585)
  • added simular to used-by (#1521)
  • add Trin to used by list (#1393)
  • Fix typo in readme (#1185)
  • Add Hardhat to the "Used by" list (#1164)
  • Add VERBS to used by list (#1141)
  • license date and revm docs (#1080)
  • (docs) Update the benchmark docs to point to revm package (#906)
  • (docs) Update top-level benchmark docs (#894)
  • clang requirement (#784)
  • Readme Updates (#756)
  • Logo (#743)
  • book workflow (#537)
  • add example to revm crate (#468)
  • Update README.md (#424)
  • add no_std to primitives (#366)
  • revm-precompiles to revm-precompile
  • Bump v20, changelog (#350)
  • typos (#232)
  • Add support for old forks. (#191)
  • revm bump 1.8. update libs. snailtracer rename (#159)
  • typo fixes
  • fix readme typo
  • Big Refactor. Machine to Interpreter. refactor instructions. call/create struct (#52)
  • readme. debuger update
  • Bump revm v0.3.0. README updated
  • readme
  • Add time elapsed for tests
  • readme updated
  • Include Basefee into cost calc. readme change
  • Initialize precompile accounts
  • Status update. Taking a break
  • Merkle calc. Tweaks and debugging for eip158
  • Replace aurora bn lib with parity's. All Bn128Add/Mul/Pair tests passes
  • TEMP
  • one tab removed
  • readme
  • README Example simplified
  • Gas calculation for Call/Create. Example Added
  • readme usage
  • README changes
  • Static gas cost added
  • Subroutine changelogs and reverts
  • Readme postulates
  • Spelling
  • Restructure project
  • First iteration. Machine is looking okay