-
Couldn't load subscription status.
- Fork 162
Issuance Allocator #1245
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
base: main
Are you sure you want to change the base?
Issuance Allocator #1245
Conversation
- Add NatSpec documentation (@title, @author, @notice, @param) - Add solhint-disable directives with TODO comments for future fixes - Minor code formatting changes to address lint rules All packages now pass pnpm lint with no reported issues. Verified with scripts/compare-repo-contract-bytecode-excluding-metadata.mjs: only mock contracts have functional bytecode changes.
- Move 36 duplicate interface files from contracts and token-distribution to interfaces package - Update all import statements across contracts, token-distribution, horizon, and subgraph-service to use @graphprotocol/interfaces - Delete duplicate interface files from source packages - Fix pragma versions for compatibility across compiler configurations - Add @graphprotocol/interfaces dependency to token-distribution All builds and tests passing.
- Dual-version interfaces: ^0.7.x || ^0.8.0 (max compatibility) - V0.8-only interfaces: ^0.8.22 (modern features support) Interfaces should allow wider compiler version ranges for external consumer compatibility, while implementations use exact versions for predictable compilation. Dual-version files use ^0.8.0 since they can't leverage v0.8 features anyway. V0.8-only files use ^0.8.22 for custom errors and named mappings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add explanation of open-ended pragma ranges for interface compatibility and document available TypeScript type generation formats.
- Rename interface parameters to avoid conflicts with getter functions - Add parameter references in mock contracts to silence unused warnings - Configure hardhat-ignore-warnings for contracts/test package
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
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 introduces an "Issuance Allocator" system for managing token issuance distribution across protocol components, along with supporting infrastructure and interface updates.
- Implements IssuanceAllocator contract for centralized token distribution with allocator-minting and self-minting allocation types
- Adds DirectAllocation contract for simple token receiving and distribution
- Updates interface pragma versions from exact versions to caret ranges for better compatibility
Reviewed Changes
Copilot reviewed 249 out of 322 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/issuance/contracts/allocate/IssuanceAllocator.sol | Core contract managing token issuance allocation and distribution |
| packages/issuance/contracts/allocate/DirectAllocation.sol | Simple target contract for receiving and distributing tokens |
| packages/issuance/contracts/allocate/IssuanceAllocator.md | Comprehensive documentation for IssuanceAllocator functionality |
| packages/issuance/README.md | Package overview and setup instructions |
| packages/interfaces/contracts/**/*.sol | Updated pragma statements from exact to caret ranges (e.g., 0.8.27 to ^0.8.22) |
| packages/interfaces/README.md | Added compiler version strategy documentation |
| packages/horizon/contracts/**/*.sol | Import path updates to use interfaces package |
| packages/contracts/contracts/tests/*.sol | Import path updates and test improvements |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| AllocationTarget storage targetData = $.allocationTargets[target]; | ||
|
|
||
| // Total allocation calculation and check is delayed until after notifications. | ||
| // Distributing and notifying unecessarily is harmless, but we need to prevent |
Copilot
AI
Oct 22, 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.
Corrected spelling of 'unecessarily' to 'unnecessarily'.
| // Distributing and notifying unecessarily is harmless, but we need to prevent | |
| // Distributing and notifying unnecessarily is harmless, but we need to prevent |
Issuance Allocator
🚨 Report Summary
For more details view the full report in OpenZeppelin Code Inspector |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1245 +/- ##
==========================================
+ Coverage 82.84% 85.83% +2.98%
==========================================
Files 47 45 -2
Lines 2093 2294 +201
Branches 620 680 +60
==========================================
+ Hits 1734 1969 +235
+ Misses 359 325 -34
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
No description provided.