Skip to content

Update config.yml#50

Merged
Dargon789 merged 1 commit into
circleci-project-setupfrom
Dargon789-patch-1
Jul 13, 2025
Merged

Update config.yml#50
Dargon789 merged 1 commit into
circleci-project-setupfrom
Dargon789-patch-1

Conversation

@Dargon789
Copy link
Copy Markdown
Owner

@Dargon789 Dargon789 commented Jul 13, 2025

Motivation

Solution

PR Checklist

  • Added Tests
  • Added Documentation
  • Breaking changes

Summary by Sourcery

CI:

  • Refactor CircleCI configuration by introducing a custom executor with cimg/base:stable and Docker Hub credentials, replacing the sample say-hello job with a web3-defi-game-project- job, and renaming the workflow to my-custom-workflow.

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Jul 13, 2025

Reviewer's Guide

This PR refactors the CircleCI configuration to introduce a reusable custom executor with secure Docker Hub authentication, replaces the default 'say-hello' job with a project-specific job, and renames the workflow accordingly.

File-Level Changes

Change Details Files
Define a custom executor with Docker authentication
  • Add executors.my-custom-executor block
  • Set Docker image to cimg/base:stable
  • Configure auth using $DOCKER_HUB_USER and $DOCKER_HUB_PASSWORD
.circleci/config.yml
Replace default 'say-hello' job with a project-specific job
  • Remove the original jobs.say-hello setup and echo step
  • Add jobs.web3-defi-game-project- referencing the custom executor
  • Simplify steps to only checkout code and comment out the echo
.circleci/config.yml
Rename and streamline the workflow configuration
  • Remove 'say-hello-workflow' definition
  • Introduce 'my-custom-workflow' as the workflow name
  • Update the jobs list under workflows to match the new job
.circleci/config.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@Dargon789 Dargon789 merged commit fe0d2c8 into circleci-project-setup Jul 13, 2025
11 of 12 checks passed
@Dargon789 Dargon789 deleted the Dargon789-patch-1 branch July 13, 2025 16:54
@Dargon789 Dargon789 linked an issue Aug 24, 2025 that may be closed by this pull request
Dargon789 pushed a commit that referenced this pull request Feb 4, 2026
* feat: add foundry-cli-markdown crate

Add a new crate for generating Markdown documentation from clap CLIs.
This is a fork of clap-markdown with the following enhancements:

- Support for grouped options by help heading (PR #48)
- Show environment variable names for arguments (PR #50)
- Add version information to generated Markdown (PR #52)

* feat(cli): add hidden --markdown-help flag

Add a hidden --markdown-help flag to forge, cast, anvil, and chisel
that prints CLI reference documentation as Markdown and exits.

This uses the new foundry-cli-markdown crate to generate the output.
Dargon789 added a commit that referenced this pull request Feb 5, 2026
…s#13250 (#361)

* refactor(common): make `ProviderBuilder` generic over `Network` (foundry-rs#13250)

* refactor(common): make `ProviderBuilder` generic over `Network`

- Updated `ProviderBuilder` helper to be generic, which will facilate `FoundryNetwork` rollout
- Adjusted the instantiation of `ProviderBuilder` in various locations to use `AnyNetwork`.
- Enhanced the `build` and `build_with_wallet` methods to accommodate the new generic structure.

* fix: relax trait bound on `N::TransactionRequest`

* fix: comment

* fix: comment

* fix(anvil): return error instead of empty vec for out-of-range log queries (foundry-rs#13251)

* fix(config): respect user-configured etherscan URL over chain defaults (foundry-rs#13239)

fix(config): Respect user-configured etherscan URL over chain defaults (foundry-rs#13238)

* fix(config): respect user-configured etherscan URL over chain defaults

* test(config): add tests for custom etherscan URL handling

Co-authored-by: Yuya Maruyama <69783679+YuyaMaruyama21D4E@users.noreply.github.com>

* fix(primitives): track both 4844/7594 sidecars presence in `FoundryTransactionRequest::build_typed_tx` (foundry-rs#13218)

* fix(primitives): track both 4844/7594 sidecars presence in `FoundryTransactionRequest::build_typed_tx`

* fix: after `TransactionBuilder4844` impl

* feat(common): introduce generic `ProviderBuilder::from_config` method (foundry-rs#13268)

- keep the existing helpers that erase generic to avoid breaking change

* fix(cast): remove redundant chain() call in explorer_client (foundry-rs#13272)

Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>

* fix(verify): respect user-configured etherscan URL over chain defaults (foundry-rs#13275)

Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>

* Update flake.lock (foundry-rs#13279)

flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/93523fa' (2026-01-24)
  → 'github:nix-community/fenix/b2344f3' (2026-01-31)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/39018ac' (2026-01-23)
  → 'github:rust-lang/rust-analyzer/eb05888' (2026-01-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ab9fbbc' (2026-01-24)
  → 'github:NixOS/nixpkgs/6308c3b' (2026-01-30)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix(invariant): remove unused cloned calldata (foundry-rs#12893)

* fix(invariant): prune calldata to bound memory usage in long runs

* style: fix formatting in invariant executor

* chore: remove vyper files from testdata to fix CI

* chore: trigger ci update

* fix(invariant): remove unused FuzzCase.calldata field to prevent OOM

The calldata field in FuzzCase was stored but never read after construction.
Removing it entirely eliminates memory accumulation during long invariant runs.

Changes:
- Remove FuzzCase.calldata field (unused after construction)
- Remove prune_calldata() methods (no longer needed)
- Restore vyper test files that were incorrectly deleted

Fixes foundry-rs#12397

Amp-Thread-ID: https://ampcode.com/threads/T-019c17c9-d969-7370-bf0d-495e473e8e30
Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019c17c9-d969-7370-bf0d-495e473e8e30
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>

* feat(debugger): display actual gas usage alongside refund counter (foundry-rs#13271)

* feat(debugger): display actual gas usage alongside refund counter

* fix(forge-test): fix flamegraph gas inaccuracy issues

* reverse `--decode-internal` not default with `--flamechart`

* make gas unsigned as `inferno` doesn't support anyway

* replace revm-inspectors patch

* fix clippy

* update tests

* update tests

* fmt

* fix(config): handle decimal string in U256 deserialization (foundry-rs#13284)

* fix: adjust numerical cells in gas report to be right aligned (foundry-rs#12883)

* Adjust Cells to be Right Aligned in Gas Report

* fix test and fmt

---------

Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* chore(deps): weekly `cargo update` (foundry-rs#13280)

Updating git repository `https://github.com/rust-cli/rexpect`
    Updating git repository `https://github.com/paradigmxyz/solar`
    Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules
    Updating git repository `https://github.com/tempoxyz/tempo`
    Updating git repository `https://github.com/paradigmxyz/reth`
     Locking 35 packages to latest compatible versions
    Updating alloy-dyn-abi v1.5.2 -> v1.5.4
   Unchanged alloy-evm v0.26.3 (available: v0.27.0)
    Updating alloy-json-abi v1.5.2 -> v1.5.4
   Unchanged alloy-op-evm v0.26.3 (available: v0.27.0)
    Updating alloy-primitives v1.5.2 -> v1.5.4
    Updating alloy-sol-macro v1.5.2 -> v1.5.4
    Updating alloy-sol-macro-expander v1.5.2 -> v1.5.4
    Updating alloy-sol-macro-input v1.5.2 -> v1.5.4
    Updating alloy-sol-type-parser v1.5.2 -> v1.5.4
    Updating alloy-sol-types v1.5.2 -> v1.5.4
    Updating annotate-snippets v0.12.10 -> v0.12.11
    Updating aws-smithy-async v1.2.7 -> v1.2.10
    Updating aws-smithy-http-client v1.1.5 -> v1.1.8
    Updating aws-smithy-observability v0.2.0 -> v0.2.3
    Updating aws-smithy-query v0.60.9 -> v0.60.12
    Updating aws-smithy-runtime-api v1.10.0 -> v1.11.2
    Updating aws-smithy-types v1.3.6 -> v1.4.2
    Updating bytemuck v1.24.0 -> v1.25.0
    Updating cc v1.2.54 -> v1.2.55
    Updating clap v4.5.54 -> v4.5.56
    Updating clap_builder v4.5.54 -> v4.5.56
    Updating clap_derive v4.5.49 -> v4.5.55
    Updating cliclack v0.3.7 -> v0.3.8
    Updating find-msvc-tools v0.1.8 -> v0.1.9
   Unchanged generic-array v0.14.7 (available: v0.14.9)
    Updating iana-time-zone v0.1.64 -> v0.1.65
   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.2)
   Unchanged icu_properties_data v2.0.1 (available: v2.1.2)
   Unchanged idna_adapter v1.1.0 (available: v1.2.1)
    Updating keccak-asm v0.1.4 -> v0.1.5
   Unchanged matchit v0.8.4 (available: v0.8.6)
    Updating notify-types v2.0.0 -> v2.1.0
    Updating portable-atomic v1.13.0 -> v1.13.1
    Updating portable-atomic-util v0.2.4 -> v0.2.5
   Unchanged rand v0.8.5 (available: v0.9.2)
   Unchanged reqwest v0.12.28 (available: v0.13.1)
    Updating revm-inspectors v0.34.0 -> v0.34.2
    Updating sha3-asm v0.1.4 -> v0.1.5
    Updating siphasher v1.0.1 -> v1.0.2
    Updating slab v0.4.11 -> v0.4.12
    Updating syn-solidity v1.5.2 -> v1.5.4
    Removing tiny-keccak v2.0.2
    Updating zerocopy v0.8.33 -> v0.8.37
    Updating zerocopy-derive v0.8.33 -> v0.8.37
    Updating zmij v1.0.16 -> v1.0.18
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>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>

* chore: update RPC URLs from ithaca.xyz to reth.rs (foundry-rs#13261)

* chore: update RPC URLs from ithaca.xyz to reth.rs

Co-authored-by: Tim Beiko <tim@ethereum.org>
Amp-Thread-ID: https://ampcode.com/threads/T-019c0a51-3f0a-76eb-ba4a-bfb6a697d9ba
Co-authored-by: Amp <amp@ampcode.com>

* fix

* fmt

* Update rpc.rs

* Update rpc.rs

* test: update test

---------

Co-authored-by: Tim Beiko <tim@ethereum.org>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@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: Oliver Nordbjerg <hi@notbjerg.me>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* ci(bench): use depot runner for benchmarks (foundry-rs#13288)

* feat(cli): cli markdown docs (foundry-rs#13291)

* feat: add foundry-cli-markdown crate

Add a new crate for generating Markdown documentation from clap CLIs.
This is a fork of clap-markdown with the following enhancements:

- Support for grouped options by help heading (PR #48)
- Show environment variable names for arguments (PR #50)
- Add version information to generated Markdown (PR #52)

* feat(cli): add hidden --markdown-help flag

Add a hidden --markdown-help flag to forge, cast, anvil, and chisel
that prints CLI reference documentation as Markdown and exits.

This uses the new foundry-cli-markdown crate to generate the output.

* chore(deps): bump docker/login-action from 3.6.0 to 3.7.0 (foundry-rs#13298)

Bumps [docker/login-action](https://github.com/docker/login-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@5e57cd1...c94ce9f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.7.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.67.13 to 2.67.18 (foundry-rs#13297)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.67.13 to 2.67.18.
- [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@710817a...650c5ca)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.67.18
  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 727cc5b0b19bc265bd5ef28fc66bccb284473b5d to 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34 (foundry-rs#13299)

chore(deps): bump DeterminateSystems/update-flake-lock

Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 727cc5b0b19bc265bd5ef28fc66bccb284473b5d to 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](DeterminateSystems/update-flake-lock@727cc5b...5adeaaa)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-version: 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump mikepenz/release-changelog-builder-action from 6.0.1 to 6.1.0 (foundry-rs#13300)

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.1 to 6.1.0.
- [Release notes](https://github.com/mikepenz/release-changelog-builder-action/releases)
- [Commits](mikepenz/release-changelog-builder-action@439f79b...6faf020)

---
updated-dependencies:
- dependency-name: mikepenz/release-changelog-builder-action
  dependency-version: 6.1.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: fix typos CI (foundry-rs#13303)

- Add consts to typos ignore list (valid Rust std::env::consts)
- Fix LintCotext -> LintContext typos in linter docs

* chore(deps): bump crate-ci/typos from 1.42.2 to 1.43.0 (foundry-rs#13296)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.42.2 to 1.43.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@a1d6497...93cbdb2)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.43.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>

* sec: bump to `bytes` `^1.11.1` for `RUSTSEC-2026-0007` (foundry-rs#13306)

bump to 1.11.1 for patch: https://rustsec.org/advisories/RUSTSEC-2026-0007

* chore(anvil,cast): remove unnecessary `populate_blob_hashes()` (foundry-rs#13308)

Both `set_blob_sidecar`/`set_blob_sidecar_7594` implement a call to `populate_blob_hashes()`

* feat(forge): generate random fuzz seed if none provided (foundry-rs#13309)

* feat(forge): generate random fuzz seed if none provided

Generate a random seed for fuzz/invariant tests when no seed is
explicitly configured. This ensures reproducibility by always having
a seed available that can be passed via --fuzz-seed to reproduce
test runs.

* feat(forge): print fuzz seed on fuzz failure (foundry-rs#13310)

* feat(forge): print fuzz seed on test failure

When a fuzz or invariant test fails, print the seed used so users
can reproduce the failure with --fuzz-seed.

* test: update snapshots for fuzz seed output

Add [SEED] redaction pattern to match 'Fuzz seed: 0x...' output.
Update all test snapshots that have fuzz/invariant failures to include
the new seed line.

* fix: use [SEED] placeholder in issue_3055 test snapshot

Amp-Thread-ID: https://ampcode.com/threads/T-019c26cb-9d21-74f9-9e49-7ea59885e827
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>

* feat(anvil): cache block timestamp in mined receipts (foundry-rs#13311)

* fix: use shared `display_chain` helper in CLI error handler (foundry-rs#13314)

* Update handler.rs

* Update handler.rs

* Add --enable-tx-gas-limit CLI flag for EIP-7825 support (foundry-rs#13307)

add --enable-tx-gas-limit

* fix(anvil): use consistent chain_id fallback in fork setup (foundry-rs#13276)

Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>

* fix(test-utils): skip build artifacts when copying to temp workspace (foundry-rs#13266)

* feat(lint): add common uppercase abbreviations to mixedCase exceptions (foundry-rs#13305)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* fix(fmt): correct indentation for closing brace in empty contracts with comments (foundry-rs#13319)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* feat(anvil): add `trace_replayBlockTransactions` endpoint for block txs tracing (foundry-rs#13098)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* fix(eip712): write diagnostics to stderr instead of stdout (foundry-rs#13293)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mablr <59505383+mablr@users.noreply.github.com>
Co-authored-by: Matt D <echowanderer11@gmail.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: Yuya Maruyama <69783679+YuyaMaruyama21D4E@users.noreply.github.com>
Co-authored-by: Theodore Solis <gasgobling@gmail.com>
Co-authored-by: tefyosL-sol <gasgoblinn@gmail.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: Yero~ <lucid7006@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Philippe Dumonet <philippe@dumo.net>
Co-authored-by: Vicze Osikata <thunggis1@gmail.com>
Co-authored-by: Mahmoud Lababidi <lababidi@gmail.com>
Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: Tim Beiko <tim@ethereum.org>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alvarez <140459501+prestoalvarez@users.noreply.github.com>
Co-authored-by: Ninja <DanielGuupta@proton.me>
Co-authored-by: Himess <95512809+Himess@users.noreply.github.com>
Dargon789 added a commit that referenced this pull request Mar 5, 2026
* docs(config): complete foundry.toml configuration reference (#13198)

* complete config

* docs: mark optional fields in config README

* use foundry book for full config

* docs(config): point to Foundry Book for configuration reference

* feat(invariant): add optimization mode for invariant testing (#13196)

* feat(invariant): add optimization mode for invariant testing

Adds optimization mode for invariant testing, similar to Echidna. This mode
maximizes an `int256` return value from a function prefixed with `optimize_`.

**Usage:**
- Define an invariant function returning `int256` with `optimize_` prefix
- Foundry will fuzz to find the sequence that maximizes this value
- The best value and sequence are tracked and reported
- Sequence shrinking is applied to find the minimal reproducing sequence

**Example:**
```solidity
function optimize_maxRoundingError() external view returns (int256) {
    return int256(pool.totalShares()) - int256(pool.expectedShares());
}
```

**Bug fix during implementation:**
Fixed a bug in shrink logic where `vm.warp` and `vm.roll` values were not
correctly accumulated when replaying shrunk sequences. This caused the "best"
sequence to be non-reproducible because time/block values depended on removed
calls. The fix:
- Keeps reverted calls in sequence during optimization to preserve warp/roll
- Accumulates warps/rolls from removed calls into kept calls during shrinking
- Updates inspector's cheatcodes.block alongside executor.env

Closes #12190

Amp-Thread-ID: https://ampcode.com/threads/T-019bea21-149c-728c-9556-850778b70ea3
Co-authored-by: Amp <amp@ampcode.com>

* refactor: isolate optimization shrinking logic from check mode

- Keep shrink_sequence and check_sequence unchanged for regular invariant checks
- Add shrink_sequence_value and check_sequence_value for optimization mode
- Optimization mode handles warp/roll accumulation from removed calls
- replay.rs dispatches to correct shrinking function based on target_value

* refactor: cleanup shrink optimization code, extract helpers

---------

Co-authored-by: Amp <amp@ampcode.com>

* fix: only classify setUp as test setup if it has no parameters (#13204)

Contracts with `setUp(bytes memory)` (common in Gnosis Safe/Zodiac modules)
were incorrectly classified as dev/test contracts and excluded from
`forge build --sizes` output.

Now `setUp` is only classified as a test `Setup` function when it has no
parameters, matching Forge's actual test setup behavior.

Fixes #11126

* chore: fix clippy lints (#13207)

* feat(cast): add --flatten flag to cast interface (#13201)

* feat(cast): add --all-in-one flag to cast interface

Adds a new `--all-in-one` flag to `cast interface` that inlines
inherited/library struct types directly into the generated interface.

This addresses the issue where `cast interface` generates a separate
`library` block for struct types that originate from inherited interfaces,
making the generated interface less usable for some workflows.

With `--all-in-one`, all types are consolidated into a single interface:

```solidity
// Before (default):
library IBase {
    struct TestStruct { address asset; }
}
interface Contract {
    function test(IBase.TestStruct memory) external;
}

// After (with --all-in-one):
interface Contract {
    struct TestStruct { address asset; }
    function test(TestStruct memory) external;
}
```

Uses alloy-json-abi's `ToSolConfig::one_contract(true)` option
introduced in alloy-core 0.8.24.

Closes #9960

* chore: cargo fmt

* refactor: rename --all-in-one to --flatten per review

* chore: fix rustfmt

* Update flake.lock (#13212)

flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/edd5602' (2026-01-17)
  → 'github:nix-community/fenix/93523fa' (2026-01-24)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/adbff8b' (2026-01-15)
  → 'github:rust-lang/rust-analyzer/39018ac' (2026-01-23)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/be5afa0' (2026-01-16)
  → 'github:NixOS/nixpkgs/ab9fbbc' (2026-01-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* chore(deps): weekly `cargo update` (#13213)

Updating git repository `https://github.com/rust-cli/rexpect`
    Updating git repository `https://github.com/paradigmxyz/solar`
    Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules
    Updating git repository `https://github.com/tempoxyz/tempo`
    Updating git repository `https://github.com/paradigmxyz/reth`
     Locking 62 packages to latest compatible versions
    Updating alloy-chains v0.2.29 -> v0.2.30
    Updating alloy-consensus v1.4.3 -> v1.5.2
    Updating alloy-consensus-any v1.4.3 -> v1.5.2
    Updating alloy-contract v1.4.3 -> v1.5.2
    Updating alloy-eip5792 v1.4.3 -> v1.5.2
    Updating alloy-eip7928 v0.3.0 -> v0.3.2
    Updating alloy-eips v1.4.3 -> v1.5.2
    Updating alloy-ens v1.4.3 -> v1.5.2
   Unchanged alloy-evm v0.26.3 (available: v0.27.0)
    Updating alloy-genesis v1.4.3 -> v1.5.2
    Updating alloy-json-rpc v1.4.3 -> v1.5.2
    Updating alloy-network v1.4.3 -> v1.5.2
    Updating alloy-network-primitives v1.4.3 -> v1.5.2
   Unchanged alloy-op-evm v0.26.3 (available: v0.27.0)
    Updating alloy-provider v1.4.3 -> v1.5.2
    Updating alloy-pubsub v1.4.3 -> v1.5.2
    Updating alloy-rpc-client v1.4.3 -> v1.5.2
    Updating alloy-rpc-types v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-anvil v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-any v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-beacon v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-debug v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-engine v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-eth v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-trace v1.4.3 -> v1.5.2
    Updating alloy-rpc-types-txpool v1.4.3 -> v1.5.2
    Updating alloy-serde v1.4.3 -> v1.5.2
    Updating alloy-signer v1.4.3 -> v1.5.2
    Updating alloy-signer-aws v1.4.3 -> v1.5.2
    Updating alloy-signer-gcp v1.4.3 -> v1.5.2
    Updating alloy-signer-ledger v1.4.3 -> v1.5.2
    Updating alloy-signer-local v1.4.3 -> v1.5.2
    Updating alloy-signer-trezor v1.4.3 -> v1.5.2
    Updating alloy-signer-turnkey v1.4.3 -> v1.5.2
    Updating alloy-transport v1.4.3 -> v1.5.2
    Updating alloy-transport-http v1.4.3 -> v1.5.2
    Updating alloy-transport-ipc v1.4.3 -> v1.5.2
    Updating alloy-transport-ws v1.4.3 -> v1.5.2
    Updating alloy-tx-macros v1.4.3 -> v1.5.2
    Updating aws-lc-rs v1.15.3 -> v1.15.4
    Updating aws-lc-sys v0.36.0 -> v0.37.0
    Updating cc v1.2.53 -> v1.2.54
    Updating clearscreen v4.0.2 -> v4.0.3
   Unchanged generic-array v0.14.7 (available: v0.14.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.2)
   Unchanged icu_properties_data v2.0.1 (available: v2.1.2)
   Unchanged idna_adapter v1.1.0 (available: v1.2.1)
    Updating libm v0.2.15 -> v0.2.16
   Unchanged matchit v0.8.4 (available: v0.8.6)
    Removing nix v0.29.0
    Updating num-conv v0.1.0 -> v0.2.0
    Updating opener v0.8.3 -> v0.8.4
    Updating openssl-probe v0.2.0 -> v0.2.1
    Updating proc-macro2 v1.0.105 -> v1.0.106
    Updating process-wrap v8.2.1 -> v9.0.1
    Updating quote v1.0.43 -> v1.0.44
   Unchanged rand v0.8.5 (available: v0.9.2)
   Unchanged reqwest v0.12.28 (available: v0.13.1)
    Updating socket2 v0.6.1 -> v0.6.2
    Updating time v0.3.45 -> v0.3.46
    Updating time-core v0.1.7 -> v0.1.8
    Updating time-macros v0.2.25 -> v0.2.26
    Updating uuid v1.19.0 -> v1.20.0
    Updating watchexec-signals v5.0.0 -> v5.0.1
    Updating watchexec-supervisor v5.0.1 -> v5.0.2
    Updating web_atoms v0.2.1 -> v0.2.3
    Updating windows v0.61.3 -> v0.62.2
    Updating windows-collections v0.2.0 -> v0.3.2
    Removing windows-core v0.61.2
    Updating windows-future v0.2.1 -> v0.3.2
    Removing windows-link v0.1.3
    Updating windows-numerics v0.2.0 -> v0.3.1
    Removing windows-result v0.3.4
    Removing windows-strings v0.4.2
    Updating windows-threading v0.1.0 -> v0.2.1
    Updating zmij v1.0.15 -> v1.0.16
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>

* chore(anvil): clean up remaining dead code after Odyssey sunset (#13211)

* fix(coverage): correct BRDA hit values for LCOV consistency (#13151)

* fix(coverage): correct BRDA hit values for LCOV consistency

Per the LCOV tracefile format specification, BRDA hit values should be:
- "-" when the expression was never evaluated (line not executed)
- "0" when the branch exists and was evaluated but never taken
- "N" when the branch was taken N times

Previously, we were outputting "-" for all branches with 0 hits,
which caused genhtml to fail with "inconsistent" errors when a line
was hit (DA shows hits > 0) but branches on that line showed "-".

This fix tracks line hits in a first pass, then uses that information
to determine whether to output "-" (line never hit) or "0" (line hit
but branch not taken) for branches with 0 hits.

Fixes foundry-rs/foundry#11548

* fix: clippy explicit_iter_loop warning

* test(coverage): add brda_lcov_consistency test for BRDA hit values

Verifies that BRDA outputs follow LCOV spec:
- "0" when line was executed but branch not taken
- "-" when line was never executed

This catches the inconsistency that caused genhtml to fail.

---------

Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>

* feat(forge): add browser wallet support for `forge script` (#12952)

* feat(script): add support for browser wallet

* fix: browser wallet opts defaults

* chore: bump foundry-browser-wallet v0.1.0

* ci: use shared cache mounts for parallel builds (#13231)

perf(docker): use shared cache mounts for parallel builds

Change cache mount sharing mode from `locked` to `shared` for cargo
registry, git, and sccache directories.

With `sharing=locked`, parallel builds must wait for exclusive access
to each cache, causing builds to queue up even when compilation itself
is fast.

Both cargo and sccache handle concurrent access correctly, so `shared`
is safe and allows parallel builds to proceed without blocking.

Amp-Thread-ID: https://ampcode.com/threads/T-019bfc1d-3cee-70ca-9caa-01e33acdff46

Co-authored-by: Amp <amp@ampcode.com>

* fix(anvil): preserve withdrawals in SerializableBlock for state dump/load (#13227)

* fix(anvil): preserve withdrawals in SerializableBlock for state dump/load

* add:  test

* fix ci

* chore(deps): bump DeterminateSystems/determinate-nix-action from 3.15.1 to 3.15.2 (#13236)

chore(deps): bump DeterminateSystems/determinate-nix-action

Bumps [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) from 3.15.1 to 3.15.2.
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](https://github.com/determinatesystems/determinate-nix-action/compare/1d699fc25db3f9e079cd2f168ca007a4183389be...89ab342bd48ff7318caf8d39d6a330c7b1df8f2f)

---
updated-dependencies:
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.15.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 taiki-e/install-action from 2.66.2 to 2.67.13 (#13235)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.66.2 to 2.67.13.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/v2.66.2...710817a1645ef40daad5bcde7431ceccf6cc3528)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.67.13
  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 peter-evans/create-pull-request from 8.0.0 to 8.1.0 (#13234)

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 8.0.0 to 8.1.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/98357b18bf14b5342f975ff684046ec3b2a07725...c0f553fe549906ede9cf27b5156039d195d2ece0)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: 8.1.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 crate-ci/typos from 1.42.1 to 1.42.2 (#13233)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.42.1 to 1.42.2.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crate-ci/typos/compare/65120634e79d8374d1aa2f27e54baa0c364fff5a...a1d64977b4aa1709d6328d518aa753f4899352d8)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.42.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>
Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>

* fix(docker): expose VERGEN_GIT_SHA to build environment (#13237)

* docs(coverage): link to stack-too-deep guide in warnings (#13240)

Update coverage warnings to point to the new Foundry Book guide
instead of the GitHub issue, providing users with actionable
techniques to resolve the error.

Amp-Thread-ID: https://ampcode.com/threads/T-019bff7a-8502-72b7-af76-794f258e8c67

Co-authored-by: Amp <amp@ampcode.com>

* Polkadot/Kusama/PolkadotTestnet for RPC gas estimation (#12537)

* adds polkadot testnet

* adds polkadot testnet

* bump alloy chains

* fmt

* Remove kluster

* update rpc url

* update rpc url

* fmt

* adds polkadot kusama

* bump alloy chains

* perf(anvil): avoid redundant block queries in ots_getBlockTransactions (#13243)

* fix(anvil): use consistent chain_id fallback for blob params (#13241)

* Revert "Delete .circleci/ci_deploy.yml (#322)" (#358)

This reverts commit 87dd517cf50fef686c8ef39431d06b16d4744d88.

* feat(primitives): introduce `NetworkWallet<FoundryNetwork>` impl for `EthereumWallet` (#13248)

- Seamless support for eth/op/tempo txs
- This aims to replace `WalletSigner`'s impl once `FoundryNetwork` will be used everywhere

* refactor(common): make `ProviderBuilder` generic over `Network` (#13250)

* refactor(common): make `ProviderBuilder` generic over `Network`

- Updated `ProviderBuilder` helper to be generic, which will facilate `FoundryNetwork` rollout
- Adjusted the instantiation of `ProviderBuilder` in various locations to use `AnyNetwork`.
- Enhanced the `build` and `build_with_wallet` methods to accommodate the new generic structure.

* fix: relax trait bound on `N::TransactionRequest`

* fix: comment

* fix: comment

* fix(anvil): return error instead of empty vec for out-of-range log queries (#13251)

* fix(config): respect user-configured etherscan URL over chain defaults (#13239)

fix(config): Respect user-configured etherscan URL over chain defaults (#13238)

* fix(config): respect user-configured etherscan URL over chain defaults

* test(config): add tests for custom etherscan URL handling

Co-authored-by: Yuya Maruyama <69783679+YuyaMaruyama21D4E@users.noreply.github.com>

* fix(primitives): track both 4844/7594 sidecars presence in `FoundryTransactionRequest::build_typed_tx` (#13218)

* fix(primitives): track both 4844/7594 sidecars presence in `FoundryTransactionRequest::build_typed_tx`

* fix: after `TransactionBuilder4844` impl

* feat(common): introduce generic `ProviderBuilder::from_config` method (#13268)

- keep the existing helpers that erase generic to avoid breaking change

* fix(cast): remove redundant chain() call in explorer_client (#13272)

Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>

* fix(verify): respect user-configured etherscan URL over chain defaults (#13275)

Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>

* Update flake.lock (#13279)

flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/93523fa' (2026-01-24)
  → 'github:nix-community/fenix/b2344f3' (2026-01-31)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/39018ac' (2026-01-23)
  → 'github:rust-lang/rust-analyzer/eb05888' (2026-01-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ab9fbbc' (2026-01-24)
  → 'github:NixOS/nixpkgs/6308c3b' (2026-01-30)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix(invariant): remove unused cloned calldata (#12893)

* fix(invariant): prune calldata to bound memory usage in long runs

* style: fix formatting in invariant executor

* chore: remove vyper files from testdata to fix CI

* chore: trigger ci update

* fix(invariant): remove unused FuzzCase.calldata field to prevent OOM

The calldata field in FuzzCase was stored but never read after construction.
Removing it entirely eliminates memory accumulation during long invariant runs.

Changes:
- Remove FuzzCase.calldata field (unused after construction)
- Remove prune_calldata() methods (no longer needed)
- Restore vyper test files that were incorrectly deleted

Fixes #12397

Amp-Thread-ID: https://ampcode.com/threads/T-019c17c9-d969-7370-bf0d-495e473e8e30
Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019c17c9-d969-7370-bf0d-495e473e8e30
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>

* feat(debugger): display actual gas usage alongside refund counter (#13271)

* feat(debugger): display actual gas usage alongside refund counter

* fix(forge-test): fix flamegraph gas inaccuracy issues

* reverse `--decode-internal` not default with `--flamechart`

* make gas unsigned as `inferno` doesn't support anyway

* replace revm-inspectors patch

* fix clippy

* update tests

* update tests

* fmt

* fix(config): handle decimal string in U256 deserialization (#13284)

* fix: adjust numerical cells in gas report to be right aligned (#12883)

* Adjust Cells to be Right Aligned in Gas Report

* fix test and fmt

---------

Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* chore(deps): weekly `cargo update` (#13280)

Updating git repository `https://github.com/rust-cli/rexpect`
    Updating git repository `https://github.com/paradigmxyz/solar`
    Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules
    Updating git repository `https://github.com/tempoxyz/tempo`
    Updating git repository `https://github.com/paradigmxyz/reth`
     Locking 35 packages to latest compatible versions
    Updating alloy-dyn-abi v1.5.2 -> v1.5.4
   Unchanged alloy-evm v0.26.3 (available: v0.27.0)
    Updating alloy-json-abi v1.5.2 -> v1.5.4
   Unchanged alloy-op-evm v0.26.3 (available: v0.27.0)
    Updating alloy-primitives v1.5.2 -> v1.5.4
    Updating alloy-sol-macro v1.5.2 -> v1.5.4
    Updating alloy-sol-macro-expander v1.5.2 -> v1.5.4
    Updating alloy-sol-macro-input v1.5.2 -> v1.5.4
    Updating alloy-sol-type-parser v1.5.2 -> v1.5.4
    Updating alloy-sol-types v1.5.2 -> v1.5.4
    Updating annotate-snippets v0.12.10 -> v0.12.11
    Updating aws-smithy-async v1.2.7 -> v1.2.10
    Updating aws-smithy-http-client v1.1.5 -> v1.1.8
    Updating aws-smithy-observability v0.2.0 -> v0.2.3
    Updating aws-smithy-query v0.60.9 -> v0.60.12
    Updating aws-smithy-runtime-api v1.10.0 -> v1.11.2
    Updating aws-smithy-types v1.3.6 -> v1.4.2
    Updating bytemuck v1.24.0 -> v1.25.0
    Updating cc v1.2.54 -> v1.2.55
    Updating clap v4.5.54 -> v4.5.56
    Updating clap_builder v4.5.54 -> v4.5.56
    Updating clap_derive v4.5.49 -> v4.5.55
    Updating cliclack v0.3.7 -> v0.3.8
    Updating find-msvc-tools v0.1.8 -> v0.1.9
   Unchanged generic-array v0.14.7 (available: v0.14.9)
    Updating iana-time-zone v0.1.64 -> v0.1.65
   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.2)
   Unchanged icu_properties_data v2.0.1 (available: v2.1.2)
   Unchanged idna_adapter v1.1.0 (available: v1.2.1)
    Updating keccak-asm v0.1.4 -> v0.1.5
   Unchanged matchit v0.8.4 (available: v0.8.6)
    Updating notify-types v2.0.0 -> v2.1.0
    Updating portable-atomic v1.13.0 -> v1.13.1
    Updating portable-atomic-util v0.2.4 -> v0.2.5
   Unchanged rand v0.8.5 (available: v0.9.2)
   Unchanged reqwest v0.12.28 (available: v0.13.1)
    Updating revm-inspectors v0.34.0 -> v0.34.2
    Updating sha3-asm v0.1.4 -> v0.1.5
    Updating siphasher v1.0.1 -> v1.0.2
    Updating slab v0.4.11 -> v0.4.12
    Updating syn-solidity v1.5.2 -> v1.5.4
    Removing tiny-keccak v2.0.2
    Updating zerocopy v0.8.33 -> v0.8.37
    Updating zerocopy-derive v0.8.33 -> v0.8.37
    Updating zmij v1.0.16 -> v1.0.18
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>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>

* chore: update RPC URLs from ithaca.xyz to reth.rs (#13261)

* chore: update RPC URLs from ithaca.xyz to reth.rs

Co-authored-by: Tim Beiko <tim@ethereum.org>
Amp-Thread-ID: https://ampcode.com/threads/T-019c0a51-3f0a-76eb-ba4a-bfb6a697d9ba
Co-authored-by: Amp <amp@ampcode.com>

* fix

* fmt

* Update rpc.rs

* Update rpc.rs

* test: update test

---------

Co-authored-by: Tim Beiko <tim@ethereum.org>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@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: Oliver Nordbjerg <hi@notbjerg.me>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* ci(bench): use depot runner for benchmarks (#13288)

* feat(cli): cli markdown docs (#13291)

* feat: add foundry-cli-markdown crate

Add a new crate for generating Markdown documentation from clap CLIs.
This is a fork of clap-markdown with the following enhancements:

- Support for grouped options by help heading (PR #48)
- Show environment variable names for arguments (PR #50)
- Add version information to generated Markdown (PR #52)

* feat(cli): add hidden --markdown-help flag

Add a hidden --markdown-help flag to forge, cast, anvil, and chisel
that prints CLI reference documentation as Markdown and exits.

This uses the new foundry-cli-markdown crate to generate the output.

* chore(deps): bump docker/login-action from 3.6.0 to 3.7.0 (#13298)

Bumps [docker/login-action](https://github.com/docker/login-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/5e57cd118135c172c3672efd75eb46360885c0ef...c94ce9fb468520275223c153574b00df6fe4bcc9)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.7.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.67.13 to 2.67.18 (#13297)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.67.13 to 2.67.18.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/710817a1645ef40daad5bcde7431ceccf6cc3528...650c5ca14212efbbf3e580844b04bdccf68dac31)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.67.18
  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 727cc5b0b19bc265bd5ef28fc66bccb284473b5d to 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34 (#13299)

chore(deps): bump DeterminateSystems/update-flake-lock

Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 727cc5b0b19bc265bd5ef28fc66bccb284473b5d to 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/727cc5b0b19bc265bd5ef28fc66bccb284473b5d...5adeaaaf36f64df54f62adb34aa5fbfdb0109d34)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-version: 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump mikepenz/release-changelog-builder-action from 6.0.1 to 6.1.0 (#13300)

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.1 to 6.1.0.
- [Release notes](https://github.com/mikepenz/release-changelog-builder-action/releases)
- [Commits](https://github.com/mikepenz/release-changelog-builder-action/compare/439f79b5b5428107c7688c1d2b0e8bacc9b8792c...6faf020194b7c8853f9e55c4fd92e40b02122a04)

---
updated-dependencies:
- dependency-name: mikepenz/release-changelog-builder-action
  dependency-version: 6.1.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: fix typos CI (#13303)

- Add consts to typos ignore list (valid Rust std::env::consts)
- Fix LintCotext -> LintContext typos in linter docs

* chore(deps): bump crate-ci/typos from 1.42.2 to 1.43.0 (#13296)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.42.2 to 1.43.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crate-ci/typos/compare/a1d64977b4aa1709d6328d518aa753f4899352d8...93cbdb2d23269548cf0db0f74d0bc6a09a3f0d5c)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.43.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>

* sec: bump to `bytes` `^1.11.1` for `RUSTSEC-2026-0007` (#13306)

bump to 1.11.1 for patch: https://rustsec.org/advisories/RUSTSEC-2026-0007

* chore(anvil,cast): remove unnecessary `populate_blob_hashes()` (#13308)

Both `set_blob_sidecar`/`set_blob_sidecar_7594` implement a call to `populate_blob_hashes()`

* feat(forge): generate random fuzz seed if none provided (#13309)

* feat(forge): generate random fuzz seed if none provided

Generate a random seed for fuzz/invariant tests when no seed is
explicitly configured. This ensures reproducibility by always having
a seed available that can be passed via --fuzz-seed to reproduce
test runs.

* feat(forge): print fuzz seed on fuzz failure (#13310)

* feat(forge): print fuzz seed on test failure

When a fuzz or invariant test fails, print the seed used so users
can reproduce the failure with --fuzz-seed.

* test: update snapshots for fuzz seed output

Add [SEED] redaction pattern to match 'Fuzz seed: 0x...' output.
Update all test snapshots that have fuzz/invariant failures to include
the new seed line.

* fix: use [SEED] placeholder in issue_3055 test snapshot

Amp-Thread-ID: https://ampcode.com/threads/T-019c26cb-9d21-74f9-9e49-7ea59885e827
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Amp <amp@ampcode.com>

* feat(anvil): cache block timestamp in mined receipts (#13311)

* fix: use shared `display_chain` helper in CLI error handler (#13314)

* Update handler.rs

* Update handler.rs

* Add --enable-tx-gas-limit CLI flag for EIP-7825 support (#13307)

add --enable-tx-gas-limit

* fix(anvil): use consistent chain_id fallback in fork setup (#13276)

Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>

* fix(test-utils): skip build artifacts when copying to temp workspace (#13266)

* feat(lint): add common uppercase abbreviations to mixedCase exceptions (#13305)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* fix(fmt): correct indentation for closing brace in empty contracts with comments (#13319)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* feat(anvil): add `trace_replayBlockTransactions` endpoint for block txs tracing (#13098)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* fix(eip712): write diagnostics to stderr instead of stdout (#13293)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* foundryup: tempo now distributes all binaries (#13337)

Amp-Thread-ID: https://ampcode.com/threads/T-019c2ea2-963a-744a-8b1d-57709bc295be

Co-authored-by: Amp <amp@ampcode.com>

* fix(config): handle vyper section with skip_serializing_if fields (#13318)

* fix(config): handle vyper section with skip_serializing_if fields

The vyper config section uses skip_serializing_if = Option::is_none on all
fields, causing the default serialization to produce an empty dict. This led to
all vyper keys being flagged as unknown.

Add explicit VYPER_KEYS constant and special-case the vyper section in
collect_standalone_section_warnings to use these known keys instead of
deriving them from the (empty) default serialization.

Fixes #13316

* test(config): add regression tests for vyper config warnings

Tests for #13316:
- no_false_warnings_for_vyper_config_keys: valid vyper keys in standalone section
- no_false_warnings_for_nested_vyper_config_keys: valid vyper keys in profile
- warns_on_unknown_vyper_keys: unknown vyper keys should still warn

Amp-Thread-ID: https://ampcode.com/threads/T-019c28b9-9c8c-76bf-96a5-ff5a504c0507
Co-authored-by: Amp <amp@ampcode.com>

* fix build issues

* fix(config): handle nested vyper section with skip_serializing_if fields

The VyperConfig struct uses skip_serializing_if on all Option fields,
causing the default serialization to produce an empty dict. This caused
false warnings for valid vyper keys like optimize, path, and
experimental_codegen when used in profile nested sections like
[profile.default.vyper].

Uses the existing VYPER_KEYS constant for nested vyper sections,
matching how standalone [vyper] sections are already handled.

Fixes #13316

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019c297e-a282-7188-8f79-5080d3e451a9

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix: broken config test, currently blocking CI (#13340)

fix broken config

* skip checksum hash in create2 mining when case-insensitive (#13331)

* kip checksum hash in create2 mining

* fix the clippy

* fix: avoid setting FOUNDRY_PROFILE: ci in template workflows, profile does not exist (#13339)

avoid encoding FOUNDRY_PROFILE: ci, profile does not exist

* perf(evm): wrap Executor.backend in Arc for copy-on-write cloning (#13327)

* perf(evm): wrap Executor.backend in Arc for copy-on-write cloning

During parallel fuzzing, each worker clones the Executor. Previously this
deep-cloned the entire Backend (CacheDB, JournaledState, state snapshots),
which could be 10-50MB per clone with 16 workers = 160-800MB wasted memory.

This change wraps Backend in Arc<Backend> and uses Arc::make_mut() for
copy-on-write semantics. When workers only read state, they share the same
backend. When a worker mutates, it gets its own copy.

Expected impact:
- ~80% memory reduction for parallel fuzz runs
- Faster executor clone (pointer copy instead of deep clone)
- No behavioral change: mutations still get isolated copies

Amp-Thread-ID: https://ampcode.com/threads/T-019c2af1-f00b-723a-a3c3-25cbd6f3e92b
Co-authored-by: Amp <amp@ampcode.com>

* test: update config test expectations for new mixed_case_exceptions

Fix test expectations after 1bd687f0d added new values (ID, URL, API,
JSON, XML, HTML, HTTP, HTTPS) to lint.mixed_case_exceptions defaults.

Amp-Thread-ID: https://ampcode.com/threads/T-019c2af1-f00b-723a-a3c3-25cbd6f3e92b
Co-authored-by: Amp <amp@ampcode.com>

* Update config.rs

* Update config.rs

* fix: restore "URI" in config test JSON expectations

Amp-Thread-ID: https://ampcode.com/threads/T-019c2f68-f9df-76bc-ba4c-94fbe1789c9c
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>

* chore(ci): update time crate (#13348)

* test(cast): ignore flaky_run_celo_with_precompiles (Celo RPC no longer supports debug_traceTransaction) (#13347)

* fix(test-utils): create destination directory in copy_dir_filtered (#13350)

* chore(wallets): Remove `NetworkWallet<FoundryNetwork>` impl for `WalletSigner` (#13343)

- superseeded by `EthereumWallet`'s one, which is integrated in `TransactionBuilder` flow

* fix(anvil): return error when querying future block number in with_database_at (#13267)

* return error when querying future block number

* fix test

---------

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: remove stale `tiny-keccak` references (#13358)

* chore: remove stale tiny-keccak profile override

* chore: remove stale tiny-keccak deny exception

* chore(script): typo (#13353)

* perf(cheatcodes): loop invariant code motion by hand (#13357)

* chore(anvil): remove unnecessary clone operations (#13330)

* perf(linking): replace double hash mpa lookup contains_key + [] with single get (#13361)

* fix(verify): correct Sourcify API URL construction for custom chains (#13360)

Update verify.rs

* chore(common): remove dead `with_spinner_reporter` function (#13366)

* resolve absolute and relative paths on Windows (#13364)

* fix: unittest failed (#13371)

* perf(anvil): reuse storage root from prove_storage instead of recompu… (#13363)

perf(anvil): reuse storage root from prove_storage instead of recomputing

* chore(deps): weekly `cargo update` (#13384)

Updating git repository `https://github.com/rust-cli/rexpect`
    Updating git repository `https://github.com/paradigmxyz/solar`
    Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules
    Updating git repository `https://github.com/tempoxyz/tempo`
    Updating git repository `https://github.com/paradigmxyz/reth`
     Locking 94 packages to latest compatible versions
    Updating alloy-consensus v1.5.2 -> v1.6.1
    Updating alloy-consensus-any v1.5.2 -> v1.6.1
    Updating alloy-contract v1.5.2 -> v1.6.1
    Updating alloy-eip5792 v1.5.2 -> v1.6.1
    Updating alloy-eips v1.5.2 -> v1.6.1
    Updating alloy-ens v1.5.2 -> v1.6.1
    Updating alloy-evm v0.26.3 -> v0.26.4 (available: v0.27.2)
    Updating alloy-genesis v1.5.2 -> v1.6.1
    Updating alloy-json-rpc v1.5.2 -> v1.6.1
    Updating alloy-network v1.5.2 -> v1.6.1
    Updating alloy-network-primitives v1.5.2 -> v1.6.1
    Updating alloy-op-evm v0.26.3 -> v0.26.4 (available: v0.27.2)
    Updating alloy-provider v1.5.2 -> v1.6.1
    Updating alloy-pubsub v1.5.2 -> v1.6.1
    Updating alloy-rlp v0.3.12 -> v0.3.13
    Updating alloy-rlp-derive v0.3.12 -> v0.3.13
    Updating alloy-rpc-client v1.5.2 -> v1.6.1
    Updating alloy-rpc-types v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-anvil v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-any v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-beacon v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-debug v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-engine v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-eth v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-trace v1.5.2 -> v1.6.1
    Updating alloy-rpc-types-txpool v1.5.2 -> v1.6.1
    Updating alloy-serde v1.5.2 -> v1.6.1
    Updating alloy-signer v1.5.2 -> v1.6.1
    Updating alloy-signer-aws v1.5.2 -> v1.6.1
    Updating alloy-signer-gcp v1.5.2 -> v1.6.1
    Updating alloy-signer-ledger v1.5.2 -> v1.6.1
    Updating alloy-signer-local v1.5.2 -> v1.6.1
    Updating alloy-signer-trezor v1.5.2 -> v1.6.1
    Updating alloy-signer-turnkey v1.5.2 -> v1.6.1
    Updating alloy-transport v1.5.2 -> v1.6.1
    Updating alloy-transport-http v1.5.2 -> v1.6.1
    Updating alloy-transport-ipc v1.5.2 -> v1.6.1
    Updating alloy-transport-ws v1.5.2 -> v1.6.1
    Updating alloy-trie v0.9.3 -> v0.9.4
    Updating alloy-tx-macros v1.5.2 -> v1.6.1
    Updating anyhow v1.0.100 -> v1.0.101
    Updating async-compression v0.4.37 -> v0.4.39
    Updating aws-config v1.8.12 -> v1.8.13
    Updating aws-runtime v1.5.18 -> v1.6.0
    Updating aws-sdk-kms v1.98.0 -> v1.99.0
    Updating aws-sdk-sso v1.92.0 -> v1.93.0
    Updating aws-sdk-ssooidc v1.94.0 -> v1.95.0
    Updating aws-sdk-sts v1.96.0 -> v1.97.0
    Updating aws-sigv4 v1.3.7 -> v1.3.8
    Updating aws-smithy-async v1.2.10 -> v1.2.11
    Updating aws-smithy-http v0.62.6 -> v0.63.3
    Updating aws-smithy-http-client v1.1.8 -> v1.1.9
    Updating aws-smithy-json v0.61.9 -> v0.62.3
    Updating aws-smithy-observability v0.2.3 -> v0.2.4
    Updating aws-smithy-query v0.60.12 -> v0.60.13
    Updating aws-smithy-runtime v1.9.8 -> v1.10.0
    Updating aws-smithy-runtime-api v1.11.2 -> v1.11.3
    Updating aws-smithy-types v1.4.2 -> v1.4.3
    Updating clap v4.5.56 -> v4.5.57
    Updating clap_builder v4.5.56 -> v4.5.57
    Updating flate2 v1.1.8 -> v1.1.9
   Unchanged generic-array v0.14.7 (available: v0.14.9)
    Updating hyper-util v0.1.19 -> v0.1.20
   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.2)
   Unchanged icu_properties_data v2.0.1 (available: v2.1.2)
   Unchanged idna_adapter v1.1.0 (available: v1.2.1)
    Updating interprocess v2.2.3 -> v2.3.1
    Updating jiff v0.2.18 -> v0.2.19
    Updating jiff-static v0.2.18 -> v0.2.19
   Unchanged matchit v0.8.4 (available: v0.8.6)
    Updating memchr v2.7.6 -> v2.8.0
    Updating nybbles v0.4.7 -> v0.4.8
    Updating pest v2.8.5 -> v2.8.6
    Updating pest_derive v2.8.5 -> v2.8.6
    Updating pest_generator v2.8.5 -> v2.8.6
    Updating pest_meta v2.8.5 -> v2.8.6
    Updating proptest v1.9.0 -> v1.10.0
   Unchanged rand v0.8.5 (available: v0.9.2)
    Updating rapidhash v4.2.1 -> v4.2.2
    Updating regex v1.12.2 -> v1.12.3
    Updating regex-automata v0.4.13 -> v0.4.14
    Updating regex-lite v0.1.8 -> v0.1.9
    Updating regex-syntax v0.8.8 -> v0.8.9
   Unchanged reqwest v0.12.28 (available: v0.13.2)
    Updating schemars v1.2.0 -> v1.2.1
    Updating schemars_derive v1.2.0 -> v1.2.1
    Updating sval v2.16.0 -> v2.17.0
    Updating sval_buffer v2.16.0 -> v2.17.0
    Updating sval_dynamic v2.16.0 -> v2.17.0
    Updating sval_fmt v2.16.0 -> v2.17.0
    Updating sval_json v2.16.0 -> v2.17.0
    Updating sval_nested v2.16.0 -> v2.17.0
    Updating sval_ref v2.16.0 -> v2.17.0
    Updating sval_serde v2.16.0 -> v2.17.0
    Updating system-configuration v0.6.1 -> v0.7.0
    Updating webbrowser v1.0.6 -> v1.1.0
    Updating webpki-roots v1.0.5 -> v1.0.6
    Updating zerocopy v0.8.37 -> v0.8.39
    Updating zerocopy-derive v0.8.37 -> v0.8.39
    Updating zlib-rs v0.5.5 -> v0.6.0
    Updating zmij v1.0.18 -> v1.0.19
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 (#13383)

flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/b2344f3' (2026-01-31)
  → 'github:nix-community/fenix/e1b28f6' (2026-02-07)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/eb05888' (2026-01-30)
  → 'github:rust-lang/rust-analyzer/d2a00da' (2026-02-05)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6308c3b' (2026-01-30)
  → 'github:NixOS/nixpkgs/ae67888' (2026-02-06)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* perf(verify): reuse transaction from earlier RPC call instead of fetching twice (#13391)

* perf(verify): reuse transaction from earlier RPC call instead of fetching twice

* fix ci

* fix(cast): --json support for erc20 cmds (#12727)

* refactor(anvil): using is_ok since it's more robust (#13377)

* fix: may div by zero (#13369)

* refactor(primitives): turn `FoundryTransactionRequest` into an enum (#13278)

- Combines Eth's, Op's, and Tempo's transaction requests to inherit Op/Tempo tx building

* perf: avoid checksum (#13374)

* docs: slim readme (#13393)

* fix: correct trace message in dynamic linking preprocessor (#13394)

* perf(invariant): avoid cloning state changeset in fuzz runs (#13398)

Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>

* chore(deps): bump depot/build-push-action from 1.16.2 to 1.17.0 (#13405)

Bumps [depot/build-push-action](https://github.com/depot/build-push-action) from 1.16.2 to 1.17.0.
- [Release notes](https://github.com/depot/build-push-action/releases)
- [Commits](https://github.com/depot/build-push-action/compare/9785b135c3c76c33db102e45be96a25ab55cd507...5f3b3c2e5a00f0093de47f657aeaefcedff27d18)

---
updated-dependencies:
- dependency-name: depot/build-push-action
  dependency-version: 1.17.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.67.18 to 2.67.27 (#13406)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.67.18 to 2.67.27.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/650c5ca14212efbbf3e580844b04bdccf68dac31...1e67dedb5e3c590e1c9d9272ace46ef689da250d)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.67.27
  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 crate-ci/typos from 1.43.0 to 1.43.4 (#13407)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.43.0 to 1.43.4.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crate-ci/typos/compare/93cbdb2d23269548cf0db0f74d0bc6a09a3f0d5c...78bc6fb2c0d734235d57a2d6b9de923cc325ebdd)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.43.4
  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>

* ci: use dedicated template for isolate flaky test failures (#13409)

* chore(deps): bump depot/setup-action from 1.6.0 to 1.7.1 (#13408)

* fix(primitives): `FoundryTransactionRequest` conversion w/ tempo variant (#13401)

- Fix `TempoTransactionRequest` variant, as inner req was always set to default.
- Added unit tests to assess `FoundryTransactionRequest` proper variant routing

* return error instead of empty array when filter not found (#13415)

* chore(config): remove unused enum accessor methods (#13414)

* fix(cast): clean up temp dir in `cast storage` when etherscan cache is unavailable (#13418)

* perf(primitives): avoid cloning receipts (#13396)

* fix: constructor params and args check (#13375)

* fix: correct path format in get_paths doc comment (#13388)

* ci: replace merge_group with push on master (#13419)

* ci(release): pin action-gh-release to v2.4.2 (#13420)

v2.5.0 introduced a draft→finalize flow that races in matrix jobs,
causing 'Too many retries' failures in the Create release step.

See: https://github.com/softprops/action-gh-release/issues/704
Amp-Thread-ID: https://ampcode.com/threads/T-019c4c6d-c55a-752a-8b27-25413f485bed

Co-authored-by: Amp <amp@ampcode.com>

* fix(anvil): handle disk cache write failures in state eviction (#13332)

* feat(forge,chisel): realtime `console.log` (#13321)

* fix(cast): remove duplicate receipt handling in Tempo transactions (#13378)

* perf(traces): deduplicate addresses before external fetching (#13320)

* fix: prevent panic on etherscan client creation failure in test command (#13395)

* perf(config): skip redundant remapping detection in _with_root (#13389)

* fix(common): remove trailing space in `state_root` match pattern (#13426)

* chore(config): `curl` mode as config key (#13260)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* fix(config): normalize deny_warnings from env vars (#13434)

* fix: correct dead condition in command error formatting (#13427)

* add missing JSON output support for `erc20 decimals` (#13438)

* fix(anvil): variable shadowing bug in ReadyTransactions::remove_with_markers (#13436)

Update transactions.rs

* Update flake.lock (#13448)

* chore(deps): weekly `cargo update` (#13449)

* feat(evm): `ForkDatabase`/`MultiFork` generic over `Network` (#13459)

* feat(evm): `ForkDatabase`/`MultiFork` generic over `Network`

bump `foundry-fork-db`

* fix: typo

* fix(cheatcodes): fix vm.expectRevert for direct precompile calls (#13460)

Precompile calls don't create an interpreter frame, so
`initialize_interp` never fires and `max_depth` never gets bumped
beyond the cheatcode call depth. This causes the depth check in
`handle_expect_revert` to fail with "call didn't revert at a lower
depth than cheatcode call depth".

Track `max_depth` in the `call` hook as well, accounting for the
callee depth (`curr_depth + 1`).


Amp-Thread-ID: https://ampcode.com/threads/T-019c63a2-2c36-7334-ab55-2931a174b59c

Co-authored-by: Amp <amp@ampcode.com>

* fix(lint): remove unreachable macro arm in declare_forge_lint (#13452)

* chore(flake): use nightly rustfmt (#13441)

* chore(flake): use nightly rustfmt

* chore(flake): update flake

* feat: add `executeTransaction` cheatcode (#13437)

feat: add executeTransaction cheatcode

Port the executeTransaction cheatcode from
tempoxyz/tempo-foundry. Executes RLP-encoded
signed transactions in an isolated EVM context
with full semantics (like --isolate mode).

OP deposit and Tempo AA transactions return
errors for now (marked with TODOs).

* fix(forge): don't reset snapshot diff result on missing file (#13442)

* fix(traces): check HTTP status before JSON parsing in Sourcify fetcher (#13446)

* Update external.rs

* chore: fmt

* test: rm useless tests

---------

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>

* feat(cheatcodes): add Ed25519 crypto cheatcodes (#13450)

* feat(cheatcodes): add Ed25519 crypto cheatcodes

Add four new cheatcodes for Ed25519 cryptography:
- createEd25519Key(bytes32 salt) - deterministic key generation
- publicKeyEd25519(bytes32 privateKey) - derive public key
- signEd25519(namespace, message, privateKey) - sign with domain separation
- verifyEd25519(signature, namespace, message, publicKey) - verify signatures

Uses ed25519-consensus crate. Includes comprehensive unit tests for
determinism, namespace separation, edge cases, and invalid inputs.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019c5f04-a6ed-7015-9b4d-4464a35bc26c

* chore: solidity test

* test: fix assertions

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>

* feat(lint): add missing visit methods to EarlyLintVisitor (#13454)

Update early.rs

* notify subscribers for txs promoted after block mining (#13464)

* notify subscribers for txs promoted after block mining

* refactor: extract notify_ready helper to deduplicate notification logic

Amp-Thread-ID: https://ampcode.com/threads/T-019c6840-d225-723a-bf92-46e4e29c7ad1
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Amp <amp@ampcode.com>

* chore(deps): bump taiki-e/install-action from 2.67.27 to 2.68.0 (#13465)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.67.27 to 2.68.0.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/1e67dedb5e3c590e1c9d9272ace46ef689da250d...f8d25fb8a2df08dcd3cead89780d572767b8655f)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.68.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/cache-cargo-install-action from 3.0.1 to 3.0.2 (#13466)

Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/taiki-e/cache-cargo-install-action/releases)
- [Changelog](https://github.com/taiki-e/cache-cargo-install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/cache-cargo-install-action/compare/34ce5120836e5f9f1508d8713d7fdea0e8facd6f...2bfc3cedaf2ee5e7fa5d0ae034ccd5fb50cf8e1f)

---
updated-dependencies:
- dependency-name: taiki-e/cache-cargo-install-action
  dependency-version: 3.0.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 crate-ci/typos from 1.43.4 to 1.43.5 (#13467)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.43.4 to 1.43.5.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crate-ci/typos/compare/78bc6fb2c0d734235d57a2d6b9de923cc325ebdd...57b11c6b7e54c402ccd9cda953f1072ec4f78e33)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.43.5
  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 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34 to a135ea602656a8348c5c34887131dd9f7a28bd8c (#13468)

chore(deps): bump DeterminateSystems/update-flake-lock

Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 5adeaaaf36f64df54f62adb34aa5fbfdb0109d34 to a135ea602656a8348c5c34887131dd9f7a28bd8c.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/5adeaaaf36f64df54f62adb34aa5fbfdb0109d34...a135ea602656a8348c5c34887131dd9f7a28bd8c)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-version: a135ea602656a8348c5c34887131dd9f7a28bd8c
  dependency-type: direct:production
...

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.2 to 2.5.0 (#13469)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.4.2 to 2.5.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/5be0e66d93ac7ed76da52eca8bb058f665c3a5fe...a06a81a03ee405af7f2048a818ed3f03bbf83c7b)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.5.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>

* test: mark clone CLI tests as flaky (#13472)

These tests hit real Etherscan/Sourcify APIs and fail intermittently due to rate limiting and network issues. They will now run in the nightly flaky test workflow with retries instead of blocking every PR.

Amp-Thread-ID: https://ampcode.com/threads/T-019c6840-d225-723a-bf92-46e4e29c7ad1

Co-authored-by: Amp <amp@ampcode.com>

* fix: bind TempDir guard in clone test to prevent premature cleanup (#13471)

Amp-Thread-ID: https://ampcode.com/threads/T-019c6840-d225-723a-bf92-46e4e29c7ad1

Co-authored-by: Amp <amp@ampcode.com>

* prevent balance overflow in anvil_addBalance (#13457)

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

* chore(tests): bump forge-std version (#13482)

* move `sccache --show-stats` into build RUN to show actual stats (#13483)

* fix(anvil): correct blob_gas_used_ratio calculation in fee history (#13491)

Update fees.rs

* fix(cheatcodes): make vm.executeTransaction work in isolation mode (#13475)

* fix(test): exclude ExecuteTransactionTest from isolation mode

vm.executeTransaction already performs its own isolated execution (fresh
EVM, cloned state, state merging). When isolation mode is enabled, the
inspector's transact_inner intercepts CALLs at depth==1 inside the
cheatcode's inner EVM, causing double-isolation that results in
'transaction reverted: 0x'.

Amp-Thread-ID: https://ampcode.com/threads/T-019c6ad3-d3f0-70d3-8d78-38ccd8444e9e
Co-authored-by: Amp <amp@ampcode.com>

* fix(cheatcodes): make vm.executeTransaction work in isolation mode

Two bugs prevented vm.executeTransaction from working with --isolate:

1. Double isolation: executeTransaction creates its own inner EVM at
   depth=1, but the isolation inspector also intercepts CALLs at depth=1,
   causing a nested transact_inner. Fix: add set_in_inner_context() to
   CheatcodesExecutor trait and set it before/after the inner EVM run,
   matching how transact_inner already handles this.

2. Corrupted cfg env: executeTransaction modified env.cfg (disabled nonce
   checks, set initcode size limit) but never restored it. Subsequent
   isolated calls then failed nonce validation (NonceTooHigh). Fix:
   restore env.cfg from the cached copy alongside env.tx and basefee.

Amp-Thread-ID: https://ampcode.com/threads/T-019c6ad3-d3f0-70d3-8d78-38ccd8444e9e
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* test-utils: remove unused `IS_TTY` helper (#13492)

Update util.rs

* chore: update LATEST_SOLC to 0.8.34 (#13489)

Amp-Thread-ID: https://ampcode.com/threads/T-019c7441-de53-7338-86cb-6d84f755016a

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* feat(anvil): add --max-transactions CLI flag (#13495)

* remove unimplemented anvil_enableTraces endpoint (#13499)

* feat(fmt): pretty printing for generic block/transaction responses (#13497)

feat(fmt): pretty printing for generic block/transaction reponses

* Refactor `locked_read_to_string` to reuse `locked_read (#13494)

Update fs.rs

Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* refactor(script-sequence): extract duplicated filter logic (#13500)

* chore(broadcast): cleanup avg gas price calculation (#13509)

* chore(deps): weekly `cargo update` (#13513)

Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* feat(common): generic `TransactionReceiptWithRevertReason` + pprinting (#13503)

* refactor: Use `fs::write_pretty_json_file` in `MultiChainSequence::save` (#13510)

* Update flake.lock (#13511)

flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/d0555da' (2026-02-14)
  → 'github:nix-community/fenix/6d86ae5' (2026-02-21)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/bbc84d3' (2026-02-13)
  → 'github:rust-lang/rust-analyzer/46a214b' (2026-02-20)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2343bbb' (2026-02-11)
  → 'github:NixOS/nixpkgs/d1c15b7' (2026-02-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix(sol-macro-gen): correct identifier check in write_mod_name (#13508)

* chore(deps): bump DeterminateSystems/update-flake-lock from a135ea602656a8348c5c34887131dd9f7a28bd8c to 5909792a83875ddb5dd4b18734534a98a74a709c (#13524)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump taiki-e/install-action from 2.68.0 to 2.68.8 (#13523)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump DeterminateSystems/determinate-nix-action from 3.15.2 to 3.16.1 (#13522)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(anvil): prevent panic in `utc_from_secs`  for out-of-range timestamps (#13520)

* ci(release): revert action-gh-release to v2.4.2 (#13527)

* ci: ignore softprops/action-gh-release in dependabot (#13528)

* chore(deps): bump DeterminateSystems/determinate-nix-action from 3.16.1 to 3.16.3 (#13529)

chore(deps): bump DeterminateSystems/determinate-nix-action

Bumps [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) from 3.16.1 to 3.16.3.
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](https://github.com/determinatesystems/determinate-nix-action/compare/681d8e8bfdb5d7af56f113ba2425b1fb00ec9edc...73327eb48f028efaaf5013656ba216ca3cdeca7b)

---
updated-dependencies:
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.16.3
  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>

* feat(primitives): add `FoundryTransactionBuilder` trait (#13512)

Co-authored-by: figtracer <1gusredo@gmail.com>

* fix(wallets): use turnkey_unsupported() instead of hardcoded error (#13535)

* chore(deps): bump taiki-e/install-action from 2.68.8 to 2.68.9 (#13534)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.68.8 to 2.68.9.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/cfdb446e391c69574ebc316dfb7d7849ec12b940...7f491e26f71f4ec2e6902c7c95c73043f209ab79)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.68.9
  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>

* fix(anvil): preserve original error in update_url (#13531)

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>

* fix: swap incorrect doc comments for archive RPC URL functions in rpc. (#13480)

* Allow verifier-url for unknown Etherscan chains (#13079)

Co-authored-by: Mayank Sharma <82099885+codersharma2001@users.noreply.github.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* fix: remove unused `no_storage_caching()` method from `NodeConfig` (#13487)

* fix: remove code duplication in `get_runtime_codes` (#13502)

* forge: avoid repeated selector decoding in find command (#13516)

* fix(cli): Git::is_repo_root always returns false (#13505)

* fix(verify): remove unused functions from `VerificationContext` (#13481)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* add missing doc section keys to config validation (#13447)

* fix(anvil): use EIP-2718 encoding for OP enveloped_tx (#13537)

* fix: correct flag name in error message from --compiler-version to --… (#13539)

* chore(ci): unblock ci, fix clippy lint (#13543)

* add lint-fix

* fix: resolve nightly clippy warnings

- collapsible_match: collapse plain if into match guards, allow for if-let
- iter_kv_map: use .values()/.keys() instead of .iter().flat_map(|(_, v)| v)
- useless_conversion: remove unnecessary .into_iter()

Amp-Thread-ID: https://ampcode.com/threads/T-019c9930-51be-760a-b2c7-9a029f851fee
Co-authored-by: Amp <amp@ampcode.com>

* fix: add missing match arm for Occupied entry in remappings

Amp-Thread-ID: https://ampcode.com/threads/T-019c99a5-39f3-72be-ad16-e7d041662ea9
Co-authored-by: Amp <amp@ampcode.com>

* fix: revert incorrect .values() call on Vec in runner

Amp-Thread-ID: https://ampcode.com/threads/T-019c99a5-39f3-72be-ad16-e7d041662ea9
Co-authored-by: Amp <amp@ampcode.com>

* fix: resolve irrefutable let pattern warning in MultiForkHandler

Amp-Thread-ID: https://ampcode.com/threads/T-019c99a5-39f3-72be-ad16-e7d041662ea9
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Amp <amp@ampcode.com>

* refactor(wallets): browser wallet generic `Network` (#13550)

* fix(anvil): use individual tx gas instead of cumulative in fee history (#13552)

* fix(anvil): clear tx pool on anvil_reset (#13544)

* add EIP-3860 initcode size check in txpool validation (#13473)

* fix: clarify Anvil storage caching builder naming (#13546)

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>

* refactor(evm): remove dead BackendError::Other variant (#13553)

* fix(script): actually skip Vyper contract verification (#13484)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* feat(doc): Adding new 'Constants' section for constants and immutables (#13116)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>

* fix(evm): avoid wrong CowBackend initialization in load_allocs and clone_account (#13554)

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: use `fs::write_pretty_json_file` in `ScriptSequence::save` (#13562)

* fix(forge): apply --access-list in forge create (#13557)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* Update flake.lock (#13564)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>

* chore(deps): weekly `cargo update` (#13565)

Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com>

* fix(cast): correct max_int boundary check for uint255 (#13568)

* fix(fmt): correct total_difficulty attribute name (#13578)

* chore(evm): use `AnyRpcTransaction` in `configure_tx_env`/`commit_transaction` (#13572)

* feat(evm): add `AsEnvMut::set_env` (#13573)

* fix(fmt): don't inline while/for/if blocks with multiple statements (#13566)

* refactor(cheatcodes,evm): use ContextTr read accessors for env fields (#13582)

Co-authored-by: Amp <amp@ampcode.com>

* chore(evm): simplify `CowBackend` init logic by using `Option<SpecId>` (#13584)

* feat(anvil): add EIP-2935 blockhash histo…
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.

bug: release workflow failed

1 participant