MultiMerkleDistributor
Storage
questRewardToken
Mapping listing the reward token associated to each Quest ID
rewardTokens
Mapping of tokens this contract is or was distributing
questClosedPeriods
List of Closed QuestPeriods by Quest ID
questMerkleRootPerPeriod
Merkle Root for each period of a Quest (indexed by Quest ID)
questRewardsPerPeriod
Amount of rewards for each period of a Quest (indexed by Quest ID)
questBoard
Address of the QuestBoard contract
Events
Claimed
Event emitted when a user Claims
NewQuest
Event emitted when a New Quest is added
QuestPeriodUpdated
Event emitted when a Period of a Quest is updated (when the Merkle Root is added)
Modifiers
onlyAllowed
Check the caller is either the admin or the QuestBoard contract
Constructor
View Methods
isClaimed
Checks if the rewards were claimed for a user on a given period
Checks if the rewards were claimed for a user (based on the index) on a given period
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
period | uint256 | Amount of underlying to borrow |
index | uint256 | Index of the claim |
Return Values
Name | Type | Description |
---|---|---|
[0] | bool | bool : true if already claimed |
getClosedPeriodsByQuests
Returns all current Closed periods for the given Quest ID
Returns all current Closed periods for the given Quest ID
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256[] | uint256[] : List of closed periods |
State-changing Methods
claim
Claims the reward for a user for a given period of a Quest
Claims the reward for a user for a given period of a Quest if the correct proof was given
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
period | uint256 | Timestamp of the period |
index | uint256 | Index in the Merkle Tree |
account | address | Address of the user claiming the rewards |
amount | uint256 | Amount of rewards to claim |
merkleProof | bytes32[] | Proof to claim the rewards |
ClaimParams
multiClaim
Claims multiple rewards for a given list
Calls the claim() method for each entry in the claims array
Parameters
Name | Type | Description |
---|---|---|
account | address | Address of the user claiming the rewards |
claims | struct MultiMerkleDistributor.ClaimParams[] | List of ClaimParams struct data to claim |
claimQuest
Claims the reward for all the given periods of a Quest, and transfer all the rewards at once
Sums up all the rewards for given periods of a Quest, and executes only one transfer
Parameters
Name | Type | Description |
---|---|---|
account | address | Address of the user claiming the rewards |
questID | uint256 | ID of the Quest |
claims | struct MultiMerkleDistributor.ClaimParams[] | List of ClaimParams struct data to claim |
addQuest
Adds a new Quest to the listing
Adds a new Quest ID and the associated reward token
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
token | address | Address of the ERC20 reward token |
Return Values
Name | Type | Description |
---|---|---|
[0] | bool | bool : success |
addQuestPeriod
Adds a new period & the rewards of this period for a Quest
Adds a new period & the rewards of this period for a Quest
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
period | uint256 | Timestamp of the period |
totalRewardAmount | uint256 | Total amount of rewards to distribute for the period |
Return Values
Name | Type | Description |
---|---|---|
[0] | bool | bool : success |
fixQuestPeriod
updateQuestPeriod
Updates the period of a Quest by adding the Merkle Root
Add the Merkle Root for the eriod of the given Quest
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
period | uint256 | timestamp of the period |
totalAmount | uint256 | sum of all rewards for the Merkle Tree |
merkleRoot | bytes32 | MerkleRoot to add |
Return Values
Name | Type | Description |
---|---|---|
[0] | bool | bool: success |
recoverERC20
Recovers ERC2O tokens sent by mistake to the contract
Recovers ERC2O tokens sent by mistake to the contract
Parameters
Name | Type | Description |
---|---|---|
token | address | Address tof the EC2O token |
Return Values
Name | Type | Description |
---|---|---|
[0] | bool | bool: success |
emergencyUpdateQuestPeriod
Allows to update the MerkleRoot for a given period of a Quest if the current Root is incorrect
Updates the MerkleRoot for the period of the Quest
Parameters
Name | Type | Description |
---|---|---|
questID | uint256 | ID of the Quest |
period | uint256 | Timestamp of the period |
addedRewardAmount | uint256 | |
merkleRoot | bytes32 | New MerkleRoot to add |
Return Values
Name | Type | Description |
---|---|---|
[0] | bool | bool : success |
Last updated