Skip to content

chore: bump revm v26.0.0#303

Merged
mattsse merged 3 commits intomainfrom
rakita/bump_revm_v25.0.0
Jun 19, 2025
Merged

chore: bump revm v26.0.0#303
mattsse merged 3 commits intomainfrom
rakita/bump_revm_v25.0.0

Conversation

@rakita
Copy link
Copy Markdown
Contributor

@rakita rakita commented Jun 6, 2025

No description provided.

@rakita rakita requested review from DaniPopes and mattsse as code owners June 6, 2025 15:23
@rakita rakita changed the title chore: bump revm v25.0.0 chore: bump revm v26.0.0 Jun 19, 2025
@rakita rakita force-pushed the rakita/bump_revm_v25.0.0 branch from a48d570 to de15f57 Compare June 19, 2025 13:08
@mattsse mattsse merged commit e9f6a9d into main Jun 19, 2025
12 checks passed
@rakita rakita deleted the rakita/bump_revm_v25.0.0 branch June 20, 2025 08:33
asdv23 added a commit to mantle-xyz/revm-inspectors that referenced this pull request Dec 4, 2025
* chore: Remove eof trace handlers (paradigmxyz#299)

closes paradigmxyz#298

* chore(`deps`): bump revm to 24.0.0 (paradigmxyz#300)

Bumps Revm to 24.0.0

New releases are out: https://github.com/bluealloy/revm/releases/tag/v74

Required for foundry-rs/foundry#10557

* chore: release 0.23.0

* chore: update deny.toml and upgrade CI workflow (paradigmxyz#302)

Fixes failed `deny` check:
https://github.com/paradigmxyz/revm-inspectors/actions/runs/15468046255/job/43544845990?pr=301

The `deny.toml` / CI was outdated, this should fix it

Inspired by:
https://github.com/alloy-rs/alloy/blob/main/.github/workflows/ci.yml and
https://github.com/alloy-rs/alloy/blob/main/deny.toml

Core of the CI flow is unchanged, only formatted

Removes unused license exceptions as shown by `cargo deny --all-features
check all`

If `git` exceptions are required they can be re-added in the future

* chore: remove EOF leftovers (paradigmxyz#301)

Closes: paradigmxyz#174
(replaces it)

Follow up of paradigmxyz#299

Removes `code_section_idx` that is EOF specific, as added in
paradigmxyz#169

Keeps: `record_immediate_bytes` as I think it may be useful / still used
by Foundry / is more readable.

Undo's missed `ExtDelegateCall` from paradigmxyz#299 :
paradigmxyz#156

Ref:
https://github.com/paradigmxyz/revm-inspectors/pulls?q=is%3Apr+eof+is%3Aclosed

* chore: release 0.23.1

* fix: deduct call opcode gas (paradigmxyz#304)

fix gas accounting for call opcodes

cc @sslivkoff @rakita

* chore: release 0.24.0

* chore: bump revm v26.0.0 (paradigmxyz#303)

* chore: release 0.25.0

* chore: add trace_addresses helper (paradigmxyz#306)

prep for foundry-rs/foundry#10596

* chore(deps): bump to revm 27, alloy 1.2 (paradigmxyz#307)

Bumps Revm to 27, Alloy to 1.2

Adds: BSD-2-Clause exception, previously approved in
https://github.com/paradigmxyz/reth/blob/fcf58cb5acc2825e7c046f6741e90a8c5dab7847/deny.toml#L44

* chore: release 0.26.0

* fix: record state diffs for vm tracer (paradigmxyz#308)

the vmtracer needs state diffs for


https://github.com/alloy-rs/alloy/blob/c808022d571aaffb97a3429a0fdba6fc06e8f7aa/crates/rpc-types-trace/src/parity.rs#L659-L660

so that we enter here:


https://github.com/paradigmxyz/revm-inspectors/blob/1c0e405ad008453cded08b44a3cfa2ca611a6aa8/src/tracing/mod.rs#L502-L502
and record the `step-storage_change`


https://github.com/paradigmxyz/revm-inspectors/blob/1c0e405ad008453cded08b44a3cfa2ca611a6aa8/src/tracing/mod.rs#L507-L507

* chore: release 0.26.1

* fix: use revert directly (paradigmxyz#309)

* chore: release 0.26.2

* fix: record manual revert pc (paradigmxyz#310)

* chore: release 0.26.3

* chore: release 0.26.4

* fix: always record revert (paradigmxyz#311)

* chore: release 0.26.5

* test: add top call revert test (paradigmxyz#312)

ref paradigmxyz/reth#17255

* feat: use native BigInt with compatibility layer (paradigmxyz#314)

Uses Boa's native BigInt support instead of relying on the polyfill
while maintaining backward compatibility.

## Changes
- Add BigInt.prototype.toJSON for JSON serialization compatibility
- Create global 'bigint' alias (lowercase) for backward compatibility
- Update to_bigint to use the lowercase bigint alias
- Keep bigint.js polyfill file for potential fallback
- Add comprehensive tests validating native BigInt functionality

## Compatibility
The implementation maintains full backward compatibility:
- The global `bigint` (lowercase) still exists and works as before
- JSON serialization is supported through the added toJSON method
- All existing tests pass without modification

* feat: geth_erc7562_tracers addition (paradigmxyz#316)

fixes paradigmxyz#315

* feat: add erc7562 config (paradigmxyz#317)

add corresponding config

* perf: outline edgecov step fn (paradigmxyz#318)

Minimize the impact of `fn step` for the common case of not doing
anything.

* perf: pre alloc struct logs (paradigmxyz#319)

this vec is huge for large txs and for every step we push an entry, so
we can pre-alloc this

* perf: optimize push_steps_on_stack to avoid temporary allocation (paradigmxyz#320)

## Summary

Optimizes the `push_steps_on_stack` method to avoid creating a temporary
vector allocation.

## Changes

The previous implementation would:
1. Call `call_step_stack()` which creates a temporary `Vec`
2. Reverse iterate over that vec and extend the deque

The new implementation:
1. Directly extends the deque with reversed steps (without computing
`call_child_id`)
2. Iterates over the inserted range in reverse to set `call_child_id`
values where needed

* perf: allocate some more initial capacity for CallTraceArena (paradigmxyz#323)

The `vec![]` macro only allocates for the number of elements. In
`CallTraceArena::default()`, it only allocates 1, so when growing it the
capacity doubles starting at 1, which is pretty inefficient.

* fix(geth_tracer): keccak input edge cases (paradigmxyz#328)

Covering few edge cases on memory copy.

* fix: allow single digit hex strings (paradigmxyz#329)

ref 

paradigmxyz/reth#16289

we need to patch uneven js input strings, which could be digits, this
now behaves like geth's tracer


https://github.com/ethereum/go-ethereum/blob/355228b011ef9a85ebc0f21e7196f892038d49f0/common/bytes.go#L27-L37


https://github.com/ethereum/go-ethereum/blob/355228b011ef9a85ebc0f21e7196f892038d49f0/eth/tracers/js/goja.go#L91-L91

* chore: release 0.27.0

* chore: use hashmap default (paradigmxyz#330)

need to use default here

* chore: release 0.27.1

* feat: updated msrv to 1.86.0 (paradigmxyz#331)

* feat: boxed the decoded field (paradigmxyz#326)

fixes paradigmxyz#324

* chore: decoded cleanups

* feat: reused call trace stack (paradigmxyz#325)

fixes paradigmxyz#321

---------

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: rm log clone (paradigmxyz#333)

smol thing I found while looking at

paradigmxyz/reth#17629

* chore(deps): bump revm 28.0.0, msrv 1.88 required for revm (paradigmxyz#334)

Bumps to revm 28, bumps msrv to 1.88 as it is required for revm

* chore: release 0.28.0

* feat(js): add logic to count current opcode cost instead of cumulative (paradigmxyz#336)

Currently the revm-inspectors js tracer acts differently from the geth
implementation where the `getCost()` function returns the cumulative
amount of cost for each step instead of the individual opcode cost. I
added a simple function that will store the previous spent value and
then use that in the next step to calculate the currect opcode cost.

* chore: make fns private (paradigmxyz#337)

* chore: release 0.28.1

* chore: add default init callframe (paradigmxyz#338)

defensive prep for alloy-rs/alloy#2748

* chore: add clone to storage inspector (paradigmxyz#340)

ref paradigmxyz/reth#16022

* chore: clippy defense (paradigmxyz#339)

prep for alloy-rs/alloy#2730

* chore: release 0.28.2

* chore: bump to revm 29 (paradigmxyz#341)

no breaking changes inside `revm-inspectors`

required for foundry-rs/foundry#11416

* chore: release 0.29.0

* chore(ci): upgrade checkout to v5 (paradigmxyz#342)

Maintenance update to actions/checkout@v5 to align with the current
runner stack (Node 24); nothing else modified.
Release notes: https://github.com/actions/checkout/releases/tag/v5.0.0

* refactor(tracing): Update op to Cow (paradigmxyz#327)

Closes paradigmxyz#322.

Needs alloy-rs/alloy#2730.

Using `Cow::Borrowed` to avoid the allocation from `to_string()`.

---------

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* feat: add index to log (paradigmxyz#344)

ref alloy-rs/alloy#2748

closes paradigmxyz/reth#17629

* chore: release 0.29.1

* chore: remove debug (paradigmxyz#345)

Default hash builder implements Debug conditionally

* chore: remove clippy.toml (paradigmxyz#346)

MSRV is inferred from Cargo.toml.

* fix(`ci`): feature checks failing due to `std::` use (paradigmxyz#348)

Fixes:
https://github.com/paradigmxyz/revm-inspectors/actions/runs/17609870312/job/50029106190?pr=347

* chore: release 0.29.2

* chore: add `SECURITY.md` (paradigmxyz#347)

Currently missing from the repo

* perf: box CallTraceStep::storage_change (paradigmxyz#352)

Same as paradigmxyz#324, plus
a few nits.

Reduces the size of `CallTraceStep` from 336 to 216 bytes on 64-bit.
This is a gain overall because the vast majority of steps (>=95%) do not
change storage.

* perf: re-use returndata buffer (paradigmxyz#351)

`return_data.buffer()` is `Bytes`. Cheaply clone it instead of creating
a new copy.

* chore: release 0.30.0

* chore: Remove depth and contract fields from CallTraceStep (paradigmxyz#355)

closes paradigmxyz#354

* perf: remove step_stack (paradigmxyz#357)

This stack should always be exactly 1 element, and the context should be
the same in both `step` and `step_end`.

This avoids unnecessary memory bandwidth and `arena` access in case of
`!record` in the very hot `step` functions.

* chore: simplify CallInputExt (paradigmxyz#356)

* chore: rm doc_auto_cfg (paradigmxyz#360)

* Fix return data in geth traces (paradigmxyz#359)

The Geth trace builder incorrectly sets the same `returnData` value for
all opcode steps in a trace,
using the final call output instead of the step-specific return data
buffer state.

## Expected Behavior

Each opcode step should display the return data buffer state
at that specific point in execution.

## Actual Behavior

All opcode steps show the same returnData value - the final output of
the entire
call. 

For example, in a Fibonacci contract call that returns 1, every single
opcode
step shows:
"returnData":
"0x0000000000000000000000000000000000000000000000000000000000000001"

* fix(js-tracer): correctly handle `isPrecompiled` and `slice` builtins (paradigmxyz#363)

Closes paradigmxyz#350
Closes paradigmxyz#349

- Fixes `isPrecompiled` built-in to work correctly. Before we were
incorrectly checking `precompiles_registered` flag which caused the fn
to never be injected. Added test for it as well
- Adds `slice` built-in and a test for it

* fix(js-tracer): more fixes (paradigmxyz#365)

Ref paradigmxyz/reth#18904
Closes paradigmxyz#364

Changes js objects to be created via
`JsObject::with_object_proto(ctx.intrinsics())` instead of
`JsObject::default()` as suggested in
boa-dev/boa#4460 (comment) thus
making sure helpers like `hasOwnProperty` are accessible.

Changes `JsValue -> f64` conversion to happen via `to_numeric_number` so
that bigints can also be used as input values for `slice` functions

* fix: dont include code in post state if disabled (paradigmxyz#366)

closes paradigmxyz/reth#18942

we should not set this if code is disabled in the config

* fix: respect disableCode flag in diff mode for PreStateTracer (paradigmxyz#362)

The disableCode flag was not being respected in diff mode for the
PreStateTracer. When disableCode was set to true, code was correctly
filtered from the pre state but was still appearing in the post state.

This fix ensures that when disableCode is true, the code field is set to
None for both pre and post states in diff mode, matching the expected
behavior from Geth.

Added test coverage to verify the fix works correctly in both cases
(disableCode=true and disableCode=false).

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore(deps): bump `revm` to `30.1.0` (paradigmxyz#367)

Bumps revm to 30.1.0

Ref: foundry-rs/foundry#12075

* chore: release 0.31.0

* fix: use correct depth for geth traces (paradigmxyz#369)

follow-up for paradigmxyz#355

* chore: release 0.31.1

* chore: guard against new tracer variants (paradigmxyz#370)

prep for alloy-rs/alloy#2690

* chore: release 0.31.2

* fix: serde version

---------

Co-authored-by: stevencartavia <112043913+stevencartavia@users.noreply.github.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: rakita <rakita@users.noreply.github.com>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: Ishika Choudhury <117741714+Rimeeeeee@users.noreply.github.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: JP <36560907+0xfourzerofour@users.noreply.github.com>
Co-authored-by: witty 🪿 <131909329+0xwitty@users.noreply.github.com>
Co-authored-by: Léa Narzis <78718413+lean-apple@users.noreply.github.com>
Co-authored-by: PG Herveou <pgherveou@parity.io>
Co-authored-by: Rakan Al-Huneiti <rakan.alhneiti@gmail.com>
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.

2 participants