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.
Returns the address of the token this pool handles
function token () external view returns ( address )
Name
Type
Description
token
address
address of token
Returns the address of the liquid staking token this pool handles
function lst () external view returns ( address )
Name
Type
Description
lst
address
address of lst
Returns the address of the priority pool
function priorityPool () external view returns ( address )
Name
Type
Description
priorityPool
address
address of Priority Pool
Returns the index of the withdrawal thatâs at the front of the queue
function indexOfNextWithdrawal () external view returns ( uint256 )
Name
Type
Description
indexOfNextwithdrawal
uint256
index of withdrawal at front of queue
Returns the index where all batches before have had all withdrawal requests fully withdrawn
function withdrawalBatchIdCutoff () external view returns ( uint128 )
Name
Type
Description
withdrawalBatchIdCutoff
uint128
batch id cutoff
Returns the index where all requests before have been fully withdrawn
function withdrawalIdCutoff () external view returns ( uint128 )
Name
Type
Description
withdrawalIdCutoff
uint128
withdrawal id cutoff
Returns the min amount of LSTs that can be queued for withdrawal
function minWithdrawalAmount () external view returns ( uint256 )
Name
Type
Description
minWithdrawalAmount
uint256
min withdrawal amount
Returns the min amount of time between execution of withdrawals
function minTimeBetweenWithdrawals () external view returns ( uint64 )
Name
Type
Description
minTimeBetweenwithdrawals
uint64
min time between withdrawals
Returns the time of last execution of withdrawals
function timeOfLastWithdrawal () external view returns ( uint64 )
Name
Type
Description
timeOfLastWithdrawal
uint64
time of last withdrawal
Returns the total amount of liquid staking tokens queued for withdrawal
function getTotalQueuedWithdrawals () external view returns ( uint256 )
Name
Type
Description
totalQueuedWithdrawals
uint256
total amount queued for withdrawal
Returns the total amount of liquid staking tokens queued for withdrawal by an account
function getAccountTotalQueuedWithdrawals ( address _account ) external view returns ( uint256 )
Name
Type
Description
_account
address
address of account
Name
Type
Description
accountTotalQueuedWithdrawals
uint256
total amount queued across all withdrawals
Returns a list of withdrawals
function getWithdrawals ( uint256 [] _withdrawalIds ) external view returns ( struct WithdrawalPool . Withdrawal [])
Name
Type
Description
_withdrawalIds
uint256[]
list of withdrawal ids
Name
Type
Description
withdrawals
struct WithdrawalPool.Withdrawal[]
list of withdrawals corresponding to withdrawal ids
Returns batch ids for a list of withdrawals
function getBatchIds ( uint256 [] _withdrawalIds ) public view returns ( uint256 [])
Name
Type
Description
_withdrawalIds
uint256[]
list of withrawal ids
Name
Type
Description
batchIds
uint256[]
list of batch ids corresponding to withdrawal ids
Returns a list of withdrawal ids owned by an account
function getWithdrawalIdsByOwner ( address _account ) public view returns ( uint256 [])
Name
Type
Description
_account
address
address of account
Name
Type
Description
withdrawalIds
uint256[]
list of withdrawal ids
Returns a list of finalized and partially finalized withdrawal ids owned by an account
These withdrawals have funds available for the owner to withdraw
function getFinalizedWithdrawalIdsByOwner ( address _account ) external view returns ( uint256 [], uint256 )
Name
Type
Description
_account
address
address of account
Name
Type
Description
withdrawalIds
uint256[]
list of withdrawal ids
withdrawable
uint256
total withdrawable across all accountâs withdrawals
Returns whether withdrawals should be executed based on available withdrawal space
function checkUpkeep ( bytes ) external view returns ( bool , bytes )
Name
Type
Description
upkeepNeeded
bool
true if withdrawal should be executed, false otherwise
bytes
Executes a group of fully and/or partially finalized withdrawals owned by the sender
function withdraw ( uint256 [] _withdrawalIds , uint256 [] _batchIds ) external
Name
Type
Description
_withdrawalIds
uint256[]
list of withdrawal ids to execute
_batchIds
uint256[]
list of batch ids corresponding to withdrawal ids
Executes a group of fully finalized withdrawals (owner-only)
function forceWithdraw ( uint256 [] _withdrawalIds , uint256 [] _batchIds ) external
Name
Type
Description
_withdrawalIds
uint256[]
list of withdrawal ids to execute
_batchIds
uint256[]
list of batch ids corresponding to withdrawal ids
Queues a withdrawal of liquid staking tokens for an account
function queueWithdrawal ( address _account , uint256 _amount ) external
Name
Type
Description
_account
address
address of account
_amount
uint256
amount of LST
Deposits asset tokens in exchange for liquid staking tokens, finalizing withdrawals
starting from the front of the queue
function deposit ( uint256 _amount ) external
Name
Type
Description
_amount
uint256
amount of tokens to deposit
Executes withdrawals if there is sufficient available withdrawal space
function performUpkeep ( bytes _performData ) external
Name
Type
Description
_performData
bytes
encoded list of withdrawal data passed to staking pool strategies
Updates the withdrawalBatchIdCutoff
This value is used to more efficiently return data in getBatchIds by skipping old withdrawal batches
function updateWithdrawalBatchIdCutoff () external
Sets the minimum amount of liquid staking tokens that can be queued for withdrawal
function setMinWithdrawalAmount ( uint256 _minWithdrawalAmount ) external
Name
Type
Description
_minWithdrawalAmount
uint256
minimum token amount
Sets the minimum amount of of time between calls to performUpkeep to finalize withdrawals
function setMinTimeBetweenWithdrawals ( uint64 _minTimeBetweenWithdrawals ) external
Name
Type
Description
_minTimeBetweenWithdrawals
uint64
minimum time