Skip to content

esp staking contracts

EspressoVault: ESP Validator Delegation Vault

EspressoVault manages deposits of ESP into an Espresso validator delegation contract.

Returns the address of the staking token (ESP).

function token() public view returns (address)
Name Type Description
token address ESP token address

Returns the address of the strategy that controls this vault.

function vaultController() public view returns (address)
Name Type Description
vaultController address Vault controller address

Returns the address of the Espresso delegation contract.

function espressoStaking() public view returns (address)
Name Type Description
espressoStaking address Espresso delegation contract address

Returns the address of the Espresso rewards contract.

function espressoRewards() public view returns (address)
Name Type Description
espressoRewards address Espresso rewards contract address

Returns the address of the validator that this vault delegates to.

function validator() public view returns (address)
Name Type Description
validator address Validator address

Returns the total balance of this contract (principal, rewards, queued withdrawals, and tokens held).

function getTotalDeposits() public view returns (uint256)
Name Type Description
totalDeposits uint256 Total balance

Returns the principal balance of this contract in the validator pool.

function getPrincipalDeposits() public view returns (uint256)
Name Type Description
principalDeposits uint256 Principal balance

Returns the claimable rewards balance of this contract in the validator pool.

function getRewards() public view returns (uint256)
Name Type Description
rewards uint256 Claimable rewards

Returns the amount of queued withdrawals for this contract in the validator pool.

function getQueuedWithdrawals() public view returns (uint256)
Name Type Description
queuedWithdrawals uint256 Queued withdrawals

Returns whether deposits can be withdrawn from the validator pool.

function isWithdrawable() external view returns (bool)
Name Type Description
withdrawable bool true if withdrawable, false otherwise

Returns whether this vault is currently unbonding.

function isUnbonding() external view returns (bool)
Name Type Description
unbonding bool true if unbonding, false otherwise

Returns whether the validator this vault delegates to is active.

function isActive() external view returns (bool)
Name Type Description
active bool true if active, false otherwise

Returns whether deposits can be withdrawn from the pool for an inactive validator.

function exitIsWithdrawable() external view returns (bool)
Name Type Description
withdrawable bool true if withdrawable, false otherwise

Deposits tokens from the vault controller into the validator pool.

function deposit(uint256 _amount) external
Name Type Description
_amount uint256 Amount to deposit

Withdraws tokens from the validator pool and sends them to the vault controller.

function withdraw() external returns (uint256)
Name Type Description
amount uint256 Amount withdrawn

Queues tokens for withdrawal in the validator pool.

function unbond(uint256 _amount) external
Name Type Description
_amount uint256 Amount to unbond

Restakes rewards in the validator pool.

function restakeRewards(uint256 _lifetimeRewards, bytes calldata _authData) external
Name Type Description
_lifetimeRewards uint256 Total lifetime rewards for vault
_authData bytes Authorization data for claiming

Claims rewards from the validator pool and transfers them to the vault controller.

function withdrawRewards(uint256 _lifetimeRewards, bytes calldata _authData) external
Name Type Description
_lifetimeRewards uint256 Total lifetime rewards for vault
_authData bytes Authorization data for claiming

Updates the lifetime rewards tracking for this vault. Used to sync lifetime rewards which is fetched off chain.

function updateLifetimeRewards(uint256 _lifetimeRewards) external
Name Type Description
_lifetimeRewards uint256 New lifetime rewards value

Withdraws tokens from the validator pool when a validator has exited, and sends them to the vault controller.

function claimValidatorExit() external