Repository navigation
Conversation
Locking 35 packages to latest compatible versions
Updating alloy-dyn-abi v0.8.6 -> v0.8.7
Updating alloy-json-abi v0.8.6 -> v0.8.7
Updating alloy-primitives v0.8.6 -> v0.8.7
Updating alloy-sol-macro v0.8.6 -> v0.8.7
Updating alloy-sol-macro-expander v0.8.6 -> v0.8.7
Updating alloy-sol-macro-input v0.8.6 -> v0.8.7
Updating alloy-sol-type-parser v0.8.6 -> v0.8.7
Updating alloy-sol-types v0.8.6 -> v0.8.7
Updating async-compression v0.4.13 -> v0.4.14
Updating aws-sdk-kms v1.46.0 -> v1.47.0
Updating aws-sdk-sso v1.45.0 -> v1.46.0
Updating aws-sdk-ssooidc v1.46.0 -> v1.47.0
Updating aws-sdk-sts v1.45.0 -> v1.46.0
Updating aws-smithy-runtime v1.7.1 -> v1.7.2
Updating cc v1.1.28 -> v1.1.30
Updating clap v4.5.19 -> v4.5.20
Updating clap_builder v4.5.19 -> v4.5.20
Updating clap_complete v4.5.32 -> v4.5.33
Updating derive_builder v0.20.1 -> v0.20.2
Updating derive_builder_core v0.20.1 -> v0.20.2
Updating derive_builder_macro v0.20.1 -> v0.20.2
Updating js-sys v0.3.70 -> v0.3.72
Updating lru v0.12.4 -> v0.12.5
Updating newtype-uuid v1.1.0 -> v1.1.2
Updating proc-macro2 v1.0.86 -> v1.0.87
Updating scc v2.2.0 -> v2.2.1
Updating sdd v3.0.3 -> v3.0.4
Updating syn-solidity v0.8.6 -> v0.8.7
Updating wasm-bindgen v0.2.93 -> v0.2.95
Updating wasm-bindgen-backend v0.2.93 -> v0.2.95
Updating wasm-bindgen-futures v0.4.43 -> v0.4.45
Updating wasm-bindgen-macro v0.2.93 -> v0.2.95
Updating wasm-bindgen-macro-support v0.2.93 -> v0.2.95
Updating wasm-bindgen-shared v0.2.93 -> v0.2.95
Updating web-sys v0.3.70 -> v0.3.72
note: pass `--verbose` to see 10 unchanged dependencies behind latest
chore(deps): weekly `cargo update`
Signed-off-by: Legion's <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: Legion's <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Legion's <64915515+Dargon789@users.noreply.github.com>
feat(forge): allow `--verifier custom` option (foundry-rs#9311)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix deny.toml, ignore RUSTSEC-2025-0014 (foundry-rs#10052) * fix deny.toml, ignore RUSTSEC-2025-0014 * roll back allow-git * update derive_more to 2.0 (foundry-rs#9987) * chore: fix ci, bump python setup version (foundry-rs#10054) Bump gh python setup version * feat(forge): match chain id with token symbol (foundry-rs#10043) * feat: match chain id with token symbol * fix: change symbol from matic to pol * fix: use NameChain instead of manual mapping * Fix tests, fmt and clippy --------- Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com> * feat(cast): storage add --proxy to manually specify a proxy contract when Etherscan fails to find it (foundry-rs#10033) * Adding a proxy parameter to the cast storage command, allowing manual selection of a proxy address to retrieve the full storage layout. * Adding tests for the cast storage proxy optional argument. * Using if let some else pattern. * Improved documentation. --------- Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> * fix(forge): use etherscan verifier if key provided (foundry-rs#10058) * fix(forge): use etherscan if key provided * Changes after review: expose is_sourcify and is_etherscan fns --------- Co-authored-by: gerald <3949379+getong@users.noreply.github.com> Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> Co-authored-by: supamongkonR <73258014+supamongkonR@users.noreply.github.com> Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com> Co-authored-by: Cizeon <110527347+Cizeon@users.noreply.github.com>
* feat(forge): allow path in forge selectors upload (foundry-rs#10073) * feat(forge): allow path in forge selectors upload * Changes after review: reuse PathOrContractInfo * feat: add `x86_64-musl` and `aarch64-musl` release targets (foundry-rs#9984) * feat: add `x86_64` and `aarch64` musl targets * feat: update nextest matrices * try with aarch64 targets * feat: define granular linux targets and restore `aarch64` one * revert `matrices.py` file * chore: reenable impersonate test (foundry-rs#10076) * feat: solc 0.8.29 (foundry-rs#10078) * feat: solc 0.8.29 * update match --------- Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> Co-authored-by: Giovanni Napoli <giovanni.napoli@aminagroup.com> Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Bumps the cargo group with 1 update in the / directory: [zip](https://github.com/zip-rs/zip2). Updates `zip` from 2.2.3 to 2.4.1 - [Release notes](https://github.com/zip-rs/zip2/releases) - [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md) - [Commits](zip-rs/zip2@v2.2.3...v2.4.1) --- updated-dependencies: - dependency-name: zip dependency-type: indirect dependency-group: cargo ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
…in permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
…n permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com>
Reviewer's GuideThis PR merges Forge/remix master by extending the documentation generator with variant tables, refactoring verification provider logic, standardizing comparisons via partial_cmp, and bundling a new Remix test suite along with multiple CI/workflow and sample project files. Entity relationship diagram for Counter contract storageerDiagram
COUNTER {
uint256 number
}
Class diagram for new and updated Counter contractclassDiagram
class Counter {
+uint256 number
+setNumber(newNumber uint256)
+increment()
}
Class diagram for BufWriter with new variant table methodclassDiagram
class BufWriter {
+try_write_variant_table(params: EnumDefinition, comments: Comments)
+try_write_table(...)
+try_write_events_table(...)
+write_bold(...)
+writeln(...)
+write_piped(...)
}
Class diagram for VerificationProviderType logic refactorclassDiagram
class VerificationProviderType {
+client(key: Option<&str>) Result<Box<dyn VerificationProvider>>
}
VerificationProviderType <|-- EtherscanVerificationProvider
VerificationProviderType <|-- SourcifyVerificationProvider
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
✅ 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 establishes a new Foundry project structure within the repository, complete with essential development environment configurations and CI/CD pipelines. Concurrently, it refines existing Rust codebase components by addressing floating-point comparison safety, improving error reporting, and enhancing documentation generation capabilities. The changes also streamline script simulation outputs and clarify the process for selecting external verification providers. 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.
Hey there - I've reviewed your changes and they look great!
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location> `crates/doc/src/writer/buf_writer.rs:189` </location>
<code_context>
+ /// Tries to write the variant table to the buffer.
+ /// Doesn't write anything if either params or comments are empty.
+ pub fn try_write_variant_table(
+ &mut self,
+ params: &EnumDefinition,
</code_context>
<issue_to_address>
**issue (complexity):** Consider extracting the repeated table-writing logic into a reusable helper to simplify and unify table rendering methods.
You’re introducing a lot of the same “write headers / write separator / join rows” logic that already lives in `try_write_table`. You can pull that out into a small helper and then your variant method becomes just “filter → map rows → call helper.” For example:
```rust
impl<'a> YourWriter<'a> {
/// Writes any piped-table given a title, headers, and an iterator of row cells.
fn write_piped_table<I>(
&mut self,
title: &str,
headers: &[&str],
rows: I,
) -> fmt::Result
where
I: IntoIterator<Item = Vec<String>>,
{
self.write_bold(title)?;
self.writeln()?;
// header row
self.write_piped(&headers.join("|"))?;
// separator row
self.write_piped(&headers.iter().map(|_| "---").join("|"))?;
// data rows
for row in rows {
self.write_piped(&row.join("|"))?;
}
self.writeln()
}
}
```
Then collapse your `try_write_variant_table` to:
```rust
pub fn try_write_variant_table(
&mut self,
params: &EnumDefinition,
comments: &Comments
) -> fmt::Result {
let comments = comments.include_tags(&[CommentTag::Param, CommentTag::Custom("variant".into())]);
if comments.is_empty() {
return Ok(());
}
let rows = params.values.iter().map(|value| {
let name = value.as_ref().map(|v| v.name.as_str()).unwrap_or("<none>");
let comment = comments
.iter()
.find_map(|c| c.match_first_word(name))
.unwrap_or_default()
.replace('\n', " ");
vec![
Markdown::Code(name).as_doc().unwrap(),
comment,
]
});
self.write_piped_table("Variants", &VARIANTS_TABLE_HEADERS, rows)
}
```
This preserves all behavior but removes ad-hoc joins, separators, and nesting—reusing one concise helper for every piped table.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Code Review
This pull request introduces a wide range of changes, including adding support for enum variant tables in documentation, refining verification provider logic, and adding a new counter example project. The changes are generally positive, improving functionality and code structure. However, I've identified a regression in how script execution costs are displayed, which now incorrectly hardcodes "ETH" as the currency for all chains, potentially misleading users. I've also suggested a refactoring for a new Solidity test utility to improve its clarity and style.
Dargon789
left a comment
There was a problem hiding this comment.
Forge/remix master#124
Motivation
Solution
PR Checklist
Summary by Sourcery
Add variant table support in documentation, refine verification provider logic, unify comparison routines, standardize gas estimation output, expose new conversions, adjust dependencies, and introduce a new counter example project with tests and CI workflows.
New Features:
Enhancements:
Build:
CI:
Documentation:
Tests: