-
Notifications
You must be signed in to change notification settings - Fork 361
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
feat: rewards v2.1 #1011
feat: rewards v2.1 #1011
Conversation
Can we add a PR description + link to previous PR? |
1427a85
to
403e0a1
Compare
6ab18c0
to
ad3f18e
Compare
Initial IMPL LGTM. Holding off an approval till we get final scope: ad3f18e |
Can we add a test case for UAM on Rewards V2.1? |
6822ceb
to
c572efb
Compare
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.
Implementation looks good, and test coverage is solid. Commented on some cosmetic nice-to-haves, but not blocking
feat: operator centric rewards feat: add new interfaces feat(wip): implement `createOperatorSetPerformanceRewardsSubmission` chore: forge fmt fix: compile feat(wip): implement `setOperatorSetOperatorSplit` fix: review changes fix: add missing `onlyWhenPaused` + `checkCanCall` feat(wip): add missing `getOperatorSetPerformanceSplit` + rename internals test(wip): `setOperatorSetPerformanceSplit` test(wip): `createOperatorSetPerformanceRewardsSubmission` - some failing chore: forge fmt refactor: renaming chore: storage report refactor: review changes refactor: review changes fix: gap refactor: review changes
c14e824
to
ce95040
Compare
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.
LGTM
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.
All looks good security-wise. Minimal Solidity diff that parallels our existing implementation.
The storage layout checker is failing, though this is expected. It fails because it detects a diff between the storage layout of this contract between dev
and this branch -- however, we're intentionally adding in 2 new storage slot variables, so no surprise.
The Certora checks are failing here, but also failing on dev, though not sure why
Good to go cc @0xrajath @0xClandestine
Operator Set Performance Rewards
Adds support for AVSs to distribute performance-based rewards to operator sets.
New Functions
createOperatorDirectedOperatorSetRewardsSubmission()
- Allows AVSs to submit rewards for specific operator setssetOperatorSetSplit()
- Enables operators to set their reward split percentage for a given operator setgetOperatorSetSplit()
- Returns the current split percentage for an operator in a specific setNew Storage
_operatorSetSplitBips
- Maps operator addresses to their split percentages per operator setisOperatorDirectedOperatorSetRewardsSubmissionHash
- Tracks processed reward submission hashesNew Events
OperatorSetSplitBipsSet
- Emitted when an operator updates their split percentageOperatorDirectedOperatorSetRewardsSubmissionCreated
- Emitted when an AVS submits new rewards