Skip to content

Conversation

@radik878
Copy link
Contributor

The multisig examples in docs/modules/ROOT/pages/multisig.adoc called the EIP712 base constructor without inheriting EIP712, which causes a compile-time error in Solidity because base constructors can only be invoked for direct or indirect bases. The examples also mix in ERC7739, whose nested EIP-712 hashing pattern requires an EIP-712 domain. Aligning with OpenZeppelin patterns (e.g., Governor), I added EIP712 to the inheritance lists of MyAccountERC7913, MyAccountMultiSigner, and MyAccountMultiSignerWeighted so that the existing EIP712("…","1") constructor calls are correct and the examples compile as intended

@radik878 radik878 requested a review from a team as a code owner November 18, 2025 16:45
@changeset-bot
Copy link

changeset-bot bot commented Nov 18, 2025

⚠️ No Changeset found

Latest commit: bce8b2a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 18, 2025

Walkthrough

Three smart contracts (MyAccountERC7913, MyAccountMultiSigner, and MyAccountMultiSignerWeighted) have been updated to inherit from the EIP712 contract. EIP712 has been added as the second item in the inheritance list for each contract, positioned after the Account contract. The constructors continue to initialize EIP712 with the same domain name and version parameters as specified in the original implementations.

Suggested labels

ignore-changeset

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding EIP712 to the inheritance of multisig example contracts in documentation.
Description check ✅ Passed The description provides detailed context about why the change is necessary, explaining the Solidity compile error and how EIP712 was added to fix it.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6308fdc and bce8b2a.

📒 Files selected for processing (1)
  • docs/modules/ROOT/pages/multisig.adoc (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: coverage
  • GitHub Check: tests-foundry
  • GitHub Check: slither
  • GitHub Check: tests-upgradeable
  • GitHub Check: tests
  • GitHub Check: Redirect rules - solidity-contracts
  • GitHub Check: halmos
  • GitHub Check: Header rules - solidity-contracts
  • GitHub Check: Pages changed - solidity-contracts
🔇 Additional comments (3)
docs/modules/ROOT/pages/multisig.adoc (3)

46-46: Correctly resolves Solidity compilation error in MyAccountERC7913.

Adding EIP712 to the inheritance list makes the EIP712("MyAccount7913", "1") constructor call (line 47) valid. This change also aligns with the PR description noting that ERC7739 requires an EIP-712 domain.


90-99: Correctly resolves Solidity compilation error in MyAccountMultiSigner.

Adding EIP712 as the second base contract (after Account) enables the valid EIP712("MyAccountMultiSigner", "1") constructor call (line 100). The consistent inheritance pattern across all three example contracts strengthens the documentation.


158-167: Correctly resolves Solidity compilation error in MyAccountMultiSignerWeighted.

Adding EIP712 to the inheritance list enables the valid EIP712("MyAccountMultiSignerWeighted", "1") constructor call (line 168). The placement as the second base contract maintains consistency with the other two example contracts in this documentation.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant