UiIncentiveDataProviderV3
UiIncentiveDataProviderV3
Contract that returns an array of all reserve incentives or user claimable rewards within a particular market, used by the Spark Protocol Interface to display incentives data.
The Spark Protocol Utilities SDK includes an interface to make calls to this contract, and functions to format the response for frontend use-cases.
Data Structures
AggregatedReserveIncentiveData
IncentiveData
RewardInfo
UserReserveIncentiveData
UserIncentiveData
UserRewardInfo
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
UiIncentiveDataProviderV3 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": "spTokenIncentivesUserData",
"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": "spTokenIncentivesUserData",
"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"
}
]
Last updated