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
token
address
address of token
lst
Returns the address of the liquid staking token this pool handles
Return Values
lst
address
address of lst
priorityPool
Returns the address of the priority pool
Return Values
priorityPool
address
address of Priority Pool
indexOfNextWithdrawal
Returns the index of the withdrawal that's at the front of the queue
Return Values
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
withdrawalBatchIdCutoff
uint128
batch id cutoff
withdrawalIdCutoff
Returns the index where all requests before have been fully withdrawn
Return Values
withdrawalIdCutoff
uint128
withdrawal id cutoff
minWithdrawalAmount
Returns the min amount of LSTs that can be queued for withdrawal
Return Values
minWithdrawalAmount
uint256
min withdrawal amount
minTimeBetweenWithdrawals
Returns the min amount of time between execution of withdrawals
Return Values
minTimeBetweenwithdrawals
uint64
min time between withdrawals
timeOfLastWithdrawal
Returns the time of last execution of withdrawals
Return Values
timeOfLastWithdrawal
uint64
time of last withdrawal
getTotalQueuedWithdrawals
Returns the total amount of liquid staking tokens queued for withdrawal
Return Values
totalQueuedWithdrawals
uint256
total amount queued for withdrawal
getWithdrawals
Returns a list of withdrawals
Parameters
_withdrawalIds
uint256[]
list of withdrawal ids
Return Values
withdrawals
struct WithdrawalPool.Withdrawal[]
list of withdrawals corresponding to withdrawal ids
getBatchIds
Returns batch ids for a list of withdrawals
Parameters
_withdrawalIds
uint256[]
list of withrawal ids
Return Values
batchIds
uint256[]
list of batch ids corresponding to withdrawal ids
getWithdrawalIdsByOwner
Returns a list of withdrawal ids owned by an account
Parameters
_account
address
address of account
Return Values
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
_account
address
address of account
Return Values
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
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
_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
_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
_amount
uint256
amount of tokens to deposit
performUpkeep
Executes withdrawals if there is sufficient available withdrawal space
Parameters
_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
_minWithdrawalAmount
uint256
minimum token amount
setMinTimeBetweenWithdrawals
Sets the minimum amount of of time between calls to performUpkeep to finalize withdrawals
Parameters
_minTimeBetweenWithdrawals
uint64
minimum time
Last updated