Commit Graph
84 Commits
Author SHA1 Message Date
TZGyn 44a91428fc add evm send with native and erc-20 token support 2026-05-29 00:33:56 +08:00
TZGyn 9e579f957d add back-to-home link on monero page and seed reveal in evm settings 2026-05-28 21:31:43 +08:00
TZGyn 2cbf3bb33b extract monero wallet dashboard into dedicated /monero/wallet/[name] route 2026-05-27 13:19:23 +08:00
TZGyn a30038f9e7 add CopyButton and QR dialog for all Monero addresses/subaddresses 2026-05-27 01:48:53 +08:00
TZGyn 2139d5e6ff create accounts/subaddresses, chunked address style, fix canSend for subaddresses 2026-05-26 13:33:28 +08:00
TZGyn 34602a4bfa add sweepAll for Monero send-all; add copy buttons for accounts/subaddresses 2026-05-26 13:09:18 +08:00
TZGyn 915f6f36f6 fix: process stdout/stderr ReadableStream types, add sv-router/generated path mapping 2026-05-26 03:24:28 +08:00
TZGyn 2993df29cb fix: add missing walletGetAddress import and update MoneroWalletManager -> MoneroWalletState type 2026-05-26 03:17:10 +08:00
TZGyn 6fe9e6306b refactor MoneroWalletManager class to function module; fix settings page imports 2026-05-26 03:08:58 +08:00
TZGyn b5f4a80f5c Refactor: split RPC handlers into rpc/evm and rpc/monero; split RPC types into GeneralRpcRequests, EvmRpcRequests, MoneroRpcRequests 2026-05-25 23:46:36 +08:00
TZGyn 3925f3a4aa Add Monero fee estimates per priority level via daemon RPC 2026-05-25 22:37:54 +08:00
TZGyn bdd841b632 Add gas price display (Gwei, native, USD) under native balance per network 2026-05-25 21:57:44 +08:00
TZGyn bbd80cbfff Add build:win script (skips Swift native step) 2026-05-25 17:22:29 +08:00
TZGyn f0b567e895 Switch token price lookup from symbol to address for ERC-20 tokens; keep symbol for native 2026-05-25 15:03:41 +08:00
TZGyn 93dec3b71f Remove monero Refresh button; add 30s auto-refresh interval 2026-05-24 20:25:47 +08:00
TZGyn 04179805f9 Add Monero transaction details page and chain icons on EVM dashboard 2026-05-24 20:24:07 +08:00
TZGyn a91fdb6d56 Add local chain icons to welcome page with overlapping stack 2026-05-24 20:19:02 +08:00
TZGyn b1d14e1d8b Add per-account transaction filtering and QR codes for Monero 2026-05-24 19:58:52 +08:00
TZGyn 932501c32c Revert "Add QR codes for Monero address and subaddresses"
This reverts commit 95aebfe690.
2026-05-24 19:46:37 +08:00
TZGyn 95aebfe690 Add QR codes for Monero address and subaddresses 2026-05-24 19:44:48 +08:00
TZGyn cc32fdb20f Add Monero send page with transfer RPC and account selection 2026-05-24 19:43:32 +08:00
TZGyn 30d8abf26b Add ArrowLeftRight icon for swaps, remove raw response from tx details 2026-05-24 05:15:42 +08:00
TZGyn 13a9d3a8a6 Fix swap detection: include internal category as native transfers 2026-05-24 05:00:47 +08:00
TZGyn 6d32c91fb3 Add token-to-native swap detection with NATIVE_SYMBOLS map 2026-05-24 04:57:55 +08:00
TZGyn 8a0e5e431f Add swap detection to transaction details page 2026-05-24 04:53:56 +08:00
TZGyn 10a8d525a3 Extract swap pairing into shared pairTransfers, apply to cached tx history 2026-05-24 04:51:00 +08:00
TZGyn a3e609ea8f Extract shared RPC types into src/lib/rpc-schema.ts, remove duplicate type declarations 2026-05-22 12:58:04 +08:00
TZGyn c87e166468 Add periodic auto-sync with backend push events, remove refresh button 2026-05-22 12:53:18 +08:00
TZGyn cb55a6fc6b preserve current network when navigating back from settings 2026-05-22 12:37:44 +08:00
TZGyn ee11723e7d fix 0-balance not updating on chain switch; remove redundant lock button 2026-05-22 12:35:32 +08:00
TZGyn dade59722c hide token transfers with decimal 0 from transaction list 2026-05-22 12:31:59 +08:00
TZGyn 357f707180 move tx detail caching into sync engine, cache during history sync
- new sync-tx-details.ts: extracts tx+receipt caching from get-details.ts
- sync-tx-history: calls syncTxDetails per transfer hash during sync
- get-details: remove on-the-fly viem fetch + DB write (now handled
  by sync); returns null placeholder
- index: import syncTxDetails; simplify getTransactionDetails handler
2026-05-22 10:18:33 +08:00
TZGyn dd57a72e11 fix biometric, tx dedup, loading crash; add flush cache; remove monero startup from evm init
- biometric-helper: use .deviceOwnerAuthentication so passcode can
  unlock Touch ID when biometrics are locked out
- get-transaction-history: dedup transfers by hash+category+contract
  instead of hash alone (was dropping token transfers sharing a tx hash)
- evm-wallet.svelte.ts: add missing loading  declaration (caused
  ReferenceError on createWallet); add flushTxCache method; comment out
  monero startup from evm init to speed up loading
- get-history.ts: remove dead caching logic (now handled by sync engine);
  import getTransactionHistory from alchemy directly
- backend RPC + settings UI: add flushTxCache to clear tx cache tables
2026-05-22 03:03:03 +08:00
TZGyn edd4f6fff0 fix sync flush looping and batch size, add alchemy call logging 2026-05-21 17:55:29 +08:00
TZGyn 85c25883c6 split balance and tx loading into independent processes 2026-05-21 17:22:09 +08:00
TZGyn 8f3495ab40 read tx history from db cache instead of alchemy api 2026-05-21 17:18:45 +08:00
TZGyn 1aa723db46 add back button and wallet deletion to settings page 2026-05-20 20:30:38 +08:00
TZGyn d4b989c191 add multi-wallet EVM support with evm_wallets DB table 2026-05-20 20:26:40 +08:00
TZGyn c55a33e9ab split wallet state into evm-wallet and monero-wallet
- Move EVM state/methods to evm-wallet.svelte.ts with its own init/login/logout/accountType
- Move Monero state/methods to monero-wallet.svelte.ts with its own init/login/logout/accountType
- Each wallet is fully self-contained and pages import only their wallet's state
- evm-wallet imports monero-wallet internally for full app init (no circular dep)
- Welcome/settings/tx pages import evmWallet
- Monero pages import moneroWallet
- Delete old wallet.svelte.ts orchestrator
2026-05-20 20:09:45 +08:00
TZGyn 805d103785 add stable env type to get-env, remove prod 2026-05-20 19:51:16 +08:00
TZGyn 49f064f8b1 migrate from ethers to viem
- Replace HDNodeWallet.fromPhrase with mnemonicToAccount from viem/accounts
- Replace JsonRpcProvider.getBalance with viem createPublicClient + getBalance
- Replace formatEther with viem's formatEther (same API)
- Remove ethers dependency from package.json
- Update README
2026-05-20 14:31:10 +08:00
TZGyn 79f8a26eb3 move monero settings to dedicated /monero/settings page
- Create /monero/settings route with Restart Server and Save password with Touch ID
- Remove inline Settings card from monero dashboard
- Add Settings icon button (same as EVM) to monero wallet card
- Remove unused moneroSettingsPw state from dashboard
2026-05-19 03:36:26 +08:00
TZGyn 462b96f109 add loader component with loading states to transactions and monero page
- Replace 5133props with runes-compatible () in loader.svelte
- Add SVGAttributes types to loader.svelte
- Add Loader spinner to EVM Transactions card while w.loading
- Add Loader spinners to Monero Start/Refresh buttons and Transactions card
- Remove redundant Monero top bar
2026-05-19 03:32:45 +08:00
TZGyn 1d6e01a779 rename Multi Coins to EVM 2026-05-18 13:36:09 +08:00
TZGyn b1a340835b readme: remove incorrect macOS requirement 2026-05-18 13:32:44 +08:00
TZGyn bd7333b1e0 update readme with project overview and architecture 2026-05-18 13:31:20 +08:00
TZGyn 8917d6e9e3 auto-start monero-wallet-rpc on app startup when binary is installed
Reduces wait time when switching to Monero tab — RPC is already
running by the time user navigates there.
2026-05-18 05:32:28 +08:00
TZGyn 9396ffb1e0 add biometric support for monero wallet open/create/restore, add monero settings card, fix monero logout to stop rpc
- Added moneroGetStoredPassword / moneroStorePassword keychain helpers
- moneroCreateWallet and moneroRestoreWallet accept storePw flag to save password to keychain
- moneroOpenExistingWallet accepts optional password (falls back to keychain lookup)
- Monero UI: 'Save password with Touch ID' checkbox hides password field, auto-generates random password, saves to keychain
- Monero UI: 'Open with Touch ID' button uses biometric auth + retrieves stored password
- Monero Settings card: enter wallet password to save with Touch ID for existing wallets
- logout() now async, calls moneroStop() to kill RPC process so re-login requires explicit wallet open
2026-05-18 05:31:41 +08:00
TZGyn 9846e6464d require auth to log in (lock screen), remove auth-on-logout, remove welcome card from multicoin dashboard, relocate login buttons to root welcome page
- login('multi') no longer silently loads seed from keychain — shows locked screen with Touch ID/password
- Removed welcome card from EvmDashboard (multicoin route), root / handles account selection
- Root welcome page buttons call w.login() before navigating to respective routes
- Monero welcome page buttons also call w.login() before navigating
- logout now simply calls w.logout() + navigate('/') with no auth required
- Removed tab-bar logout buttons; logout moved to wallet card alongside refresh/settings/stop
2026-05-18 05:24:08 +08:00
TZGyn 6142b27c49 separate Multi Coins and Monero into distinct account types with startup login choice
- Removed monero from shared networks array; monero is now its own separate account type
- Added accountType state (null/'multi'/'monero') to wallet, stored in memory only
- Added login(type) method: chooses between EVM vault flow and Monero RPC flow
- Added logout() method that resets all per-account state
- On app startup, user picks Multi Coins (ETH/BSC/Polygon) or Monero
- isLocked getter now checks accountType === 'multi' instead of excluding monero by network id
- Moved ETH/BSC/Polygon routes under /multicoin/ base path
- /multicoin, /multicoin/bsc, /multicoin/polygon with updated navTarget routing
- Root / shows welcome/login choice, redirects if already logged in
- Fixed moneroListWallets timing: runs inside login('monero') after RPC manager exists
- Removed cross-tab links between monero and multicoin, only logout remains
2026-05-18 05:13:50 +08:00