Withdrawal Pool
The WithdrawalPool
allows users to queue LST withdrawals if there is insufficient liquidity in the PriorityPool
to satisfy the withdrawal amount. LST withdrawals will be added to a FIFO queue and will be fulfilled as the PriorityPool
receives new deposits and/or as funds become available for withdrawal within the StakingPool
.
View Functions
token
Returns the address of the token this pool handles
Return Values
Name | Type | Description |
---|---|---|
token | address | address of token |
lst
Returns the address of the liquid staking token this pool handles
Return Values
Name | Type | Description |
---|---|---|
lst | address | address of lst |
priorityPool
Returns the address of the priority pool
Return Values
Name | Type | Description |
---|---|---|
priorityPool | address | address of Priority Pool |
indexOfNextWithdrawal
Returns the index of the withdrawal that's at the front of the queue
Return Values
Name | Type | Description |
---|---|---|
indexOfNextwithdrawal | uint256 | index of withdrawal at front of queue |
withdrawalBatchIdCutoff
Returns the index where all batches before have had all withdrawal requests fully withdrawn
Return Values
Name | Type | Description |
---|---|---|
withdrawalBatchIdCutoff | uint128 | batch id cutoff |
withdrawalIdCutoff
Returns the index where all requests before have been fully withdrawn
Return Values
Name | Type | Description |
---|---|---|
withdrawalIdCutoff | uint128 | withdrawal id cutoff |
minWithdrawalAmount
Returns the min amount of LSTs that can be queued for withdrawal
Return Values
Name | Type | Description |
---|---|---|
minWithdrawalAmount | uint256 | min withdrawal amount |
minTimeBetweenWithdrawals
Returns the min amount of time between execution of withdrawals
Return Values
Name | Type | Description |
---|---|---|
minTimeBetweenwithdrawals | uint64 | min time between withdrawals |
timeOfLastWithdrawal
Returns the time of last execution of withdrawals
Return Values
Name | Type | Description |
---|---|---|
timeOfLastWithdrawal | uint64 | time of last withdrawal |
getTotalQueuedWithdrawals
Returns the total amount of liquid staking tokens queued for withdrawal
Return Values
Name | Type | Description |
---|---|---|
totalQueuedWithdrawals | uint256 | total amount queued for withdrawal |
getWithdrawals
Returns a list of withdrawals
Parameters
Name | Type | Description |
---|---|---|
_withdrawalIds | uint256[] | list of withdrawal ids |
Return Values
Name | Type | Description |
---|---|---|
withdrawals | struct WithdrawalPool.Withdrawal[] | list of withdrawals corresponding to withdrawal ids |
getBatchIds
Returns batch ids for a list of withdrawals
Parameters
Name | Type | Description |
---|---|---|
_withdrawalIds | uint256[] | list of withrawal ids |
Return Values
Name | Type | Description |
---|---|---|
batchIds | uint256[] | list of batch ids corresponding to withdrawal ids |
getWithdrawalIdsByOwner
Returns a list of withdrawal ids owned by an account
Parameters
Name | Type | Description |
---|---|---|
_account | address | address of account |
Return Values
Name | Type | Description |
---|---|---|
withdrawalIds | uint256[] | list of withdrawal ids |
getFinalizedWithdrawalIdsByOwner
Returns a list of finalized and partially finalized withdrawal ids owned by an account
These withdrawals have funds available for the owner to withdraw
Parameters
Name | Type | Description |
---|---|---|
_account | address | address of account |
Return Values
Name | Type | Description |
---|---|---|
withdrawalIds | uint256[] | list of withdrawal ids |
withdrawable | uint256 | total withdrawable across all account's withdrawals |
checkUpkeep
Returns whether withdrawals should be executed based on available withdrawal space
Return Values
Name | Type | Description |
---|---|---|
upkeepNeeded | bool | true if withdrawal should be executed, false otherwise |
bytes |
Write Funcions
withdraw
Executes a group of fully and/or partially finalized withdrawals owned by the sender
Parameters
Name | Type | Description |
---|---|---|
_withdrawalIds | uint256[] | list of withdrawal ids to execute |
_batchIds | uint256[] | list of batch ids corresponding to withdrawal ids |
queueWithdrawal
Queues a withdrawal of liquid staking tokens for an account
Parameters
Name | Type | Description |
---|---|---|
_account | address | address of account |
_amount | uint256 | amount of LST |
deposit
Deposits asset tokens in exchange for liquid staking tokens, finalizing withdrawals starting from the front of the queue
Parameters
Name | Type | Description |
---|---|---|
_amount | uint256 | amount of tokens to deposit |
performUpkeep
Executes withdrawals if there is sufficient available withdrawal space
Parameters
Name | Type | Description |
---|---|---|
_performData | bytes | encoded list of withdrawal data passed to staking pool strategies |
updateWithdrawalBatchIdCutoff
Updates the withdrawalBatchIdCutoff
This value is used to more efficiently return data in getBatchIds by skipping old withdrawal batches
setMinWithdrawalAmount
Sets the minimum amount of liquid staking tokens that can be queued for withdrawal
Parameters
Name | Type | Description |
---|---|---|
_minWithdrawalAmount | uint256 | minimum token amount |
setMinTimeBetweenWithdrawals
Sets the minimum amount of of time between calls to performUpkeep to finalize withdrawals
Parameters
Name | Type | Description |
---|---|---|
_minTimeBetweenWithdrawals | uint64 | minimum time |
Last updated