Repository navigation
Releases: Layr-Labs/eigenlayer-contracts
Release list
v1.3.0-rc.0
Overview
This is the release candidate for the upcoming EigenLayer mainnet slashing release. It encompasses changes from two external audits along with several testing upgrades.
Note: This release is the similar to our v1.4.0.tesnet-holesky release, except it does not include any Pectra compatibility changes. We anticipate slashing to be deployed on mainnet prior to the mainnet Pectra hard fork.
Breaking Changes
- Require AVS Metadata Registration prior to Opset Creation #1025
- Rename
getQueuedWithdrawal->queuedWithdrawals: #1133.getQueuedWithdrawalstill exists, but changes the behavior ofgetQueuedWithdrawals. - Behavior of
getMinimumSlashableStake: #1037 encumberedMagnitudegetter: #1038ISignatureUtils->ISignatureUtilsMixinandISignatureUtilsMixinTypes: #1015
What's Changed
- docs: rewards v2 audit report by @0xrajath in #1021
- chore: merge
devtotestnet-holeskyby @0xrajath in #1032 - feat: slashing release by @8sunyuan in #679
- feat: rewards v2.1 by @0xClandestine in #1011
- feat: storage-diff.sh by @0xClandestine in #1054
- docs: Rewards v2.1 by @nadir-akhtar in #1055
- refactor: quality of life improvements by @0xClandestine in #1006
- fix: enforce no compile warnings by @0xClandestine in #1057
- chore: rewards v2.1 zeus script by @0xrajath in #1058
- docs: updated rewards v2.1 docs by @0xrajath in #1061
- test: improve coverage by @0xClandestine in #1059
- feat: ci storage check required by @0xClandestine in #1062
- docs: fix broken link by @dabit3 in #907
- docs: rm -rf docs/storage-report by @0xClandestine in #1063
- feat: add size diff workflow by @0xClandestine in #1065
- chore: remove old release scripts by @0xClandestine in #1066
- fix: zeus upgrade name by @0xrajath in #1068
- chore: vscode settings json by @0xrajath in #1071
- fix(ci): intense test errors by @0xClandestine in #1072
- chore: update to open source zeus repo by @jbrower95 in #1084
- fix: remove deprecated hardhat configs by @bowenli86 in #1090
- perf: parallelize foundry workflows by @bowenli86 in #1094
- refactor: limit continuous fuzzing to dev branch by @bowenli86 in #1101
- refactor: registrar interfaces by @8sunyuan in #1102
- feat: alm upgrade script by @8sunyuan in #1103
- perf: use x64 16core machine for CI by @bowenli86 in #1099
- fix: remove tsconfig by @bowenli86 in #1114
- perf: run Foundry CI tests only for relevant code changes by @bowenli86 in #1112
- perf: speed up test coverage job in CI by @bowenli86 in #1115
- docs: fix all misspellings by @0xClandestine in #1119
- perf: install lcov via prebuilt binary, instead of via apt by @bowenli86 in #1123
- perf: add cache for forge build by @bowenli86 in #1125
- feat: add typos-cli ci check by @0xClandestine in #1126
- feat: slashing audit fixes by @wadealexc in #1046
- fix: disable foundry ci suite path check by @0xClandestine in #1159
- chore: re-enable foundry ci suite path check by @bowenli86 in #1160
- docs: add warning in PR template by @0xClandestine in #1174
- feat: add pull request labeler to ci pipeline by @0xClandestine in #1177
- chore: improve labeler config by @0xClandestine in #1185
- chore: improve labeler config by @0xClandestine in #1186
- chore(ci): lint pr titles by @0xClandestine in #1193
- fix: DSF increase on checkpointed nonzero shares by @ypatil12 in #1176
- chore: disable ci path filtering by @0xClandestine in #1202
- docs(avs-directory): mark AVSDirectory as deprecated by @nadir-akhtar in #1199
- chore: consolidate/update deploy from scratch scripts by @ypatil12 in #1209
- test: slashing integration testing by @ypatil12 in #1211
- chore: forge fmt tests by @0xClandestine in #1212
- docs: updates for slashing release by @8sunyuan in #1213
- fix: zero duration by @0xrajath in #1216
- fix: compile warnings + ignore non-relevant errors by @0xClandestine in #1220
- test: Certora prover specs and CI by @aehyvari in #1218
- docs: update
effectBlockon allocation delay; add undelegate dual slash edge case by @ypatil12 in #1221 - test: refactoring dsf assertions by @eigenmikem in #1217
- chore: update doc version by @ypatil12 in #1224
New Contributors
Full Changelog: v0.5.4...v1.3.0
v1.4.0
Overview
This is the release candidate for the upcoming EigenLayer mainnet slashing release. It encompasses changes from two external audits along with several testing upgrades. Full release notes here.
Note: This release is the similar to our v1.3.0.rc-1 release, except it DOES include Pectra compatibility changes. We anticipate slashing to be deployed on mainnet prior to the mainnet Pectra hard fork. The minor version 1.3 is skipped on testnet to align delivery order with mainnet.
Breaking Changes
- Require AVS Metadata Registration prior to Opset Creation #1025
- Rename
getQueuedWithdrawal->queuedWithdrawals: #1133.getQueuedWithdrawalstill exists but now matches the behavior ofgetQueuedWithdrawals, except it returns shares for a single root. - Behavior of
getMinimumSlashableStake: #1037 encumberedMagnitudegetter: #1038ISignatureUtils->ISignatureUtilsMixinandISignatureUtilsMixinTypes: #1015
What's Changed
- chore: update addresses for slashing by @ypatil12 in #974
- fix: default split frontrun patch upgrade by @0xrajath in #991
- docs: rewards v2 audit report by @0xrajath in #1021
- chore: merge
devtotestnet-holeskyby @0xrajath in #1032 - feat: slashing release by @8sunyuan in #679
- feat: rewards v2.1 by @0xClandestine in #1011
- feat: storage-diff.sh by @0xClandestine in #1054
- docs: Rewards v2.1 by @nadir-akhtar in #1055
- refactor: quality of life improvements by @0xClandestine in #1006
- fix: enforce no compile warnings by @0xClandestine in #1057
- chore: rewards v2.1 zeus script by @0xrajath in #1058
- docs: updated rewards v2.1 docs by @0xrajath in #1061
- test: improve coverage by @0xClandestine in #1059
- feat: ci storage check required by @0xClandestine in #1062
- docs: fix broken link by @dabit3 in #907
- docs: rm -rf docs/storage-report by @0xClandestine in #1063
- feat: add size diff workflow by @0xClandestine in #1065
- chore: remove old release scripts by @0xClandestine in #1066
- fix: zeus upgrade name by @0xrajath in #1068
- chore: vscode settings json by @0xrajath in #1071
- fix(ci): intense test errors by @0xClandestine in #1072
- chore: update to open source zeus repo by @jbrower95 in #1084
- fix: remove deprecated hardhat configs by @bowenli86 in #1090
- perf: parallelize foundry workflows by @bowenli86 in #1094
- refactor: limit continuous fuzzing to dev branch by @bowenli86 in #1101
- refactor: registrar interfaces by @8sunyuan in #1102
- feat: alm upgrade script by @8sunyuan in #1103
- perf: use x64 16core machine for CI by @bowenli86 in #1099
- fix: remove tsconfig by @bowenli86 in #1114
- perf: run Foundry CI tests only for relevant code changes by @bowenli86 in #1112
- perf: speed up test coverage job in CI by @bowenli86 in #1115
- docs: fix all misspellings by @0xClandestine in #1119
- perf: install lcov via prebuilt binary, instead of via apt by @bowenli86 in #1123
- perf: add cache for forge build by @bowenli86 in #1125
- feat: add typos-cli ci check by @0xClandestine in #1126
- feat: slashing audit fixes by @wadealexc in #1046
- fix: disable foundry ci suite path check by @0xClandestine in #1159
- chore: re-enable foundry ci suite path check by @bowenli86 in #1160
- docs: add warning in PR template by @0xClandestine in #1174
- feat: add pull request labeler to ci pipeline by @0xClandestine in #1177
- chore: improve labeler config by @0xClandestine in #1185
- chore: improve labeler config by @0xClandestine in #1186
- chore(ci): lint pr titles by @0xClandestine in #1193
- fix: DSF increase on checkpointed nonzero shares by @ypatil12 in #1176
- chore: disable ci path filtering by @0xClandestine in #1202
- docs(avs-directory): mark AVSDirectory as deprecated by @nadir-akhtar in #1199
- chore: consolidate/update deploy from scratch scripts by @ypatil12 in #1209
- test: slashing integration testing by @ypatil12 in #1211
- chore: forge fmt tests by @0xClandestine in #1212
- docs: updates for slashing release by @8sunyuan in #1213
- fix: zero duration by @0xrajath in #1216
- fix: compile warnings + ignore non-relevant errors by @0xClandestine in #1220
- test: Certora prover specs and CI by @aehyvari in #1218
- docs: update
effectBlockon allocation delay; add undelegate dual slash edge case by @ypatil12 in #1221 - test: refactoring dsf assertions by @eigenmikem in #1217
- chore: update doc version by @ypatil12 in #1224
- docs: Explaining Minimum Slashable Stake in Better Detail by @wesfloyd in #1225
- chore: certora workflow update by @8sunyuan in #1222
- docs: update rewards calculation link by @0xrajath in #1229
- docs: non-standard erc20 note by @0xrajath in #1236
- feat: pectra compatibility by @ypatil12 in #1155
New Contributors
Full Changelog: v1.2.0-testnet-holesky...v1.4.0-testnet-holesky
v1.2.0-testnet-holesky
Overview
This is the release to make EigenPods Pectra-Comptiable. There are no breaking changes. As part of this release, we also add support for compounding withdrawal credentials (0x02 validators). For more information on off-chain implications, see our Pectra guide
Summary of Changes
Full Changelog: v1.1.1...v1.2.0
v.1.1.1-testnet.holesky
Overview
This release is a hotfix upgrade to preprod/testnet with the purpose of unblocking AVSs and their integration with Slashing. It addresses some edge cases uncovered during audit and integration testing from AVS partners.
The changes in this upgrade are being prioritized to go live prior to a larger patch with the majority of the audit fix changes. This is scheduled for early March, and it progress can be viewed here #1046 or in the slashing-magnitude-fixes branch.
We are splitting these releases due to the interface changes we note below. As they may necessitate small reworks from AVSs, we are releasing them in advance of a larger patch with the remaining audit fixes.
Note: The rewards v2.1 changes in v1.1.1 are part of this release.
What's Changed
-
Added
address avsfield in calldata ofIAVSRegistry.registerOperator,IAVSRegistry.deregisterOperator- The interface
IAVSreigsitrycan be found here.
- The interface
-
Added
IAVSRegistry.supportsAVS(avs)interface which is checked upon setting an AVS registry.
There are now additional checks on the AVS registry being set to prevent registries being used without consent for multiple AVSs. Theaddress avsfield should also be verified by AVSs upon callbacks. -
Removed the try/catch on
AllocationManager.deregisterFromOperatorSets
Operator deregistration will be a atomic interaction between the core and AVS contracts with the try/catch being removed. AVSs won’t have to account for how previously an operator could be still seen as registered in AVS contracts but have deregistered on the AllocationManager. -
OperatorSets require
avs metadatabeing set before they are created.
Full Changelog: v1.0.3...yash/merge-rewardsv2.1-in-v1.1.1
v1.1.0-testnet.holesky
What's Changed
- chore: update addresses for slashing by @ypatil12 in #974
- fix: default split frontrun patch upgrade by @0xrajath in #991
- docs: rewards v2 audit report by @0xrajath in #1021
- chore: merge
devtotestnet-holeskyby @0xrajath in #1032 - feat: slashing release by @8sunyuan in #679
- feat: rewards v2.1 by @0xClandestine in #1011
- feat: storage-diff.sh by @0xClandestine in #1054
- docs: Rewards v2.1 by @nadir-akhtar in #1055
- refactor: quality of life improvements by @0xClandestine in #1006
- fix: enforce no compile warnings by @0xClandestine in #1057
- chore: rewards v2.1 zeus script by @0xrajath in #1058
- docs: updated rewards v2.1 docs by @0xrajath in #1061
- test: improve coverage by @0xClandestine in #1059
- feat: ci storage check required by @0xClandestine in #1062
- docs: fix broken link by @dabit3 in #907
- docs: rm -rf docs/storage-report by @0xClandestine in #1063
- feat: add size diff workflow by @0xClandestine in #1065
- chore: remove old release scripts by @0xClandestine in #1066
- fix: zeus upgrade name by @0xrajath in #1068
Full Changelog: v1.0.3...v1.1.0-testnet
v0.5.4
Overview
The Rewards v2 protocol upgrade is the next iteration of EigenLayer rewards. The proposal is outlined in depth in (ELIP-001).
Rewards v2 addresses key challenges identified in the EigenLayer Rewards MVP (v1), particularly the need for Operator-directed rewards via external logic and flexibility for Operators in setting different fee rates to better cover operating costs or attract more stake when running different AVS types. The growing demand from AVSs for more performance-based rewards prompted this upgrade, ensuring EigenLayer's rewards protocol can serve a wider variety of scenarios.
This upgrade to the core contracts has been audited. The results of these audits are public and can be found here.
Breaking changes and upcoming breaking changes
Operators that integrated the first released version of the Rewards code should note the following naming change. globalOperatorCommissionBips has been renamed to defaultOperatorSplitBips.
Improvements
- Performance-based and directed rewards from AVSs to Operators via the
createOperatorDirectedAVSRewardsSubmissionfunction. - Operator-configurable split for AVS Rewards, via the
setOperatorAVSSplitfunction on theRewardsCoordinatorto allow per-AVS variable Operator fees. - Operator-configurable split for Programmatic Incentives with the Eigen Foundation, via the
setOperatorPISplitfunction on theRewardsCoordinatorto allow variable operator fees for Programmatic Incentives. - Batch claiming for both Stakers and Operators via the
processClaimsfunction on theRewardsCoordinator - Permissionless verifiability of the entire Rewards pipeline via the open-source Eigen Sidecar. More details on this can be found in the Sidecar repository.
What's Changed
- Fix: Update coverage workflow job name by @ypatil12 in #834
- Fix: Get Dev to Compile by @ypatil12 in #835
- feat: introduce zeus templates by @nadir-akhtar in #790
- refactor: require "name" to be populated for deployments by @nadir-akhtar in #872
- Update LICENSE by @A2Zrestaking in #887
- chore: update bindings by @0xrajath in #890
- feat: Rewards v2 by @0xrajath in #837
- fix: operator-directed rewards total amount upper bound by @0xrajath in #917
- feat: rewards v2 upgrade script by @jbrower95 in #888
- test: rewards v2 upgrade event assertion in zeus script by @0xrajath in #924
- feat: explicit multisig syntax on zeus scripts by @jbrower95 in #928
- refactor: address informational security review findings by @nadir-akhtar in #909
- fix: patch rewards v2 by @0xrajath in #940
- chore: fix semver constraint on rewardsv2 by @jbrower95 in #941
- chore: fix zeus environment by @jbrower95 in #942
- chore: log rather than comment final coverage output by @nadir-akhtar in #943
- fix: operator split activation delay lock by @0xrajath in #947
- fix: patch operator split lock upgrade by @0xrajath in #948
- docs: rewards v2 by @nadir-akhtar in #952
- fix: rewards v2 audit fixes by @0xrajath in #987
- chore: update addresses for slashing by @ypatil12 in #974
- fix: default split frontrun patch upgrade by @0xrajath in #991
Full Changelog: v0.4.3-mainnet-rewards-foundation-incentives...v0.5.4
v0.5.4-testnet-rewards-v2
Slashing Audit Release
Audit release for SP/Certora
v1.0.3-testnet-slashing
What's Changed
- docs: wip slashing docs by @nadir-akhtar in #925
- refactor: scaled shares accounting by @8sunyuan in #975
- refactor: final slashing cleanup by @wadealexc in #982
- chore: remove unused avsd events by @ypatil12 in #984
- fix: SignatureUtils construction by @0xClandestine in #990
- fix: rewards v2 audit fixes by @0xrajath in #987
- fix: readd manual checks by @0xClandestine in #996
- feat: slashing 1.0.3 upgrade script by @ypatil12 in #995
Full Changelog: v1.0.2...v1.0.3
v1.0.2-testnet-slashing
This release marks the testnet slashing release. A full spec change is in documented in ELIP-002
See the following docs for breaking changes:
New Addresses
There are two new core contracts deployed
| Name | Proxy | Implementation | Notes |
|---|---|---|---|
AllocationManager |
0x78469728304326CBc65f8f95FA756B0B73164462 |
0xe03d...4ee2 |
Proxy: TUP@4.9.0 |
PermissionController |
0x598cb226B591155F767dA17AfE7A2241a68C5C10 |
0x7ab0...a2b9 |
Proxy: TUP@4.9.0 |
What's Changed
- fix(slashing): fix upgrade script phase 4 by @jbrower95 in #953
- fix: patch by @gpsanant in #956
- feat: bindings by @gpsanant in #960
- fix: remove numtocomplete interface by @8sunyuan in #966
- feat: add share helpers by @gpsanant in #964
- fix: slashable window boundaries by @8sunyuan in #965
- refactor: small cleanup by @0xClandestine in #959
- feat: remove max strategies list by @ypatil12 in #968
- feat: slashing patch upgrade script by @ypatil12 in #967
- chore: bindings by @gpsanant in #969
- fix: try catch out of gas edge case by @8sunyuan in #971
- chore: slashing 1.0.2 direct upgrade script by @jbrower95 in #972
Full Changelog: v0.5.3...v1.0.2