Skip to content

Comments

chore: ignore RUSTSEC (foundry-rs#13011) #325

Merged
Dargon789 merged 23 commits intoDargon789:mainfrom
foundry-rs:master
Jan 12, 2026
Merged

chore: ignore RUSTSEC (foundry-rs#13011) #325
Dargon789 merged 23 commits intoDargon789:mainfrom
foundry-rs:master

Conversation

@Dargon789
Copy link
Owner

@Dargon789 Dargon789 commented Jan 12, 2026

Motivation

Solution

PR Checklist

22be38e
4a0ed09
0bdd213

  • Added Tests
  • Added Documentation
  • Breaking changes

Summary by Sourcery

Update dependencies and CI toolchain while cleaning up unused APIs and improving blob transaction and linting behavior.

Enhancements:

  • Bump multiple dependencies including alloy crates, evm-disassembler, and ratatui to newer versions.
  • Extend solar source collection to respect ignored paths for linting and build commands, preventing compilation of excluded imports.
  • Refine lint diagnostics by centralizing help message formatting and avoiding ANSI sequences when using the JSON emitter.
  • Adjust Anvil blob handling to use accessor methods and simplify submodule status checks by delegating to existing dependency-detection logic.
  • Tighten wallet signing implementations and receipt bloom calculation for more consistent and efficient behavior.

Build:

  • Stop ignoring selected RustSec advisories in deny.toml so they surface in dependency checks.

CI:

  • Pin CI and docs workflows to a specific Rust nightly (nightly-2026-01-10) instead of the moving nightly channel.

Tests:

  • Update EIP-4844 tests to use explicit BlobTransactionSidecar typing and re-enable transaction replacement receipt assertions for stronger coverage.

Chores:

  • Remove a number of unused helper methods, config fields, and RPC variants related to blobs, chain metadata, and benchmarking.

echowandere and others added 23 commits January 8, 2026 09:16
* update deny for CI

* Update more
* chore(evm): deprecate RawCallResult::from_execution_result

* remove `RawCallResult::from_execution_result` completely

---------

Co-authored-by: DaniPopes <[email protected]>
* feat: uncomment transaction replacement test after alloy fix

* fix compile issue

* removed the attempt to get receipt for the replaced transaction since it never gets mined.
* Remove duplicate logic in TxSigner::address() implementations

* expend to sign_transaction

* use delegate
* chore: remove RUSTSEC-2024-0437

* chore: bump release deps

* chore: fmt

* chore: remove lru advisory

* chore: add lru advisory

* chore: bump ratatui to remove lru ignore rustsec

---------

Co-authored-by: Matthias Seitz <[email protected]>
Pin nightly toolchain to 2026-01-10 to fix CI compilation failures with the current nightly.

See alloy-rs/alloy#3500
flake.lock: Update

Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/e2b0f06' (2026-01-03)
  → 'github:nix-community/fenix/334c4b4' (2026-01-10)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/e19dfc8' (2026-01-02)
  → 'github:rust-lang/rust-analyzer/714d047' (2026-01-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/16c7794' (2026-01-02)
  → 'github:NixOS/nixpkgs/3146c6a' (2026-01-10)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: grandizzy <[email protected]>
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 42 packages to latest compatible versions
    Updating alloy-chains v0.2.24 -> v0.2.25
    Updating alloy-trie v0.9.2 -> v0.9.3
    Updating annotate-snippets v0.12.5 -> v0.12.10
    Updating anstyle-svg v0.1.11 -> v0.1.12
    Updating async-compression v0.4.36 -> v0.4.37
    Updating bon v3.8.1 -> v3.8.2
    Updating bon-macros v3.8.1 -> v3.8.2
    Updating cc v1.2.51 -> v1.2.52
    Updating clap_complete v4.5.64 -> v4.5.65
    Updating compression-codecs v0.4.35 -> v0.4.36
    Updating data-encoding v2.9.0 -> v2.10.0
    Updating evmole v0.8.1 -> v0.8.2
    Updating find-msvc-tools v0.1.6 -> v0.1.7
   Unchanged generic-array v0.14.7 (available: v0.14.9)
    Updating h2 v0.4.12 -> v0.4.13
   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 indexmap v2.12.1 -> v2.13.0
    Updating jiff v0.2.17 -> v0.2.18
    Updating jiff-static v0.2.17 -> v0.2.18
    Updating libc v0.2.179 -> v0.2.180
   Unchanged matchit v0.8.4 (available: v0.8.6)
   Unchanged mdbook v0.4.52 (available: v0.5.2)
    Updating nybbles v0.4.6 -> v0.4.7
    Updating proc-macro2 v1.0.104 -> v1.0.105
    Updating prost v0.14.1 -> v0.14.3
    Updating prost-derive v0.14.1 -> v0.14.3
    Updating prost-types v0.14.1 -> v0.14.3
    Updating quote v1.0.42 -> v1.0.43
   Unchanged rand v0.8.5 (available: v0.9.2)
    Updating rapidhash v4.2.0 -> v4.2.1
   Unchanged reqwest v0.12.28 (available: v0.13.1)
    Updating rustls v0.23.35 -> v0.23.36
    Updating serde_json v1.0.148 -> v1.0.149
    Updating snapbox v0.6.23 -> v0.6.24
    Updating svm-rs v0.5.22 -> v0.5.23
    Updating svm-rs-builds v0.5.22 -> v0.5.23
    Updating syn v2.0.113 -> v2.0.114
    Updating tokio-stream v0.1.17 -> v0.1.18
    Updating tokio-util v0.7.17 -> v0.7.18
    Updating toml v0.9.10+spec-1.1.0 -> v0.9.11+spec-1.1.0
    Updating tracy-client v0.18.3 -> v0.18.4
    Updating tracy-client-sys v0.27.0 -> v0.28.0
    Updating unicase v2.8.1 -> v2.9.0
    Updating unicode-width v0.2.0 -> v0.2.2
    Updating url v2.5.7 -> v2.5.8
   Unchanged vergen v8.3.2 (available: v9.0.6)
    Updating zerocopy v0.8.31 -> v0.8.33
    Updating zerocopy-derive v0.8.31 -> v0.8.33
    Updating zmij v1.0.9 -> v1.0.12
note: to see how you depend on a package, run `cargo tree --invert <dep>@<ver>`

Co-authored-by: mattsse <[email protected]>
Co-authored-by: grandizzy <[email protected]>
@codesandbox
Copy link

codesandbox bot commented Jan 12, 2026

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders

Open Preview

@sourcery-ai
Copy link

sourcery-ai bot commented Jan 12, 2026

Reviewer's Guide

This PR updates several dependencies and CI toolchains, tightens the RUSTSEC deny configuration, and removes or refactors unused/obsolete APIs and helpers across multiple crates while making small behavior fixes related to blob sidecars, solar source selection, lint diagnostics, wallet signing, and tests.

Class diagram for updated LintContext diagnostics helpers

classDiagram
    class Session
    class LintConfig
    class Lint
    class DiagBuilder {
        help(str help) DiagBuilder
        code(DiagId id) DiagBuilder
        span(MultiSpan span) DiagBuilder
        emit()
    }
    class LintContext {
        -sess : &Session
        -with_description : bool
        -with_json_emitter : bool
        -config : &LintConfig
        -active_lints : Vec~Lint~
        +new(sess, with_description, with_json_emitter, config, active_lints) LintContext
        +session() &Session
        +emit_lint(lint, span)
        +emit_lint_for_node(lint, node_id, span)
        -add_help(diag, help) DiagBuilder
    }

    LintContext --> Session : uses
    LintContext --> LintConfig : uses
    LintContext --> Lint : configures
    LintContext --> DiagBuilder : builds diagnostics
Loading

Flow diagram for get_solar_sources_from_compile_output with ignored imports

flowchart TD
    A[start get_solar_sources_from_compile_output]
    A --> B[receive config, output, target_paths, ignored_paths]
    B --> C{target_paths provided
and non empty}
    C -- yes --> D[initialize source_paths from target_paths]
    C -- no --> E[initialize source_paths from all solidity sources in project]
    D --> F[initialize queue with initial source_paths]
    E --> F

    F --> G{queue not empty?}
    G -- yes --> H[pop path from queue]
    H --> I[insert path into source_paths]
    I --> J[iterate imports of path from output.graph]
    J --> K{import is ignored?}
    K -- yes --> G
    K -- no --> L[push import path into queue]
    L --> G
    G -- no --> M[build SolcVersionedInput from source_paths and config]
    M --> N[return SolcVersionedInput]

    subgraph ignore_check
        J --> K
    end
Loading

File-Level Changes

Change Details Files
Bump core Ethereum/alloy-related and UI dependencies to newer versions
  • Update multiple alloy-* crates from 1.1.3 to 1.4 with unchanged feature flags
  • Bump alloy core crates (dyn-abi, json-abi, primitives, sol-macro-*, sol-types) from 1.5.1 to 1.5.2
  • Upgrade evm-disassembler from 0.5 to 0.6
  • Upgrade debugger ratatui dependency from 0.29 to 0.30
Cargo.toml
crates/debugger/Cargo.toml
Cargo.lock
Pin CI and docs workflows to a specific nightly toolchain
  • Change rust-toolchain in CI clippy and rustfmt jobs to nightly-2026-01-10 instead of floating nightly
  • Change rust-toolchain in docs workflow to nightly-2026-01-10
.github/workflows/ci.yml
.github/workflows/docs.yml
Tighten cargo-deny RUSTSEC ignore list
  • Remove ignores for RUSTSEC-2024-0437 and RUSTSEC-2025-0137 from deny configuration, keeping only the paste! advisory
deny.toml
Simplify or remove unused APIs and config fields across crates
  • Remove SessionSource::clear_global and clear_contract, and to_script_source as unused helpers
  • Delete bench helpers get_benchmark_versions and setup_benchmark_repos
  • Remove CLI helper get_cached_entry_by_name for compiler cache lookup
  • Drop allowed_paths and chain-related fields from CheatsConfig and associated initialization/default wiring
  • Remove FeeManager free function calculate_next_block_base_fee wrapper
  • Remove InlineLink::ref_name_exact helper in doc preprocessor
  • Remove ContractsByArtifact::find_abi_by_name_or_identifier helper
  • Remove RawCallResult::from_execution_result helper
  • Remove EvmArgs::ensure_fork_url convenience method
  • Remove Wallets::add_private_key helper in cheatcodes script module
crates/chisel/src/source.rs
benches/src/lib.rs
crates/cli/src/utils/cmd.rs
crates/cheatcodes/src/config.rs
crates/anvil/src/eth/fees.rs
crates/doc/src/preprocessor/infer_hyperlinks.rs
crates/common/src/contracts.rs
crates/evm/evm/src/executors/mod.rs
crates/cli/src/opts/evm.rs
crates/cheatcodes/src/script.rs
Adjust blob sidecar handling and related API surface in Anvil
  • Use sidecar.sidecar.blobs() and commitments() accessors instead of direct field access in mem backend
  • Remove Backend::get_blob_sidecars_by_block_id and EthApi::anvil_get_blob_sidecars_by_block_id handlers
  • Drop corresponding EthRequest::GetBlobSidecarsByBlockId variant from the core RPC enum
  • Update get_blob_by_versioned_hash to use sidecar accessors when locating blobs/commitments
crates/anvil/src/eth/backend/mem/mod.rs
crates/anvil/src/eth/api.rs
crates/anvil/core/src/eth/mod.rs
Clarify blob sidecar types and fix EIP-4844 tests and API usage
  • Explicitly type SidecarBuilder::build() results as BlobTransactionSidecar in EIP-4844 tests to align with new alloy APIs
  • Update transaction tests to assert inclusion of the higher-priced replacement transaction and its receipt instead of leaving commented-out assertions
  • Ensure fill-transaction EIP-4844 tests compile with typed BlobTransactionSidecar sidecars
crates/anvil/tests/it/eip4844.rs
crates/anvil/tests/it/transaction.rs
crates/anvil/tests/it/api.rs
Improve lint diagnostics helper handling and reuse
  • Introduce LintContext::add_help helper that conditionally wraps messages in hyperlinks based on JSON emitter mode
  • Refactor lint emission paths to use add_help instead of duplicating conditional help logic
crates/lint/src/linter/mod.rs
Refine solar source selection by supporting ignored paths
  • Extend get_solar_sources_from_compile_output to accept an optional ignored_paths list and skip queued imports in that set
  • Update build and lint paths to pass appropriate ignored paths (lint passes ignored; build uses None)
  • Ensure configure_pcx_from_compile_output continues to call get_solar_sources_from_compile_output with no ignored paths
crates/cli/src/opts/build/utils.rs
crates/forge/src/cmd/lint.rs
crates/forge/src/cmd/build.rs
Minor refactors and cleanups in utilities and signing
  • Remove unused from_int_or_hex_opt deserializer helper from serde_helpers
  • Change git submodules_uninitialized to delegate to has_missing_dependencies, avoiding duplicated logic for detecting '-' status lines
  • Fix Bloom computation to pass an iterator of &LogInner directly instead of allocating an intermediate Vec
  • Adjust WalletSigner and BrowserSigner TxSigner implementations to delegate through the Signer trait or TxSigner trait instead of manual logic
crates/common/src/serde_helpers.rs
crates/cli/src/utils/mod.rs
crates/primitives/src/transaction/receipt.rs
crates/wallets/src/signer.rs
crates/wallets/src/wallet_browser/signer.rs
flake.lock

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

snyk-io bot commented Jan 12, 2026

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

Status Scanner 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

@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 left some high level feedback:

  • Several public APIs and RPC variants are removed (e.g. EthRequest::GetBlobSidecarsByBlockId, EthApi::anvil_get_blob_sidecars_by_block_id, Backend::get_blob_sidecars_by_block_id, SessionSource::to_script_source, CheatsConfig fields, etc.); if these are part of the public surface or used by downstream tooling, consider adding a deprecation path or a dedicated breaking-change note before dropping them.
  • The CI/docs workflows pin the toolchain to nightly-2026-01-10; please double‑check that this is an intended and valid Rust toolchain date (rather than, say, 2025-01-10) to avoid future failures when the toolchain cannot be resolved.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Several public APIs and RPC variants are removed (e.g. `EthRequest::GetBlobSidecarsByBlockId`, `EthApi::anvil_get_blob_sidecars_by_block_id`, `Backend::get_blob_sidecars_by_block_id`, `SessionSource::to_script_source`, `CheatsConfig` fields, etc.); if these are part of the public surface or used by downstream tooling, consider adding a deprecation path or a dedicated breaking-change note before dropping them.
- The CI/docs workflows pin the toolchain to `nightly-2026-01-10`; please double‑check that this is an intended and valid Rust toolchain date (rather than, say, `2025-01-10`) to avoid future failures when the toolchain cannot be resolved.

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.

@gemini-code-assist
Copy link

Summary of Changes

Hello @Dargon789, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request performs a comprehensive update of project dependencies, ensuring the codebase leverages the latest features, bug fixes, and security patches from upstream crates. Concurrently, it streamlines the project by removing deprecated or unused functionalities across core components like the Anvil RPC, cheatcodes, and CLI tools, enhancing maintainability and reducing technical debt. The changes also reflect an ongoing effort to manage security advisories by adjusting the ignored RUSTSEC list.

Highlights

  • Dependency Updates: Numerous dependencies have been updated across the project, including major version bumps for alloy-* crates (e.g., 1.1.3 to 1.4.0 or 1.5.1 to 1.5.2), syn (2.0.113 to 2.0.114), indexmap (2.12.1 to 2.13.0), ratatui (0.29.0 to 0.30.0), prost and protobuf related crates, toml, zerocopy, and various windows-sys versions.
  • Anvil RPC API Refactoring: Several RPC methods and related internal logic within Anvil have been removed, specifically anvil_getBlobSidecarsByBlockId and anvil_setBlock. Blob handling in the backend has also been updated to use new accessor methods.
  • Code Cleanup and Removal: Unused or deprecated code has been removed from various modules, including get_benchmark_versions and setup_benchmark_repos in benches, allowed_paths, chains, chain_id_to_alias from CheatsConfig, add_private_key from Wallets, clear_global, clear_contract, and to_script_source from Chisel's SessionSource, and get_cached_entry_by_name from CLI utilities.
  • Security Advisory Management: The deny.toml file has been updated to remove RUSTSEC-2024-0437 and RUSTSEC-2025-0137 from the ignored RUSTSEC advisories, indicating a review and potential resolution or re-evaluation of these security concerns.
  • Solar Compiler Integration Improvements: The get_solar_sources_from_compile_output function now supports an ignored_paths argument, allowing specific files to be excluded from Solar compilation, and the linting command now utilizes this feature.
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/ci.yml
    • .github/workflows/docs.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@Dargon789 Dargon789 merged commit baa69c9 into Dargon789:main Jan 12, 2026
3 of 7 checks passed
Copy link

@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 is a significant dependency update, primarily for the alloy crates, which has led to a series of beneficial refactorings and cleanups. The changes include adopting new APIs, removing duplicated code, and deleting unused functions and configuration fields, which improves maintainability. Security is also enhanced by addressing previously ignored RUSTSEC advisories. Additionally, the re-enabling of previously disabled tests is a positive step for code quality. Overall, this is a well-executed maintenance PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet