UiIncentiveDataProviderV3

This contract is a read-only aggregator for incentive data. It is designed for frontends to fetch:

  • Global reserve incentives (what rewards exist, how much is emitted).

  • User-specific incentive state (how many rewards are claimable).

  • Or both in one optimized call.

Functions

  • getFullReservesIncentiveData(provider, user) → (AggregatedReserveIncentiveData[], UserReserveIncentiveData[]) Returns all global incentives configuration and the user-specific incentive data in one call.

    • provider: Address of the PoolAddressesProvider.

    • user: Wallet address to check.

    • Outputs:

      • AggregatedReserveIncentiveData[]: Incentives setup for each reserve (deposit aToken, variable debt vToken, stable debt sToken). Includes emission rates, reward token info, price feeds, and controller addresses.

      • UserReserveIncentiveData[]: For the given user, detailed data about unclaimed rewards and indexes across aToken, vToken, and sToken.


  • getReservesIncentivesData(provider) → (AggregatedReserveIncentiveData[]) Returns only global incentives configuration for all reserves (no user-specific data).

    • provider: Address of the PoolAddressesProvider.

    • Outputs:

      • AggregatedReserveIncentiveData[]: Same structure as above, with all reserve-level incentive parameters.


  • getUserReservesIncentivesData(provider, user) → (UserReserveIncentiveData[]) Returns only the user-specific incentive data.

    • provider: Address of the PoolAddressesProvider.

    • user: Wallet address to check.

    • Outputs:

      • UserReserveIncentiveData[]: For each reserve, lists user unclaimed rewards, indexes, reward token decimals, and price feed info.

[
  {
    "inputs": [
      { "internalType": "contract IPoolAddressesProvider", "name": "provider", "type": "address" },
      { "internalType": "address", "name": "user", "type": "address" }
    ],
    "name": "getFullReservesIncentiveData",
    "outputs": [
      {
        "internalType": "struct IUiIncentiveDataProviderV3.AggregatedReserveIncentiveData[]",
        "name": "",
        "type": "tuple[]"
      },
      {
        "internalType": "struct IUiIncentiveDataProviderV3.UserReserveIncentiveData[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "contract IPoolAddressesProvider", "name": "provider", "type": "address" }
    ],
    "name": "getReservesIncentivesData",
    "outputs": [
      {
        "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": [
      {
        "internalType": "struct IUiIncentiveDataProviderV3.UserReserveIncentiveData[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]

Last updated

Was this helpful?