AdminModuleConstants ​
NATIVE_TOKEN_MAX_BORROW_LIMIT_CAP ​
uint256 NATIVE_TOKEN_MAX_BORROW_LIMIT_CAP
hard cap value for max borrow limit, used as sanity check. Usually 10x of total supply.
constructor ​
constructor(uint256 nativeTokenMaxBorrowLimitCap_) internal
GovernanceModule ​
Fluid Liquidity Governance only related methods
onlyGovernance ​
modifier onlyGovernance()
only governance guard
_checkValidAddress ​
function _checkValidAddress(address value_) internal pure
_checks that value_
is a valid address (not zero address)_
_checkIsContract ​
function _checkIsContract(address value_) internal view
_checks that value_
address is a contract_
_checkIsContractOrNativeAddress ​
function _checkIsContractOrNativeAddress(address value_) internal view
_checks that value_
address is a contract (which includes address zero check) or the native token_
_checkTokenDecimalsRange ​
function _checkTokenDecimalsRange(address token_) internal view
_checks that token_
decimals are betweenMIN*TOKEN_DECIMALS
andMAX_TOKEN_DECIMALS
(inclusive).*
updateAuths ​
function updateAuths(struct Structs.AddressBool[] authsStatus_) external
adds/removes auths. Auths generally could be contracts which can have restricted actions defined on contract. auths can be helpful in reducing governance overhead where it's not needed.
Parameters ​
Name | Type | Description |
---|---|---|
authsStatus_ | struct Structs.AddressBool[] | array of structs setting allowed status for an address. status true => add auth, false => remove auth |
updateGuardians ​
function updateGuardians(struct Structs.AddressBool[] guardiansStatus_) external
adds/removes guardians. Only callable by Governance.
Parameters ​
Name | Type | Description |
---|---|---|
guardiansStatus_ | struct Structs.AddressBool[] | array of structs setting allowed status for an address. status true => add guardian, false => remove guardian |
updateRevenueCollector ​
function updateRevenueCollector(address revenueCollector_) external
changes the revenue collector address (contract that is sent revenue). Only callable by Governance.
Parameters ​
Name | Type | Description |
---|---|---|
revenueCollector_ | address | new revenue collector address |
AuthInternals ​
_computeRateDataPackedV1 ​
function _computeRateDataPackedV1(struct Structs.RateDataV1Params rataDataV1Params_) internal pure returns (uint256 rateData_)
computes rata data packed uint256 for version 1 rate input params telling desired values at different uzilitation points (0%, kink, 100%)
Parameters ​
Name | Type | Description |
---|---|---|
rataDataV1Params_ | struct Structs.RateDataV1Params | rata data params for a given token |
Return Values ​
Name | Type | Description |
---|---|---|
rateData_ | uint256 | packed uint256 rate data |
_computeRateDataPackedV2 ​
function _computeRateDataPackedV2(struct Structs.RateDataV2Params rataDataV2Params_) internal pure returns (uint256 rateData_)
computes rata data packed uint256 for rate version 2 input params telling desired values at different uzilitation points (0%, kink1, kink2, 100%)
Parameters ​
Name | Type | Description |
---|---|---|
rataDataV2Params_ | struct Structs.RateDataV2Params | rata data params for a given token |
Return Values ​
Name | Type | Description |
---|---|---|
rateData_ | uint256 | packed uint256 rate data |
_updateExchangePrices ​
function _updateExchangePrices(address token_) internal returns (uint256 supplyExchangePrice_, uint256 borrowExchangePrice_)
updates the exchange prices in storage for token_
and returnssupplyExchangePrice*
andborrowExchangePrice*
. Recommended to use only in a method that later calls _updateExchangePricesAndRates()
.
_updateExchangePricesAndRates ​
function _updateExchangePricesAndRates(address token_) internal returns (uint256 supplyExchangePrice_, uint256 borrowExchangePrice_)
_updates the exchange prices + rates in storage for token_
and returnssupplyExchangePrice*
andborrowExchangePrice*
_
AuthModule ​
Fluid Liquidity Auths only related methods
onlyAuths ​
modifier onlyAuths()
only auths guard
collectRevenue ​
function collectRevenue(address[] tokens_) external
collects revenue for tokens to configured revenueCollector address.
Note that this can revert if token balance is < revenueAmount (utilization > 100%)
Parameters ​
Name | Type | Description |
---|---|---|
tokens_ | address[] | array of tokens to collect revenue for |
changeStatus ​
function changeStatus(uint256 newStatus_) external
changes current status, e.g. for pausing or unpausing all user operations. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
newStatus_ | uint256 | new status status = 2 -> pause, status = 1 -> resume. |
updateRateDataV1s ​
function updateRateDataV1s(struct Structs.RateDataV1Params[] tokensRateData_) external
update tokens rate data version 1. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
tokensRateData_ | struct Structs.RateDataV1Params[] | array of RateDataV1Params with rate data to set for each token |
updateRateDataV2s ​
function updateRateDataV2s(struct Structs.RateDataV2Params[] tokensRateData_) external
update tokens rate data version 2. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
tokensRateData_ | struct Structs.RateDataV2Params[] | array of RateDataV2Params with rate data to set for each token |
updateTokenConfigs ​
function updateTokenConfigs(struct Structs.TokenConfig[] tokenConfigs_) external
updates token configs: fee charge on borrowers interest & storage update utilization threshold. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
tokenConfigs_ | struct Structs.TokenConfig[] | contains token address, fee & utilization threshold |
updateUserClasses ​
function updateUserClasses(struct Structs.AddressUint256[] userClasses_) external
updates user classes: 0 is for new protocols, 1 is for established protocols. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
userClasses_ | struct Structs.AddressUint256[] | struct array of uint256 value to assign for each user address |
updateUserWithdrawalLimit ​
function updateUserWithdrawalLimit(address user_, address token_, uint256 newLimit_) external
sets a new withdrawal limit as the current limit for a certain user
Parameters ​
Name | Type | Description |
---|---|---|
user_ | address | user address for which to update the withdrawal limit |
token_ | address | token address for which to update the withdrawal limit |
newLimit_ | uint256 | new limit until which user supply can decrease to. Important: input in raw. Must account for exchange price in input param calculation. Note any limit that is < max expansion or > current user supply will set max expansion limit or current user supply as limit respectively. - set 0 to make maximum possible withdrawable: instant full expansion, and if that goes below base limit then fully down to 0. - set type(uint256).max to make current withdrawable 0 (sets current user supply as limit). |
updateUserSupplyConfigs ​
function updateUserSupplyConfigs(struct Structs.UserSupplyConfig[] userSupplyConfigs_) external
sets user supply configs per token basis. Eg: with interest or interest-free and automated limits. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
userSupplyConfigs_ | struct Structs.UserSupplyConfig[] | struct array containing user supply config, see UserSupplyConfig struct for more info |
updateUserBorrowConfigs ​
function updateUserBorrowConfigs(struct Structs.UserBorrowConfig[] userBorrowConfigs_) external
setting user borrow configs per token basis. Eg: with interest or interest-free and automated limits. Only callable by Auths.
Parameters ​
Name | Type | Description |
---|---|---|
userBorrowConfigs_ | struct Structs.UserBorrowConfig[] | struct array containing user borrow config, see UserBorrowConfig struct for more info |
GuardianModule ​
Fluid Liquidity Guardians only related methods
onlyGuardians ​
modifier onlyGuardians()
only guardians guard
pauseUser ​
function pauseUser(address user_, address[] supplyTokens_, address[] borrowTokens_) public
pause operations for a particular user in class 0 (class 1 users can't be paused by guardians). Only callable by Guardians.
Parameters ​
Name | Type | Description |
---|---|---|
user_ | address | address of user to pause operations for |
supplyTokens_ | address[] | token addresses to pause withdrawals for |
borrowTokens_ | address[] | token addresses to pause borrowings for |
unpauseUser ​
function unpauseUser(address user_, address[] supplyTokens_, address[] borrowTokens_) public
unpause operations for a particular user in class 0 (class 1 users can't be paused by guardians). Only callable by Guardians.
Parameters ​
Name | Type | Description |
---|---|---|
user_ | address | address of user to unpause operations for |
supplyTokens_ | address[] | token addresses to unpause withdrawals for |
borrowTokens_ | address[] | token addresses to unpause borrowings for |
FluidLiquidityAdminModule ​
Fluid Liquidity auth protected methods to configure things such as: guardians, auths, governance, revenue, token configs, allowances etc. Accessibility of methods is restricted to Governance, Auths or Guardians. Governance is Auth & Governance by default
constructor ​
constructor(uint256 nativeTokenMaxBorrowLimitCap_) public
updateExchangePrices ​
function updateExchangePrices(address[] tokens_) external returns (uint256[] supplyExchangePrices_, uint256[] borrowExchangePrices_)
gets the current updated exchange prices for n tokens and updates all prices, rates related data in storage.
Parameters ​
Name | Type | Description |
---|---|---|
tokens_ | address[] | tokens to update exchange prices for |
Return Values ​
Name | Type | Description |
---|---|---|
supplyExchangePrices_ | uint256[] | new supply rates of overall system for each token |
borrowExchangePrices_ | uint256[] | new borrow rates of overall system for each token |