Rewards Distributor
The RewardsDistributor contract manages the distribution of incentive tokens to suppliers and borrowers within an isolated liquidity pool. Each pool can have multiple RewardsDistributor instances, each distributing a different reward token.
Overview
Isolated pools support multiple reward tokens through independent RewardsDistributor contracts. Each distributor is configured with per-market emission speeds for both supply-side and borrow-side rewards, enabling fine-grained incentive alignment for each market within a pool.
Rewards accrue automatically as users interact with the pool. Users can claim accumulated rewards at any time.
Key Functions
setRewardTokenSpeeds
Configures the emission rate of the reward token for specified markets. Separate speeds can be set for supply and borrow sides.
function setRewardTokenSpeeds(
IRToken[] calldata rTokens,
uint256[] calldata supplySpeeds,
uint256[] calldata borrowSpeeds
) external;
claimRewardToken
Claims all accumulated reward tokens for the caller across specified markets.
function claimRewardToken(address holder, IRToken[] calldata rTokens) external;
setLastRewardingBlock
Sets the block number after which rewards will no longer accrue for a market.
function setLastRewardingBlock(
IRToken[] calldata rTokens,
uint32[] calldata supplyLastRewardingBlocks,
uint32[] calldata borrowLastRewardingBlocks
) external;
Access Control
Emission speed configuration and administrative functions are restricted to governance via the AccessControlManager.