Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Multiple Native Tokens [STALE] #148

Closed
wants to merge 1 commit into from

Conversation

PaulRBerg
Copy link
Member

@PaulRBerg PaulRBerg commented May 24, 2024

A big PR that closes #5, #22, and #74.

This PR is a replacement for #14, which we have closed as a result of the name change from MNAs to MNTs.

@PaulRBerg PaulRBerg changed the base branch from main to feat/multiple-native-assets May 24, 2024 19:02
@PaulRBerg PaulRBerg changed the base branch from feat/multiple-native-assets to main May 24, 2024 19:03
@PaulRBerg PaulRBerg changed the base branch from main to foo May 24, 2024 19:04
@PaulRBerg PaulRBerg changed the base branch from foo to main May 24, 2024 19:07
@PaulRBerg PaulRBerg force-pushed the feat/multiple-native-tokens branch 2 times, most recently from 9fe36fe to 47f2369 Compare May 24, 2024 19:17
feat: mint opcode (WIP)

feat(primitives): reject tx if account lacks native assets

feat(primitives): do not validate tx by base asset twice

feat(primitives): reject txs with duplicate asset ids

* refactor(primitives): make enum names more suggestive

Add docs to `optimism` `InvalidTransaction` errors. (#884)

feat(primitives): remove `tx.value` in favor of `tx.asset_values`

refactor: format the code and fix build issues

fix: resolve the build issues

refactor: follow the Clippy suggestions

fix: resolve build issues in tests

refactor: fix case for CreateInitCodeSizeLimit error

refactor: fix case for CreateInitCodeSizeLimit error (#896)

chore(docs): Update top-level benchmark docs (#894)

refactor(primitives): use the default value from AccountInfo

refactor(revm): leverage StorageSlot methods, where appropriate

refactor(primitives): simplify the AccountInfo comparison

feat(primitives): adapt AccountInfo hashing to MNAs

fix(ci): Workflow Touchups (#901)

* fix(ci): github workflow touchups with rustdocs

* fix(ci): remove unknown msrv
chore(docs): revme readme update (#898)

chore(deps): bump alloy-primitives from 0.5.0 to 0.5.2 (#900)

Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.5.0 to 0.5.2.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.5.0...v0.5.2)

---
updated-dependencies:
- dependency-name: alloy-primitives
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat(revm): Evm Context Tests and test-utils Feature (#903)

* feat(revm): evm context tests and test-utils

* feat(revm): more evm context tests

* fix(revm): clippy nits
refactor(revm): leverage StorageSlot methods, where appropriate (#899)

chore(deps): bump hashbrown from 0.14.2 to 0.14.3 (#885)

Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.14.2 to 0.14.3.
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.14.2...v0.14.3)

---
updated-dependencies:
- dependency-name: hashbrown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat(examples): generate block traces (#895)

feat: add serde derives for `CacheDB` under "serde" flag (#911)

* add: serde derives under flag

* add: serde traits to `EmptyDBTyped`

* test: `CacheDB` serialization + deserialization
feat: add some conversions to InstructionResult (#910)

chore(docs): Update the benchmark docs to point to revm package (#906)

benchmarks.
feat(revm): implement prepend_state for BundleState (#907)

* feat(revm): implement prepend_state for BundleState

* refactor(revm): implement extend_state for BundleState

* fix(revm): format for ci

* refactor(revm): ci
chore(deps): bump thiserror from 1.0.50 to 1.0.51 (#915)

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.50 to 1.0.51.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.50...1.0.51)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump tokio from 1.34.0 to 1.35.0 (#909)

Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.34.0 to 1.35.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.34.0...tokio-1.35.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump once_cell from 1.18.0 to 1.19.0 (#908)

Bumps [once_cell](https://github.com/matklad/once_cell) from 1.18.0 to 1.19.0.
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.18.0...v1.19.0)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump alloy-primitives from 0.5.2 to 0.5.3 (#914)

Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: alloy-primitives
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
perf(primitives): optimize AccountInfo.is_empty()

This is a small optimization for AccountInfo.is_empty() with
regards to the short-circuiting of bool operators in Rust.

refactor(primitives): remove the unused AccountInfo methods

refactor(primitives): reuse code in AccountInfo

fix(primitives): incorrect use of the cfg attribute

perf(primitives): optimize Env.validate_tx()

chore(interpreter): conditionally enable `optional_beneficiary_reward`

- enable the `optional_beneficiary_reward` feature automatically
  when the `dev` feature is enabled.

docs(interpreter): fix the name of the macro referenced by record_memory()

perf(primitives): optimize AccountInfo.is_empty() (#922)

* perf(primitives): optimize AccountInfo.is_empty()

This is a small optimization for AccountInfo.is_empty() with
regards to the short-circuiting of bool operators in Rust.

* fix(primitives): incorrect use of the cfg attribute
fix(primitives): incorrect use of the cfg attribute (#923)

chore(interpreter): conditionally enable `optional_beneficiary_reward` (#925)

- enable the `optional_beneficiary_reward` feature automatically
  when the `dev` feature is enabled.
docs(interpreter): fix the name of the macro referenced by record_memory() (#926)

chore(deps): bump tokio from 1.35.0 to 1.35.1 (#920)

Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.35.0 to 1.35.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.35.0...tokio-1.35.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump anyhow from 1.0.75 to 1.0.76 (#921)

Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.75 to 1.0.76.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.75...1.0.76)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump alloy-rlp from 0.3.3 to 0.3.4 (#928)

Bumps [alloy-rlp](https://github.com/alloy-rs/rlp) from 0.3.3 to 0.3.4.
- [Changelog](https://github.com/alloy-rs/rlp/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/rlp/compare/v0.3.3...v0.3.4)

---
updated-dependencies:
- dependency-name: alloy-rlp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump futures from 0.3.29 to 0.3.30 (#927)

Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.29 to 0.3.30.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.29...0.3.30)

---
updated-dependencies:
- dependency-name: futures
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump thiserror from 1.0.51 to 1.0.52 (#929)

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.51 to 1.0.52.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.51...1.0.52)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore: relax Bytes requirement and use slice instead (#937)

fix: make revm-primitives no-std with c-kzg feature (#933)

refactor(interpreter): minor optimizations

feat(ethersdb): propagate errors instead of panicking in basic_ref (#935)

chore(deps): bump alloy-primitives from 0.5.3 to 0.5.4 (#934)

Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.5.3 to 0.5.4.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.5.3...v0.5.4)

---
updated-dependencies:
- dependency-name: alloy-primitives
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
BREAKING CHANGE: deprecate SELFDESTRUCT

feat(ci) #797: Comment output of cachegrind in PR  (#932)

* ci: adding cachegrind to PRs!

* ci: making it trigger everytime a PR opens and a comment is made

* ci: simplifying run rules

* ci: making it work

* ci: triggering again to see

* ci: fixing arguments

* ci: installing valgrind

* ci: installing cg_annotate

* ci: playing around a bit more

* ci: this should get the first working comment

* ci: this should get the first working comment (1)

* ci: this should get the first working comment (2 :P)

* ci: this should get the first working comment (3 :P)

* ci: trying again lol

* ci: trying again lol

* ci: trying again lol

* ci: trying again lol

* ci: trying again lol

* ci: trying again lol

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: debugging

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: sigh

* ci: removing garbage

* ci: adding edit last flag

* ci: testing around with no previous comment edge case

* ci: testing with permissions

* ci: giving workflow further more permissions

* ci: testing workflow
refactor(interpreter): simplify the logic of calc.new_cost()

refactor: implement TransferredAsset

refactor(interpreter): simplify the logic of calc.new_cost() (#939)

refactor(primitives): improve readability of Env.validate_tx()

fix(primitives): Serialize trait for TransferredAsset

refactor(primitives): improve readability of Env.validate_tx() (#924)

fix(test): adapt tests to use TransferredAsset

feat: charge gas for each Transferred Asset

chore(deps): bump alloy-rlp from 0.3.3 to 0.3.4 (#944)

Bumps [alloy-rlp](https://github.com/alloy-rs/rlp) from 0.3.3 to 0.3.4.
- [Changelog](https://github.com/alloy-rs/rlp/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/rlp/compare/v0.3.3...v0.3.4)

---
updated-dependencies:
- dependency-name: alloy-rlp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump enumn from 0.1.12 to 0.1.13 (#946)

Bumps [enumn](https://github.com/dtolnay/enumn) from 0.1.12 to 0.1.13.
- [Release notes](https://github.com/dtolnay/enumn/releases)
- [Commits](https://github.com/dtolnay/enumn/compare/0.1.12...0.1.13)

---
updated-dependencies:
- dependency-name: enumn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump thiserror from 1.0.50 to 1.0.55 (#947)

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.50 to 1.0.55.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.50...1.0.55)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump serde_json from 1.0.108 to 1.0.110 (#949)

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.108 to 1.0.110.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.108...v1.0.110)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump anyhow from 1.0.77 to 1.0.79 (#950)

Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.77 to 1.0.79.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.77...1.0.79)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump secp256k1 from 0.28.0 to 0.28.1 (#954)

Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1) from 0.28.0 to 0.28.1.
- [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.28.0...secp256k1-0.28.1)

---
updated-dependencies:
- dependency-name: secp256k1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump thiserror from 1.0.55 to 1.0.56 (#953)

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.55 to 1.0.56.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.55...1.0.56)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ci(cachegrind): add PAT (#958)

chore(deps): bump serde from 1.0.194 to 1.0.195 (#957)

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.194 to 1.0.195.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.194...v1.0.195)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump serde_json from 1.0.110 to 1.0.111 (#955)

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.110 to 1.0.111.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.110...v1.0.111)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Update cachegrind.yml add env (#960)

chore(deps): bump k256 from 0.13.2 to 0.13.3 (#959)

Bumps [k256](https://github.com/RustCrypto/elliptic-curves) from 0.13.2 to 0.13.3.
- [Commits](https://github.com/RustCrypto/elliptic-curves/compare/k256/v0.13.2...k256/v0.13.3)

---
updated-dependencies:
- dependency-name: k256
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
refactor(interpreter): local return_error! macro (#956)

* refactor(interpreter): local return_error! macro

* add exhaustive check for return_ macros

chore(deps): alloy 0.6 (#963)

refactor(interpreter): consistency in all_results_are_covered() (#961)

- export the return_error! macro to the crate level;
- unite the 2 redundant match arms when initializing SuccessOrHalt
  from from InstructionResult;
ci(cachegrind): pass action always (#965)

refactor(interpreter): improve enum naming (#962)

refactor(interpreter): consistency in all_results_are_covered() (#961)

- export the return_error! macro to the crate level;
- unite the 2 redundant match arms when initializing SuccessOrHalt
  from from InstructionResult;

refactor(interpreter): improve enum naming (#962)

feat: add asm-keccak feature (#972)

chore(deps): bump ethers-core from 2.0.11 to 2.0.12 (#970)

Bumps [ethers-core](https://github.com/gakonst/ethers-rs) from 2.0.11 to 2.0.12.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/commits)

---
updated-dependencies:
- dependency-name: ethers-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix: dont calculate initcode keccak on CREATE (#969)

feat: EvmBuilder and External Contexts (#888)

* rename main Evm structs, introduce wip external type

* tests

* Split evm and external context

* continue previous commit

* wip inspector handle register

* add few more handlers for frame and host

* Add instruction handle

* add instruction handler registration and Inspector wrap

* Rm Spec generic, more handlers, start factory

* move towards the builder, allow EVM modify

* wip on EvmBuilder and modify functionality

* EvmBuilder with stages wip

* Add wip stages for builer

* make handle register simple function, add raw instruction table, split external data from registers

* wip on simple builder functions and handler registry

* Examples and cleanup

* fix lifetime and fmt

* Add more handlers, deduct caller, validate tx agains state

* All handlers counted, started on docs, some cleanup

* renaming and docs

* Support all Inspector functionality with Handler

* Handler restructured. Documentation added

* more docs on registers

* integrate builder, fmt, move optimism l1block

* add utility builder stage functions

* add precompiles, fix bugs with journal spec

* spec to generic, optimism build

* fix optimism test

* fuck macros

* clippy and fmt

* fix trace block example

* ci fixes

* Flatten builder stages to generic and handler stage

* EvmBuilder doc and refactor fn access

* ignore rust code in book

* make revme compile, will refactor this in future

* Rename handles to Pre/Post Execution and ExecutionLoop

* fix optimism clippy

* small rename

* FrameData and docs

* check links mdbook

* comments and cleanup

* comment

* Add initialize interepreter to first frame

* clippy

* clippy2
added release-plz config (#912)

refactor(interpreter): refactor sstore_cost (#974)

* Refactored logic

* Fixed if condition to be istanbul specific + some refactoring in calculate function

* Removed nested loop

* Changed name and added inline

* Refactored if-else flow

* Removed needless return for clippy errors

* refactor

* fix clippy

---------

Co-authored-by: Mihir Wadekar <[email protected]>
remove test link (#976)

refactor: enhance readability (#968)

refactor(EvmBuilder): Remove unnecessary BuilderStage trait (#979)

refactor(log): use alloy_primitives::Log (#975)

* refactor(log): use alloy_primitives::Log

* clippy + fmt

* .toml fmt

* refactor Host::log

* refactor Host::log v2
fix: use maximum possible data fee for 4844 balance checks (#981)

* fix: use maximum possible data fee for 4844 balance checks

* fix docs

* use unwrap_or_default to cover non-blob txs
fix: cast overflow in 32-bits OS (#978)

* fix: cast overflow in 32-bits OS

* Fix type conversion issues in bitwise.rs, host.rs, host_env.rs, macros.rs, and system.rs

* Fix error in as_usize_or_fail macro

* Update CI configuration and add Cross.toml

* Fix command arguments in ethereum-tests.yml

* Update Ethereum tests workflow

* Update Cross.toml with pre-build commands for i686 target

chore(deps): bump bitflags from 2.4.1 to 2.4.2 (#983)

Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.4.1 to 2.4.2.
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bitflags/bitflags/compare/2.4.1...2.4.2)

---
updated-dependencies:
- dependency-name: bitflags
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat: Convert optimism panic into graceful error (#982)

* feat(crates): custom evm error targeting optimism

* fix(crates): alloc String

* Update crates/primitives/src/result.rs

Co-authored-by: rakita <[email protected]>

---------

Co-authored-by: rakita <[email protected]>
refactor(Inspector): Add CreateOutcome in create/create_end return (#980)

* rename main Evm structs, introduce wip external type

* tests

* Split evm and external context

* continue previous commit

* wip inspector handle register

* add few more handlers for frame and host

* Add instruction handle

* add instruction handler registration and Inspector wrap

* Rm Spec generic, more handlers, start factory

* move towards the builder, allow EVM modify

* wip on EvmBuilder and modify functionality

* EvmBuilder with stages wip

* Add wip stages for builer

* make handle register simple function, add raw instruction table, split external data from registers

* wip on simple builder functions and handler registry

* Examples and cleanup

* fix lifetime and fmt

* Add more handlers, deduct caller, validate tx agains state

* All handlers counted, started on docs, some cleanup

* renaming and docs

* Support all Inspector functionality with Handler

* Handler restructured. Documentation added

* more docs on registers

* integrate builder, fmt, move optimism l1block

* add utility builder stage functions

* add precompiles, fix bugs with journal spec

* spec to generic, optimism build

* fix optimism test

* fuck macros

* clippy and fmt

* fix trace block example

* ci fixes

* Flatten builder stages to generic and handler stage

* EvmBuilder doc and refactor fn access

* ignore rust code in book

* make revme compile, will refactor this in future

* Rename handles to Pre/Post Execution and ExecutionLoop

* fix optimism clippy

* small rename

* FrameData and docs

* check links mdbook

* comments and cleanup

* comment

* Add initialize interepreter to first frame

* clippy

* clippy2

* feat: create outcome

* fix: createOutcome properties to pub and removed wrapper functions

* review: fixed some review comments and added some improvement over instruction results

* fix: removed unused is_revert method

* review: adjusted comments, moved create_outcome to its own file

* fix: no std check

---------

Co-authored-by: rakita <[email protected]>
chore: fix serde std flags for no-std build (#987)

* use serde as no-std

* optional serde std

* delete comment #"std"

* "preserve_order"

* revme revert

* Update bins/revme/Cargo.toml

---------

Co-authored-by: Leo Alt <[email protected]>
set deduct_caller in optimism handler (#988)

refactor(Inspector): add CallOutcome to call/call_end (#985)

* rename main Evm structs, introduce wip external type

* tests

* Split evm and external context

* continue previous commit

* wip inspector handle register

* add few more handlers for frame and host

* Add instruction handle

* add instruction handler registration and Inspector wrap

* Rm Spec generic, more handlers, start factory

* move towards the builder, allow EVM modify

* wip on EvmBuilder and modify functionality

* EvmBuilder with stages wip

* Add wip stages for builer

* make handle register simple function, add raw instruction table, split external data from registers

* wip on simple builder functions and handler registry

* Examples and cleanup

* fix lifetime and fmt

* Add more handlers, deduct caller, validate tx agains state

* All handlers counted, started on docs, some cleanup

* renaming and docs

* Support all Inspector functionality with Handler

* Handler restructured. Documentation added

* more docs on registers

* integrate builder, fmt, move optimism l1block

* add utility builder stage functions

* add precompiles, fix bugs with journal spec

* spec to generic, optimism build

* fix optimism test

* fuck macros

* clippy and fmt

* fix trace block example

* ci fixes

* Flatten builder stages to generic and handler stage

* EvmBuilder doc and refactor fn access

* ignore rust code in book

* make revme compile, will refactor this in future

* Rename handles to Pre/Post Execution and ExecutionLoop

* fix optimism clippy

* small rename

* FrameData and docs

* check links mdbook

* comments and cleanup

* comment

* Add initialize interepreter to first frame

* clippy

* clippy2

* feat: add callOutcome and added to inspector.call

* added meaningful rust docs

feat(revme): make it runnable by goevmlab (#990)

* feat(revme): make it usable by goevmlab

* print outcome of test, propagate json flag
chore(revme): add recovery of address from secret key (#992)

* feat(revme): make it usable by goevmlab

* print outcome of test, propagate json flag

* chore(revme): add recovery of address from secret key
fect(revme): EmptyDb Blockhash string, json-outcome flag, set prevrandao in statetest (#994)

* Change empty blockhash keccak to string, print revme stateroot

* Introduce -o for output, set prevrandao

* fix cache test
fix: optimism gas refunds (#989)

* no gas refunds for deposits pre regolith

* fix test

* rename handle_call
docs: update create docs (#999)

Remove preserve_order in serde_json (#997)

* init

* no ^
chore: add getter for specId (#998)

docs: update call end docs (#1000)

chore: expose InstructionResult getters in Interpreter result (#1002)

* chore: expose InstructionResult getters in Interpreter result

* chore: reorder items
feat(inspector): Share call/create inputs in Inspector call_end/create_end (#1003)

* Share call/create inputs in Inspector call_end/create_end

* test in revme that stack is there
chore(Interpreter): Split calls to separate functions (#1005)

chore(Inspector): Add return_memory_offset to Inspector::call (#1006)

* chore(Interpreter): Split calls to separate functions

* chore(Inspector): Add return_memory_offset to Inspector::call
fix(Interpreter): is_revert should call is_revert (#1007)

Burntpix criterion bench (#1004)

* feat: criterion bench + svg creation

* fix: clippy

* fix: clippy

* review: first batch of fix

* review: removed lazy static, encapsulated into function

* clippy

* fix: link

* feat: restructure

* fix: using fixed bytes

* removed genesis alloc

* clippy
fix(State): Preserve original values on delete revert (#1010)

* fix(State): Preserve original values on delete revert

* clear storage only if original is None
chore(Test) : const to static (#1016)

docs(Cancun): update Cancun precompiles docs (#1015)

chore: make clippy happy (#1020)

docs: add some docs to StorageSlot (#1019)

refactor(Execution): Granular handles create/call,call_return,insert_call_outcome (#1024)

* fix(State): Preserve original values on delete revert

* clear storage only if original is None

* refactor(ExecutionHandle): Introduce more granular handles create/call,call_return,insert_call_outcome

* cleanup, rm comments, let Inspector use CallOutput

* update doc

* add alloc box
feat(op): Ecotone hardfork (#1009)

* Ecotone hardfork

* Use bedrock cost function if Ecotone values are unset

* Ecotone L1 fee tests

* fmt

* clippy
chore(clippy): nightly clippy (#1025)

refactor(op): Move op l1 block load to op handler (#1026)

* chore(clippy): nightly clippy

* refactor(op): Move op l1 block load to op handler
chore(deps): bump alloy-sol-macro from 0.6.0 to 0.6.2 (#1013)

Bumps [alloy-sol-macro](https://github.com/alloy-rs/core) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: alloy-sol-macro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump alloy-primitives from 0.6.0 to 0.6.2 (#1014)

Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: alloy-primitives
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump serde from 1.0.195 to 1.0.196 (#1022)

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.195 to 1.0.196.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.195...v1.0.196)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump auto_impl from 1.1.0 to 1.1.2 (#1023)

Bumps [auto_impl](https://github.com/auto-impl-rs/auto_impl) from 1.1.0 to 1.1.2.
- [Release notes](https://github.com/auto-impl-rs/auto_impl/releases)
- [Commits](https://github.com/auto-impl-rs/auto_impl/compare/v1.1.0...v1.1.2)

---
updated-dependencies:
- dependency-name: auto_impl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump serde_json from 1.0.111 to 1.0.113 (#1027)

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.111 to 1.0.113.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.111...v1.0.113)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(Inspector): add inspector depth test (#1028)

* chore(clippy): nightly clippy

* refactor(op): Move op l1 block load to op handler

* add inspector test and optimism test
chore: group handlers (#1030)

* chore(clippy): nightly clippy

* refactor(op): Move op l1 block load to op handler

* add inspector test and optimism test

* chore: switch lines
feat: add `BytecodeLocked::original_bytecode` (#1037)

chore(std): Add std HashMap,HashSet (#1041)

fix previous commit (#1044)

reorder crate listings to match the order in the book (#1047)

feat: tweeks for v4.0 revm release (#1048)

* chore: docs and Eq added

* chore: add auto_impl to GetInspectors

* chore: add reset_handler

* fix build

* Modify env box

* Impl GetInspector and Generic Inspector

* Add Evn helpers with spec_id

* helpers env with spec

* Add derefs to CfgEnvWithSpecId

* helper function

* Remove cfg.optimism field

* Support Optimism by default if optimism feature is enabled

* Add optimism_default_handler

* Add optimism enable field

* Optimism in builder

* into_env_with_spec_id

* add db

* Add box

* fix doc

* fix tests and move it to proper place

* Rename EnvWithSpecId to EnvWithHandlerCfg

* fix compile
chore(deps): bump ethers-providers from 2.0.11 to 2.0.13 (#1033)

Bumps [ethers-providers](https://github.com/gakonst/ethers-rs) from 2.0.11 to 2.0.13.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/compare/ethers-providers-v2.0.11...ethers-providers-v2.0.13)

---
updated-dependencies:
- dependency-name: ethers-providers
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump ethers-contract from 2.0.11 to 2.0.13 (#1034)

Bumps [ethers-contract](https://github.com/gakonst/ethers-rs) from 2.0.11 to 2.0.13.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/compare/ethers-contract-v2.0.11...ethers-contract-v2.0.13)

---
updated-dependencies:
- dependency-name: ethers-contract
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump alloy-sol-types from 0.6.0 to 0.6.2 (#1035)

Bumps [alloy-sol-types](https://github.com/alloy-rs/core) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: alloy-sol-types
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump ethers-core from 2.0.12 to 2.0.13 (#1036)

Bumps [ethers-core](https://github.com/gakonst/ethers-rs) from 2.0.12 to 2.0.13.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/commits/ethers-core-v2.0.13)

---
updated-dependencies:
- dependency-name: ethers-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(EvmBuilder): rename builder functions to HandlerCfg (#1050)

feat(ci): release-plz on PR and bump ahash (#1054)

* feat(ci): release-plz on PR and use stable rust

* bump ahash

* Update .github/workflows/ci.yml

* Update .github/workflows/ci.yml
feat(Handler): add push and pop of hanler registers (#1053)

* chore(EvmBuilder): rename builder functions to HandlerCfg

* feat(Handler): add push and pop of hanler registers

* Rename _with_spec_id to _with_handler_cfg
chore(deps): bump tokio from 1.35.1 to 1.36.0 (#1052)

Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.35.1 to 1.36.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.35.1...tokio-1.36.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump eyre from 0.6.11 to 0.6.12 (#1051)

Bumps [eyre](https://github.com/eyre-rs/eyre) from 0.6.11 to 0.6.12.
- [Commits](https://github.com/eyre-rs/eyre/commits)

---
updated-dependencies:
- dependency-name: eyre
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump secp256k1 from 0.28.1 to 0.28.2 (#1038)

Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1) from 0.28.1 to 0.28.2.
- [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.28.1...secp256k1-0.28.2)

---
updated-dependencies:
- dependency-name: secp256k1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat(handler): Change spec id on &mut (#1055)

tweeks: helper functions around Env (#1057)

* feat(handler): Change spec id on &mut

* tweeks. helper functions

* Add env and env_mut

* cfg mut
chore: spelling on last commit (#1058)

* spelling
chore: bump c-kzg and enable blst portable feature (#1059)

chore: tag v27, revm v4.0.0 release (#1061)

* chore: release

* small changes to changelog
README path

fix(op): skip validation on deposit tx (#1065)

* fix(op): skip validation on deposit tx

* compile it
tests(revme): statetests new format and return error (#1066)

* tests(revme): statetests new format and return error

* Include README
chore(revm): Add helpers to Build Revm with Context (#1068)

* chore(revm): Add helpers to Build Revm with Context

* Fix compile

* fix

* remove debug panic
fix: typo on internal append_handle_register methods (#1069)

* fix: typo on internal append_handle_register methods

* change to append_handler_register
fix: properly set context env (#1070)

chore: precompile bn128 copy (#1071)

feat(interpreter): relax `make_boxed_instruction_table::FN` to `FnMut` (#1076)

refactor(precompile): make use of padding utilities, simplify secp256k1 (#1073)

* refactor(precompile): make use of padding utilities, simplify secp256k1

* fix: Precompiles clones
perf/refactor(precompile): simplify bn128 precompile implementations (#1074)

perf(precompile): don't allocate if padding is not needed (#1075)

* perf(precompile): don't allocate if padding is not needed

* chore: rename `get_padded` functions
chore(deps): bump indicatif from 0.17.7 to 0.17.8 (#1077)

Bumps [indicatif](https://github.com/console-rs/indicatif) from 0.17.7 to 0.17.8.
- [Release notes](https://github.com/console-rs/indicatif/releases)
- [Commits](https://github.com/console-rs/indicatif/commits)

---
updated-dependencies:
- dependency-name: indicatif
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump thiserror from 1.0.56 to 1.0.57 (#1078)

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.56 to 1.0.57.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.56...1.0.57)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore: release (#1067)

Signed-off-by: GitHub Action <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
chore: tag v28, revm v5.0.0 (#1079)

chore: license date and revm docs (#1080)

chore: cargo update (#1081)

Add memory offset (#1032)

* mems offset

* Update evm.rs

* Update context.rs

* Update host.rs

* Update host.rs

* Update host.rs

* use core instead of std

* Update host.rs

* Update evm.rs

* Update interpreter.rs

* clippy

* Update interpreter.rs

* rename Ranger to Range

* Update inner_models.rs

* Update inner_models.rs

* Update evm.rs

* Update execution.rs

* Update evm.rs

* Update evm.rs

* Update evm.rs

* Update host.rs

* Update crates/interpreter/src/interpreter.rs

Co-authored-by: Dan Cline <[email protected]>

* Update execution.rs

* Update execution.rs

* Update handler_register.rs

* Update context.rs

* Update frame.rs

* Update execution.rs

* Update execution.rs

* Update evm.rs

* Update handler_register.rs

* Update eip3155.rs

* Update eip3155.rs

* Update customprinter.rs

* Update inspector.rs

* Update gas.rs

* Update handler_register.rs

* Update context.rs

* Update execution.rs

* Update evm.rs

* Update inner_models.rs

* Update handler_register.rs

* Update handler_register.rs

* Update inner_models.rs

* Update crates/revm/src/inspector.rs

---------

Co-authored-by: Dan Cline <[email protected]>
Co-authored-by: rakita <[email protected]>
feat: improve OriginalValuesKnown docs (#1083)

perf(precompile): use `Bytes` in precompile functions (#1085)

* perf(precompile): use `Bytes` in precompile functions

* fix: ecrecover

* chore: clippy
fix: Set is_optimism to true if default config (#1087)

* fix: Set is_optimism to true if default config

* add constructor

* Switch places, brake new fn
fix: optimism compilation (#1091)

fix: modify cfg spec_id (#1095) (#1096)

perf(state): avoid cloning full account (#1097)

* perf(state): avoid cloning full account

* fix
fix: rename and pass optimism-default-handler to revm-primitives (#1098)

* rename and pass optimism-default-handler to revm-primitives

* revert
chore(deps): bump alloy-primitives from 0.6.2 to 0.6.3 (#1093)

Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.6.2 to 0.6.3.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.2...v0.6.3)

---
updated-dependencies:
- dependency-name: alloy-primitives
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump alloy-sol-macro from 0.6.2 to 0.6.3 (#1094)

Bumps [alloy-sol-macro](https://github.com/alloy-rs/core) from 0.6.2 to 0.6.3.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.2...v0.6.3)

---
updated-dependencies:
- dependency-name: alloy-sol-macro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore: release (#1082)

Signed-off-by: GitHub Action <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
bump: tag v29 revm v6.0.0 (#1101)

BREAKING CHANGE: remove BALANCEOF, in favor of the single BALANCE

feat(interpreter/revm): first step in introducing MNAs
refactor(primitives): simplify the iteration of transferred assets

feat(interpreter): push MNAs to the stack

feat(interpreter): pop MNAs from the stack

fix: tests

Update CHANGELOG.md (#1102)

feat: disable smart contract creation

feat: only allow minting for contracts

chore: improve EIP-3155 implementation (#1105)

feat: split off serde_json dependency to its own feature (#1104)

* feat: split off serde_json dependency to its own feature

* chore: rename to 'serde-json'
chore(deps): bump alloy-sol-types from 0.6.2 to 0.6.3 (#1103)

Bumps [alloy-sol-types](https://github.com/alloy-rs/core) from 0.6.2 to 0.6.3.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.2...v0.6.3)

---
updated-dependencies:
- dependency-name: alloy-sol-types
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat: bump c-kzg, add portable feature, make it default (#1106)

chore(deps): bump serde from 1.0.196 to 1.0.197 (#1107)

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.196 to 1.0.197.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.196...v1.0.197)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump anyhow from 1.0.79 to 1.0.80 (#1108)

Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.79 to 1.0.80.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.79...1.0.80)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump serde_json from 1.0.113 to 1.0.114 (#1110)

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.113 to 1.0.114.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.113...v1.0.114)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix: Handle fatal db error on load_account (#1111)

chore: clippy cleanup (#1112)

* chore: clippy and removal of +nightly in ci

* use std

* Use stable rust for clippy

* fmt and stable rust

* rm nightly items
Remove DatabaseRef bound on CacheDB (#1113)

Co-authored-by: jasalper <>
fix(db): Set instruction result at outcome insert (#1117)

fix EthersDB deadlock (#1089)

* Update ethersdb.rs

* Update lib.rs

* Update lib.rs
fix: replace tuple in sstore return with struct (#1115)

* fix: replace tuple in sstore return with struct

* fix: add comments

* Update crates/interpreter/src/host.rs

---------

Co-authored-by: rakita <[email protected]>
Revert "fix EthersDB deadlock (#1089)" (#1118)

This reverts commit 0055d58ba6c60f5bcc623009dce4040c03aefb4f.
chore(refactor): Propagate fatal error (#1116)

* chore: clippy and removal of +nightly in ci

* use std

* Use stable rust for clippy

* fmt and stable rust

* rm nightly items

* temp

* chore(refactor): Propagate fatal error

* rm must_use as Return enforce it

* cleanup
Fix feature name for generate_block_traces example (#1120)

Ensure `L1Block` is in the cache (#1121)

adding more test for i256 (#1090)

chore: release tag v30 revm v6.1.0 (#1100)

Signed-off-by: GitHub Action <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
chore: main CHANGELOG (#1122)

chore: remove unused EvmInstructionTables type alias (#1123)

feat: add with_handler method to EvmBuilder (#1124)

* feat: add with_handler method to EvmBuilder

* improve docs

* add imports to docs

* fix docs

* move with_handler to BuilderStage
Add `clone` method to `ContextWithHandlerCfg` (#1127)

* Add `clone` to `ContextWithHandlerCfg`

* Fix `clippy` error.

`HandlerCfg` implements `Copy`, i prefer `.clone()` to be more redable but pass test is more important :)
chore: add ToString for no_std add exports some types in no_std (#1128)

* fix: add ToString for no_std

* fmt

* support no_std for some types
chore: add helper function for spec id (#1130)

Add `db` and `db_mut` to evm (#1133)

* Add `db` and `db_mut` to evm

* Fix format
fix: make `feature = "optional_gas_refund"` work (#1134)

chore(deps): bump auto_impl from 1.1.2 to 1.2.0 (#1132)

Bumps [auto_impl](https://github.com/auto-impl-rs/auto_impl) from 1.1.2 to 1.2.0.
- [Release notes](https://github.com/auto-impl-rs/auto_impl/releases)
- [Commits](https://github.com/auto-impl-rs/auto_impl/compare/v1.1.2...v1.2.0)

---
updated-dependencies:
- dependency-name: auto_impl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
refactor(interpreter/revm): naming

feat(revm): MNAs support in transact_preverified()

refactor: simplify access to `TxEnv.transferred_assets`

feat(revm): implement Host.balance()

Check runtime dynamically (#1135)

* Check runtime dynamically

* Drop futures as clippy suggests

* Fix panic

* Format

* Support current_thread runtime

* Revert unnecessary changes

* Add a few documents

* derive Clone thanks to removing runtime field
feat: add evm script (#1039)

* feat: add evm script

add a script which can run arbitrary binaries

* fix lint

* move evm runner script to `revme` subcommand

* cargo fmt

* cli byecode,input,path, state options added, output result

chore: remove clone for context in handler_register.rs (#1138)

chore(deps): bump alloy-sol-macro from 0.6.3 to 0.6.4 (#1136)

Bumps [alloy-sol-macro](https://github.com/alloy-rs/core) from 0.6.3 to 0.6.4.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.3...v0.6.4)

---
updated-dependencies:
- dependency-name: alloy-sol-macro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump alloy-primitives from 0.6.3 to 0.6.4 (#1137)

Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.6.3 to 0.6.4.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.3...v0.6.4)

---
updated-dependencies:
- dependency-name: alloy-primitives
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add VERBS to used by list (#1141)

feat(revm): journal the minting of assets

chore: make GitHub workflows not require no-std

test: build issues

chore: cargo update

build: remove the redundant imports from std

refactor: remove no_std mentions from codebase

feat: Add boxed precompile trait (#1131)

* feat: Add boxed precompile trait

* add box

* Add mut Box and ref Arc precompiles, rename
perf(interpreter): evaluate instruction table constructor at compile time (#1140)

Ideally this would also return `&'static` but since `InstructionTable` is
generic over `H`, `&'static InstructionTable<H>` requires `H: 'static`, for
which I haven't yet found a work-around.
feat: implement the BURN opcode

- refactor: include minted amount in the MINT receipt

chore: upgrade GitHub actions to Node 20

chore: upgrade GitHub actions to Node 20 (#1145)

chore(interpreter): factor out jump logic (#1146)

chore(interpreter): use already-computed sign in SAR (#1147)

refactor: CALLVALUE

feat(interpreter): MNAs support for CALL/CALLCODE/DELEGATECALL

refactor(interpreter): simplify the popping of transferred assets

chore(deps): bump alloy-sol-types from 0.6.3 to 0.6.4 (#1148)

Bumps [alloy-sol-types](https://github.com/alloy-rs/core) from 0.6.3 to 0.6.4.
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.6.3...v0.6.4)

---
updated-dependencies:
- dependency-name: alloy-sol-types
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump walkdir from 2.4.0 to 2.5.0 (#1149)

Bumps [walkdir](https://github.com/BurntSushi/walkdir) from 2.4.0 to 2.5.0.
- [Commits](https://github.com/BurntSushi/walkdir/compare/2.4.0...2.5.0)

---
updated-dependencies:
- dependency-name: walkdir
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat: add example for using a database by reference (#1150)

* issue: cannot use databases by reference when using handlers

* Make db_by_ref generic

* Cleanup and cleaner debug error trait

* misc: minimise changes

* doc: add explanatory comment

---------

Co-authored-by: rakita <[email protected]>
feat: add more JournaledState methods to EvmContext (#1158)

* feat: add more JournaledState methods to EvmContext

* Update crates/revm/src/journaled_state.rs
feat: use `impl` instead of `dyn` in `GetInspector` (#1157)

* feat: use `impl` instead of `dyn` in `GetInspector`

* chore: clippy
feat: precompile with generic context (#1155)

* feat: precompile with generic context

* move ContextPrecompile to revm crate

* nits

* hashmap and comments

* fmt
Add Hardhat to the "Used by" list (#1164)

feat: add PrecompileError::Other (#1165)

* feat: add PrecompileError::Other

* add PrecomileError::other
feat: implement DatabaseCommit for DatabaseComponents (#1163)

* feat: implement DatabaseCommit for DatabaseComponents

* misc: apply review suggestions
fix: reset tstorage on finalize (#1168)

* fix: reset tstorage on finalize

* destruct Self

* change order

* Update crates/revm/src/journaled_state.rs
fix: gas cost calculation (#1166)

* fix: gas cost calculation

* Update crates/revm/src/inspector/gas.rs

Co-authored-by: Matthias Seitz <[email protected]>

* Update crates/revm/src/inspector/gas.rs

Co-authored-by: Matthias Seitz <[email protected]>

* fix: formatting
chore(deps): bump ethers-core from 2.0.13 to 2.0.14 (#1162)

Bumps [ethers-core](https://github.com/gakonst/ethers-rs) from 2.0.13 to 2.0.14.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/commits)

---
updated-dependencies:
- dependency-name: ethers-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump ethers-contract from 2.0.13 to 2.0.14 (#1161)

Bumps [ethers-contract](https://github.com/gakonst/ethers-rs) from 2.0.13 to 2.0.14.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/commits)

---
updated-dependencies:
- dependency-name: ethers-contract
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump ethers-providers from 2.0.13 to 2.0.14 (#1160)

Bumps [ethers-providers](https://github.com/gakonst/ethers-rs) from 2.0.13 to 2.0.14.
- [Release notes](https://github.com/gakonst/ethers-rs/releases)
- [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gakonst/ethers-rs/commits)

---
updated-dependencies:
- dependency-name: ethers-providers
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix(interpreter): push to Stack in reverse order

fix(revme): revme error output and remove double summary (#1169)

feat: add insert method on instruction table (#1167)

* feat: add insert method on instruction table

* fix test

* nits refactor in tests

* clippy
feat(precompile): add a bool to bytes32 helper function (#1170)

feat(primitives): derive Default for SpecId (#1171)

chore: release (#1125)

Signed-off-by: GitHub Action <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
bump: v32 tag, main changelog (#1172)

feat(interpreter): OpCode struct constants (#1173)

Currently the only way to instantiate an OpCode at compile time is by using
unsafe or matching on the Option returned by `new` (unwrap is not stable).
This PR adds the same `u8` opcode constants to the `OpCode` struct as well.
feat: Restrict ContextPrecompiles only to EvmContext (#1174)

* first stage move Precompiles inside EvmContext. Create InnerEvmContext

* Move precompiles and split InnerEvmContext to its file

* fix optimism, fmt and clippy
chore: tag v32 revm v7.1.0 (#1176)

doc: add memory section (#1177)

chore(docs): Add memory md to summary (#1178)

* doc: add memory section

* chore(docs): Add memory to summary
chore: refactor list in CHANGELOG.md (#1179)

Update post_execution.rs (#1180)

chore: improve error implementations (#1183)

Make error messages consistent with Reth (starting lowercase, no full stops).
Fix typo in readme (#1185)

chore: fix some typos (#1189)

Signed-off-by: kaifulee <[email protected]>
chore(deps): bump anyhow from 1.0.80 to 1.0.81 (#1187)

Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore(deps): bump thiserror from 1.0.57 to 1.0.58 (#1188)

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.57 to 1.0.58.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.57...1.0.58)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix: use std hashmap with "std" feature (#1193)

Also caught by `-Zcheck-cfg`:
```
warning: unexpected `cfg` condition name: `std`
  --> crates/primitives/src/lib.rs:34:14
   |
34 |     if #[cfg(std)] {
   |              ^^^ help: found config with similar value: `feature = "std"`
   |
   = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `unix`, `windows`
   = help: consider using a Cargo feature instead or adding `println!("cargo:rustc-check-cfg=cfg(std)");` to the top of a `build.rs`
   = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
   = note: `#[warn(unexpected_cfgs)]` on by default
```
bump: c-kzg v1.0.0 (#1190)

chore: clippy (#1196)

chore: fix wonky test (#1197)

feat: optional nonce check (#1195)

feat: use Message::from_digest in secp256k1 ecrecover (#1199)

chore: add rustc-ice-*.txt to gitignore (#1200)

Cargo fmt has had some issues recently, this should prevent accidentally committing the bug reports
chore: expose functionality for custom EVMs (#1201)

* chore: expose functionality for custom EVMs

* reexport ecrecover
docs: clarify None nonce (#1204)

Documentation improvements (#1191)

* Try to improve documentation

* More documentation improvements

* Self-review
feat: add convert_boxed and insert_boxed for InstructionTable (#1194)

* feat: add into_box and insert_boxed for InstructionTable

Also adds an example for an instruction with captured context

* fix tests with clones

* fix valgrind

* fix valgrind again

* convert to boxed in insert_boxed

* update docs for insert_boxed

* make convert_boxed more concise

* Update crates/interpreter/src/instructions/opcode.rs

* Update crates/interpreter/src/instructions/opcode.rs
feat: track MNAs ids

feat: validate transferred & burned assets

fix: test issues

feat(interpreter): export utility macros (#1203)

* feat(interpreter): export utility macros

* chore: rename memory resize macro

* chore: dollar crate
feat: implement Default for EnvWithHandlerCfg (#1206)

Change unwrap to ? to propagate errors (#1207)

* Change unwrap to ? to propagate errors

* Make clippy happy
feat: add benchmarks for ecpairing, kzg, ecrecover precompiles (#1211)

* feat: basic crypto benches

* cleanup

* more cleanup
chore(deps): bump bitflags from 2.4.2 to 2.5.0 (#1210)

Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.4.2 to 2.5.0.
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bitflags/bitflags/compare/2.4.2...2.5.0)

---
updated-dependencies:
- dependency-name: bitflags
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore: release (#1175)

Signed-off-by: GitHub Action <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Revert "feat: optional nonce check (#1195)" (#1212)

* Revert "feat: optional nonce check (#1195)"

This reverts commit fe841be0ed2b01c3a1e34c7d45c0c8cf65808db2.

* typo
feat: make all precompiles public (#1213)

* feat: make all precompiles public

* make inner function pub
bump: v34 tag (#1214)

fix eip3155 summary gas_used bug and add fork name (#1216)

Co-authored-by: PanaW <[email protected]>
Improve `EthersDB` (#1208)

* Improve EthersDB:
  - Rewrite(kinda) `new` function.
  - Add `set_block_number` function.
  - Move `block_on` function to separate module.
…
@PaulRBerg PaulRBerg force-pushed the feat/multiple-native-tokens branch from 47f2369 to cca6e6e Compare May 24, 2024 19:17
@IaroslavMazur IaroslavMazur mentioned this pull request May 24, 2024
@PaulRBerg PaulRBerg changed the title feat: Multiple Native Tokens feat: Multiple Native Tokens [STALE] May 28, 2024
@PaulRBerg PaulRBerg mentioned this pull request May 28, 2024
@PaulRBerg
Copy link
Member Author

Closing in favor of #155.

@PaulRBerg PaulRBerg closed this May 28, 2024
@PaulRBerg PaulRBerg deleted the feat/multiple-native-tokens branch May 28, 2024 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Native Tokens (NTs)
1 participant