mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			129 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| // SPDX-License-Identifier: agpl-3.0
 | |
| pragma solidity 0.6.12;
 | |
| pragma experimental ABIEncoderV2;
 | |
| 
 | |
| interface IAaveIncentivesController {
 | |
|   event RewardsAccrued(address indexed user, uint256 amount);
 | |
| 
 | |
|   event RewardsClaimed(address indexed user, address indexed to, uint256 amount);
 | |
| 
 | |
|   event RewardsClaimed(
 | |
|     address indexed user,
 | |
|     address indexed to,
 | |
|     address indexed claimer,
 | |
|     uint256 amount
 | |
|   );
 | |
| 
 | |
|   event ClaimerSet(address indexed user, address indexed claimer);
 | |
| 
 | |
|   /*
 | |
|    * @dev Returns the configuration of the distribution for a certain asset
 | |
|    * @param asset The address of the reference asset of the distribution
 | |
|    * @return The asset index, the emission per second and the last updated timestamp
 | |
|    **/
 | |
|   function getAssetData(address asset)
 | |
|     external
 | |
|     view
 | |
|     returns (
 | |
|       uint256,
 | |
|       uint256,
 | |
|       uint256
 | |
|     );
 | |
| 
 | |
|   /**
 | |
|    * @dev Whitelists an address to claim the rewards on behalf of another address
 | |
|    * @param user The address of the user
 | |
|    * @param claimer The address of the claimer
 | |
|    */
 | |
|   function setClaimer(address user, address claimer) external;
 | |
| 
 | |
|   /**
 | |
|    * @dev Returns the whitelisted claimer for a certain address (0x0 if not set)
 | |
|    * @param user The address of the user
 | |
|    * @return The claimer address
 | |
|    */
 | |
|   function getClaimer(address user) external view returns (address);
 | |
| 
 | |
|   /**
 | |
|    * @dev Configure assets for a certain rewards emission
 | |
|    * @param assets The assets to incentivize
 | |
|    * @param emissionsPerSecond The emission for each asset
 | |
|    */
 | |
|   function configureAssets(address[] calldata assets, uint256[] calldata emissionsPerSecond)
 | |
|     external;
 | |
| 
 | |
|   /**
 | |
|    * @dev Called by the corresponding asset on any update that affects the rewards distribution
 | |
|    * @param asset The address of the user
 | |
|    * @param userBalance The balance of the user of the asset in the lending pool
 | |
|    * @param totalSupply The total supply of the asset in the lending pool
 | |
|    **/
 | |
|   function handleAction(
 | |
|     address asset,
 | |
|     uint256 userBalance,
 | |
|     uint256 totalSupply
 | |
|   ) external;
 | |
| 
 | |
|   /**
 | |
|    * @dev Returns the total of rewards of an user, already accrued + not yet accrued
 | |
|    * @param user The address of the user
 | |
|    * @return The rewards
 | |
|    **/
 | |
|   function getRewardsBalance(address[] calldata assets, address user)
 | |
|     external
 | |
|     view
 | |
|     returns (uint256);
 | |
| 
 | |
|   /**
 | |
|    * @dev Claims reward for an user, on all the assets of the lending pool, accumulating the pending rewards
 | |
|    * @param amount Amount of rewards to claim
 | |
|    * @param to Address that will be receiving the rewards
 | |
|    * @return Rewards claimed
 | |
|    **/
 | |
|   function claimRewards(
 | |
|     address[] calldata assets,
 | |
|     uint256 amount,
 | |
|     address to
 | |
|   ) external returns (uint256);
 | |
| 
 | |
|   /**
 | |
|    * @dev Claims reward for an user on behalf, on all the assets of the lending pool, accumulating the pending rewards. The caller must
 | |
|    * be whitelisted via "allowClaimOnBehalf" function by the RewardsAdmin role manager
 | |
|    * @param amount Amount of rewards to claim
 | |
|    * @param user Address to check and claim rewards
 | |
|    * @param to Address that will be receiving the rewards
 | |
|    * @return Rewards claimed
 | |
|    **/
 | |
|   function claimRewardsOnBehalf(
 | |
|     address[] calldata assets,
 | |
|     uint256 amount,
 | |
|     address user,
 | |
|     address to
 | |
|   ) external returns (uint256);
 | |
| 
 | |
|   /**
 | |
|    * @dev returns the unclaimed rewards of the user
 | |
|    * @param user the address of the user
 | |
|    * @return the unclaimed user rewards
 | |
|    */
 | |
|   function getUserUnclaimedRewards(address user) external view returns (uint256);
 | |
| 
 | |
|   /**
 | |
|    * @dev returns the unclaimed rewards of the user
 | |
|    * @param user the address of the user
 | |
|    * @param asset The asset to incentivize
 | |
|    * @return the user index for the asset
 | |
|    */
 | |
|   function getUserAssetData(address user, address asset) external view returns (uint256);
 | |
| 
 | |
|   /**
 | |
|    * @dev for backward compatibility with previous implementation of the Incentives controller
 | |
|    */
 | |
|   function REWARD_TOKEN() external view returns (address);
 | |
| 
 | |
|   /**
 | |
|    * @dev for backward compatibility with previous implementation of the Incentives controller
 | |
|    */
 | |
|   function PRECISION() external view returns (uint8);
 | |
| }
 | 
