ERC20FixedRewardModule
ERC20 fixed reward module
ERC20FixedRewardModule
this reward module distributes a fixed amount of a single ERC20 token.
the fixed reward module provides a guarantee that some amount of tokens will be earned over a specified time period. This can be used to create incentive mechanisms such as bond sales, fixed duration payroll, and more.
constructor
(address token_, uint256 period_, uint256 rate_, address config_, address factory_)
(public)
Parameters
-
token_
: the token that will be rewarded -
period_
: time period (seconds) -
rate_
: constant reward rate (shares / share second) -
config_
: address for configuration contract -
factory_
: address of module factory
tokens
() → address[] tokens_
(external)
Returns
- array of reward tokens
balances
() → uint256[] balances_
(external)
Returns
- array of reward token balances
usage
() → uint256
(external)
Returns
- GYSR usage ratio for reward module
factory
() → address
(external)
Returns
- address of module factory
stake
(bytes32 account, address, uint256 shares, bytes) → uint256, uint256
(external)
perform any necessary accounting for new stake
additional stake will bookmark earnings and rollover remainder to new unvested position
Parameters
-
account
: bytes32 id of staking account -
sender
: address of sender -
shares
: number of new shares minted -
data
: addtional data
Returns
-
amount of gysr spent
-
amount of gysr vested
unstake
(bytes32 account, address, address receiver, uint256 shares, bytes) → uint256, uint256
(external)
reward user and perform any necessary accounting for unstake
Parameters
-
account
: bytes32 id of staking account -
sender
: address of sender -
receiver
: address of reward receiver -
shares
: number of shares burned -
data
: additional data
Returns
-
amount of gysr spent
-
amount of gysr vested
claim
(bytes32 account, address, address receiver, uint256, bytes) → uint256, uint256
(external)
reward user and perform and necessary accounting for existing stake
Parameters
-
account
: bytes32 id of staking account -
sender
: address of sender -
receiver
: address of reward receiver -
shares
: number of shares being claimed against -
data
: additional data
Returns
-
amount of gysr spent
-
amount of gysr vested
update
(bytes32, address, bytes)
(external)
method called by anyone to update accounting
will only be called ad hoc and should not contain essential logic
Parameters
-
account
: bytes32 id of staking account for update -
sender
: address of sender -
data
: additional data
clean
(bytes)
(external)
method called by owner to clean up and perform additional accounting
will only be called ad hoc and should not contain any essential logic
Parameters
data
: additional data
fund
(uint256 amount)
(external)
fund module by depositing reward tokens
this is a public method callable by any account or contract
Parameters
amount
: number of reward tokens to deposit
withdraw
(uint256 amount)
(external)
withdraw uncommitted reward tokens from module
Parameters
amount
: number of reward tokens to withdraw