Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
e2ea527
fix: implement `PartialEq` for `JumpTable` correctly (#2654)
klkvr Jun 20, 2025
8534f8e
chore: fix typo (#2660)
lechpzn Jun 23, 2025
435153d
feat: optional_eip3541 (#2661)
bernard-wagner Jun 23, 2025
ae0dccc
feat: implement `Transaction` for `Either` (#2662)
klkvr Jun 24, 2025
e80a3a2
docs: fix copy-pasted inner doc comments (#2663)
quentin Jun 24, 2025
bce6778
refactor: use TxEnv::builder (#2652)
rakita Jun 24, 2025
e36bed7
refactor: statetest runner cleanup (#2665)
rakita Jun 24, 2025
8032618
docs: inline documentation of revm top modules (#2666)
quentin Jun 25, 2025
0815115
test(op/handler): verify caller account is touched by zero value tran…
emhane Jun 26, 2025
ea3d139
chore: cargo clippy --fix --all (#2671)
rakita Jun 27, 2025
89f40a0
feat: implement Database traits for either::Either (#2673)
mattsse Jun 30, 2025
ef0175b
feat: blake2 avx2 (#2670)
rakita Jun 30, 2025
e253f4a
chore: release (#2659)
github-actions[bot] Jun 30, 2025
f061873
bump: tag v79 revm v27.0.0 (#2680)
rakita Jun 30, 2025
498a298
fix: OpTransactionBuilder dont override envelope (#2681)
rakita Jul 1, 2025
57fe171
bump: v80 revm v27.0.1 (#2683)
rakita Jul 1, 2025
59066f0
docs: fix in pre_execution.rs about nonce bump for CREATE (#2684)
so-schen Jul 1, 2025
48853c9
feat: add custom precompile with journal access example (#2677)
rakita Jul 1, 2025
7f0f7ef
docs: minor fixes (#2686)
quentin Jul 3, 2025
c3385e3
docs: document external state transitions for EIP-4788 and EIP-2935 (…
VolodymyrBg Jul 3, 2025
320338a
chore: add PartialEq u8 (#2688)
mattsse Jul 3, 2025
4a7be59
fix(inspector): revert pointer before calling step_end (#2687)
rakita Jul 3, 2025
7013583
bump: tag v81 revm v27.0.1 (#2689)
rakita Jul 3, 2025
937457c
docs: fix minor typo (#2672)
kks-code Jul 3, 2025
d9f5cb8
docs: bump changelog for v81 (#2691)
rakita Jul 3, 2025
c431f2c
fix typo: Rename is_created_globaly to is_created_globally (#2692)
leopardracer Jul 4, 2025
08badc0
test: add comprehensive tests for TxEnvBuilder (#2690)
rakita Jul 4, 2025
b3cb181
chore: use c-kzg precompute value 8 (#2698)
rakita Jul 8, 2025
56def7e
fix(Inspector): call_end not calle on first call fast return (#2697)
rakita Jul 8, 2025
0ba0d33
chore: incorrect StorageKey and StorageValue parameter order in burnt…
reallesee Jul 14, 2025
360e248
refactor: simplify gas calculations by introducing a used() method (#…
jackwener Jul 14, 2025
051c3a8
chore: release (#2682)
github-actions[bot] Jul 14, 2025
356b138
bump: tag v82 revm v27.0.3 (#2710)
rakita Jul 14, 2025
2f58cbc
chore: remove State bound from JournalTr in Handler::Evm (#2715)
sam-iamm Jul 15, 2025
57da872
chore(interpreter): update docs for slice_mut and slice_range (#2714)
Rjected Jul 15, 2025
eb14fbf
perf: add asm-sha2 feature for sha2 precompile (#2712)
Rjected Jul 15, 2025
a583ecf
feat: expose sha3-keccak in revm and revm-primitives (#2713)
Rjected Jul 15, 2025
1a6e3c6
docs: add release safety section for SharedMemory fn (#2718)
rakita Jul 15, 2025
2eea4e9
feat: add a way for precompiles to revert (#2711)
klkvr Jul 15, 2025
bb3cbf0
chore: change gas parameter to immutable reference (#2702)
jackwener Jul 15, 2025
919ac89
docs(inspector): update obsolete current_opcode() comment (#2722)
rakita Jul 15, 2025
4fb3036
docs(inspector): simplify create_end docs and intrp.bytecode.set_acti…
rakita Jul 15, 2025
e33e3c4
do not enable sha3-keccak in workspace (#2727)
Wollac Jul 17, 2025
f49a130
chore: impl DatabaseRef for WrapDatabaseRef (#2726)
Soubhik-10 Jul 17, 2025
a494e38
feat: count inspector and bench test (#2730)
rakita Jul 18, 2025
5916453
chore: add clz_50 codspeed (#2743)
rakita Jul 21, 2025
6f1d029
fix: gas deduction with `disable_balance_check` (#2699)
frangio Jul 21, 2025
6e78eb4
test(op-revm): test for optional balance check (#2746)
rakita Jul 21, 2025
a6dfd55
feat(precompile): update p256 verify osaka gas cost (#2741)
rkrasiuk Jul 21, 2025
98b96b4
feat(precompile): update osaka modexp gas divisor (#2740)
rkrasiuk Jul 21, 2025
25b46e8
feat(interpreter): update CLZ cost (#2739)
rkrasiuk Jul 21, 2025
55c59dd
refactor: discard generic host implementation (#2738)
Troublor Jul 21, 2025
066fc30
feat(precompiles): Use bytes API for underlying precompile library AP…
kevaundray Jul 21, 2025
f4f4c38
chore: Add blake2 benchmarks (#2735)
kevaundray Jul 21, 2025
3e52715
Fix typo in EIP-7702 bytecode format comment (magic byte) (#2733)
Galoretka Jul 21, 2025
b839677
chore(precompile): refactor blake2 input parsing (#2734)
kevaundray Jul 21, 2025
bd14463
chore: remove legacytests submodule and download dynamically (#2745)
rakita Jul 21, 2025
bedcba7
feat(osaka): update EIP-7825 constant (#2753)
rkrasiuk Jul 22, 2025
9d9ffb0
feat(bytecode): add version getter + make versoin dynamic (#2751)
KumaCrypto Jul 22, 2025
d3d239e
fix: system call should have 30M gas limit (#2755)
rakita Jul 22, 2025
a5dd047
chore: bump develop statetests to devnet-3 (#2754)
rakita Jul 22, 2025
ee9d059
chore: evaluate instruction table initializer at compile time (#2762)
DaniPopes Jul 23, 2025
37c69a8
chore: clean up bytecode analysis (#2763)
DaniPopes Jul 23, 2025
0b9ca9b
perf: interpreter improvements (#2760)
DaniPopes Jul 23, 2025
549ca96
chore: clean up jump map (#2764)
DaniPopes Jul 23, 2025
f501d00
perf: un-Box frames (#2761)
DaniPopes Jul 23, 2025
6635d6e
fix: features and check in ci (#2766)
DaniPopes Jul 23, 2025
975071d
fix: fully deprecate serde-json (#2767)
DaniPopes Jul 23, 2025
5857fc4
chore: back to better map (#2768)
DaniPopes Jul 23, 2025
a48f566
chore: back to hashbrown map in revme (#2770)
DaniPopes Jul 23, 2025
f8a8f18
chore: use `EncodedPoint` to decode uncompressed public key (#2736)
kevaundray Jul 23, 2025
19922d8
chore: release (#2771)
github-actions[bot] Jul 23, 2025
7d0545d
chore: bump v83 revm v27.1.0 (#2773)
rakita Jul 23, 2025
d0d8aa8
Merge tag 'v83' into feat/v83
greged93 Jul 28, 2025
5af8f41
fix: lints
greged93 Jul 28, 2025
60bf14c
fix: Context implementation for Host
greged93 Jul 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,21 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo check --no-default-features -p revm --features=${{ matrix.features }}
- run: cargo check --no-default-features -p revm --features=${{ matrix.features }}

feature-checks:
name: features
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: cargo hack
run: cargo hack check --feature-powerset --depth 1

clippy:
name: clippy
Expand Down Expand Up @@ -95,7 +109,7 @@ jobs:
with:
components: rustfmt
- run: cargo fmt --all --check

# Check crates correctly propagate features
feature-propagation:
runs-on: ubuntu-latest
Expand Down
12 changes: 0 additions & 12 deletions .github/workflows/ethereum-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,6 @@ jobs:
- name: Checkout sources
uses: actions/checkout@v4

- name: Checkout ethereum/tests
uses: actions/checkout@v4
with:
repository: ethereum/legacytests
path: legacytests
submodules: recursive

- name: Install toolchain
uses: dtolnay/rust-toolchain@stable

Expand All @@ -41,9 +34,4 @@ jobs:

- name: Run tests
run: |
cross run --target ${{matrix.target}} --profile ${{ matrix.profile }} \
${{ matrix.target != 'i686-unknown-linux-gnu' && '--features gmp' || '' }} \
-p revme -- statetest \
legacytests/Cancun/GeneralStateTests/ \
legacytests/Constantinople/GeneralStateTests/
./scripts/run-tests.sh clean cross ${{ matrix.profile }} ${{ matrix.target }}
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "legacytests"]
path = legacytests
url = https://github.com/ethereum/legacytests.git
91 changes: 90 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,96 @@
Because this is workspace with multi libraries, tags will be simplified, and with this document you can match version of project with git tag.


# v83
date: 23.07.2025

Fusaka devnet-3 support. Performance regresion fixes.

`revm-primitives`: 20.0.0 -> 20.1.0 (✓ API compatible changes)
`revm-bytecode`: 6.0.1 -> 6.1.0 (✓ API compatible changes)
`revm-database-interface`: 7.0.1 -> 7.0.2 (✓ API compatible changes)
`revm-context-interface`: 8.0.1 -> 9.0.0 (⚠ API breaking changes)
`revm-context`: 8.0.3 -> 8.0.4 (✓ API compatible changes)
`revm-interpreter`: 23.0.2 -> 24.0.0 (⚠ API breaking changes)
`revm-precompile`: 24.0.1 -> 25.0.0 (⚠ API breaking changes)
`revm-handler`: 8.0.3 -> 8.1.0 (✓ API compatible changes)
`revm-inspector`: 8.0.3 -> 8.1.0 (✓ API compatible changes)
`revm`: 27.0.3 -> 27.1.0 (✓ API compatible changes)
`revme`: 7.0.4 -> 7.1.0 (✓ API compatible changes)
`op-revm`: 8.0.3 -> 8.1.0 (✓ API compatible changes)
`revm-state`: 7.0.1 -> 7.0.2
`revm-database`: 7.0.1 -> 7.0.2
`revm-statetest-types`: 8.0.4 -> 8.0.5

# v82
date 14.07.2025

Fix for inspector not calling `step_end`.

* `revm-context`: 8.0.2 -> 8.0.3 (✓ API compatible changes)
* `revm-interpreter`: 23.0.1 -> 23.0.2 (✓ API compatible changes)
* `revm-precompile`: 24.0.0 -> 24.0.1 (✓ API compatible changes)
* `revm-handler`: 8.0.2 -> 8.0.3 (✓ API compatible changes)
* `revm-inspector`: 8.0.2 -> 8.0.3 (✓ API compatible changes)
* `revme`: 7.0.3 -> 7.0.4 (✓ API compatible changes)
* `op-revm`: 8.0.2 -> 8.0.3 (✓ API compatible changes)
* `custom_precompile_journal`: 0.1.0
* `revm`: 27.0.2 -> 27.0.3
* `revm-statetest-types`: 8.0.3 -> 8.0.4

# v81
date: 03.07.2025

Fix inspector step_end panic for opcode fn.

* `revm-bytecode`: 6.0.0 -> 6.0.1 (✓ API compatible changes)
* `revm-handler`: 8.0.1 -> 8.0.2 (✓ API compatible changes)
* `revm-inspector`: 8.0.1 -> 8.0.2 (✓ API compatible changes)
* `revme`: 7.0.2 -> 7.0.3 (✓ API compatible changes)
* `custom_precompile_journal`: 0.1.0
* `revm-state`: 7.0.0 -> 7.0.1
* `revm-database-interface`: 7.0.0 -> 7.0.1
* `revm-context-interface`: 8.0.0 -> 8.0.1
* `revm-context`: 8.0.1 -> 8.0.2
* `revm-database`: 7.0.0 -> 7.0.1
* `revm-interpreter`: 23.0.0 -> 23.0.1
* `revm`: 27.0.1 -> 27.0.2
* `revm-statetest-types`: 8.0.2 -> 8.0.3
* `op-revm`: 8.0.1 -> 8.0.2

# v80
date 01.07.2025

Fix `build` and `build_fill` for OpTransactionBuilder

* `revm-context`: 8.0.0 -> 8.0.1 (✓ API compatible changes)
* `revm-handler`: 8.0.0 -> 8.0.1 (✓ API compatible changes)
* `revm-inspector`: 8.0.0 -> 8.0.1 (✓ API compatible changes)
* `revm`: 27.0.0 -> 27.0.1 (✓ API compatible changes)
* `op-revm`: 8.0.0 -> 8.0.1 (✓ API compatible changes)

# v79
date: 01.07.2025

Fix for bytecode eq operation.

* `revm-bytecode`: 5.0.0 -> 6.0.0 (⚠ API breaking changes)
* `revm-state`: 6.0.0 -> 7.0.0 (✓ API compatible changes)
* `revm-database-interface`: 6.0.0 -> 7.0.0 (✓ API compatible changes)
* `revm-context-interface`: 7.0.1 -> 8.0.0 (⚠ API breaking changes)
* `revm-context`: 7.0.1 -> 8.0.0 (✓ API compatible changes)
* `revm-interpreter`: 22.0.1 -> 23.0.0 (✓ API compatible changes)
* `revm-precompile`: 23.0.0 -> 24.0.0 (✓ API compatible changes)
* `revm-handler`: 7.0.1 -> 8.0.0 (⚠ API breaking changes)
* `revm-inspector`: 7.0.1 -> 8.0.0 (✓ API compatible changes)
* `revm`: 26.0.1 -> 27.0.0 (✓ API compatible changes)
* `revm-statetest-types`: 8.0.1 -> 8.0.2 (✓ API compatible changes)
* `revme`: 7.0.1 -> 7.0.2 (✓ API compatible changes)
* `op-revm`: 7.0.1 -> 8.0.0 (⚠ API breaking changes)
* `revm-database`: 6.0.0 -> 7.0.0

# v78
date 20.05.2025
date: 20.05.2025

Quick fix for not calling `frame_stack.clear()` https://github.com/bluealloy/revm/pull/2656

Expand Down
52 changes: 37 additions & 15 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 16 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,32 @@ members = [
"examples/erc20_gas",
"examples/my_evm",
"examples/custom_opcodes",
"examples/custom_precompile_journal",
]
resolver = "2"
default-members = ["crates/revm"]

[workspace.dependencies]
# revm
revm = { path = "crates/revm", version = "26.0.1", default-features = false }
primitives = { path = "crates/primitives", package = "revm-primitives", version = "20.0.0", default-features = false }
bytecode = { path = "crates/bytecode", package = "revm-bytecode", version = "5.0.0", default-features = false }
database = { path = "crates/database", package = "revm-database", version = "6.0.0", default-features = false }
database-interface = { path = "crates/database/interface", package = "revm-database-interface", version = "6.0.0", default-features = false }
state = { path = "crates/state", package = "revm-state", version = "6.0.0", default-features = false }
interpreter = { path = "crates/interpreter", package = "revm-interpreter", version = "22.0.1", default-features = false }
inspector = { path = "crates/inspector", package = "revm-inspector", version = "7.0.1", default-features = false }
precompile = { path = "crates/precompile", package = "revm-precompile", version = "23.0.0", default-features = false }
statetest-types = { path = "crates/statetest-types", package = "revm-statetest-types", version = "8.0.1", default-features = false }
context = { path = "crates/context", package = "revm-context", version = "7.0.1", default-features = false }
context-interface = { path = "crates/context/interface", package = "revm-context-interface", version = "7.0.1", default-features = false }
handler = { path = "crates/handler", package = "revm-handler", version = "7.0.1", default-features = false }
op-revm = { path = "crates/op-revm", package = "op-revm", version = "7.0.1", default-features = false }
revm = { path = "crates/revm", version = "27.1.0", default-features = false }
primitives = { path = "crates/primitives", package = "revm-primitives", version = "20.1.0", default-features = false }
bytecode = { path = "crates/bytecode", package = "revm-bytecode", version = "6.1.0", default-features = false }
database = { path = "crates/database", package = "revm-database", version = "7.0.2", default-features = false }
database-interface = { path = "crates/database/interface", package = "revm-database-interface", version = "7.0.2", default-features = false }
state = { path = "crates/state", package = "revm-state", version = "7.0.2", default-features = false }
interpreter = { path = "crates/interpreter", package = "revm-interpreter", version = "24.0.0", default-features = false }
inspector = { path = "crates/inspector", package = "revm-inspector", version = "8.1.0", default-features = false }
precompile = { path = "crates/precompile", package = "revm-precompile", version = "25.0.0", default-features = false }
statetest-types = { path = "crates/statetest-types", package = "revm-statetest-types", version = "8.0.5", default-features = false }
context = { path = "crates/context", package = "revm-context", version = "8.0.4", default-features = false }
context-interface = { path = "crates/context/interface", package = "revm-context-interface", version = "9.0.0", default-features = false }
handler = { path = "crates/handler", package = "revm-handler", version = "8.1.0", default-features = false }
op-revm = { path = "crates/op-revm", package = "op-revm", version = "8.1.0", default-features = false }

# alloy
alloy-eip2930 = { version = "0.2.1", default-features = false }
alloy-eip7702 = { version = "0.6.1", default-features = false }
alloy-primitives = { version = "1.2.0", default-features = false, features = [] }
alloy-primitives = { version = "1.2.0", default-features = false }

# alloy in examples, revme or feature flagged.
alloy-rlp = { version = "0.3.12", default-features = false }
Expand Down
Loading
Loading