--- 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", } ```