Skip to content

Commit 10a3796

Browse files
zerosnacksSyzygy106CreeptoGengarmattsseForostovec
authored
chore: sync from master (#62)
* fix(anvil): preserve OP receipt fields in convert_to_anvil_receipt (#12396) * fix(anvil): preserve OP receipt fields in convert_to_anvil_receipt * test(anvil): add test for OP receipt fields preservation * fix(anvil): adapt receipt handling for WithOtherFields wrapper * chore(anvil): removed unrelated snapshot state save * test(anvil): use Bloom::default() instead manual zero hex * chore(anvil): updated to fit linter format * perf(anvil): avoid unnecessary transaction vector cloning in Block::new (#12393) * Update block.rs * chore: impl encodeable2718 --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> * chore(anvil): remove dead BeaconResult alias and re-export (#12405) * Remove dead BeaconResult alias and re-export * Remove dead BeaconResult alias and re-export * fix(anvil): respect configured fork initial_backoff in setup_fork_db_config (#12401) * refactor(anvil): simplify receipt conversion using map_logs (#12413) Replaced verbose manual receipt conversion logic with map_logs helper method for cleaner and more maintainable code. The previous implementation manually iterated through logs, created new Vec, and reconstructed the ReceiptWithBloom. The new implementation uses the map_logs helper which does the same thing more concisely. Co-authored-by: Claude <noreply@anthropic.com> * Update flake.lock (#12415) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/b0fa429fc946e6e716dff3bfb97ce6383eae9359?narHash=sha256-YmnUYXjacFHa8fWCo8gBAHpqlcG8%2BP5%2B5YYFhy6hOkg%3D' (2025-10-25) → 'github:nix-community/fenix/3107255abfe4f2d1c3eee7a3e2f5a5eb6f2200fe?narHash=sha256-isqMvjTk3jdTHN6KA/BWQvOSVe7O35OQKAZNtLK76OY%3D' (2025-11-01) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/51236f731456f305bac2b48682f8e1fa3032c989?narHash=sha256-KzRamhMnHTBEbYM0lZqozwc9BEYOTBMxVyAtDyiRq3s%3D' (2025-10-24) → 'github:rust-lang/rust-analyzer/2e2e3ebec91215078de9b754363fc9a7b0fdef13?narHash=sha256-SreGV62DEv7kLJEcOBrw2V6Kup0siT4wS3Ye8PlFTdE%3D' (2025-10-31) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/02f2cb8e0feb4596d20cc52fda73ccee960e3538?narHash=sha256-tH3wHnOJms%2BU4k/rK2Nn1RfBrhffX92jLP/2VndSn0w%3D' (2025-10-24) → 'github:NixOS/nixpkgs/a7fc11be66bdfb5cdde611ee5ce381c183da8386?narHash=sha256-QoJjGd4NstnyOG4mm4KXF%2BweBzA2AH/7gn1Pmpfcb0A%3D' (2025-10-31) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: update hardfork mappings (#12410) * chore: update hardfork mappings * fmt * refactor(anvil)!: simplify PrecompileFactory API to use DynPrecompile (#12411) * refactor(anvil)!: simplify PrecompileFactory API to use DynPrecompile Changed PrecompileFactory::precompiles() return type from Vec<(Precompile, u64)> to Vec<(Address, DynPrecompile)> for a cleaner and more flexible API. The previous API required wrapping precompile functions in the Precompile type with gas limits. The new API directly uses DynPrecompile, which is more straightforward and allows users to create custom precompiles with arbitrary logic without needing to understand the legacy Precompile wrapper. Updated inject_custom_precompiles to accept the new type and simplified the injection logic to directly apply DynPrecompiles without additional wrapping. Updated all tests and implementations to use the new API with proper type annotations for closure parameters. BREAKING CHANGE: PrecompileFactory::precompiles() now returns Vec<(Address, DynPrecompile)> instead of Vec<(Precompile, u64)> Co-Authored-By: Claude <noreply@anthropic.com> * touchup --------- Co-authored-by: Claude <noreply@anthropic.com> * chore(deps): weekly `cargo update` (#12416) Updating git repository `https://github.com/rust-cli/rexpect` Updating git repository `https://github.com/paradigmxyz/solar.git` Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules Locking 61 packages to latest compatible versions Updating aho-corasick v1.1.3 -> v1.1.4 Updating alloy-evm v0.22.5 -> v0.22.6 Updating alloy-hardforks v0.4.1 -> v0.4.2 Updating alloy-op-evm v0.22.5 -> v0.22.6 Updating alloy-op-hardforks v0.4.1 -> v0.4.2 Unchanged annotate-snippets v0.12.5 (available: v0.12.8) Updating aws-config v1.8.8 -> v1.8.10 Updating aws-runtime v1.5.12 -> v1.5.13 Updating aws-sdk-kms v1.90.0 -> v1.92.0 Updating aws-sdk-sso v1.86.0 -> v1.88.0 Updating aws-sdk-ssooidc v1.89.0 -> v1.90.0 Updating aws-sdk-sts v1.88.0 -> v1.90.0 Updating aws-sigv4 v1.3.5 -> v1.3.6 Updating aws-smithy-http v0.62.4 -> v0.62.5 Updating aws-smithy-http-client v1.1.3 -> v1.1.4 Updating aws-smithy-json v0.61.6 -> v0.61.7 Updating aws-smithy-runtime v1.9.3 -> v1.9.4 Updating aws-smithy-runtime-api v1.9.1 -> v1.9.2 Updating aws-smithy-types v1.3.3 -> v1.3.4 Updating aws-smithy-xml v0.60.11 -> v0.60.12 Updating aws-types v1.3.9 -> v1.3.10 Adding block2 v0.6.2 Updating bstr v1.12.0 -> v1.12.1 Updating cc v1.2.43 -> v1.2.44 Updating clap v4.5.50 -> v4.5.51 Updating clap_builder v4.5.50 -> v4.5.51 Updating clap_complete v4.5.59 -> v4.5.60 Updating clap_complete_nushell v4.5.9 -> v4.5.10 Updating ctrlc v3.5.0 -> v3.5.1 Removing dispatch v0.2.0 Adding dispatch2 v0.3.0 Updating enum-ordinalize v4.3.0 -> v4.3.2 Updating enum-ordinalize-derive v4.3.1 -> v4.3.2 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Updating ignore v0.4.24 -> v0.4.25 Updating indicatif v0.18.1 -> v0.18.2 Updating js-sys v0.3.81 -> v0.3.82 Unchanged matchit v0.8.4 (available: v0.8.6) Updating mio v1.0.4 -> v1.1.0 Adding objc2 v0.6.3 Adding objc2-encode v4.1.0 Updating op-alloy-consensus v0.21.0 -> v0.22.0 Unchanged op-alloy-consensus v0.20.0 (available: v0.22.0) Unchanged op-alloy-rpc-types v0.20.0 (available: v0.22.0) Updating op-alloy-rpc-types-engine v0.21.0 -> v0.22.0 Updating op-revm v11.2.0 -> v11.3.0 (available: v12.0.0) Updating proptest v1.8.0 -> v1.9.0 Unchanged protobuf v3.3.0 (available: v3.7.2) Unchanged protobuf-support v3.3.0 (available: v3.7.2) Unchanged rand v0.8.5 (available: v0.9.2) Updating regress v0.10.4 -> v0.10.5 Unchanged revm v30.2.0 (available: v31.0.0) Updating revm-bytecode v7.0.2 -> v7.1.0 Updating revm-database v9.0.2 -> v9.0.3 Updating revm-database-interface v8.0.3 -> v8.0.4 Updating revm-state v8.0.2 -> v8.1.0 Updating rustls-pki-types v1.12.0 -> v1.13.0 Updating rustls-webpki v0.103.7 -> v0.103.8 Updating signal-hook-mio v0.2.4 -> v0.2.5 Updating snapbox v0.6.22 -> v0.6.23 Updating snapbox-macros v0.3.10 -> v0.4.0 Unchanged trezor-client v0.1.4 (available: v0.1.5) Updating unicode-ident v1.0.20 -> v1.0.22 Updating unicode-normalization v0.1.24 -> v0.1.25 Unchanged unicode-width v0.2.0 (available: v0.2.2) Unchanged vergen v8.3.2 (available: v9.0.6) Updating wasm-bindgen v0.2.104 -> v0.2.105 Removing wasm-bindgen-backend v0.2.104 Updating wasm-bindgen-futures v0.4.54 -> v0.4.55 Updating wasm-bindgen-macro v0.2.104 -> v0.2.105 Updating wasm-bindgen-macro-support v0.2.104 -> v0.2.105 Updating wasm-bindgen-shared v0.2.104 -> v0.2.105 Updating web-sys v0.3.81 -> v0.3.82 Updating webpki-roots v1.0.3 -> v1.0.4 Updating zopfli v0.8.2 -> v0.8.3 note: to see how you depend on a package, run `cargo tree --invert <dep>@<ver>` Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com> * feat(cast): added custom polling interval args (#12387) * feat(cast): added custom polling interval args * feat(cast): added a custom alias for poll interval * feat(cast): updated with clippy suggestion * chore: ran formatter * chore(anvil): use cfg(feature = "cmd") instead of allow(dead_code) for parse (#12425) * Refactor: use strip_0x in Cast::publish and drop unnecessary mut (#12376) * Update lib.rs * Update lib.rs * chore: use trait fn for setting both input fields (#12426) * Remove unused foundry-config dependency from benches crate (#12388) Update Cargo.toml * refactor: use derive(Default) for Handler struct (#12431) * refactor(cast): remove redundant clone and duplicate import (#12430) * refactor(cast): remove redundant clone and duplicate import * cargo fmt * refactor(cast): avoid unnecessary clone in list_local_senders * Update lib.rs * perf(anvil): avoid snapshot cloning when counting ready transactions (#12432) * perf(anvil): avoid snapshot cloning when counting ready transactions * Update transactions.rs * fix(npm): kill child process when SIGTERM or SIGINT is received (#12412) * chore(deps): bump mikepenz/release-changelog-builder-action from 6.0.0 to 6.0.1 (#12437) chore(deps): bump mikepenz/release-changelog-builder-action Bumps [mikepenz/release-changelog-builder-action](https://github.com/mikepenz/release-changelog-builder-action) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/mikepenz/release-changelog-builder-action/releases) - [Commits](mikepenz/release-changelog-builder-action@d702b5b...439f79b) --- updated-dependencies: - dependency-name: mikepenz/release-changelog-builder-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump taiki-e/install-action from 2.62.39 to 2.62.45 (#12438) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.39 to 2.62.45. - [Release notes](https://github.com/taiki-e/install-action/releases) - [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md) - [Commits](taiki-e/install-action@0ed4032...81ee1d4) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.45 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump DeterminateSystems/update-flake-lock from 4d443398067153ddd6191a9d9c89533f9a100c26 to ab3e850b05f8f7e56dab99f12900d3f569853e93 (#12440) chore(deps): bump DeterminateSystems/update-flake-lock Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 4d443398067153ddd6191a9d9c89533f9a100c26 to ab3e850b05f8f7e56dab99f12900d3f569853e93. - [Release notes](https://github.com/determinatesystems/update-flake-lock/releases) - [Commits](DeterminateSystems/update-flake-lock@4d44339...ab3e850) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-version: ab3e850b05f8f7e56dab99f12900d3f569853e93 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(npm): forward termination signals to child process (#12441) fix(npm): forward termination signals to child process * chore(deps): bump crate-ci/typos from 1.38.1 to 1.39.0 (#12439) * chore(deps): bump crate-ci/typos from 1.38.1 to 1.39.0 Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.38.1 to 1.39.0. - [Release notes](https://github.com/crate-ci/typos/releases) - [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md) - [Commits](crate-ci/typos@80c8a49...07d900b) --- updated-dependencies: - dependency-name: crate-ci/typos dependency-version: 1.39.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * fix typo --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: zerosnacks <zerosnacks@protonmail.com> Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> * feat(invariant): shrink failure when replayed (#12351) * chore(deps): bump DeterminateSystems/determinate-nix-action from 3.11.3 to 3.12.0 (#12436) chore(deps): bump DeterminateSystems/determinate-nix-action Bumps [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) from 3.11.3 to 3.12.0. - [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases) - [Commits](DeterminateSystems/determinate-nix-action@762d7fd...37e4fa3) --- updated-dependencies: - dependency-name: DeterminateSystems/determinate-nix-action dependency-version: 3.12.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(npm): update README.md of npm packages (#12459) * chore: bump alloy 1.1.0 (#12457) * chore: bump revm 31 (#12461) * chore: bump revm 31 * use transfer in Celo precompile, temp commit to clarify blockers * access journaled_state directly to set storage of account * fixes * fixes --------- Co-authored-by: zerosnacks <zerosnacks@protonmail.com> Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me> * fix: do not panic if cannot read counterexample (#12467) * fix(forge doc): use relative path instead of full path (#12373) * fix(forge doc): use relative path instead of full path * Revert strip_prefix back on try_relative_output_path --------- Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> * chore(anvil): replace `inject_custom_precompiles` with `PrecompilesMap::extend_precompiles` method (#12469) * feat(wallets): add Turnkey signer support (#12026) * feat(wallets): add Turnkey signer support Add Turnkey as a remote signer option alongside AWS KMS and GCP KMS. Key changes: - Added alloy-signer-turnkey dependency to foundry-wallets - Implemented Turnkey wallet CLI args and initialization logic - Added turnkey feature flags to cast and forge - Updated Dockerfile and Makefile to include turnkey in release builds Fixed forge wallet feature flags: - Moved foundry-wallets from dev-dependencies to dependencies in forge/Cargo.toml - This fixes an issue where aws-kms, gcp-kms, and turnkey features were defined but non-functional when using cargo run with --features flags - The features worked in release builds (via Makefile) but not in local dev - This aligns forge with cast, which already had foundry-wallets as a regular dependency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(forge): make foundry-wallets optional dependency * test(wallets): add Turnkey to mnemonic indexes test --------- Co-authored-by: rplusq <rplusq@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> * fix: provide the sender when converting to request (#12473) * fix: provide the sender when converting to request * rm track * fix * Revert "fix(forge doc): use relative path instead of full path" (#12477) Revert "fix(forge doc): use relative path instead of full path (#12373)" This reverts commit 118e12e. * fix(cast): add turnkey to list (#12476) * feat(anvil): Implement alloy_evm `FromRecoveredTx` trait for anvil `TypedTransaction` (#12424) * feat(anvil): Implement alloy_evm `FromRecoveredTx` trait for anvil `TypedTransaction` * refactor(anvil): use`from_recovered_tx` for `TypedTransaction` tx types except deposit * refactor(anvil): use `from_recovered_tx` for deposit tx type --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> * test: memory_limit (#12299) * test: memory_limit * update --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> * test: disable reth-ethereum-full (#12484) * test: debug log stdout in testdata test (#12482) * chore(foundryup): update master refs to HEAD (#12479) * fix: update TEST_CONTRACT_ADDRESS (#12475) Currently it's set to dapp's default test contract. It was added incorrectly here 262bdf2. Set it to the correct CALLER.create(1) which is what is actually deployed. We also remove it from the default labels since we likely have a label already from the actual source code. * chore(meta): remove MSRV from clippy.toml (#12489) * chore: clean up build script (#12488) * chore: clean up build script * doc * chore: aggregate PRs (#12493) This PR aggregates changes from the following PRs: - Closes #12448 by @\strmfos - Closes #12465 by @\wedjob0X - Closes #12485 by @\Doryu001 - Closes #12487 by @\kilavvy - Closes #12492 by @\avorylli * feat(docker): rewrite to cache with depot (#12491) * chore: clean up build script * doc * feat(docker): rewrite to cache with depot * gha sucks * update id * runner * feat(anvil): eth_getTransactionBySenderAndNonce RPC method (#12497) * feat(anvil): implement eth_getTransactionBySenderAndNonce RPC method * style: cargo fmt * chore: fix typo --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> * fix(anvil): set evm block number to input value (#12490) * fix(anvil): added REVM blocknumber sync with RPC * test(anvil): replicate REVM unsync issue case --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> * ci(doc): document feature sync (#12498) ci(doc): ensure release binaries expose turnkey signer Co-authored-by: rplusq <rplusq@users.noreply.github.com> * feat(anvil): add `/eth/v1/beacon/genesis` endpoint to Beacon API (#12503) - Introduced `anvil_getGenesisTime` request to retrieve the genesis time of the chain. - Implemented `anvil_get_genesis_time` function in the backend to return the genesis timestamp. - Added a new handler for the `/eth/v1/beacon/genesis` endpoint to respond with genesis details. - Created `GenesisDetails` data struct for Beacon API response * chore(deps): weekly `cargo update` (#12507) Updating git repository `https://github.com/rust-cli/rexpect` Updating git repository `https://github.com/paradigmxyz/solar.git` Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules Locking 40 packages to latest compatible versions Updating alloy-eip2930 v0.2.1 -> v0.2.3 Updating alloy-eip7702 v0.6.1 -> v0.6.3 Updating alloy-evm v0.23.1 -> v0.23.2 Updating alloy-hardforks v0.4.2 -> v0.4.4 Updating alloy-op-evm v0.23.1 -> v0.23.2 Updating alloy-op-hardforks v0.4.2 -> v0.4.4 Unchanged annotate-snippets v0.12.5 (available: v0.12.8) Updating aws-credential-types v1.2.8 -> v1.2.9 Updating aws-runtime v1.5.13 -> v1.5.14 Updating aws-sdk-kms v1.92.0 -> v1.94.0 Updating aws-sdk-sso v1.88.0 -> v1.89.0 Updating aws-sdk-ssooidc v1.90.0 -> v1.91.0 Updating aws-sdk-sts v1.90.0 -> v1.91.0 Adding borsh v1.5.7 Adding borsh-derive v1.5.7 Updating cc v1.2.44 -> v1.2.45 Updating erased-serde v0.4.8 -> v0.4.9 Unchanged icu_collections v2.0.0 (available: v2.1.1) Unchanged icu_normalizer v2.0.1 (available: v2.1.1) Unchanged icu_normalizer_data v2.0.0 (available: v2.1.1) Unchanged icu_properties v2.0.2 (available: v2.1.1) Unchanged icu_properties_data v2.0.1 (available: v2.1.1) Unchanged idna_adapter v1.1.0 (available: v1.2.1) Updating iri-string v0.7.8 -> v0.7.9 Adding itertools v0.12.1 Updating jiff v0.2.15 -> v0.2.16 Updating jiff-static v0.2.15 -> v0.2.16 Unchanged matchit v0.8.4 (available: v0.8.6) Updating newtype-uuid v1.3.1 -> v1.3.2 Updating op-revm v12.0.0 -> v12.0.1 Unchanged protobuf v3.3.0 (available: v3.7.2) Unchanged protobuf-support v3.3.0 (available: v3.7.2) Updating quote v1.0.41 -> v1.0.42 Unchanged rand v0.8.5 (available: v0.9.2) Updating revm v31.0.0 -> v31.0.1 Updating revm-bytecode v7.1.0 -> v7.1.1 Updating revm-context v11.0.0 -> v11.0.1 Updating revm-context-interface v12.0.0 -> v12.0.1 Updating revm-database v9.0.3 -> v9.0.4 Updating revm-database-interface v8.0.4 -> v8.0.5 Updating revm-handler v12.0.0 -> v12.0.1 Updating revm-inspector v12.0.0 -> v12.0.1 Updating revm-interpreter v29.0.0 -> v29.0.1 Updating revm-precompile v29.0.0 -> v29.0.1 Updating revm-primitives v21.0.1 -> v21.0.2 Updating revm-state v8.1.0 -> v8.1.1 Updating rustls v0.23.34 -> v0.23.35 Updating schemars v1.0.4 -> v1.1.0 Updating schemars_derive v1.0.4 -> v1.1.0 Updating syn v2.0.108 -> v2.0.109 Updating tokio-util v0.7.16 -> v0.7.17 Unchanged trezor-client v0.1.4 (available: v0.1.5) Unchanged unicode-width v0.2.0 (available: v0.2.2) Unchanged vergen v8.3.2 (available: v9.0.6) note: to see how you depend on a package, run `cargo tree --invert <dep>@<ver>` Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com> * Update flake.lock (#12506) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/3107255abfe4f2d1c3eee7a3e2f5a5eb6f2200fe?narHash=sha256-isqMvjTk3jdTHN6KA/BWQvOSVe7O35OQKAZNtLK76OY%3D' (2025-11-01) → 'github:nix-community/fenix/32f3ad3b6c690061173e1ac16708874975ec6056?narHash=sha256-wZUW7dlXMXaRdvNbaADqhF8gg9bAfFiMV%2BiyFQiDv%2BY%3D' (2025-11-08) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/2e2e3ebec91215078de9b754363fc9a7b0fdef13?narHash=sha256-SreGV62DEv7kLJEcOBrw2V6Kup0siT4wS3Ye8PlFTdE%3D' (2025-10-31) → 'github:rust-lang/rust-analyzer/4bf516ee5a960c1e2eee9fedd9b1c9e976a19c86?narHash=sha256-ApIKJf6CcMsV2nYBXhGF95BmZMO/QXPhgfSnkA/rVUo%3D' (2025-11-06) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/a7fc11be66bdfb5cdde611ee5ce381c183da8386?narHash=sha256-QoJjGd4NstnyOG4mm4KXF%2BweBzA2AH/7gn1Pmpfcb0A%3D' (2025-10-31) → 'github:NixOS/nixpkgs/ffcdcf99d65c61956d882df249a9be53e5902ea5?narHash=sha256-lz718rr1BDpZBYk7%2BG8cE6wee3PiBUpn8aomG/vLLiY%3D' (2025-11-05) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * test: try fix flaky cast_access_list_negative_numbers test (#12509) * Fix numbers printing (#12504) * fix: print uint as they are * fix: adjust only negative int * test: check that formatting is correct for uint and int of any size * fix(anvil): serialize genesis time as string (#12512) * fix(npm): small type fix to resolve ci (#12514) * fix: enable different gas calculation for monad testnet (#12520) * refactor(doc): improve merge_inheritdoc docs and simplify cloning (#12517) Update comment.rs * chore(deps): bump docker/metadata-action from 5.8.0 to 5.9.0 (#12522) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.8.0 to 5.9.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](docker/metadata-action@c1e5197...318604b) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-version: 5.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump softprops/action-gh-release from 2.4.1 to 2.4.2 (#12525) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.4.1 to 2.4.2. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@6da8fa9...5be0e66) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: 2.4.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump DeterminateSystems/determinate-nix-action from 3.12.0 to 3.13.0 (#12523) chore(deps): bump DeterminateSystems/determinate-nix-action Bumps [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) from 3.12.0 to 3.13.0. - [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases) - [Commits](DeterminateSystems/determinate-nix-action@37e4fa3...75c10b4) --- updated-dependencies: - dependency-name: DeterminateSystems/determinate-nix-action dependency-version: 3.13.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump taiki-e/install-action from 2.62.45 to 2.62.49 (#12521) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.45 to 2.62.49. - [Release notes](https://github.com/taiki-e/install-action/releases) - [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md) - [Commits](taiki-e/install-action@81ee1d4...44c6d64) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.49 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump DeterminateSystems/update-flake-lock from ab3e850b05f8f7e56dab99f12900d3f569853e93 to e637603d31bed83169f2e56bb475c9dff7af6544 (#12524) chore(deps): bump DeterminateSystems/update-flake-lock Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from ab3e850b05f8f7e56dab99f12900d3f569853e93 to e637603d31bed83169f2e56bb475c9dff7af6544. - [Release notes](https://github.com/determinatesystems/update-flake-lock/releases) - [Commits](DeterminateSystems/update-flake-lock@ab3e850...e637603) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-version: e637603d31bed83169f2e56bb475c9dff7af6544 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: browser wallet (#12302) * start drafting * establish very basic flow * nits * clean up api * create basic test suite * make timeout configurable, improve types, extend tests * fix test * clean up * add transaction accept test * clean up tests * add basic setup test * solidify api * simplify and harden api * tweaks * move tests * expand test suite * clean up * nit * add basic session token * apply session token, fix tests by adding session token to reqwest * fix test * fix reqwest openssl issue, use workspace version * harden CSP, inject session token into JS, define 0 cache policy * remove flawed session token for now, to implement actual /session route & cookie token * port interface * replace with v0.0.0 release of foundry-browser-wallet * host interface * ignore build files from typos * update * fix CSP to allow for RPC calls * update wallet v0.0.0 * nits * add development mode to relax certain security restrictions such as origin check, enforce injected session token protected by strict CSP in production * update browser wallet v0.0.0, includes session token support * add notice * add signing flow * restructure sign message * serialize camelcase * bump version * prefer fields * prefer non-blocking async api * remove unintended bump of proptest * fix(forge doc): use relative path instead of full path (#12519) * Revert "Revert "fix(forge doc): use relative path instead of full path" (#12477)" This reverts commit ebcd59b. * fix win and test * chore(anvil): use `Block` and `Header` from Alloy (#12533) * chore(anvil): replace `PartialHeader` with `Header` from Alloy * chore(anvil): replace `Block` w/ Alloy's `Block`/`BlockBody` structs * fix: `BlockchainStorage` header init * fix(forge): properly decode raw Error(string) (#12536) * chore: bump to revm 33 (#12538) * initial changes, some breaking ones to resolve * fix breaking changes * unpin patches, bump versions * flag any returning outcomes as having a precompile called * apply revm patch * fix tests * fix test * chore: bump solar, warn on invalid natspec (#12540) * fix(forge): allow install repo with ssh (#12542) * feat(cast): block -f to accept multiple fields (#12427) * feat(cast): added custom polling interval args * feat(cast): added a custom alias for poll interval * feat(cast): updated with clippy suggestion * feat(cast): added multi fields to cast block * feat(cast): num of args needed for fields in block set to 0 * chore: updated with formatting * feat(cast): added long field to cast block * doc(cast): updated docs to match change in fields * test(cast): Remove trailing whitespace from block output * chore(common): drop unused fs import and fix doc links (#12535) Update fs.rs * fix: infer addresses in unknown fields in UIfmt (#12552) * feat: support all blob envelope in cast (#12557) * refactor(anvil): beacon api tests + use Alloy's `GenesisResponse` struct (#12513) * refactor(anvil): beacon api tests + use Alloy's `GenesisResponse` struct - Updated the `/eth/v1/beacon/genesis` endpoint to return a new `GenesisResponse`, and removed `GenesisDetails` struct. - Improved tests for the Beacon API, deserde with Alloy beacon response structs. * chore: bump alloy to 1.1.1 * Remove redundant String clones in Sourcify metadata conversion (#12554) Update external.rs * fix: use AssumeReject instead of TooManyRejects for single vm.assume reject (#12561) * Update mod.rs * Update mod.rs * feat: support for eth_sendrawtransactionSync in cast send (#12546) * feat: support for eth_sendrawtransactionSync in cast send * conflict * fmt * alloy send_transaction_sync * doc * refactor/reuse async fn receipt and test * feat(`forge script`): implement retries for forge script broadcast (#12564) * add retry for non sequential txs Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com> * nit * remove debug sleep --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com> * fix(forge): keep gas memory on gas metering reset (#12539) * feat(anvil): handle signature impersonation for EIP-7702 authorization list (#12553) * feat(anvil): handle signature impersonation for EIP-7702 authorization list - added an it test with an auth signed w/ fake sig Co-Authored-By: Shiyas Mohammed <shiyasmohd.official@gmail.com> * early check --------- Co-authored-by: Shiyas Mohammed <shiyasmohd.official@gmail.com> Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Vladislav <4pex1oh@gmail.com> Co-authored-by: Gengar <creeptogengar@gmail.com> Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> Co-authored-by: Forostovec <ilonaforostovec22@gmail.com> Co-authored-by: phrwlk <phrwlk7@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com> Co-authored-by: Dipanshu Singh <58115782+dipanshuhappy@users.noreply.github.com> Co-authored-by: Fallengirl <155266340+Fallengirl@users.noreply.github.com> Co-authored-by: viktorking7 <140458814+viktorking7@users.noreply.github.com> Co-authored-by: AJoX <shuraev2707@gmail.com> Co-authored-by: Bilog WEB3 <155262265+Bilogweb3@users.noreply.github.com> Co-authored-by: Guilherme Dantas <guidanoli@proton.me> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: o-az <omaraziz.dev@proton.me> Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> Co-authored-by: stevencartavia <112043913+stevencartavia@users.noreply.github.com> Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me> Co-authored-by: marcvernet31 <44305244+marcvernet31@users.noreply.github.com> Co-authored-by: Mablr <59505383+mablr@users.noreply.github.com> Co-authored-by: Rafael Quintero <32346241+rplusq@users.noreply.github.com> Co-authored-by: rplusq <rplusq@users.noreply.github.com> Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Co-authored-by: Chad <0xChaddB@proton.me> Co-authored-by: Lázaro Raúl <47638426+e1Ru1o@users.noreply.github.com> Co-authored-by: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Co-authored-by: qedk <1994constant@gmail.com> Co-authored-by: Ragnar <rodiondenmark@gmail.com> Co-authored-by: 0xLogicalx <danilokuniman@gmail.com> Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com> Co-authored-by: oxBoni <godzilabozo@gmail.com> Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com> Co-authored-by: Shiyas Mohammed <shiyasmohd.official@gmail.com>
1 parent 1f3ac31 commit 10a3796

File tree

17 files changed

+904
-602
lines changed

17 files changed

+904
-602
lines changed

Cargo.lock

Lines changed: 119 additions & 116 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -236,31 +236,31 @@ svm = { package = "svm-rs", version = "0.5", default-features = false, features
236236
] }
237237

238238
## alloy
239-
alloy-consensus = { version = "1.1.0", default-features = false }
240-
alloy-contract = { version = "1.1.0", default-features = false }
241-
alloy-eips = { version = "1.1.0", default-features = false }
242-
alloy-eip5792 = { version = "1.1.0", default-features = false }
243-
alloy-ens = { version = "1.1.0", default-features = false }
244-
alloy-genesis = { version = "1.1.0", default-features = false }
245-
alloy-json-rpc = { version = "1.1.0", default-features = false }
246-
alloy-network = { version = "1.1.0", default-features = false }
247-
alloy-provider = { version = "1.1.0", default-features = false }
248-
alloy-pubsub = { version = "1.1.0", default-features = false }
249-
alloy-rpc-client = { version = "1.1.0", default-features = false }
250-
alloy-rpc-types = { version = "1.1.0", default-features = true }
251-
alloy-rpc-types-beacon = { version = "1.1.0", default-features = true }
252-
alloy-serde = { version = "1.1.0", default-features = false }
253-
alloy-signer = { version = "1.1.0", default-features = false }
254-
alloy-signer-aws = { version = "1.1.0", default-features = false }
255-
alloy-signer-gcp = { version = "1.1.0", default-features = false }
256-
alloy-signer-ledger = { version = "1.1.0", default-features = false }
257-
alloy-signer-local = { version = "1.1.0", default-features = false }
258-
alloy-signer-trezor = { version = "1.1.0", default-features = false }
259-
alloy-signer-turnkey = { version = "1.1.0", default-features = false }
260-
alloy-transport = { version = "1.1.0", default-features = false }
261-
alloy-transport-http = { version = "1.1.0", default-features = false }
262-
alloy-transport-ipc = { version = "1.1.0", default-features = false }
263-
alloy-transport-ws = { version = "1.1.0", default-features = false }
239+
alloy-consensus = { version = "1.1.1", default-features = false }
240+
alloy-contract = { version = "1.1.1", default-features = false }
241+
alloy-eips = { version = "1.1.1", default-features = false }
242+
alloy-eip5792 = { version = "1.1.1", default-features = false }
243+
alloy-ens = { version = "1.1.1", default-features = false }
244+
alloy-genesis = { version = "1.1.1", default-features = false }
245+
alloy-json-rpc = { version = "1.1.1", default-features = false }
246+
alloy-network = { version = "1.1.1", default-features = false }
247+
alloy-provider = { version = "1.1.1", default-features = false }
248+
alloy-pubsub = { version = "1.1.1", default-features = false }
249+
alloy-rpc-client = { version = "1.1.1", default-features = false }
250+
alloy-rpc-types = { version = "1.1.1", default-features = true }
251+
alloy-rpc-types-beacon = { version = "1.1.1", default-features = true }
252+
alloy-serde = { version = "1.1.1", default-features = false }
253+
alloy-signer = { version = "1.1.1", default-features = false }
254+
alloy-signer-aws = { version = "1.1.1", default-features = false }
255+
alloy-signer-gcp = { version = "1.1.1", default-features = false }
256+
alloy-signer-ledger = { version = "1.1.1", default-features = false }
257+
alloy-signer-local = { version = "1.1.1", default-features = false }
258+
alloy-signer-trezor = { version = "1.1.1", default-features = false }
259+
alloy-signer-turnkey = { version = "1.1.1", default-features = false }
260+
alloy-transport = { version = "1.1.1", default-features = false }
261+
alloy-transport-http = { version = "1.1.1", default-features = false }
262+
alloy-transport-ipc = { version = "1.1.1", default-features = false }
263+
alloy-transport-ws = { version = "1.1.1", default-features = false }
264264
alloy-hardforks = { version = "0.4.0", default-features = false }
265265
alloy-op-hardforks = { version = "0.4.0", default-features = false }
266266

@@ -287,9 +287,9 @@ op-alloy-rpc-types = "0.22.0"
287287
op-alloy-flz = "0.13.1"
288288

289289
## revm
290-
revm = { version = "33.0.0", default-features = false }
290+
revm = { version = "33.0.1", default-features = false }
291291
revm-inspectors = { version = "0.33.0", features = ["serde"] }
292-
op-revm = { version = "14.0.0", default-features = false }
292+
op-revm = { version = "14.0.1", default-features = false }
293293

294294
# tempo
295295
tempo-contracts = { git = "ssh://git@github.com/tempoxyz/tempo", rev = "8c55629" }
@@ -449,8 +449,8 @@ rexpect = { git = "https://github.com/rust-cli/rexpect", rev = "2ed0b1898d7edaf6
449449
# alloy-evm = { git = "https://github.com/alloy-rs/evm.git", rev = "237d0a0" }
450450
# alloy-op-evm = { git = "https://github.com/alloy-rs/evm.git", rev = "237d0a0" }
451451

452-
## revm
453-
# revm = { git = "https://github.com/bluealloy/revm", rev = "7e59936" }
452+
# revm
453+
# revm = { git = "https://github.com/bluealloy/revm.git", rev = "7e59936" }
454454
# op-revm = { git = "https://github.com/bluealloy/revm.git", rev = "7e59936" }
455455
# revm-inspectors = { git = "https://github.com/zerosnacks/revm-inspectors.git", rev = "0aaab71" }
456456

crates/anvil/src/eth/backend/executor.rs

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,14 @@ use crate::{
1414
mem::inspector::AnvilInspector,
1515
};
1616
use alloy_consensus::{
17-
Header, Receipt, ReceiptWithBloom, constants::EMPTY_WITHDRAWALS, proofs::calculate_receipt_root,
17+
Header, Receipt, ReceiptWithBloom, constants::EMPTY_WITHDRAWALS,
18+
proofs::calculate_receipt_root, transaction::Either,
19+
};
20+
use alloy_eips::{
21+
eip7685::EMPTY_REQUESTS_HASH,
22+
eip7702::{RecoveredAuthority, RecoveredAuthorization},
23+
eip7840::BlobParams,
1824
};
19-
use alloy_eips::{eip7685::EMPTY_REQUESTS_HASH, eip7840::BlobParams};
2025
use alloy_evm::{
2126
EthEvm, Evm, FromRecoveredTx,
2227
eth::EthEvmContext,
@@ -276,6 +281,35 @@ impl<DB: Db + ?Sized, V: TransactionValidator> TransactionExecutor<'_, DB, V> {
276281
let mut tx_env: OpTransaction<TxEnv> =
277282
FromRecoveredTx::from_recovered_tx(&tx.transaction.transaction, *tx.sender());
278283

284+
if let TypedTransaction::EIP7702(tx_7702) = &tx.transaction.transaction
285+
&& self.cheats.has_recover_overrides()
286+
{
287+
// Override invalid recovered authorizations with signature overrides from cheat manager
288+
let cheated_auths = tx_7702
289+
.tx()
290+
.authorization_list
291+
.iter()
292+
.zip(tx_env.base.authorization_list)
293+
.map(|(signed_auth, either_auth)| {
294+
either_auth.right_and_then(|recovered_auth| {
295+
if recovered_auth.authority().is_none()
296+
&& let Ok(signature) = signed_auth.signature()
297+
&& let Some(override_addr) =
298+
self.cheats.get_recover_override(&signature.as_bytes().into())
299+
{
300+
Either::Right(RecoveredAuthorization::new_unchecked(
301+
recovered_auth.into_parts().0,
302+
RecoveredAuthority::Valid(override_addr),
303+
))
304+
} else {
305+
Either::Right(recovered_auth)
306+
}
307+
})
308+
})
309+
.collect();
310+
tx_env.base.authorization_list = cheated_auths;
311+
}
312+
279313
if self.networks.is_optimism() {
280314
tx_env.enveloped_tx = Some(alloy_rlp::encode(&tx.transaction.transaction).into());
281315
}

crates/anvil/src/evm.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use std::fmt::Debug;
22

33
use alloy_evm::{
4+
Database, Evm,
45
eth::EthEvmContext,
56
precompiles::{DynPrecompile, PrecompilesMap},
6-
Database, Evm,
77
};
88
use alloy_primitives::Address;
99
use foundry_evm::core::either_evm::EitherEvm;
@@ -23,27 +23,27 @@ mod tests {
2323

2424
use crate::PrecompileFactory;
2525
use alloy_evm::{
26+
EthEvm, Evm, EvmEnv,
2627
eth::EthEvmContext,
2728
precompiles::{DynPrecompile, PrecompilesMap},
28-
EthEvm, Evm, EvmEnv,
2929
};
3030
use alloy_op_evm::OpEvm;
31-
use alloy_primitives::{address, Address, Bytes, TxKind, U256};
31+
use alloy_primitives::{Address, Bytes, TxKind, U256, address};
3232
use foundry_evm::core::either_evm::EitherEvm;
3333
use foundry_evm_networks::NetworkConfigs;
3434
use itertools::Itertools;
35-
use op_revm::{precompiles::OpPrecompiles, L1BlockInfo, OpContext, OpSpecId, OpTransaction};
35+
use op_revm::{L1BlockInfo, OpContext, OpSpecId, OpTransaction, precompiles::OpPrecompiles};
3636
use revm::{
37+
Journal,
3738
context::{CfgEnv, Evm as RevmEvm, JournalTr, LocalContext, TxEnv},
3839
database::{EmptyDB, EmptyDBTyped},
39-
handler::{instructions::EthInstructions, EthPrecompiles},
40+
handler::{EthPrecompiles, instructions::EthInstructions},
4041
inspector::NoOpInspector,
4142
interpreter::interpreter::EthInterpreter,
4243
precompile::{PrecompileOutput, PrecompileSpecId, Precompiles},
4344
primitives::hardfork::SpecId,
44-
Journal,
4545
};
46-
use tempo_revm::{evm::TempoContext, TempoTxEnv};
46+
use tempo_revm::{TempoTxEnv, evm::TempoContext};
4747

4848
// A precompile activated in the `Prague` spec.
4949
const ETH_PRAGUE_PRECOMPILE: Address = address!("0x0000000000000000000000000000000000000011");

crates/anvil/src/server/beacon_handler.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::eth::{
55
use alloy_eips::BlockId;
66
use alloy_primitives::{B256, aliases::B32};
77
use alloy_rpc_types_beacon::{
8+
genesis::{GenesisData, GenesisResponse},
89
header::Header,
910
sidecar::{BlobData, GetBlobsResponse},
1011
};
@@ -99,12 +100,17 @@ pub async fn handle_get_blobs(
99100
/// GET /eth/v1/beacon/genesis
100101
pub async fn handle_get_genesis(State(api): State<EthApi>) -> Response {
101102
match api.anvil_get_genesis_time() {
102-
Ok(genesis_time) => BeaconResponse::new(GenesisDetails {
103-
genesis_time,
104-
genesis_validators_root: B256::ZERO,
105-
genesis_fork_version: B32::ZERO,
106-
})
107-
.into_response(),
103+
Ok(genesis_time) => (
104+
StatusCode::OK,
105+
Json(GenesisResponse {
106+
data: GenesisData {
107+
genesis_time,
108+
genesis_validators_root: B256::ZERO,
109+
genesis_fork_version: B32::ZERO,
110+
},
111+
}),
112+
)
113+
.into_response(),
108114
Err(_) => BeaconError::internal_error().into_response(),
109115
}
110116
}

0 commit comments

Comments
 (0)