You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/SlashingRegistryCoordinator.md
+23-21Lines changed: 23 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,7 +74,7 @@ struct OperatorSetParam {
74
74
* an operator's stake weight for the quorum.
75
75
* @dev For m2 AVS this function has the same behavior as createQuorum before.
76
76
* @dev For migrated AVS that enable operator sets this will create a quorum that measures total delegated stake for operator set.
77
-
* @dev The slasher is set to DELEGATED_STAKE_SLASHER for total delegated stake quorums. This address cannot slash an operatorSet.
77
+
* @dev The slasher is set to DELEGATED_STAKE_SLASHER for total delegated stake quorums. This address cannot slash an operatorSet.
78
78
*/
79
79
function createTotalDelegatedStakeQuorum(
80
80
OperatorSetParam memory operatorSetParams,
@@ -85,6 +85,8 @@ function createTotalDelegatedStakeQuorum(
85
85
86
86
This function creates a new quorum that tracks the total delegated stake for operators. The quorum is initialized with the provided parameters and integrated with the underlying registry contracts.
87
87
88
+
Note that this function *does not* allow for stake to be slashed. To create a quorum with slashable delegated stake, see [`createSlashableStakeQuorum`](#createslashablestakequorum).
89
+
88
90
*Effects:*
89
91
* Increments the `quorumCount` by 1
90
92
* Sets the operator set parameters for the new quorum
@@ -124,7 +126,7 @@ function createSlashableStakeQuorum(
124
126
This function creates a new quorum that specifically tracks slashable stake for operators. This type of quorum provides slashing enforcement through the `AllocationManager`.
125
127
126
128
*Effects:*
127
-
* Same as `createTotalDelegatedStakeQuorum`, but
129
+
* Same as `createTotalDelegatedStakeQuorum`, but
128
130
- initializes the quorum with slashable stake type
129
131
- Sets the `slasher` to an address that is controlled by the AVS
130
132
* Additionally configures the `lookAheadPeriod` for slashable stake calculation
@@ -138,7 +140,7 @@ This function creates a new quorum that specifically tracks slashable stake for
138
140
function setOperatorSetParams(
139
141
uint8 quorumNumber,
140
142
OperatorSetParam memory operatorSetParams
141
-
)
143
+
)
142
144
external
143
145
```
144
146
@@ -172,7 +174,7 @@ function registerOperator(
172
174
address avs,
173
175
uint32[] calldata operatorSetIds,
174
176
bytes calldata data
175
-
)
177
+
)
176
178
external
177
179
onlyAllocationManager
178
180
onlyWhenNotPaused(PAUSED_REGISTER_OPERATOR)
@@ -205,7 +207,7 @@ function deregisterOperator(
205
207
address operator,
206
208
address avs,
207
209
uint32[] calldata operatorSetIds
208
-
)
210
+
)
209
211
external
210
212
onlyAllocationManager
211
213
onlyWhenNotPaused(PAUSED_REGISTER_OPERATOR)
@@ -231,7 +233,7 @@ This function is called by the `AllocationManager` when an operator wants to der
231
233
```solidity
232
234
function updateSocket(
233
235
string memory socket
234
-
)
236
+
)
235
237
external
236
238
```
237
239
@@ -250,7 +252,7 @@ This function allows a registered operator to update their socket information.
250
252
function ejectOperator(
251
253
address operator,
252
254
bytes memory quorumNumbers
253
-
)
255
+
)
254
256
external
255
257
onlyEjector
256
258
```
@@ -282,7 +284,7 @@ The `SlashingRegistryCoordinator` manages operator stakes through the `StakeRegi
282
284
function updateOperatorsForQuorum(
283
285
address[][] memory operatorsPerQuorum,
284
286
bytes calldata quorumNumbers
285
-
)
287
+
)
286
288
external
287
289
```
288
290
@@ -329,18 +331,18 @@ The contract implements two helper functions to calculate these thresholds:
329
331
function _individualKickThreshold(
330
332
uint96 operatorStake,
331
333
OperatorSetParam memory setParams
332
-
)
333
-
internal
334
-
pure
334
+
)
335
+
internal
336
+
pure
335
337
```
336
338
337
339
```solidity
338
340
function _totalKickThreshold(
339
341
uint96 totalStake,
340
342
OperatorSetParam memory setParams
341
-
)
342
-
internal
343
-
pure
343
+
)
344
+
internal
345
+
pure
344
346
```
345
347
346
348
#### Churn Approval
@@ -361,7 +363,7 @@ function calculateOperatorChurnApprovalDigestHash(
361
363
OperatorKickParam[] memory operatorKickParams,
362
364
bytes32 salt,
363
365
uint256 expiry
364
-
)
366
+
)
365
367
public
366
368
```
367
369
@@ -370,7 +372,7 @@ function calculateOperatorChurnApprovalDigestHash(
370
372
```solidity
371
373
function setChurnApprover(
372
374
address _churnApprover
373
-
)
375
+
)
374
376
external
375
377
```
376
378
@@ -398,11 +400,11 @@ The `SlashingRegistryCoordinator` integrates with `AllocationManager`, and is id
398
400
```solidity
399
401
function setAVS(
400
402
address _avs
401
-
)
403
+
)
402
404
external
403
405
```
404
406
405
-
This function sets the AVS address for the AVS (this identitiy is used for UAM integration). Note: updating this will break existing operator sets, this value should only be set once.
407
+
This function sets the AVS address for the AVS (this identitiy is used for UAM integration). Note: updating this will break existing operator sets, this value should only be set once.
406
408
This value should be the address of the `ServiceManager` contract.
407
409
408
410
*Effects:*
@@ -416,7 +418,7 @@ This value should be the address of the `ServiceManager` contract.
416
418
```solidity
417
419
function supportsAVS(
418
420
address _avs
419
-
)
421
+
)
420
422
public
421
423
```
422
424
@@ -441,7 +443,7 @@ These functions allow the contract owner to configure various parameters and rol
441
443
```solidity
442
444
function setEjector(
443
445
address _ejector
444
-
)
446
+
)
445
447
external
446
448
```
447
449
@@ -459,7 +461,7 @@ This function updates the address that is authorized to forcibly eject operators
0 commit comments