--- tags: Product --- # Uberhaus Build ### Delegate form Delegate field address: - MEMBER ONLY - can't be current delegate - check minion entity for this child dao graph data - must be a child dao member - child dao member data - must not be an uberhaus member or current delegate of an uberhaus member - uberhaus graph data / members + delegatekey unerhausminion function ``` function nominateDelegate( address targetDao, //default would be UberHaus address nominee, uint256 retireTime, string calldata details ) ``` ### Rage quit form - MEMBER ONLY - uberhauminion needs shares or loot in uberhaus dao - get shares/loot of uberhaus minion has in uberhaus - uberhaus data uberhausminion function ``` function proposeAction( address targetDao, // defaults to childDAO address actionTo, address token, uint256 actionValue, bytes calldata actionData, string calldata details ) ``` actionData is a hash of rage quit function w/ need validation on the proposal detail execute button - canRageQuit: if the uberhausminion has a yes vote on an open proposal in uberhaus ### Withdraws - uberhausminion has a token balance in the uberhaus dao - hard coded to haus token - withdraw amount from uberhaus member data - tokenbalances - MEMBER ONLY uberhausminion function ``` function doWithdraw(address targetDao, address token, uint256 amount) ``` ### Pull Guild Funds - pull from uberhaus minion to child dao - MUST be the delegate (uberhausminion's delegate in uberhaus) - step 2 of above - contract call to see what haus balance is for the uberhausminion uberhausminion function ``` function pullGuildFunds(address token, uint256 amount) ``` --- ### Allies page states ~~- figure out how to get uberhaus dao data~~ ### daoToDaoManager.js card states ##### [x] not signed in/user not member - do we need to show this page or data? ##### [x] wrong network - [x] link to burner if they have it - [x] detail on how to launch if they don't w/ link to new clone burner form ##### [x] not uberhaus member/no minion - [x] minion launch form ##### [x] not uberhaus member/has minion/no staking proposal/minion needs funds - make staking proposal - button to open proposal form ##### [x] not uberhaus member/has minion/no staking proposal/minion has funds - make staking proposal - button to open proposal form ##### [x] not uberhaus member/has minion/staking proposal w/ child dao - staking proposal/membership in progress - show proposal status ##### [x] not uberhaus member/has minion/staking proposal w/ uberhaus - staking proposal/membership in progress - show proposal status ##### [x] in uberhaus/has initial delegate needs to be set setInitialDelegate - public function - when is this the case and how can we tell? - can check to see if the minion is the delegate + call initialDelegate to see if it matches - maybe need to check the delegate key for the ubh member entity ##### [x] in uberhaus/delegate good - base state / active / has shares/loot - maybe a little different if they are not active? - show open proposal counts - uberhaus minion actions in child dao - link to proposals page (can we prefilter?) - ubh dao proposals related to the child dao - link to uhb dao proposals page (can we prefilter?) - show shares/loot - indicate token balance for withdraw? - indicate minion balance for pull funds? - then build the manage pop up based on those states? - staking all the time - delegate all the time - rage quit if shares/loot - withdraw/pull funds if possible ### NEXT STEPS - [x] Create delegate rewards checkbox and separate to get their rewards. - [x] execute transaction poll doesn't seem to work - [] focus on uberhaus - maybe we can display data about the child daos in plce of they're minions - like in a member list, proposal details, ect... - link to child dao in proposals - [x] newUberHausMinion delegate field - needs validation so a current delegate is chosen - guess we don't let them summon if there are no options? - [x] allies page flashes a bunch. need a loader - [] qa allies links - [] test more on wrong network/not member - [x] Fix JSON parse error for uberHAUS minion - [x] Have proposalMinionDetails recognize when uberHAUS rage quit has been executed. - Just need to know if there was a reason it was set to check for default uberminion instead of rq minion. <!-- - See why uberType: "ragequit" isn't being indexed on the graph. --> - [] Create detailed explanation text/tooltip for deletgate eligabitiy - [x] Figure out why token unlock causes MM meltdown. Isolate TX on separate app. Create steps to reproduce. - [] Write a detailed flow or tutorial, step by step, on how to sign up. Give that tutorial to someone who's never used this new feature and get them to try. - [x] Check to see that all relevant data shows up in uberHAUS TXs - [] Fix proposal filter so that it can filter all the new minion proposal types. It is currently broken. - needs executed - in needs action - add a filter for uberhaus proposals - [] Create error handling/toast to handle empty or undefined data onSubmit. - [] change Allies card from percentage based width to min-width, max-width to prevent the component's content from getting squished when the viewport width is smaller. - - [] UberHaus minion doesn't display internal balance. - - [x] Validate delegate is not impeached, delegate is serving, delegate is not already rewarded (disable checkbox) - Double check that using a delegate to vote doesn't cause the poll to time out. - Could be related to the earlier graph error. - [] allies uberhaus data gets stale quickly -- make an AlliesContext and a refreshAllies Fn. - [] Refactor D2Dproposal modal to reference proposal type without saving component in state. Check to see if props are still stale after. - [] For RQ from uberHAUS, create validation to make sure the user can't call execute minion if the minion currently has one yes vote on a proposal. - Should also have some sort of text explanation to help users understand why they're not being allowed to execute the minion - Would a simple text warning be a faster way of doing this altogether? - Or should we call a fetch for proposals on UBERhaus only when the user hits execute on a RQ proposal? I just want to avoid a situation where we're calling for uberHAUS proposals when it's not necessary. - [] Create type checks in all inputs that require numbers