Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
95da83f
feat: avs performance rewards pauser index
0xrajath Oct 15, 2024
72d118b
feat: IRewardsCoordinator
0xrajath Oct 16, 2024
9fa7737
feat: isAVSPerformanceRewardsSubmissionHash
0xrajath Oct 16, 2024
de66c70
feat: OperatorReward struct
0xrajath Oct 16, 2024
72cf05e
feat: _validatePerformanceRewardsSubmission
0xrajath Oct 16, 2024
3975548
feat: processClaims
0xrajath Oct 17, 2024
179aa1f
feat: operatorAVSCommissionBips
0xrajath Oct 18, 2024
d4db04d
feat: setOperatorAVSCommission
0xrajath Oct 18, 2024
acd51b3
feat: delegation aware rewards submission
0xrajath Oct 18, 2024
ea509cb
feat: rewards description
0xrajath Oct 25, 2024
4c444e7
feat: setOperatorAVSCommission
0xrajath Oct 25, 2024
4ac10f9
refactor: operator commission struct
0xrajath Oct 25, 2024
b2e2c20
feat: setOperatorPICommission
0xrajath Oct 25, 2024
60a2274
refactor: spaces
0xrajath Oct 25, 2024
ad8ec28
fix: storage gap
0xrajath Oct 25, 2024
4d8b04b
feat: timestamp checkpoints
0xrajath Oct 25, 2024
50a0def
feat: handling overlapping commission delays
0xrajath Oct 26, 2024
5191499
feat: operator commission getters
0xrajath Oct 26, 2024
c2204df
feat: pausers
0xrajath Oct 26, 2024
3bc013c
fix: git submodule
0xrajath Oct 26, 2024
92201fb
chore: resolved TODOs
0xrajath Oct 28, 2024
4f65f54
chore: remove safecast
0xrajath Oct 28, 2024
9f18c44
refactor: operator commission
0xrajath Oct 28, 2024
d59a3b7
docs: updated natspec
0xrajath Oct 28, 2024
2cc14ee
refactor: commission to split in RewardsCoordinator
0xrajath Oct 30, 2024
d1c5c1b
refactor: commission to split in deploy scripts
0xrajath Nov 1, 2024
943d954
refactor: commission to split in tests
0xrajath Nov 1, 2024
d0ef9f7
refactor: operator-directed rewards
0xrajath Nov 3, 2024
1541867
test: initial tests
0xrajath Nov 5, 2024
e2764b1
test: refactor setup
0xrajath Nov 5, 2024
85077b0
test: caller is not avs
0xrajath Nov 5, 2024
2d4039f
test: no operator rewards
0xrajath Nov 5, 2024
361c256
test: remove unused commented code
0xrajath Nov 5, 2024
2a0d7f1
test: duplicate strategies
0xrajath Nov 5, 2024
d636881
test: invalid strategy
0xrajath Nov 5, 2024
69b00c7
test: exceeding max duration
0xrajath Nov 5, 2024
ec7361d
test: invalid interval seconds
0xrajath Nov 5, 2024
e843c45
test: invalid interval start timestamp
0xrajath Nov 5, 2024
d373f52
test: rewards submission too stale
0xrajath Nov 5, 2024
0651726
test: not retroactive
0xrajath Nov 5, 2024
c2becb6
test: refactor
0xrajath Nov 5, 2024
64e92f8
test: duplicate operators
0xrajath Nov 6, 2024
625b64d
test: operator rewards
0xrajath Nov 6, 2024
f4efbaa
test: single submission
0xrajath Nov 6, 2024
18d680a
test: multiple submissions
0xrajath Nov 6, 2024
90de06c
test: initial operator avs split tests
0xrajath Nov 6, 2024
456d27d
test: operator avs split negative cases
0xrajath Nov 6, 2024
8980cf2
test: set operator PI split tests
0xrajath Nov 6, 2024
8a3a832
test: re-entrancy
0xrajath Nov 6, 2024
b6b666d
fix: remove PI minimum
0xrajath Nov 6, 2024
1734e80
test: process claims
0xrajath Nov 6, 2024
1d6abb0
fix: comments
0xrajath Nov 13, 2024
caf848c
refactor: common validation
0xrajath Nov 13, 2024
d23fc47
test: fix failing fuzz tests
0xrajath Nov 13, 2024
44c2b7a
fix: conflicts from dev
0xrajath Nov 13, 2024
41d15e2
docs: storage report
0xrajath Nov 14, 2024
1eaf0ca
chore: update bindings
0xrajath Nov 14, 2024
d2d3db1
chore: new bindings
0xrajath Nov 14, 2024
2b73145
fix: use slow mode on local build
ypatil12 Nov 14, 2024
e2c4f5a
chore: remove from scratch config
ypatil12 Nov 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
export RPC_URL="http://127.0.0.1:8545"
echo "Extracted PRIVATE_KEY: $PRIVATE_KEY"
echo "---Deploying Contracts"
RUST_LOG=forge,foundry=trace forge script script/deploy/local/Deploy_From_Scratch.s.sol \
RUST_LOG=forge,foundry=trace forge script script/deploy/local/Deploy_From_Scratch.s.sol --slow \
--rpc-url $RPC_URL \
--private-key "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" \
--broadcast \
Expand Down
1 change: 1 addition & 0 deletions docs/storage-report/BackingEigen.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@
| transferRestrictionsDisabledAfter | uint256 | 304 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen |
| allowedFrom | mapping(address => bool) | 305 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen |
| allowedTo | mapping(address => bool) | 306 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen |
| isMinter | mapping(address => bool) | 307 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen |
55 changes: 29 additions & 26 deletions docs/storage-report/RewardsCoordinator.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
| Name | Type | Slot | Offset | Bytes | Contract |
|--------------------------------------|---------------------------------------------------------|------|--------|-------|--------------------------------------------------------------|
| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _initializing | bool | 0 | 1 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _owner | address | 51 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _status | uint256 | 151 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[49] | 152 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _DOMAIN_SEPARATOR | bytes32 | 201 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 202 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| rewardsUpdater | address | 203 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| activationDelay | uint32 | 203 | 20 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| currRewardsCalculationEndTimestamp | uint32 | 203 | 24 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| globalOperatorCommissionBips | uint16 | 203 | 28 | 2 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| claimerFor | mapping(address => address) | 204 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 205 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| submissionNonce | mapping(address => uint256) | 206 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 207 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 208 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isRewardsForAllSubmitter | mapping(address => bool) | 209 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 210 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[39] | 211 | 0 | 1248 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| Name | Type | Slot | Offset | Bytes | Contract |
|--------------------------------------------|----------------------------------------------------------------------------------|------|--------|-------|--------------------------------------------------------------|
| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _initializing | bool | 0 | 1 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _owner | address | 51 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _status | uint256 | 151 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[49] | 152 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _DOMAIN_SEPARATOR | bytes32 | 201 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 202 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| rewardsUpdater | address | 203 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| activationDelay | uint32 | 203 | 20 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| currRewardsCalculationEndTimestamp | uint32 | 203 | 24 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| defaultOperatorSplitBips | uint16 | 203 | 28 | 2 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| claimerFor | mapping(address => address) | 204 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 205 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| submissionNonce | mapping(address => uint256) | 206 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 207 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 208 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isRewardsForAllSubmitter | mapping(address => bool) | 209 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 210 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| isOperatorDirectedAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 211 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| operatorAVSSplitBips | mapping(address => mapping(address => struct IRewardsCoordinator.OperatorSplit)) | 212 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| operatorPISplitBips | mapping(address => struct IRewardsCoordinator.OperatorSplit) | 213 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
| __gap | uint256[37] | 214 | 0 | 1184 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator |
35 changes: 19 additions & 16 deletions docs/storage-report/RewardsCoordinatorStorage.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
| Name | Type | Slot | Offset | Bytes | Contract |
|--------------------------------------|---------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------|
| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 1 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| rewardsUpdater | address | 2 | 0 | 20 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| activationDelay | uint32 | 2 | 20 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| currRewardsCalculationEndTimestamp | uint32 | 2 | 24 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| globalOperatorCommissionBips | uint16 | 2 | 28 | 2 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| claimerFor | mapping(address => address) | 3 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 4 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| submissionNonce | mapping(address => uint256) | 5 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 6 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 7 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isRewardsForAllSubmitter | mapping(address => bool) | 8 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 9 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| __gap | uint256[39] | 10 | 0 | 1248 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| Name | Type | Slot | Offset | Bytes | Contract |
|--------------------------------------------|----------------------------------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------|
| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 1 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| rewardsUpdater | address | 2 | 0 | 20 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| activationDelay | uint32 | 2 | 20 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| currRewardsCalculationEndTimestamp | uint32 | 2 | 24 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| defaultOperatorSplitBips | uint16 | 2 | 28 | 2 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| claimerFor | mapping(address => address) | 3 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 4 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| submissionNonce | mapping(address => uint256) | 5 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 6 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 7 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isRewardsForAllSubmitter | mapping(address => bool) | 8 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 9 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| isOperatorDirectedAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 10 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| operatorAVSSplitBips | mapping(address => mapping(address => struct IRewardsCoordinator.OperatorSplit)) | 11 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| operatorPISplitBips | mapping(address => struct IRewardsCoordinator.OperatorSplit) | 12 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
| __gap | uint256[37] | 13 | 0 | 1184 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage |
Loading
Loading