RioLRTDepositPool

Git Source

Inherits: IRioLRTDepositPool, OwnableUpgradeable, UUPSUpgradeable, RioLRTCore

Functions

constructor

constructor(address issuer_) RioLRTCore(issuer_);

Parameters

NameTypeDescription

issuer_

address

The LRT issuer that's authorized to deploy this contract.

initialize

Initializes the deposit pool contract.

function initialize(address initialOwner, address token_) external initializer;

Parameters

NameTypeDescription

initialOwner

address

The initial owner of the contract.

token_

address

The address of the liquid restaking token.

depositBalanceIntoEigenLayer

Deposits the entire deposit pool balance of the specified asset into EigenLayer, unless capped.

function depositBalanceIntoEigenLayer(address asset) external onlyCoordinator returns (uint256, bool);

Parameters

NameTypeDescription

asset

address

The address of the asset to be deposited.

transferMaxAssetsForShares

Transfers the maximum possible amount of assets based on the available pool balance and requested shares.

This function handles asset transfer by converting the share value to assets and ensures that either the requested amount or the maximum possible amount is transferred.

function transferMaxAssetsForShares(address asset, uint256 sharesRequested, address recipient)
    external
    onlyCoordinator
    returns (uint256, uint256);

Parameters

NameTypeDescription

asset

address

The address of the asset to be transferred.

sharesRequested

uint256

The number of shares to convert into assets for transfer.

recipient

address

The address of the recipient of the transferred assets.

completeOperatorWithdrawalForAsset

Completes a withdrawal from EigenLayer for the specified asset and operator. Withdrawals directly to the deposit pool can occur for two reasons:

  1. The operator has exited the strategy and the assets have been returned to the deposit pool.

  2. Excess full withdrawal ETH has been scraped from the EigenPod.

function completeOperatorWithdrawalForAsset(
    address asset,
    uint8 operatorId,
    IDelegationManager.Withdrawal calldata queuedWithdrawal,
    uint256 middlewareTimesIndex
) external;

Parameters

NameTypeDescription

asset

address

The address of the asset to be withdrawn.

operatorId

uint8

The ID of the operator from which the asset is being withdrawn.

queuedWithdrawal

IDelegationManager.Withdrawal

The withdrawal to be completed.

middlewareTimesIndex

uint256

The index of the middleware times to use for the withdrawal.

receive

Receives ETH for deposit into EigenLayer.

receive() external payable;

_authorizeUpgrade

Allows the owner to upgrade the deposit pool implementation.

function _authorizeUpgrade(address newImplementation) internal override onlyOwner;

Parameters

NameTypeDescription

newImplementation

address

The implementation to upgrade to.

Last updated