RioLRTIssuer

Git Source

Inherits: IRioLRTIssuer, OwnableUpgradeable, UUPSUpgradeable

State Variables

tokenImpl

The liquid restaking token (LRT) implementation.

address public immutable tokenImpl;

coordinatorImpl

The LRT coordinator implementation.

address public immutable coordinatorImpl;

assetRegistryImpl

The LRT asset registry implementation.

address public immutable assetRegistryImpl;

operatorRegistryImpl

The LRT operator registry implementation.

address public immutable operatorRegistryImpl;

avsRegistryImpl

The LRT AVS registry implementation.

address public immutable avsRegistryImpl;

depositPoolImpl

The LRT deposit pool implementation.

address public immutable depositPoolImpl;

withdrawalQueueImpl

The LRT withdrawal queue implementation.

address public immutable withdrawalQueueImpl;

rewardDistributorImpl

The LRT reward distributor implementation.

address public immutable rewardDistributorImpl;

isTokenFromFactory

Returns whether the provided token was issued by this factory.

mapping(address => bool) public isTokenFromFactory;

Functions

constructor

constructor(
    address tokenImpl_,
    address coordinatorImpl_,
    address assetRegistryImpl_,
    address operatorRegistryImpl_,
    address avsRegistryImpl_,
    address depositPoolImpl_,
    address withdrawalQueueImpl_,
    address rewardDistributorImpl_
);

Parameters

Name
Type
Description

tokenImpl_

address

The liquid restaking token (LRT) implementation.

coordinatorImpl_

address

The LRT coordinator implementation.

assetRegistryImpl_

address

The LRT asset registry implementation.

operatorRegistryImpl_

address

The LRT operator registry implementation.

avsRegistryImpl_

address

The LRT AVS registry implementation.

depositPoolImpl_

address

The LRT deposit pool implementation.

withdrawalQueueImpl_

address

The LRT withdrawal queue implementation.

rewardDistributorImpl_

address

The LRT reward distributor implementation.

initialize

Initializes the contract.

function initialize(address initialOwner) external initializer;

Parameters

Name
Type
Description

initialOwner

address

The initial owner of the contract.

issueLRT

Issues a new liquid restaking token (LRT).

function issueLRT(string calldata name, string calldata symbol, LRTConfig calldata config)
    external
    payable
    onlyOwner
    returns (LRTDeployment memory d);

Parameters

Name
Type
Description

name

string

The name of the token.

symbol

string

The symbol of the token.

config

LRTConfig

The token configuration.

_deposit

Makes a sacrificial deposit to prevent inflation attacks.

function _deposit(IRioLRTCoordinator coordinator, address asset, uint256 amount) internal;

Parameters

Name
Type
Description

coordinator

IRioLRTCoordinator

The LRT coordinator.

asset

address

The asset to deposit.

amount

uint256

The amount to deposit.

_authorizeUpgrade

Allows the owner to upgrade the LRT issuer implementation.

function _authorizeUpgrade(address newImplementation) internal override onlyOwner;

Parameters

Name
Type
Description

newImplementation

address

The implementation to upgrade to.

Last updated