Constants

RESERVE_CONTRACT

contract IFluidReserveContract RESERVE_CONTRACT

LIQUIDITY

contract IFluidLiquidity LIQUIDITY

SUPPLY_TOKEN

address SUPPLY_TOKEN

supply token at Liquidity which borrow rate is based on

BORROW_TOKEN

address BORROW_TOKEN

borrow token at Liquidity for which the borrow rate is managed

RATE_BUFFER_KINK1

int256 RATE_BUFFER_KINK1

buffer at kink1 for the rate. borrow rate = supply rate + buffer. In percent (100 = 1%, 1 = 0.01%)

RATE_BUFFER_KINK2

int256 RATE_BUFFER_KINK2

buffer at kink2 for the rate. borrow rate = supply rate + buffer. In percent (100 = 1%, 1 = 0.01%)

only used if CURRENT borrow rate mode at Liquidity is V2 (with 2 kinks).

MIN_UPDATE_DIFF

uint256 MIN_UPDATE_DIFF

minimum percent difference to trigger an update. In percent (100 = 1%, 1 = 0.01%)

_LIQUDITY_SUPPLY_TOTAL_AMOUNTS_SLOT

bytes32 _LIQUDITY_SUPPLY_TOTAL_AMOUNTS_SLOT

_LIQUDITY_SUPPLY_EXCHANGE_PRICES_AND_CONFIG_SLOT

bytes32 _LIQUDITY_SUPPLY_EXCHANGE_PRICES_AND_CONFIG_SLOT

_LIQUDITY_BORROW_RATE_DATA_SLOT

bytes32 _LIQUDITY_BORROW_RATE_DATA_SLOT

EXCHANGE_PRICES_PRECISION

uint256 EXCHANGE_PRICES_PRECISION

DEFAULT_EXPONENT_SIZE

uint256 DEFAULT_EXPONENT_SIZE

DEFAULT_EXPONENT_MASK

uint256 DEFAULT_EXPONENT_MASK

X14

uint256 X14

X16

uint256 X16

X64

uint256 X64

FOUR_DECIMALS

uint256 FOUR_DECIMALS

Events

LogUpdateRate

event LogUpdateRate(uint256 supplyRate, uint256 oldRateKink1, uint256 newRateKink1, uint256 oldRateKink2, uint256 newRateKink2)

emitted when borrow rate for BORROW_TOKEN is updated based on supply rate of SUPPLY_TOKEN + buffer.

FluidBufferRateHandler

Sets borrow rate for BORROW_TOKEN at Liquidaty based on supply rate of SUPPLY_TOKEN + buffer.

validAddress

modifier validAddress(address value_)

Validates that an address is not the zero address

onlyRebalancer

modifier onlyRebalancer()

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

constructor

constructor(contract IFluidReserveContract reserveContract_, contract IFluidLiquidity liquidity_, address supplyToken_, address borrowToken_, int256 rateBufferKink1_, int256 rateBufferKink2_, uint256 minUpdateDiff_) public

configPercentDiff

function configPercentDiff() public view returns (uint256 configPercentDiff_)

returns how much the new config would be different from current config in percent (100 = 1%, 1 = 0.01%).

rebalance

function rebalance() external

Rebalances the configs at Fluid Liquidity based on config handler target. Reverts if no update is needed. Can only be called by an authorized rebalancer.

calcBorrowRates

function calcBorrowRates() public view returns (uint256 rateKink1_, uint256 rateKink2_)

returns the current calculcated borrow rates at kink1 and kink 2 (for rate data v2).

supplyTokenLendingRate

function supplyTokenLendingRate() public view returns (uint256 rate_)

get current SUPPLY_TOKEN lending rate_ at Liquidity

_calcBorrowRates

function _calcBorrowRates(uint256 supplyRate_, uint256 rateConfig_) internal view returns (uint256 rateKink1_, uint256 rateKink2_)

calculates current borrow rates at kinks for supply rate and current rate data

_percentDiffForValue

function _percentDiffForValue(uint256 oldValue_, uint256 newValue_) internal pure returns (uint256 configPercentDiff_)

_gets the percentage difference between oldValue_andnewValue*in relation tooldValue*_

_rebalanceRateV1

function _rebalanceRateV1(uint256 supplyRate_, uint256 rateConfig_) internal

rebalances for a RateV1 config

_rebalanceRateV2

function _rebalanceRateV2(uint256 supplyRate_, uint256 rateConfig_) internal

rebalances for a RateV2 config