Merged
Conversation
This fixes the problem of `Access(Open(_))` variant not being reported. Signed-off-by: y5c4l3 <[email protected]>
Member
|
Can you mention which issue this is referring to ? |
Contributor
Author
@0xpr03 I don't think there is an issue for the problem. I encountered it and it was a quick fix, so I directly made a pull request. |
Member
|
Thanks! |
1 task
joeblogg801
added a commit
to joeblogg801/foundry
that referenced
this pull request
Jun 11, 2025
This fixes an issue introduced by notify-rs/notify#612, where `OPEN` events are now reported on Linux. As a result, file access (e.g., reading a file) triggers spurious change notifications, causing the compilation process to restart repeatedly. To resolve this, we explicitly filter out `OPEN` (access) events during event processing.
zerosnacks
pushed a commit
to foundry-rs/foundry
that referenced
this pull request
Jun 12, 2025
fix(forge): Filter out file access events to prevent rebuild loop This fixes an issue introduced by notify-rs/notify#612, where `OPEN` events are now reported on Linux. As a result, file access (e.g., reading a file) triggers spurious change notifications, causing the compilation process to restart repeatedly. To resolve this, we explicitly filter out `OPEN` (access) events during event processing.
nbaztec
added a commit
to matter-labs/foundry-zksync
that referenced
this pull request
Jul 28, 2025
* fix(cast): read all lines for message to hash (#10671) * feat(forge build): cache project selectors by default (#10651) * feat(forge build): cache project selectors by default Calls `cache_local_signatures` function like the "forge selectors cache" command. * refactor(forge build): update `cache_local_signatures` to accept an optional `cache_dir` No more need to unwrap the option value returned foundry's `config` crate * Move cache dir in cache sigs fn --------- Co-authored-by: grandizzy <[email protected]> * fix(forge lint): gas lints (#10667) * fix: gas lints * fix: use project paths to identify tests/scripts * chore: fixed dead link in `ui_runner.rs` (#10645) * Update dead link in `ui_runner.rs` * Update crates/test-utils/src/ui_runner.rs --------- Co-authored-by: zerosnacks <[email protected]> * fix: populate missing fields for eth simulate (#10682) * fix: populate missing fields for eth simulate * fmt * chore: Add unused deps lint (#10666) * add missing dependency linters * add dependency linter to binaries * remove comment * remove linter from main.rs * remove unused deps, silence linter warnings * move imports to dev dependencies * chore(`Makefile`): add .PHONY, fix help formatting (#10686) * chore: fix clippy (#10687) * chore: activate `prague` hardfork and Solidity version `0.8.30` as default (#10565) * start defaulting to prague, add fix for blob handle scaling post cancun * fix anvil test * switch to 0.8.30 for tests * switch foundry-compilers to default to prague, small test fixes * add workaround for Vyper not yet supporting Prague * fix issues * fix tests, questionable gas difference and address difference * make prague explicit * fix clippy * bump compilers version * bump to 0.16.3 * pass in blob params, add normalize vyper evm version helper, fix solar iter 0.1.4 * temporarily allow compilers git patch * bump to msrv 1.87 in line with foundry-compilers * bump compilers version * bump to foundry-compilers 0.17.1 * chore: add license to preprocessor deploy helper (#10684) chore: add license to prepreocessor deploy helper * chore: update announcements link in `nightly` warning for Foundry book (#10690) update announcements link * chore(deps): weekly `cargo update` (#10680) * chore(deps): weekly `cargo update` Locking 71 packages to latest compatible versions Updating alloy-consensus v1.0.7 -> v1.0.9 Updating alloy-consensus-any v1.0.7 -> v1.0.9 Updating alloy-contract v1.0.7 -> v1.0.9 Updating alloy-eips v1.0.7 -> v1.0.9 Updating alloy-ens v1.0.7 -> v1.0.9 Updating alloy-genesis v1.0.7 -> v1.0.9 Updating alloy-json-rpc v1.0.7 -> v1.0.9 Updating alloy-network v1.0.7 -> v1.0.9 Updating alloy-network-primitives v1.0.7 -> v1.0.9 Updating alloy-provider v1.0.7 -> v1.0.9 Updating alloy-pubsub v1.0.7 -> v1.0.9 Updating alloy-rpc-client v1.0.7 -> v1.0.9 Updating alloy-rpc-types v1.0.7 -> v1.0.9 Updating alloy-rpc-types-anvil v1.0.7 -> v1.0.9 Updating alloy-rpc-types-any v1.0.7 -> v1.0.9 Updating alloy-rpc-types-debug v1.0.7 -> v1.0.9 Updating alloy-rpc-types-engine v1.0.7 -> v1.0.9 Updating alloy-rpc-types-eth v1.0.7 -> v1.0.9 Updating alloy-rpc-types-trace v1.0.7 -> v1.0.9 Updating alloy-rpc-types-txpool v1.0.7 -> v1.0.9 Updating alloy-serde v1.0.7 -> v1.0.9 Updating alloy-signer v1.0.7 -> v1.0.9 Updating alloy-signer-aws v1.0.7 -> v1.0.9 Updating alloy-signer-gcp v1.0.7 -> v1.0.9 Updating alloy-signer-ledger v1.0.7 -> v1.0.9 Updating alloy-signer-local v1.0.7 -> v1.0.9 Updating alloy-signer-trezor v1.0.7 -> v1.0.9 Updating alloy-transport v1.0.7 -> v1.0.9 Updating alloy-transport-http v1.0.7 -> v1.0.9 Updating alloy-transport-ipc v1.0.7 -> v1.0.9 Updating alloy-transport-ws v1.0.7 -> v1.0.9 Updating aws-sdk-kms v1.71.0 -> v1.72.0 Updating aws-sdk-sso v1.70.0 -> v1.71.0 Updating aws-sdk-ssooidc v1.71.0 -> v1.72.0 Updating aws-sdk-sts v1.71.0 -> v1.72.0 Updating cc v1.2.24 -> v1.2.25 Updating clap v4.5.38 -> v4.5.39 Updating clap_builder v4.5.38 -> v4.5.39 Updating clap_complete v4.5.50 -> v4.5.52 Updating color-eyre v0.6.4 -> v0.6.5 Updating color-spantrace v0.2.2 -> v0.3.0 Updating core-foundation v0.10.0 -> v0.10.1 Unchanged crossterm v0.28.1 (available: v0.29.0) Unchanged foundry-block-explorers v0.17.0 (available: v0.18.0) Updating foundry-compilers v0.16.2 -> v0.16.3 (available: v0.17.0) Updating foundry-compilers-artifacts v0.16.2 -> v0.16.3 Updating foundry-compilers-artifacts-solc v0.16.2 -> v0.16.3 Updating foundry-compilers-artifacts-vyper v0.16.2 -> v0.16.3 Updating foundry-compilers-core v0.16.2 -> v0.16.3 Removing hermit-abi v0.3.9 Updating hyper-util v0.1.12 -> v0.1.13 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Adding iri-string v0.7.8 Updating libloading v0.8.7 -> v0.8.8 Updating lock_api v0.4.12 -> v0.4.13 Unchanged matchit v0.8.4 (available: v0.8.6) Updating mdbook v0.4.50 -> v0.4.51 Updating num_cpus v1.16.0 -> v1.17.0 Updating op-alloy-consensus v0.17.1 -> v0.17.2 Updating op-alloy-rpc-types v0.17.1 -> v0.17.2 Updating op-revm v5.0.0 -> v5.0.1 Updating opener v0.8.1 -> v0.8.2 Unchanged opener v0.7.2 (available: v0.8.2) Updating parking_lot v0.12.3 -> v0.12.4 Updating parking_lot_core v0.9.10 -> v0.9.11 Updating prettyplease v0.2.32 -> v0.2.33 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.1) Updating reqwest v0.12.15 -> v0.12.18 Updating revm v24.0.0 -> v24.0.1 Updating revm-context v5.0.0 -> v5.0.1 Updating revm-handler v5.0.0 -> v5.0.1 Updating revm-inspector v5.0.0 -> v5.0.1 Removing rustls-pemfile v2.2.0 Unchanged rustyline v15.0.0 (available: v16.0.0) Unchanged schemars v0.8.22 (available: v0.9.0) Updating socket2 v0.5.9 -> v0.5.10 Unchanged solar-ast v0.1.3 (available: v0.1.4) Updating solar-config v0.1.3 -> v0.1.4 Updating solar-data-structures v0.1.3 -> v0.1.4 Unchanged solar-interface v0.1.3 (available: v0.1.4) Updating solar-macros v0.1.3 -> v0.1.4 Unchanged solar-parse v0.1.3 (available: v0.1.4) Unchanged solar-sema v0.1.3 (available: v0.1.4) Updating tracy-client v0.18.0 -> v0.18.1 Updating tracy-client-sys v0.24.3 -> v0.25.0 Unchanged ui_test v0.29.2 (available: v0.30.1) Unchanged vergen v8.3.2 (available: v9.0.6) Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` * bump deps --------- Co-authored-by: mattsse <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]> * chore: fix flaky test, bump timeout max rejects, use http provider (#10691) chore: flaky test, bump timeout max rejects, use http provider * feat: added disable-code-size-limit flag in forge script (#10661) added disable-code-size-limit flag in forge script Co-authored-by: grandizzy <[email protected]> * chore: remove unused opcodes file (#10695) remove unused opcodes file * chore: add additional check for is_impersonanted (#10701) * feat(forge): eip712 cheatcodes + forge cmd (eip712 + bind-json) with solar (#10510) * wip * feat: eip712 type hash PoC * style: json * style: json * style: json * style: comments * wip * initial impl using solar * fix: untracked change * fix: optimize resolve_type * initial working impl * feat: eip712 solar resolver * style: docs + fmt + clippy * todo: cheatcode * docs: comments * fix: use HIR rather than AST * from build opts * docs * fix: rmv hashset * create utils for solar_pcx_from_build_opts * incorporate version logic into `solar_pcx_from_build_opts` * wip bind-json: eip712 resolver integration * forge(bind-json): integrate solar * fix: tests * style: clippy * undo cheatcode setup (will tackle it on its own PR) * rmv old test * style: fix typo * fix: win path * fix: merge conflicts * fix: dani's feedback * docs: explain bindings overriding * chore: patch solar * feat(forge): eip712 cheatcodes (#10570) * fix: bump solang parser * Remove unused from forge crate * Move tests to eip712 * Nit: comments --------- Co-authored-by: grandizzy <[email protected]> * fix: always update auth txenv var (#10707) * fix(cast): do not use default overrides if no override arg (#10710) * feat: add some clippy lint (#10479) Co-authored-by: grandizzy <[email protected]> * chore: bump version 1.2.3 (#10712) * fix(anvil): guard against the blockchain advancing while checking latest block (#10714) fix: guard against the blockchain advancing while checking latest block * feat(script): keep script / tx timestamp as milis instead seconds (#10711) feat(script): keep script timestamp as milis instead seconds * fix: eip7702 cheatcodes multiple auth (#10623) * fix: eip7702 cheatcodes multiple auth * fix: eip7702 cheatcodes nonce * Fmt and nonce fix * Active delegations as vec * Fix nonce for non senders and add test * Fix tests * Update crates/cheatcodes/src/inspector.rs Co-authored-by: Arsenii Kulikov <[email protected]> * Nit: do not unwrap when looking for last delegation --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: grandizzy <[email protected]> Co-authored-by: Arsenii Kulikov <[email protected]> * docs: add uninstall instructions (#10335) * add uninstall instructions * Update foundryup/README.md Co-authored-by: Matthias Seitz <[email protected]> --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> * chore(`forge bind`): pin alloy to 1.0 + e2e test (#10724) * Update README.md (#10725) * fix(chisel): memory data location for string and bytes params (#10729) * fix(chisel): memory data location for string and bytes params * fix unrelated failing test * chore: update proptest to 1.7.0 (#10733) * chore(deps): weekly `cargo update` (#10728) Locking 50 packages to latest compatible versions Updating alloy-chains v0.2.3 -> v0.2.4 Updating alloy-dyn-abi v1.1.2 -> v1.2.0 Updating alloy-hardforks v0.2.6 -> v0.2.7 Updating alloy-json-abi v1.1.2 -> v1.2.0 Updating alloy-op-hardforks v0.2.6 -> v0.2.7 Updating alloy-primitives v1.1.2 -> v1.2.0 Updating alloy-sol-macro v1.1.2 -> v1.2.0 Updating alloy-sol-macro-expander v1.1.2 -> v1.2.0 Updating alloy-sol-macro-input v1.1.2 -> v1.2.0 Updating alloy-sol-type-parser v1.1.2 -> v1.2.0 Updating alloy-sol-types v1.1.2 -> v1.2.0 Updating anstream v0.6.18 -> v0.6.19 Updating anstyle v1.0.10 -> v1.0.11 Updating anstyle-lossy v1.1.3 -> v1.1.4 Updating anstyle-parse v0.2.6 -> v0.2.7 Updating anstyle-query v1.1.2 -> v1.1.3 Updating anstyle-svg v0.1.7 -> v0.1.8 Updating anstyle-wincon v3.0.8 -> v3.0.9 Updating aws-sdk-kms v1.72.0 -> v1.75.0 Updating aws-sdk-sso v1.71.0 -> v1.72.0 Updating aws-sdk-ssooidc v1.72.0 -> v1.73.0 Updating aws-sdk-sts v1.72.0 -> v1.73.0 Updating aws-smithy-http-client v1.0.2 -> v1.0.3 Updating base64ct v1.7.3 -> v1.8.0 Updating blst v0.3.14 -> v0.3.15 Updating bumpalo v3.17.0 -> v3.18.1 Updating bytemuck v1.23.0 -> v1.23.1 Updating cc v1.2.25 -> v1.2.26 Updating colorchoice v1.0.3 -> v1.0.4 Unchanged crossterm v0.28.1 (available: v0.29.0) Updating flate2 v1.1.1 -> v1.1.2 Updating gcloud-sdk v0.27.1 -> v0.27.2 Updating hashbrown v0.15.3 -> v0.15.4 Updating hyper-rustls v0.27.6 -> v0.27.7 Updating hyper-util v0.1.13 -> v0.1.14 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Unchanged matchit v0.8.4 (available: v0.8.6) Unchanged op-revm v5.0.1 (available: v6.0.0) Unchanged opener v0.7.2 (available: v0.8.2) Updating portable-atomic v1.11.0 -> v1.11.1 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.1) Unchanged revm v24.0.1 (available: v25.0.0) Updating revm-bytecode v4.0.1 -> v4.1.0 Updating revm-primitives v19.1.0 -> v19.2.0 Unchanged rustyline v15.0.0 (available: v16.0.0) Unchanged schemars v0.8.22 (available: v0.9.0) Updating serde_spanned v0.6.8 -> v0.6.9 Updating smallvec v1.15.0 -> v1.15.1 Updating syn-solidity v1.1.2 -> v1.2.0 Updating toml v0.8.22 -> v0.8.23 Updating toml_datetime v0.6.9 -> v0.6.11 Updating toml_edit v0.22.26 -> v0.22.27 Updating toml_write v0.1.1 -> v0.1.2 Updating tower-http v0.6.5 -> v0.6.6 Updating tracing-attributes v0.1.28 -> v0.1.29 Updating tracing-core v0.1.33 -> v0.1.34 Unchanged ui_test v0.29.2 (available: v0.30.1) Unchanged vergen v8.3.2 (available: v9.0.6) Updating web_atoms v0.1.2 -> v0.1.3 Updating windows-registry v0.4.0 -> v0.5.2 Removing windows-strings v0.3.1 Updating ws_stream_wasm v0.7.4 -> v0.7.5 Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` Co-authored-by: DaniPopes <[email protected]> * feat(cast): add `--cost` for `estimate` to return the eth cost at current gas price (#9687) feat(cast): add --cost to cast estimate the eth cost at current gas price Co-authored-by: grandizzy <[email protected]> * fix: check for op deposit tx when handling cast tx (#10742) * chore: remove announcement link in `nightly` as it is unmaintained (#10745) remove announcement link as it is unmaintained * fix: adds remaining ZKsync chains for estimate gas checks (#10719) * feat: adds remaining elastic networks for gas estimation during simulation script * chore: run fmt * chore: run rustfmt * chore: run rustfmt * Update crates/cli/src/utils/cmd.rs --------- Co-authored-by: zerosnacks <[email protected]> * feat: Add anvil set erc20 allowance endpoint (#10746) * feat: Add anvil_setERC20Allowance endpoint * chore: Remove tenderly_setErc20Balance Unfortunately anvil has the parameter order (owner, token) while tenderly has (token, owner), so they are not compatible. Fixing my previous mistake here. * chore: Formatting * refactor: unify ERC20 storage slot discovery logic (#10749) * refactor: unify ERC20 storage slot discovery logic Extracts duplicated access list handling code from `anvil_deal_erc20` and `anvil_set_erc20_allowance` into a shared `find_erc20_storage_slot` helper function. Changes: - Add comprehensive documentation explaining the slot discovery process - Reduce code duplication by ~80 lines - Improve maintainability and consistency between functions - Fix unfulfilled clippy expectation in cast/tx.rs This is a follow-up cleanup to #10746 which introduced `anvil_set_erc20_allowance`. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: add clippy back --------- Co-authored-by: Claude <[email protected]> * chore: gitignore CLAUDE instructions and settings (#10750) * chore: gitignore CLAUDE instructions and settings * fix * fix: pin action gh release to v2.2.2 (#10752) * feat(forge vb): creation code from tx trace (#10751) * take 1 impl * feat(forge vb): creation code from tx trace * clippy * feat(`forge`): run lint on forge build (#10748) * feat: integrate SolidityLinter into forge build command Add automatic linting during forge build to provide early feedback on Solidity code quality and security issues. Changes: - Add optional linter field to ProjectCompiler with builder method - Run linting before compilation when linter is configured - Respect --quiet flag to suppress linting output - Configure linter from foundry.toml LinterConfig settings - Support JSON output format for linting diagnostics - Add comprehensive tests for build-time linting behavior The linter runs before compilation and uses all settings from the [lint] section in foundry.toml including severity filtering and lint exclusions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: add lint_on_build config option to control automatic linting Add new boolean config option `lint_on_build` in LinterConfig that allows users to disable automatic linting during `forge build` while maintaining the improved developer experience by default. Changes: - Add `lint_on_build` field to LinterConfig (defaults to true) - Update forge build to check lint_on_build before configuring linter - Add test for lint_on_build = false behavior - Update existing tests to include new config field - Modify can_build_after_failure test to disable linting Users can now disable build-time linting in foundry.toml: ```toml [lint] lint_on_build = false ``` 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fmt * Update test_default_config snapshots for lint_on_build property The test_default_config was failing after adding the lint_on_build property to LintConfig. Updated the expected output snapshots to include the new property with its default value of true. - Updated TOML format snapshot to include `lint_on_build = true` in [lint] section - Updated JSON format snapshot to include `"lint_on_build": true` in lint object 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * chore(config): enable show_metrics by default in [invariant] section (#10737) * chore(config): enable show_metrics by default in [invariant] section * test(config): enable show_metrics by default in config.rs and test_helper.rs * fix invariant test, now shows metrics --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: zerosnacks <[email protected]> * chore: update nix flake (#10485) * update flake * update env variables * add nix.yml ci job Co-authored-by: sveitser <[email protected]> * review: use nixpkgs for solc --------- Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: sveitser <[email protected]> * bug(`nix`): fix build in CI (#10767) * fix: nix CI build (#10760) * update flake * try nix build * remove push from CI * Update flake.lock (#10766) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/873cccc628f5e39407e319e6711f3b7d6d1f15cc?narHash=sha256-QD7e5WNVj4aWS5mlJZZnLJ6Lg0h5RSyyEFo2I6xBUEQ%3D' (2025-06-11) → 'github:nix-community/fenix/b8fda10da7629d856086bbc1e21164c2d55691e3?narHash=sha256-Jte1NonRzaKF6UpPL5FujKHVTVvc8CAIj8fK%2BX/0qVM%3D' (2025-06-12) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/9c3476d225ccc90c081280c2a20e9f7d8a200325?narHash=sha256-R9vQiqez6Gm0ARJKgbsAeLyX493vwIaexOUAz0vDhak%3D' (2025-06-10) → 'github:rust-lang/rust-analyzer/5b2c8bc9ae90b4ad92dbeb7e52a7f5cbf5ba4d53?narHash=sha256-ewwoJOGE6sMnfXQkydmmjT6ixo1JetBZO0tDEENjOb8%3D' (2025-06-11) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/a12f3a99614894502e73eb816e9e076b0ab05730?narHash=sha256-DUVAe8E2X2QM0dAnTGlTiqemMqUMMyIeCH7UeNo0g64%3D' (2025-06-10) → 'github:NixOS/nixpkgs/f72be405a10668b8b00937b452f2145244103ebc?narHash=sha256-qX6gXVjaCXXbcn6A9eSLUf8Fm07MgPGe5ir3%2B%2By2O1Q%3D' (2025-06-11) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * make sure build runs on latest deps --------- Co-authored-by: Shaun <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix(forge): Ignore file access events to prevent rebuild loop (#10763) fix(forge): Filter out file access events to prevent rebuild loop This fixes an issue introduced by https://github.com/notify-rs/notify/pull/612, where `OPEN` events are now reported on Linux. As a result, file access (e.g., reading a file) triggers spurious change notifications, causing the compilation process to restart repeatedly. To resolve this, we explicitly filter out `OPEN` (access) events during event processing. * fix(`forge`): don't include lib in lint runs (#10771) * fix(`forge`): don't include lib in lint runs * nit * docs: minor fixes for uninstall instructions (#10777) * follow up: https://github.com/foundry-rs/foundry/pull/10335\#discussion_r2144917920 * style nit * add warning * nit * deps: bump foundry-fork-db 0.15.1 (#10778) * Update flake.lock (#10780) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/b8fda10da7629d856086bbc1e21164c2d55691e3?narHash=sha256-Jte1NonRzaKF6UpPL5FujKHVTVvc8CAIj8fK%2BX/0qVM%3D' (2025-06-12) → 'github:nix-community/fenix/a804172f150bcf81262655324e583bb0cd0f28dd?narHash=sha256-RlcGw3vAnbI3cfZn8aFaovNUd7312VZh%2B/FDWkqdA7E%3D' (2025-06-14) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/5b2c8bc9ae90b4ad92dbeb7e52a7f5cbf5ba4d53?narHash=sha256-ewwoJOGE6sMnfXQkydmmjT6ixo1JetBZO0tDEENjOb8%3D' (2025-06-11) → 'github:rust-lang/rust-analyzer/a497f4114ccf24978accb56190e60d1e1659e0c7?narHash=sha256-t6x6/PKg8Shnkd3htrxf3WMgycfRLRWvN9JHAmGWf%2Bs%3D' (2025-06-13) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/f72be405a10668b8b00937b452f2145244103ebc?narHash=sha256-qX6gXVjaCXXbcn6A9eSLUf8Fm07MgPGe5ir3%2B%2By2O1Q%3D' (2025-06-11) → 'github:NixOS/nixpkgs/6afe187897bef7933475e6af374c893f4c84a293?narHash=sha256-K9yBph93OLTNw02Q6e9CYFGrUhvEXnh45vrZqIRWfvQ%3D' (2025-06-14) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat(forge): table tests (#10775) * chore(deps): weekly `cargo update` (#10781) * chore(deps): weekly `cargo update` Locking 51 packages to latest compatible versions Updating adler2 v2.0.0 -> v2.0.1 Unchanged alloy-evm v0.10.0 (available: v0.11.0) Unchanged alloy-op-evm v0.10.0 (available: v0.11.0) Updating async-compression v0.4.23 -> v0.4.24 Updating aws-config v1.6.3 -> v1.8.0 Updating aws-runtime v1.5.7 -> v1.5.8 Updating aws-sdk-kms v1.75.0 -> v1.76.0 Updating aws-sdk-sso v1.72.0 -> v1.73.0 Updating aws-sdk-ssooidc v1.73.0 -> v1.74.0 Updating aws-sdk-sts v1.73.0 -> v1.74.0 Updating aws-sigv4 v1.3.2 -> v1.3.3 Updating aws-smithy-http-client v1.0.3 -> v1.0.5 Updating aws-smithy-json v0.61.3 -> v0.61.4 Updating aws-smithy-runtime-api v1.8.0 -> v1.8.1 Updating aws-smithy-types v1.3.1 -> v1.3.2 Updating aws-smithy-xml v0.60.9 -> v0.60.10 Updating bon v3.6.3 -> v3.6.4 Updating bon-macros v3.6.3 -> v3.6.4 Updating cc v1.2.26 -> v1.2.27 Updating cfg-if v1.0.0 -> v1.0.1 Updating clap v4.5.39 -> v4.5.40 Updating clap_builder v4.5.39 -> v4.5.40 Updating clap_complete v4.5.52 -> v4.5.54 Updating clap_derive v4.5.32 -> v4.5.40 Updating clap_lex v0.7.4 -> v0.7.5 Unchanged crossterm v0.28.1 (available: v0.29.0) Updating foundry-compilers v0.17.1 -> v0.17.3 Updating foundry-compilers-artifacts v0.17.1 -> v0.17.3 Updating foundry-compilers-artifacts-solc v0.17.1 -> v0.17.3 Updating foundry-compilers-artifacts-vyper v0.17.1 -> v0.17.3 Updating foundry-compilers-core v0.17.1 -> v0.17.3 Updating hermit-abi v0.5.1 -> v0.5.2 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Updating jiff v0.2.14 -> v0.2.15 Updating jiff-static v0.2.14 -> v0.2.15 Updating libc v0.2.172 -> v0.2.173 Unchanged matchit v0.8.4 (available: v0.8.6) Updating memchr v2.7.4 -> v2.7.5 Updating miniz_oxide v0.8.8 -> v0.8.9 Unchanged op-alloy-consensus v0.17.2 (available: v0.18.1) Unchanged op-alloy-rpc-types v0.17.2 (available: v0.18.1) Unchanged op-revm v5.0.1 (available: v6.0.0) Unchanged opener v0.7.2 (available: v0.8.2) Updating prettyplease v0.2.33 -> v0.2.34 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.1) Updating redox_syscall v0.5.12 -> v0.5.13 Adding ref-cast v1.0.24 Adding ref-cast-impl v1.0.24 Updating reqwest v0.12.19 -> v0.12.20 Unchanged revm v24.0.1 (available: v25.0.0) Unchanged revm-inspectors v0.23.0 (available: v0.24.0) Updating rustc-demangle v0.1.24 -> v0.1.25 Unchanged rustyline v15.0.0 (available: v16.0.0) Adding schemars v0.9.0 Unchanged schemars v0.8.22 (available: v0.9.0) Removing serde_repr v0.1.20 Updating serde_with v3.12.0 -> v3.13.0 Updating serde_with_macros v3.12.0 -> v3.13.0 Updating syn v2.0.101 -> v2.0.103 Updating thread_local v1.1.8 -> v1.1.9 Removing tokio-socks v0.5.2 Unchanged ui_test v0.29.2 (available: v0.30.1) Unchanged unicode-width v0.2.0 (available: v0.2.1) Unchanged vergen v8.3.2 (available: v9.0.6) Updating wasi v0.11.0+wasi-snapshot-preview1 -> v0.11.1+wasi-snapshot-preview1 Updating windows v0.61.1 -> v0.61.3 Updating windows-link v0.1.1 -> v0.1.3 Adding windows-sys v0.60.2 Updating windows-targets v0.53.0 -> v0.53.2 Updating winnow v0.7.10 -> v0.7.11 Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` * Remove EOF version --------- Co-authored-by: mattsse <[email protected]> Co-authored-by: grandizzy <[email protected]> * feat: add useSeed cheatcode to set RNG seed (#10698) * feat: mock deterministic shuffle implementation * feat: implement useSeed() * fix(test): typo * fix(test): correct implementation of randomUint() chore: format * fix: refactor seed handling logic and remove redundant assertion message * chore: remove unused imports and redundant newline * fix(test): add seed validation and tests for shuffle consistency * chore: add Shuffle test * Adapt to updated proptest --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: grandizzy <[email protected]> * feat(cast): `compute_address` add support CREATE2 addresses (#10783) * show native token symbol on tx broadcast (#10770) * fix: show native token symbol on tx broadcast * Apply suggestions from code review --------- Co-authored-by: zerosnacks <[email protected]> * chore: add hash to eip-712 cmd (#10764) * chore: add hash to eip-712 cmd * fix: windows path * feat: add --json flag to forge eip712 command * style: fmt * style: std names * style: lint * fix: free-standing structs * style: clippy * bug(anvil): incorrectly adds +1 gas when estimating transactions with explicit empty data field (#10786) * no input + empty input / test * indent * fmt * clippy * add no account auth verif * fix: eip712, bind-json solar cleanups (#10789) * fix: eip712, bind-json solar cleanups * rm hir field * ci: don't check all features (#10790) * feat: added block.time and block.number override in cast (#10727) * added time override * docs * docs * docs * again doc * block.time as u64 * block.number * alloy bump * fixes * typo * cargo update * fix test * apply review --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: Arsenii Kulikov <[email protected]> * chore: pin nextest version in ci (#10800) * chore: clean up unused EOF code (#10715) * fix(forge): vm.getChain use config for rpc and alias (#10806) * feat(forge): `--exclude-tests` option from coverage (#10807) feat: exclude tests option from coverage * chore: bump vyper 0.4.3 and remove previous `prague` handling (#10808) * bump vyper to 0.4.3 * bump to 0.4.3, remove specific prague handling * update to latest commit w/ 0.4.3, remove workaround as it fails to build * make vyper and forge available in PATH * remove ignored ERC4626VaultTest, should now be able to be ran again * chore: fix failing test (#10813) * chore: unpin `rustfmt` nightly (#10815) unpin rustfmt nightly * Revert "chore: pin nextest version in ci" (#10814) Revert "chore: pin nextest version in ci (#10800)" This reverts commit bfc53de69ca7a81d1cd8eb71f3a6035974f9ebea. * chore: use native alloy functions for otterscan helpers (#10816) * chore: reuse alloy lenient blocknumber deserializer (#10817) * chore: reuse alloy lenient blocknumber deserializer * chore: reuse alloy lenient blocknumber type * chore: remove HexDisplay util (#10819) * chore: update external integration tests (#10811) * update external integration tests * add note on last updated * chore: remove unused util (#10818) Co-authored-by: grandizzy <[email protected]> * test(cast): add tests for EIP-712 type names with colons (#10772) * test(cast): add tests for EIP-712 type names with colons Add test cases to ensure cast can parse EIP-712 typed data when type names contain colons, which are valid according to the EIP-712 specification. Closes #10765 * chore: bump core * chore: rename test * feat(forge): coverage guided fuzzing & time based campaigns for invariant mode (#10190) * rename coverage to line coverage for clarity * WIP: coverage guided fuzzing * wip persist invariant corpus * add binning and history map * rm proptest runner, add corpus mutations * fix: splice mutation, add some notes * Clippy and more tests * save * use libafl_bolt's SIMD hitmap * fix eyre issues * add comments and psuedocode * Revert libafl * Typo * Fix win config test * cleanup, save corpus at the end of run, if new coverage * consolidate corpus manager * Consolidate tx manager corpus logic * Review changes: do not stop fuzzing if corpus replay failures, report number of failures, uuids for corpus file * Default gzip corpus and config to toggle json/gzip * Evict oldest corpus with more than x mutations * Add min corpus size config, bump max mutations to default depth run * Simplify corpus manager and corpus struct, enable prefix / suffix mutation, manager to handle generate from strategy * Fuzz arg from ABI * Corpus max mutations default 5 * Save metadata on disk at eviction time * Remove more than 2 branches branch, make sure we always have one * Load gz and json seeds, ignore metadata files * ABI mutation replaces subset of arguments sometimes * prevent empty range but perform at least 1 round * trim selector when using abi_decode_input * Nit, remove clippy allow * retain corpus items that are highly likely to produce new finds * rename corpus_max_mutations to corpus_min_mutations * update cli test expectations * Stateless fuzz corpus config revert, add invariant time based campaigns * Changes after review - revert cache dir configs, invariant corpus can be external of cache - save and load as json.gz - comment update - introduce mutation type enum * Remove outdated comment * Update crates/evm/evm/src/executors/mod.rs Co-authored-by: DaniPopes <[email protected]> * Changes after review: comment, update merge_edge_coverage, use rng.gen * Fix docs * Keep test assert, found faster than without guidance * Fix * Do not use in memory mutated corpus if coverage guided is disabled. --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: grandizzy <[email protected]> Co-authored-by: DaniPopes <[email protected]> * chore: use existing minimal_tx_type fn (#10826) * feat(fmt): dprint for toml, json, md, dockerfile, ts, & yml (#10824) * feat(fmt): dprint for toml, json, md, dockerfile, ts, & yml * chore: fmt * Update flake.lock (#10830) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/a804172f150bcf81262655324e583bb0cd0f28dd?narHash=sha256-RlcGw3vAnbI3cfZn8aFaovNUd7312VZh%2B/FDWkqdA7E%3D' (2025-06-14) → 'github:nix-community/fenix/933bc78d45abaf764dbfe0fd117be981631f3e9a?narHash=sha256-79O83W9osY3wyvxZHqL0gw85tcACSX0TU5en3%2Bdky/0%3D' (2025-06-21) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/a497f4114ccf24978accb56190e60d1e1659e0c7?narHash=sha256-t6x6/PKg8Shnkd3htrxf3WMgycfRLRWvN9JHAmGWf%2Bs%3D' (2025-06-13) → 'github:rust-lang/rust-analyzer/b0552d779f7137c76f109666ce0ad28395c0e582?narHash=sha256-EMFKnO%2BJ3dZOa9J%2BuiKZgHYgzALv9dqxY7NHV0DbO/U%3D' (2025-06-20) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/6afe187897bef7933475e6af374c893f4c84a293?narHash=sha256-K9yBph93OLTNw02Q6e9CYFGrUhvEXnh45vrZqIRWfvQ%3D' (2025-06-14) → 'github:NixOS/nixpkgs/076e8c6678d8c54204abcb4b1b14c366835a58bb?narHash=sha256-1ovgdmuDYVo5OUC5NzdF%2BV4zx2uT8RtsgZahxidBTyw%3D' (2025-06-20) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore(deps): weekly `cargo update` (#10831) Locking 45 packages to latest compatible versions Updating alloy-consensus v1.0.11 -> v1.0.12 Updating alloy-consensus-any v1.0.11 -> v1.0.12 Updating alloy-contract v1.0.11 -> v1.0.12 Updating alloy-eips v1.0.11 -> v1.0.12 Updating alloy-ens v1.0.11 -> v1.0.12 Unchanged alloy-evm v0.10.0 (available: v0.12.1) Updating alloy-genesis v1.0.11 -> v1.0.12 Updating alloy-json-rpc v1.0.11 -> v1.0.12 Updating alloy-network v1.0.11 -> v1.0.12 Updating alloy-network-primitives v1.0.11 -> v1.0.12 Unchanged alloy-op-evm v0.10.0 (available: v0.12.1) Updating alloy-provider v1.0.11 -> v1.0.12 Updating alloy-pubsub v1.0.11 -> v1.0.12 Updating alloy-rpc-client v1.0.11 -> v1.0.12 Updating alloy-rpc-types v1.0.11 -> v1.0.12 Updating alloy-rpc-types-anvil v1.0.11 -> v1.0.12 Updating alloy-rpc-types-any v1.0.11 -> v1.0.12 Updating alloy-rpc-types-debug v1.0.11 -> v1.0.12 Updating alloy-rpc-types-engine v1.0.11 -> v1.0.12 Updating alloy-rpc-types-eth v1.0.11 -> v1.0.12 Updating alloy-rpc-types-trace v1.0.11 -> v1.0.12 Updating alloy-rpc-types-txpool v1.0.11 -> v1.0.12 Updating alloy-serde v1.0.11 -> v1.0.12 Updating alloy-signer v1.0.11 -> v1.0.12 Updating alloy-signer-aws v1.0.11 -> v1.0.12 Updating alloy-signer-gcp v1.0.11 -> v1.0.12 Updating alloy-signer-ledger v1.0.11 -> v1.0.12 Updating alloy-signer-local v1.0.11 -> v1.0.12 Updating alloy-signer-trezor v1.0.11 -> v1.0.12 Updating alloy-transport v1.0.11 -> v1.0.12 Updating alloy-transport-http v1.0.11 -> v1.0.12 Updating alloy-transport-ipc v1.0.11 -> v1.0.12 Updating alloy-transport-ws v1.0.11 -> v1.0.12 Unchanged alloy-trie v0.8.1 (available: v0.9.0) Updating alloy-tx-macros v1.0.11 -> v1.0.12 Updating atomic v0.6.0 -> v0.6.1 Updating autocfg v1.4.0 -> v1.5.0 Updating aws-sdk-sts v1.74.0 -> v1.75.0 Unchanged crossterm v0.28.1 (available: v0.29.0) Updating errno v0.3.12 -> v0.3.13 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Updating libc v0.2.173 -> v0.2.174 Updating markup5ever v0.16.1 -> v0.16.2 Unchanged matchit v0.8.4 (available: v0.8.6) Updating newtype-uuid v1.2.3 -> v1.2.4 Unchanged op-alloy-consensus v0.17.2 (available: v0.18.6) Unchanged op-alloy-rpc-types v0.17.2 (available: v0.18.6) Unchanged op-revm v5.0.1 (available: v7.0.1) Unchanged opener v0.7.2 (available: v0.8.2) Updating prettyplease v0.2.34 -> v0.2.35 Unchanged protobuf v3.3.0 (available: v3.7.2) Unchanged protobuf-support v3.3.0 (available: v3.7.2) Updating quinn-udp v0.5.12 -> v0.5.13 Unchanged rand v0.8.5 (available: v0.9.1) Unchanged revm v24.0.1 (available: v26.0.1) Unchanged revm-inspectors v0.23.0 (available: v0.25.0) Unchanged rustyline v15.0.0 (available: v16.0.0) Unchanged schemars v0.8.22 (available: v0.9.0) Updating syn v2.0.103 -> v2.0.104 Unchanged ui_test v0.29.2 (available: v0.30.1) Unchanged unicode-width v0.2.0 (available: v0.2.1) Unchanged vergen v8.3.2 (available: v9.0.6) Updating webpki-roots v1.0.0 -> v1.0.1 Updating zerocopy v0.8.25 -> v0.8.26 Updating zerocopy-derive v0.8.25 -> v0.8.26 Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` Co-authored-by: mattsse <[email protected]> * feat(cast): add recover-authority for EIP7702 Authorization (#10839) * cast: add subcommand recover-authority Signed-off-by: jsvisa <[email protected]> * cargo: add alloy-eips Signed-off-by: jsvisa <[email protected]> * cargo Signed-off-by: jsvisa <[email protected]> * add testcase Signed-off-by: jsvisa <[email protected]> * fmt Signed-off-by: jsvisa <[email protected]> --------- Signed-off-by: jsvisa <[email protected]> * fix(forge): filter selectors if test contract is target (#10798) * refactor: flatten bind_json.rs to one pass without state structs (#10791) * cast: Improve debugger when tracing on-chain transactions/calls (#10596) * cast: Fetch bytecodes in `run/call` to better match contracts Without fetching the bytecodes from the current chain, matching the contracts with `--with-local-artifacts` option only works if the matching contracts have been deployed in the trace. This is very limiting when trying to `--debug` an on-chain transaction. By fetching the contracts' bytecodes, we can increase the matching of address to source file, by thus providing the runtime bytecode. * cast: Strip placeholder from bytecode-object for source-map and matching If a contract contains some libraries, and thus has an "unlinked" bytecode object, it will never be matched against a deployed instance, and the source map will never be set. This fixes this issue by striping from the unlinked bytecode all placeholders, replacing them with the `0x00..00` address. It doesn't change anything regarding source-maps, but could change the matching of the runtime bytecode. The changes are usually minimal in this case, though. * chore(forge-lint): clickable links + housekeeping (#10847) * fix: receipt conversion (#10853) * feat(forge lint): disable lints with inline comment (#10776) * feat(cast): display public_key on wallet creation with "new" and "new-mnemonic" sub-commands (#10600) * feat(cast): display public_key on wallet creation with "new" and "new-mnemonic" subcommands The method used to obtain public_key with the wallet is taken from "public-key" subcommand. Update tests to match the new outputs: - match pubkey - update redactions for pubkey and to match various spacings - use raw data for assertion in "wallet_mnemonic_from_entropy" to avoid conflict with redactions * Display pubkey only when verbosity level >0 Avoid breaking changes Some unit tests added for better coverage * chore: use the new Alloy's `public_key()` helper (alloy-rs/alloy#2572) --------- Co-authored-by: grandizzy <[email protected]> * feat(cast): print a warning on calling a contract without code (#10842) * Fix typos in test identifiers and improve timestamp assertions (#10851) * Update script.rs * Update anvil_api.rs * fix: Respect `--override-*` flags on `cast call` with `--trace` flag (#10721) * fix: Respect `--override-*` flags on `cast call` with `--trace` flag * feat: Add tests for `cast call` with `--override-*` and `--trace` flags * feat: Support block number and block time overrides with `cast call --trace` * chore: touchups * chore: touchups --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> * fix: replace broken JSON-RPC error code link with EIP-1474 reference (#10717) Co-authored-by: Matthias Seitz <[email protected]> * chore: simplify tx type conversion (#10862) * feat(cheatcodes): extend usable range in `assertApproxEqRel` (#10758) * feat(cheatcodes): avoid overflow in assert_approx_eq_rel * refactor: reduce code duplication * fix: restore get_delta_int * test: test previously overflowing conditions * style: format * docs: comment * Apply suggestions from code review * test: add test case for overflow * test: add test for overflow in calculation --------- Co-authored-by: zerosnacks <[email protected]> * feat(forge-lint): [claude] unchecked calls (#10810) ## Motivation - Continue expanding the supported lints supported by `forge-lint` - Inspired by [this ghostty PR](https://github.com/ghostty-org/ghostty/commit/3de3f48faf830fe1326f44b08fb9f27fa65cefcd) and the prompts that Mitchell Hashimoto shared, we decided to showcase how to leverage LLMs and agentic —tools such as claude code— in our codebase, to encourage security researchers with limited rust knowledge to contribute. ## Solution Add 2 new lints to warn about unchecked: - low-level calls - ERC20 transfers ## Setup: The development of this PR was done by running Claude code and giving it access to both solar (so that it could check the AST impls when necessary) and foundry: ``` claude/ ├── solar/ └── foundry/ ``` **IMPORTANT**: link `@foundry/docs/dev/lintrules.md` in the prompts, so that claude is aware of the implementation and testing guidelines for `forge-lint` ## Used Prompts: Each individual prompt is separated by a blank line, to showcase the conversation with Claude code. > i want to extend `forge-lint` by adding support for new lints, as so far only the lints in @foundry/crates/lint/src/sol/ are supported. let's implement a new lint for `unchecked-transfer-erc20` which should validate whether ERC20 calls to `transfer(address to, uint256 amount)` and `transferFrom(address from, address to, uint256 amount)` check the return value. to do so, i think that the lint pass should use `fn check_item_function` to check all contract fns and flag calls that don't have its output assigned to a variable. to understand how to add new lints, you can check the implementation guidelines defined in @foundry/docs/dev/lintrules.md. for AST-related context, you can check @solar/crates/solar/ast/src/ast. at this point we had a working lint! but it was quite ugly, so i made a follow-up prompt to improve it: > that's great! `fn visit_stmt` is too complex, you don't manually need to handle all cases. Instead if the stmt is not an expression, simply do `self.walk_stmt(stmt)`. also, we don't need to cache whether we find unchecked calls or not. finally can we improve the docs of @foundry/crates/lint/src/sol/high/unchecked_transfer_erc20.rs so that people can easily follow its implementation? don't make them excessively verbose, but expand the current docs here we had a working lint for unchecked ERC20 transfers! however, i wanted to push it a little bit more and also asked for a new lint that would do the same for low-level calls > excellent. can we add a similar lint rule that ensures that low-level calls check the success of the call? it correctly implemented the logic to identify low-level calls. although, as expected, it only checked for calls without variable assignments. Since low-level calls return a tuple, it is also necessary to handle the case where users do something with the returned bytes but not with the success boolean. > `UncheckedCall` is almost there, however, we need to ensure that the user at least uses `(bool success, ) = target.call("")`. note that checks should work regardless of the var names, and independently if the second var is used or not. at this point we had a working implementation, which i tweaked a little bit manually. Finally i asked it to refactor the code and merge everything into a single file to keep "unchecked call" lints together: > great. let's refactor the code into a single file `unchecked_calls.rs` that contains different lints (UNCHECKED_CALL, UNCHECKED_TRANSFER_ERC20, etc). finally i did a style-based refactor for code readability and consistency (and also had to run clippy and fmt) --- prompt to address @grandizzy's feedback: > can you incorporate the suggestions in the PR review `[feat(forge-lint): [claude] unchecked calls](https://github.com/foundry-rs/foundry/pull/10810)`. I want you to address all the raised comments except the one regarding potential false positives (this one we will ignore for now, as it is more complex). not that you can use the github CLI via `gh` * chore: make clippy happy (#10870) * fix(cast): Always use from field of getTransaction rpc response in cast run (#10795) * feat(cast): Add --bypass-sender-recovery flag to cast run for compatibility with hardhat impersonated transactions * feat: Always use from field of getTransaction rpc response in cast run * chore: make clippy happy --------- Co-authored-by: Matthias Seitz <[email protected]> * cast: rm expect dependency_on_unit_never_type_fallback (#10872) Signed-off-by: jsvisa <[email protected]> * feat(cast): add flag to disable HTTPS certificate validation for RPC (#10869) * feat(cast): add flag to disable HTTPS certificate validation for RPC - Updated `ProviderBuilder` and `RuntimeTransport` to handle the acceptance of invalid certificates. - Modified `Config` to include `eth_rpc_accept_invalid_certs` for managing this setting. - Adjusted related tests to ensure proper functionality of the new feature. * fix test * Improve doc * fix test (config ini) --------- Co-authored-by: grandizzy <[email protected]> * Update flake.lock (#10873) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/933bc78d45abaf764dbfe0fd117be981631f3e9a?narHash=sha256-79O83W9osY3wyvxZHqL0gw85tcACSX0TU5en3%2Bdky/0%3D' (2025-06-21) → 'github:nix-community/fenix/6643d56d9a78afa157b577862c220298c09b891d?narHash=sha256-vmbu97JXqr9/sTWR5XRh646jkp8a0J9m0o6JIQTdjE4%3D' (2025-06-28) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/b0552d779f7137c76f109666ce0ad28395c0e582?narHash=sha256-EMFKnO%2BJ3dZOa9J%2BuiKZgHYgzALv9dqxY7NHV0DbO/U%3D' (2025-06-20) → 'github:rust-lang/rust-analyzer/317542c1e4a3ec3467d21d1c25f6a43b80d83e7d?narHash=sha256-hMNZXMtlhfjQdu1F4Fa/UFiMoXdZag4cider2R9a648%3D' (2025-06-25) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/076e8c6678d8c54204abcb4b1b14c366835a58bb?narHash=sha256-1ovgdmuDYVo5OUC5NzdF%2BV4zx2uT8RtsgZahxidBTyw%3D' (2025-06-20) → 'github:NixOS/nixpkgs/80d50fc87924c2a0d346372d242c27973cf8cdbf?narHash=sha256-3u6rEbIX9CN/5A5/mc3u0wIO1geZ0EhjvPBXmRDHqWM%3D' (2025-06-27) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore(deps): weekly `cargo update` (#10874) Locking 50 packages to latest compatible versions Updating alloy-consensus v1.0.12 -> v1.0.16 Updating alloy-consensus-any v1.0.12 -> v1.0.16 Updating alloy-contract v1.0.12 -> v1.0.16 Updating alloy-eips v1.0.12 -> v1.0.16 Updating alloy-ens v1.0.12 -> v1.0.16 Unchanged alloy-evm v0.10.0 (available: v0.12.3) Updating alloy-genesis v1.0.12 -> v1.0.16 Updating alloy-hardforks v0.2.7 -> v0.2.11 Updating alloy-json-rpc v1.0.12 -> v1.0.16 Updating alloy-network v1.0.12 -> v1.0.16 Updating alloy-network-primitives v1.0.12 -> v1.0.16 Unchanged alloy-op-evm v0.10.0 (available: v0.12.3) Updating alloy-op-hardforks v0.2.7 -> v0.2.11 Updating alloy-provider v1.0.12 -> v1.0.16 Updating alloy-pubsub v1.0.12 -> v1.0.16 Updating alloy-rpc-client v1.0.12 -> v1.0.16 Updating alloy-rpc-types v1.0.12 -> v1.0.16 Updating alloy-rpc-types-anvil v1.0.12 -> v1.0.16 Updating alloy-rpc-types-any v1.0.12 -> v1.0.16 Updating alloy-rpc-types-debug v1.0.12 -> v1.0.16 Updating alloy-rpc-types-engine v1.0.12 -> v1.0.16 Updating alloy-rpc-types-eth v1.0.12 -> v1.0.16 Updating alloy-rpc-types-trace v1.0.12 -> v1.0.16 Updating alloy-rpc-types-txpool v1.0.12 -> v1.0.16 Updating alloy-serde v1.0.12 -> v1.0.16 Updating alloy-signer v1.0.12 -> v1.0.16 Updating alloy-signer-aws v1.0.12 -> v1.0.16 Updating alloy-signer-gcp v1.0.12 -> v1.0.16 Updating alloy-signer-ledger v1.0.12 -> v1.0.16 Updating alloy-signer-local v1.0.12 -> v1.0.16 Updating alloy-signer-trezor v1.0.12 -> v1.0.16 Updating alloy-transport v1.0.12 -> v1.0.16 Updating alloy-transport-http v1.0.12 -> v1.0.16 Updating alloy-transport-ipc v1.0.12 -> v1.0.16 Updating alloy-transport-ws v1.0.12 -> v1.0.16 Adding alloy-trie v0.9.0 Unchanged alloy-trie v0.8.1 (available: v0.9.0) Updating alloy-tx-macros v1.0.12 -> v1.0.16 Updating aws-sdk-kms v1.76.0 -> v1.76.1 Updating aws-smithy-http-client v1.0.5 -> v1.0.6 Updating bumpalo v3.18.1 -> v3.19.0 Updating clearscreen v4.0.1 -> v4.0.2 Unchanged crossterm v0.28.1 (available: v0.29.0) Updating crunchy v0.2.3 -> v0.2.4 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Updating indexmap v2.9.0 -> v2.10.0 Updating libredox v0.1.3 -> v0.1.4 Unchanged matchit v0.8.4 (available: v0.8.6) Updating num_enum v0.7.3 -> v0.7.4 Updating num_enum_derive v0.7.3 -> v0.7.4 Adding nybbles v0.4.0 Unchanged op-alloy-consensus v0.17.2 (available: v0.18.9) Unchanged op-alloy-rpc-types v0.17.2 (available: v0.18.9) Unchanged op-revm v5.0.1 (available: v7.0.1) Unchanged opener v0.7.2 (available: v0.8.2) Updating owo-colors v4.2.1 -> v4.2.2 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.1) Unchanged revm v24.0.1 (available: v26.0.1) Unchanged revm-inspectors v0.23.0 (available: v0.25.0) Unchanged rustyline v15.0.0 (available: v16.0.0) Unchanged schemars v0.8.22 (available: v1.0.3) Updating tracy-client v0.18.1 -> v0.18.2 Updating tracy-client-sys v0.25.0 -> v0.26.0 Unchanged ui_test v0.29.2 (available: v0.30.1) Unchanged unicode-width v0.2.0 (available: v0.2.1) Unchanged vergen v8.3.2 (available: v9.0.6) Updating which v7.0.3 -> v8.0.0 Updating windows-registry v0.5.2 -> v0.5.3 Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` Co-authored-by: mattsse <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> * feat: added eth_sendRawTransactionSync and eth_sendTransactionSync support for anvil (#10860) * feat: added eth_sendRawTransactionSync support for anvil * fuxes * fixes * fixes * fixes * fix: receipt race condition --------- Co-authored-by: Matthias Seitz <[email protected]> * chore(deps): bump alloy-trie 0.9 (#10881) * chore(cast wallet): get public key using Alloy's helper (#10883) Unified approach to get pubkey over all "cast wallet" subcommands * Add more unit tests to `cast call` (#10888) * test(cast call): add more unit tests * style: apply format * chore: touchups --------- Co-authored-by: Matthias Seitz <[email protected]> * feat(forge lint): unused imports (#10662) * wip: unused imports * track constant assignement * handle global imports * fix: use `fn post_source_unit` to avoid caching usage in `LintContext` * housekeeping * style: housekeeping * feat: unaliased plain import * style: clippy * unpatch --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: DaniPopes <[email protected]> * chore: add trace for contract_abi error (#10898) * Fix typos in Anvil module comments, docs, and test names (#10889) * Update mod.rs * Update api.rs * Update miner.rs * Update anvil_api.rs * feat(`anvil`): reset to in-mem (#10897) * feat(`anvil`): reset to in-mem * fmt + clippy * fix(links): update foundry book links (#10899) * fix: forge doc panic (#10901) fix forge doc panic * chore: typos (#10908) * chore: run typos **/*.rs * chore: run typos testdata/**/*.sol * apply pr * fix(`cast`): bump alloy to 0.2.5 for Ethereum V2 API compatility w/ `cast` (#10912) * bump alloy to 0.2.5 for Ethereum V2 API * use block-explorers fix * update foundry-block-explorers including the fix * chore: bump to rust edition 2024 (#10802) * 1 shot * apply minimal fixes * unpin rustfmt nightly * fix clippy * fix clippy * fixes * name * fmts * clippy --fix * cargo fmt * update rustfmt config to be inline with other projects since we're formatting anyway * cargo fmt again --------- Co-authored-by: DaniPopes <[email protected]> * chore: ignore edition 2024 bump in .git-blame-ignore-revs (#10919) * test: check before listening (#10920) * chore: bump to MSRV 1.88 (#10921) * chore: bump to MSRV 1.88 * clippy --fix * cargo fmt * fix: spawn state writer blocking (#10922) * fix: spawn fork backendhandler on current tokio runtime (#10923) * fix: spawn fork backendhandler on current tokio runtime * fmt * Fix misleading doc comment for chisel_history_file function (#10928) * Update filter.rs * Update comments.rs * Update history.rs * fix(docs): correct --unlocked flag documentation for RPC transaction signing (#10929) * Update lib.rs * Update multi_wallet.rs * fix fmt --------- Co-authored-by: zerosnacks <[email protected]> * feat: add mesc chainid lookup (#10927) * feat: add mesc chainid lookup * cleanup * docs * Update flake.lock (#10936) flake.lock: Update Flake lock file updates: • Updated input 'fenix': 'github:nix-community/fenix/6643d56d9a78afa157b577862c220298c09b891d?narHash=sha256-vmbu97JXqr9/sTWR5XRh646jkp8a0J9m0o6JIQTdjE4%3D' (2025-06-28) → 'github:nix-community/fenix/e60617a7e9ad348c2679557d01177f9d244e6e5d?narHash=sha256-OoD7QdCBKk41sjGr7UpTxXtVba2kc2gfdex2qUCO1FQ%3D' (2025-07-04) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/317542c1e4a3ec3467d21d1c25f6a43b80d83e7d?narHash=sha256-hMNZXMtlhfjQdu1F4Fa/UFiMoXdZag4cider2R9a648%3D' (2025-06-25) → 'github:rust-lang/rust-analyzer/040049b79973a742bbd0eef25369b983f764dc38?narHash=sha256-X%2BeVYBgJtR5WtFGifchtuidsl0epV3%2BoKXVxdd9ntuY%3D' (2025-07-03) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/80d50fc87924c2a0d346372d242c27973cf8cdbf?narHash=sha256-3u6rEbIX9CN/5A5/mc3u0wIO1geZ0EhjvPBXmRDHqWM%3D' (2025-06-27) → 'github:NixOS/nixpkgs/c860cf0b3a0829f0f6cf344ca8de83a2bbfab428?narHash=sha256-4E7wWftF1ExK5ZEDzj41%2B9mVgxtuRV3wWCId7QAYMAU%3D' (2025-07-04) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore(deps): weekly `cargo update` (#10937) Locking 52 packages to latest compatible versions Updating alloy-consensus v1.0.16 -> v1.0.17 Updating alloy-consensus-any v1.0.16 -> v1.0.17 Updating alloy-contract v1.0.16 -> v1.0.17 Updating alloy-eips v1.0.16 -> v1.0.17 Updating alloy-ens v1.0.16 -> v1.0.17 Unchanged alloy-evm v0.10.0 (available: v0.14.0) Updating alloy-genesis v1.0.16 -> v1.0.17 Updating alloy-json-rpc v1.0.16 -> v1.0.17 Updating alloy-network v1.0.16 -> v1.0.17 Updating alloy-network-primitives v1.0.16 -> v1.0.17 Unchanged alloy-op-evm v0.10.0 (available: v0.14.0) Updating alloy-provider v1.0.16 -> v1.0.17 Updating alloy-pubsub v1.0.16 -> v1.0.17 Updating alloy-rpc-client v1.0.16 -> v1.0.17 Updating alloy-rpc-types v1.0.16 -> v1.0.17 Updating alloy-rpc-types-anvil v1.0.16 -> v1.0.17 Updating alloy-rpc-types-any v1.0.16 -> v1.0.17 Updating alloy-rpc-types-debug v1.0.16 -> v1.0.17 Updating alloy-rpc-types-engine v1.0.16 -> v1.0.17 Updating alloy-rpc-types-eth v1.0.16 -> v1.0.17 Updating alloy-rpc-types-trace v1.0.16 -> v1.0.17 Updating alloy-rpc-types-txpool v1.0.16 -> v1.0.17 Updating alloy-serde v1.0.16 -> v1.0.17 Updating alloy-signer v1.0.16 -> v1.0.17 Updating alloy-signer-aws v1.0.16 -> v1.0.17 Updating alloy-signer-gcp v1.0.16 -> v1.0.17 Updating alloy-signer-ledger v1.0.16 -> v1.0.17 Updating alloy-signer-local v1.0.16 -> v1.0.17 Updating alloy-signer-trezor v1.0.16 -> v1.0.17 Updating alloy-transport v1.0.16 -> v1.0.17 Updating alloy-transport-http v1.0.16 -> v1.0.17 Updating alloy-transport-ipc v1.0.16 -> v1.0.17 Updating alloy-transport-ws v1.0.16 -> v1.0.17 Updating alloy-tx-macros v1.0.16 -> v1.0.17 Updating aws-config v1.8.0 -> v1.8.1 Updating aws-sdk-kms v1.76.1 -> v1.77.0 Updating aws-sdk-sso v1.73.0 -> v1.74.0 Updating aws-sdk-ssooidc v1.74.0 -> v1.75.0 Updating aws-sdk-sts v1.75.0 -> v1.76.0 Updating cc v1.2.27 -> v1.2.29 Unchanged crossterm v0.28.1 (available: v0.29.0) Removing filetime v0.2.25 Updating foundry-compilers v0.17.3 -> v0.17.4 Updating foundry-compilers-artifacts v0.17.3 -> v0.17.4 Updating foundry-compilers-artifacts-solc v0.17.3 -> v0.17.4 Updating foundry-compilers-artifacts-vyper v0.17.3 -> v0.17.4 Updating foundry-compilers-core v0.17.3 -> v0.17.4 Updating h2 v0.4.10 -> v0.4.11 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Unchanged indicatif v0.17.11 (available: v0.18.0) Updating inferno v0.12.2 -> v0.12.3 Adding io-uring v0.7.8 Unchanged matchit v0.8.4 (available: v0.8.6) Updating notify v8.0.0 -> v8.1.0 Unchanged op-alloy-consensus v0.17.2 (available: v0.18.9) Unchanged op-alloy-rpc-types v0.17.2 (available: v0.18.9) Unchanged op-revm v5.0.1 (available: v8.0.2) Unchanged opener v0.7.2 (available: v0.8.2) 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.1) Updating reqwest v0.12.20 -> v0.12.22 Unchanged revm v24.0.1 (available: v27.0.2) Unchanged revm-inspectors v0.23.0 (available: v0.26.5) Unchanged rustyline v15.0.0 (available: v16.0.0) Adding schemars v1.0.3 Unchanged schemars v0.8.22 (available: v1.0.3) Updating serde_with v3.13.0 -> v3.14.0 Updating serde_with_macros v3.13.0 -> v3.14.0 Updating tokio v1.45.1 -> v1.46.1 Unchanged ui_test v0.29.2 (available: v0.30.2) Unchanged unicode-width v0.2.0 (available: v0.2.1) Unchanged vergen v8.3.2 (available: v9.0.6) Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` Co-authored-by: mattsse <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> * chore: remove invalid etherscan API key (#10942) * feat(forge): support vyper contract verification in `forge verify-contract` (#10864) * WIP: support vyper contract verification (cherry picked from commit e41786bcc242691892698457691ceb356eb0f4b4) * fix: typo * fix: typo * feat: bypass solc_json generation throw vyper binaries feat: make detect_language a function from VerifyArgs Impl * chore: remove unnecesary code * feat: add docs to ContractLanguage enum * feat: update block-explorers crate * chore: make rust fmt happy * chore: remove semi colons * feat: group branches * feat: use foundry compilers instead * Nit unwrap_or_else and comments --------- Co-authored-by: grandizzy <[email protected]> * feat(cast): add flag to disable alias (#10924) * feat: add flag to disable alias * fix: apply suggestions * fix: label initialization * fix: fmt+nits --------- Co-authored-by: 0xrusowsky <[email protected]> * feat(forge): apply fail_on_revert for fuzz tests too (#10941) * fix: dont check pool for gettransaction receipt (#10946) * feat(forge): add support for repository-path in forge doc (#10879) * feat: add support for repository-path in forge doc * feat: replace directory config with path to support custom branches and undo Cargo.lock * Fix compile and nits --------- Co-authored-by: grandizzy <[email protected]> * chore: add cast code disassemble test (#10950) * fix: use correct mix hash for header (#10951) * fix(cast call/estimate/send): omit function selector from arguments on create calls (#10948) * Added encode_function_args_raw which doesn't prefix the function selector and uses this in parse_function_args if the to argument is none. This omits the function signature in create calls * chore: add test cases * chore: add test cases --------- Co-authored-by: Matthias Seitz <[email protected]> * chore: more etherescan v1 cleanup (#10956) chore: etherescan v1 cleanup * feat(cast): rpc --json should format as json (#10871) cast: rpc --json format as json Signed-off-by: jsvisa <[email protected]> Co-authored-by: grandizzy <[email protected]> * fix: update block env after tx forking (#10963) * fix: update block env after tx forking * docs * feat(cast): add disable-labels for cast run (#10970) * chore: remove unused import in Counter template (#10969) * chore: link rustdocs in README (#10971) * chore: link rustdocs in README * nit * fix(ci): ignore scroll test (#10976) * feat(`dependencies`): support pinning of tags / revs when using `.gitmodules` with `foundry.lock` (#9522) * parse submodule status output * feat(`forge`): save submodules info on install * re-checkout to tag/rev after forge update * clippy * fmt * fix * fix * test * fix * override using forge update * nit * nit * fix: update only untagged deps * allow overrides * clippy * remove + rename to foundry.lock * nit * fix: sync foundry.lock on install * sync foundry lock using forge install * fix: read_and_sync_foundry_lock * fix * fix test * fix * fix * fix * Do not run can_sync_foundry_lock test on win (fails on master branch too) * feat: introduce `LockFile` type, use it in forge install and forge remove * fix: account for clean lib/ dir while syncing lockfile * fix: integrate lockfile into update * clippy * fix * fix * feat(`forge`): introduces a `Lockfile` type (#9781) * feat: introduce `LockFile` type, use it in forge install and forge remove * fix: account for clean lib/ dir while syncing lockfile * fix: integrate lockfile into update * clippy * fix * fix * clean up forge update * nits * nit * fix: update branch rev in lockfile and print updates * fix * clippy * nit * fix * assert foundry lock in tests * nit * refac ExtTester and test uni v4 foundry lock sync * oz sync test * fix: run sync after submodule update on install * fix: tag_for_commit should return earliest tag that contains commit + test * fix: write lockfile after git succeeds * feat: account for deps pinned to a branch in .gitmodules while syncing * fix: SUBMODULE_BRANCH_REGEX * fix: properly parse paths from .gitmodules * nit * clippy * fix tests * fix test * fix imports * pretty lockfile * regex const * fix: always lock to rev on sync * fmt * fix clippy * use LazyLock for regex * rm default branch helper * fix * fmt * clippy --------- Co-authored-by: grandizzy <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: grandizzy <[email protected]> * feat(`foundryup`): avoid unnecessary downloads and verify hashes of downloaded binaries upon install (#10902) * chore: clippy fix (#10983) * fix(cast): account state diffs overrides (#10982) * fix(forge-lint): [unused imports] check path slice (#10985) * feat: benchmark suite (#10804) * Add Foundry multi-version benchmarking suite - Automated benchmarking across multiple Foundry versions using hyperfine - Supports stable, nightly, and specific version tags (e.g., v1.0.0) - Benchmarks 5 major Foundry projects: account, v4-core, solady, morpho-blue, spark-psm - Tests forge test, forge build (no cache), and forge build (with cache) - Generates comparison tables in markdown format - Uses foundryup for version management - Exports JSON data for detailed analysis 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix benchmark script JSON data extraction and table formatting - Fix relative path issue causing JSON files to fail creation - Convert benchmark directories to absolute paths using SCRIPT_DIR - Improve markdown table formatting with proper column names and alignment - Use unified table generation with string concatenation for better formatting - Increase benchmark runs from 3 to 5 for more reliable results - Use --prepare instead of --cleanup for better cache management - Remove stderr suppression to catch hyperfine errors - Update table headers to show units (seconds) for clarity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * parallel benchmarking * refac: mv to benches/ dir * feat: criterion benches * fix: install foundry versions at once * nit * - setup benchmark repos in parallel - run forge build in parallet for forge-test bench - swi…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This fixes the problem of
Access(Open(_))variant not being reported.The event variant is constructed, but
watchmaskdoes not haveWatchMask::OPENset.notify/notify/src/inotify.rs
Lines 354 to 361 in f9c15eb