mirror of
https://github.com/luxfi/wallet.git
synced 2026-07-27 03:37:41 +00:00
backup/pre-cleanup-2026-05-29/feat/send-receive
Send flow per SCREENS.md §2: - Send.tsx: form (to/amount/memo) with per-chain validation. Insufficient- balance check is part of the same gate so the UI never lets a doomed tx leave the form. Resets state on mount. - AssetPicker.tsx: bottom-sheet modal. Re-uses portfolio's Asset rows; caller passes the canonical asset list (one obvious way — same prop pattern as Swap's TokenSelector). - FeePreview.tsx: wagmi useEstimateGas × useGasPrice for EVM; static flat fees for Lux P/X (no gas market) and Solana (5000 lamports). - ConfirmSend.tsx: re-auth via getPinAuth().verifyPin() before broadcast. Re-auth is required even when the wallet is unlocked — high-trust action, fresh check at the moment of broadcast (defends against shoulder-surfer on an unlocked tab). - BroadcastResult.tsx: pending → confirmed/failed/timeout. EVM uses wagmi's useWaitForTransactionReceipt; non-EVM has bounded 60s poll with manual retry path. - useSend.ts / useSendAsync.ts: orchestration hook + chain dispatch. Errors always transition to status='error' with error populated, never to 'done'. - usePortfolioAssets.ts: contract with Auth-Portfolio Blue's portfolio store; collapses to one line when that store lands. - index.tsx: nested <Routes> for /send, /send/confirm, /send/result/:hash. Foundation router needs the path: 'send' → 'send/*' one-line change to unlock the children.
Description
Open Source Lux DeFi Wallet.
187 MiB
Languages
TypeScript
88%
Swift
4.2%
Kotlin
4.1%
JavaScript
1.2%
Go
0.8%
Other
1.6%