What's Changed
- docs: document everything, dedup existing docs by @DaniPopes in #741
- chore: reorder JournalState impl by @mattsse in #772
- chore: reorder env members by @mattsse in #771
- chore(primitives): Precompile Error Display + Error Trait Implementations by @refcell in #777
- fix(primitives): Use Upstream Alloy Create Implementations by @refcell in #775
- chore(primitives): State Cleanup by @refcell in #776
- fix(primitives): Error Primitive Display + Error Implementations by @refcell in #770
- chore(primitives): Empty Account Tests by @refcell in #780
- chore(primitives): Remove Dead StateRef Method by @refcell in #779
- chore(primitives): OptimismFields Docs Cleanup by @refcell in #778
- feat(revm): implement DatabaseRef trait for EthersDB by @0xkr8os in #774
- docs: clang requirement by @yash-atreya in #784
- chore(primitives): Include alloy-primitives std feature. by @tonyke-bot in #788
- chore(deps): bump alloy-primitives from 0.4.0 to 0.4.2 by @dependabot in #787
- chore(deps): bump tokio from 1.32.0 to 1.33.0 by @dependabot in #785
- Fix typos by @xiaolou86 in #790
- Shared memory between calls by @thedevbirb in #673
- getter for
states
field ofBundleBuilder
by @alessandromazza98 in #792 - feat: add methods to
CreateInput
for calculating created address by @DaniPopes in #793 - feat: derive more traits by @DaniPopes in #745
- feat(precompile): use Aurora modexp lib. by @rakita in #769
- Instruction table by @rakita in #759
- chore: make memory-limit private by @mattsse in #796
- fix: rename
DatabaseRef
trait functions to*_ref
by @silathdiir in #795 - fix: Optimism execution by @Wollac in #789
- feat: add changed storage slots iter by @mattsse in #801
- feat(interpreter): add more helper methods to memory by @DaniPopes in #794
- feat: add more
auto_impl
s to revm traits by @DaniPopes in #799 - chore(deps): bump serde from 1.0.188 to 1.0.189 by @dependabot in #802
- chore(deps): bump bitflags from 2.4.0 to 2.4.1 by @dependabot in #803
- refactor: remove
step
andstep_end
return result by @makcandrov in #804 - chore: use
array::from_fn
inmake_instruction_table
by @DaniPopes in #809 - chore(SharedMemory): small internal refactoring by @thedevbirb in #806
- docs(fix): cleaned example command for running tests by @tikhoplav in #810
- chore: refactor main return to handle by @rakita in #808
- chore: for now support 1.69 rust compiler by @rakita in #814
- chore: Refactor evm data to its file by @rakita in #815
- bump: secp256k1 from 0.27 to 0.28 by @rakita in #817
- feat(revme): format kzg setup by @rakita in #818
- chore(deps): bump thiserror from 1.0.49 to 1.0.50 by @dependabot in #820
- chore(deps): bump hashbrown from 0.14.1 to 0.14.2 by @dependabot in #819
- fix typos in revm crate by @kevinheavey in #821
- chore(eip4844): update kzg trusted setup by @rakita in #822
- feat: add is_empty_code_hash fn by @mattsse in #826
- chore(deps): make derive-more optional by @mattsse in #827
- chore(state): make bundle state non-optional by @rkrasiuk in #828
- chore: make context memory pub by @mattsse in #831
- chore(state): make
State::apply_transition
pub by @rkrasiuk in #832 - feat(cfg): optionally disable beneficiary reward by @rkrasiuk in #834
- fix(op): Base Goerli
op-reth
sync patches by @clabby in #824 - chore: Refactor precompile list from Hash to vec by @rakita in #823
- refactor: rewrite
Stack::push_slice
to allow arbitrary lengths by @DaniPopes in #812 - feat: transition account balance delta by @rkrasiuk in #843
- chore(state): simplify control flow in
CacheState::apply_evm_state
by @rkrasiuk in #842 - perf: decode KZG points directly into the buffers by @DaniPopes in #840
- chore(state): move account status transitions to
AccountStatus
by @rkrasiuk in #844 - chore(state): consistent selfdestruct status transition by @rkrasiuk in #847
- chore: bump c-kzg to v0.4.0 by @rakita in #849
- chore(deps): bump serde_json from 1.0.107 to 1.0.108 by @dependabot in #848
- chore(deps): bump futures from 0.3.28 to 0.3.29 by @dependabot in #839
- chore(deps): bump serde from 1.0.189 to 1.0.190 by @dependabot in #838
- chore: Loop call stack by @rakita in #851
- chore(deps): bump serde from 1.0.190 to 1.0.191 by @dependabot in #852
- chore: review safety comments by @DaniPopes in #811
- chore(deps): bump serde from 1.0.191 to 1.0.192 by @dependabot in #853
- chore(deps): bump ruint from 1.10.1 to 1.11.0 by @dependabot in #850
- fix(interpreter): Stack
push_slice
fix and dup with pointers (#837) by @DaniPopes in #837 - chore: use keccak256 for blockhash by @minaminao in #854
- chore: change addresses to iterator and add into_addresses by @mattsse in #855
- chore(precompiles): Make PrecompileWithAddress field public, from impl by @0xmiri in #857
- chore(deps): bump tokio from 1.33.0 to 1.34.0 by @dependabot in #856
- chore: Fix rustdoc warnings by @NianSol in #859
- Fix error message for LackOfFundForMaxFee by @bertmiller in #858
- cargo fmt and removed extra newlines by @NianSol in #860
- refactor(interpreter): use the constants from primitives by @IaroslavMazur in #861
- refactor: simplify use statements by @IaroslavMazur in #864
- bump k256 and use normalize_s by @rakita in #870
- refactor(primitives): don't duplicate the SpecId::enabled() logic by @IaroslavMazur in #869
- chore(deps): bump ethers-core from 2.0.10 to 2.0.11 by @dependabot in #868
- chore(deps): bump ethers-contract from 2.0.10 to 2.0.11 by @dependabot in #867
- feat:
Canyon
hardfork behindoptimism
feature flag by @clabby in #871 - feat: implement Default for InstructionResult by @DaniPopes in #878
- chore(deps): run
cargo update
, bump alloy-primitives by @DaniPopes in #880 - fix: safer stack by @mattsse in #879
- chore: clippy by @DaniPopes in #877
- chore: relax state generic by @mattsse in #881
- doc(primitives): Add docs to
optimism
InvalidTransaction
errors. by @clabby in #884 - refactor: fix case for CreateInitCodeSizeLimit error by @IaroslavMazur in #896
- chore(docs): Updated Benchmark Docs by @refcell in #894
- fix(ci): Workflow Touchups by @refcell in #901
- chore(docs): Binary Readme Touchup by @refcell in #898
- chore(deps): bump alloy-primitives from 0.5.0 to 0.5.2 by @dependabot in #900
- feat(revm): Evm Context Tests and test-utils Feature by @refcell in #903
- refactor(revm): leverage StorageSlot methods, where appropriate by @IaroslavMazur in #899
- chore(deps): bump hashbrown from 0.14.2 to 0.14.3 by @dependabot in #885
- feat(examples): Generate Block Traces by @refcell in #895
- feat: add serde derives for
CacheDB
under "serde" flag by @Autoparallel in #911 - feat: add some conversions to InstructionResult by @DaniPopes in #910
- chore(docs): README Benchmark Doc Updates by @refcell in #906
- feat(revm): implement prepend_state for BundleState by @peyha in #907
- chore(deps): bump thiserror from 1.0.50 to 1.0.51 by @dependabot in #915
- chore(deps): bump tokio from 1.34.0 to 1.35.0 by @dependabot in #909
- chore(deps): bump once_cell from 1.18.0 to 1.19.0 by @dependabot in #908
- chore(deps): bump alloy-primitives from 0.5.2 to 0.5.3 by @dependabot in #914
- perf(primitives): optimize AccountInfo.is_empty() by @IaroslavMazur in #922
- fix(primitives): incorrect use of the cfg attribute by @IaroslavMazur in #923
- chore(interpreter): conditionally enable
optional_beneficiary_reward
by @IaroslavMazur in #925 - docs(interpreter): fix the name of the macro referenced by record_memory() by @IaroslavMazur in #926
- chore(deps): bump tokio from 1.35.0 to 1.35.1 by @dependabot in #920
- chore(deps): bump anyhow from 1.0.75 to 1.0.76 by @dependabot in #921
- chore(deps): bump alloy-rlp from 0.3.3 to 0.3.4 by @dependabot in #928
- chore(deps): bump futures from 0.3.29 to 0.3.30 by @dependabot in #927
- chore(deps): bump thiserror from 1.0.51 to 1.0.52 by @dependabot in #929
- chore: relax Bytes requirement and use slice instead by @mattsse in #937
- fix: make revm-primitives no-std with c-kzg feature by @mattsse in #933
- feat(ethersdb): basic_ref return none instead of panic by @0xkr8os in #935
- chore(deps): bump alloy-primitives from 0.5.3 to 0.5.4 by @dependabot in #934
- Closes #797: Comment output of cachegrind in PR by @0x0elliot in #932
- refactor(interpreter): simplify the logic of calc.new_cost() by @IaroslavMazur in #939
- refactor(primitives): improve readability of Env.validate_tx() by @IaroslavMazur in #924
- chore(deps): bump alloy-rlp from 0.3.3 to 0.3.4 by @dependabot in #944
- chore(deps): bump enumn from 0.1.12 to 0.1.13 by @dependabot in #946
- chore(deps): bump thiserror from 1.0.50 to 1.0.55 by @dependabot in #947
- chore(deps): bump serde_json from 1.0.108 to 1.0.110 by @dependabot in #949
- chore(deps): bump anyhow from 1.0.77 to 1.0.79 by @dependabot in #950
- chore(deps): bump secp256k1 from 0.28.0 to 0.28.1 by @dependabot in #954
- chore(deps): bump thiserror from 1.0.55 to 1.0.56 by @dependabot in #953
- ci(cachegrind): add PAT by @rakita in #958
- chore(deps): bump serde from 1.0.194 to 1.0.195 by @dependabot in #957
- chore(deps): bump serde_json from 1.0.110 to 1.0.111 by @dependabot in #955
- Update cachegrind.yml add env by @rakita in #960
- chore(deps): bump k256 from 0.13.2 to 0.13.3 by @dependabot in #959
- refactor(interpreter): local return_error! macro by @IaroslavMazur in #956
- chore(deps): alloy 0.6 by @DaniPopes in #963
- refactor(interpreter): consistency in all_results_are_covered() by @IaroslavMazur in #961
- ci(cachegrind): pass action always by @rakita in #965
- refactor(interpreter): improve enum naming by @IaroslavMazur in #962
- feat: add asm-keccak feature by @Rjected in #972
- chore(deps): bump ethers-core from 2.0.11 to 2.0.12 by @dependabot in #970
- fix: dont calculate initcode keccak on CREATE by @rakita in #969
- feat: External Contexts and simple EvmBuilder by @rakita in #888
- added release-plz config by @0xJepsen in #912
- refactor(interpreter): refactor sstore_cost by @rakita in #974
- chore: remove test link by @rakita in #976
- refactor: enhance readability by @IaroslavMazur in #968
- refactor(EvmBuilder): Remove unnecessary BuilderStage trait by @rakita in #979
- refactor(log): use alloy_primitives::Log by @slordua in #975
- fix: use maximum possible data fee for 4844 balance checks by @Rjected in #981
- fix: cast overflow in 32-bits OS by @dyxushuai in #978
- chore(deps): bump bitflags from 2.4.1 to 2.4.2 by @dependabot in #983
- feat: Convert optimism panic into graceful error by @kekonen in #982
- refactor(Inspector): Add CreateOutcome in create/create_end return by @loocapro in #980
- chore: fix serde std flags for no-std build by @CeciliaZ030 in #987
- fix: missing
deduct_caller
in optimism handler by @Wollac in #988 - refactor(Inspector) add CallOutcome to call/call_end by @loocapro in #985
- feat(revme): make it runnable by goevmlab by @rakita in #990
- chore(revme): add recovery of address from secret key by @rakita in #992
- fect(revme): EmptyDb Blockhash string, json-outcome flag, set prevrandao in statetest by @rakita in #994
- fix: optimism gas refunds by @Wollac in #989
- docs: update create docs by @mattsse in #999
- Remove preserve_order in serde_json by @CeciliaZ030 in #997
- chore: add getter for specId by @mattsse in #998
- docs: update call end docs by @mattsse in #1000
- chore: expose InstructionResult getters in Interpreter result by @mattsse in #1002
- feat(inspector): Share call/create inputs in Inspector call_end/create_end by @rakita in #1003
- chore(Interpreter): Split calls to separate functions by @rakita in #1005
- chore(Inspector): Add return_memory_offset to Inspector::call by @rakita in #1006
- fix(Interpreter): is_revert should call is_revert by @rakita in #1007
- Burntpix criterion bench by @loocapro in #1004
- fix(State): Preserve original values on delete revert by @rakita in #1010
- fix: const to static by @loocapro in #1016
- docs: update Cancun precompiles docs by @DaniPopes in #1015
- chore: make clippy happy by @mattsse in #1020
- docs: add some docs to StorageSlot by @mattsse in #1019
- refactor(Execution): Granular handles create/call,call_return,insert_call_outcome by @rakita in #1024
- feat(op): Ecotone hardfork by @clabby in #1009
- chore(clippy): nightly clippy by @rakita in #1025
- refactor(op): Move op l1 block load to op handler by @rakita in #1026
- chore(deps): bump alloy-sol-macro from 0.6.0 to 0.6.2 by @dependabot in #1013
- chore(deps): bump alloy-primitives from 0.6.0 to 0.6.2 by @dependabot in #1014
- chore(deps): bump serde from 1.0.195 to 1.0.196 by @dependabot in #1022
- chore(deps): bump auto_impl from 1.1.0 to 1.1.2 by @dependabot in #1023
- chore(deps): bump serde_json from 1.0.111 to 1.0.113 by @dependabot in #1027
- chore(Inspector): add inspector depth test by @rakita in #1028
- chore: group handlers by @rakita in #1030
- feat: add
BytecodeLocked::original_bytecode
by @DaniPopes in #1037 - chore(std): Add std HashMap,HashSet by @rakita in #1041
- fix previous commit by @rakita in #1044
- reorder crate listings to match the order in the book by @ilevyor in #1047
- feat: tweeks for v4.0 revm release by @rakita in #1048
- chore(deps): bump ethers-providers from 2.0.11 to 2.0.13 by @dependabot in #1033
- chore(deps): bump ethers-contract from 2.0.11 to 2.0.13 by @dependabot in #1034
- chore(deps): bump alloy-sol-types from 0.6.0 to 0.6.2 by @dependabot in #1035
- chore(deps): bump ethers-core from 2.0.12 to 2.0.13 by @dependabot in #1036
- chore(EvmBuilder): rename builder functions to HandlerCfg by @rakita in #1050
- feat(ci): release-plz on PR and bump ahash by @rakita in #1054
- feat(Handler): add push and pop of hanler registers by @rakita in #1053
- chore(deps): bump tokio from 1.35.1 to 1.36.0 by @dependabot in #1052
- chore(deps): bump eyre from 0.6.11 to 0.6.12 by @dependabot in #1051
- chore(deps): bump secp256k1 from 0.28.1 to 0.28.2 by @dependabot in #1038
- feat(handler): Change spec id on &mut by @rakita in #1055
- tweeks: helper functions around Env by @rakita in #1057
- chore: spelling on last commit by @rakita in #1058
- chore: bump c-kzg and enable blst portable feature by @Rjected in #1059
- chore: v4.0.0 release by @rakita in #1061
New Contributors
- @0xkr8os made their first contribution in #774
- @yash-atreya made their first contribution in #784
- @xiaolou86 made their first contribution in #790
- @silathdiir made their first contribution in #795
- @Wollac made their first contribution in #789
- @makcandrov made their first contribution in #804
- @tikhoplav made their first contribution in #810
- @kevinheavey made their first contribution in #821
- @minaminao made their first contribution in #854
- @0xmiri made their first contribution in #857
- @NianSol made their first contribution in #859
- @bertmiller made their first contribution in #858
- @IaroslavMazur made their first contribution in #861
- @Autoparallel made their first contribution in #911
- @peyha made their first contribution in #907
- @0x0elliot made their first contribution in #932
- @slordua made their first contribution in #975
- @dyxushuai made their first contribution in #978
- @kekonen made their first contribution in #982
- @loocapro made their first contribution in #980
- @CeciliaZ030 made their first contribution in #987
- @ilevyor made their first contribution in #1047
Full Changelog: v26...v27