UiIncentiveDataProviderV3
Contract that returns an array of all reserve incentives or user claimable rewards within a particular market, used by the Aave Interface to display incentives data. Compatible with both V2 and V3 of the Aave Protocol.
The Aave Utilities SDK includes an interface to make calls to this contract, and functions to format the response for frontend use-cases.
Name | Type | Description |
---|---|---|
underlyingAsset | address | Address of the asset supplied/borrowed in Pool |
aIncentiveData | IncentiveData | Details of rewards distributed for supplying to Aave Pool i.e. rewards for aToken holders. |
vIncentiveData | IncentiveData | Details of rewards distributed for variable debt borrowed from Aave Pool i.e. rewards for vToken holders. |
sIncentiveData | IncentiveData | Details of rewards distributed for stable debt borrowed from Aave Pool i.e. rewards for sToken holders. |
Name | Type | Description |
---|---|---|
tokenAddress | address | Address of corresponding a/s/vToken. |
incentiveControllerAddress | address | Address of Rewards Controller |
rewardsTokenInformation | RewardInfo[] | Array of details for all reward tokens that are available for given a/s/vToken |
Name | Type | Description |
---|---|---|
rewardTokenSymbol | string | Symbol of Reward Token |
rewardTokenAddress | address | Address of Reward Token |
rewardOracleAddress | address | Price Oracle for Reward token |
emissionPerSecond | uint256 | Reward Token emitted per second |
incentivesLastUpdateTimestamp | uint256 | Unix timestamp of last update made on asset’s reward token. |
tokenIncentivesIndex | uint256 | Latest distribution index of the reward token |
emissionEndTimestamp | uint256 | Unix timestamp of when the Incentive emission of given reward token ends for the corresponding asset |
rewardPriceFeed | int256 | Latest answer/price from reward token price oracle |
rewardTokenDecimals | uint8 | Decimals of reward token |
precision | uint8 | Decimals of asset token (a/s/vToken) |
priceFeedDecimals | uint8 | Decimals of price provided by oracle |
Name | Type | Description |
---|---|---|
underlyingAsset | address | Address of the asset supplied/borrowed in Pool |
aTokenIncentivesUserData | UserIncentiveData | Details of user rewards received for supplying to Aave Pool i.e. rewards for aToken. |
vTokenIncentivesUserData | UserIncentiveData | Details of user rewards received for borrowing at variable rate from Aave Pool i.e. rewards for vToken. |
sTokenIncentivesUserData | UserIncentiveData | Details of user rewards received for borrowing at stable rate from Aave Pool i.e. rewards for sToken. |
Name | Type | Description |
---|---|---|
tokenAddress | address | Address of corresponding a/s/vToken. |
incentiveControllerAddress | address | Address of Rewards Controller for reward claim tx |
userRewardsInformation | UserRewardInfo[] | Array of details for all reward tokens accrued/claimed by user for given a/s/vToken |
Name | Type | Description |
---|---|---|
rewardTokenSymbol | string | Symbol of Reward Token |
rewardOracleAddress | address | Price Oracle for Reward token |
rewardTokenAddress | address | Address of Reward Token |
userUnclaimedRewards | uint256 | User’s unclaimed rewards |
tokenIncentivesUserIndex | uint256 | Latest user distribution index |
rewardPriceFeed | int256 | Latest answer/price from reward token price oracle |
priceFeedDecimals | uint8 | Decimals of price provided by oracle |
rewardTokenDecimals | uint8 | Decimals of reward token |
function getReservesIncentivesData(IPoolAddressesProvider provider)
function getUserReservesIncentivesData(IPoolAddressesProvider provider, address user)
Returns
UserReserveIncentiveData[]
for the given user
for the pool associated with given .function getFullReservesIncentiveData(IPoolAddressesProvider provider, address user)
Returns both
AggregatedReserveIncentiveData[]
and UserReserveIncentiveData[]
for the given user
for the pool associated with given provider
.[
{
"inputs": [
{
"internalType": "contract IPoolAddressesProvider",
"name": "provider",
"type": "address"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getFullReservesIncentiveData",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "underlyingAsset",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "emissionPerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "incentivesLastUpdateTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "emissionEndTimestamp",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "precision",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.RewardInfo[]",
"name": "rewardsTokenInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.IncentiveData",
"name": "aIncentiveData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "emissionPerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "incentivesLastUpdateTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "emissionEndTimestamp",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "precision",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.RewardInfo[]",
"name": "rewardsTokenInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.IncentiveData",
"name": "vIncentiveData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "emissionPerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "incentivesLastUpdateTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "emissionEndTimestamp",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "precision",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.RewardInfo[]",
"name": "rewardsTokenInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.IncentiveData",
"name": "sIncentiveData",
"type": "tuple"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.AggregatedReserveIncentiveData[]",
"name": "",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "address",
"name": "underlyingAsset",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "userUnclaimedRewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesUserIndex",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserRewardInfo[]",
"name": "userRewardsInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserIncentiveData",
"name": "aTokenIncentivesUserData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "userUnclaimedRewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesUserIndex",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserRewardInfo[]",
"name": "userRewardsInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserIncentiveData",
"name": "vTokenIncentivesUserData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "userUnclaimedRewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesUserIndex",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserRewardInfo[]",
"name": "userRewardsInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserIncentiveData",
"name": "sTokenIncentivesUserData",
"type": "tuple"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserReserveIncentiveData[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IPoolAddressesProvider",
"name": "provider",
"type": "address"
}
],
"name": "getReservesIncentivesData",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "underlyingAsset",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "emissionPerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "incentivesLastUpdateTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "emissionEndTimestamp",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "precision",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.RewardInfo[]",
"name": "rewardsTokenInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.IncentiveData",
"name": "aIncentiveData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "emissionPerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "incentivesLastUpdateTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "emissionEndTimestamp",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "precision",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.RewardInfo[]",
"name": "rewardsTokenInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.IncentiveData",
"name": "vIncentiveData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "emissionPerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "incentivesLastUpdateTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "emissionEndTimestamp",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "precision",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.RewardInfo[]",
"name": "rewardsTokenInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.IncentiveData",
"name": "sIncentiveData",
"type": "tuple"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.AggregatedReserveIncentiveData[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IPoolAddressesProvider",
"name": "provider",
"type": "address"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUserReservesIncentivesData",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "underlyingAsset",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "userUnclaimedRewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesUserIndex",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserRewardInfo[]",
"name": "userRewardsInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserIncentiveData",
"name": "aTokenIncentivesUserData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "userUnclaimedRewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesUserIndex",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserRewardInfo[]",
"name": "userRewardsInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserIncentiveData",
"name": "vTokenIncentivesUserData",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "incentiveControllerAddress",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "rewardTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "rewardOracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "rewardTokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "userUnclaimedRewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenIncentivesUserIndex",
"type": "uint256"
},
{
"internalType": "int256",
"name": "rewardPriceFeed",
"type": "int256"
},
{
"internalType": "uint8",
"name": "priceFeedDecimals",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "rewardTokenDecimals",
"type": "uint8"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserRewardInfo[]",
"name": "userRewardsInformation",
"type": "tuple[]"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserIncentiveData",
"name": "sTokenIncentivesUserData",
"type": "tuple"
}
],
"internalType": "struct IUiIncentiveDataProviderV3.UserReserveIncentiveData[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
}
]