Skip to content

Add same-passphrase HD account derivation and grouping - #474

Draft
megabyte0x wants to merge 28 commits into
chainapsis:mainfrom
megabyte0x:agent/ios-same-passphrase-account-groups
Draft

Add same-passphrase HD account derivation and grouping#474
megabyte0x wants to merge 28 commits into
chainapsis:mainfrom
megabyte0x:agent/ios-same-passphrase-account-groups

Conversation

@megabyte0x

Copy link
Copy Markdown

Summary

  • adds atomic same-seed ZIP-32 software-account derivation, preserving the optional BIP-39 passphrase, reusing the lowest free account index, and returning opaque seed-family metadata
  • groups matching software accounts into editable Wallet families in the desktop and mobile Accounts views while keeping hardware and unclassified accounts isolated
  • extends the iOS regtest account-management journey to prove distinct address/UUID, secret preservation, shared seed family, group-name persistence, account actions, and passcode rotation
  • fixes the mobile Add Account crash: deriving an account published router dependencies before navigation to Home, allowing GoRouter to rebuild the ephemeral customise route after CustomiseAccountArgs had been discarded

Closes #266.

Screenshots

Desktop iOS
Desktop account groups iOS account groups

How to test

  1. Install the iOS mobile build and unlock a software wallet.
  2. Open Accounts -> Add account -> Get started -> Add Account.
  3. Continue through customisation without entering a recovery phrase. The app must return to Home without a red error screen, with a distinct active unified address.
  4. Open Manage accounts. The original and derived accounts should be in one Wallet family, with Current on that family.
  5. Rename the family, leave and reopen Accounts, then relaunch and unlock; the family membership and name must persist.

Validation

  • fvm flutter test --tags mobile --run-skipped --dart-define=VIZOR_FORM_FACTOR=mobile test/features/onboarding/mobile_welcome_screen_test.dart test/features/onboarding/mobile_customise_account_screen_test.dart (27 passed)
  • SIMULATOR_UDID=E7E48642-4471-4C79-906B-037A4DDC6D09 scripts/e2e/flutter-ios-regtest-mobile-account-management.sh (passed)
  • cd rust && cargo test (598 passed)

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.

support for derivation of multiple addresses from the same seedphrase (HD wallet derivation)

1 participant