Skip to content

Commit b6f27b0

Browse files
Dargon789zerosnacksgrandizzyampcode-commattsse
authored
Hardhat project (#378)
* 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…
1 parent cc693d3 commit b6f27b0

File tree

342 files changed

+18034
-9889
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

342 files changed

+18034
-9889
lines changed

.circleci/ci_deploy.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
version: 2.1
2+
3+
jobs:
4+
say-hello:
5+
docker:
6+
- image: cimg/base:current
7+
8+
steps:
9+
- checkout
10+
- run:
11+
name: "Say hello"
12+
command: "echo Hello, World!"
13+
14+
workflows:
15+
say-hello-workflow:
16+
jobs:
17+
- say-hello
18+
19+
- run:
20+
name: Plan a deploy
21+
command: |
22+
circleci run release plan \
23+
--environment-name="<environment-name>" \
24+
--component-name="<component-name>" \
25+
--target-version="<some-version-name>"
26+
# Your job here doing the actual deployment
27+
- run:
28+
name: Update a deploy to SUCCESS
29+
command: circleci run release update --status=SUCCESS
30+
when: on_success
31+
- run:
32+
name: Update planned deploy to FAILED
33+
command: circleci run release update --status=FAILED
34+
when: on_fail
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: "bug: flaky tests workflow failed"
3+
labels: P-normal, T-bug
4+
---
5+
6+
The nightly flaky tests workflow has failed. This indicates external API rate limiting, RPC reliability issues, or other intermittent failures that may affect users.
7+
8+
Check the [flaky tests workflow page]({{ env.WORKFLOW_URL }}) for details.
9+
10+
This issue was raised by the workflow at `.github/workflows/test-flaky.yml`.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: "bug: flaky tests workflow failed (isolate)"
3+
labels: P-normal, T-bug
4+
---
5+
6+
The nightly flaky tests workflow (with isolation mode enabled) has failed. This indicates external API rate limiting, RPC reliability issues, or other intermittent failures that may affect users.
7+
8+
Check the [flaky tests workflow page]({{ env.WORKFLOW_URL }}) for details.
9+
10+
This issue was raised by the workflow at `.github/workflows/test-isolate.yml`.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: "bug: test-isolate workflow failed"
3+
labels: P-high, T-bug
4+
---
5+
6+
The daily test-isolate workflow (tests with isolation mode enabled) has failed. This indicates a regression in Foundry's test isolation behavior.
7+
8+
Check the [test-isolate workflow page]({{ env.WORKFLOW_URL }}) for details.
9+
10+
This issue was raised by the workflow at `.github/workflows/test-isolate.yml`.

.github/dependabot.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ updates:
44
directory: "/"
55
schedule:
66
interval: "weekly"
7+
ignore:
8+
- dependency-name: "softprops/action-gh-release"

.github/workflows/benchmarks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ env:
2929
jobs:
3030
run-benchmarks:
3131
name: Run All Benchmarks
32-
runs-on: foundry-runner
32+
runs-on: depot-ubuntu-24.04-32
3333
permissions:
3434
contents: write
3535
steps:
@@ -137,7 +137,7 @@ jobs:
137137
run: ./.github/scripts/commit-and-read-benchmarks.sh benches "${{ github.event_name }}" "${{ github.repository }}"
138138

139139
- name: Upload benchmark results as artifacts
140-
uses: actions/upload-artifact@v6
140+
uses: actions/upload-artifact@v7
141141
with:
142142
name: benchmark-results
143143
path: |

.github/workflows/bump-forge-std.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: Fetch and update forge-std tag
2424
run: curl 'https://api.github.com/repos/foundry-rs/forge-std/tags' | jq '.[0].commit.sha' -jr > testdata/forge-std-rev
2525
- name: Create pull request
26-
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v7
26+
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
2727
with:
2828
commit-message: "chore: bump forge-std version used for tests"
2929
title: "chore(tests): bump forge-std version"

.github/workflows/ci.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ name: CI
33
permissions: {}
44

55
on:
6+
push:
7+
branches: [master]
68
pull_request:
7-
merge_group:
89

910
concurrency:
1011
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -58,7 +59,7 @@ jobs:
5859
- uses: actions/checkout@v6
5960
with:
6061
persist-credentials: false
61-
- uses: crate-ci/typos@bb4666ad77b539a6b4ce4eda7ebb6de553704021 # v1
62+
- uses: crate-ci/typos@57b11c6b7e54c402ccd9cda953f1072ec4f78e33 # v1
6263

6364
shellcheck:
6465
runs-on: depot-ubuntu-latest
@@ -84,7 +85,7 @@ jobs:
8485
persist-credentials: false
8586
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
8687
with:
87-
toolchain: nightly-2026-01-10
88+
toolchain: nightly
8889
components: clippy
8990
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
9091
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
@@ -104,7 +105,7 @@ jobs:
104105
persist-credentials: false
105106
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
106107
with:
107-
toolchain: nightly-2026-01-10
108+
toolchain: nightly
108109
components: rustfmt
109110
- run: cargo fmt --all --check
110111

@@ -140,15 +141,15 @@ jobs:
140141
with:
141142
toolchain: stable
142143
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
143-
- uses: taiki-e/install-action@03ef6f57d573ca4522fb02950f326083373b85bf # v2
144+
- uses: taiki-e/install-action@edba51d32f66935a112c0516fec65a13d420cbc6 # v2
144145
with:
145146
tool: cargo-hack
146147
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
147148
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
148149
- run: cargo hack check
149150

150151
deny:
151-
uses: ithacaxyz/ci/.github/workflows/deny.yml@9c8d0dc20e7ad02455d3fdab2378a05f29907630 # main
152+
uses: tempoxyz/ci/.github/workflows/deny.yml@268b3ce142717ff86c58fbbcc3abc3f109f0fb8d # main
152153
permissions:
153154
contents: read
154155

.github/workflows/docker-publish.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
# Login against a Docker registry except on PR
4545
# https://github.com/docker/login-action
4646
- name: Login into registry ${{ env.REGISTRY }}
47-
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3
47+
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
4848
with:
4949
registry: ${{ env.REGISTRY }}
5050
username: ${{ github.actor }}
@@ -65,15 +65,24 @@ jobs:
6565
- name: Finalize Docker Metadata
6666
id: docker_tagging
6767
run: |
68+
TAG="${{ inputs.tag_name }}"
69+
REGISTRY="${{ env.REGISTRY }}"
70+
IMAGE="${{ env.IMAGE_NAME }}"
71+
6872
if [[ "${{ github.event_name }}" == "schedule" ]]; then
6973
printf "cron trigger, assigning nightly tag\n"
70-
printf "docker_tags=%s/%s:nightly,%s/%s:nightly-%s\n" "${{ env.REGISTRY }}" "${{ env.IMAGE_NAME }}" "${{ env.REGISTRY }}" "${{ env.IMAGE_NAME }}" "$GITHUB_SHA" >> "$GITHUB_OUTPUT"
74+
printf "docker_tags=%s/%s:nightly,%s/%s:nightly-%s\n" "$REGISTRY" "$IMAGE" "$REGISTRY" "$IMAGE" "$GITHUB_SHA" >> "$GITHUB_OUTPUT"
7175
elif [[ "${GITHUB_REF##*/}" == "main" ]] || [[ "${GITHUB_REF##*/}" == "master" ]]; then
7276
printf "manual trigger from master/main branch, assigning latest tag\n"
73-
printf "docker_tags=%s/%s:%s,%s/%s:latest\n" "${{ env.REGISTRY }}" "${{ env.IMAGE_NAME }}" "${GITHUB_REF##*/}" "${{ env.REGISTRY }}" "${{ env.IMAGE_NAME }}" >> "$GITHUB_OUTPUT"
77+
printf "docker_tags=%s/%s:%s,%s/%s:latest\n" "$REGISTRY" "$IMAGE" "${GITHUB_REF##*/}" "$REGISTRY" "$IMAGE" >> "$GITHUB_OUTPUT"
78+
elif [[ "$TAG" =~ ^v([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
79+
MAJOR="v${BASH_REMATCH[1]}"
80+
MINOR="v${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
81+
printf "version tag release, assigning %s, %s, and %s tags\n" "$TAG" "$MINOR" "$MAJOR"
82+
printf "docker_tags=%s/%s:%s,%s/%s:%s,%s/%s:%s\n" "$REGISTRY" "$IMAGE" "$TAG" "$REGISTRY" "$IMAGE" "$MINOR" "$REGISTRY" "$IMAGE" "$MAJOR" >> "$GITHUB_OUTPUT"
7483
else
7584
printf "Neither scheduled nor manual release from main branch. Just tagging as branch name\n"
76-
printf "docker_tags=%s/%s:%s\n" "${{ env.REGISTRY }}" "${{ env.IMAGE_NAME }}" "${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
85+
printf "docker_tags=%s/%s:%s\n" "$REGISTRY" "$IMAGE" "${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
7786
fi
7887
7988
# Log docker metadata to explicitly know what is being pushed
@@ -83,10 +92,10 @@ jobs:
8392
printf "LABELS -> %s\n" "${{ steps.meta.outputs.labels }}"
8493
8594
- name: Set up Depot CLI
86-
uses: depot/setup-action@b0b1ea4f69e92ebf5dea3f8713a1b0c37b2126a5 # v1
95+
uses: depot/setup-action@15c09a5f77a0840ad4bce955686522a257853461 # v1
8796

8897
- name: Build and push Foundry image
89-
uses: depot/build-push-action@9785b135c3c76c33db102e45be96a25ab55cd507 # v1
98+
uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1
9099
with:
91100
build-args: |
92101
RUST_PROFILE=${{ env.RUST_PROFILE }}

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
persist-credentials: false
3030
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
3131
with:
32-
toolchain: nightly-2026-01-10
32+
toolchain: nightly
3333
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
3434
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
3535
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2

0 commit comments

Comments
 (0)