---
# System prepended metadata

title: v3 Blacksmiths Show and Tell (3/18/2022)
tags: [' show and tell', ' blacksmiths', v3]

---

---
tags: v3, blacksmiths, show and tell
---

# v3 Blacksmiths Show and Tell (3/18/2022)

Our first v3 Blacksmiths Show and Tell on 3/18/2022.

## Subgraph (Sam)

- Was initially doing things to support Rages, but it's been easier to get through things for a v1.
- Through most of the events, and as dekan works on the CLI and tests functions flow to the subgraph
- Working toward getting contract toward an audit lock
- `Dao` entity -- has everything related to the DAO
- Will have metadata related to the DAO and can query and get with the DAO
    - Right now just the name that's used in summoning
    - As we define metadata we'll add to this
- `Proposal` entity
    - Includes all steps for proposals
    - Includes calculations around voting period to help front end
- `RageQuit` entity:
    - Includes info related to RQ
- `Shaman` entity:
    - If DAO has a Shaman, this'll also include permission level
- `EntityTransaction` entity:
    - How we do polling
- This subgraph allows us to test entire DAO lifecycle in development
- What can we do for processing details? If we set up a standard schema we can tell if something comes from our UI or formatted similar to our UI?
- Sugbraph support for Escrow: May need to add additional events related to the `TributeEscrow` contract
    - How would we know a proposal comes from here?
- `Proposal` will have subfield of `Escrow` with data about the escrow
- Add transaction hash for each proposal action
- **Questions:**
    - How would we update Poster data? If it has a different schema how would this work?
    - If metadata is collection of posts, could get most recent posts
    - Do we want to handle this from subgraph?
    - Do we have a single `metadata` entity related to the DAO?
    - Query DAO -> get metadata ordered by createdAt ascending 

## Component Library Spec and Rage Updates (Jord and Andy)

- **Component Spec:**
    - Reviewed the spec Jord created
    - Minimal JSX:
        - Use global configs in Stitches, and leverage defaults in components so that we minimize amount of props
    - Low Custom Styling:
        - Don't intend to support completely custom styling
        - We won't be a custom library, value is around creating DAOhaus specific UI informed by DH logic and functionality
        - Support for color theming, but get the scope and restrict it so that we know the bounds
    - Functional and Declarative:
        - Links to our React styleguide
        - Stateless and declarative -- goal is to keep code readable
        - Focus on using building blocks that are composable
    - Minimally Invasive:
        - Be mindful of package size and focus on modularity and composability
        - Bundle macro components separately with named exports
        - Rage and experiment on exporting with named exports to grab specific things for importing
    - Macros:
        - Do we wrap the SDK and do the fetching or do we pass the data in after a fetch?
        - Having a single pattern may be stronger, but it'll require some hacking here to determine this
        - Consider all the states of the macro components in a design review and speccing process
        - Can include in the handoff processes and also leverage Storybook
- **Rage Updates for Component Library:**
    - Moved the components into a separate package
    - Took basic Summoner App and has been adding in components from the Figma
    - Still in early stages
    - Duplicating the Summoner form
    - Questions about the Figma and level of detail:
        - Unsure what we can get from the Figma designs
        - Runthrough on Figma CSS 

## Baal CLI (Dekan)

- Currently in the Baal hardhat repo
- Secondary interface (CLI vs. UI)
- `statusprop`, `memberprop` -- can run in the command line such as `npx hardhat memberprop --help` to see available options
- How do we use this?
    - Pull down Baal repo -> install
    - Setup an account via running `generate` -> fund the generated address -> populate envs
- `npx hardhat vote prop --dao {address} -id {id} --approve true --network rinkeby`
    - Can then vote on the prop
    - Output logs the object
    - Great for testing and as an emergency if we're having UI issues
- Can help with scaffolding and creating specs for popular propoals, and can help with testing

## CI and Ops (Keating)

- Pushed to Monday

## Local Dev Environment (Keating)

- Pushed to Monday

## Rage Reports

- 

## Project Management Processes Overview

- 

## Next Steps

- [ ] jp to help document subgraph (if useful)
- [ ] jp to help document `nx` processes and env
- [ ] jp to add Component Library Spec to Wiki
- [ ] Align on `details` schema for subgraph
- [ ] Deeper dive into the proposal details in subgraph
- [x] Subgraph support for `TributeEscrow` contract
- [ ] Figma runthrough: design and devs
- [ ] Rage on Storybook and Ladle to see which we like better