AaveProtocolDataProvider
Read-only helper used by frontends and integrators. All methods are derived views over Pool and the reserve token contracts.
The provider is registered on PoolAddressesProvider under the DATA_PROVIDER identifier — fetch its address via PoolAddressesProvider.getPoolDataProvider().
State
ADDRESSES_PROVIDER
IPoolAddressesProvider public immutable ADDRESSES_PROVIDERThe provider this data-provider was configured against.
Methods
getAllReservesTokens
function getAllReservesTokens() external view returns (TokenData[] memory)Returns one TokenData(symbol, tokenAddress) per active reserve. For two special-cased addresses, the symbol is hard-coded:
MKR (0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2)—symbol == "MKR"(the live MKR token returns abytes32symbol, which would breakIERC20Detailed.symbol).ETH (0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)—symbol == "ETH".
For every other reserve, symbol is fetched from the underlying via IERC20Detailed.symbol().
getAllATokens
function getAllATokens() external view returns (TokenData[] memory)Returns one TokenData(symbol, tokenAddress) per active reserve, where the address and symbol are read from the reserve's AToken proxy (e.g. spUSDS).
getReserveConfigurationData
function getReserveConfigurationData(address asset) external view returns (
uint256 decimals,
uint256 ltv,
uint256 liquidationThreshold,
uint256 liquidationBonus,
uint256 reserveFactor,
bool usageAsCollateralEnabled,
bool borrowingEnabled,
bool stableBorrowRateEnabled,
bool isActive,
bool isFrozen
)Decoded reserve configuration. usageAsCollateralEnabled is liquidationThreshold != 0.
getReserveEModeCategory
function getReserveEModeCategory(address asset) external view returns (uint256)Returns the asset's e-mode category (0 = default).
getReserveCaps
function getReserveCaps(address asset) external view returns (uint256 borrowCap, uint256 supplyCap)Caps are in whole tokens, not native units. 0 means no cap.
getPaused
function getPaused(address asset) external view returns (bool isPaused)Per-reserve paused flag (bit 60).
getSiloedBorrowing
function getSiloedBorrowing(address asset) external view returns (bool)Per-reserve siloed-borrowing flag (bit 62).
getLiquidationProtocolFee
function getLiquidationProtocolFee(address asset) external view returns (uint256)Bps share of the liquidation bonus routed to treasury.
getUnbackedMintCap
function getUnbackedMintCap(address asset) external view returns (uint256)Bridge unbacked-mint cap (whole tokens).
getDebtCeiling / getDebtCeilingDecimals
function getDebtCeiling(address asset) external view returns (uint256)
function getDebtCeilingDecimals() external pure returns (uint256)getDebtCeiling returns the isolation-mode debt ceiling with DEBT_CEILING_DECIMALS = 2 (so 200_00 = $200). 0 means isolation mode is disabled for the asset.
getReserveData
function getReserveData(address asset) external view returns (
uint256 unbacked,
uint256 accruedToTreasuryScaled,
uint256 totalAToken,
uint256 totalStableDebt,
uint256 totalVariableDebt,
uint256 liquidityRate,
uint256 variableBorrowRate,
uint256 stableBorrowRate,
uint256 averageStableBorrowRate,
uint256 liquidityIndex,
uint256 variableBorrowIndex,
uint40 lastUpdateTimestamp
)Snapshot of the reserve's economics. totalAToken, totalStableDebt, and totalVariableDebt are denominated in the underlying asset's native units.
getATokenTotalSupply
function getATokenTotalSupply(address asset) external view returns (uint256)AToken.totalSupply() for the reserve.
getTotalDebt
function getTotalDebt(address asset) external view returns (uint256)StableDebtToken.totalSupply() + VariableDebtToken.totalSupply().
getUserReserveData
function getUserReserveData(address asset, address user) external view returns (
uint256 currentATokenBalance,
uint256 currentStableDebt,
uint256 currentVariableDebt,
uint256 principalStableDebt,
uint256 scaledVariableDebt,
uint256 stableBorrowRate,
uint256 liquidityRate,
uint40 stableRateLastUpdated,
bool usageAsCollateralEnabled
)getReserveTokensAddresses
function getReserveTokensAddresses(address asset) external view returns (
address aTokenAddress,
address stableDebtTokenAddress,
address variableDebtTokenAddress
)getInterestRateStrategyAddress
function getInterestRateStrategyAddress(address asset) external view returns (address)getFlashLoanEnabled
function getFlashLoanEnabled(address asset) external view returns (bool)Returns bit 63 of the reserve configuration.