QuestBoard

GAUGE_CONTROLLER

address GAUGE_CONTROLLER

Address of the Curve Gauge Controller

nextID

uint256 nextID

ID for the next Quest to be created

quests

mapping(uint256 => struct IQuestBoard.Quest) quests

List of Quest (indexed by ID)

periodStateByQuest

mapping(uint256 => mapping(uint256 => enum QuestDataTypes.PeriodState)) periodStateByQuest

Mapping of all state for each period of each Quest

periodAmountDistributedByQuest

mapping(uint256 => mapping(uint256 => uint256)) periodAmountDistributedByQuest

Mapping of distributed reward amounts for each period of each Quest

originalRewardPerPeriod

mapping(uint256 => uint256) originalRewardPerPeriod

Original Reward per period for Rollover Quests

questDistributors

mapping(uint256 => address) questDistributors

Mapping of Distributors used by each Quest to send rewards

questWithdrawableAmount

mapping(uint256 => uint256) questWithdrawableAmount

Amount not distributed, for Quest creators to redeem

platformFeeRatio

uint256 platformFeeRatio

Platform fees ratio (in BPS)

customPlatformFeeRatio

mapping(address => uint256) customPlatformFeeRatio

Mapping of specific fee ratio for some Quest creators

objectiveMinimalThreshold

uint256 objectiveMinimalThreshold

Minimum Objective required

questChest

address questChest

Address of the Chest to receive platform fees

distributor

address distributor

Address of the reward Distributor contract

whitelistedTokens

mapping(address => bool) whitelistedTokens

Whitelisted tokens that can be used as reward tokens

minRewardPerVotePerToken

mapping(address => uint256) minRewardPerVotePerToken

Min rewardPerVote per token (to avoid spam creation of useless Quest)

isKilled

bool isKilled

Boolean, true if the cotnract was killed, stopping main user functions

killTs

uint256 killTs

Timestamp when the contract was killed

Parameters

Name
Type
Description

_distributor

address

Address of the Distributor

getCurrentPeriod

function getCurrentPeriod() public view returns (uint256)

Returns the current Period for the contract

getQuestIdsForPeriodForGauge

function getQuestIdsForPeriodForGauge(address gauge, uint256 period) external view returns (uint256[])

Returns the list of all Quest IDs active on a given period

Parameters

Name
Type
Description

gauge

address

period

uint256

Timestamp of the period

Return Values

Name
Type
Description

[0]

uint256[]

uint256[] : Quest IDs for the period

getQuestIdsForPeriod

function getQuestIdsForPeriod(uint256 period) external view returns (uint256[])

Returns the list of all Quest IDs active on a given period

Parameters

Name
Type
Description

period

uint256

Timestamp of the period

Return Values

Name
Type
Description

[0]

uint256[]

uint256[] : Quest IDs for the period

getAllPeriodsForQuestId

function getAllPeriodsForQuestId(uint256 questID) external view returns (uint48[])

Returns all periods for a Quest

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

Return Values

Name
Type
Description

[0]

uint48[]

uint256[] : List of period timestamps

_getRemainingDuration

function _getRemainingDuration(uint256 questID) internal view returns (uint256)

Returns the number of periods to come for a given Quest

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

Return Values

Name
Type
Description

[0]

uint256

uint : remaining duration (non active periods)

getQuestCreator

function getQuestCreator(uint256 questID) external view returns (address)

Returns the address of the Quest creator

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

Return Values

Name
Type
Description

[0]

address

address : creator of the Quest

getQuestVoterList

function getQuestVoterList(uint256 questID) external view returns (address[])

Returns the voter list for a given Quest

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

Return Values

Name
Type
Description

[0]

address[]

address[] : vote list

getCurrentReducedBias

function getCurrentReducedBias(uint256 questID) external view returns (uint256)

Returns the current reduced bias for a given gauge (based on a Quest's voter list)

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

Return Values

Name
Type
Description

[0]

uint256

uint256 : current reduced bias

getReducedBias

function getReducedBias(uint256 period, uint256 questID) public view returns (uint256)

Returns the reduced bias for a given gauge for a given period (based on a Quest's voter list)

Parameters

Name
Type
Description

period

uint256

timestamp of the period

questID

uint256

ID of the Quest

Return Values

Name
Type
Description

[0]

uint256

uint256 : current reduced bias

createFixedQuest

function createFixedQuest(address gauge, address rewardToken, bool startNextPeriod, uint48 duration, uint256 rewardPerVote, uint256 totalRewardAmount, uint256 feeAmount, enum QuestDataTypes.QuestVoteType voteType, enum QuestDataTypes.QuestCloseType closeType, address[] voterList) external returns (uint256)

Creates a fixed rewards Quest based on the given parameters

Parameters

Name
Type
Description

gauge

address

Address of the gauge

rewardToken

address

Address of the reward token

startNextPeriod

bool

(bool) true to start the Quest the next period

duration

uint48

Duration of the Quest (in weeks)

rewardPerVote

uint256

Amount of reward/vote (in wei)

totalRewardAmount

uint256

Total amount of rewards available for the full Quest duration

feeAmount

uint256

Amount of fees paid at creation

voteType

enum QuestDataTypes.QuestVoteType

Vote type for the Quest

closeType

enum QuestDataTypes.QuestCloseType

Close type for the Quest

voterList

address[]

List of voters for the Quest (to be used for Blacklist or Whitelist)

Return Values

Name
Type
Description

[0]

uint256

uint256 : ID of the newly created Quest

createRangedQuest

function createRangedQuest(address gauge, address rewardToken, bool startNextPeriod, uint48 duration, uint256 minRewardPerVote, uint256 maxRewardPerVote, uint256 totalRewardAmount, uint256 feeAmount, enum QuestDataTypes.QuestVoteType voteType, enum QuestDataTypes.QuestCloseType closeType, address[] voterList) external returns (uint256)

Creates a ranged rewards Quest based on the given parameters

Parameters

Name
Type
Description

gauge

address

Address of the gauge

rewardToken

address

Address of the reward token

startNextPeriod

bool

(bool) true to start the Quest the next period

duration

uint48

Duration of the Quest (in weeks)

minRewardPerVote

uint256

Minimum amount of reward/vote (in wei)

maxRewardPerVote

uint256

Maximum amount of reward/vote (in wei)

totalRewardAmount

uint256

Total amount of rewards available for the full Quest duration

feeAmount

uint256

Amount of fees paid at creation

voteType

enum QuestDataTypes.QuestVoteType

Vote type for the Quest

closeType

enum QuestDataTypes.QuestCloseType

Close type for the Quest

voterList

address[]

List of voters for the Quest (to be used for Blacklist or Whitelist)

Return Values

Name
Type
Description

[0]

uint256

uint256 : ID of the newly created Quest

extendQuestDuration

function extendQuestDuration(uint256 questID, uint48 addedDuration, uint256 addedRewardAmount, uint256 feeAmount) external

Increases the duration of a Quest

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

addedDuration

uint48

Number of period to add

addedRewardAmount

uint256

Amount of reward to add for the new periods (in wei)

feeAmount

uint256

Platform fees amount (in wei)

updateQuestParameters

function updateQuestParameters(uint256 questID, uint256 newMinRewardPerVote, uint256 newMaxRewardPerVote, uint256 addedPeriodRewardAmount, uint256 addedTotalRewardAmount, uint256 feeAmount) external

Updates the parametes of the Quest

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

newMinRewardPerVote

uint256

New min reward/vote value (in wei)

newMaxRewardPerVote

uint256

New max reward/vote value (in wei)

addedPeriodRewardAmount

uint256

Amount of reward to add for each period (in wei)

addedTotalRewardAmount

uint256

Amount of reward to add for all periods (in wei)

feeAmount

uint256

Platform fees amount (in wei)

addToVoterList

function addToVoterList(uint256 questID, address[] accounts) external

Adds a given list of addresses to a Quest's voter list

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

accounts

address[]

list of voters

removeFromVoterList

function removeFromVoterList(uint256 questID, address account) external

Removes a given address from a Quest's voter list

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

account

address

address of the voter

withdrawUnusedRewards

function withdrawUnusedRewards(uint256 questID, address recipient) external

Withdraw all undistributed rewards from Closed Quest Periods

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

recipient

address

Address to send the reward tokens to

multipleWithdrawUnusedRewards

function multipleWithdrawUnusedRewards(uint256[] questIDs, address recipient) external

emergencyWithdraw

function emergencyWithdraw(uint256 questID, address recipient) external

Emergency withdraws all undistributed rewards from Closed Quest Periods & all rewards for Active Periods

Parameters

Name
Type
Description

questID

uint256

ID of the Quest

recipient

address

Address to send the reward tokens to

closeQuestPeriod

function closeQuestPeriod(uint256 period) external returns (uint256 closed, uint256 skipped)

Closes the Period, and all QuestPeriods for this period

Parameters

Name
Type
Description

period

uint256

Timestamp of the period

closePartOfQuestPeriod

function closePartOfQuestPeriod(uint256 period, uint256[] questIDs) external returns (uint256 closed, uint256 skipped)

Closes the given QuestPeriods for the Period

Parameters

Name
Type
Description

period

uint256

Timestamp of the period

questIDs

uint256[]

List of the Quest IDs to close

addMultipleMerkleRoot

function addMultipleMerkleRoot(uint256[] questIDs, uint256 period, uint256[] totalAmounts, bytes32[] merkleRoots) external

Sets a list of QuestPeriods as disitrbuted, and adds the MerkleRoot to the Distributor contract for each

Parameters

Name
Type
Description

questIDs

uint256[]

List of Quest IDs

period

uint256

Timestamp of the period

totalAmounts

uint256[]

List of sums of all rewards for the Merkle Tree

merkleRoots

bytes32[]

List of MerkleRoots to add

Last updated