-
Big thanks to uniswap wallet. I spent more than a few hours in their
package.json
figuring out which integrations to use and saving a lot of lead time on implementation details -
Big thanks to GPT-4 for helping us save a lot of time (4x more productive)
-
Contributors: Ben Kim, Ian, Fred Zaw
- install expo go on mobile app, install expo cli
npm install
- install those dependenciesnpx expo start
- get the dev server running- scan QR code on dev server with camera app/expo go
Framework Set Up
React Native + Ethers Context Specific
Private Key Storage
Mobile App Navigation
- https://reactnavigation.org/docs/hello-react-navigation
- https://reactnavigation.org/docs/tab-based-navigation/
State Management
QR Code Scanner
User Authentication SMS + Database
-
twilio sms provider - ben has creds
-
supabase auth sms - ben has creds
-
supabase database - ben has creds
-
Design System
Phase 1
- User Onboarding
- Mobile App Set Up
- navigation + routing (done)
- state management (done)
- authentication (done)
- protected routes (done)
- autoroute user to sign in/sign up flow if local wallet record not found
- Wallet Management
- New Wallet creation (in progress)
- wallet generation (done)
- get user to write down seed phrase and delete seed phrase from local store (TODO)
- Ben: we should defer this for a potential iCloud backup instead
- Wallet Generation from Seed Phrase (done)
- Delete local wallet store (done)
- store keys on local device via mobile encrypted storage (keychain) (done)
- New Wallet creation (in progress)
- Supabase (Auth + Database)
- username
- public key (wallet address)
- phone number (done)
- Mobile App Set Up
Phase 2
- Wallet Interactions
- send USDC + pay MATIC to 0x address (done)
- name alias look up -> 0x address for payment
Phase 3
- Payment UX: make it easy to send USDC
- QR Code generation (done)
- NFC payment enabled
Testing for iOS is such a pain... my goodness
- find your device UDID # (https://udid.tech/) (your mobile phone only please)
- send it to me, I'll register you (I only have 100 slots, non transferrable...) (Ill add you here: https://developer.apple.com/account/resources/devices/add)
- great, you're now provisioned.