Skip to content

Releases: Layr-Labs/eigenlayer-contracts

v1.5.0-rc.0

30 May 20:56
9a95f5a
Compare
Choose a tag to compare

v1.5.0 Redistribution

Release Manager

@0xClandestine @ypatil12

Highlights

🚀 New features

  • Redistribution is a feature that gives Service Builders a means to not just burn, but repurpose slashed funds.
  • We introduce a new operatorSet creation mechanism: AllocationManager.createRedistributingOperatorSets, which allows slashed funds to be redistributed to a RedistributionRecipient. Note: The redistribution recipient can be set only once and is immutable.
  • All slashed funds will now be routed to individual SlashEscrow contracts. The release of funds from escrow is gated by the SlashEscrowFactory. The SlashEscrowFactory deploys individual SlashEscrow contracts per slash, enforces a global delay for all escrowed funds, and handles pausing/unpausing of escrowed funds.
  • The original createOperatorSets function still exists. This function creates operatorSets whose slashed funds will eventually be burned. There is no mechanism to convert an operatorSet to be redistributing.
  • See ELIP-006 for a full description.

⛔ Breaking changes

📌 Future Deprecations

  • The pre-redistribution burn pathway StrategyManager.decreaseBurnableShares will be deprecated in an upgrade after the redistribution release. This function can still be used to burn shares that have been slashed at any point prior to the redistribution upgrade.

🛠️ Security Updates

  • The slashing of burned funds is no longer instantaneous. All slashed funds (burned or redistributed) now go through a 4-day escrow delay. The eventual burning or redistribution of slashed funds can be paused by the PauserMultisig.
  • The upgradability of the SlashEscrowFactory is controlled by the CommunityMultisig. The contract will have a separate ProxyAdmin from the rest of the EigenLayer core protocol. Each individual SlashEscrow contract is an immutable clone.

🔧 Improvements

  • The AllocationManager.slashOperator function now returns a slashId and array of shares to be burned/redistributed. The function selector remains the same.
  • OperatorSets now have a slashCount field, which returns the number of slashes completed by the operatorSet. This value only reflects the number of slashes after the redistribution upgrade.
  • StrategyBase returns an amountOut upon withdrawal to comply with standard ERC-4626 vaults.
  • The AllocationManager and DelegationManager no longer use ownable. Thus, they now inherit the Deprecated_OwnableUpgradeable mixin in its place to reduce codesize.

🐛 Bug Fixes

  • SemVerMixin is updated to only return the first character of majorVersion. We currently return 1. and will return 1 after this upgrade.

What's Changed

New Contributors

Full Changelog: v1.4.0-testnet-holesky...v1.5.0-rc.0

v1.4.1

01 May 19:40
d9a793e
Compare
Choose a tag to compare

Overview

This release brings Pectra Compatability to EigenPods. There are no breaking changes as part of this release. v1.3.0 of the proof generation CLI is forwards compatible with this release.

As part of the upgrade process, EigenPods will be paused for ~12 hours on mainnet. For a full list of updates, see our guide.

What's Changed

Full Changelog: v1.3.0...v1.4.1

v1.4.2

30 Apr 17:24
336cab3
Compare
Choose a tag to compare

Overview

This release reduces the following delay parameters on the Holesky testnet to enable faster iteration and testing:

  • ALLOCATION_CONFIGURATION_DELAY: reduced from 75 blocks (~15 minutes) to 30 blocks (~6 minutes)
  • DEALLOCATION_DELAY: reduced from 50 blocks (~10 minutes) to 25 blocks (~5 minutes)
  • MIN_WITHDRAWAL_DELAY_BLOCKS: reduced from 50 blocks (~10 minutes) to 25 blocks (~5 minutes)

⚠️ Note: This is a Holesky testnet-only upgrade.

What's Changed from v1.4.1

  • release: Reduce allocation configuration delay & min withdrawal delay on Holesky by @solimander #1343

Full Changelog: v1.4.1...v1.4.2

v1.3.0

03 Apr 20:37
9a9707b
Compare
Choose a tag to compare

Overview

This is the release for the upcoming EigenLayer mainnet slashing upgrade. It encompasses all functionality, testing, and audit changes.

For a full breakdown of breaking changes, please see our release notes for Operators/LRTs and AVSs.

What's Changed from the release candidate

What's Changed from v0.5.4

New Contributors

Full Changelog: v0.5.4...v1.3.0

v1.4.1-testnet-holesky

02 Apr 23:48
db0f582
Compare
Choose a tag to compare
Pre-release

Overview

This release includes changes from our Cantina Competition Audit. There are no breaking changes from v1.4.0.

The audit-related changes include the below PRs:

Full Changelog

Full Changelog: v1.4.0-testnet-holesky...v1.4.1-testnet-holeksy

v1.3.0-rc.0

06 Mar 21:46
db0f582
Compare
Choose a tag to compare
v1.3.0-rc.0 Pre-release
Pre-release

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. getQueuedWithdrawal still exists, but changes the behavior of getQueuedWithdrawals.
  • Behavior of getMinimumSlashableStake: #1037
  • encumberedMagnitude getter: #1038
  • ISignatureUtils -> ISignatureUtilsMixin and ISignatureUtilsMixinTypes: #1015

What's Changed

New Contributors

Full Changelog: v0.5.4...v1.3.0

v1.4.0

13 Mar 20:25
aa84b7a
Compare
Choose a tag to compare
v1.4.0 Pre-release
Pre-release

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. getQueuedWithdrawal still exists but now matches the behavior of getQueuedWithdrawals, except it returns shares for a single root.
  • Behavior of getMinimumSlashableStake: #1037
  • encumberedMagnitude getter: #1038
  • ISignatureUtils -> ISignatureUtilsMixin and ISignatureUtilsMixinTypes: #1015

What's Changed

New Contributors

Full Changelog: v1.2.0-testnet-holesky...v1.4.0-testnet-holesky

v1.2.0-testnet-holesky

12 Mar 22:35
Compare
Choose a tag to compare
Pre-release

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

21 Feb 15:28
Compare
Choose a tag to compare
Pre-release

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 avs field in calldata of IAVSRegistry.registerOperatorIAVSRegistry.deregisterOperator

    • The interface IAVSreigsitry can be found here.
  • 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. The address avs field 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 metadata being set before they are created.

Full Changelog: v1.0.3...yash/merge-rewardsv2.1-in-v1.1.1

v1.1.0-testnet.holesky

06 Feb 19:12
64c0283
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v1.0.3...v1.1.0-testnet