---
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