---
# System prepended metadata

title: CCO - Contribution Page
tags: [Product]

---

---
tags: Product
---

# CCO - Contribution Page

## UX questions
- How do we get to the page?
- communicate rounds or windows?
- states: before windows / after windows
- has contribution

## Setup
- CCO boost record needed with metadata
```javascript=
{
    minTarget: "777777",
    tributeToken: <address>,
    // do we need decimals and symbol here too?
    // or just match with one of the dao tokens in the ui probably?
    maxTarget: "1250000",
    closeTime <seconds timestamp would be nice here as it matches block timestamps, ect...>,
    maxContribution: "2000",
}

// multi-round:

{
   
    maxContribution: "2000",
    rounds: [
        {
            round: 1,
            startTime: seconds
            duration: seconds
             minTarget: "777777",
    tributeToken: <address>,
    maxTarget: "1250000",
            // can eventually reconfigure targets, but daohaus has some if/or rules
        },
        {
          round: 1,
            startTime: seconds
            duration: seconds
             minTarget: "777777",
    tributeToken: <address>,
    maxTarget: "1250000",
        }
    ]
}
```

manually update the max target and max contribution

## Contribution Page

Can toggle on/off if boost exists

## Step 1: Check eligibility
- api endpoint
- check on list + hasn't contributed max
- trigger on button click

## Step 2: Contribute
- loot grab proposal
- max is determined by boost metadata value - total aldreay contributed

More definition around contribution periods

Round options
- Max per individual
- Others later

Timestamps must be consecutive
              
## Step 3: Claim
- indicate when claim opens 
    - not sure how we calculate that?
    - close time + all props processed?
- eventually claim will rage quit max
    - and maybe give them a withdraw button after the rage quit?

## Status
- display data from cco boost metadata
- closing countdown
- status bar - similar component to vote bar?
            


## Other states:

### Already contributed state
- if connected address we can check to see if they have submitted a proposal
    - if not, then they need to check eleigibility
    - if they have
        - less than max they can still do step 2
        - indicate they have hit max and link to their proposal(s)



SAMPLE:

```json
{
    tributeToken: "0xd0a1e359811322d97991e03f863a0c30c2cf029c",
    network: 'kovan',
    ratio: 1,
    raiseStartTime: "1614536991",
    claimPeriodStartTime: "1615255391",
    claimTokenValue: 7.77,
    claimTokenSymbol: 'HAUS',
    claimTokenAddress: "",
    rounds: [
    {
        round: 1,
        minTarget: "5",
        maxTarget: "10",
        duration: "259200",
        startTime: "1614536991",
        maxContribution: "2",
        minContribution: "1",
    },
    {
        round: 2,
        minTarget: "2",
        maxTarget: "2",
        duration: "459200",
        startTime: "1615785715",
        maxContribution: "4",
        minContribution: "1",
    }
    ]
}
```

1 haus = 7 loot


##### raging

- [x] better meta with rounds
- [x] display status from metadata
- [x] get current for display and progress bar
- [x] closes/starts calc
- [x] page set up - has contributed or not
- [x] check eligbility
- [x] contribute
- [x] correct network checks
- [x] tribute input to only do whole numbers + min/max enforcement
- [ ] update kyd list
- [x] checkout side window states - before/after
- [x] post contribute
- [x] claim states
- [ ] claim/rage quit

155 dai min at 7.77 haus per dai
7770 dai min

display haus or loot before purchase?


how calc current contributions - all matching loot props i guess - need date filter?


before


// double check outsude window blocks the form
// extra bot checks on sponsor





// dao metadata
save xdai burner

spec on fields

//

short vote - 1 hour
long grace - 1 hour
period duration - 2 minutes

wrapped xdai
haus


few of us
- 1 share each


hide it

//


cco dao

tokens
0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d
0xb0c5f3100a4d9d9532a4cfd68c55f1ae8da987eb

summoners
0x83aB8e31df35AA3281d630529C6F4bf5AC7f7aBF 1
0xced608aa29bb92185d9b6340adcbfa263dae075b 1
0xd26a3f686d43f2a62ba9eae2ff77e9f516d945b9 1
0x7136fbddd4dffa2369a9283b6e90a040318011ca 1
0x68d36dcbdd7bbf206e27134f28103abe7cf972df 1
0x6dc43be93a8b5fd37dc16f24872babc6da5e5e3e 1
0x15c6ac4cf1b5e49c44332fb0a1043ccab19db80a 1



start 3/15 00:00
claim start start + 14 days


```json
{
    tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
    network: 'xdai',
    ratio: 1,
    raiseStartTime: "1615809600",
    claimPeriodStartTime: "1617062400",
    claimTokenValue: 8.88,
    claimTokenSymbol: 'HAUS',
    claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
    rounds: [
    {
        round: 1,
        minTarget: "500000",
        maxTarget: "1111110",
        duration: "345600",
        startTime: "1615809600",
        maxContribution: "5000",
        minContribution: "50",
    },
    {
        round: 2,
        minTarget: "500000",
        maxTarget: "1111110",
        duration: "259200",
        startTime: "1616155200",
        maxContribution: "100000",
        minContribution: "50",
    }
    ]
}
```

8am est monday
4 days - round 1


claiming time
8am est tues/weds the next week



test



buy back

```json
{
    tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
    network: 'xdai',
    ratio: 1,
    raiseStartTime: "1615499278",
    claimPeriodStartTime: "1615669899",
    claimTokenValue: 4,
    claimTokenSymbol: 'HAUS',
    claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
    rounds: [
    {
        round: 1,
        minTarget: "15000",
        maxTarget: "20192",
        duration: "86400",
        startTime: "1615499278",
        maxContribution: "5000",
        minContribution: "100",
    }
    ]
}
```


    tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
    network: 'xdai',
    ratio: 1,
    raiseStartTime: "1615499278",
    claimPeriodStartTime: "1615669899",
    claimTokenValue: 4,
    claimTokenSymbol: 'HAUS',
    claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
    minTarget: "15000",
    maxTarget: "20192",
    duration: "86400",
    startTime: "1615499278",
    maxContribution: "5000",
    minContribution: "100",


```json
{
    tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
    network: 'xdai',
    ratio: 1,
    raiseStartTime: "1615499278",
    claimPeriodStartTime: "1615669899",
    claimTokenValue: 4,
    claimTokenSymbol: 'HAUS',
    claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
    round: 1,
    minTarget: "15000",
    maxTarget: "20192",
    duration: "86400",
    maxContribution: "5000",
    minContribution: "100",
}
```