Espresso Fund Flow Controller
EspressoFundFlowController manages deposits and withdrawals for Espresso staking vaults, including unbonding, restaking, and reward management. It coordinates with the strategy and withdrawal pool contracts and exposes functions for vault and reward state queries.
View Functions
strategy
Returns the address of the staking strategy contract.
function strategy() public view returns (address)Return Values
strategy
address
Staking strategy address
withdrawalPool
Returns the address of the withdrawal pool contract.
function withdrawalPool() public view returns (address)Return Values
withdrawalPool
address
Withdrawal pool address
depositController
Returns the address authorized to deposit queued tokens into vaults.
Return Values
depositController
address
Deposit controller address
minTimeBetweenUnbonding
Returns the minimum number of seconds between unbonding calls.
Return Values
minTimeBetweenUnbonding
uint64
Minimum seconds between unbonding
timeOfLastUnbond
Returns the time of the last unbonding call.
Return Values
timeOfLastUnbond
uint64
Time of last unbonding
shouldDepositQueuedTokens
Returns whether tokens should be deposited and the amount available for deposit.
Return Values
canDeposit
bool
true if deposit is allowed
amount
uint256
Amount of tokens available to deposit
shouldUnbondVaults
Returns whether vaults should be unbonded.
Return Values
shouldUnbond
bool
true if unbonding is needed
shouldWithdrawVaults
Returns whether vaults are unbonded and ready to be withdrawn from, and the list of withdrawable vaults.
Return Values
canWithdraw
bool
true if withdrawal is possible
vaultIds
uint256[]
List of withdrawable vault IDs
getVaultDeposits
Returns a list of total deposits for all vaults.
Return Values
deposits
uint256[]
List of vault deposits
getVaultRewards
Returns a list of unclaimed rewards for all vaults.
Return Values
rewards
uint256[]
List of vault rewards
getUnbondingVaults
Returns a list of currently unbonding vaults.
Return Values
vaultIds
uint256[]
List of unbonding vaults
getWithdrawableVaults
Returns a list of currently withdrawable vaults.
Return Values
vaultIds
uint256[]
List of withdrawable vaults
getInactiveVaults
Returns a list of inactive vaults (validators that have exited).
Return Values
vaultIds
uint256[]
List of inactive vaults
getInactiveWithdrawableVaults
Returns a list of inactive and currently withdrawable vaults.
Return Values
vaultIds
uint256[]
List of inactive withdrawable vaults
Write Functions
depositQueuedTokens
Deposits queued tokens into vaults.
Parameters
_vaultIds
uint256[]
List of vault IDs
_amounts
uint256[]
Amounts to deposit per vault
unbondVaults
Unbonds vaults if needed.
forceUnbondVaults
Unbonds vaults to rebalance deposits between vaults.
Parameters
_vaultIds
uint256[]
List of vault IDs
_amounts
uint256[]
Amounts to unbond per vault
withdrawVaults
Withdraws from vaults and triggers withdrawal pool upkeep if needed.
Parameters
_vaultIds
uint256[]
List of vault IDs
restakeRewards
Restakes vault rewards for given vaults.
Parameters
_vaultIds
uint256[]
List of vault IDs
_lifetimeRewards
uint256[]
Lifetime rewards values for each vault
_authData
bytes[]
Authorization data for each vault
withdrawRewards
Withdraws vault rewards for given vaults.
Parameters
_vaultIds
uint256[]
List of vault IDs
_lifetimeRewards
uint256[]
Lifetime rewards values for each vault
_authData
bytes[]
Authorization data for each vault
setDepositController
Sets the address authorized to deposit queued tokens.
Parameters
_depositController
address
Deposit controller address
setMinTimeBetweenUnbonding
Sets the minimum time between unbonding calls.
Parameters
_minTimeBetweenUnbonding
uint64
Minimum seconds between unbonding
Last updated