From 5f3316398386e37c3347b15a654799864fa88323 Mon Sep 17 00:00:00 2001 From: Josh Stevens Date: Mon, 13 Sep 2021 13:00:01 +0100 Subject: [PATCH] PR change fixes --- contracts/misc/UiIncentiveDataProvider.sol | 112 +++++++++++------- .../misc/interfaces/IUiPoolDataProvider.sol | 5 - 2 files changed, 69 insertions(+), 48 deletions(-) diff --git a/contracts/misc/UiIncentiveDataProvider.sol b/contracts/misc/UiIncentiveDataProvider.sol index 1fd14911..25bce5d9 100644 --- a/contracts/misc/UiIncentiveDataProvider.sol +++ b/contracts/misc/UiIncentiveDataProvider.sol @@ -55,10 +55,10 @@ contract UiIncentiveDataProvider is IUiIncentiveDataProvider { IAToken(baseData.aTokenAddress).getIncentivesController(); ( + uint256 aTokenIncentivesIndex, uint256 aEmissionPerSecond, - uint256 aIncentivesLastUpdateTimestamp, - uint256 aTokenIncentivesIndex - ) = aTokenIncentiveController.assets(baseData.aTokenAddress); + uint256 aIncentivesLastUpdateTimestamp + ) = aTokenIncentiveController.getAssetData(baseData.aTokenAddress); reserveIncentiveData.aIncentiveData = IncentiveData( aEmissionPerSecond, @@ -73,10 +73,10 @@ contract UiIncentiveDataProvider is IUiIncentiveDataProvider { IStableDebtToken(baseData.stableDebtTokenAddress).getIncentivesController(); ( + uint256 sTokenIncentivesIndex, uint256 sEmissionPerSecond, - uint256 sIncentivesLastUpdateTimestamp, - uint256 sTokenIncentivesIndex - ) = sTokenIncentiveController.assets(baseData.stableDebtTokenAddress); + uint256 sIncentivesLastUpdateTimestamp + ) = sTokenIncentiveController.getAssetData(baseData.stableDebtTokenAddress); reserveIncentiveData.sIncentiveData = IncentiveData( sEmissionPerSecond, @@ -91,10 +91,10 @@ contract UiIncentiveDataProvider is IUiIncentiveDataProvider { IVariableDebtToken(baseData.variableDebtTokenAddress).getIncentivesController(); ( + uint256 vTokenIncentivesIndex, uint256 vEmissionPerSecond, - uint256 vIncentivesLastUpdateTimestamp, - uint256 vTokenIncentivesIndex - ) = vTokenIncentiveController.assets(baseData.variableDebtTokenAddress); + uint256 vIncentivesLastUpdateTimestamp + ) = vTokenIncentiveController.getAssetData(baseData.variableDebtTokenAddress); reserveIncentiveData.vIncentiveData = IncentiveData( vEmissionPerSecond, @@ -135,49 +135,75 @@ contract UiIncentiveDataProvider is IUiIncentiveDataProvider { // user reserve data userReservesIncentivesData[i].underlyingAsset = reserves[i]; - IAaveIncentivesController aTokenIncentiveController = - IAToken(baseData.aTokenAddress).getIncentivesController(); - IUiIncentiveDataProvider.UserIncentiveData memory aUserIncentiveData; - aUserIncentiveData.tokenincentivesUserIndex = aTokenIncentiveController.getUserAssetData( - user, - baseData.aTokenAddress - ); - aUserIncentiveData.userUnclaimedRewards = aTokenIncentiveController.getUserUnclaimedRewards( - user - ); - aUserIncentiveData.tokenAddress = baseData.aTokenAddress; - aUserIncentiveData.rewardTokenAddress = aTokenIncentiveController.REWARD_TOKEN(); + + if (baseData.aTokenAddress != address(0)) { + IAaveIncentivesController aTokenIncentiveController = + IAToken(baseData.aTokenAddress).getIncentivesController(); + + aUserIncentiveData.tokenincentivesUserIndex = aTokenIncentiveController.getUserAssetData( + user, + baseData.aTokenAddress + ); + aUserIncentiveData.userUnclaimedRewards = aTokenIncentiveController.getUserUnclaimedRewards( + user + ); + aUserIncentiveData.tokenAddress = baseData.aTokenAddress; + aUserIncentiveData.rewardTokenAddress = aTokenIncentiveController.REWARD_TOKEN(); + } else { + aUserIncentiveData.tokenincentivesUserIndex = uint256(0); + aUserIncentiveData.userUnclaimedRewards = uint256(0); + aUserIncentiveData.tokenAddress = baseData.aTokenAddress; + aUserIncentiveData.rewardTokenAddress = address(0); + } userReservesIncentivesData[i].aTokenIncentivesUserData = aUserIncentiveData; - IAaveIncentivesController vTokenIncentiveController = - IVariableDebtToken(baseData.variableDebtTokenAddress).getIncentivesController(); UserIncentiveData memory vUserIncentiveData; - vUserIncentiveData.tokenincentivesUserIndex = vTokenIncentiveController.getUserAssetData( - user, - baseData.variableDebtTokenAddress - ); - vUserIncentiveData.userUnclaimedRewards = vTokenIncentiveController.getUserUnclaimedRewards( - user - ); - vUserIncentiveData.tokenAddress = baseData.variableDebtTokenAddress; - vUserIncentiveData.rewardTokenAddress = vTokenIncentiveController.REWARD_TOKEN(); + + if (baseData.variableDebtTokenAddress != address(0)) { + IAaveIncentivesController vTokenIncentiveController = + IVariableDebtToken(baseData.variableDebtTokenAddress).getIncentivesController(); + + vUserIncentiveData.tokenincentivesUserIndex = vTokenIncentiveController.getUserAssetData( + user, + baseData.variableDebtTokenAddress + ); + vUserIncentiveData.userUnclaimedRewards = vTokenIncentiveController.getUserUnclaimedRewards( + user + ); + vUserIncentiveData.tokenAddress = baseData.variableDebtTokenAddress; + vUserIncentiveData.rewardTokenAddress = vTokenIncentiveController.REWARD_TOKEN(); + } else { + vUserIncentiveData.tokenincentivesUserIndex = uint256(0); + vUserIncentiveData.userUnclaimedRewards = uint256(0); + vUserIncentiveData.tokenAddress = baseData.variableDebtTokenAddress; + vUserIncentiveData.rewardTokenAddress = address(0); + } userReservesIncentivesData[i].vTokenIncentivesUserData = vUserIncentiveData; - IAaveIncentivesController sTokenIncentiveController = - IStableDebtToken(baseData.stableDebtTokenAddress).getIncentivesController(); UserIncentiveData memory sUserIncentiveData; - sUserIncentiveData.tokenincentivesUserIndex = sTokenIncentiveController.getUserAssetData( - user, - baseData.stableDebtTokenAddress - ); - sUserIncentiveData.userUnclaimedRewards = sTokenIncentiveController.getUserUnclaimedRewards( - user - ); - sUserIncentiveData.tokenAddress = baseData.stableDebtTokenAddress; - sUserIncentiveData.rewardTokenAddress = sTokenIncentiveController.REWARD_TOKEN(); + + if (baseData.stableDebtTokenAddress != address(0)) { + IAaveIncentivesController sTokenIncentiveController = + IStableDebtToken(baseData.stableDebtTokenAddress).getIncentivesController(); + + sUserIncentiveData.tokenincentivesUserIndex = sTokenIncentiveController.getUserAssetData( + user, + baseData.stableDebtTokenAddress + ); + sUserIncentiveData.userUnclaimedRewards = sTokenIncentiveController.getUserUnclaimedRewards( + user + ); + sUserIncentiveData.tokenAddress = baseData.stableDebtTokenAddress; + sUserIncentiveData.rewardTokenAddress = sTokenIncentiveController.REWARD_TOKEN(); + } else { + sUserIncentiveData.tokenincentivesUserIndex = uint256(0); + sUserIncentiveData.userUnclaimedRewards = uint256(0); + sUserIncentiveData.tokenAddress = baseData.stableDebtTokenAddress; + sUserIncentiveData.rewardTokenAddress = address(0); + } userReservesIncentivesData[i].sTokenIncentivesUserData = sUserIncentiveData; } diff --git a/contracts/misc/interfaces/IUiPoolDataProvider.sol b/contracts/misc/interfaces/IUiPoolDataProvider.sol index 162f23af..db39355a 100644 --- a/contracts/misc/interfaces/IUiPoolDataProvider.sol +++ b/contracts/misc/interfaces/IUiPoolDataProvider.sol @@ -54,11 +54,6 @@ interface IUiPoolDataProvider { uint256 stableBorrowLastUpdateTimestamp; } - struct IncentivesControllerData { - uint256 userUnclaimedRewards; - uint256 emissionEndTimestamp; - } - function getReservesList(ILendingPoolAddressesProvider provider) external view