ERC20BaseRewardModule
ERC20 base reward module
ERC20BaseRewardModule
this abstract class implements common ERC20 funding and unlocking logic, which is inherited by other reward modules.
totalShares
(address token) → uint256
(public)
getter for total token shares
lockedShares
(address token) → uint256
(public)
getter for total locked token shares
fundings
(address token, uint256 index) → uint256 amount, uint256 shares, uint256 locked, uint256 updated, uint256 start, uint256 duration
(public)
getter for funding schedule struct
fundingCount
(address token) → uint256
(public)
Parameters
token
: contract address of reward token
Returns
- number of active funding schedules
unlockable
(address token, uint256 idx) → uint256
(public)
compute number of unlockable shares for a specific funding schedule
Parameters
-
token
: contract address of reward token -
idx
: index of the funding
Returns
- the number of unlockable shares
_fund
(address token, uint256 amount, uint256 duration, uint256 start, address feeReceiver, uint256 feeRate)
(internal)
fund pool by locking up reward tokens for future distribution
Parameters
-
token
: contract address of reward token -
amount
: number of reward tokens to lock up as funding -
duration
: period (seconds) over which funding will be unlocked -
start
: time (seconds) at which funding begins to unlock -
feeReceiver
: address to receive funding fee -
feeRate
: portion of funding amount to take as fee
_clean
(address token)
(internal)
internal function to clean up stale funding schedules
Parameters
token
: contract address of reward token to clean up
_unlockTokens
(address token) → uint256 shares
(internal)
unlocks reward tokens based on funding schedules
Parameters
token
: contract addres of reward token
Returns
- shares number of shares unlocked
_distribute
(address user, address token, uint256 shares) → uint256 amount
(internal)
distribute reward tokens to user
Parameters
-
user
: address of user receiving rweard -
token
: contract address of reward token -
shares
: number of shares to be distributed
Returns
- amount number of reward tokens distributed