---
# System prepended metadata

title: "v3 Haus Keeping \U0001F9F9 (Tuesday)"
tags: [v3]

---

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