deps: bump alloy 2.4.0/1.6.1, revm 42.0.1, op-revm for reth 2.5.0 compat (Beryl) - #70
Merged
Merged
Conversation
Bumps the alloy-* family (2.0.5 -> 2.4.0, alloy-primitives/alloy-sol-types 1.6.0 -> 1.6.1), alloy-evm 0.37.0 -> 0.38.0, and revm 41.0.0 -> 42.0.1 to match the dependency set required by base/base's reth 2.5.0 upgrade. op-revm moved from the standalone foundry-rs/op-revm repo into the foundry-rs/optimism monorepo (rust/op-revm); switched to a direct git dependency at foundry-rs/optimism@566d19e, matching the [patch.crates-io] pins for alloy-op-evm/op-alloy-*/alloy-op-hardforks. Also bumped foundry-fork-db and tempo-primitives pins to revisions compatible with revm 42, since the previous pins pulled stray older revm versions into the lockfile. Version combination validated against upstream foundry-rs/foundry's master branch Cargo.toml, which already carries this exact dependency set. Source changes required by the resulting API breaks: - revm-handler: Handler::last_frame_result gained a GasTracker parameter (crates/evm/core/src/evm.rs) - revm-interpreter: CreateOutcome gained charged_create_state_gas; switch all call sites to the new CreateOutcome::new(result, address) constructor (evm.rs, cheatcodes/inspector.rs, inspectors/stack.rs) - alloy-op-hardforks 0.5.0 removed OpHardfork::Interop in favor of Karst/Lagoon; update the OpHardfork -> OpSpecId mapping and its test (crates/evm/core/src/hardfork.rs) - revm-context-interface: calculate_initial_tx_gas gained an EIP-2780 eip2780 parameter; pass None to preserve prior semantics in the reporting-only gas recomputation (executors/mod.rs) - strum 0.28 renamed NamedChain::VARIANTS to NamedChain::VARIANT_NAMES (cli/opts/chain.rs, forge/cmd/cache.rs) - alloy-rpc-types-trace 2.4.1 added GethDebugBuiltInTracerType::StateGasTracer; bundle it into the existing 'unsupported tracer' arms, matching upstream foundry-rs/foundry (anvil/eth/backend/mem/mod.rs) Verified anvil and forge build and run (--version) with: cargo build --release --no-default-features --features anvil/cli -p anvil -p forge (cherry picked from commit dd63c96)
base/base#4390 (reth 2.5.0 upgrade) has merged to main, which bumped alloy-genesis and added a bogota_time field to ChainConfig literals in base-common-chains. The previously pinned base/base commit predates that change and fails to compile against this repo's now-newer alloy-genesis version (missing-field E0063 on ChainConfig). Repoint crates/evm/networks/Cargo.toml at base/base main HEAD (cea79451170a576cd9fd7d8189b660daceb45001), via ./script/bump-base.sh main. Verified: cargo build --release -p anvil -p forge succeeds, both binaries run --version successfully. (cherry picked from commit 33efc58)
The alloy 2.4.0 bump pulls in a newer evmole (via cast), which now depends on minicbor v2.3.0, licensed BlueOak-1.0.0 (OSI-approved permissive license). Allow it in deny.toml, matching upstream foundry-rs/foundry's deny.toml which already allows this license. Verified: cargo deny --all-features check all now reports 'licenses ok' (previously failed with license-rejected). (cherry picked from commit b6c214f)
Two issues surfaced only under CI's clippy job (which runs with RUSTFLAGS=-Dwarnings, unlike a plain cargo build): - crates/cli and crates/forge declared a direct 'strum' dependency that became unused once NamedChain::VARIANTS was renamed to NamedChain::VARIANT_NAMES (a strum 0.28 rename, re-exported via alloy-chains) and the 'use strum::VariantNames' import was dropped. Removed the now-unused dependency from both crates' Cargo.toml, matching upstream foundry-rs/foundry, which does not declare strum in either crate. - The alloy/revm bump pulled a newer transitive 'time' crate (0.3.47 -> 0.3.55), crossing the version where 'format_description::parse' was deprecated in favor of 'format_description::parse_borrowed::<VERSION>'. Switched crates/chisel/src/session.rs to parse_borrowed::<1>, which is exactly what the deprecated function forwarded to internally, so behavior is unchanged. (cherry picked from commit 9dd5be1)
clap 4.6 renders [alias: X] (singular) instead of [aliases: X] when a flag has exactly one alias. Update the -j/--threads help snapshots in forge and cast to match. (cherry picked from commit b0004b8)
…ing" This reverts commit 413574c.
The alloy/revm/op-revm/base-common-* Cargo.toml bumps in the preceding commits left Cargo.lock unresolved for this branch's dependency graph (release/v1.1.x diverged from mainline before those bumps landed). Regenerated via `cargo check` against the new constraints. alloy-chains additionally needed a manual bump (0.2.34 -> 0.2.37) to pick up the `NamedChain::VARIANT_NAMES` rename that crates/cli/src/opts/chain.rs now calls; `cargo check` alone kept the older semver-compatible 0.2.34 since nothing else forced the bump. Verified: `cargo check --no-default-features --features anvil/cli -p anvil -p forge` and `cargo clippy` (same flags, -D warnings) both pass. Co-Authored-By: Claude <noreply@anthropic.com>
rayyan224
requested review from
haardikk21 and
refcell
and removed request for
haardikk21
August 20, 2026 15:24
refcell
approved these changes
Aug 20, 2026
release/v1.1.x hadn't picked up mainline's ruint security fix (#63, 73d1546), and had otherwise drifted enough that `cargo deny check advisories` now fails outright: - ruint 1.17.2: RUSTSEC-2026-0220 (incorrect overflow flags / truncated shift amounts in Uint shift ops). Same fix as #63, never backported. - h2 0.4.13: RUSTSEC-2026-0258 (unbounded empty DATA frames, low severity). - webbrowser 1.0.6: RUSTSEC-2026-0257 (BROWSER-template argument injection on Unix). - The RUSTSEC-2025-0141 (bincode unmaintained) ignore entry in deny.toml is now stale on this branch too — nothing in the resolved graph matches it anymore, so cargo-deny's advisory-not-detected check fails on the unused entry. Removed, matching #63. Fixed via `cargo update -p h2 --precise 0.4.16 -p ruint --precise 1.20.0 -p webbrowser --precise 1.2.2` plus the deny.toml edit. Verified: `cargo deny --all-features check all` reports 'advisories ok, bans ok, licenses ok, sources ok'. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Author
|
Pushed a follow-up commit: the initial dep bump left `cargo deny check advisories` failing on this branch. Turned out to be unrelated to the alloy/revm bump itself — `release/v1.1.x` had never picked up mainline's ruint security fix (#63), plus two more recently-published advisories (`h2`, `webbrowser`) that apply regardless of this PR:
`cargo deny --all-features check all` now reports `advisories ok, bans ok, licenses ok, sources ok` locally. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is the Beryl-line counterpart of #69, which fixed the same issue on
mainline (Cobalt).
base/base is on reth 2.5.0 (base/base#4390), which bumped its workspace
alloy-*family to 2.4.0 (andalloy-primitives/alloy-sol-typesto1.6.1,
alloy-evmto 0.38.0,revmto 42.0.1). Thebase-std-fork-tests.ymlCI job in base/base runs the same "patch base-common-precompiles /
base-common-chains into the pinned base-anvil snapshot" build step for
both the Beryl and Cobalt matrix rows. Since
release/v1.1.xstilllocks the older 1.x/41.x dependency set, that patch step fails Cargo's
resolver for the Beryl row exactly the way it did for Cobalt before #69
(
error: failed to select a version for alloy-primitives...).This follows the same pattern as #55 → mainline, and #58 → #59 for the
Beryl line: bump this branch's pinned deps to match, without pulling in
any Cobalt-only precompile-install semantics.
Changes
Cherry-picked from #69 (
9df661bc3), plus one Beryl-specific correction:alloy-*2.0.5 -> 2.4.0;alloy-primitives/alloy-sol-types/alloy-dyn-abi/alloy-json-abi/alloy-sol-macro-*1.6.0 -> 1.6.1;op-alloy-*0.24.0 -> 2.0.0;alloy-evm0.37.0 -> 0.38.0revm41.0.0 -> 42.0.1,revm-inspectors0.41.1 -> 0.42.2;op-revmswitched to a git dependency onfoundry-rs/optimism(moved out of the standalonefoundry-rs/op-revmrepo)foundry-fork-dbandtempo-primitivesgit pins bumped to revm-42-compatible revisionsbase-common-precompiles/base-common-chainsto base/basecea79451170a576cd9fd7d8189b660daceb45001(same rev as mainline — this bump landed after the Beryl→Cobalt retarget on mainline, purely to pick up aChainConfig/bogota_timefield addition inbase-common-chains; Beryl-line code still callsActivationRegistry::installwithBaseUpgrade::Beryland is unaffected by which base/base commit is pinned)GasTrackerparam,CreateOutcome::new,OpHardforkmapping, EIP-2780 param,NamedChain::VARIANT_NAMES,StateGasTracertracer arm) and a BlueOak-1.0.0 license allowance, matching deps: bump alloy 2.4.0/1.6.1, revm 42.0.1, op-revm for reth 2.5.0 compat #69alloy-chains0.2.34 -> 0.2.37 to pick up theNamedChain::VARIANT_NAMESrename —cargo checkalone kept the older semver-compatible 0.2.34 since nothing else in this branch's graph forced the bump#69commit updating the-j/--threadsalias help snapshot to clap 4.6's singular[alias: X]wording — this branch's lockfile resolvesclapto 4.5.54 (pre-4.6 plural[aliases: X]behavior), so that snapshot change doesn't apply here; picking it up would have made the test failVerification
cargo check --no-default-features --features anvil/cli -p anvil -p forge— cleancargo clippy --no-default-features --features anvil/cli -p anvil -p forge --workspace -- -D warnings— cleanNote on release versioning
release/v1.1.xis currently tagged throughv1.1.1(at #54, before theBeryl activation-install fix in #59 and the RPC fallback fixes already on
this branch). Once this merges, the next release cut from this branch
should be tagged
v1.1.2— a patch bump, consistent with this being apure dependency-compat fix with no behavior change.
Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com