RewardDistributor
Inherits: IRewardDistributor, ExponentialNoError, Initializable, OwnableUpgradeable, ReentrancyGuardUpgradeable
State Variables
REWARD_INITIAL_INDEX
uint224 public constant REWARD_INITIAL_INDEX = 1e36;
operator
The operator that rewards are distributed to
address public operator;
rewardMarketState
The Reward state for each reward token for each market
mapping(address => mapping(address => IRewardDistributorData.RewardMarketState)) public rewardMarketState;
rewardAccountState
The Reward state for each reward token for each account
mapping(address => mapping(address => IRewardDistributorData.RewardAccountState)) public rewardAccountState;
rewardTokens
Added reward tokens
address[] public rewardTokens;
isRewardToken
Flag to check if reward token added before
mapping(address => bool) public isRewardToken;
Functions
onlyOperator
modifier onlyOperator();
constructor
Note: oz-upgrades-unsafe-allow: constructor
constructor();
claim
function claim(address[] memory holders) public override nonReentrant;
getBlockTimestamp
Get block timestamp
function getBlockTimestamp() public view override returns (uint32);
getRewardTokens
Added reward tokens
function getRewardTokens() public view override returns (address[] memory);
initialize
function initialize(address _owner) public initializer;
setOperator
function setOperator(address _operator) external onlyOwner;
whitelistToken
function whitelistToken(address rewardToken_) public onlyOwner;
updateRewardSpeeds
function updateRewardSpeeds(
address rewardToken_,
address[] memory mTokens,
uint256[] memory supplySpeeds,
uint256[] memory borrowSpeeds
) public onlyOwner;
grantReward
function grantReward(address token, address user, uint256 amount) public onlyOwner;
notifySupplyIndex
Notifies supply index
function notifySupplyIndex(address mToken) external override onlyOperator;
notifyBorrowIndex
Notifies borrow index
function notifyBorrowIndex(address mToken) external override onlyOperator;
notifySupplier
Notifies supplier
function notifySupplier(address mToken, address supplier) external override onlyOperator;
notifyBorrower
Notifies borrower
function notifyBorrower(address mToken, address borrower) external override onlyOperator;
_updateRewardSpeed
function _updateRewardSpeed(address rewardToken, address mToken, uint256 supplySpeed, uint256 borrowSpeed) private;
_notifySupplyIndex
function _notifySupplyIndex(address rewardToken, address mToken) private;
_notifyBorrowIndex
function _notifyBorrowIndex(address rewardToken, address mToken) private;
_notifySupplier
function _notifySupplier(address rewardToken, address mToken, address supplier) private;
_notifyBorrower
function _notifyBorrower(address rewardToken, address mToken, address borrower) private;
_claim
function _claim(address rewardToken, address[] memory holders) internal;
_grantReward
function _grantReward(address token, address user, uint256 amount) internal returns (uint256);
Errors
RewardDistributor_OnlyOperator
error RewardDistributor_OnlyOperator();
RewardDistributor_TransferFailed
error RewardDistributor_TransferFailed();
RewardDistributor_RewardNotValid
error RewardDistributor_RewardNotValid();
RewardDistributor_AddressNotValid
error RewardDistributor_AddressNotValid();
RewardDistributor_AddressAlreadyRegistered
error RewardDistributor_AddressAlreadyRegistered();
RewardDistributor_SupplySpeedArrayLengthMismatch
error RewardDistributor_SupplySpeedArrayLengthMismatch();
RewardDistributor_BorrowSpeedArrayLengthMismatch
error RewardDistributor_BorrowSpeedArrayLengthMismatch();