# Proposals Framev2 Dev Create a proposal from a ~~miniapp~~ app frame This feature is likely important to MetaFactory Proposal details is complicated. There are a lot of different proposal types. Maybe we focus on Signal and Funding proposals first. ## Design considerations App frames will open in a vertically oriented modal element. - 424x695px on desktop - Mobile fits the screen just as the warpcast app does A **Splash Screen** are required and will show when a user launches the app frame - takes an image and background color There is a single **Primary Button** that can be redendered programitically in the footer of the frame. **Potential/Hypothetical Flow** ![Screenshot from 2024-11-09 13-19-17](https://hackmd.io/_uploads/r1VCQrTW1x.png) ## Development considerations **Stack implications** - Likely need a server, next.js on vercel with api endpoints or actions deployed to cloudflare - Might have to us next js for ease ## Resources ### Mini Apps - [Frog Docs](https://frog.fm/concepts/mini-apps#mini-apps) - [Miniapp Transactions](https://warpcast.notion.site/Miniapp-Transactions-1216a6c0c10180b7b9f4eec58ec51e55) [📣 Miniapp transactions are live!](https://warpcast.com/horsefacts.eth/0xa91efdfb) [Use this Neynar API to send a frame message to that URL and get back the transaction data in the response](https://warpcast.com/horsefacts.eth/0x821bf38c) ### Frame v2 Spec [spec](https://github.com/farcasterxyz/protocol/discussions/205) [dev playground](https://github.com/farcasterxyz/frames/wiki/frames-v2-developer-playground-preview) [example repo](https://github.com/farcasterxyz/frames-v2-demo/tree/main?tab=readme-ov-file) [more](https://framesv2.com/) initial state is a trad frame - image and button - button opens the app (inframe browser) - [x] try demo init frame spec ![Screenshot from 2024-11-25 10-47-24](https://hackmd.io/_uploads/B1MB_4zXkx.png) manifest file needed at `/.well-known/farcaster.json` - [ ] test and understand App Association Signatures ## jan21.2025 work log - [x] request funding - [x] token select field - [x] dao token select wrapper w/ hook data - [ ] chain configurations - [x] homepage dao list/hook on connected address - [x] switch to yup **future optimization** - [ ] prefetch providers? - [ ] more form abstraction/configuration (define after some more examples) - [ ] transformers into functions we pass as a string - [ ] fields as legos - [ ] any utl clean up needed? - [ ] form starter component to clone - [ ] recipient field using ens and warpcast names - [x] token max button frame embed missing at https://proposals.daohaus.club/dao/0xaa36a7/0x33279f5046ca54365eb047f0758ceacdb85099e1 vs https://proposals.daohaus.club ## jan6.2025 work log rework from this repo https://github.com/HausDAO/menagerie - [x] bring over providers - [x] add dao/prop pages - [x] meta entry points for the new pages - align to menagie (layout/meta ect...) - [x] bring in utils - [x] bring in hooks - [x] bring in extra components - [x] clean out leaderboard cruff - [ ] tidy up utils, naming, ect... - [ ] enhance forms as below - [x] signal **1.17** - [x] signal submission - [x] rework sample for travis **form todo** **farc form** generic form parent custom form components reusable form fields for immediate use cases - react hook form or vanilla at this point? parent handles - tx - lifecycle - tx link - success page - submit button child handles - all fields/validation - passes valid back as canSubmit - passes formFields data back (transformed) - gets some lifecycle to disable fields then think through success - might need customization prefetch opportunites - see https://github.com/HausDAO/menagerie/blob/main/src/providers/AuthedPrefetchesProvider.tsx - maybe on authed user daos ### travis todo - learn all the og content in each route and customize - ## 2024 Moving sdk.ready up a level? https://github.com/gskril/ens-governor-app/compare/gskril:9e29d71...gskril:3ec3be7 Page hydration up a level https://github.com/META-DREAMER/farcastle-frames/blob/main/src/app/raid/%5Bid%5D/page.tsx - would be nice to have the dao/chain ids somewhere easy to grab - and load safe address to pass in opengraph stuff still a mess ![Screenshot from 2024-12-14 13-39-53](https://hackmd.io/_uploads/SypEpvs4yl.png) **farc v1 ship to team** - [x] frame provider lib - [x] 2 proposals w/ switching logic - [x] frame home drives to quarters dao? - [x] dao ids provider - [ ] todo: fonts - [ ] todo: loading component - [ ] reusable fields/validation - [ ] Configure dedicated RPC providers when using in production **issues** - provider not working with other providers - look at the config.connect in the connect button **notes to travis** how to style frame embeds - see opengraph-image.tsx files at each route how to style splash screen on initial load - i think we use .well-known/farcaster.json/route.ts? how to nav bak to proposal list