# QuestDataTypes

## **PeriodState**

```
enum PeriodState {
  ZERO,
  ACTIVE,
  CLOSED,
  DISTRIBUTED
}
```

State of each Period for each Quest

All Periods are `ACTIVE` at creation since the voters from past periods are also accounted for the future period

## **QuestVoteType**

```
enum QuestVoteType {
  NORMAL,
  BLACKLIST,
  WHITELIST
}
```

Types of Vote logic for Quests

* `NORMAL`: basic vote logic
* `BLACKLIST`: remove the blacklisted voters bias from the gauge biases
* `WHITELIST`: only sum up the whitelisted voters biases

## **QuestRewardsType**

```
enum QuestRewardsType {
  FIXED,
  RANGE
}
```

Types of Rewards logic for Quests

* `FIXED`: reward per vote is fixed
* `RANGE`: reward per vote is a range between min and max, based on the Quest completion between min objective and max objective

## **QuestCloseType**

```
enum QuestCloseType {
  NORMAL,
  ROLLOVER,
  DISTRIBUTE
}
```

Types of logic for undistributed rewards when closing Quest periods

* `NORMAL`: undistributed rewards are available to be withdrawn by the creator
* `ROLLOVER`: undistributed rewards are added to the next period, increasing the reward/vote parameter
* `DISTRIBUTE`: undistributed rewards are sent to the gauge for direct distribution
