Skip to content

refactor(incentive-council): audit changes#1711

Merged
0xClandestine merged 6 commits intorelease-dev/incentive-councilfrom
fix/audit-changes
Feb 2, 2026
Merged

refactor(incentive-council): audit changes#1711
0xClandestine merged 6 commits intorelease-dev/incentive-councilfrom
fix/audit-changes

Conversation

@0xClandestine
Copy link
Copy Markdown
Member

@0xClandestine 0xClandestine commented Jan 28, 2026

Motivation:

Address findings from the Certora security audit of the Incentive Council implementation (January 2026).

Modifications:

  • H-01 Fix: Modified _createAVSRewardsSubmission to transfer tokens from msg.sender instead of avs parameter, ensuring EmissionsController correctly sources funds for EigenDA rewards distributions
  • M-02 Fix: Simplified _takeProtocolFee to consistently check isOptedInForProtocolFee[msg.sender] across all submission types, removing logic inconsistency in fee opt-in checks
  • L-01 Fix: Standardized MAX_REWARDS_AMOUNT validation to check pre-fee amounts in _validateOperatorDirectedRewardsSubmission, ensuring consistent 1e38-1 cap enforcement
  • I-02 & I-04 Fix: Updated natspec documentation in RewardsCoordinatorStorage and IRewardsCoordinator to reference correct function names (createRewardsForAllEarners, createOperatorDirectedOperatorSetRewardsSubmission, createUniqueStakeRewardsSubmission) and current architecture (EmissionsController vs deprecated token hopper)
  • Enhanced integration tests with improved state checks for comprehensive E2E coverage

Result:

Improved protocol correctness and security.

- For most rewards submissions we were checking the amount before the fee, however operator directed rewards submissions were checking the amount afterwards creating an inconsistency.
- avs may not necessarily equal msg.sender (like in the case of EC submitting)
Addresses Certora audit findings I-02 and I-04 by updating natspec documentation to reflect current function names and architecture.

- Updated pausable flag comments to reference correct function names (createRewardsForAllEarners, createOperatorDirectedOperatorSetRewardsSubmission, createUniqueStakeRewardsSubmission)
- Updated createRewardsForAllEarners interface documentation to reference EmissionsController instead of deprecated token hopper contract
@nadir-akhtar
Copy link
Copy Markdown
Collaborator

nadir-akhtar commented Jan 30, 2026

@claude Check the fixes for each issue indicated in the description versus each commit implementing the fix. Ensure that all issues are fixed, that no new bugs are introduced, and that there is no surplus functionality beyond what it takes to perform the fixes

@Layr-Labs Layr-Labs deleted a comment from claude bot Jan 31, 2026
@0xClandestine 0xClandestine merged commit cc4bd0e into release-dev/incentive-council Feb 2, 2026
10 checks passed
@0xClandestine 0xClandestine deleted the fix/audit-changes branch February 2, 2026 19:35
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.

3 participants