RioLRTRewardDistributor

Git Source

Inherits: IRioLRTRewardDistributor, OwnableUpgradeable, UUPSUpgradeable, RioLRTCore

State Variables

MAX_BPS

The maximum basis points value (100%).

uint16 public constant MAX_BPS = 10_000;

treasury

The treasury address.

address public treasury;

operatorRewardPool

The operator reward pool address.

address public operatorRewardPool;

treasuryETHValidatorRewardShareBPS

The treasury share of the ETH validator rewards in basis points.

uint16 public treasuryETHValidatorRewardShareBPS;

operatorETHValidatorRewardShareBPS

The operator share of the ETH validator rewards in basis points.

uint16 public operatorETHValidatorRewardShareBPS;

Functions

constructor

constructor(address issuer_) RioLRTCore(issuer_);

Parameters

NameTypeDescription

issuer_

address

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

initialize

Initializes the contract.

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

Parameters

NameTypeDescription

initialOwner

address

The initial owner of the contract.

token_

address

The address of the liquid restaking token.

treasury_

address

The treasury address.

operatorRewardPool_

address

The operator reward pool address.

distributeETHValidatorRewards

Distributes ETH validator rewards held in this contract to the treasury, operator pool, and deposit pool.

All recipients are trusted internal contracts that require no reentrancy protection.

function distributeETHValidatorRewards() external;

setTreasuryAndOperatorETHValidatorRewardShareBPS

Sets the treasury and operator's share of ETH validator rewards.

function setTreasuryAndOperatorETHValidatorRewardShareBPS(
    uint16 newTreasuryETHValidatorRewardShareBPS,
    uint16 newOperatorETHValidatorRewardShareBPS
) external onlyOwner;

Parameters

NameTypeDescription

newTreasuryETHValidatorRewardShareBPS

uint16

The new treasury share in basis points.

newOperatorETHValidatorRewardShareBPS

uint16

The new operator share in basis points.

setTreasuryETHValidatorRewardShareBPS

Sets the treasury's share of ETH validator rewards.

function setTreasuryETHValidatorRewardShareBPS(uint16 newTreasuryETHValidatorRewardShareBPS) external onlyOwner;

Parameters

NameTypeDescription

newTreasuryETHValidatorRewardShareBPS

uint16

The new treasury share in basis points.

setOperatorETHValidatorRewardShareBPS

Sets the operator's share of ETH validator rewards.

function setOperatorETHValidatorRewardShareBPS(uint16 newOperatorETHValidatorRewardShareBPS) external onlyOwner;

Parameters

NameTypeDescription

newOperatorETHValidatorRewardShareBPS

uint16

The new operator share in basis points.

_setTreasuryETHValidatorRewardShareBPS

Sets the treasury's share of Ethereum validator rewards.

function _setTreasuryETHValidatorRewardShareBPS(uint16 newTreasuryETHValidatorRewardShareBPS) internal;

Parameters

NameTypeDescription

newTreasuryETHValidatorRewardShareBPS

uint16

The new treasury share in basis points.

_setOperatorETHValidatorRewardShareBPS

Sets the operator's share of Ethereum validator rewards.

function _setOperatorETHValidatorRewardShareBPS(uint16 newOperatorETHValidatorRewardShareBPS) internal;

Parameters

NameTypeDescription

newOperatorETHValidatorRewardShareBPS

uint16

The new operator share in basis points.

receive

Receives ETH for distribution.

receive() external payable;

_authorizeUpgrade

Allows the owner to upgrade the reward distributor implementation.

function _authorizeUpgrade(address newImplementation) internal override onlyOwner;

Parameters

NameTypeDescription

newImplementation

address

The implementation to upgrade to.

Last updated