Skip to content

oakcommunity/p2p-commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OAK

Thanks

  • 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

Getting Started

  • install expo go on mobile app, install expo cli
  • npm install - install those dependencies
  • npx expo start - get the dev server running
  • scan QR code on dev server with camera app/expo go

Implementation Documentation

Framework Set Up

React Native + Ethers Context Specific

Private Key Storage

Mobile App Navigation

State Management

QR Code Scanner

User Authentication SMS + Database

Feature Work

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)
    • Supabase (Auth + Database)
      • username
      • public key (wallet address)
      • phone number (done)

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

Testing for iOS is such a pain... my goodness

IOS only