IRewardDistributor

Git Source

Title: IRewardDistributor

Author: Merge Layers Inc.

Interface for reward distribution operations

Functions

notifySupplyIndex

Updates supply indices for all reward tokens on a market

function notifySupplyIndex(address mToken) external;

Parameters

NameTypeDescription
mTokenaddressMarket token

notifyBorrowIndex

Updates borrow indices for all reward tokens on a market

function notifyBorrowIndex(address mToken) external;

Parameters

NameTypeDescription
mTokenaddressMarket token

notifySupplier

Notifies supplier

function notifySupplier(address mToken, address supplier) external;

Parameters

NameTypeDescription
mTokenaddressMarket token
supplieraddressSupplier address

notifyBorrower

Notifies borrower

function notifyBorrower(address mToken, address borrower) external;

Parameters

NameTypeDescription
mTokenaddressMarket token
borroweraddressBorrower address

claim

Claim tokens for holders

function claim(address[] memory holders) external;

Parameters

NameTypeDescription
holdersaddress[]The accounts to claim for

operator

The operator that rewards are distributed to

function operator() external view returns (address operatorAddress);

Returns

NameTypeDescription
operatorAddressaddressOperator address

isRewardToken

Flag to check if reward token added before

function isRewardToken(address _token) external view returns (bool isRewardTokenAdded);

Parameters

NameTypeDescription
_tokenaddressThe token to check for

Returns

NameTypeDescription
isRewardTokenAddedboolTrue if token is a reward token

getRewardTokens

Added reward tokens

function getRewardTokens() external view returns (address[] memory rewardTokens);

Returns

NameTypeDescription
rewardTokensaddress[]Array of reward token addresses

getBlockTimestamp

Get block timestamp

function getBlockTimestamp() external view returns (uint32 timestamp);

Returns

NameTypeDescription
timestampuint32Current block timestamp

Events

RewardAccrued

Emitted when reward is accrued for a user

event RewardAccrued(address indexed rewardToken, address indexed user, uint256 deltaAccrued, uint256 totalAccrued);

Parameters

NameTypeDescription
rewardTokenaddressReward token address
useraddressUser address
deltaAccrueduint256Newly accrued amount
totalAccrueduint256Total accrued amount

RewardGranted

Emitted when reward is granted to a user

event RewardGranted(address indexed rewardToken, address indexed user, uint256 amount);

Parameters

NameTypeDescription
rewardTokenaddressReward token address
useraddressUser address
amountuint256Granted amount

SupplySpeedUpdated

Emitted when supply speed is updated

event SupplySpeedUpdated(address indexed rewardToken, address indexed mToken, uint256 supplySpeed);

Parameters

NameTypeDescription
rewardTokenaddressReward token address
mTokenaddressMarket token
supplySpeeduint256New supply speed

BorrowSpeedUpdated

Emitted when borrow speed is updated

event BorrowSpeedUpdated(address indexed rewardToken, address indexed mToken, uint256 borrowSpeed);

Parameters

NameTypeDescription
rewardTokenaddressReward token address
mTokenaddressMarket token
borrowSpeeduint256New borrow speed

OperatorSet

Emitted when operator is updated

event OperatorSet(address indexed oldOperator, address indexed newOperator);

Parameters

NameTypeDescription
oldOperatoraddressPrevious operator
newOperatoraddressNew operator

WhitelistedToken

Emitted when token is whitelisted

event WhitelistedToken(address indexed token);

Parameters

NameTypeDescription
tokenaddressWhitelisted token

SupplyIndexNotified

Emitted when supply index is notified

event SupplyIndexNotified(address indexed rewardToken, address indexed mToken);

Parameters

NameTypeDescription
rewardTokenaddressReward token address
mTokenaddressMarket token

BorrowIndexNotified

Emitted when borrow index is notified

event BorrowIndexNotified(address indexed rewardToken, address indexed mToken);

Parameters

NameTypeDescription
rewardTokenaddressReward token address
mTokenaddressMarket token