---
tags: v3
---
# v3 Haus Keeping 🧹 (Tuesday)
**March 1, 2022**
## Other Notes
- [Bau's notes](https://hackmd.io/Q0HiDcCzQpSBqbDPUti4Rg?view)
- [adrienne's notes](https://hackmd.io/1JkDRWJBTJCmGRF5jLR07g?view)
- [Bill W's notes](https://hackmd.io/P-9UItTiQgu5-7dm0x2_fw)
Understanding and prioritizing work to be done around the Haus.
- [Baal.sol](https://github.com/Moloch-Mystics/Baal/blob/main/contracts/Baal.sol)
- [feat/baalZodiac](https://github.com/Moloch-Mystics/Baal/blob/feat/baalZodiac/contracts/Baal.sol) branch
What branch should we be aligned on?
## Potential Topics
- v3.1 Contract review
- Events, interfaces
- Run throught subgraph
- Jam on factory and summoner
## Differences
- v2 was very explicit
- v3 is more flexible and uses multi-call
- Tricky to recognize patterns with multiple actions
- v2 had very complex subgraphs with states of escrow, treasury and internal balances in multiple locations
- **Big change**: All assets (funds, NFTs, etc) are stored in a safe rather than the contract
## Today's Goal
- Overview of events interface
- Consdier how to model data for front-end
## Background
- Smart contracts stored on blockchain
- Record of state
- Functions change the state and update the blockchain
- Expensive to store all information on-chain
- The Graph is like a database
- Subgraphs used to index events
- Query the subgraphs with API calls
## `avatar`
- No internal balances or withdraw functions
- No escrow
## Rolls
- New :bulb:
- Need to explore deeper
## Security
- How do we enforce schemas? (library that checks format)
- How do we validate data? (trust)
- Can we ensure data from our libraries is secure
- Centralized server with crypto signed Lambdas
- Need for proposal auditing by admins
- Can we show something is verified in the app?
- Can we show warnings in the app?
- Issuing keys to trusted apps
- :bulb: Using Block Native API to validate at end (simulation)
- Curation
## Standard Proposal Suite
- What base proposals should be included by default?
- How do shamans change what is standard?
## Propsals
- Anyone can submit
- Does not have to be DAO member
## Sponsor Proposal
- Can be self-sponsored
- DAO sets threshold required to sponsor
- Automatically sponsored if sumbmitter > threshold
- What role does the sponsor play in verifiying and validating and what information do they need to see prior to sponsoring?
## Voting Period
- Specific to proposal
- Can be set by DAO
## Proposal Expiration
- Defined by user when submitted
- Must be > (voting + grace)
- Cannot process proposal after expiration date
## `cancelProposal`
- Prior to voting period starting
## Process Order
- Just an index `id`
- Must be processed in order like v2
## `submitVoteWithSig`
- Gasless Voting
- Similar to Compound
- Off-chain signature turned into meta transaction
## `ProcessProposal`
- Is a redundancy
## `getPriorVotes`
- Takes a snapshot at time voting starts
- Records current state of voting power
- Should UI show voting power specific to a proposal?
## Delegation
- Cannot delegate partial shares (only full voting rights)
- Delegate must have at least 1 share in the DAO
- Delegating shares requires two events
- Old delegate and new delegate
- New delegate: old voting weight, new voting weight
- New shares added automatically get delegated
- `DelegateChanged`
- `DelegateVotesChanged` when delegate changes vote
- How are delegated shares handled with ragequit? (burns shares)
## Feed
- What is core v. boost?
- How do we make the feed valuable?
- Should feed be actionable?
- How do we show large events in DAO (shamans, delegation)?
- Do we need a more general feed for DAO events?
## Notifications
- How do we handle member messaging?
- How are members notified when they get delegated?
- :bulb: Red alert button to notify everyone when needing action
- Not great Web3 solution
- Allow opt-in
- Could be boost
## Ragequit
- Ragequit is basically the same
- Can now ragequit while yes vote is active
- Tokens that are not whitelisted are ragequitablle with the `advancedRagequit` function
## Treasury
- Is a safe in 3.1
- Zodiac safes are like bank accounts
- Modules are added on top to control the safe
- Single `avatar` is ragequittable
- Does not prevent Baal from being used by another DAO like safe minion
- Can multiple DAOs control the same treasury?
- Where is the storage variable where safe is defined?
## Safe Minion
- Does `Baal.sol` support launching minons?
- How quickly can we write safe minion to still work as normal?
- How do we show safes that have been added by another DAO?
## Middleware Contract
- Not required for non-ragequitable vaults
- For seperate vaults that modify how proposals work
- Early execute
- Quadratic voting
- Other examples
## Summoning
- Summon without `avatar`
- Does `SetupComplete` pass in `avatar`?
- Explore `SetupComplete` in factory discussion
## ToDo
- [ ] Contact Tae Re: Quantstamp audit pipeline
- [ ] Fork `Baal.sol` (who and wen)
- [ ] Make required contract updates prior to audit