aave-protocol-v2/contracts/misc/interfaces/IUiIncentiveDataProviderV2.sol
2021-12-17 16:23:11 +01:00

58 lines
1.7 KiB
Solidity

// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;
import {ILendingPoolAddressesProvider} from '../../interfaces/ILendingPoolAddressesProvider.sol';
interface IUiIncentiveDataProviderV2 {
struct AggregatedReserveIncentiveData {
address underlyingAsset;
IncentiveData aIncentiveData;
IncentiveData vIncentiveData;
IncentiveData sIncentiveData;
}
struct IncentiveData {
uint256 emissionPerSecond;
uint256 incentivesLastUpdateTimestamp;
uint256 tokenIncentivesIndex;
uint256 emissionEndTimestamp;
address tokenAddress;
address rewardTokenAddress;
address incentiveControllerAddress;
uint8 rewardTokenDecimals;
uint8 precision;
}
struct UserReserveIncentiveData {
address underlyingAsset;
UserIncentiveData aTokenIncentivesUserData;
UserIncentiveData vTokenIncentivesUserData;
UserIncentiveData sTokenIncentivesUserData;
}
struct UserIncentiveData {
uint256 tokenincentivesUserIndex;
uint256 userUnclaimedRewards;
address tokenAddress;
address rewardTokenAddress;
address incentiveControllerAddress;
uint8 rewardTokenDecimals;
}
function getReservesIncentivesData(ILendingPoolAddressesProvider provider)
external
view
returns (AggregatedReserveIncentiveData[] memory);
function getUserReservesIncentivesData(ILendingPoolAddressesProvider provider, address user)
external
view
returns (UserReserveIncentiveData[] memory);
// generic method with full data
function getFullReservesIncentiveData(ILendingPoolAddressesProvider provider, address user)
external
view
returns (AggregatedReserveIncentiveData[] memory, UserReserveIncentiveData[] memory);
}