Skip to main content

ReserveConfiguration

ReserveConfiguration​

Implements the bitmap logic to handle the reserve configuration

LTV_MASK​

uint256 LTV_MASK

LIQUIDATION_THRESHOLD_MASK​

uint256 LIQUIDATION_THRESHOLD_MASK

LIQUIDATION_BONUS_MASK​

uint256 LIQUIDATION_BONUS_MASK

DECIMALS_MASK​

uint256 DECIMALS_MASK

ACTIVE_MASK​

uint256 ACTIVE_MASK

FROZEN_MASK​

uint256 FROZEN_MASK

BORROWING_MASK​

uint256 BORROWING_MASK

STABLE_BORROWING_MASK​

uint256 STABLE_BORROWING_MASK

PAUSED_MASK​

uint256 PAUSED_MASK

BORROWABLE_IN_ISOLATION_MASK​

uint256 BORROWABLE_IN_ISOLATION_MASK

SILOED_BORROWING_MASK​

uint256 SILOED_BORROWING_MASK

FLASHLOAN_ENABLED_MASK​

uint256 FLASHLOAN_ENABLED_MASK

RESERVE_FACTOR_MASK​

uint256 RESERVE_FACTOR_MASK

BORROW_CAP_MASK​

uint256 BORROW_CAP_MASK

SUPPLY_CAP_MASK​

uint256 SUPPLY_CAP_MASK

LIQUIDATION_PROTOCOL_FEE_MASK​

uint256 LIQUIDATION_PROTOCOL_FEE_MASK

EMODE_CATEGORY_MASK​

uint256 EMODE_CATEGORY_MASK

UNBACKED_MINT_CAP_MASK​

uint256 UNBACKED_MINT_CAP_MASK

DEBT_CEILING_MASK​

uint256 DEBT_CEILING_MASK

LIQUIDATION_THRESHOLD_START_BIT_POSITION​

uint256 LIQUIDATION_THRESHOLD_START_BIT_POSITION

For the LTV, the start bit is 0 (up to 15), hence no bitshifting is needed

LIQUIDATION_BONUS_START_BIT_POSITION​

uint256 LIQUIDATION_BONUS_START_BIT_POSITION

RESERVE_DECIMALS_START_BIT_POSITION​

uint256 RESERVE_DECIMALS_START_BIT_POSITION

IS_ACTIVE_START_BIT_POSITION​

uint256 IS_ACTIVE_START_BIT_POSITION

IS_FROZEN_START_BIT_POSITION​

uint256 IS_FROZEN_START_BIT_POSITION

BORROWING_ENABLED_START_BIT_POSITION​

uint256 BORROWING_ENABLED_START_BIT_POSITION

STABLE_BORROWING_ENABLED_START_BIT_POSITION​

uint256 STABLE_BORROWING_ENABLED_START_BIT_POSITION

IS_PAUSED_START_BIT_POSITION​

uint256 IS_PAUSED_START_BIT_POSITION

BORROWABLE_IN_ISOLATION_START_BIT_POSITION​

uint256 BORROWABLE_IN_ISOLATION_START_BIT_POSITION

SILOED_BORROWING_START_BIT_POSITION​

uint256 SILOED_BORROWING_START_BIT_POSITION

FLASHLOAN_ENABLED_START_BIT_POSITION​

uint256 FLASHLOAN_ENABLED_START_BIT_POSITION

RESERVE_FACTOR_START_BIT_POSITION​

uint256 RESERVE_FACTOR_START_BIT_POSITION

BORROW_CAP_START_BIT_POSITION​

uint256 BORROW_CAP_START_BIT_POSITION

SUPPLY_CAP_START_BIT_POSITION​

uint256 SUPPLY_CAP_START_BIT_POSITION

LIQUIDATION_PROTOCOL_FEE_START_BIT_POSITION​

uint256 LIQUIDATION_PROTOCOL_FEE_START_BIT_POSITION

EMODE_CATEGORY_START_BIT_POSITION​

uint256 EMODE_CATEGORY_START_BIT_POSITION

UNBACKED_MINT_CAP_START_BIT_POSITION​

uint256 UNBACKED_MINT_CAP_START_BIT_POSITION

DEBT_CEILING_START_BIT_POSITION​

uint256 DEBT_CEILING_START_BIT_POSITION

MAX_VALID_LTV​

uint256 MAX_VALID_LTV

MAX_VALID_LIQUIDATION_THRESHOLD​

uint256 MAX_VALID_LIQUIDATION_THRESHOLD

MAX_VALID_LIQUIDATION_BONUS​

uint256 MAX_VALID_LIQUIDATION_BONUS

MAX_VALID_DECIMALS​

uint256 MAX_VALID_DECIMALS

MAX_VALID_RESERVE_FACTOR​

uint256 MAX_VALID_RESERVE_FACTOR

MAX_VALID_BORROW_CAP​

uint256 MAX_VALID_BORROW_CAP

MAX_VALID_SUPPLY_CAP​

uint256 MAX_VALID_SUPPLY_CAP

MAX_VALID_LIQUIDATION_PROTOCOL_FEE​

uint256 MAX_VALID_LIQUIDATION_PROTOCOL_FEE

MAX_VALID_EMODE_CATEGORY​

uint256 MAX_VALID_EMODE_CATEGORY

MAX_VALID_UNBACKED_MINT_CAP​

uint256 MAX_VALID_UNBACKED_MINT_CAP

MAX_VALID_DEBT_CEILING​

uint256 MAX_VALID_DEBT_CEILING

DEBT_CEILING_DECIMALS​

uint256 DEBT_CEILING_DECIMALS

MAX_RESERVES_COUNT​

uint16 MAX_RESERVES_COUNT

setLtv​

function setLtv(struct DataTypes.ReserveConfigurationMap self, uint256 ltv) internal pure

Sets the Loan to Value of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
ltvuint256The new ltv

getLtv​

function getLtv(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the Loan to Value of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The loan to value

setLiquidationThreshold​

function setLiquidationThreshold(struct DataTypes.ReserveConfigurationMap self, uint256 threshold) internal pure

Sets the liquidation threshold of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
thresholduint256The new liquidation threshold

getLiquidationThreshold​

function getLiquidationThreshold(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the liquidation threshold of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The liquidation threshold

setLiquidationBonus​

function setLiquidationBonus(struct DataTypes.ReserveConfigurationMap self, uint256 bonus) internal pure

Sets the liquidation bonus of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
bonusuint256The new liquidation bonus

getLiquidationBonus​

function getLiquidationBonus(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the liquidation bonus of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The liquidation bonus

setDecimals​

function setDecimals(struct DataTypes.ReserveConfigurationMap self, uint256 decimals) internal pure

Sets the decimals of the underlying asset of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
decimalsuint256The decimals

getDecimals​

function getDecimals(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the decimals of the underlying asset of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The decimals of the asset

setActive​

function setActive(struct DataTypes.ReserveConfigurationMap self, bool active) internal pure

Sets the active state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
activeboolThe active state

getActive​

function getActive(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the active state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe active state

setFrozen​

function setFrozen(struct DataTypes.ReserveConfigurationMap self, bool frozen) internal pure

Sets the frozen state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
frozenboolThe frozen state

getFrozen​

function getFrozen(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the frozen state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe frozen state

setPaused​

function setPaused(struct DataTypes.ReserveConfigurationMap self, bool paused) internal pure

Sets the paused state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
pausedboolThe paused state

getPaused​

function getPaused(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the paused state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe paused state

setBorrowableInIsolation​

function setBorrowableInIsolation(struct DataTypes.ReserveConfigurationMap self, bool borrowable) internal pure

Sets the borrowable in isolation flag for the reserve.

When this flag is set to true, the asset will be borrowable against isolated collaterals and the borrowed amount will be accumulated in the isolated collateral's total debt exposure. Only assets of the same family (eg USD stablecoins) should be borrowable in isolation mode to keep consistency in the debt ceiling calculations.

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
borrowableboolTrue if the asset is borrowable

getBorrowableInIsolation​

function getBorrowableInIsolation(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the borrowable in isolation flag for the reserve.

If the returned flag is true, the asset is borrowable against isolated collateral. Assets borrowed with isolated collateral is accounted for in the isolated collateral's total debt exposure. Only assets of the same family (eg USD stablecoins) should be borrowable in isolation mode to keep consistency in the debt ceiling calculations.

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe borrowable in isolation flag

setSiloedBorrowing​

function setSiloedBorrowing(struct DataTypes.ReserveConfigurationMap self, bool siloed) internal pure

Sets the siloed borrowing flag for the reserve.

When this flag is set to true, users borrowing this asset will not be allowed to borrow any other asset.

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
siloedboolTrue if the asset is siloed

getSiloedBorrowing​

function getSiloedBorrowing(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the siloed borrowing flag for the reserve.

When this flag is set to true, users borrowing this asset will not be allowed to borrow any other asset.

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe siloed borrowing flag

setBorrowingEnabled​

function setBorrowingEnabled(struct DataTypes.ReserveConfigurationMap self, bool enabled) internal pure

Enables or disables borrowing on the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
enabledboolTrue if the borrowing needs to be enabled, false otherwise

getBorrowingEnabled​

function getBorrowingEnabled(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the borrowing state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe borrowing state

setStableRateBorrowingEnabled​

function setStableRateBorrowingEnabled(struct DataTypes.ReserveConfigurationMap self, bool enabled) internal pure

Enables or disables stable rate borrowing on the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
enabledboolTrue if the stable rate borrowing needs to be enabled, false otherwise

getStableRateBorrowingEnabled​

function getStableRateBorrowingEnabled(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the stable rate borrowing state of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe stable rate borrowing state

setReserveFactor​

function setReserveFactor(struct DataTypes.ReserveConfigurationMap self, uint256 reserveFactor) internal pure

Sets the reserve factor of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
reserveFactoruint256The reserve factor

getReserveFactor​

function getReserveFactor(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the reserve factor of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The reserve factor

setBorrowCap​

function setBorrowCap(struct DataTypes.ReserveConfigurationMap self, uint256 borrowCap) internal pure

Sets the borrow cap of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
borrowCapuint256The borrow cap

getBorrowCap​

function getBorrowCap(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the borrow cap of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The borrow cap

setSupplyCap​

function setSupplyCap(struct DataTypes.ReserveConfigurationMap self, uint256 supplyCap) internal pure

Sets the supply cap of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
supplyCapuint256The supply cap

getSupplyCap​

function getSupplyCap(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the supply cap of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The supply cap

setDebtCeiling​

function setDebtCeiling(struct DataTypes.ReserveConfigurationMap self, uint256 ceiling) internal pure

Sets the debt ceiling in isolation mode for the asset

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
ceilinguint256The maximum debt ceiling for the asset

getDebtCeiling​

function getDebtCeiling(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the debt ceiling for the asset if the asset is in isolation mode

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The debt ceiling (0 = isolation mode disabled)

setLiquidationProtocolFee​

function setLiquidationProtocolFee(struct DataTypes.ReserveConfigurationMap self, uint256 liquidationProtocolFee) internal pure

Sets the liquidation protocol fee of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
liquidationProtocolFeeuint256The liquidation protocol fee

getLiquidationProtocolFee​

function getLiquidationProtocolFee(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the liquidation protocol fee

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The liquidation protocol fee

setUnbackedMintCap​

function setUnbackedMintCap(struct DataTypes.ReserveConfigurationMap self, uint256 unbackedMintCap) internal pure

Sets the unbacked mint cap of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
unbackedMintCapuint256The unbacked mint cap

getUnbackedMintCap​

function getUnbackedMintCap(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the unbacked mint cap of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The unbacked mint cap

setEModeCategory​

function setEModeCategory(struct DataTypes.ReserveConfigurationMap self, uint256 category) internal pure

Sets the eMode asset category

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
categoryuint256The asset category when the user selects the eMode

getEModeCategory​

function getEModeCategory(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256)

Gets the eMode asset category

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The eMode category for the asset

setFlashLoanEnabled​

function setFlashLoanEnabled(struct DataTypes.ReserveConfigurationMap self, bool flashLoanEnabled) internal pure

Sets the flashloanable flag for the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration
flashLoanEnabledboolTrue if the asset is flashloanable, false otherwise

getFlashLoanEnabled​

function getFlashLoanEnabled(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool)

Gets the flashloanable flag for the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe flashloanable flag

getFlags​

function getFlags(struct DataTypes.ReserveConfigurationMap self) internal pure returns (bool, bool, bool, bool, bool)

Gets the configuration flags of the reserve

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]boolThe state flag representing active
[1]boolThe state flag representing frozen
[2]boolThe state flag representing borrowing enabled
[3]boolThe state flag representing stableRateBorrowing enabled
[4]boolThe state flag representing paused

getParams​

function getParams(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256, uint256, uint256, uint256, uint256, uint256)

Gets the configuration parameters of the reserve from storage

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The state param representing ltv
[1]uint256The state param representing liquidation threshold
[2]uint256The state param representing liquidation bonus
[3]uint256The state param representing reserve decimals
[4]uint256The state param representing reserve factor
[5]uint256The state param representing eMode category

getCaps​

function getCaps(struct DataTypes.ReserveConfigurationMap self) internal pure returns (uint256, uint256)

Gets the caps parameters of the reserve from storage

Parameters​

NameTypeDescription
selfstruct DataTypes.ReserveConfigurationMapThe reserve configuration

Return Values​

NameTypeDescription
[0]uint256The state param representing borrow cap
[1]uint256The state param representing supply cap.