Skip to content

feat: restore all wallets under one seed as a single Account - #16

Merged
nghiacc merged 1 commit into
mainfrom
cursor/multi-wallet-account-restore-9650
Oct 20, 2026
Merged

nghiacc merged 1 commit into
mainfrom
cursor/multi-wallet-account-restore-9650

Conversation

@nghiacc

@nghiacc nghiacc commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

One seed could hold many v1 wallets (XEC 1899/899/145, single-sig and multisig, DOGE), but restore only surfaced the default 1899 wallet: the candidate scan omitted RaiPay 145 multisig, a pinned wallet ID discarded other matches, and Home was a single-wallet view.

  • wallet-core: restoreCandidatesForMnemonic derives all 8 variants (44'/48' x 1899/899/145 for XEC, 3 for DOGE), plus accountLabel, sortAccountWallets and groupWalletsByAccount (seed = requestPubKey at m/1'/0, shared by every variant under one mnemonic)
  • models: xecRestoreCoinTypes now returns all variants for both kinds
  • web: Restore recovers and batch-adds every match, lands on an Account summary listing all restored wallets; Home and Settings group wallets under their Account with per-wallet coinType and m-of-n labels and switching; LocalWallet carries coinType/accountId

One seed could hold many v1 wallets (XEC 1899/899/145, single-sig and
multisig, DOGE), but restore only surfaced the default 1899 wallet:
the candidate scan omitted RaiPay 145 multisig, a pinned wallet ID
discarded other matches, and Home was a single-wallet view.

- wallet-core: restoreCandidatesForMnemonic derives all 8 variants
  (44'/48' x 1899/899/145 for XEC, 3 for DOGE), plus accountLabel,
  sortAccountWallets and groupWalletsByAccount (seed = requestPubKey
  at m/1'/0, shared by every variant under one mnemonic)
- models: xecRestoreCoinTypes now returns all variants for both kinds
- web: Restore recovers and batch-adds every match, lands on an
  Account summary listing all restored wallets; Home and Settings
  group wallets under their Account with per-wallet coinType and
  m-of-n labels and switching; LocalWallet carries coinType/accountId

Co-authored-by: nghiacc <nghiacc@yahoo.com>
@nghiacc
nghiacc merged commit 93ee70e into main Oct 20, 2026
1 of 2 checks passed
@coderabbitai

coderabbitai Bot commented Oct 20, 2026

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5003e9d3-3886-454f-a6a0-4995bfed214a
📥 Commits

Reviewing files that changed from the base of the PR and between 8821683 and 68d6fd4.

📒 Files selected for processing: 8
  • apps/abcpay-web/src/context/WalletContext.tsx
  • apps/abcpay-web/src/pages/HomePage.tsx
  • apps/abcpay-web/src/pages/RestorePage.tsx
  • apps/abcpay-web/src/pages/SettingsPage.tsx
  • packages/abcpay-models/src/coins.ts
  • packages/abcpay-wallet-core/src/__tests__/restore.test.ts
  • packages/abcpay-wallet-core/src/index.ts
  • packages/abcpay-wallet-core/src/restore.ts
+-----------------------------------------------------------+
| Your API returns 200 OK; your users return 404 Not Found. |
+-----------------------------------------------------------+
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants