Skip to content

Main#585

Open
Dargon789 wants to merge 802 commits into
masterfrom
main
Open

Main#585
Dargon789 wants to merge 802 commits into
masterfrom
main

Conversation

@Dargon789
Copy link
Copy Markdown
Owner

@Dargon789 Dargon789 commented Jun 6, 2026

Motivation

Solution

PR Checklist

  • Added Tests
  • Added Documentation
  • Breaking changes

Summary by Sourcery

Harden filesystem and configuration handling, add Tempo wallet/keychain support, extend linting and config schema tooling, introduce a sample Foundry counter project, and add multiple CI/CD and container-related workflows and configs.

New Features:

  • Add Tempo wallet access-key integration and signing utilities.
  • Introduce a generic linting framework over the Solidity AST and a new config schema crate for Foundry.
  • Add a sample Foundry counter project with contracts, tests, scripts, docs, and CI.
  • Add detection of TTY for test utilities and a new Cancun beacon block trace CLI test.

Bug Fixes:

  • Constrain test utility filesystem operations to a safe temp directory and prevent directory traversal and symlink escapes when copying and cleaning files.
  • Ensure removal of test failure files and temp directories only occurs within validated project or temp roots.
  • Avoid divide-by-zero in nightly comparison script and correct RNG API usage in EVM corpus mutation logic.
  • Fix forge test suite duration aggregation and misc logic issues in lints, script simulation, and RPC batch error handling.

Enhancements:

  • Refine config handling for test failures to respect project root boundaries and canonical paths.
  • Tighten handling of temporary project cleanup and script file copying with path validation and canonicalization.
  • Update cheatcode schema docs and cargo aliases, and adjust miner alignment struct and comments utilities.
  • Add convenience From<Vec> conversion for doc comments and adjust forge test gating.

Build:

  • Add new workspace dependencies for primitives, network, hardforks, tempo, and schema generation across crates.

CI:

  • Add multiple CI/CD workflows for Docker builds, static site deploys, CodeQL, Snyk, API security scans, Google Cloud/GKE deploys, and CircleCI Rust/Foundry pipelines.

Documentation:

  • Add shared documentation styles and scripts for generated docs and a README for the sample counter project.

Tests:

  • Add a new Cancun beacon block trace CLI test, a cheatcodes filesystem safety test improvement, and CI coverage for the new counter project.

Chores:

  • Vendor Remix test helper contracts and various project config files (gitmodules, sandbox, snapshots, remappings, locks, schemas, and placeholders).

Dargon789 and others added 30 commits March 6, 2026 13:21
… in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
… in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
* fix: compare sign github passkey (#132)

* Create config.yml (#114)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* chore(deps): bump github/codeql-action from 3 to 4 (#113)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

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

Bumps [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) from 3.11.2 to 3.11.3.
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](DeterminateSystems/determinate-nix-action@dbda91f...762d7fd)

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

* chore(deps): bump crate-ci/typos from 1.38.0 to 1.38.1 (#112)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.38.0 to 1.38.1.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@83157de...80c8a49)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.38.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* chore(deps): bump softprops/action-gh-release from 2.3.4 to 2.4.1 (#110)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.3.4 to 2.4.1.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@62c96d0...6da8fa9)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* chore(deps): bump taiki-e/install-action from 2.62.21 to 2.62.28 (#109)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.21 to 2.62.28.
- [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@522492a...e7ef886)

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

* Update test.yml (#115)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update config.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Foundry/master (#122)

* Create ci_cargo.yml (#72)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update and rename config.yml to ci.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Rename ci_cargo.yml to ci_v1.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update .circleci/ci_v1.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update and rename config.yml to ci_deploy.yml (#123)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create snyk-container.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update and rename ci.yml to ci-say-hello.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.ym (#128)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* chore(deps): bump alloy-dyn-abi in the cargo group across 1 directory (#129)

Bumps the cargo group with 1 update in the / directory: [alloy-dyn-abi](https://github.com/alloy-rs/core).


Updates `alloy-dyn-abi` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md)
- [Commits](alloy-rs/core@v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: alloy-dyn-abi
  dependency-version: 1.4.1
  dependency-type: direct:production
  dependency-group: cargo
...

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

* Create cargo.yml (#74) (#130)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Fix typo in CircleCI config file name

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update .circleci/config.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update .circleci/config.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/cargo.yml (#181)

CI Configuration Removal: The .circleci/cargo.yml file, which defined specific CircleCI jobs for building and testing Rust code, has been completely removed from the repository.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update config.yml (#212)

This pull request updates the CircleCI configuration by correcting a repository URL in a comment and fixing a job name by removing a trailing hyphen. These are good fixes. However, the job name web3-defi-game-project itself appears to be a leftover from another project and is not descriptive. I've added a comment suggesting a rename to improve maintainability. For the same reason, you might also consider renaming the workflow my-custom-workflow to something more descriptive of what it does.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci-say-hello.yml (#320)

bug

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_v1.yml (#321)

* Delete .circleci/ci-say-hello.yml

bug 

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_v1.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_deploy.yml (#322)

clean vercel block account api app next react

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update snyk-container.yml (#323)

Dargon789/hardhat-project@92a3e1c

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

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

This reverts commit 87dd517.

* Potential fix for code scanning alert no. 132: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 154: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 172: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
* fix: update EtherlinkTestnet -> EtherlinkShadownet for alloy-chains v0.2.31 (foundry-rs#13763)

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

* chore(evm): make `FoundryCfg` generic over `Spec` (foundry-rs#13757)

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

Updating git repository `https://github.com/alloy-rs/alloy`
    Updating git repository `https://github.com/alloy-rs/evm.git`
    Updating git repository `https://github.com/foundry-rs/optimism`
    Updating git submodule `https://github.com/flashbots/op-rbuilder`
    Updating git submodule `https://github.com/foundry-rs/forge-std`
    Updating git submodule `https://github.com/runtimeverification/kontrol-cheatcodes`
    Updating git submodule `https://github.com/ethereum-optimism/lib-keccak`
    Updating git submodule `https://github.com/dapphub/ds-test`
    Updating git submodule `https://github.com/vectorized/solady`
    Updating git submodule `https://github.com/OpenZeppelin/openzeppelin-contracts`
    Updating git submodule `https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable`
    Updating git submodule `https://github.com/OpenZeppelin/openzeppelin-contracts`
    Updating git submodule `https://github.com/a16z/erc4626-tests.git`
    Updating git submodule `https://github.com/safe-global/safe-contracts`
    Updating git submodule `https://github.com/vectorized/solady`
    Updating git submodule `https://github.com/transmissions11/solmate`
    Updating git submodule `https://github.com/ethereum-optimism/superchain-registry`
    Updating git submodule `https://github.com/flashbots/rollup-boost`
    Updating git repository `https://github.com/foundry-rs/foundry-fork-db`
    Updating git repository `https://github.com/paradigmxyz/revm-inspectors.git`
    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 submodule `https://github.com/foundry-rs/forge-std`
    Updating git submodule `https://github.com/vectorized/solady`
    Updating git submodule `https://github.com/tempoxyz/tempo-std`
    Updating git repository `https://github.com/stevencartavia/reth`
     Locking 31 packages to latest compatible versions
    Updating alloy-chains v0.2.30 -> v0.2.31
    Updating alloy-trie v0.9.4 -> v0.9.5
      Adding anstream v1.0.0
   Unchanged anstream v0.6.21 (available: v1.0.0)
    Updating anstyle v1.0.13 -> v1.0.14
    Updating anstyle-lossy v1.1.4 -> v1.1.5
      Adding anstyle-parse v1.0.0
    Updating bon v3.9.0 -> v3.9.1
    Updating bon-macros v3.9.0 -> v3.9.1
    Updating c-kzg v2.1.6 -> v2.1.7
    Updating cc v1.2.56 -> v1.2.57
    Updating clap v4.5.60 -> v4.6.0
    Updating clap_builder v4.5.60 -> v4.6.0
    Updating clap_complete v4.5.66 -> v4.6.0
    Updating clap_complete_nushell v4.5.10 -> v4.6.0
    Updating clap_derive v4.5.55 -> v4.6.0
    Updating clap_lex v1.0.0 -> v1.1.0
    Updating colorchoice v1.0.4 -> v1.0.5
    Updating console v0.16.2 -> v0.16.3
    Removing darling v0.21.3
    Removing darling_core v0.21.3
    Removing darling_macro v0.21.3
    Updating derive-where v1.6.0 -> v1.6.1
    Updating evmole v0.8.2 -> v0.8.4
   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 kasuari v0.4.11 -> v0.4.12
   Unchanged matchit v0.8.4 (available: v0.8.6)
    Updating once_cell v1.21.3 -> v1.21.4
   Unchanged op-revm v15.0.0 (available: v17.0.0)
    Updating portable-atomic-util v0.2.5 -> v0.2.6
   Unchanged quick-junit v0.5.2 (available: v0.6.0)
   Unchanged rand v0.8.5 (available: v0.10.0)
   Unchanged rand v0.9.2 (available: v0.10.0)
   Unchanged revm v34.0.0 (available: v36.0.0)
    Updating schannel v0.1.28 -> v0.1.29
    Updating serde_with v3.17.0 -> v3.18.0
    Updating serde_with_macros v3.17.0 -> v3.18.0
   Unchanged snapbox v0.6.24 (available: v1.1.0)
   Unchanged soldeer-commands v0.10.0 (available: v0.10.1)
   Unchanged soldeer-core v0.10.0 (available: v0.10.1)
   Unchanged strum v0.27.2 (available: v0.28.0)
    Updating tempfile v3.26.0 -> v3.27.0
    Updating tinyvec v1.10.0 -> v1.11.0
   Unchanged toml v0.9.12+spec-1.1.0 (available: v1.0.6+spec-1.1.0)
   Unchanged toml_edit v0.24.1+spec-1.1.0 (available: v0.25.4+spec-1.1.0)
    Updating tracing-subscriber v0.3.22 -> v0.3.23
    Updating zerocopy v0.8.41 -> v0.8.42
    Updating zerocopy-derive v0.8.41 -> v0.8.42
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: Matthias Seitz <matthias.seitz@outlook.de>

* feat(cheatcodes): bubble-up `Network` generic to `Wallets` (foundry-rs#13768)

* feat(script): generic `TxStatus` receipt type (foundry-rs#13770)

feat(script): generic `TxStatus`

* chore(script): idiomatic `BroadcastReader::into_tx_receipts` (foundry-rs#13771)

* refactor(evm): simplify `Backend::initialize` and `CowBackend::backend_mut` (foundry-rs#13755)

`initialize` now takes `(SpecId, Address, TxKind)` instead of `&Env`,
since those are the only fields it reads. This removes the need for
`backend_mut` to clone `EvmEnv` — it only needs `&TxEnv` now, because
the `SpecId` already comes from `self.spec_id`.

Moves towards aligning with alloy-evm's BlockExecutor ownership model
where `EvmEnv` is block-scoped and `TxEnv` is tx-scoped.

* feat(cheatcodes): make `Cheatcodes` context-generic (foundry-rs#13767)

* feat(cheatcodes): make `Cheatcodes` context-generic

* fix: merge conflict

---------

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

* feat(cast): add `--network` flag to `cast tx` for network-specific raw encoding (foundry-rs#13745)

* feat(cast): add --network flag to `cast tx` for multi-network raw encoding

Replace the `FoundryNetwork`-based `transaction_raw` workaround with proper network selection via a new `--network` / `-n` CLI flag. This moves raw tx encoding back into `Cast::transaction` dispatching to the correct
provider (Ethereum, Optimism, or Tempo) based on the flag.

- Add `NetworkVariant` enum (Ethereum/Optimism/Tempo) in foundry-cli opts
- use it w/ `--network` through CastSubcommand::Tx and provider construction
- Add test for Tempo raw tx encoding (`tx_raw_tempo`)

* fix: network num args

* feat(cast): `block --raw` network selection (foundry-rs#13754)

* rebase PR 13745

* feat(cast): `block` for multi-network raw encoding

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

* fix: doctest

---------

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

* refactor(anvil): make mined_receipts generic (foundry-rs#13761)

* chore(evm): split `Executor::env` into `evm_env` and `tx_env` fields (foundry-rs#13773)

Split the getters/setters accordingly, and update all call sites.

* refactor(cheatcodes): `CheatcodesExecutor` generic  (foundry-rs#13774)

refactor(cheatcodes): make `CheatcodesExecutor<CTX>` use generic env types from `ContextTr`

Replace concrete `EvmEnv`/`TxEnv` in `with_fresh_nested_evm` with
`EvmEnv<<CTX::Cfg as Cfg>::Spec, CTX::Block>` and `CTX::Tx` to support
non-Eth networks. Add `FoundryContextTr` trait as fully generic
counterpart to the concrete `FoundryContextExt`. Remove unused
`clone_to_cfg_env`/`apply_cfg_env` from `FoundryCfg`.

* fix(anvil): flaky `test_trace_filter()` (foundry-rs#13764)

fix

* chore(cast): granular bounds on `Cast` (foundry-rs#13776)

* refactor(evm): `FoundryContextExt` generic types (foundry-rs#13778)

* fix(cheatcodes): create file in writeJson/writeToml 3-arg overload (foundry-rs#13777)

Closes foundry-rs#13775

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

* refactor(anvil): make EthApi generic over `N: Network` (foundry-rs#13751)

* refactor(anvil): make EthApi generic over N: Network

* rm todo comments

---------

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

* refactor(evm): move `CheatsCtxExt` trait to `foundry-evm-core` (foundry-rs#13781)

Previously `CheatsCtxExt` was defined in `foundry-cheatcodes`. Move it
to `foundry-evm-core`, and
rename it to `EthCheatCtx` to make clear it pins the context to
Ethereum-specific env types (`BlockEnv`/`TxEnv`/`CfgEnv`) as a
temporary alias during the transition to fully generic EVM and
cheatcodes.

* refactor(evm): make `NestedEvm` trait generic with associated types (foundry-rs#13782)

Add `Tx`, `Block`, and `Spec` associated types to `NestedEvm` so each
network can specify its own environment types. The trait remains
object-safe when used as `dyn NestedEvm<Tx = TxEnv, Block = BlockEnv,
Spec = SpecId>`.

Update `NestedEvmClosure` to pin the associated types to Eth types,
and set the concrete types in the `FoundryEvm` implementation.

* refactor(anvil): propagate `EthApi<N>` to all holders (foundry-rs#13783)

refactor(anvil): propagate EthApi<N> to all holders

* refactor(evm): rename `NestedEvmClosure` and move to `foundry-evm-core` (foundry-rs#13785)

refactor(evm): rename `NestedEvmClosure` to `EthNestedEvmClosure` and move to `foundry-evm-core`

* refactor(evm): remove `Env` abstraction from `Executor` impl (foundry-rs#13790)

* refactor(anvil): remove redundant  param (foundry-rs#13792)

* refactor(cheatcodes): tighten verbose bounds to `EthCheatCtx` (foundry-rs#13791)

* refactor(evm): remove `eth_*_mut()` from `FoundryContextExt` (foundry-rs#13789)

* feat(script): generic `TransactionWithMetadata` + generic pprinting `TransactionMaybeSigned` (foundry-rs#13795)

* refactor(evm): `DatabaseExt` generic over env types (foundry-rs#13797)

refactor(evm): make DatabaseExt generic over environment types

Add generic parameters with defaults to DatabaseExt:
`DatabaseExt<Spec = SpecId, Block = BlockEnv, Tx = TxEnv>`

This makes the trait generic over EVM environment types while remaining
fully backwards-compatible — all existing code uses the defaults.
Non-Ethereum networks (e.g. Tempo) can now implement DatabaseExt with
their own environment types.

9 method signatures updated: snapshot_state, revert_state,
create_select_fork, create_select_fork_at_transaction, select_fork,
roll_fork, roll_fork_to_transaction, transact, transact_from_tx.

* test(cast): mark flaky revert_reason_from and wildcard RPC-dependent tail (foundry-rs#13796)

* fix(anvil): reject invalid versioned_hashes in beacon blobs endpoint (foundry-rs#13787)

* fix(cheatcodes): prevent panic in expectRevert with empty bytes (foundry-rs#13769)

* fix(cheatcodes): prevent panic in expectRevert with empty bytes

When vm.expectRevert(bytes('')) catches a revert with non-empty data,
decode_error in alloy-dyn-abi panics on the empty expected_reason
(slice index out of range). Guard the decode_error call with a
length check.

Closes foundry-rs#13766

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* test: add regression test for expectRevert empty bytes panic

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* test: fix snapshot for expectRevert empty bytes regression test

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

---------

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

* refactor(evm): add `DB` associated type to `FoundryJournalExt` (foundry-rs#13799)

* refactor(evm): make DatabaseExt generic over environment types

Add generic parameters with defaults to DatabaseExt:
`DatabaseExt<Spec = SpecId, Block = BlockEnv, Tx = TxEnv>`

This makes the trait generic over EVM environment types while remaining
fully backwards-compatible — all existing code uses the defaults.
Non-Ethereum networks (e.g. Tempo) can now implement DatabaseExt with
their own environment types.

9 method signatures updated: snapshot_state, revert_state,
create_select_fork, create_select_fork_at_transaction, select_fork,
roll_fork, roll_fork_to_transaction, transact, transact_from_tx.

* refactor(evm): replace dyn DatabaseExt in FoundryJournalExt with associated type

Replace `&mut dyn DatabaseExt` return type in `FoundryJournalExt` with
an associated type `type DB: DatabaseExt`. This removes 3 uses of
`dyn DatabaseExt` while remaining backwards-compatible — `&mut DB`
auto-coerces to `&mut dyn DatabaseExt` at call sites that still need it.

`FoundryJournalExt` is never used as a trait object itself, so adding
the associated type has no object-safety impact.

---------

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

* feat(anvil): add `AnvilBlockExecutor` and `FoundryReceiptBuilder` (foundry-rs#13788)

feat(anvil): add AnvilBlockExecutor and FoundryReceiptBuilder

* fix(anvil): swap param order in get_next_block_blob_excess_gas to match callers (foundry-rs#13740)

* feat(script): `Network`-generic `ScriptSequence<N>` (foundry-rs#13803)

* fix(config): add symmetric serialization for FuzzDictionaryConfig usize fields (foundry-rs#13723)

* chore(evm): remove `Env::new_with_spec_id()` method (foundry-rs#13806)

* fix(install): clean up nested submodules when using --no-git (foundry-rs#13779)

* fix(install): clean up nested submodules when using --no-git

Fixes foundry-rs#13688

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019cf6ab-6839-70a9-98a9-289974db717b

* test: mark regression test as flaky_ instead of ignored

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* style: fix fmt

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019cf6ab-6839-70a9-98a9-289974db717b

---------

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

* refactor(evm): use associated types in `with_cloned_context` (foundry-rs#13802)

refactor(evm): use associated types in `with_cloned_context` closure signature

* refactor(evm): propagate env types through `FoundryJournalExt` (foundry-rs#13808)

* refactor(evm): simplify `FoundryCfg` to marker trait (foundry-rs#13810)

* feat(anvil): add `AnvilBlockExecutorFactory` (foundry-rs#13811)

* feat(script): `Network`-generic `ScriptSequenceKind<N>` (foundry-rs#13809)

* feature(evm): owned `Tx`/`Evm` getters and `Evm` setter for `FoundryContextExt` (foundry-rs#13812)

* chore(evm): remove `Env::{clone_evm_and_tx,apply_evm_and_tx}` methods (foundry-rs#13813)

* chore(evm): rename `InspectorExt` to `EthInspectorExt` (foundry-rs#13815)

* refactor(evm): add `Fork::backend()` accessor (foundry-rs#13817)

* refactor(evm): remove `Env` from `commit_transaction` and `replay_until` (foundry-rs#13816)

* feat(script): generic `BundledState` impl (foundry-rs#13825)

* chore: bump alloy chains (foundry-rs#13827)

* chore(evm): remove `Env` abstraction (foundry-rs#13826)

* chore(evm): remove `Env` abstraction  completely

* fix: nit

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

---------

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

* fix(macros): use correct index for tuple struct fields in ConsoleFmt (foundry-rs#13829)

* chore(evm): fix stale `Env` references in doc comments (foundry-rs#13828)

The combined `Env` wrapper struct was removed in foundry-rs#13826. Update
remaining doc comments that still reference it to use the current
`EvmEnv`/`TxEnv` names instead.

* refactor(anvil): wire `AnvilBlockExecutorFactory` into `Backend::mine_block` (foundry-rs#13814)

refactor(anvil): wire AnvilBlockExecutorFactory into Backend::mine_block

* feat(script): generic `ScriptTransactionBuilder` (foundry-rs#13830)

Remove hardcoded `Ethereum` default from `TransactionWithMetadata`, making
`ScriptTransactionBuilder`, `simulate_and_fill`, and broadcast reader calls
`Network`-generic. Cheatcode broadcast helpers now explicitly use Ethereum.

* fix(`foundryup`): bump foundryup version (foundry-rs#13832)

bump foundryup version

* fix(foundryup): tempo-foundry now ships all binaries (foundry-rs#13834)

nit

* chore(deps): bump taiki-e/install-action from 2.68.17 to 2.68.35 (foundry-rs#13821)

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

* chore(deps): bump oven-sh/setup-bun from 2.1.2 to 2.2.0 (foundry-rs#13819)

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

* chore(deps): bump Swatinem/rust-cache from 2.8.2 to 2.9.1 (foundry-rs#13818)

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

* chore(deps): bump crate-ci/typos from 1.43.5 to 1.44.0 (foundry-rs#13820)

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

* refactor(evm): backend env helpers generic (foundry-rs#13836)

Update `update_env_block` and `update_current_env_with_fork_env` to use
generic `FoundryBlock`/`FoundryTransaction` bounds and `BlockHeader` trait
methods via setters, replacing direct field access on `AnyRpcBlock`.

* refactor(anvil): rm `TransactionExecutor`, mv revm callers to `AnvilBlockExecutorFactory` (foundry-rs#13835)

refactor(anvil): rm , mv remai callers AnvilBlockExecutorFactory

* refactor(script): extract `BrowserSigner` from `MultiWallet` (foundry-rs#13839)

* refactor(anvil): mv `Backend` methods to generic impl, thread N through NodeConfig/spawn (foundry-rs#13840)

* refactor(anvil): extract `block_env_from_header` utility (foundry-rs#13838)

* chore(evm): clean-up `FoundryEvm` impl (foundry-rs#13844)

* feat(cheatcodes): add `currentFilePath` cheatcode (foundry-rs#13735)

* feat(cheatcodes): add `currentFilePath` cheatcode

Add `vm.currentFilePath()` that returns the source file path of the
currently running test or script contract, relative to the project root.

This enables contracts to locate sibling files (calldata JSONs,
markdown descriptions, configs) without hardcoding paths. A common
pattern in proposal/script repos is overriding a `dirPath()` function
with a hardcoded string — this cheatcode eliminates that boilerplate.

Implementation leverages `CheatsConfig::running_artifact` which already
tracks the entry-point `ArtifactId`. The `source` field is stripped of
the project root prefix to return a consistent relative path.

* fix: rustfmt

Amp-Thread-ID: https://ampcode.com/threads/T-019cfb9f-8fce-717d-b9de-fedd8ee7d555
Co-authored-by: Amp <amp@ampcode.com>

* fix: remove view from test functions, fix forge-fmt

Amp-Thread-ID: https://ampcode.com/threads/T-019cfba7-4986-77c6-9630-574261e9d580
Co-authored-by: Amp <amp@ampcode.com>

---------

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

* refactor(evm): simplify nested Evm handling (foundry-rs#13846)

refactor(evm): simplify nested EVM handling

- Replace `to_env()` (returning cfg+block+tx tuple) with `to_evm_env()` returning only `EvmEnv` (cfg+block), since tx is not needed by callers
- Remove unused `with_cloned_context` generic type parameter `R`
- Drop `set_tx` call in `with_cloned_context` since nested tx modifications should not propagate back to the outer context
- Remove `Evm` useless `db_mut`, `precompiles`, `precompiles_mut`, `inspector`, `inspector_mut` provideds methods reimplementations

* refactor(cheatcodes): extract fork env helper to reduce duplication (foundry-rs#13848)

Extract `fork_env_op` helper that handles the common pattern shared by
all fork-switching cheatcodes: clone EVM/tx env → run db operation →
write env back. Deduplicates 7 call sites (rollFork × 4, selectFork,
createSelectFork × 2).

* refactor(cheatcodes): `BroadcastableTransaction` network-agnostic (foundry-rs#13849)

refactor(cheatcodes): make BroadcastableTransaction network-agnostic

Remove the `Network` type parameter from `BroadcastableTransaction` by
storing raw EVM data (from, to, value, input, nonce, gas) as primitive
fields instead of wrapping `TransactionMaybeSigned<N>`.

This prevents the `Network` generic from leaking through `Cheatcodes`,
`RawCallResult`, and `ScriptResult`. The conversion to network-specific
types (`TransactionMaybeSigned<Ethereum>`) now happens in the script
layer (`simulate.rs`) at the point where transactions are handed off to
`ScriptTransactionBuilder`.

* feat(evm): generic `NestedEvmClosure` (foundry-rs#13850)

refactor(evm): generalize NestedEvmClosure with generic type params

Replace `EthNestedEvmClosure` (pinned to Eth types) with generic
`NestedEvmClosure<Tx, Block, Spec>` to support non-Eth networks.

* feat(evm): `FoundryContextExt` generic impl (foundry-rs#13857)

* feat(evm): wire Inspector and DatabaseExt Context generics (foundry-rs#13856)

* refactor(anvil): make `PendingTransaction` generic over tx type (foundry-rs#13854)

* chore(cheatcodes): remove `Cheatcodes` context generic (foundry-rs#13861)

* refactor(evm): delegate to alloy's `EthEvmFactory` in `new_evm_with_inspector` (foundry-rs#13860)

* chore: add `id` attributes to issue templates (foundry-rs#13864)

* chore: add `id` attributes to issue templates

Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d0b22-cf39-75b7-b3d7-9280780eecd5

* chore: add `id` attributes to required issue template fields only

Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d0b22-cf39-75b7-b3d7-9280780eecd5

---------

Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>

* refactor(evm): merge `FoundryJournalExt` into `FoundryContextExt` (foundry-rs#13863)

* refactor(evm): merge `FoundryJournalExt` into `FoundryContextExt`

* fix: failed merge

* fix(traces): fix verbosity trace mode and unify verbosity handling (foundry-rs#13859)

* fix(traces): use max instead of min for verbosity trace mode

Add regression tests for TraceMode::with_verbosity to ensure verbosity 5
raises the trace mode to at least Steps rather than lowering it.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-Authored-By: James Niken <155266991+dizer-ti@users.noreply.github.com>

* fix(traces): unify verbosity handling in TraceMode

with_verbosity now raises to RecordStateDiff at verbosity 5, matching
the documented behavior of -vvvvv (storage changes + backtraces).

This removes the separate with_state_changes(verbosity() > 4) call in
trace_mode() which used the global shell verbosity instead of the local
evm_opts.verbosity — these two values can diverge when --gas-report or
--flamegraph bumps evm_opts.verbosity to 3.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix(forge): only show backtraces at verbosity 5

Backtraces require opcode-level step recording which is expensive.
Gate backtrace display at verbosity >= 5 (-vvvvv) instead of >= 3,
matching the documented behavior and the step recording threshold.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* test(traces): comprehensive unit tests for TraceMode verbosity levels

Tests every verbosity level (0-5) × every TraceMode variant:
- verbosity 0-2: noop across all modes
- verbosity 3-4: raises to Call, never downgrades
- verbosity 5: raises to RecordStateDiff, never downgrades
- into_config correctness at each level (record_steps, record_state_diff)
- monotonicity invariant: with_verbosity never lowers any mode

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* test(traces): add integration test for backtrace verbosity levels

Runs the same failing test at verbosity 1, 3, 4, and 5 with snapshot
assertions to verify backtraces only appear at -vvvvv.

Removes the monotonicity unit test in favor of concrete integration
coverage.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix(traces): keep backtraces at verbosity >= 3, add source locations at 5

Backtraces are useful even without source locations — they show
contract/function names at -vvv/-vvvv. Source file locations are only
added at -vvvvv when step recording is enabled.

Updates integration test to assert all three behaviors:
- -vvv: backtrace with function names only
- -vvvv: same, plus setup traces
- -vvvvv: backtrace with source file:line:col locations

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* chore: fix rustfmt

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix(test): handle compiler warnings in snapshot

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix(test): add [staticcall] to snapshot for pure function

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* perf(traces): RecordStateDiff should not enable debug-level recording

RecordStateDiff now behaves as Steps + state diff, not Debug + state diff.
This avoids recording full stack snapshots (memcpy per opcode), memory
snapshots, and unfiltered opcode recording at -vvvvv.

Before: 50k opcodes → 50k step records with full stack copies (~16MB)
After: 50k opcodes → ~500 step records (JUMP/JUMPDEST only), no copies

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* test(traces): assert Debug mode config is unchanged

Locks in that Debug mode still enables full memory/stack snapshots,
returndata, immediate bytes, and unfiltered opcode recording —
ensuring the RecordStateDiff optimization doesn't affect the debugger
or cheatcode recording paths.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix(traces): state diff needs unfiltered opcodes for SLOAD/SSTORE

record_state_diff captures storage changes in the step() callback,
which only fires for recorded opcodes. With a JUMP/JUMPDEST filter,
SSTORE steps are skipped and state diffs are lost.

RecordStateDiff now disables the opcode filter (like before) but still
skips memory/stack snapshots — saving the expensive per-opcode memcpy.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* fix(test): update JSON fixture for RecordStateDiff config

Stack and memory snapshots are no longer recorded at -vvvvv since
RecordStateDiff now uses Steps-level config. These fields are null
in the JSON output instead of populated. Full debugger-level data
is still available via --debug.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

---------

Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: James Niken <155266991+dizer-ti@users.noreply.github.com>

* refactor(anvil): make Block generic over tx type (foundry-rs#13865)

* refactor(evm): `FoundryContextExt<Journal: JournalExt>` bound, use generic `Spec` in `EthCheatCtx` (foundry-rs#13866)

* refactor(evm): use `TxEnv` directly in `DatabaseExt` instead of `TransactionRequest` (foundry-rs#13867)

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

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

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

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

* fix(deps): bump to Foundry browser wallet version 0.2.0 (foundry-rs#13890)

bump to https://github.com/foundry-rs/foundry-browser-wallet/releases/tag/v0.2.0

* revert: "BroadcastableTransaction network-agnostic" (foundry-rs#13849) (foundry-rs#13891)

* perf(anvil): remove redundant clone in create_access_list (foundry-rs#13887)

* perf(evm): make `NestedEvm::to_evm_env` consuming to avoid useless clone (foundry-rs#13893)

Change `to_evm_env(&self)` to `to_evm_env(self)` so the implementation
can use `Evm::finish()` to destructure the EVM without an extra clone
of `cfg_env` and `block_env`.

Update `with_fresh_nested_evm` to return `EvmEnv` after consuming the
EVM post-closure, so callers no longer need to capture the env inside a
`NestedEvmClosure` (which only has `&mut dyn NestedEvm` and cannot call
a consuming method). Fix the `sub_inner` / `sub_evm_env` ordering in
`with_nested_evm` impls so the journal is cloned before `to_evm_env`
consumes the EVM.

* chore(common): consistency fix on  `TransactionMaybeSigned::to()` (foundry-rs#13895)

* feat(cheatcodes): Network/Evm generic `Cheatcodes` (foundry-rs#13894)

* feat(cheatcodes): Network/Evm generic `Cheatcodes`

* fix: tx create detection

* fix(ci): adapt to `TransactionMaybeSigned::to()` return type change (foundry-rs#13896)

* chore(cheatcodes): remove unused `cheats` param from `CheatcodesExecutor::console_log` (foundry-rs#13897)

* refactor(evm): remove `tx_env` param from EVM constructor helper (foundry-rs#13903)

Remove the `tx_env` parameter from `new_eth_evm_with_inspector`, `with_cloned_context`, and `with_fresh_nested_evm`. Instead of setting the transaction environment at EVM construction time (where it may become stale or be set redundantly), callers now pass the tx env directly to `evm.transact()` at execution time. This avoids some clones.

* chore: remove dead code `paths_config` and `log_status` from inspector stack (foundry-rs#13905)

chore: remove dead code in InspectorStackInner

Remove two unused methods:
- `InspectorStack::paths_config()`: zero callers across the codebase
- `InspectorStackInner::log_status()`: zero callers across the codebase

Also removes the now-unused `foundry_compilers::ProjectPathsConfig` import.

* chore: remove no-op `spec_id` reassignment in `Executor::clone_with_backend` (foundry-rs#13906)

chore: remove no-op spec_id reassignment in clone_with_backend

After cloning `self.evm_env`, `evm_env.cfg_env.spec` already equals
`self.spec_id()` (which simply returns `self.evm_env.cfg_env.spec`).
The reassignment is a no-op.

* feat(evm): `Backend` generic network (foundry-rs#13579)

* feat(evm): `Backend` generic over `Network`

* fix(evm): use `AnyNetwork` for fork env init to support non-standard chains

When forking non-standard EVM chains (e.g. Moonbeam, Arbitrum), their block headers may lack standard Ethereum fields like `mixHash`. Using the generic `N`-typed provider (defaulting to `Ethereum`) caused deserialization failures for these chains.

* feat(evm): add `TryAnyIntoTxEnv` trait for `AnyTxEnvelope` to `TxEnv` conversion

Introduces TryAnyIntoTxEnv trait in foundry-evm-core to replace the
TxEnv: FromRecoveredTx<N::TxEnvelope> bound on Backend<N>. This allows
Backend to default to AnyNetwork:

- TxEnvelope (Ethereum): delegates to FromRecoveredTx directly
- AnyTxEnvelope: extracts inner TxEnvelope via as_envelope(), then
  delegates to FromRecoveredTx; returns error for unknown tx types

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

* chore: fix `cargo deny` failure

---------

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

* refactor(evm): `NestedEvm` based on revm's `Evm` instead of alloy-evm (foundry-rs#13908)

* Add feature: `forge inspect <x> linearization` to see a Solidity contract's linearized inheritance (foundry-rs#13704)

* feat: Tempo wallet access key support for cast (foundry-rs#13909)

* refactor(script-sequence): rename misleading `opcode` field to `call_kind` (foundry-rs#13907)

* fix(fmt): swap valid_before/valid_after in TempoTransaction pretty print (foundry-rs#13910)

* fix(fmt): prefer header total_difficulty for totalDifficulty (foundry-rs#13919)

* feat(evm): `FoundryContextExt` impls for OP (foundry-rs#13925)

* refactor(evm): simplify `NestedEvm` trait by removing `Block` and `Spec` (foundry-rs#13933)

* refactor(evm): make `FoundryInspectorExt` generic over `CTX` and rename traits (foundry-rs#13922)

* refactor(evm): make `FoundryInspectorExt` generic over `CTX` and rename traits

Restructure the inspector extension traits for clarity and genericity:

- Rename FoundryInspectorExt -> InspectorExt: the context-free base trait providing Foundry-specific inspector methods (console logging, network config) without any Inspector<CTX> supertrait.
- Rename EthInspectorExt -> FoundryInspectorExt<CTX>: the combined trait that unifies Inspector<CTX> + InspectorExt. Generic over any CTX that implements FoundryContextExt, rather than being hardcoded to specific BLOCK/TX/SPEC type parameters with for<'a> HRTB baked in.
- Introduce EthEvmCtx<'db> type alias for the concrete Eth context (Context<BlockEnv, TxEnv, CfgEnv, &'db mut dyn DatabaseExt>), keeping usage sites concise.

This makes the trait hierarchy composable for multi-network support while keeping the Eth-specific default path ergonomic via the type alias during refactor.

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

* fix: use `EthEvmContext<DB>` instead of EthEvmCtx as default

---------

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

* fix(evm): restore `code_size_limit` config in `CfgEnv` (foundry-rs#13912)

`cfg_env()` unconditionally set `limit_contract_code_size = Some(usize::MAX)`,
ignoring the user's `code_size_limit` setting from foundry.toml. Use the
configured value when present, falling back to `usize::MAX` (disabled).

* perf(evm): remove unnecessary clones in do_call_end/do_create_end (foundry-rs#13913)

perf(evm): remove unnecessary clones in `do_call_end`/`do_create_end`

Both methods returned `CallOutcome`/`CreateOutcome` but all callers
discarded the return value — the outcome is already mutated in-place
via `&mut`. This removes the final `outcome.clone()` and changes the
early-return in the `#[ret]` macro from `then_some(outcome.clone())`
to `then(|| ())`, eliminating up to 2 clones per call/create end.

* fix(wallets): browser wallet CLI help heading formatting (foundry-rs#13876)

fix: browser wallet CLI help heading formatting

- Set proper help_heading on BrowserWalletOpts to use 'Wallet options - browser wallet' consistently
- Add next_help_heading to Erc20TxOpts to prevent transaction options from leaking into the browser wallet section

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

* feat(forge-script): Tempo access key support for forge script (foundry-rs#13917)

* refactor(anvil): encapsulate per-tx inspector lifecycle in `finish_transaction` (foundry-rs#13932)

* refactor(anvil): encapsulate per-tx inspector lifecycle in `finish_transaction`

Extract the repeated ~20-line drain-and-reset block from 3 locations
in the block mining loop into `AnvilInspector::finish_transaction()`.

The method prints traces/logs, drains the tracer into `Vec<CallTraceNode>`,
and reinstalls fresh tracer + log collector for the next transaction.

Introduces `InspectorTxConfig` to carry the print/tracing settings,
replacing direct field access into the inspector internals.

* style: fix rustfmt

* refactor(evm): generalize `TryAnyToTxEnv` trait over TxEnv + simplification (foundry-rs#13924)

* refactor(evm): generalize `TryAnyToTxEnv` trait over TxEnv + simplification

The old trait converted `TxEnvelope` (the consensus-layer type) into `TxEnv`, requiring callers to separately pass the sender address.  This was a leaky abstraction: the sender is already carried by the RPC transaction wrapper (TransactionResponse::from()), so callers had to extract it themselves before calling `try_into_tx_env`.

The new trait `TryAnyToTxEnv` is generic over the output TxEnv type and takes the full RPC transaction as receiver, which means:
  - Implementations for `alloy_rpc_types::Transaction` and `AnyRpcTransaction` can call ToTxEnv / FromRecoveredTx internally without leaking address handling to callers.
  - A new impl for `op_alloy_rpc_types::Transaction` produces `OpTransaction<TxEnv>`, enabling OP-stack fork replay without a separate code path.
  - `Backend<N>` now constrains `N::TransactionResponse: TryAnyToTxEnv<TxEnv>` instead of
    `N::TxEnvelope: TryAnyIntoTxEnv`, which is both more accurate and unlocks multi-network support.

* fix: docs

---------

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

* refactor(evm): simplify `replay_until` to use single `ForkDB` clone (foundry-rs#13931)

* refactor: simplify replay_until to use single ForkDB clone

Replace the per-transaction Backend + EVM creation in replay_until with
a single cloned ForkDB and one persistent EthEvm instance.

Before: for each tx in the block, commit_transaction would clone Fork +
JournaledState, spawn a new Backend (including MultiFork), create a new
FoundryEvm, transact, then apply_state_changeset. In a block with N
preceding transactions, this meant N full clones.

After: clone the fork's CacheDB once (SharedBackend is Arc-backed, so
only the local cache layer is duplicated), create one EthEvm via
EthEvmFactory, call transact_commit for each tx, then replace the fork's
DB and refresh journaled states once at the end.

Also:
- Remove unused tx_env parameter from replay_until
- Extract Fork::refresh_journaled_states helper to deduplicate the
  paired update_state calls in both replay_until and apply_state_changeset
- Remove unused NoOpInspector import

Amp-Thread-ID: https://ampcode.com/threads/T-019d2512-8074-72ac-92d8-e8f887911219
Co-authored-by: Amp <amp@ampcode.com>

* style: fix rustfmt

* refactor: simplify tx collection loop and remove stale comments

---------

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

* fix(evm): use try_any_to_tx_env in replay_until (foundry-rs#13938)

The merge of foundry-rs#13931 introduced a call to the old `try_into_tx_env`
method which was renamed to `try_any_to_tx_env` in foundry-rs#13924. This
fixes the docs CI build.

Amp-Thread-ID: https://ampcode.com/threads/T-019d2952-9ec2-76f9-8f90-b7b3735d4ce3

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

* chore(deps): bump taiki-e/install-action from 2.68.35 to 2.69.8 (foundry-rs#13915)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.68.35 to 2.69.8.
- [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@94a7388...7bc99ee)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.69.8
  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 DeterminateSystems/determinate-nix-action from 3.17.0 to 3.17.1 (foundry-rs#13914)

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

Bumps [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) from 3.17.0 to 3.17.1.
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](DeterminateSystems/determinate-nix-action@131015b...a18f73c)

---
updated-dependencies:
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.17.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* refactor(evm): simplify `FoundryContextExt` spec handling (foundry-rs#13935)

- Introduced `FoundryContextExt::Spec` type for convenience
- Removed complex bounds on `ContextTr::Cfg` using instead the new `Spec` type
- Simplified accordingly the rest of the code

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

* refactor(anvil): remove some intermediate `Env` wrappers, pass `EvmEnv` directly (foundry-rs#13941)

refactor(anvil): remove some intermediate Env wrapper, pass EvmEnv directly

Replace usage of the `Env` struct wrapper with direct `EvmEnv` references
in `new_eth_evm_with_inspector`, `validate_pool_transaction_for`, and
`validate_for`. The optimism flag is now passed explicitly as `is_optimism: bool`
instead of being extracted from `env.networks`. This eliminates unnecessary
`Env::new(...)` construction in several hot paths (block mining, pending block
simulation, tx replay) and simplifies the function signatures.

* refactor(anvil): remove Env from storage, call env, and executor APIs (foundry-rs#13942)

Continue the cleanup of the Env wrapper by passing EvmEnv directly in
remaining call sites:

- BlockchainStorage::new / Blockchain::new: drop the redundant spec_id
  parameter, derive it from evm_env.spec_id() instead
- build_call_env: return (EvmEnv, OpTransaction<TxEnv>) instead of Env,
  consumers destructure and use directly
- new_eth_evm_with_inspector_ref: accept &EvmEnv instead of &Env, derive
  is_optimism from self.is_optimism()
- build_tx_env_for_pending: take is_optimism: bool instead of
  NetworkConfigs + &EvmEnv
- inspect_tx / replay_block_transactions_with_inspector: extract only
  evm_env from next_env(), avoid cloning the whole Env
- api.rs: use spec_id() / chain_id() helpers instead of digging into
  env.evm_env.cfg_env fields directly
- Various minor cleanups: inline single-use env write guards, use
  self.chain_id() / self.spec_id() helpers consistently

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
Co-authored-by: Mablr <59505383+mablr@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: figtracer <1gusredo@gmail.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: stevencartavia <112043913+stevencartavia@users.noreply.github.com>
Co-authored-by: Suuuuuuperrrrr fred <FredrikaPhililip@proton.me>
Co-authored-by: Nikki <gutonosa@protonmail.com>
Co-authored-by: James Niken <155266991+dizer-ti@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexandro T. Netto <56097505+alextnetto@users.noreply.github.com>
Co-authored-by: Alex Netto <alex@blockful.io>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Edgar Richards <eddgarrichards@gmail.com>
Co-authored-by: Red Swan <jared.swan@openzeppelin.com>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
Co-authored-by: anim001k <140460766+anim001k@users.noreply.github.com>
… sensitive information'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
…ed in path expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
…ed in path expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
…ed in path expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
* Update CircleCI config with comments and formatting

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update config.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update and rename ci-say-hello.yml to ci-web3-defi-gamefi.yml (#154)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci-web3-defi-gamefi.yml (#155)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_deploy.yml (#158)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/cargo.yml (#159)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* chore(deps): bump taiki-e/install-action from 2.62.31 to 2.62.33 (#162)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.31 to 2.62.33.
- [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/0005e0116e92d8489d8d96fbff83f061c79ba95a...e43a5023a747770bfcb71ae048541a681714b951)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.62.33
  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 actions/checkout from 4 to 5 (#163)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* Merge branch 'foundry-rs:master'  (#164)

* Create ci_cargo.yml (#72)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Rename ci_cargo.yml to cargo.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* fix(fmt): handle trailing coments between base contracts (#12127)

* fix(fmt): account for ternary operators when estimating size

* fix(fmt): handle comments between inherited base contracts

* test: layout + base inheritance

* feat(forge): add bypass prevrandao (#12125)

* feat(forge): add bypass prevrandao

* Update crates/evm/networks/src/lib.rs

Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>

* changes after review: remove duped code

---------

Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>

* fix(fmt): filter libs when recursing (#12119)

* fix(fmt): account for ternary operators when estimating size

* fix(fmt): filter libs when recursing

* style: clippy

* test: wipe contracts before formatting

* test: explicitly test ignore

* fix(fmt): break try stmts in a fn header-like fashion (#12131)

* chore(deps): bump softprops/action-gh-release from 2.3.4 to 2.4.1

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.3.4 to 2.4.1.
- [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/62c96d0c4e8a889135c1f3a25910db8dbe0e85f7...6da8fa9354ddfdc4aeace5fc48d7f679b5214090)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump taiki-e/install-action from 2.62.28 to 2.62.33 (#161)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.28 to 2.62.33.
- [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/e7ef886cf8f69c25ecef6bbc2858a42e273496ec...e43a5023a747770bfcb71ae048541a681714b951)

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

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(anvil): always disable nonce check (foundry-rs#12144) (#165)

* test: refactor testdata/ tests to be run in `forge test` (#12049)

* test: run forge test on testdata/

* chore: refactor to use common Test contract

* chore: disable testGasMeteringExternal, via-ir

* test: rm unused repros

* fix: paths

* upd

* fmt

* fix more tests

* test: turn testNonExistingContractRevert into expectRevert

* fix some more paths

* legacy assertions

* compile paris with paris

* fix: set configs for fs tests

* fix remaining paths in cheats

* restrict fs permissions

* fix: set runtime evm_version too

* fix vyper

* fix: a couple of repros

* fix: we have storage layouts

* fix: 3223, 3674: set sender

* reorder

* feat: move repros expected failures to snapshots

* feat: migrate remaining repros tests

* feat: rm migrated files

* skip testRevertIfGetUnlinked

* move expected core/ failures

* upd

* move logs/

* move all forgetest tests from it/ to cli/

* fix fork test

* move trace/

* tmp: move fuzz/invariant out of fuzz/

* move fuzz/

* forge fmt

* wips

* fix: both vyper and paris; set src/

* canon

* lib log

* logs

* Revert "fix: set runtime evm_version too"

This reverts commit 7ca544b10047f608d57c74fb3500a5fbe7e2650e.

Contract-level inline config will set evm version for libraries too,
which means we fail on deploying libraries that are compiled with
newer evm version.

* fix: set evm version where needed, per test function

* test: reduce gas wastage

* chore: clippy

* invariant mod.rs

* test: fix linking tests with new utils

* redact_with

* Revert "wips"

This reverts commit ee2c17a3023ca7ce8e7effccf0ea0a0f28f6e510.

* migrate invariant/target{,Abi}

* migrate InvariantAfterInvariant.t.sol

* migrate InvariantAssume.t.sol

* migrate InvariantCalldataDictionary.t.sol, more test utils

* migrate InvariantCustomError.t.sol

* migrate InvariantExcludedSenders.t.sol

* migrate InvariantFixtures.t.sol

* migrate InvariantHandlerFailure.t.sol

* interlude: forgot to use a new file

* migrate InvariantInnerContract.t.sol

* migrate InvariantPreserveState.t.sol

* migrate InvariantReentrancy.t.sol

* migrate InvariantRollFork.t.sol

* migrate InvariantScrapeValues.t.sol

* migrate InvariantSequenceNoReverts.t.sol

* migrate InvariantShrinkBigSequence.t.sol

* migrate InvariantShrinkFailOnRevert.t.sol

* migrate InvariantShrinkWithAssert.t.sol

* migrate InvariantTest1.t.sol

* fix InvariantInnerContract.t.sol

* update new Rlp test

* com

* better com

* nuke tests/it

* test: fix testdata paths in script tester

* test: fix relative paths in test_cmd

* test: redact more in issue_2851

* fix: copy testdata correctly

* trace addrs

* manual retry logic with --retry

* fix nondeterministic output

* debug: fs lock error context

* test: fix project root for windows

* test: skip project root test if unset

* normalize both

* typo

* Revert "typo"

This reverts commit 402bea105c6f38b82664b50ca854f95e456df795.

* Revert "debug: fs lock error context"

This reverts commit e5caeddd1e4cb457d7b24d7d7fdfdb370e2feabf.

* fix

* fix: locked_write_line for windows

* chore: clippy

* fmt

* chore: speed up fuzzed_selected_targets

* other way

* fix nondeterministic output 2

* fix: disable persistence

* test: revert old via-ir

* ci: tweak cache key

* do not run trace test when isolate

---------

Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com>

* fix(anvil): always disable nonce check (#12144)

* deps: bump deps (#12149)

* deps: bump deps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* minimum Cargo.lock

---------

Co-authored-by: rplusq <rplusq@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>

---------

Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com>
Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>
Co-authored-by: Rafael Quintero <32346241+rplusq@users.noreply.github.com>
Co-authored-by: rplusq <rplusq@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>

* Update test.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#167)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#168)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update cargo.yml (#171)

CI/CD Configuration Update: The CircleCI configuration file, cargo.yml, has been updated to use a newer version of the Rust Docker image.
Rust Toolchain Version Bump: The cimg/rust Docker image version has been incremented from 1.88.0 to 1.89.0, ensuring the CI pipeline utilizes a more recent Rust toolchain.

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_v1.yml (#173)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update cargo.yml (#174)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* chore(deps): bump taiki-e/install-action from 2.62.28 to 2.62.33 (#175)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.28 to 2.62.33.
- [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.62.28...e43a5023a747770bfcb71ae048541a681714b951)

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

* Delete .circleci/cargo.yml (#179)

I Configuration Removal: The .circleci/cargo.yml file, which defined CircleCI jobs for building and testing Rust projects, has been completely removed from the repository.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_v1.yml (#182)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update config.yml (#183)

Configuration File Cleanup: Removed an unnecessary blank line in the .circleci/config.yml file, improving its formatting and readability.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update config.yml (#187)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/config.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci directory

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update ci_v1.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update Rust Docker image version to 1.89.0

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 76: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* chore(deps): bump alloy-dyn-abi in the cargo group across 1 directory

Bumps the cargo group with 1 update in the / directory: [alloy-dyn-abi](https://github.com/alloy-rs/core).


Updates `alloy-dyn-abi` from 0.8.25 to 0.8.26
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/v0.8.26/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.8.25...v0.8.26)

---
updated-dependencies:
- dependency-name: alloy-dyn-abi
  dependency-version: 0.8.26
  dependency-type: direct:production
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>

* Create ci-web3-gamefi.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 74: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 83: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 93: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 76: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 94: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 80: Server-side request forgery

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 80: Server-side request forgery

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Create codeql.yml (#208)

* Update ci.yml (#209)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------
https://github.com/apps/gemini-code-assist
Code Review
This pull request updates the Rust version in the CI from 1.88.0 to 1.89.0. While this is a good maintenance step, I've identified a potential improvement for your CI configuration. The project's Cargo.toml specifies a Minimum Supported Rust Version (MSRV) of 1.86, but the CI doesn't test against it. I've added a comment suggesting the addition of an MSRV check to prevent compatibility issues.

* Update cargo.yml (#210)

https://github.com/apps/gemini-code-assist
-------------------
Code Review

This pull request downgrades the Rust version in the CI pipeline from 1.88.0 to 1.87.0. This is inconsistent with the project's declared Minimum Supported Rust Version (MSRV) of 1.89 in Cargo.toml. My review highlights this discrepancy and suggests aligning the CI's Rust version with the MSRV to ensure the project's compatibility guarantees are properly tested.

---------------
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Foundry rs maste 1f4b36a (#214)

* Create jekyll.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create docker-image.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 58: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update .github/workflows/docker-image.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update docker-image.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Revert "chore: fix isolate tests (#10344)"

This reverts commit 70ded2b35f95ee9b4ee94f5e44961914d30a87f7.

* Delete .github/workflows/jekyll.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 19: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update and rename docker-image.yml to docker.yml (#218)

Streamline the Docker CI workflow by renaming the file and enhancing it with scheduled runs, Buildx multi-platform builds, metadata tagging, conditional pushes, and automated image signing with Cosign.

CI:

Rename and replace the legacy docker-image.yml workflow with docker.yml
Add scheduled cron runs and triggers on pushes to master, semver tags, and PRs
Configure Docker Buildx for multi-platform builds with cache
Extract Docker metadata and conditionally push images to GHCR on non-PR events
Install Cosign and sign published Docker images using ephemeral identity tokens

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update ci.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Create docker-image.yml (#224)

CI:

Introduce docker-image.yml GitHub Actions workflow to checkout code and build Docker image on ubuntu-latest

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update config.yml (#225)

CI:

Insert comment lines to delineate and structure sections in .circleci/config.yml for enhanced clarity

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sequence.rs (#226)

Enhancements:

Add standalone # lines in sequence.rs to serve as hidden placeholders for rustdoc examples

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml (#227)

* Update dependencies.yml

Refactor the weekly dependencies workflow to inline cargo update steps, auto-generate commit messages and PR bodies with update logs, and use the create-pull-request action to open update PRs on a dedicated branch.

Enhancements:

Define environment variables for GitHub token, branch name, PR title, and PR body including cargo update logs
Inline checkout, Rust toolchain setup, and cargo update command with log cleanup instead of relying on an external workflow
Craft commit messages and PR bodies dynamically by capturing and formatting cargo update output
Use peter-evans/create-pull-request to push Cargo.lock updates to a 'cargo-update' branch

CI:

Move permissions and GitHub token configuration into the job context
Explicitly set the runner to ubuntu-latest and remove the top-level empty permissions block

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update .github/workflows/dependencies.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update npm.yml (#228)

CI:

Add comment to the Publish Binary step indicating it runs automatically after a successful release workflow or can be triggered manually with a run_id

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update snyk-container.yml (#229)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update nextest.yml (#230)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update const.ts (#231)

Code Formatting: Removed an extraneous blank line in npm/src/const.ts to improve code cleanliness and consistency.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Revert "Create web3_defi_gamefi.yml (#61)" (#233)

This reverts commit 8575916b7675f246b54daf70cfddccb3f5b97fb0.

* Create deploy.yml (#240)

* Create deploy.yml
CI:

Add GitHub Actions workflow to build the Rust project, run tests, and build a Docker image on pushes to main/master
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 106: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Update dependencies.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml (#247)

Improve readability of the GitHub Actions dependencies workflow by adjusting whitespace and adding blank lines
CI:
Add blank line before the workflow name declaration
Insert blank line after the scheduled cron job entry
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml (#248)

CI:
Remove extraneous blank line in .github/workflows/dependencies.yml
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#249)

CI:
Remove dev branch from test workflow triggers
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update Cargo.lock (#253)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update Cargo.lock (#254)

Chores:
Regenerate Cargo.lock to update dependencies
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml (#255)

* Create config.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update .circleci/config.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update config.yml (#256)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* fix: upgrade tsdown from 0.15.12 to 0.16.1

Snyk has created this PR to upgrade tsdown from 0.15.12 to 0.16.1.

See this package in npm:
tsdown

See this project in Snyk:
https://app.snyk.io/org/dargon789/project/8da85645-409e-46fa-bd46-9b58e7905fb8?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr

* Create google.yml (#266)

CI:
Introduce a Google Cloud deployment workflow that builds a Docker image, pushes it to Artifact Registry, and deploys it to a GKE cluster on pushes to the main branches.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update flake.lock (#269)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update flake.nix (#270)

Adjust Nix flake development shell configuration for better cross-platform support and simplify dependencies.

Enhancements:

Remove the dprint dependency from the Nix development shell.
Add conditional AppKit framework linkage on Darwin systems in the Nix shell configuration.
Drop custom hardeningDisable settings from the Nix development shell definition.

https://github.com/apps/gemini-code-assist
Code Review
This pull request updates the Nix flake configuration to improve cross-platform support and simplify dependencies. The changes include removing dprint and hardeningDisable settings, and conditionally adding the AppKit framework for Darwin systems. While most changes are beneficial, removing dprint from the development shell dependencies while its configuration file remains could cause issues for contributors. I've added a comment regarding this potential inconsistency.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update Cargo.toml (#271)

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update nextest.toml (#272)

Adjust test runner configuration for nextest to better handle long-running and specific tests.

Enhancements:

Introduce a dedicated test group that limits chisel-serial tests to a single thread.
Increase the default slow-test timeout period to reduce premature terminations for longer-running tests.
Expand the slow-timeout override filter to include both ext_integration and can_test_forge_std tests.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dprint.json (#273)

(https://github.com/apps/gemini-code-assist)
Code Review
This pull request updates the dprint.json configuration file. The changes correctly enable formatting for dprint.json itself by modifying the excludes list, update the JSON and Markdown dprint plugins to their latest versions, and add a final newline to the file for POSIX compliance. These are all good maintenance improvements. The changes have been reviewed and appear to be correct and beneficial. No issues were found.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update .github/workflows/apisec-scan.yml

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update counter/README.md

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update .github/ISSUE_TEMPLATE/bug_report.md

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Dependabot/cargo/cargo 38744a1864 (#282)

* chore(deps): bump alloy-dyn-abi in the cargo group across 1 directory

Bumps the cargo group with 1 update in the / directory: [alloy-dyn-abi](https://github.com/alloy-rs/core).


Updates `alloy-dyn-abi` from 0.8.25 to 0.8.26
- [Release notes](https://github.com/alloy-rs/core/releases)
- [Changelog](https://github.com/alloy-rs/core/blob/v0.8.26/CHANGELOG.md)
- [Commits](https://github.com/alloy-rs/core/compare/v0.8.25...v0.8.26)

---
updated-dependencies:
- dependency-name: alloy-dyn-abi
  dependency-version: 0.8.26
  dependency-type: direct:production
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update and rename ci.yml to cargo.yml (#268)

Update CircleCI configuration to use a different Rust toolchain image and rename the workflow file.

Build:

Rename the CircleCI configuration file from ci.yml to cargo.yml.
Change the CircleCI Docker image to use Rust 1.78.0 instead of 1.88.0.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

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

* Fix cloning of compiler settings for Vyper input

Replace context.clone().compiler_settings.vyper with 
context.compiler_settings.vyper.clone() to avoid unnecessary 
cloning of the entire VerificationContext. This reduces memory 
allocations when creating VyperInput instances.

Applied to both etherscan and sourcify verification providers.

* Update config.yml (#283)

Summary by Sourcery
Update CircleCI pipeline to use a custom Docker executor and job tailored to the project instead of the example hello-world workflow.

Enhancements:

Introduce a reusable custom executor that pulls from the stable cimg/base Docker image with Docker Hub authentication.
CI:

Replace the sample say-hello job and workflow with a project-specific job and workflow wired to the new custom executor in .circleci/config.yml.
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* fix: use network-specific BaseFeeParams for Optimism in Anvil

* Dargon789 patch 1 (#285)

* Update test.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#167)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/ci_v1.yml (#173)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update cargo.yml (#174)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .circleci/config.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 74: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 83: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 93: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 76: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 94: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 80: Server-side request forgery

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update cargo.yml (#210)

https://github.com/apps/gemini-code-assist
-------------------
Code Review

This pull request downgrades the Rust version in the CI pipeline from 1.88.0 to 1.87.0. This is inconsistent with the project's declared Minimum Supported Rust Version (MSRV) of 1.89 in Cargo.toml. My review highlights this discrepancy and suggests aligning the CI's Rust version with the MSRV to ensure the project's compatibility guarantees are properly tested.

---------------
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Fix cloning of compiler settings for Vyper input

Replace context.clone().compiler_settings.vyper with 
context.compiler_settings.vyper.clone() to avoid unnecessary 
cloning of the entire VerificationContext. This reduces memory 
allocations when creating VyperInput instances.

Applied to both etherscan and sourcify verification providers.

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Gengar <creeptogengar@gmail.com>

* merge gh-master (#287)

* Create config.yml (#236)

Create .circleci/config.yml defining a version 2.1 pipeline with a docker-based "say-hello" job, checkout and echo steps, and a workflow to orchestrate it
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* fix(evm): use timestamp-based blob base fee calculation (#12959)

* fix(evm): use timestamp-based blob base fee calculation

* chore: use patch

* Now BPO1 is default

* bump to hardforks to 0.4.7

---------

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

* fix(config): reject bare versions in compilation restrictions (#12955)

fmt

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

* Revert "fix(config): err on unknown profile (#12946)" (#12964)

This reverts commit 6ff4b52e2e572e93d0cd81591b1bd0e6ad9ed507.

* Update crates/config/src/compilation.rs

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: cakevm <cakevm@proton.me>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Theodore Solis <gasgobling@gmail.com>
Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>
Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Foundry/ethereum ux (#284)

* Potential fix for code scanning alert no. 19: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 61: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 74: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml (#105)

* Create cargo.yml (#106)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .github/workflows/docker-image.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Revert "Create cargo.yml (#106)"

This reverts commit 251a2b4fce0c50e3426ffb2022d9abef5b948fa9.

* Create cargo.yml (#213)

https://github.com/apps/gemini-code-assist

Code Review
This pull request introduces a CircleCI workflow to automate formatting checks and tests. My review has identified two main issues in the configuration: redundant steps that would unnecessarily increase job execution time, and a mismatch between the Rust version in the CI environment and the one specified in the project's Cargo.toml. I've provided suggestions to fix these issues for a more efficient and consistent CI process.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Gamefi defi (#288)

* chore: ignore RUSTSEC-2025-0137 (#12941)

Co-authored-by: Claude <noreply@anthropic.com>

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

* chore(deps): weekly `cargo update`

    Updating git repository `https://github.com/rust-cli/rexpect`
    Updating git repository `https://github.com/paradigmxyz/solar.git`
    Skipping git submodule `https://github.com/argotorg/solidity.git` due to update strategy in .gitmodules
    Updating git repository `https://github.com/tempoxyz/tempo`
    Updating git repository `https://github.com/paradigmxyz/reth`
     Locking 71 packages to latest compatible versions
    Updating alloy-chains v0.2.23 -> v0.2.24
    Updating alloy-consensus v1.1.3 -> v1.2.1
    Updating alloy-consensus-any v1.1.3 -> v1.2.1
    Updating alloy-contract v1.1.3 -> v1.2.1
    Updating alloy-dyn-abi v1.5.1 -> v1.5.2
    Updating alloy-eip5792 v1.1.3 -> v1.2.1
    Updating alloy-eips v1.1.3 -> v1.2.1
    Updating alloy-ens v1.1.3 -> v1.2.1
    Updating alloy-genesis v1.1.3 -> v1.2.1
    Updating alloy-json-abi v1.5.1 -> v1.5.2
    Updating alloy-json-rpc v1.1.3 -> v1.2.1
    Updating alloy-network v1.1.3 -> v1.2.1
    Updating alloy-network-primitives v1.1.3 -> v1.2.1
    Updating alloy-primitives v1.5.1 -> v1.5.2
    Updating alloy-provider v1.1.3 -> v1.2.1
    Updating alloy-pubsub v1.1.3 -> v1.2.1
    Updating alloy-rpc-client v1.1.3 -> v1.2.1
    Updating alloy-rpc-types v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-anvil v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-any v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-beacon v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-debug v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-engine v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-eth v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-trace v1.1.3 -> v1.2.1
    Updating alloy-rpc-types-txpool v1.1.3 -> v1.2.1
    Updating alloy-serde v1.1.3 -> v1.2.1
    Updating alloy-signer v1.1.3 -> v1.2.1
    Updating alloy-signer-aws v1.1.3 -> v1.2.1
    Updating alloy-signer-gcp v1.1.3 -> v1.2.1
    Updating alloy-signer-ledger v1.1.3 -> v1.2.1
    Updating alloy-signer-local v1.1.3 -> v1.2.1
    Updating alloy-signer-trezor v1.1.3 -> v1.2.1
    Updating alloy-signer-turnkey v1.1.3 -> v1.2.1
    Updating alloy-sol-macro v1.5.1 -> v1.5.2
    Updating alloy-sol-macro-expander v1.5.1 -> v1.5.2
    Updating alloy-sol-macro-input v1.5.1 -> v1.5.2
    Updating alloy-sol-type-parser v1.5.1 -> v1.5.2
    Updating alloy-sol-types v1.5.1 -> v1.5.2
    Updating alloy-transport v1.1.3 -> v1.2.1
    Updating alloy-transport-http v1.1.3 -> v1.2.1
    Updating alloy-transport-ipc v1.1.3 -> v1.2.1
    Updating alloy-transport-ws v1.1.3 -> v1.2.1
    Updating alloy-trie v0.9.1 -> v0.9.2
    Updating alloy-tx-macros v1.1.3 -> v1.2.1
   Unchanged annotate-snippets v0.12.5 (available: v0.12.10)
   Unchanged anstyle-svg v0.1.11 (available: v0.1.12)
 Downgrading aws-smithy-runtime v1.9.6 -> v1.9.5
    Updating axum-core v0.5.5 -> v0.5.6
    Updating cc v1.2.50 -> v1.2.51
    Updating derive_more v2.1.0 -> v2.1.1
    Updating derive_more-impl v2.1.0 -> v2.1.1
    Updating dtoa v1.0.10 -> v1.0.11
    Updating find-msvc-tools v0.1.5 -> v0.1.6
   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 itoa v1.0.15 -> v1.0.17
    Updating jiff v0.2.16 -> v0.2.17
    Updating jiff-static v0.2.16 -> v0.2.17
    Updating libredox v0.1.11 -> v0.1.12
    Updating libz-rs-sys v0.5.4 -> v0.5.5
   Unchanged matchit v0.8.4 (available: v0.8.6)
   Unchanged mdbook v0.4.52 (available: v0.5.2)
    Updating portable-atomic v1.12.0 -> v1.13.0
    Updating proc-macro2 v1.0.103 -> v1.0.104
   Unchanged protobuf v3.3.0 (available: v3.7.2)
   Unchanged protobuf-support v3.3.0 (available: v3.7.2)
   Unchanged rand v0.8.5 (available: v0.9.2)
   Unchanged ratatui v0.29.0 (available: v0.30.0)
    Updating reqwest v0.12.26 -> v0.12.28
    Updating ruint v1.17.0 -> v1.17.1
    Updating rustix v1.1.2 -> v1.1.3
    Updating ryu v1.0.21 -> v1.0.22
    Updating schemars v1.1.0 -> v1.2.0
    Updating schemars_derive v1.1.0 -> v1.2.0
    Updating serde_json v1.0.145 -> v1.0.148
    Updating signal-hook-registry v1.4.7 -> v1.4.8
    Updating syn-solidity v1.5.1 -> v1.5.2
    Updating tempfile v3.23.0 -> v3.24.0
   Unchanged trezor-client v0.1.4 (available: v0.1.5)
   Unchanged unicode-width v0.2.0 (available: v0.2.2)
   Unchanged vergen v8.3.2 (available: v9.0.6)
    Updating zlib-rs v0.5.4 -> v0.5.5
      Adding zmij v1.0.0
note: to see how you depend on a package, run `cargo tree --invert <dep>@<ver>`

* touchups

* touchups

---------

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

* Update flake.lock (#12939)

flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/16642c5' (2025-12-20)
  → 'github:nix-community/fenix/3479aaf' (2025-12-27)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/ea1d299' (2025-12-18)
  → 'github:rust-lang/rust-analyzer/8c5a68e' (2025-12-26)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7d853e5' (2025-12-19)
  → 'github:NixOS/nixpkgs/3edc4a3' (2025-12-27)

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

* fix(chisel): uninitalized variables (#12937)

* chore(deps): bump Swatinem/rust-cache from 2.8.1 to 2.8.2 (#12919)

Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/swatinem/rust-cache/compare/f13886b937689c021905a6b90929199931d60db1...779680da715d629ac1d338a641029a2f4372abb5)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-version: 2.8.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: zerosnacks <95942363+zerosnacks@users.noreply.github.com>

* chore(deps): bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (#12918)

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

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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>

* chore: sepolia rpc url (#12945)

chore: sepolia rpc url private

* chore(deps): bump crate-ci/typos from 1.40.0 to 1.40.1 (#12949)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.40.0 to 1.40.1.
- [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/2d0ce569feab1f8752f1dde43cc2f2aa53236e06...1a319b54cc9e3b333fed6a5c88ba1a90324da514)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.40.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

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

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

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

---
updated-dependencies:
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* chore(deps): bump taiki-e/install-action from 2.65.1 to 2.65.7 (#12951)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.65.1 to 2.65.7.
- [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/b9c5db3aef04caffaf95a1d03931de10fb2a140f...4c6723ec9c638cccae824b8957c5085b695c8085)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.65.7
  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(config): err on unknown profile (#12946)

* test: remove duplicate Issue2851 test (#12953)

* chore(cheats): make sign(Wallet) pure (#12912)

* chore(cheats): make sign(Wallet) pure

* ignore

---------

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

* fix(evm): use timestamp-based blob base fee calculation (#12959)

* fix(evm): use timestamp-based blob base fee calculation

* chore: use patch

* Now BPO1 is default

* bump to hardforks to 0.4.7

---------

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

* fix(config): reject bare versions in compilation restrictions (#12955)

fmt

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

* Revert "fix(config): err on unknown profile (#12946)" (#12964)

This reverts commit 6ff4b52e2e572e93d0cd81591b1bd0e6ad9ed507.

* fix(anvil): use B256 instead of TxHash for block hash parameters (#12961)

Update mod.rs

* Update crates/config/src/compilation.rs

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>
Co-authored-by: cakevm <cakevm@proton.me>
Co-authored-by: Theodore Solis <gasgobling@gmail.com>
Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>
Co-authored-by: Desant pivo <pivasdesant@gmail.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Create ci-web3-gamefi.yml (#217) (#289)

Introduce a basic CircleCI pipeline for the web3 GameFi project, providing a custom Docker executor and a stub job within a workflow.

CI:

Add CircleCI config file ci-web3-gamefi.yml with version 2.1 pipeline
Define a custom executor using the cimg/base:stable Docker image with Docker Hub credentials
Create a web3-defi-game-project- job and integrate it into a my-custom-workflow

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Merge pull request #47 (#290)

* Add .circleci/config.yml

* Updated config.yml

* Updated config.yml

* Updated config.yml

* Update test.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 19: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#46)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* chore(deps): bump revm to 24.0.0 (#10601)

* feat: implement add_balance endpoint (#10636)

* fix(bindings): ensure forge bind generates snake_case file names (#10622)

* fix(bindings): ensure forge bind generates snake_case file names

* refactor: use heck crate for snake_case conversion

---------

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

* chore: standardize lint help + validate docs existance (#10639)

* feat(cast mktx): add support for "--ethsign" option (#10641)

- Sign transactions using "eth_signTransaction" on local node with unlocked accounts.
- Same TX building logic as in "cast send --unlocked".
- Added a test case to validate the new functionality.

* chore(wallets): improve error message for signer instantiation failure (#10646)

chore(wallets): improve error message on signer instantiation failure

* chore: replaced anvil hardforks with alloy hardforks (#10612)

* chore: replaced anvil hardforks with alloy hardforks

* fixes

* fixes

* fixes

* removed redundant op and alloy hardforks enum

* fixes

* fixes

* bumped alloy hardforks and kept default to prague and isthmus

* bumped alloy-hardforks and fixes

---------

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

* fix(`anvil`): latest evm version should be prague (#10653)

* fix(`anvil`): latest evm version should be prague

* fix test

* nit

* chore(deps): bump tracing-subscriber (#51)

Bumps the cargo group with 1 update in the / directory: [tracing-subscriber](https://github.com/tokio-rs/tracing).


Updates `tracing-subscriber` from 0.3.19 to 0.3.20
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.19...tracing-subscriber-0.3.20)

---
updated-dependencies:
- dependency-name: tracing-subscriber
  dependency-version: 0.3.20
  dependency-type: direct:production
  dependency-group: cargo
...

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

* Update test.yml (#52)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update docker-image.yml (#53)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create ci_cargo.yml (#59)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create web3_defi_gamefi.yml (#61)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 21: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml (#247)

Improve readability of the GitHub Actions dependencies workflow by adjusting whitespace and adding blank lines
CI:
Add blank line before the workflow name declaration
Insert blank line after the scheduled cron job entry
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies.yml (#248)

CI:
Remove extraneous blank line in .github/workflows/dependencies.yml
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#249)

CI:
Remove dev branch from test workflow triggers
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: pistomat <pistomat@users.noreply.github.com>
Co-authored-by: zark <77061323+zarkk01@users.noreply.github.com>
Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Co-authored-by: Mablr <59505383+mablr@users.noreply.github.com>
Co-authored-by: Ishika Choudhury <117741714+Rimeeeeee@users.noreply.github.com>
Co-authored-by: Yash Atreya <44857776+yash-atreya@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update crates/evm/evm/src/executors/corpus.rs

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Foundry/master test ux (#295)

* Update ci.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update ci.yml (#211)


This pull request updates the Rust version in the CircleCI workflow to 1.89.0. This is a good maintenance task to keep the CI environment up-to-date. I have one suggestion regarding the Docker image tag to potentially simplify future maintenance by automatically adopting patch releases. Overall, the change is correct and beneficial.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update test.yml (#250)

CI:
Include the 'main' branch in the push event triggers for the test workflow
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* fix(fmt): handle trailing coments between base contracts  (#296) (#299)

@0xrusowsky @Dargon789 fix(fmt): handle trailing coments between base contracts Revert 142 master (#296)

* Create ci_cargo.yml (#72)



* Create config.yml



* Rename ci_cargo.yml to cargo.yml



* fix(fmt): handle trailing coments between base contracts (#12127)

* fix(fmt): account for ternary operators when estimating size

* fix(fmt): handle comments between inherited base contracts

* test: layout + base inheritance

* Revert "fix(fmt): handle trailing coments between base contracts (#12127)"

This reverts commit b8b5fbb83fa2436063cebc34ddf900abc972b11d.

* Update cargo.yml (#172)

CI/CD Configuration Update: The CircleCI configuration file, .circleci/cargo.yml, has been updated to use a newer version of the Rust Docker image.
Rust Toolchain Version Bump: The cimg/rust Docker image version has been incremented from 1.88.0 to 1.89.0, ensuring builds and tests run with the latest stable Rust toolchain.



* Fix cloning of compiler settings for Vyper input

Replace context.clone().compiler_settings.vyper with 
context.compiler_settings.vyper.clone() to avoid unnecessary 
cloning of the entire VerificationContext. This reduces memory 
allocations when creating VyperInput instances.

Applied to both etherscan and sourcify verification providers.

* Remove duplicate logic in TxSigner::address() implementations

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Co-authored-by: Gengar <creeptogengar@gmail.com>
Co-authored-by: Aganis <aganisgash@gmail.com>

* Update CircleCI configuration for dev stage (#300)

fix Automatic reruns provide a safety net for your CI/CD pipelines by automatically retrying failed steps and/or workflows. Automatic reruns help teams maintain productivity by reducing the need for manual intervention when steps and workflows fail due to temporary issues.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* EIP-4788 implementation

* formatting

* add beacon block root tests

* Update crates/evm/evm/src/executors/trace.rs

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update crates/cast/src/cmd/run.rs

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* feat: upgrade @types/node from 24.10.4 to 25.0.2

Snyk has created this PR to upgrade @types/node from 24.10.4 to 25.0.2.

See this package in npm:
@types/node

See this project in Snyk:
https://app.snyk.io/org/dargon789/project/8da85645-409e-46fa-bd46-9b58e7905fb8?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr

* fix: `svm fails to download solc 0.8.33 on linux/arm64`, bump `svm-rs` (#13007) (#309)

bump svm-rs

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

* Ethereumjs/master (#310)

* Potential fix for code scanning alert no. 19: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 61: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 74: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml (#105)

* Create cargo.yml (#106)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .github/workflows/docker-image.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Rename ci_cargo.yml to cargo.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* fix(fmt): handle trailing coments between base contracts (#12127)

* fix(fmt): account for ternary operators when estimating size

* fix(fmt): handle comments between inherited base contracts

* test: layout + base inheritance

* Revert "fix(fmt): handle trailing coments between base contracts (#12127)"

This reverts commit b8b5fbb83fa2436063cebc34ddf900abc972b11d.

* Update cargo.yml (#172)

CI/CD Configuration Update: The CircleCI configuration file, .circleci/cargo.yml, has been updated to use a newer version of the Rust Docker image.
Rust Toolchain Version Bump: The cimg/rust Docker image version has been incremented from 1.88.0 to 1.89.0, ensuring builds and tests run with the latest stable Rust toolchain.

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Revert "Create cargo.yml (#106)"

This reverts commit 251a2b4fce0c50e3426ffb2022d9abef5b948fa9.

* Create cargo.yml (#213)

https://github.com/apps/gemini-code-assist

Code Review
This pull request introduces a CircleCI workflow to automate formatting checks and tests. My review has identified two main issues in the configuration: redundant steps that would unnecessarily increase job execution time, and a mismatch between the Rust version in the CI environment and the one specified in the project's Cargo.toml. I've provided suggestions to fix these issues for a more efficient and consistent CI process.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Create docker.yml

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Remove duplicate logic in TxSigner::address() implementations

* fix(fmt): handle trailing coments between base contracts  (#296)

@0xrusowsky @Dargon789 fix(fmt): handle trailing coments between base contracts Revert 142 master (#296)

* Create ci_cargo.yml (#72)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Rename ci_cargo.yml to cargo.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* fix(fmt): handle trailing coments between base contracts (#12127)

* fix(fmt): account for ternary operators when estimating size

* fix(fmt): handle comments between inherited base contracts

* test: layout + base inheritance

* Revert "fix(fmt): handle trailing coments between base contracts (#12127)"

This reverts commit b8b5fbb83fa2436063cebc34ddf900abc972b11d.

* Update cargo.yml (#172)

CI/CD Configuration Update: The CircleCI configuration file, .circleci/cargo.yml, has been updated to use a newer version of the Rust Docker image.
Rust Toolchain Version Bump: The cimg/rust Docker image version has been incremented from 1.88.0 to 1.89.0, ensuring builds and tests run with the latest stable Rust toolchain.

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Fix cloning of compiler settings for Vyper input

Replace context.clone().compiler_settings.vyper with 
context.compiler_settings.vyper.clone() to avoid unnecessary 
cloning of the entire VerificationContext. This reduces memory 
allocations when creating VyperInput instances.

Applied to both etherscan and sourcify verification providers.

* Remove duplicate logic in TxSigner::address() implementations

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Co-authored-by: Gengar <creeptogengar@gmail.com>
Co-authored-by: Aganis <aganisgash@gmail.com>

---------

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Co-authored-by: Aganis <aganisgash@gmail.com>
Co-authored-by: Gengar <creeptogengar@gmail.com>

* Forge/master (#311)

* Potential fix for code scanning alert no. 19: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 61: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Potential fix for code scanning alert no. 74: Artifact poisoning

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Create config.yml (#105)

* Create cargo.yml (#106)

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Delete .github/workflows/docker-image.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Rename ci_cargo.yml to cargo.yml

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* fix(fmt): handle trailing coments between base contracts (#12127)

* fix(fmt): account for ternary operators when estimating size

* fix(fmt): handle comments between inherited base contracts

* test: layout + base inheritance

* Revert "fix(fmt): handle trailing coments between base contracts (#12127)"

This reverts commit b8b5fbb83fa2436063cebc34ddf900abc972b11d.

* Update cargo.yml (#172)

CI/CD Configuration Update: The CircleCI configuration file, .circleci/cargo.yml, has been updated to use a newer version of the Rust Docker image.
Rust Toolchain Version Bump: The cimg/rust Docker image version has been incremented from 1.88.0 to 1.89.0, ensuring builds and tests run with the latest stable Rust toolchain.

Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>

* Revert "Create cargo.yml (#106)"

This reverts commit 251a2b4fce0c50e3426ffb2022d9abef5b948fa9.

* Cr…
@codesandbox
Copy link
Copy Markdown

codesandbox Bot commented Jun 6, 2026

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders

Open Preview

@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
next Ready Ready Preview, Comment Jun 6, 2026 6:05am
react Ready Ready Preview, Comment Jun 6, 2026 6:05am

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Jun 6, 2026

Reviewer's Guide

This PR mixes significant internal feature work with a large set of security hardening changes and CI / workflow additions. Key changes include: constrained temp filesystem usage in test utilities and benchmarks; safer path handling for config and script helpers; new Tempo wallet integration and access-key signing support; a generic linting framework and config schema crate; updates to cheatcodes/config schemas and cargo aliases; a new Cancun beacon-block trace test; and a substantial number of new GitHub Actions and CircleCI configs plus project-scoped example counter app files and docs assets.

Sequence diagram for sign_with_access_key Tempo access-key signing flow

sequenceDiagram
    participant Caller
    participant tempo as tempo_mod
    participant req as TempoTransactionRequest
    participant signer as Signer
    participant kc as KeychainSignature

    Caller->>tempo: sign_with_access_key(tx_request, signer, wallet_address)
    activate tempo
    tempo->>req: build_aa()
    activate req
    req-->>tempo: tempo_tx
    deactivate req

    tempo->>tempo: signature_hash = tempo_tx.signature_hash()
    tempo->>kc: KeychainSignature::signing_hash(signature_hash, wallet_address)
    kc-->>tempo: signing_hash

    tempo->>signer: sign_hash(signing_hash)
    activate signer
    signer-->>tempo: raw_sig
    deactivate signer

    tempo->>kc: KeychainSignature::new(wallet_address, raw_sig)
    kc-->>tempo: keychain_sig

    tempo->>tempo: aa_signed = tempo_tx.into_signed(TempoSignature::Keychain(keychain_sig))
    tempo->>tempo: aa_signed.encode_2718(buf)
    tempo-->>Caller: signed_bytes
    deactivate tempo
Loading

File-Level Changes

Change Details Files
Harden filesystem operations and path handling in test utilities, benchmarks, scripts, and config cleanup logic.
  • Introduce a fixed TEST_UTIL_BASE under the system temp directory and a resolve_and_validate_under_base helper to constrain copy_dir_filtered operations to this base and prevent directory escape via absolute or .. paths.
  • Add global IS_TTY flag, adjust get_compiled to panic on compiler errors instead of using assert!, and slightly tweak Vyper lock error handling pattern matching.
  • Ensure test failures file removal resolves to a path under the canonicalized project root before deleting, emitting a warning when the file would lie outside the project root.
  • Canonicalize TempProject root in benchmarks cleanup and verify each entry’s canonical path stays under that root before removing directories/files, logging and skipping suspicious paths.
  • In ScriptTester, skip files with suspicious names and avoid copying files whose canonicalized path escapes the source dir, preventing traversal via symlinks or invalid filenames.
  • In cheatcodes fs tests, guard remove_dir_all by verifying the directory exists and resides under the system temp directory before deleting.
crates/test-utils/src/util.rs
crates/config/src/lib.rs
benches/src/lib.rs
crates/test-utils/src/script.rs
crates/cheatcodes/src/fs.rs
Add Tempo wallet integration with support for local and keychain (access-key) signing, plus a dedicated Tempo transaction signing path.
  • Introduce enums for WalletType and KeyType and data structures to deserialize Tempo’s keys.toml layout, including per-token limits and top-level KeysFile.
  • Implement keys_path resolution honoring TEMPO_HOME or defaulting to ~/.tempo/wallet/keys.toml, and decode SignedKeyAuthorization from hex+RLP.
  • Provide TempoLookup abstraction that distinguishes direct EOA signers from keychain access-key signers and returns either a simple WalletSigner or a WalletSigner plus TempoAccessKeyConfig.
  • Add sign_with_access_key helper that builds a TempoTransaction from a TempoTransactionRequest, computes the keychain V2 signing hash, signs via alloy Signer, wraps in a KeychainSignature/TempoSignature and encodes the result as EIP-2718 bytes.
crates/wallets/src/tempo.rs
Introduce a generic linting framework abstraction for AST-based lint passes.
  • Define a Linter trait parametrized by language and lint type with a lint method taking input file paths.
  • Define a Lint trait with id, severity, description, and help methods, plus a LintContext carrying Session and description flags and an emit helper that builds and emits diagnostics with appropriate codes and spans.
  • Add EarlyLintPass trait mirroring solar_ast::visit::Visit for key nodes (Expr, ItemStruct, ItemFunction, VariableDefinition) but enriched with LintContext, and EarlyLintVisitor that drives multiple passes over the AST and dispatches checks while walking nodes.
crates/lint/src/linter.rs
Add a dedicated config spec crate and JSON schema generation for Foundry config, plus cargo alias integration.
  • Create foundry-config-spec crate wrapping Config inside ConfigSchema with serde flattening and optional schemars JsonSchema derivation behind a schema feature.
  • Add a test helper that verifies the generated config.schema.json matches the compiled schema, auto-updating the file and instructing CI users to run cargo spec-config when out-of-date.
  • Register schemars as an optional dependency and add a schema feature for the main config crate, and expose a new cargo alias spec-config to run the schema tests; also add foundry-config-spec to workspace manifests as needed.
crates/config/spec/Cargo.toml
crates/config/spec/src/lib.rs
crates/config/Cargo.toml
.cargo/config.toml
crates/config/assets/config.schema.json
Update cheatcodes spec metadata and references, including schema URL and CI hints, and wire config spec into workspace dependencies.
  • Change cheatcodes spec doc URL to point to getfoundry.sh-specific cheatcodes documentation under forge tests.
  • Adjust CI hint message in cheatcodes spec tests to recommend running cargo spec-cheats instead of the old cargo cheats alias.
  • Declare foundry-primitives as a workspace dependency in the common crate and hook up new schema features in config and cheatcodes crates where appropriate.
crates/cheatcodes/spec/src/lib.rs
crates/common/Cargo.toml
crates/config/Cargo.toml
.cargo/config.toml
Refine various runtime behaviors and bugfixes across RPC handling, miner, script simulation, lints, and testing.
  • In Anvil RPC handler, change behavior for empty batch requests to return a Batch response containing a single RpcError instead of a Single error response.
  • Fix cast miner::mine alignment wrapper by redefining B256Aligned with repr(C, align(8)) and a single B256 field, avoiding the previous zero-length array trick.
  • Update gas price symbol resolution in script simulation to use alloy_chains::Chain::from_id instead of NamedChain::try_from, aligning with newer APIs.
  • In EVM fuzzer WorkerCorpus, use rng.gen_ratio instead of random_ratio for payable value mutation frequency.
  • Make merge_outcomes accumulate suite duration by summing rather than taking max when merging TestOutcome structures.
  • Simplify keccak lint helper extract_keccak256_arg to an explicit if/else returning Option, and adjust unused_return lint to use call_args.len() instead of call_args.kind.len() to reflect updated API.
  • Un-gate the preprocess_contract_with_decode_internal test by removing the isolate-by-default cfg guard.
  • | `crates/anvil/server/src/handler.rs`
    `crates/cast/src/cmd/miner.rs`
    `crates/script/src/simulate.rs`
    `crates/evm/evm/src/executors/corpus.rs`
    `crates/forge/src/cmd/test/mod.rs`
    `crates/lint/src/sol/gas/keccak.rs`
    `crates/lint/src/sol/med/unused_return.rs`
    `crates/forge/tests/cli/test_optimizer.rs` | | Add a new Cancun beacon-block trace regression test for cast and guard nightly comparison script against division-by-zero. |
    • Introduce a new CLI test that runs a specific Cancun-era beacon block root transaction and asserts on the printed call trace and gas section, ensuring regression coverage for GitHub issue cast run result is different from the actual transaction foundry-rs/foundry#12435.
    • Modify compare-nightly.sh to compute percentage delta only when previous timing is greater than zero, otherwise defaulting to 0 to avoid division-by-zero.
    | `crates/cast/tests/cli/main.rs`
    `.github/scripts/compare-nightly.sh` | | Add CSS/JS documentation assets for doc output and a sample counter Foundry project with scripts, tests, CI, and README. |
    • Add doc-style.css and doc-script.js under both doc/ and counter/doc/ and minimal doc-filelist.js stubs, providing highlight.js styling and sidebar navigation logic for generated docs.
    • Introduce a standalone counter example project with Counter.sol, deployment script, tests, foundry.toml, remappings, forge-std and openzeppelin submodules, gas snapshot, and README describing common Foundry commands.
    • Add a minimal GitHub Actions workflow under counter to run fmt, build, and tests for the example project.
    | `doc/doc-style.css`
    `doc/doc-script.js`
    `doc/doc-filelist.js`
    `counter/doc/doc-style.css`
    `counter/doc/doc-script.js`
    `counter/doc/doc-filelist.js`
    `counter/src/Counter.sol`
    `counter/script/Counter.s.sol`
    `counter/test/Counter.t.sol`
    `counter/foundry.toml`
    `counter/README.md`
    `counter/.gas-snapshot`
    `counter/remappings.txt`
    `counter/.github/workflows/test.yml`
    `counter/lib/forge-std`
    `counter/lib/openzeppelin-contracts` | | Add multiple new CI / security workflows and CircleCI configs for Docker, CodeQL, Snyk, Google GKE, Pages, API security, and Rust/Cargo pipelines. |
    • Add GitHub Actions workflows for Docker builds (two variants), Docker image CI, static site deployment to GitHub Pages, CodeQL advanced scanning, Google GKE build/deploy, Snyk container scans, APIsec scanning, and a Foundry build/test/deploy pipeline.
    • Introduce multiple CircleCI configurations for Foundry testing, Rust cargo build/test with caching, and assorted custom web3/gamefi/dev_stage pipelines with examples of filters and retry semantics.
    • Add basic GitHub issue templates for bug reports, feature requests, and a custom template, plus a Sample .codesandbox/tasks.json stub and auxiliary project files like .gitmodules and sleep.json.
    | `.github/workflows/docker.yml`
    `.github/workflows/Docker.yml`
    `.github/workflows/docker-image.yml`
    `.github/workflows/static.yml`
    `.github/workflows/codeql.yml`
    `.github/workflows/google.yml`
    `.github/workflows/snyk-container.yml`
    `.github/workflows/apisec-scan.yml`
    `.github/workflows/deploy.yml`
    `.github/workflows/docker-image.yml`
    `.circleci/config.yml`
    `.circleci/cargo.yml`
    `.circleci/ci.yml`
    `.circleci/ci_v1.yml`
    `.circleci/ci_cargo.yml`
    `.circleci/ci-web3-gamefi.yml`
    `.circleci/web3_defi_gamefi.yml`
    `.circleci/dev_stage.yml`
    `.github/ISSUE_TEMPLATE/bug_report.md`
    `.github/ISSUE_TEMPLATE/feature_request.md`
    `.github/ISSUE_TEMPLATE/custom.md`
    `.codesandbox/tasks.json`
    `.gitmodules`
    `sleep.json` | | Vendor Remix testing helper contracts for Solidity testing and add small project metadata or placeholder files. |
    • Add remix_tests.sol with the Assert library exposing a suite of assertion helpers that emit type-specific AssertionEvent events for use in Remix-compatible tests.
    • Add remix_accounts.sol providing a fixed set of test account addresses via getAccount(index).
    • Add placeholder or lock files such as soldeer.lock and references under .deps for Remix tests and config.
    | `.deps/remix-tests/remix_tests.sol`
    `.deps/remix-tests/remix_accounts.sol`
    `counter/soldeer.lock` |

    Possibly linked issues


    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

    @snyk-io
    Copy link
    Copy Markdown

    snyk-io Bot commented Jun 6, 2026

    Snyk checks have passed. No issues have been found so far.

    Status Scan Engine Critical High Medium Low Total (0)
    Open Source Security 0 0 0 0 0 issues

    💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

    Copy link
    Copy Markdown

    @sourcery-ai sourcery-ai Bot left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Hey - I've found 4 issues, and left some high level feedback:

    • In cast/src/cmd/miner.rs, the updated B256Aligned definition no longer matches the B256Aligned(salt, []) construction, which will fail to compile; either restore the second field or adjust the constructor and subsequent unsafe code accordingly.
    • The new copy_dir_filtered / copy_dir_filtered_inner flow repeatedly calls resolve_and_validate_under_base and re-canonicalizes src/dst on every recursion step, which adds a lot of filesystem I/O; consider validating once at the top level and passing trusted, joined paths down the recursion to keep the security guarantee with less overhead.
    • This PR adds many orthogonal artifacts (sample counter project, Remix test deps, multiple CircleCI and GitHub Actions workflows, Docker/Pages configs, etc.); it would be clearer to split these into separate, focused PRs or omit the template/demo content from the main repository.
    Prompt for AI Agents
    Please address the comments from this code review:
    
    ## Overall Comments
    - In `cast/src/cmd/miner.rs`, the updated `B256Aligned` definition no longer matches the `B256Aligned(salt, [])` construction, which will fail to compile; either restore the second field or adjust the constructor and subsequent unsafe code accordingly.
    - The new `copy_dir_filtered` / `copy_dir_filtered_inner` flow repeatedly calls `resolve_and_validate_under_base` and re-canonicalizes `src`/`dst` on every recursion step, which adds a lot of filesystem I/O; consider validating once at the top level and passing trusted, joined paths down the recursion to keep the security guarantee with less overhead.
    - This PR adds many orthogonal artifacts (sample `counter` project, Remix test deps, multiple CircleCI and GitHub Actions workflows, Docker/Pages configs, etc.); it would be clearer to split these into separate, focused PRs or omit the template/demo content from the main repository.
    
    ## Individual Comments
    
    ### Comment 1
    <location path="crates/cast/src/cmd/miner.rs" line_range="26-27" />
    <code_context>
                 #[repr(C)]
    -            struct B256Aligned(B256, [usize; 0]);
    -
    +#[repr(C, align(8))]
    +struct B256Aligned(B256);
                 let mut salt = B256Aligned(salt, []);
                 // SAFETY: `B256` is aligned to `usize`.
    </code_context>
    <issue_to_address>
    **issue (bug_risk):** Constructor call for `B256Aligned` still uses the old tuple layout and will not compile.
    
    The struct changed from `B256Aligned(B256, [usize; 0])` to `B256Aligned(B256)`, but this site still calls `B256Aligned(salt, [])`, which will not compile. Update this to `B256Aligned(salt)` (and revise the SAFETY comment if needed). Also, consider indenting the attribute and struct definition inside the closure for consistency with the surrounding code.
    </issue_to_address>
    
    ### Comment 2
    <location path=".github/workflows/google.yml" line_range="37-40" />
    <code_context>
    +name: Docker
    +
    +on:
    +  push:
    +    tags: ["*"]
    +    branches:
    </code_context>
    <issue_to_address>
    **issue (bug_risk):** Quoted branch names and kustomize download command look misconfigured and will likely prevent this workflow from working.
    
    Two issues to fix:
    1. Branch filters are defined as `- '"main"'` / `- '"master"'`, which makes the literal branch names include quotes. GitHub Actions will not match the real `main`/`master` branches.
    2. The `curl -sfLo kustomize ...kustomize_v5.4.3_linux_amd64.tar.gz` step downloads a tar.gz archive but you never extract it before running `./kustomize`. Either download the binary directly or extract the archive first so the command succeeds.
    </issue_to_address>
    
    ### Comment 3
    <location path=".circleci/ci_cargo.yml" line_range="13-18" />
    <code_context>
    +          keys:
    +            - v1-cargo-{{ checksum "Cargo.lock" }}
    +            - v1-cargo-
    +      - run:
    +          name: "Check formatting"
    +          command: cargo fmt -- --check
    +      - run:
    +          name: "Run tests"
    +          command: cargo test
    +      - save_cache:
    +          key: v1-cargo-{{ checksum "Cargo.lock" }}
    </code_context>
    <issue_to_address>
    **nitpick (performance):** Formatting and test steps are duplicated in the same job.
    
    This job reruns `cargo fmt -- --check` and `cargo test` without adding value, which unnecessarily increases CI time. If there’s no requirement to run them twice, please remove the duplicates.
    </issue_to_address>
    
    ### Comment 4
    <location path=".github/ISSUE_TEMPLATE/bug_report.md" line_range="26-29" />
    <code_context>
    +**Screenshots**
    +If applicable, add screenshots to help explain your problem.
    +
    +**Desktop (please complete the following information):**
    + - OS: [e.g. iOS]
    + - Browser [e.g. Chrome, Safari]
    + - Version [e.g. 22]
    + - Browser [e.g. Chrome, Safari]
    + - Version [e.g. 22]
    </code_context>
    <issue_to_address>
    **issue:** Desktop section lists the Browser and Version fields twice, which is likely unintentional duplication.
    
    Please remove the duplicated `Browser` and `Version` entries so each field appears only once in this section.
    </issue_to_address>

    Fix all in Cursor


    Sourcery is free for open source - if you like our reviews please consider sharing them ✨
    Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

    Comment thread crates/cast/src/cmd/miner.rs Outdated
    Comment thread .github/workflows/google.yml
    Comment thread .circleci/ci_cargo.yml
    Comment thread .github/ISSUE_TEMPLATE/bug_report.md
    Copy link
    Copy Markdown

    @gemini-code-assist gemini-code-assist Bot left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Code Review

    This pull request introduces various CI/CD configurations, issue templates, security enhancements to prevent directory traversal, a new Tempo wallet signer module, and a configuration specification schema. The review feedback highlights several critical issues, including compilation errors in the miner command and simulation script, missing dependencies in the wallets crate, and a bug where canonicalizing non-existent paths causes directory copying to fail. Additionally, there are syntax errors and duplicate steps in the CircleCI configurations, redundant path canonicalizations inside loops, and a design issue with the lifetime parameterization of the early lint pass trait.

    Important

    The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
    For more details on the timeline and next steps, please review the Help Documentation.

    Comment thread crates/cast/src/cmd/miner.rs Outdated
    Comment thread crates/script/src/simulate.rs Outdated
    Comment thread crates/test-utils/src/util.rs
    Comment thread crates/wallets/src/tempo.rs
    Comment thread .circleci/dev_stage.yml
    Comment thread crates/test-utils/src/script.rs
    Comment thread crates/lint/src/linter.rs
    Comment thread .circleci/cargo.yml
    Comment thread .circleci/ci.yml
    Comment thread .circleci/ci_cargo.yml
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
    Repository owner deleted a comment from vercel Bot Jun 7, 2026
    Repository owner deleted a comment from vercel Bot Jun 7, 2026
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    None yet

    Projects

    Status: Todo

    Development

    Successfully merging this pull request may close these issues.

    Sequence diagram for sign_with_access_key Tempo access-key signing flow

    2 participants