Skip to content

v1.5.0-rc.0

Compare
Choose a tag to compare
@ypatil12 ypatil12 released this 30 May 20:56
· 194 commits to main since this release
9a95f5a

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