- Add QRCode component using qrcode.react (SVG-based, H error correction) - Add QRScanner component using html5-qrcode for camera-based scanning - Update Receive page with real QR code and payment request amount - Update Send page with QR scan button to auto-fill recipient address - Support Synor payment URI format: synor:address?amount=X - Add Dockerfile for web wallet with nginx serving - Add web-wallet service to docker-compose.testnet.yml (port 17300) - Fix TypeScript WebCrypto ArrayBuffer type issues QR features: - SVG rendering for crisp display at any size - Error correction level H (30% recovery) for printed codes - Camera permission handling with user-friendly error states - Auto-fill amount when scanning payment requests |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .gitignore | ||
| Dockerfile | ||
| index.html | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
Synor Web Wallet
A quantum-secure web wallet for the Synor blockchain.
Features
- Create and recover wallets using BIP39 mnemonic phrases
- Send and receive SYNOR tokens
- View transaction history
- Connect to any Synor RPC node
- Support for mainnet, testnet, and devnet
Development
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
Configuration
Create a .env.local file:
VITE_RPC_ENDPOINT=http://localhost:16110
Security
- Private keys are encrypted with AES-256-GCM using PBKDF2-derived keys
- Seeds never leave the browser
- No backend required - connects directly to Synor nodes
Architecture
src/
├── components/ # Reusable UI components
├── lib/ # Core libraries
│ ├── crypto.ts # Cryptographic functions
│ ├── rpc.ts # JSON-RPC client
│ └── transaction.ts # Transaction building
├── pages/ # Route pages
├── store/ # Zustand state management
└── App.tsx # Main application