CommunityRewards
CommunityRewards
Deployment on Ethereum mainnet:
https://etherscan.io/address/0x0Cd73c18C085dEB287257ED2307eC713e9Af3460
GoldfinchConfigUpdated
event GoldfinchConfigUpdated(address who, address configAddress)
OWNER_ROLE
bytes32 OWNER_ROLE
DISTRIBUTOR_ROLE
bytes32 DISTRIBUTOR_ROLE
config
contract GoldfinchConfig config
rewardsAvailable
uint256 rewardsAvailable
Total rewards available for granting, denominated in rewardsToken()
tokenLaunchTimeInSeconds
uint256 tokenLaunchTimeInSeconds
Token launch time in seconds. This is used in vesting.
grants
mapping(uint256 => struct CommunityRewardsVesting.Rewards) grants
NFT tokenId => rewards grant
initialize
function __initialize__(address owner, contract GoldfinchConfig _config, uint256 _tokenLaunchTimeInSeconds) external
rewardsToken
function rewardsToken() public view returns (contract IERC20withDec)
The token being disbursed as rewards
claimableRewards
function claimableRewards(uint256 tokenId) public view returns (uint256 rewards)
Returns the rewards claimable by a given grant token, taking into account vesting schedule.
Return Values
Name | Type | Description |
---|---|---|
rewards | uint256 | Amount of rewards denominated in rewardsToken() |
totalVestedAt
function totalVestedAt(uint256 start, uint256 end, uint256 granted, uint256 cliffLength, uint256 vestingInterval, uint256 revokedAt, uint256 time) external pure returns (uint256 rewards)
Returns the rewards that will have vested for some grant with the given params.
Return Values
Name | Type | Description |
---|---|---|
rewards | uint256 | Amount of rewards denominated in rewardsToken() |
loadRewards
function loadRewards(uint256 rewards) external
Transfer rewards from msg.sender, to be used for reward distribution
revokeGrant
function revokeGrant(uint256 tokenId) external
Revokes rewards that have not yet vested, for a grant. The unvested rewards are now considered available for allocation in another grant.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | The tokenId corresponding to the grant whose unvested rewards to revoke. |
setTokenLaunchTimeInSeconds
function setTokenLaunchTimeInSeconds(uint256 _tokenLaunchTimeInSeconds) external
grant
function grant(address recipient, uint256 amount, uint256 vestingLength, uint256 cliffLength, uint256 vestingInterval) external returns (uint256 tokenId)
Grant rewards to a recipient. The recipient address receives an
an NFT representing their rewards grant. They can present the NFT to getReward()
to claim their rewards. Rewards vest over a schedule. If the given vestingInterval
is 0, then vestingInterval
will be equal to vestingLength
.
Parameters
Name | Type | Description |
---|---|---|
recipient | address | The recipient of the grant. |
amount | uint256 | The amount of rewardsToken() to grant. |
vestingLength | uint256 | The duration (in seconds) over which the grant vests. |
cliffLength | uint256 | The duration (in seconds) from the start of the grant, before which has elapsed the vested amount remains 0. |
vestingInterval | uint256 | The interval (in seconds) at which vesting occurs. |
_grant
function _grant(address recipient, uint256 amount, uint256 vestingLength, uint256 cliffLength, uint256 vestingInterval) internal returns (uint256 tokenId)
getReward
function getReward(uint256 tokenId) external
Claim rewards for a given grant
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | A grant token ID |
totalUnclaimed
function totalUnclaimed(address owner) external view returns (uint256)
unclaimed
function unclaimed(uint256 tokenId) external view returns (uint256)
_unclaimed
function _unclaimed(uint256 tokenId) internal view returns (uint256)
isAdmin
function isAdmin() public view returns (bool)
onlyAdmin
modifier onlyAdmin()
isDistributor
function isDistributor() public view returns (bool)
onlyDistributor
modifier onlyDistributor()