UiIncentiveDataProviderV3
Contract that returns an array of all reserve incentives or user claimable rewards within a particular market to display incentives data.
The [Utilities SDK] includes an interface to make calls to this contract, and functions to format the response for frontend use-cases.
Data Structures
AggregatedReserveIncentiveData
Name | Type | Description |
---|---|---|
underlyingAsset | address | Address of the asset supplied/borrowed in Pool |
aIncentiveData | IncentiveData | Details of rewards distributed for supplying to HypurrFi Pool i.e. rewards for hyToken holders. |
vIncentiveData | IncentiveData | Details of rewards distributed for variable debt borrowed from HypurrFi Pool i.e. rewards for vToken holders. |
sIncentiveData | IncentiveData | Details of rewards distributed for stable debt borrowed from HypurrFi Pool i.e. rewards for sToken holders. |
IncentiveData
Name | Type | Description |
---|---|---|
tokenAddress | address | Address of corresponding hy/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 |
RewardInfo
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 (hy/s/vToken) |
priceFeedDecimals | uint8 | Decimals of price provided by oracle |
UserReserveIncentiveData
Name | Type | Description |
---|---|---|
underlyingAsset | address | Address of the asset supplied/borrowed in Pool |
aTokenIncentivesUserData | UserIncentiveData | Details of user rewards received for supplying to HypurrFi Pool i.e. rewards for hyToken. |
vTokenIncentivesUserData | UserIncentiveData | Details of user rewards received for borrowing at variable rate from HypurrFi Pool i.e. rewards for vToken. |
sTokenIncentivesUserData | UserIncentiveData | Details of user rewards received for borrowing at stable rate from HypurrFi Pool i.e. rewards for sToken. |
UserIncentiveData
Name | Type | Description |
---|---|---|
tokenAddress | address | Address of corresponding hy/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 hy/s/vToken |
UserRewardInfo
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 |
Methods
getReservesIncentivesData
function getReservesIncentivesData(IPoolAddressesProvider provider)
Returns AggregatedReserveIncentiveData[]
for the pool associated with given [provider
].
getUserReservesIncentivesData
function getUserReservesIncentivesData(IPoolAddressesProvider provider, address user)
Returns UserReserveIncentiveData[]
for the given user
for the pool associated with given .
getFullReservesIncentiveData
function getFullReservesIncentiveData(IPoolAddressesProvider provider, address user)
Returns both AggregatedReserveIncentiveData[]
and UserReserveIncentiveData[]
for the given user
for the pool associated with given [provider
].
ABI
[
{
"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"
}
]