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)
* 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>
Bumps the cargo group with 2 updates in the / directory: [tracing-subscriber](https://github.com/tokio-rs/tracing) and [ammonia](https://github.com/rust-ammonia/ammonia). Updates `tracing-subscriber` from 0.3.19 to 0.3.20 - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](tokio-rs/tracing@tracing-subscriber-0.3.19...tracing-subscriber-0.3.20) Updates `ammonia` from 4.1.0 to 4.1.2 - [Release notes](https://github.com/rust-ammonia/ammonia/releases) - [Changelog](https://github.com/rust-ammonia/ammonia/blob/master/CHANGELOG.md) - [Commits](rust-ammonia/ammonia@v4.1.0...v4.1.2) --- updated-dependencies: - dependency-name: tracing-subscriber dependency-version: 0.3.20 dependency-type: direct:production dependency-group: cargo - dependency-name: ammonia dependency-version: 4.1.2 dependency-type: indirect dependency-group: cargo ... Signed-off-by: dependabot[bot] <support@github.com>
Reviewer's GuideThis PR enriches the documentation pipeline by adding variant‐table support, refactors provider‐selection and sorting routines to use more robust pattern and comparison methods, applies a minor regex fix for test redactions, adds missing comment‐conversion helpers, bumps a dependency, and layers in comprehensive CI scaffolding—including multiple GitHub workflows, issue templates, and a new “counter” example project. Entity relationship diagram for Counter contract storageerDiagram
COUNTER {
uint256 number
}
Class diagram for new and updated documentation writer typesclassDiagram
class BufWriter {
+try_write_variant_table(params: EnumDefinition, comments: Comments)
+try_write_properties_table(params, comments)
+try_write_events_table(params, comments)
}
class Comments {
+From<Vec<Comment>>
}
class EnumDefinition {
values
}
class Comment {
tag
match_first_word(name)
}
BufWriter --> EnumDefinition
BufWriter --> Comments
Comments <|-- Comment
EnumDefinition "1" -- "*" Comment : values
Class diagram for Counter Solidity contractclassDiagram
class Counter {
+number: uint256
+setNumber(newNumber: uint256)
+increment()
}
Class diagram for CounterScript Solidity contractclassDiagram
class CounterScript {
+counter: Counter
+setUp()
+run()
}
CounterScript --> Counter
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 significantly expands the project's infrastructure by integrating a new Foundry-based smart contract development environment, complete with CI/CD pipelines and essential Solidity testing utilities. Concurrently, it refines several core Rust components, enhancing dependency management, improving documentation generation for Solidity enums, and streamlining the user experience for script simulations and verification provider selection. 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 - here's some feedback:
- This PR mixes several unrelated changes (documentation rendering, provider logic, CI workflows, example contracts), consider splitting it into smaller, focused PRs for easier review and better traceability.
- The new variant table rendering shares a lot of logic with the existing parameter/events tables; you could extract a common helper to reduce duplication and ensure consistency.
- Hardcoding the token symbol to "ETH" may break simulations on non‐Ethereum chains—consider using the existing chain metadata or allowing configuration to support other native tokens.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- This PR mixes several unrelated changes (documentation rendering, provider logic, CI workflows, example contracts), consider splitting it into smaller, focused PRs for easier review and better traceability.
- The new variant table rendering shares a lot of logic with the existing parameter/events tables; you could extract a common helper to reduce duplication and ensure consistency.
- Hardcoding the token symbol to "ETH" may break simulations on non‐Ethereum chains—consider using the existing chain metadata or allowing configuration to support other native tokens.
## Individual Comments
### Comment 1
<location> `crates/doc/src/writer/buf_writer.rs:187` </location>
<code_context>
self.try_write_table(CommentTag::Param, params, comments, "Properties")
}
+ /// 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(
</code_context>
<issue_to_address>
**issue (complexity):** Consider extracting a generic helper to handle table writing and reduce duplicated boilerplate code.
Here’s one way to remove almost all of the duplication by extracting a small, generic `try_write_table_rows` helper. You keep all existing behavior (including your custom tag‐filtering), but collapse the “write title, headers, separator, rows, blank line” boilerplate into one place:
```rust
impl DocWriter {
/// Generic table writer: filters by `tag`, writes a bold `title`,
/// pipes the headers/separator, then calls `row_fn` for each item.
fn try_write_table_rows<T, F>(
&mut self,
tag: CommentTag,
items: impl IntoIterator<Item = T>,
comments: &Comments,
title: &str,
headers: &[&str],
mut row_fn: F,
) -> fmt::Result
where
F: FnMut(&T, &Comments, &mut Self) -> fmt::Result,
{
let comments = comments.include_tags(&[tag]);
if comments.is_empty() {
return Ok(());
}
self.write_bold(title)?;
self.writeln()?;
self.write_piped(&headers.join("|"))?;
// simple separator of same length as headers
let sep = headers.iter().map(|_| "---").join("|");
self.write_piped(&sep)?;
for item in items {
row_fn(&item, &comments, self)?;
}
self.writeln()?;
Ok(())
}
pub fn try_write_variant_table(
&mut self,
params: &EnumDefinition,
comments: &Comments,
) -> fmt::Result {
self.try_write_table_rows(
// include both Param and custom “variant” tags
CommentTag::Custom("variant".into()),
¶ms.values,
comments,
"Variants",
&VARIANTS_TABLE_HEADERS,
|value, comments, w| {
let name = value.as_ref().map(|v| v.name.clone());
let text = name
.as_ref()
.and_then(|n| comments.iter().find_map(|c| c.match_first_word(n)))
.unwrap_or_default()
.replace('\n', " ");
let row = [
Markdown::Code(name.as_deref().unwrap_or("<none>")).as_doc()?,
text,
];
w.write_piped(&row.join("|"))?;
Ok(())
},
)
}
}
```
Benefits:
- All table‐boilerplate lives in one short method.
- You only pass headers + a tiny row lambda.
- Keeps your custom tag filtering and Markdown code exactly the same.
</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 several enhancements, including support for enum variant tables in documentation, refactoring of provider selection logic, and standardization of float comparisons. It also adds a new counter example project with full CI setup.
My review focuses on a few key areas. I've identified a regression where the native currency symbol is hardcoded to 'ETH' in script simulation outputs, which affects multi-chain support. I've also noted a minor formatting issue in a new Solidity dependency file.
Overall, the changes are a good step forward, especially the documentation improvements and refactorings. Addressing the currency symbol issue is important for maintaining the tool's multi-chain capabilities.
Pull request was closed
Motivation
Solution
PR Checklist
Summary by Sourcery
Add enum variant table support in documentation, refine provider selection logic, standardize comparison methods, update dependencies and tooling, and introduce a sample Counter example with its tests, scripts, and CI workflows.
New Features:
Bug Fixes:
Enhancements:
CI:
Documentation:
Tests:
Chores: