Commit b9c1a61
feat: slashing commitments (#1645)
**Motivation:**
We want to solve the following use cases:
- As an AVS I want to make a commitment on the address that can slash a
given operatorSet
- As an AVS I want to allow *one* address to slash an operatorSet
- As an AVS I DO NOT want to allow the admin to slash the operatorSet
via `PermissionController` actions
**Modifications:**
The slasher permissions are set and stored in the `AllocationManager`
instead of the `PermissionController`. The slasher is initially set upon
creation of the operatorSet.
New functions:
- `updateSlasher`: can set a new slasher on a
`ALLOCATION_CONFIGURATION_DELAY` blocks (17.5 days on mainnet)
- `migrateSlasher`: migrates the slasher address from the
`PermissionController` to the `AllocationManager`. Can be migrated only
once for a given operatorSet. This function will be called after the
upgrade for all operatorSets. See the script in the script folder, which
will eventually be added to the upgrade script.
- `createOperatorSet`: modified to take in a slasher address, which can
immediately slash an operatorSet. The *old* function is still available
and will be deprecated in Q2 2026. The *old* function automatically the
slasher to the avs address.
Old Functions:
- `slashOperator` is modified to not use the `checkCanCall` modifier
We have 1.9KB left in the ALM.
**Result:**
Stronger commitments.
---------
Co-authored-by: Nadir Akhtar <[email protected]>1 parent 15e17a2 commit b9c1a61
File tree
72 files changed
+17215
-2742
lines changed- .github/workflows
- docs/core
- pkg/bindings
- AVSDirectoryStorage
- AVSDirectory
- AllocationManagerStorage
- AllocationManagerView
- AllocationManager
- BN254CertificateVerifier
- CrossChainRegistry
- DelegationManagerStorage
- DelegationManager
- ECDSACertificateVerifier
- EigenPodManagerStorage
- EigenPodManager
- EigenPodStorage
- EigenPod
- EigenStrategy
- IAVSDirectory
- IAllocationManager
- IDelegationManager
- IEigenPodManager
- IEigenPod
- IKeyRegistrar
- IPermissionController
- IProtocolRegistry
- IProxyAdmin
- IRewardsCoordinator
- ISignatureUtilsMixin
- IStrategyFactory
- IStrategyManager
- IStrategy
- KeyRegistrarStorage
- KeyRegistrar
- OperatorTableUpdater
- PermissionControllerStorage
- PermissionController
- ProtocolRegistryStorage
- ProtocolRegistry
- ReleaseManager
- RewardsCoordinatorStorage
- RewardsCoordinator
- SplitContractMixin
- StrategyBaseTVLLimits
- StrategyBase
- StrategyFactoryStorage
- StrategyFactory
- StrategyManagerStorage
- StrategyManager
- TaskMailbox
- script/releases/v1.9.0-slashing-ux
- 4-script
- src
- contracts
- core
- storage
- interfaces
- test
- harnesses
- integration
- tests/upgrade
- users
- unit
- utils
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
72 files changed
+17215
-2742
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
193 | 193 | | |
194 | 194 | | |
195 | 195 | | |
196 | | - | |
| 196 | + | |
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments