IRewardsManager
Functions
MORPHO
function MORPHO() external view returns (address);
REWARDS_CONTROLLER
function REWARDS_CONTROLLER() external view returns (address);
getRewardData
function getRewardData(address asset, address reward)
external
view
returns (uint256 startingIndex, uint256 index, uint256 lastUpdateTimestamp);
getUserData
function getUserData(address asset, address reward, address user)
external
view
returns (uint256 index, uint256 accrued);
getAllUserRewards
function getAllUserRewards(address[] calldata assets, address user)
external
view
returns (address[] memory rewardsList, uint256[] memory unclaimedAmounts);
getUserRewards
function getUserRewards(address[] calldata assets, address user, address reward) external view returns (uint256);
getUserAccruedRewards
function getUserAccruedRewards(address[] calldata assets, address user, address reward)
external
view
returns (uint256 totalAccrued);
getUserAssetIndex
function getUserAssetIndex(address user, address asset, address reward) external view returns (uint256);
getAssetIndex
function getAssetIndex(address asset, address reward) external view returns (uint256 assetIndex);
claimRewards
function claimRewards(address[] calldata assets, address user)
external
returns (address[] memory rewardsList, uint256[] memory claimedAmounts);
updateUserRewards
function updateUserRewards(address user, address asset, uint256 userBalance) external;
Events
Accrued
Emitted when rewards of an asset are accrued on behalf of a user.
event Accrued(
address indexed asset, address indexed reward, address indexed user, uint256 assetIndex, uint256 rewardsAccrued
);
Errors
OnlyMorpho
Thrown when only the main Morpho contract can call the function.
error OnlyMorpho();
InvalidAsset
Thrown when an invalid asset is passed to accrue rewards.
error InvalidAsset();
AddressIsZero
Thrown when the the zero address is passed as a parameter.
error AddressIsZero();
Structs
UserAssetBalance
struct UserAssetBalance {
address asset;
uint256 scaledBalance;
uint256 scaledTotalSupply;
}
UserData
struct UserData {
uint104 index;
uint128 accrued;
}
RewardData
struct RewardData {
uint104 startingIndex;
uint104 index;
uint32 lastUpdateTimestamp;
mapping(address => UserData) usersData;
}