From ccca8c68536066a1c43e83eac8933061eb37c142 Mon Sep 17 00:00:00 2001 From: rakita Date: Wed, 7 Feb 2024 14:00:12 +0100 Subject: [PATCH] chore: tag v27, revm v4.0.0 release (#1061) * chore: release * small changes to changelog --- CHANGELOG.md | 12 ++++ Cargo.lock | 10 +-- bins/revm-test/CHANGELOG.md | 72 +++++++++++++++++++ bins/revm-test/Cargo.toml | 4 +- bins/revme/CHANGELOG.md | 83 ++++++++++++++++++++++ bins/revme/Cargo.toml | 4 +- crates/interpreter/CHANGELOG.md | 66 +++++++++++++++++ crates/interpreter/Cargo.toml | 4 +- crates/precompile/CHANGELOG.md | 42 +++++++++++ crates/precompile/Cargo.toml | 4 +- crates/primitives/CHANGELOG.md | 74 +++++++++++++++++++ crates/primitives/Cargo.toml | 2 +- crates/revm/CHANGELOG.md | 122 ++++++++++++++++++++++++++++++-- crates/revm/Cargo.toml | 6 +- 14 files changed, 481 insertions(+), 24 deletions(-) create mode 100644 bins/revm-test/CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 26d918154f..a5ccfeebb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ Because this is workspace with multi libraries, tags will be simplified, and with this document you can match version of project with git tag. +# v27 tag +date 07.02.2023 + +Refactor of Evm logic as list of handlers inside EvmHandler and EvmBuilder that open up the Evm and allow overwriting the default behavior. +Change how call loop (Previously it was recursion) is handled in Evm + +* revm: v4.0.0 +* revm-precompile: v3.0.0 +* revm-primitives: v2.0.0 +* revm-interpreter: v2.0.0 +* revme: 0.2.1 + # v26 tag date 02.10.2023 diff --git a/Cargo.lock b/Cargo.lock index bf32c82094..fcf01731f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2322,7 +2322,7 @@ dependencies = [ [[package]] name = "revm" -version = "3.5.0" +version = "4.0.0" dependencies = [ "anyhow", "auto_impl", @@ -2342,7 +2342,7 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "1.3.0" +version = "2.0.0" dependencies = [ "revm-primitives", "serde", @@ -2350,7 +2350,7 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "2.2.0" +version = "3.0.0" dependencies = [ "aurora-engine-modexp", "blst", @@ -2366,7 +2366,7 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "1.3.0" +version = "2.0.0" dependencies = [ "alloy-primitives", "auto_impl", @@ -2399,7 +2399,7 @@ dependencies = [ [[package]] name = "revme" -version = "0.2.0" +version = "0.2.1" dependencies = [ "alloy-rlp", "hash-db", diff --git a/bins/revm-test/CHANGELOG.md b/bins/revm-test/CHANGELOG.md new file mode 100644 index 0000000000..4821d7ec54 --- /dev/null +++ b/bins/revm-test/CHANGELOG.md @@ -0,0 +1,72 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.0](https://github.com/bluealloy/revm/releases/tag/revm-test-v0.1.0) - 2024-02-07 + +### Added +- EvmBuilder and External Contexts ([#888](https://github.com/bluealloy/revm/pull/888)) +- separate initial checks ([#486](https://github.com/bluealloy/revm/pull/486)) +- revm-interpreter created ([#320](https://github.com/bluealloy/revm/pull/320)) +- *(interpreter)* Unify instruction fn signature ([#283](https://github.com/bluealloy/revm/pull/283)) +- Migrate `primitive_types::U256` to `ruint::Uint<256, 4>` ([#239](https://github.com/bluealloy/revm/pull/239)) +- Introduce ByteCode format, Update Readme ([#156](https://github.com/bluealloy/revm/pull/156)) + +### Fixed +- *(clippy)* fix some clippy lints + +### Other +- *(deps)* bump eyre from 0.6.11 to 0.6.12 ([#1051](https://github.com/bluealloy/revm/pull/1051)) +- *(deps)* bump alloy-sol-types from 0.6.0 to 0.6.2 ([#1035](https://github.com/bluealloy/revm/pull/1035)) +- *(deps)* bump alloy-sol-macro from 0.6.0 to 0.6.2 ([#1013](https://github.com/bluealloy/revm/pull/1013)) +- chore(Test) : const to static ([#1016](https://github.com/bluealloy/revm/pull/1016)) +- Burntpix criterion bench ([#1004](https://github.com/bluealloy/revm/pull/1004)) +- Instruction table ([#759](https://github.com/bluealloy/revm/pull/759)) +- rewrite revm-test as a criterion bench ([#579](https://github.com/bluealloy/revm/pull/579)) +- optimize stack usage for recursive `call` and `create` programs ([#522](https://github.com/bluealloy/revm/pull/522)) +- Bump v24, revm v3.3.0 ([#476](https://github.com/bluealloy/revm/pull/476)) +- Release v23, revm v3.2.0 ([#464](https://github.com/bluealloy/revm/pull/464)) +- Release v22, revm v3.1.1 ([#460](https://github.com/bluealloy/revm/pull/460)) +- v21, revm v3.1.0 ([#444](https://github.com/bluealloy/revm/pull/444)) +- remove gas blocks ([#391](https://github.com/bluealloy/revm/pull/391)) +- *(deps)* bump bytes from 1.3.0 to 1.4.0 ([#355](https://github.com/bluealloy/revm/pull/355)) +- Bump v20, changelog ([#350](https://github.com/bluealloy/revm/pull/350)) +- includes to libs ([#338](https://github.com/bluealloy/revm/pull/338)) +- Creating revm-primitives, revm better errors and db components ([#334](https://github.com/bluealloy/revm/pull/334)) +- Cleanup, move hot fields toggether in Interpreter ([#321](https://github.com/bluealloy/revm/pull/321)) +- native bits ([#278](https://github.com/bluealloy/revm/pull/278)) +- *(release)* Bump revm and precompiles versions +- Bump primitive_types. Add statetest spec +- Bump revm v2.1.0 ([#224](https://github.com/bluealloy/revm/pull/224)) +- revm bump v2.0.0, precompile bump v1.1.1 ([#212](https://github.com/bluealloy/revm/pull/212)) +- Cfg choose create analysis, option on bytecode size limit ([#210](https://github.com/bluealloy/revm/pull/210)) +- Cargo sort. Bump lib versions ([#208](https://github.com/bluealloy/revm/pull/208)) +- Return `ExecutionResult`, which includes `gas_refunded` ([#169](https://github.com/bluealloy/revm/pull/169)) +- Bytecode hash, remove override_spec, ([#165](https://github.com/bluealloy/revm/pull/165)) +- revm bump 1.8. update libs. snailtracer rename ([#159](https://github.com/bluealloy/revm/pull/159)) +- v6 changelog, bump versions +- Big Refactor. Machine to Interpreter. refactor instructions. call/create struct ([#52](https://github.com/bluealloy/revm/pull/52)) +- [revm] pop_top and unsafe comments ([#51](https://github.com/bluealloy/revm/pull/51)) +- [precompiles] remove unused borsh +- [recompl] Bump precompile deps, cargo sort on workspace +- [revm] output log. Stetetest test log output. fmt +- Bump versions, Changelogs, fmt, revm readme, clippy. +- [revm] Run test multiple times. fmt, BenchmarkDB +- Multiple changes: web3 db, debugger initial commit, precompile load +- Memory to usize, clippy,fmt +- wip optimize i256 +- TEMP switch stacks H256 with U256 +- [revm] some perfs +- [revm] Perfs stack pop. Benchmark snailtracer. +- [revm] cleanup +- fmt +- EVM Interface changed. Inspector called separately +- Bump revm v0.3.0. README updated +- DB ref mut polished +- And now we debug +- [revm] Interface. Inspector added, Env cleanup. revm-test passes +- Rename bin to bins diff --git a/bins/revm-test/Cargo.toml b/bins/revm-test/Cargo.toml index 60b947306e..9b18142a94 100644 --- a/bins/revm-test/Cargo.toml +++ b/bins/revm-test/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] bytes = "1.4" hex = "0.4" -revm = { path = "../../crates/revm", version = "3.3.0",default-features=false } +revm = { path = "../../crates/revm", version = "4.0.0",default-features=false } microbench = "0.5" alloy-sol-macro = "0.6.2" alloy-sol-types = "0.6.2" @@ -25,4 +25,4 @@ name = "snailtracer" name = "transfer" [[bin]] -name = "burntpix" \ No newline at end of file +name = "burntpix" diff --git a/bins/revme/CHANGELOG.md b/bins/revme/CHANGELOG.md index bd54177210..f196b7a90b 100644 --- a/bins/revme/CHANGELOG.md +++ b/bins/revme/CHANGELOG.md @@ -1,3 +1,86 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.2.1](https://github.com/bluealloy/revm/compare/revme-v0.2.0...revme-v0.2.1) - 2024-02-07 + +### Added +- tweeks for v4.0 revm release ([#1048](https://github.com/bluealloy/revm/pull/1048)) +- *(revme)* make it runnable by goevmlab ([#990](https://github.com/bluealloy/revm/pull/990)) +- EvmBuilder and External Contexts ([#888](https://github.com/bluealloy/revm/pull/888)) +- Loop call stack ([#851](https://github.com/bluealloy/revm/pull/851)) +- *(revme)* format kzg setup ([#818](https://github.com/bluealloy/revm/pull/818)) +- *(interpreter)* add more helper methods to memory ([#794](https://github.com/bluealloy/revm/pull/794)) +- derive more traits ([#745](https://github.com/bluealloy/revm/pull/745)) +- Alloy primitives ([#724](https://github.com/bluealloy/revm/pull/724)) +- implement EIP-4844 ([#668](https://github.com/bluealloy/revm/pull/668)) +- *(StateBuilder)* switch builder option from without_bundle to with_bundle ([#688](https://github.com/bluealloy/revm/pull/688)) +- alloy migration ([#535](https://github.com/bluealloy/revm/pull/535)) +- State with account status ([#499](https://github.com/bluealloy/revm/pull/499)) +- *(cancun)* EIP-5656: MCOPY - Memory copying instruction ([#528](https://github.com/bluealloy/revm/pull/528)) +- json opcode traces EIP-3155 ([#356](https://github.com/bluealloy/revm/pull/356)) +- *(Shanghai)* All EIPs: push0, warm coinbase, limit/measure initcode ([#376](https://github.com/bluealloy/revm/pull/376)) +- revm-interpreter created ([#320](https://github.com/bluealloy/revm/pull/320)) +- Export CustomPrinter insector from revm ([#300](https://github.com/bluealloy/revm/pull/300)) +- substitute web3db to ethersdb ([#293](https://github.com/bluealloy/revm/pull/293)) +- *(interpreter)* Unify instruction fn signature ([#283](https://github.com/bluealloy/revm/pull/283)) +- *(revm)* Add prevrandao field to EnvBlock ([#271](https://github.com/bluealloy/revm/pull/271)) +- Migrate `primitive_types::U256` to `ruint::Uint<256, 4>` ([#239](https://github.com/bluealloy/revm/pull/239)) +- *(revm, revme)* gas inspector ([#222](https://github.com/bluealloy/revm/pull/222)) + +### Fixed +- *(eip4844)* Pass eth tests, additional conditions added. ([#735](https://github.com/bluealloy/revm/pull/735)) +- *(test)* Check expect exception and revm error ([#734](https://github.com/bluealloy/revm/pull/734)) +- k256 compile error ([#451](https://github.com/bluealloy/revm/pull/451)) + +### Other +- *(EvmBuilder)* rename builder functions to HandlerCfg ([#1050](https://github.com/bluealloy/revm/pull/1050)) +- *(Interpreter)* Split calls to separate functions ([#1005](https://github.com/bluealloy/revm/pull/1005)) +- *(revme)* EmptyDb Blockhash string, json-outcome flag, set prevrandao in statetest ([#994](https://github.com/bluealloy/revm/pull/994)) +- *(revme)* add recovery of address from secret key ([#992](https://github.com/bluealloy/revm/pull/992)) +- *(log)* use alloy_primitives::Log ([#975](https://github.com/bluealloy/revm/pull/975)) +- *(docs)* revme readme update ([#898](https://github.com/bluealloy/revm/pull/898)) +- simplify use statements ([#864](https://github.com/bluealloy/revm/pull/864)) +- decode KZG points directly into the buffers ([#840](https://github.com/bluealloy/revm/pull/840)) +- bump v26 revm v3.5.0 ([#765](https://github.com/bluealloy/revm/pull/765)) +- tag v25, revm v3.4.0 ([#755](https://github.com/bluealloy/revm/pull/755)) +- BLOBBASEFEE opcode ([#721](https://github.com/bluealloy/revm/pull/721)) +- Never inline the prepare functions ([#712](https://github.com/bluealloy/revm/pull/712)) +- *(deps)* bump bytes from 1.4.0 to 1.5.0 ([#707](https://github.com/bluealloy/revm/pull/707)) +- make `impl Default for StateBuilder` generic ([#690](https://github.com/bluealloy/revm/pull/690)) +- *(deps)* bump walkdir from 2.3.3 to 2.4.0 ([#692](https://github.com/bluealloy/revm/pull/692)) +- *(cfg)* convert chain_id from u256 to u64 ([#693](https://github.com/bluealloy/revm/pull/693)) +- Revert "feat: alloy migration ([#535](https://github.com/bluealloy/revm/pull/535))" ([#616](https://github.com/bluealloy/revm/pull/616)) +- spell check ([#615](https://github.com/bluealloy/revm/pull/615)) +- avoid unnecessary allocations ([#581](https://github.com/bluealloy/revm/pull/581)) +- clippy and fmt ([#568](https://github.com/bluealloy/revm/pull/568)) +- optimize stack usage for recursive `call` and `create` programs ([#522](https://github.com/bluealloy/revm/pull/522)) +- *(deps)* bump hashbrown from 0.13.2 to 0.14.0 ([#519](https://github.com/bluealloy/revm/pull/519)) +- Bump v24, revm v3.3.0 ([#476](https://github.com/bluealloy/revm/pull/476)) +- *(deps)* bump ruint from 1.7.0 to 1.8.0 ([#465](https://github.com/bluealloy/revm/pull/465)) +- Release v23, revm v3.2.0 ([#464](https://github.com/bluealloy/revm/pull/464)) +- Release v22, revm v3.1.1 ([#460](https://github.com/bluealloy/revm/pull/460)) +- v21, revm v3.1.0 ([#444](https://github.com/bluealloy/revm/pull/444)) +- bump all +- remove gas blocks ([#391](https://github.com/bluealloy/revm/pull/391)) +- *(deps)* bump bytes from 1.3.0 to 1.4.0 ([#355](https://github.com/bluealloy/revm/pull/355)) +- Bump v20, changelog ([#350](https://github.com/bluealloy/revm/pull/350)) +- Cleanup imports ([#348](https://github.com/bluealloy/revm/pull/348)) +- includes to libs ([#338](https://github.com/bluealloy/revm/pull/338)) +- Creating revm-primitives, revm better errors and db components ([#334](https://github.com/bluealloy/revm/pull/334)) +- Correct typo ([#282](https://github.com/bluealloy/revm/pull/282)) +- Integer overflow while calculating the remaining gas in GasInspector ([#287](https://github.com/bluealloy/revm/pull/287)) +- native bits ([#278](https://github.com/bluealloy/revm/pull/278)) +- *(release)* Bump revm and precompiles versions +- Bump primitive_types. Add statetest spec +- Bump revm to v2.3.0 +- typos ([#263](https://github.com/bluealloy/revm/pull/263)) +- *(eth/test)* Added OEF spec for tests. Skip HighGasPrice ([#261](https://github.com/bluealloy/revm/pull/261)) +- Bump revm v2.1.0 ([#224](https://github.com/bluealloy/revm/pull/224)) # v0.1.0 date: 18.12.2021 diff --git a/bins/revme/Cargo.toml b/bins/revme/Cargo.toml index b71d246e59..04e9746ade 100644 --- a/bins/revme/Cargo.toml +++ b/bins/revme/Cargo.toml @@ -6,7 +6,7 @@ keywords = ["ethereum", "evm"] license = "MIT" repository = "https://github.com/bluealloy/revm" description = "Rust Ethereum Virtual Machine Executable" -version = "0.2.0" +version = "0.2.1" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] @@ -14,7 +14,7 @@ hash-db = "0.15" hashbrown = "0.14" indicatif = "0.17" plain_hasher = "0.2" -revm = { path = "../../crates/revm", version = "3.5.0", default-features = false, features = [ +revm = { path = "../../crates/revm", version = "4.0.0", default-features = false, features = [ "ethersdb", "std", "serde", diff --git a/crates/interpreter/CHANGELOG.md b/crates/interpreter/CHANGELOG.md index 83e4530be6..8a02ec82f9 100644 --- a/crates/interpreter/CHANGELOG.md +++ b/crates/interpreter/CHANGELOG.md @@ -1,3 +1,69 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [2.0.0](https://github.com/bluealloy/revm/compare/revm-interpreter-v1.3.0...revm-interpreter-v2.0.0) - 2024-02-07 + +Iterpreter will not be called in recursive calls but would return Action ( CALL/CREATE) that will be executed by the main loop. + +### Added +- tweeks for v4.0 revm release ([#1048](https://github.com/bluealloy/revm/pull/1048)) +- add `BytecodeLocked::original_bytecode` ([#1037](https://github.com/bluealloy/revm/pull/1037)) +- *(op)* Ecotone hardfork ([#1009](https://github.com/bluealloy/revm/pull/1009)) +- EvmBuilder and External Contexts ([#888](https://github.com/bluealloy/revm/pull/888)) +- add asm-keccak feature ([#972](https://github.com/bluealloy/revm/pull/972)) +- add some conversions to InstructionResult ([#910](https://github.com/bluealloy/revm/pull/910)) +- implement Default for InstructionResult ([#878](https://github.com/bluealloy/revm/pull/878)) +- `Canyon` hardfork behind `optimism` feature flag ([#871](https://github.com/bluealloy/revm/pull/871)) +- Loop call stack ([#851](https://github.com/bluealloy/revm/pull/851)) +- *(cfg)* optionally disable beneficiary reward ([#834](https://github.com/bluealloy/revm/pull/834)) +- *(interpreter)* add more helper methods to memory ([#794](https://github.com/bluealloy/revm/pull/794)) +- derive more traits ([#745](https://github.com/bluealloy/revm/pull/745)) +- add methods to `CreateInput` for calculating created address ([#793](https://github.com/bluealloy/revm/pull/793)) + +### Fixed +- *(Interpreter)* is_revert should call is_revert ([#1007](https://github.com/bluealloy/revm/pull/1007)) +- cast overflow in 32-bits OS ([#978](https://github.com/bluealloy/revm/pull/978)) +- dont calculate initcode keccak on CREATE ([#969](https://github.com/bluealloy/revm/pull/969)) +- *(ci)* Workflow Touchups ([#901](https://github.com/bluealloy/revm/pull/901)) +- safer stack ([#879](https://github.com/bluealloy/revm/pull/879)) +- *(interpreter)* Stack `push_slice` fix and dup with pointers ([#837](https://github.com/bluealloy/revm/pull/837)) + +### Other +- helper functions around Env ([#1057](https://github.com/bluealloy/revm/pull/1057)) +- *(Execution)* Granular handles create/call,call_return,insert_call_outcome ([#1024](https://github.com/bluealloy/revm/pull/1024)) +- *(Interpreter)* Split calls to separate functions ([#1005](https://github.com/bluealloy/revm/pull/1005)) +- expose InstructionResult getters in Interpreter result ([#1002](https://github.com/bluealloy/revm/pull/1002)) +- *(Inspector)* add CallOutcome to call/call_end ([#985](https://github.com/bluealloy/revm/pull/985)) +- fix serde std flags for no-std build ([#987](https://github.com/bluealloy/revm/pull/987)) +- *(Inspector)* Add CreateOutcome in create/create_end return ([#980](https://github.com/bluealloy/revm/pull/980)) +- *(log)* use alloy_primitives::Log ([#975](https://github.com/bluealloy/revm/pull/975)) +- enhance readability ([#968](https://github.com/bluealloy/revm/pull/968)) +- *(interpreter)* refactor sstore_cost ([#974](https://github.com/bluealloy/revm/pull/974)) +- *(interpreter)* improve enum naming ([#962](https://github.com/bluealloy/revm/pull/962)) +- *(interpreter)* consistency in all_results_are_covered() ([#961](https://github.com/bluealloy/revm/pull/961)) +- *(interpreter)* local return_error! macro ([#956](https://github.com/bluealloy/revm/pull/956)) +- *(interpreter)* simplify the logic of calc.new_cost() ([#939](https://github.com/bluealloy/revm/pull/939)) +- *(interpreter)* fix the name of the macro referenced by record_memory() ([#926](https://github.com/bluealloy/revm/pull/926)) +- *(interpreter)* conditionally enable `optional_beneficiary_reward` ([#925](https://github.com/bluealloy/revm/pull/925)) +- fix case for CreateInitCodeSizeLimit error ([#896](https://github.com/bluealloy/revm/pull/896)) +- simplify use statements ([#864](https://github.com/bluealloy/revm/pull/864)) +- *(interpreter)* use the constants from primitives ([#861](https://github.com/bluealloy/revm/pull/861)) +- review safety comments ([#811](https://github.com/bluealloy/revm/pull/811)) +- rewrite `Stack::push_slice` to allow arbitrary lengths ([#812](https://github.com/bluealloy/revm/pull/812)) +- make context memory pub ([#831](https://github.com/bluealloy/revm/pull/831)) +- refactor main return to handle ([#808](https://github.com/bluealloy/revm/pull/808)) +- *(SharedMemory)* small refactor; tests ([#806](https://github.com/bluealloy/revm/pull/806)) +- use `array::from_fn` in `make_instruction_table` ([#809](https://github.com/bluealloy/revm/pull/809)) +- make memory-limit private ([#796](https://github.com/bluealloy/revm/pull/796)) +- Instruction table ([#759](https://github.com/bluealloy/revm/pull/759)) +- Shared memory between calls ([#673](https://github.com/bluealloy/revm/pull/673)) +- Fix typos ([#790](https://github.com/bluealloy/revm/pull/790)) +- document everything, dedup existing docs ([#741](https://github.com/bluealloy/revm/pull/741)) # v1.3.0 date 02.10.2023 diff --git a/crates/interpreter/Cargo.toml b/crates/interpreter/Cargo.toml index 02654d4700..f3803c89ab 100644 --- a/crates/interpreter/Cargo.toml +++ b/crates/interpreter/Cargo.toml @@ -6,7 +6,7 @@ keywords = ["no_std", "ethereum", "evm", "revm", "interpreter"] license = "MIT" name = "revm-interpreter" repository = "https://github.com/bluealloy/revm" -version = "1.3.0" +version = "2.0.0" readme = "../../README.md" [package.metadata.docs.rs] @@ -14,7 +14,7 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -revm-primitives = { path = "../primitives", version = "1.3.0", default-features = false } +revm-primitives = { path = "../primitives", version = "2.0.0", default-features = false } # optional serde = { version = "1.0", default-features = false, features = ["derive", "rc"], optional = true } diff --git a/crates/precompile/CHANGELOG.md b/crates/precompile/CHANGELOG.md index 73c895d2f3..05e663a47e 100644 --- a/crates/precompile/CHANGELOG.md +++ b/crates/precompile/CHANGELOG.md @@ -1,3 +1,45 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [3.0.0](https://github.com/bluealloy/revm/compare/revm-precompile-v2.2.0...revm-precompile-v3.0.0) - 2024-02-07 + +Precompiles are refactored from list to HashMap, this allows adding arbitrary precompiles to the list. + +### Added +- *(op)* Ecotone hardfork ([#1009](https://github.com/bluealloy/revm/pull/1009)) +- EvmBuilder and External Contexts ([#888](https://github.com/bluealloy/revm/pull/888)) +- add asm-keccak feature ([#972](https://github.com/bluealloy/revm/pull/972)) +- `Canyon` hardfork behind `optimism` feature flag ([#871](https://github.com/bluealloy/revm/pull/871)) +- *(interpreter)* add more helper methods to memory ([#794](https://github.com/bluealloy/revm/pull/794)) +- *(precompile)* use Aurora modexp lib. ([#769](https://github.com/bluealloy/revm/pull/769)) +- derive more traits ([#745](https://github.com/bluealloy/revm/pull/745)) + +### Fixed +- *(ci)* Workflow Touchups ([#901](https://github.com/bluealloy/revm/pull/901)) + +### Other +- bump c-kzg and enable blst portable feature ([#1059](https://github.com/bluealloy/revm/pull/1059)) +- *(deps)* bump secp256k1 from 0.28.1 to 0.28.2 ([#1038](https://github.com/bluealloy/revm/pull/1038)) +- *(Cancun)* update Cancun precompiles docs ([#1015](https://github.com/bluealloy/revm/pull/1015)) +- *(log)* use alloy_primitives::Log ([#975](https://github.com/bluealloy/revm/pull/975)) +- *(deps)* bump k256 from 0.13.2 to 0.13.3 ([#959](https://github.com/bluealloy/revm/pull/959)) +- *(deps)* bump secp256k1 from 0.28.0 to 0.28.1 ([#954](https://github.com/bluealloy/revm/pull/954)) +- *(deps)* bump once_cell from 1.18.0 to 1.19.0 ([#908](https://github.com/bluealloy/revm/pull/908)) +- bump k256 and use normalize_s ([#870](https://github.com/bluealloy/revm/pull/870)) +- simplify use statements ([#864](https://github.com/bluealloy/revm/pull/864)) +- *(precompiles)* Make PrecompileWithAddress field public, from impl ([#857](https://github.com/bluealloy/revm/pull/857)) +- change addresses to iterator and add into_addresses ([#855](https://github.com/bluealloy/revm/pull/855)) +- bump c-kzg to v0.4.0 ([#849](https://github.com/bluealloy/revm/pull/849)) +- Refactor precompile list from Hash to vec ([#823](https://github.com/bluealloy/revm/pull/823)) +- *(eip4844)* update kzg trusted setup ([#822](https://github.com/bluealloy/revm/pull/822)) +- secp256k1 from 0.27 to 0.28 ([#817](https://github.com/bluealloy/revm/pull/817)) +- for now support 1.69 rust compiler ([#814](https://github.com/bluealloy/revm/pull/814)) +- document everything, dedup existing docs ([#741](https://github.com/bluealloy/revm/pull/741)) # v2.2.0 date 02.10.2023 diff --git a/crates/precompile/Cargo.toml b/crates/precompile/Cargo.toml index 0ae02bd5fd..dc995a8b73 100644 --- a/crates/precompile/Cargo.toml +++ b/crates/precompile/Cargo.toml @@ -6,14 +6,14 @@ keywords = ["no_std", "ethereum", "evm", "revm", "precompiles"] license = "MIT" name = "revm-precompile" repository = "https://github.com/bluealloy/revm" -version = "2.2.0" +version = "3.0.0" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -revm-primitives = { path = "../primitives", version = "1.3.0", default-features = false } +revm-primitives = { path = "../primitives", version = "2.0.0", default-features = false } bn = { package = "substrate-bn", version = "0.6", default-features = false } once_cell = { version = "1.19", default-features = false, features = ["alloc"] } ripemd = { version = "0.1", default-features = false } diff --git a/crates/primitives/CHANGELOG.md b/crates/primitives/CHANGELOG.md index e5da02939b..670339e391 100644 --- a/crates/primitives/CHANGELOG.md +++ b/crates/primitives/CHANGELOG.md @@ -1,3 +1,77 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [2.0.0](https://github.com/bluealloy/revm/compare/revm-primitives-v1.3.0...revm-primitives-v2.0.0) - 2024-02-07 + +### Added +- tweeks for v4.0 revm release ([#1048](https://github.com/bluealloy/revm/pull/1048)) +- *(op)* Ecotone hardfork ([#1009](https://github.com/bluealloy/revm/pull/1009)) +- *(revme)* make it runnable by goevmlab ([#990](https://github.com/bluealloy/revm/pull/990)) +- Convert optimism panic into graceful error ([#982](https://github.com/bluealloy/revm/pull/982)) +- EvmBuilder and External Contexts ([#888](https://github.com/bluealloy/revm/pull/888)) +- add asm-keccak feature ([#972](https://github.com/bluealloy/revm/pull/972)) +- `Canyon` hardfork behind `optimism` feature flag ([#871](https://github.com/bluealloy/revm/pull/871)) +- Loop call stack ([#851](https://github.com/bluealloy/revm/pull/851)) +- transition account balance delta ([#843](https://github.com/bluealloy/revm/pull/843)) +- *(cfg)* optionally disable beneficiary reward ([#834](https://github.com/bluealloy/revm/pull/834)) +- add is_empty_code_hash fn ([#826](https://github.com/bluealloy/revm/pull/826)) +- *(revme)* format kzg setup ([#818](https://github.com/bluealloy/revm/pull/818)) +- add more `auto_impl`s to revm traits ([#799](https://github.com/bluealloy/revm/pull/799)) +- *(interpreter)* add more helper methods to memory ([#794](https://github.com/bluealloy/revm/pull/794)) +- add changed storage slots iter ([#801](https://github.com/bluealloy/revm/pull/801)) +- derive more traits ([#745](https://github.com/bluealloy/revm/pull/745)) + +### Fixed +- use maximum possible data fee for 4844 balance checks ([#981](https://github.com/bluealloy/revm/pull/981)) +- make revm-primitives no-std with c-kzg feature ([#933](https://github.com/bluealloy/revm/pull/933)) +- *(ci)* Workflow Touchups ([#901](https://github.com/bluealloy/revm/pull/901)) +- *(op)* Base Goerli `op-reth` sync patches ([#824](https://github.com/bluealloy/revm/pull/824)) +- rename `DatabaseRef` trait functions to `*_ref` ([#795](https://github.com/bluealloy/revm/pull/795)) +- *(primitives)* Error Primitive Display + Error Implementations ([#770](https://github.com/bluealloy/revm/pull/770)) + +### Other +- bump c-kzg and enable blst portable feature ([#1059](https://github.com/bluealloy/revm/pull/1059)) +- helper functions around Env ([#1057](https://github.com/bluealloy/revm/pull/1057)) +- *(std)* Add std HashMap,HashSet ([#1041](https://github.com/bluealloy/revm/pull/1041)) +- *(op)* Move op l1 block load to op handler ([#1026](https://github.com/bluealloy/revm/pull/1026)) +- add some docs to StorageSlot ([#1019](https://github.com/bluealloy/revm/pull/1019)) +- fix serde std flags for no-std build ([#987](https://github.com/bluealloy/revm/pull/987)) +- *(deps)* bump bitflags from 2.4.1 to 2.4.2 ([#983](https://github.com/bluealloy/revm/pull/983)) +- *(log)* use alloy_primitives::Log ([#975](https://github.com/bluealloy/revm/pull/975)) +- enhance readability ([#968](https://github.com/bluealloy/revm/pull/968)) +- *(interpreter)* improve enum naming ([#962](https://github.com/bluealloy/revm/pull/962)) +- *(deps)* alloy 0.6 ([#963](https://github.com/bluealloy/revm/pull/963)) +- *(primitives)* improve readability of Env.validate_tx() ([#924](https://github.com/bluealloy/revm/pull/924)) +- *(primitives)* optimize AccountInfo.is_empty() ([#922](https://github.com/bluealloy/revm/pull/922)) +- *(deps)* bump once_cell from 1.18.0 to 1.19.0 ([#908](https://github.com/bluealloy/revm/pull/908)) +- fix case for CreateInitCodeSizeLimit error ([#896](https://github.com/bluealloy/revm/pull/896)) +- Add docs to `optimism` `InvalidTransaction` errors. ([#884](https://github.com/bluealloy/revm/pull/884)) +- *(deps)* run `cargo update`, bump alloy-primitives ([#880](https://github.com/bluealloy/revm/pull/880)) +- *(primitives)* don't duplicate the SpecId::enabled() logic ([#869](https://github.com/bluealloy/revm/pull/869)) +- simplify use statements ([#864](https://github.com/bluealloy/revm/pull/864)) +- cargo fmt and removed extra newlines ([#860](https://github.com/bluealloy/revm/pull/860)) +- Fix error message for LackOfFundForMaxFee ([#858](https://github.com/bluealloy/revm/pull/858)) +- Fix rustdoc warnings ([#859](https://github.com/bluealloy/revm/pull/859)) +- bump c-kzg to v0.4.0 ([#849](https://github.com/bluealloy/revm/pull/849)) +- *(state)* move account status transitions to `AccountStatus` ([#844](https://github.com/bluealloy/revm/pull/844)) +- decode KZG points directly into the buffers ([#840](https://github.com/bluealloy/revm/pull/840)) +- *(deps)* make derive-more optional ([#827](https://github.com/bluealloy/revm/pull/827)) +- *(eip4844)* update kzg trusted setup ([#822](https://github.com/bluealloy/revm/pull/822)) +- *(deps)* bump bitflags from 2.4.0 to 2.4.1 ([#803](https://github.com/bluealloy/revm/pull/803)) +- include alloy-primitives std feature ([#788](https://github.com/bluealloy/revm/pull/788)) +- *(primitives)* OptimismFields Docs Cleanup ([#778](https://github.com/bluealloy/revm/pull/778)) +- Remove dead state trait function ([#779](https://github.com/bluealloy/revm/pull/779)) +- Verify account is empty checks ([#780](https://github.com/bluealloy/revm/pull/780)) +- *(primitives)* Clean up the account typs with docs ([#776](https://github.com/bluealloy/revm/pull/776)) +- Use upstream create and create2 implementations ([#775](https://github.com/bluealloy/revm/pull/775)) +- Implement display and error for precompile error ([#777](https://github.com/bluealloy/revm/pull/777)) +- reorder env members ([#771](https://github.com/bluealloy/revm/pull/771)) +- document everything, dedup existing docs ([#741](https://github.com/bluealloy/revm/pull/741)) # v1.3.0 date 02.10.2023 diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 8ae25419f8..4e0212883c 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -6,7 +6,7 @@ keywords = ["no_std", "ethereum", "evm", "revm", "types"] license = "MIT" name = "revm-primitives" repository = "https://github.com/bluealloy/revm" -version = "1.3.0" +version = "2.0.0" readme = "../../README.md" # Don't need to run build script outside of this repo diff --git a/crates/revm/CHANGELOG.md b/crates/revm/CHANGELOG.md index 92c8d59e2f..c345a1f264 100644 --- a/crates/revm/CHANGELOG.md +++ b/crates/revm/CHANGELOG.md @@ -1,10 +1,118 @@ -# v3.6.0 - -Big renaming long overdue: -* EVMImpl to Evm, -* EVM to EvmFactory -* EVMData to EvmContext - +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [4.0.0](https://github.com/bluealloy/revm/compare/revm-v3.5.0...revm-v4.0.0) - 2024-02-07 + +Refactored the logic inside Handler and added EvmBuilder that allows overwriting the default behavior. +Few major renaming: EVMImpl to Evm, EVM to EvmFactory and EVMData to EvmContext. + +### Added +- *(handler)* Change spec id on &mut ([#1055](https://github.com/bluealloy/revm/pull/1055)) +- *(Handler)* add push and pop of hanler registers ([#1053](https://github.com/bluealloy/revm/pull/1053)) +- tweeks for v4.0 revm release ([#1048](https://github.com/bluealloy/revm/pull/1048)) +- *(op)* Ecotone hardfork ([#1009](https://github.com/bluealloy/revm/pull/1009)) +- *(inspector)* Share call/create inputs in Inspector call_end/create_end ([#1003](https://github.com/bluealloy/revm/pull/1003)) +- Convert optimism panic into graceful error ([#982](https://github.com/bluealloy/revm/pull/982)) +- EvmBuilder and External Contexts ([#888](https://github.com/bluealloy/revm/pull/888)) +- add asm-keccak feature ([#972](https://github.com/bluealloy/revm/pull/972)) +- *(ethersdb)* propagate errors instead of panicking in basic_ref ([#935](https://github.com/bluealloy/revm/pull/935)) +- *(revm)* implement prepend_state for BundleState ([#907](https://github.com/bluealloy/revm/pull/907)) +- add serde derives for `CacheDB` under "serde" flag ([#911](https://github.com/bluealloy/revm/pull/911)) +- *(examples)* generate block traces ([#895](https://github.com/bluealloy/revm/pull/895)) +- *(revm)* Evm Context Tests and test-utils Feature ([#903](https://github.com/bluealloy/revm/pull/903)) +- `Canyon` hardfork behind `optimism` feature flag ([#871](https://github.com/bluealloy/revm/pull/871)) +- Loop call stack ([#851](https://github.com/bluealloy/revm/pull/851)) +- transition account balance delta ([#843](https://github.com/bluealloy/revm/pull/843)) +- *(cfg)* optionally disable beneficiary reward ([#834](https://github.com/bluealloy/revm/pull/834)) +- add more `auto_impl`s to revm traits ([#799](https://github.com/bluealloy/revm/pull/799)) +- *(interpreter)* add more helper methods to memory ([#794](https://github.com/bluealloy/revm/pull/794)) +- derive more traits ([#745](https://github.com/bluealloy/revm/pull/745)) +- add methods to `CreateInput` for calculating created address ([#793](https://github.com/bluealloy/revm/pull/793)) +- *(revm)* implement DatabaseRef trait for EthersDB ([#774](https://github.com/bluealloy/revm/pull/774)) + +### Fixed +- fix previous commit ([#1044](https://github.com/bluealloy/revm/pull/1044)) +- *(State)* Preserve original values on delete revert ([#1010](https://github.com/bluealloy/revm/pull/1010)) +- optimism gas refunds ([#989](https://github.com/bluealloy/revm/pull/989)) +- dont calculate initcode keccak on CREATE ([#969](https://github.com/bluealloy/revm/pull/969)) +- *(ci)* Workflow Touchups ([#901](https://github.com/bluealloy/revm/pull/901)) +- safer stack ([#879](https://github.com/bluealloy/revm/pull/879)) +- *(op)* Base Goerli `op-reth` sync patches ([#824](https://github.com/bluealloy/revm/pull/824)) +- fix typos in revm crate ([#821](https://github.com/bluealloy/revm/pull/821)) +- Optimism execution ([#789](https://github.com/bluealloy/revm/pull/789)) +- rename `DatabaseRef` trait functions to `*_ref` ([#795](https://github.com/bluealloy/revm/pull/795)) + +### Other +- bump c-kzg and enable blst portable feature ([#1059](https://github.com/bluealloy/revm/pull/1059)) +- spelling on last commit ([#1058](https://github.com/bluealloy/revm/pull/1058)) +- helper functions around Env ([#1057](https://github.com/bluealloy/revm/pull/1057)) +- *(deps)* bump tokio from 1.35.1 to 1.36.0 ([#1052](https://github.com/bluealloy/revm/pull/1052)) +- *(EvmBuilder)* rename builder functions to HandlerCfg ([#1050](https://github.com/bluealloy/revm/pull/1050)) +- *(deps)* bump ethers-contract from 2.0.11 to 2.0.13 ([#1034](https://github.com/bluealloy/revm/pull/1034)) +- *(std)* Add std HashMap,HashSet ([#1041](https://github.com/bluealloy/revm/pull/1041)) +- group handlers ([#1030](https://github.com/bluealloy/revm/pull/1030)) +- *(Inspector)* add inspector depth test ([#1028](https://github.com/bluealloy/revm/pull/1028)) +- *(op)* Move op l1 block load to op handler ([#1026](https://github.com/bluealloy/revm/pull/1026)) +- *(clippy)* nightly clippy ([#1025](https://github.com/bluealloy/revm/pull/1025)) +- *(Execution)* Granular handles create/call,call_return,insert_call_outcome ([#1024](https://github.com/bluealloy/revm/pull/1024)) +- *(Inspector)* Add return_memory_offset to Inspector::call ([#1006](https://github.com/bluealloy/revm/pull/1006)) +- update call end docs ([#1000](https://github.com/bluealloy/revm/pull/1000)) +- add getter for specId ([#998](https://github.com/bluealloy/revm/pull/998)) +- Remove preserve_order in serde_json ([#997](https://github.com/bluealloy/revm/pull/997)) +- update create docs ([#999](https://github.com/bluealloy/revm/pull/999)) +- *(revme)* EmptyDb Blockhash string, json-outcome flag, set prevrandao in statetest ([#994](https://github.com/bluealloy/revm/pull/994)) +- *(Inspector)* add CallOutcome to call/call_end ([#985](https://github.com/bluealloy/revm/pull/985)) +- set deduct_caller in optimism handler ([#988](https://github.com/bluealloy/revm/pull/988)) +- fix serde std flags for no-std build ([#987](https://github.com/bluealloy/revm/pull/987)) +- *(Inspector)* Add CreateOutcome in create/create_end return ([#980](https://github.com/bluealloy/revm/pull/980)) +- *(log)* use alloy_primitives::Log ([#975](https://github.com/bluealloy/revm/pull/975)) +- *(EvmBuilder)* Remove unnecessary BuilderStage trait ([#979](https://github.com/bluealloy/revm/pull/979)) +- enhance readability ([#968](https://github.com/bluealloy/revm/pull/968)) +- *(interpreter)* refactor sstore_cost ([#974](https://github.com/bluealloy/revm/pull/974)) +- *(interpreter)* improve enum naming ([#962](https://github.com/bluealloy/revm/pull/962)) +- *(deps)* bump anyhow from 1.0.77 to 1.0.79 ([#950](https://github.com/bluealloy/revm/pull/950)) +- relax Bytes requirement and use slice instead ([#937](https://github.com/bluealloy/revm/pull/937)) +- *(deps)* bump futures from 0.3.29 to 0.3.30 ([#927](https://github.com/bluealloy/revm/pull/927)) +- *(deps)* bump anyhow from 1.0.75 to 1.0.76 ([#921](https://github.com/bluealloy/revm/pull/921)) +- *(deps)* bump tokio from 1.34.0 to 1.35.0 ([#909](https://github.com/bluealloy/revm/pull/909)) +- *(revm)* leverage StorageSlot methods, where appropriate ([#899](https://github.com/bluealloy/revm/pull/899)) +- relax state generic ([#881](https://github.com/bluealloy/revm/pull/881)) +- clippy ([#877](https://github.com/bluealloy/revm/pull/877)) +- *(deps)* bump ethers-contract from 2.0.10 to 2.0.11 ([#867](https://github.com/bluealloy/revm/pull/867)) +- bump k256 and use normalize_s ([#870](https://github.com/bluealloy/revm/pull/870)) +- simplify use statements ([#864](https://github.com/bluealloy/revm/pull/864)) +- Fix error message for LackOfFundForMaxFee ([#858](https://github.com/bluealloy/revm/pull/858)) +- Fix rustdoc warnings ([#859](https://github.com/bluealloy/revm/pull/859)) +- *(deps)* bump tokio from 1.33.0 to 1.34.0 ([#856](https://github.com/bluealloy/revm/pull/856)) +- change addresses to iterator and add into_addresses ([#855](https://github.com/bluealloy/revm/pull/855)) +- use keccak256 for blockhash ([#854](https://github.com/bluealloy/revm/pull/854)) +- review safety comments ([#811](https://github.com/bluealloy/revm/pull/811)) +- *(deps)* bump futures from 0.3.28 to 0.3.29 ([#839](https://github.com/bluealloy/revm/pull/839)) +- *(state)* consistent selfdestruct status transition ([#847](https://github.com/bluealloy/revm/pull/847)) +- *(state)* move account status transitions to `AccountStatus` ([#844](https://github.com/bluealloy/revm/pull/844)) +- *(state)* simplify control flow in `CacheState::apply_evm_state` ([#842](https://github.com/bluealloy/revm/pull/842)) +- Refactor precompile list from Hash to vec ([#823](https://github.com/bluealloy/revm/pull/823)) +- *(state)* make `State::apply_transition` pub ([#832](https://github.com/bluealloy/revm/pull/832)) +- *(state)* make bundle state non-optional ([#828](https://github.com/bluealloy/revm/pull/828)) +- Refactor evm data to its file ([#815](https://github.com/bluealloy/revm/pull/815)) +- for now support 1.69 rust compiler ([#814](https://github.com/bluealloy/revm/pull/814)) +- refactor main return to handle ([#808](https://github.com/bluealloy/revm/pull/808)) +- *(SharedMemory)* small refactor; tests ([#806](https://github.com/bluealloy/revm/pull/806)) +- use `array::from_fn` in `make_instruction_table` ([#809](https://github.com/bluealloy/revm/pull/809)) +- remove `step` and `step_end` return result ([#804](https://github.com/bluealloy/revm/pull/804)) +- Instruction table ([#759](https://github.com/bluealloy/revm/pull/759)) +- getter for field of ([#792](https://github.com/bluealloy/revm/pull/792)) +- Shared memory between calls ([#673](https://github.com/bluealloy/revm/pull/673)) +- Fix typos ([#790](https://github.com/bluealloy/revm/pull/790)) +- *(deps)* bump tokio from 1.32.0 to 1.33.0 ([#785](https://github.com/bluealloy/revm/pull/785)) +- Use upstream create and create2 implementations ([#775](https://github.com/bluealloy/revm/pull/775)) +- reorder JournalState impl ([#772](https://github.com/bluealloy/revm/pull/772)) +- document everything, dedup existing docs ([#741](https://github.com/bluealloy/revm/pull/741)) # v3.5.0 date 02.10.2023 diff --git a/crates/revm/Cargo.toml b/crates/revm/Cargo.toml index 8865a5168f..5756c16916 100644 --- a/crates/revm/Cargo.toml +++ b/crates/revm/Cargo.toml @@ -6,7 +6,7 @@ keywords = ["no_std", "ethereum", "evm", "revm"] license = "MIT" name = "revm" repository = "https://github.com/bluealloy/revm" -version = "3.5.0" +version = "4.0.0" readme = "../../README.md" [package.metadata.docs.rs] @@ -15,8 +15,8 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] # revm -revm-interpreter = { path = "../interpreter", version = "1.3.0", default-features = false } -revm-precompile = { path = "../precompile", version = "2.2.0", default-features = false } +revm-interpreter = { path = "../interpreter", version = "2.0.0", default-features = false } +revm-precompile = { path = "../precompile", version = "3.0.0", default-features = false } # misc auto_impl = { version = "1.1", default-features = false }