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 <noreply@anthropic.com>
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.
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 |
There was a problem hiding this comment.
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:
|
Superseded by: #1257