---
tags: v3, blacksmiths, show and tell
---
# v3 Blacksmiths Show & Tell (5/13/22)
## Ceramic Issue
- ES Module bundling issue with compatability with a Ceramic dependency
- Instead of using Self ID packages had to use lower level dependencies
- They'll likely push up another release next week that we can revert back
- As people start to use our packages they'll likely encounter similar issues, so we'll have to keep this in mind
## Haus Data/SDK
- Question: In some spots classes are holding the state -- what is the benefit of having the state in the class as opposed to having utilities that spit out a result that we could hold in Context?
- Not holding the state; this functions as a utility
- `this.profile` and `this.query`
- Class `Haus` bundle of functionality but without the state duplication?
- Done as a way to namespace some of the functions (`Haus.profile` holds functions)
- Framework independent, so keeping only in Context would make this more React-centric than intended
- Not needed to maintain global instantiation of Haus
- Pass from wallet context -> Haus
## DAOhaus Connect
- Handling `global`
- `any` Type
- setting `provider` as `any` like how it is done in Quiver
- `providers.Web3Provider` doesn't cover all of what's on the `window.ethereum`
- `any` is used to cover these items
### Dependencies and Quiver
- `SafeAppWeb3Modal` wraps `Web3Modal`, bringing this in as a dependency
- Inside Quiver, they're bringing in `ICoreOptions` since it didn't come in from `SafeAppWeb3Modal`
- Should we build the type ourself?
- Why are we calling `window.ethereum` in our app?
- Quiver uses this pattern -- what is being done when this is called?
- Only used to check if MetaMask is unlocked, and it's unlocked it'll automatically fetch the wallet information
- What about using Quiver's context?
- Would we want to make a PR to improve Quiver as we need?
- Quiver's default network functionality doesn't fit within our intended UX
- Do we want to *not* use Quiver in our DAOhaus Connect package?
## Vite Global and Process
- For wallet connect use ethereum wallet connect provider instead
- Bundles better with vite
- Experiencing issues with `process.env` in our own dependencies as well
- Still need to figure this out
-