Skip to content

FluidVaultRewards ​

Git Source

Inherits:Variables, Events, Error

This contract is designed to adjust the supply rate magnifier for a vault based on the current collateral supply & supply rate. The adjustment aims to dynamically scale the rewards given to lenders as the TVL in the vault changes. The magnifier is adjusted based on a regular most used reward type where rewardRate = totalRewardsAnnually / totalSupply. Reward rate is applied by adjusting the supply magnifier on vault. Adjustments are made via the rebalance function, which is restricted to be called by designated rebalancers only.

Functions ​

validAddress ​

Validates that an address is not the zero address

solidity
modifier validAddress(address value_);

onlyRebalancer ​

Validates that an address is a rebalancer (taken from reserve contract)

solidity
modifier onlyRebalancer();

constructor ​

Constructs the FluidVaultRewards contract.

solidity
constructor(
    IFluidReserveContract reserveContract_,
    IFluidVaultT1 vault_,
    IFluidLiquidity liquidity_,
    uint256 rewardsAmt_,
    uint256 duration_,
    address initiator_,
    address collateralToken_
)
    validAddress(address(reserveContract_))
    validAddress(address(liquidity_))
    validAddress(address(vault_))
    validAddress(initiator_)
    validAddress(address(collateralToken_));

Parameters

NameTypeDescription
reserveContract_IFluidReserveContractThe address of the reserve contract where rebalancers are defined.
vault_IFluidVaultT1The vault to which this contract will apply new magnifier parameter.
liquidity_IFluidLiquidityFluid liquidity address
rewardsAmt_uint256Amounts of rewards to distribute
duration_uint256rewards duration
initiator_addressaddress that can start rewards with start()
collateralToken_addressvault collateral token address

rebalance ​

Rebalances the supply rate magnifier based on the current collateral supply. Can only be called by an authorized rebalancer.

solidity
function rebalance() external onlyRebalancer;

calculateMagnifier ​

Calculates the new supply rate magnifier based on the current collateral supply (vaultTVL()).

solidity
function calculateMagnifier() public view returns (uint256 magnifier_, bool ended_);

Returns

NameTypeDescription
magnifier_uint256The calculated magnifier value.
ended_bool

currentMagnifier ​

returns the currently configured supply magnifier at the VAULT.

solidity
function currentMagnifier() public view returns (uint256);

vaultTVL ​

returns the current total value locked as collateral (TVL) in the VAULT.

solidity
function vaultTVL() public view returns (uint256 tvl_);

getSupplyRate ​

solidity
function getSupplyRate() public view returns (uint256 supplyRate_);

start ​

solidity
function start() external;