-
Notifications
You must be signed in to change notification settings - Fork 5
feat: Unified SavingCircles with all delegation features #46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…tract - Add EIP-712 signature support for account abstraction - Implement delegated deposits with on-chain opt-in - Add batch deposit operations - Include signature-based delegation for gasless transactions - Remove separate delegation contract files - All features now in single SavingCircles.sol as requested BREAKING CHANGE: Removed separate DelegatedSavingCircles contract 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Update DelegatedSavingCircles tests for unified contract - Fix function ordering in SavingCircles.sol (internal before internal view) - Fix OpenZeppelin proxy import paths - Update all test assertions to use ISavingCircles interface 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- CI forge version expects multi-line format for this function - Local nightly forge wants single-line but CI stable version needs multi-line 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR integrates all delegation features directly into the main SavingCircles.sol contract, eliminating the need for separate delegation contracts. The unified implementation includes EIP-712 signature support for account abstraction, delegated deposits with on-chain opt-in, batch deposit operations, and gasless transaction capabilities.
- Consolidates delegation functionality into main
SavingCircles.solcontract - Adds EIP-712 signature support and batch deposit operations
- Removes separate delegation contract files and interfaces
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/unit/DelegatedSavingCircles.t.sol | Updates test file to use unified contract instead of separate delegation contract |
| src/interfaces/ISavingCirclesWithDelegation.sol | Removes duplicate interface file |
| src/interfaces/ISavingCircles.sol | Adds delegation-related events, errors, and function declarations |
| src/interfaces/IDelegatedSavingCircles.sol | Removes separate delegation interface |
| src/contracts/SavingCirclesWithDelegation.sol | Removes separate delegation contract implementation |
| src/contracts/SavingCircles.sol | Integrates all delegation features into main contract |
| src/contracts/DelegatedSavingCircles.sol | Removes extension contract |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| depositAmount: DEPOSIT_AMOUNT, | ||
| token: address(token), | ||
| depositInterval: DEPOSIT_INTERVAL, | ||
| circleStart: block.timestamp, |
Copilot
AI
Sep 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The field ordering in the Circle struct initialization has changed from the original ordering (circleStart, token, depositAmount, depositInterval) to (depositAmount, token, depositInterval, circleStart). This reordering should match the actual struct definition in ISavingCircles to avoid potential issues.
- Add clear documentation for the EIP-712 type hash string - Clarify that it must match the exact struct definition used by off-chain signers - Apply forge formatting (single-line function declaration for local) - Note: Circle struct field ordering in test is already correct 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- CI's stable forge version requires multi-line format - Local nightly forge prefers single-line but CI needs multi-line 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Remove BatchDepositCompleted event from interface - Remove event emission from batchDepositIfAllowed function - Update test to not expect this event - Apply forge formatting 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Summary
SavingCircles.solcontractChanges
setDelegatedDepositsEnabledWithSig()for gasless transactionsISavingCirclesinterface with all new methodsDelegatedSavingCircles.solSavingCirclesWithDelegation.solBenefits
🤖 Generated with Claude Code