Constants

RESERVE_CONTRACT

contract IFluidReserveContract RESERVE_CONTRACT

LIQUIDITY

contract IFluidLiquidity LIQUIDITY

LIQUIDITY_RESOLVER

contract IFluidLiquidityResolver LIQUIDITY_RESOLVER

PROTOCOL

address PROTOCOL

BORROW_TOKEN

address BORROW_TOKEN

MAX_UTILIZATION

uint256 MAX_UTILIZATION

max utilization of total supply that will be set as max borrow limit. In percent (100 = 1%, 1 = 0.01%)

MIN_UPDATE_DIFF

uint256 MIN_UPDATE_DIFF

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

_LIQUDITY_PROTOCOL_BORROW_SLOT

bytes32 _LIQUDITY_PROTOCOL_BORROW_SLOT

MAX_UTILIZATION_PRECISION

uint256 MAX_UTILIZATION_PRECISION

DEFAULT_EXPONENT_SIZE

uint256 DEFAULT_EXPONENT_SIZE

DEFAULT_EXPONENT_MASK

uint256 DEFAULT_EXPONENT_MASK

EXCHANGE_PRICES_PRECISION

uint256 EXCHANGE_PRICES_PRECISION

X14

uint256 X14

X18

uint256 X18

X24

uint256 X24

Events

LogUpdateBorrowMaxDebtCeiling

event LogUpdateBorrowMaxDebtCeiling(uint256 totalSupplyNormal, uint256 oldMaxDebtCeilingRaw, uint256 maxDebtCeilingRaw, uint256 borrowExchangePrice)

emitted when borrow max limit is updated

FluidMaxBorrowConfigHandler

Sets max borrow limit for a protocol on Liquidity based on utilization of total supply of the same borrow token

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_, contract IFluidLiquidityResolver liquidityResolver_, address protocol_, address borrowToken_, uint256 maxUtilization_, uint256 minUpdateDiff_) public

getTotalSupply

function getTotalSupply() public view returns (uint256 totalSupplyNormal_)

returns BORROW_TOKEN total supply at Liquidity (in normal).

currentMaxDebtCeiling

function currentMaxDebtCeiling() public view returns (uint256 maxDebtCeiling_)

returns the currently set max debt ceiling (in raw for mode with interest!).

calcMaxDebtCeilingNormal

function calcMaxDebtCeilingNormal() public view returns (uint256 maxDebtCeilingNormal_)

returns the max debt ceiling that should be set according to current state (in normal).

calcMaxDebtCeiling

function calcMaxDebtCeiling() public view returns (uint256 maxDebtCeiling_)

returns the max debt ceiling that should be set according to current state (in raw for mode with interest!).

configPercentDiff

function configPercentDiff() public view returns (uint256 configPercentDiff_)

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

rebalance

function rebalance() external

Rebalances the configs for PROTOCOL at Fluid Liquidity based on protocol total supply & total borrow. Emits LogUpdateBorrowMaxDebtCeiling if update is executed. Reverts if no update is needed. Can only be called by an authorized rebalancer.

_getTotalSupply

function _getTotalSupply() public view returns (uint256 totalSupplyNormal_, uint256 borrowExchangePrice_)

_calcMaxDebtCeiling

function _calcMaxDebtCeiling() internal view returns (uint256 maxDebtCeilingRaw_, uint256 totalSupplyNormal_, uint256 borrowExchangePrice_, uint256 userBorrowData_, uint256 baseDebtCeilingRaw_)

_configPercentDiff

function _configPercentDiff(uint256 userBorrowData_, uint256 maxDebtCeilingRaw_) internal pure returns (uint256 configPercentDiff_, uint256 oldMaxDebtCeilingRaw_)

_updateBorrowLimits

function _updateBorrowLimits() internal returns (bool updated_)