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/core/DelegationManager.md
+25-25Lines changed: 25 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ Registers the caller as an Operator in EigenLayer. The new Operator provides the
63
63
*`address delegationApprover`: if set, this address must sign and approve new delegation from Stakers to this Operator *(optional)*
64
64
*`uint32 stakerOptOutWindowBlocks`: the minimum delay (in blocks) between beginning and completing registration for an AVS. *(currently unused)*
65
65
66
-
`registerAsOperator` cements the Operator's `OperatorDetails`, and self-delegates the Operator to themselves - permanently marking the caller as an Operator. They cannot "deregister" as an Operator - however, they can exit the system by withdrawing their funds via `queueWithdrawal`.
66
+
`registerAsOperator` cements the Operator's `OperatorDetails`, and self-delegates the Operator to themselves - permanently marking the caller as an Operator. They cannot "deregister" as an Operator - however, they can exit the system by withdrawing their funds via `queueWithdrawals`.
67
67
68
68
*Effects*:
69
69
* Sets `OperatorDetails` for the Operator in question
@@ -165,7 +165,7 @@ Allows a Staker to delegate to an Operator by way of signature. This function ca
165
165
These methods can be called by both Stakers AND Operators, and are used to (i) undelegate a Staker from an Operator, (ii) queue a withdrawal of a Staker/Operator's shares, or (iii) complete a queued withdrawal:
Allows the caller to queue a withdrawal of their held shares across any strategy (in either/both the `EigenPodManager` or `StrategyManager`). If the caller is delegated to an Operator, the `shares` and `strategies` being withdrawn are immediately removed from that Operator's delegated share balances. Note that if the caller is an Operator, this still applies, as Operators are essentially delegated to themselves.
221
+
Allows the caller to queue one or more withdrawals of their held shares across any strategy (in either/both the `EigenPodManager` or `StrategyManager`). If the caller is delegated to an Operator, the `shares` and `strategies` being withdrawn are immediately removed from that Operator's delegated share balances. Note that if the caller is an Operator, this still applies, as Operators are essentially delegated to themselves.
224
222
225
-
`queueWithdrawal` works very similarly to `undelegate`, except that the caller is not undelegated, and also may:
223
+
`queueWithdrawals` works very similarly to `undelegate`, except that the caller is not undelegated, and also may:
226
224
* Choose which strategies and how many shares to withdraw (as opposed to ALL shares/strategies)
227
225
* Specify a `withdrawer` to receive withdrawn funds once the withdrawal is completed
228
226
229
-
All shares being withdrawn (whether via the `EigenPodManager` or `StrategyManager`) are removed while the withdrawal is in the queue.
227
+
All shares being withdrawn (whether via the `EigenPodManager` or `StrategyManager`) are removed while the withdrawals are in the queue.
230
228
231
-
The withdrawal can be completed by the `withdrawer` after `withdrawalDelayBlocks`, and does not require the `withdrawer` to "fully exit" from the system -- they may choose to receive their shares back in full once the withdrawal is completed (see [`completeQueuedWithdrawal`](#completequeuedwithdrawal) for details).
229
+
Withdrawals can be completed by the `withdrawer` after `withdrawalDelayBlocks`, and does not require the `withdrawer` to "fully exit" from the system -- they may choose to receive their shares back in full once the withdrawal is completed (see [`completeQueuedWithdrawal`](#completequeuedwithdrawal) for details).
232
230
233
231
*Effects*:
234
-
* If the caller is delegated to an Operator, that Operator's delegated balances are decreased according to the `strategies` and `shares` being withdrawn.
235
-
* A `Withdrawal` is queued for the `withdrawer`, tracking the strategies and shares being withdrawn
236
-
* The caller's withdrawal nonce is increased
237
-
* The hash of the `Withdrawal` is marked as "pending"
238
-
* See [`EigenPodManager.removeShares`](./EigenPodManager.md#eigenpodmanagerremoveshares)
239
-
* See [`StrategyManager.removeShares`](./StrategyManager.md#removeshares)
232
+
* For each withdrawal:
233
+
* If the caller is delegated to an Operator, that Operator's delegated balances are decreased according to the `strategies` and `shares` being withdrawn.
234
+
* A `Withdrawal` is queued for the `withdrawer`, tracking the strategies and shares being withdrawn
235
+
* The caller's withdrawal nonce is increased
236
+
* The hash of the `Withdrawal` is marked as "pending"
237
+
* See [`EigenPodManager.removeShares`](./EigenPodManager.md#eigenpodmanagerremoveshares)
238
+
* See [`StrategyManager.removeShares`](./StrategyManager.md#removeshares)
240
239
241
240
*Requirements*:
242
241
* Pause status MUST NOT be set: `PAUSED_ENTER_WITHDRAWAL_QUEUE`
243
-
*`strategies.length` MUST equal `shares.length`
244
-
*`strategies.length` MUST NOT be equal to 0
245
-
* The `withdrawer` MUST NOT be 0
246
-
* See [`EigenPodManager.removeShares`](./EigenPodManager.md#eigenpodmanagerremoveshares)
247
-
* See [`StrategyManager.removeShares`](./StrategyManager.md#removeshares)
242
+
* For each withdrawal:
243
+
*`strategies.length` MUST equal `shares.length`
244
+
*`strategies.length` MUST NOT be equal to 0
245
+
* The `withdrawer` MUST NOT be 0
246
+
* See [`EigenPodManager.removeShares`](./EigenPodManager.md#eigenpodmanagerremoveshares)
247
+
* See [`StrategyManager.removeShares`](./StrategyManager.md#removeshares)
248
248
249
249
#### `completeQueuedWithdrawal`
250
250
@@ -390,7 +390,7 @@ Called by the `EigenPodManager` when a Staker's shares decrease. This method is
390
390
391
391
```solidity
392
392
function setWithdrawalDelayBlocks(
393
-
uint256 _newWithdrawalDelayBlocks
393
+
uint256 newWithdrawalDelayBlocks
394
394
)
395
395
external
396
396
onlyOwner
@@ -403,4 +403,4 @@ Allows the `owner` to update the number of blocks that must pass before a withdr
403
403
404
404
*Requirements*:
405
405
* Caller MUST be the `owner`
406
-
*`_withdrawalDelayBlocks` MUST NOT be greater than `MAX_WITHDRAWAL_DELAY_BLOCKS` (50400)
406
+
*`newWithdrawalDelayBlocks` MUST NOT be greater than `MAX_WITHDRAWAL_DELAY_BLOCKS` (50400)
Copy file name to clipboardExpand all lines: docs/core/EigenPodManager.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -308,7 +308,7 @@ This method is not allowed to cause the `Staker's` balance to go negative. This
308
308
309
309
*Entry Points*:
310
310
*`DelegationManager.undelegate`
311
-
*`DelegationManager.queueWithdrawal`
311
+
*`DelegationManager.queueWithdrawals`
312
312
313
313
*Effects*:
314
314
* Removes `shares` from `podOwner's` share balance
@@ -333,7 +333,7 @@ function addShares(
333
333
334
334
The `DelegationManager` calls this method when a queued withdrawal is completed and the withdrawer specifies that they want to receive the withdrawal as "shares" (rather than as the underlying tokens). A Pod Owner might want to do this in order to change their delegated Operator without needing to fully exit their validators.
335
335
336
-
Note that typically, shares from completed withdrawals are awarded to a `withdrawer` specified when the withdrawal is initiated in `DelegationManager.queueWithdrawal`. However, because beacon chain ETH shares are linked to proofs provided to a Pod Owner's `EigenPod`, this method is used to award shares to the original Pod Owner.
336
+
Note that typically, shares from completed withdrawals are awarded to a `withdrawer` specified when the withdrawal is initiated in `DelegationManager.queueWithdrawals`. However, because beacon chain ETH shares are linked to proofs provided to a Pod Owner's `EigenPod`, this method is used to award shares to the original Pod Owner.
337
337
338
338
If the Pod Owner has a share deficit (negative shares), the deficit is repaid out of the added `shares`. If the Pod Owner's positive share count increases, this change is returned to the `DelegationManager` to be delegated to the Pod Owner's Operator (if they have one).
0 commit comments