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
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -229,24 +229,24 @@ function undelegate(
229
229
)
230
230
external
231
231
onlyWhenNotPaused(PAUSED_ENTER_WITHDRAWAL_QUEUE)
232
-
returns (bytes32 withdrawalRoot)
232
+
returns (bytes32[] memory withdrawalRoots)
233
233
```
234
234
235
-
`undelegate` can be called by a Staker to undelegate themselves, or by a Staker's delegated Operator (or that Operator's `delegationApprover`). Undelegation (i) queues a withdrawal on behalf of the Staker for all their delegated shares, and (ii) decreases the Operator's delegated shares according to the amounts and strategies being withdrawn.
235
+
`undelegate` can be called by a Staker to undelegate themselves, or by a Staker's delegated Operator (or that Operator's `delegationApprover`). Undelegation (i) queues withdrawals on behalf of the Staker for all their delegated shares, and (ii) decreases the Operator's delegated shares according to the amounts and strategies being withdrawn.
236
236
237
-
If the Staker has active shares in either the `EigenPodManager` or `StrategyManager`, they are removed while the withdrawal is in the queue.
237
+
If the Staker has active shares in either the `EigenPodManager` or `StrategyManager`, they are removed while the withdrawal is in the queue - and an individual withdrawal is queued for each strategy removed.
238
238
239
-
The withdrawal can be completed by the Staker after `withdrawalDelayBlocks`, and does not require the Staker to "fully exit" from the system -- the Staker may choose to receive their shares back in full once the withdrawal is completed (see [`completeQueuedWithdrawal`](#completequeuedwithdrawal) for details).
239
+
The withdrawals can be completed by the Staker after `withdrawalDelayBlocks`. This does not require the Staker to "fully exit" from the system -- the Staker may choose to receive their shares back in full once withdrawals are completed (see [`completeQueuedWithdrawal`](#completequeuedwithdrawal) for details).
240
240
241
241
Note that becoming an Operator is irreversible! Although Operators can withdraw, they cannot use this method to undelegate from themselves.
242
242
243
243
*Effects*:
244
244
* Any shares held by the Staker in the `EigenPodManager` and `StrategyManager` are removed from the Operator's delegated shares.
245
245
* The Staker is undelegated from the Operator
246
246
* If the Staker has no delegatable shares, there is no withdrawal queued or further effects
247
-
*A `Withdrawal` is queued for the Staker, tracking the strategies and shares being withdrawn
248
-
* The Staker's withdrawal nonce is increased
249
-
* The hash of the`Withdrawal` is marked as "pending"
247
+
*For each strategy being withdrawn, a `Withdrawal` is queued for the Staker:
248
+
* The Staker's withdrawal nonce is increased by 1 for each `Withdrawal`
249
+
* The hash of each`Withdrawal` is marked as "pending"
250
250
* See [`EigenPodManager.removeShares`](./EigenPodManager.md#eigenpodmanagerremoveshares)
251
251
* See [`StrategyManager.removeShares`](./StrategyManager.md#removeshares)
0 commit comments