Conversation
* chore(deps): remove default features from tempo * serde
fix(forge): lookup artifact if not in available artifacts
flake.lock: Update
Flake lock file updates:
• Updated input 'fenix':
'github:nix-community/fenix/3479aaf' (2025-12-27)
→ 'github:nix-community/fenix/e2b0f06' (2026-01-03)
• Updated input 'fenix/rust-analyzer-src':
'github:rust-lang/rust-analyzer/8c5a68e' (2025-12-26)
→ 'github:rust-lang/rust-analyzer/e19dfc8' (2026-01-02)
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/3edc4a3' (2025-12-27)
→ 'github:NixOS/nixpkgs/16c7794' (2026-01-02)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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 23 packages to latest compatible versions Unchanged annotate-snippets v0.12.5 (available: v0.12.10) Unchanged anstyle-svg v0.1.11 (available: v0.1.12) Updating base64ct v1.8.1 -> v1.8.2 Updating clap v4.5.53 -> v4.5.54 Updating clap_builder v4.5.53 -> v4.5.54 Updating clap_complete v4.5.62 -> v4.5.64 Adding darling v0.23.0 Adding darling_core v0.23.0 Adding darling_macro v0.23.0 Unchanged generic-array v0.14.7 (available: v0.14.9) Updating handlebars v6.3.2 -> v6.4.0 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 instability v0.3.10 -> v0.3.11 Updating iri-string v0.7.9 -> v0.7.10 Updating libc v0.2.178 -> v0.2.179 Unchanged matchit v0.8.4 (available: v0.8.6) Unchanged mdbook v0.4.52 (available: v0.5.2) Updating openssl-probe v0.1.6 -> v0.2.0 Updating pest v2.8.4 -> v2.8.5 Updating pest_derive v2.8.4 -> v2.8.5 Updating pest_generator v2.8.4 -> v2.8.5 Updating pest_meta v2.8.4 -> v2.8.5 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) Unchanged reqwest v0.12.28 (available: v0.13.1) Updating ruint v1.17.1 -> v1.17.2 Updating rustls-native-certs v0.8.2 -> v0.8.3 Updating syn v2.0.111 -> v2.0.113 Updating tokio v1.48.0 -> v1.49.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 webpki-roots v1.0.4 -> v1.0.5 Updating zeroize_derive v1.4.2 -> v1.4.3 Updating zmij v1.0.0 -> v1.0.9 note: to see how you depend on a package, run `cargo tree --invert <dep>@<ver>` Co-authored-by: mattsse <[email protected]>
* chore: bump forge-std version used for tests * bump * fix brittle test, previously broke if there are commits after release and prior to ci run * fix gas cost --------- Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]>
* chore: bump forge-std version used for tests * bump * fix gas cost --------- Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]>
* add trace_transaction and trace_rawTransaction
* add all trace_types
* remove default trace <subcommand> [options] - record system behavior
trace record: record a trace file
$ trace record myworkload
[... Ctrl-C to stop ...]
$ trace record myworkload --Logging:enable-logs --end-after-duration 5s
$ trace record myworkload --plan profile --omit Symbolication
$ trace record myworkload --end-on-notification stop-myworkload-trace
[... elsewhere `notifyutil -p stop-myworkload-trace` ...]
$ trace record /tmp/trace-path.atrc --compress
trace amend: add data to a file
$ trace amend myworkload-003.atrc --add Symbolication
trace trim: trim a file based on kdebug event times
$ trace trim myworkload-002.atrc --from +1s --to +2s
trace providers: print information about Logging, Symbolication, etc.
trace plans: print detailed information about tracing approaches
See `man trace` for more information. and instead error
* create new trace.rs using traceextapi
* chore: touchups
---------
Co-authored-by: Matthias Seitz <[email protected]>
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.65.7 to 2.65.13. - [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@4c6723e...0e76c5c) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.65.13 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…0.0 (#12998) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.3.1 to 3.0.0. - [Release notes](https://github.com/taiki-e/cache-cargo-install-action/releases) - [Changelog](https://github.com/taiki-e/cache-cargo-install-action/blob/main/CHANGELOG.md) - [Commits](taiki-e/cache-cargo-install-action@7447f04...25ef989) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [oven-sh/setup-bun](https://github.com/oven-sh/setup-bun) from 2.0.2 to 2.1.0. - [Release notes](https://github.com/oven-sh/setup-bun/releases) - [Commits](oven-sh/setup-bun@735343b...b7a1c7c) --- updated-dependencies: - dependency-name: oven-sh/setup-bun dependency-version: 2.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.40.1 to 1.41.0. - [Release notes](https://github.com/crate-ci/typos/releases) - [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md) - [Commits](crate-ci/typos@1a319b5...5c19779) --- updated-dependencies: - dependency-name: crate-ci/typos dependency-version: 1.41.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* update deny for CI * Update more
Co-authored-by: tefyosL-sol <[email protected]>
* Update mod.rs * Update mod.rs
* chore(evm): deprecate RawCallResult::from_execution_result * remove `RawCallResult::from_execution_result` completely --------- Co-authored-by: DaniPopes <[email protected]>
…0.1 (#13070) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/taiki-e/cache-cargo-install-action/releases) - [Changelog](https://github.com/taiki-e/cache-cargo-install-action/blob/main/CHANGELOG.md) - [Commits](taiki-e/cache-cargo-install-action@25ef989...34ce512) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.65.13 to 2.66.2. - [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@0e76c5c...03ef6f5) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.66.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: tefyosL-sol <[email protected]>
Commit 0584a58 refactored replay_run to use execute_tx (which uses call_raw) instead of transact_raw, but forgot to add the commit() call that persists state changes between calls. This caused invariant test replay to reset state between handler calls, resulting in incorrect traces and logs that didn't match the actual test execution.
When using --fork-url without --block-number, forge fetches the latest block to configure the environment. However, the fork_block_number in EvmOpts remained None, causing subsequent fork operations to potentially fetch state from a different (newer) block if the chain advanced. This fix updates get_fork() to pin fork_block_number to the block that was already resolved in the environment, ensuring all fork operations use the same consistent block.
When using `type(Contract).creationCode` in test files with dynamic linking, Foundry transforms it to `VmContractHelper.getCode()`. The generated interface was missing the `view` modifier, which broke view function compatibility. Fixes #13086
…#13047) Amp-Thread-ID: https://ampcode.com/threads/T-019bbf45-d7c8-75ed-8c05-bc1638d487ee Co-authored-by: Matthias Seitz <[email protected]> Co-authored-by: Amp <[email protected]>
Adds a new cheatcode `getRecordedLogsJson` that returns recorded logs
as a JSON string, similar to the existing `getStateDiffJson` pattern.
This allows users to easily post-process recorded logs externally without
needing to manually transform the Log[] array to JSON.
JSON format:
```json
[{"topics": ["0x..."], "data": "0x...", "emitter": "0x..."}]
```
Closes #12854
* Integrate Sourcify API for contract cloning Added support for Sourcify API in `forge clone` command. * Add reqwest dependency with json feature * Remove unused import in clone.rs Removed unused import of BTreeMap. * Refactor EtherscanClient to ExplorerClient * Change sourcify module from private to public * Implement test for sourcify clone functionality Add test for cloning with sourcify source * Update clone.rs * Add url dependency to Cargo.toml * cargo fmt * Enhance Sourcify client with cached creation data Updated the Sourcify client to cache creation data and reuse it across API calls, improving efficiency. Modified the contract source code retrieval to include additional creation data fields. * Improve error handling for contract data retrieval Refactor contract source code and creation data retrieval to use fallback values when API requests fail or fields are unavailable. * Enhance contract_source_code with improved caching Updated contract_source_code to include additional fields in the API request and improved caching of creation data. Removed fallback logic for fetching creation data from the API. * Refactor creation_data handling in clone.rs Removed redundant creation_data initialization and caching. * Refactor response deserialization to use untagged enum * fix: use serde_json::Value for abi in Sourcify parsing The #[serde(untagged)] enum SourcifyContractResponse failed to deserialize because Box<RawValue> doesn't work with untagged enums. RawValue requires borrowing from the original JSON, but untagged enums buffer data during variant matching. Changes: - Change abi field from Box<RawValue> to serde_json::Value - Truncate response in error messages to avoid huge output * feat: add --sourcify-url option for custom Sourcify API endpoint * feat: imply --source sourcify when --sourcify-url is specified * feat: support full path in --sourcify-url When --sourcify-url contains v2/contract/chain, only append address and fields instead of building the full path again. --------- Co-authored-by: grandizzy <[email protected]>
* perf: add dist profile for smaller release binaries Add a new 'dist' Cargo profile optimized for distribution: - Fat LTO and codegen-units=1 for better optimization - Strip symbols for smaller binaries - opt-level="s" overrides for non-perf-critical dependencies Benchmarks on Solady test suite show dist is 8% faster than release while being 45% smaller (43MB vs 78MB). Update release workflows to use the dist profile instead of maxperf. * Apply suggestion from @DaniPopes --------- Co-authored-by: DaniPopes <[email protected]>
* chore(deps): update figment to figment2 v0.11 * rename
…FY (#13094) * feat: add precompile decoding for Prague BLS12-381 and Osaka P256VERIFY * wip * wip * fix(traces): use raw byte decoding for P256VERIFY precompile P256VERIFY (RIP-7212) uses concatenated raw bytes, not ABI encoding: - Input: hash (32) + r (32) + s (32) + qx (32) + qy (32) = 160 bytes - Output: 32 bytes where 0x...01 means success * fix(traces): use raw byte decoding for all precompiles Precompiles use concatenated raw bytes, not ABI encoding: - ecrecover: hash (32) + v (32) + r (32) + s (32), returns address in last 20 bytes - sha256/ripemd160: raw input, raw 32-byte output (ripemd in last 20 bytes) - ecadd: x1/y1/x2/y2 (32 each), returns x/y (32 each) - ecmul: x1/y1/s (32 each), returns x/y (32 each) - ecpairing: returns 32-byte bool (1 = success) - bls12PairingCheck: returns 32-byte bool (1 = success) * fix(traces): restore ABI-based precompile decoding * fix
* fix(anvil): use suggested priority fee by default * test: fix anvil trace expectations --------- Co-authored-by: tefyosL-sol <[email protected]>
Co-authored-by: tefyosL-sol <[email protected]>
Update vergen from v8 to v9 API: - vergen = "9" with features ["build", "cargo"] - vergen-git2 = "9" - Update build.rs: EmitBuilder -> Emitter + BuildBuilder + Git2Builder
* feat(cast): add eip7594 support - Added support for EIP-7594 (PeerDAS) in transaction handling, allowing users to specify blob transactions using the new format. - Added tests for both EIP-4844 and EIP-7594 blob transactions in the CLI. * Use EIP-7594 format by default
* feat(cast): add --curl flag to output equivalent curl commands Adds a `--curl` flag to cast RPC commands that outputs the equivalent curl command instead of executing the RPC request. This is useful when working with systems that have curl but not cast installed. Example: $ cast bn --curl -r https://eth.example.com curl -X POST -H 'Content-Type: application/json' --data-raw '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' 'https://eth.example.com' Supported commands: - cast rpc - cast block-number (bn) - cast chain-id - cast gas-price The flag respects configured headers and JWT authentication, including them in the generated curl command. Co-authored-by: Amp <[email protected]> Amp-Thread-ID: https://ampcode.com/threads/T-019bc94c-581c-71ed-aca2-19ab23ccf77b * feat(cast call): add --curl support Enables the --curl flag for cast call to print equivalent curl commands instead of executing the RPC request. * feat(cast send): add --curl support Enables the --curl flag for cast send to print equivalent curl commands instead of executing the RPC request. * feat(cast erc20): add --curl support to all subcommands Enables the --curl flag for all cast erc20 subcommands (balance, transfer, approve, allowance, name, symbol, decimals, total-supply, mint, burn) to print equivalent curl commands instead of executing the RPC request. * test(cast): add CLI tests for --curl flag Adds tests for: - cast rpc --curl - cast block-number --curl - cast chain-id --curl - cast gas-price --curl - cast call --curl - cast erc20 balance --curl - cast erc20 name --curl - cast erc20 decimals --curl - cast erc20 total-supply --curl Each test verifies the generated curl command contains: - curl -X POST - Content-Type: application/json header - The correct RPC method - The target URL Amp-Thread-ID: https://ampcode.com/threads/T-019bc94c-581c-71ed-aca2-19ab23ccf77b Co-authored-by: Amp <[email protected]> * fix: clippy lints in curl_transport - Use inlined format args for escaped_payload - Replace println! with crate::sh_println! (disallowed macro) - Remove redundant clone in Service impl for &CurlTransport * chore: fix rustfmt * fix(cast call): handle --curl mode early to avoid RPC calls The --curl flag was not working correctly for 'cast call' because the command made RPC calls (get_chain, ENS resolution) before the actual eth_call was made. The CurlTransport would intercept the first RPC call and exit, outputting eth_chainId instead of eth_call. This fix adds a run_curl() method that: 1. Handles --curl mode before any provider interaction 2. Manually encodes function signature and args 3. Constructs the eth_call JSON-RPC request 4. Uses generate_curl_command helper to output the curl command ENS names are not supported in --curl mode since they require RPC calls to resolve. * test: update expected output for cast_send_estimate_gas_error The error decoding behavior changed - the decoded error name and arguments are no longer appended to the error message. Update the expected test output to match the current behavior. * fix(curl): add standalone generate_curl_command function Add a public generate_curl_command function that can be used to generate curl commands without going through the CurlTransport layer. This is needed by cast call --curl to generate the eth_call curl command early before any RPC calls are made. * fix: clippy and rustfmt issues, restore test expected output - Remove redundant hex import in call.rs tests (clippy) - Fix rustfmt by breaking method chain across lines - Restore AddressInsufficientBalance suffix in test expected output --------- Co-authored-by: Amp <[email protected]> Co-authored-by: Tempo AI <[email protected]>
Review or Edit in CodeSandboxOpen the branch in Web Editor • VS Code • Insiders |
|
@gakonst is attempting to deploy a commit to the Foundry development Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Sorry @Dargon789, your pull request is larger than the review limit of 150000 diff characters
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Summary of ChangesHello @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 significantly advances Foundry's capabilities by integrating support for emerging Ethereum transaction types and enhancing developer tooling. It introduces robust handling for EIP-7594 and Tempo transactions, alongside new CLI features like Highlights
Ignored Files
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
This pull request introduces a wide range of changes, including dependency updates, bug fixes, and new features. Key additions include support for Tempo transactions, a --curl mode for cast commands to display RPC requests as curl commands, and support for Sourcify in forge clone. Notable bug fixes include ensuring state is preserved during invariant test replays and making forked environments more deterministic by pinning the block number. The PR also updates many dependencies, such as alloy, vergen, and ratatui, and refactors various parts of the codebase for better maintainability and performance.
|
@gemini-code-assist vercel bug api non cache clean forge config error wagmi not connect ? |
|
Hello @Dargon789, thanks for reaching out! I'm an AI assistant and can't directly debug live systems or specific deployment issues like Vercel bugs or Wagmi connection problems. Your message seems to mention several potential issues:
If these issues are related to the changes in this pull request, please provide more specific details or questions about how the code changes might be contributing to them. For example, if there's a specific part of the Could you elaborate on what you're observing or what specific problems you're encountering with these points? |
|
Thanks for the review, Gemini 🙏 @gemini-code-assist Every drift or conflict here is not a bug, but proof that the survivor fork is active. Even when the pipeline collides with ethereumjs or legacy rails, the deployments remain READY. Your suggestions are noted, but the orchestration is deliberate — resilience over tidiness, proof over silence. |
|
Thank you for clarifying your project's philosophy, @Dargon789. I understand that the current orchestration, including dependency versions and remappings, is a deliberate choice focused on resilience and active proof of lineage. My review will continue to highlight areas that deviate from common best practices or could introduce potential issues based on the established review criteria (Correctness, Efficiency, Maintainability, Security), but I will certainly keep your stated design principles in mind. Ultimately, the final decisions regarding implementation remain with you as the author. |
Motivation
Solution
PR Checklist