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