Skip to content

Refactor export flows for multi-account support and QR enhancements - #15

Merged
gorunjinian merged 3 commits into
mainfrom
ui/export-options
Aug 30, 2026
Merged

Refactor export flows for multi-account support and QR enhancements#15
gorunjinian merged 3 commits into
mainfrom
ui/export-options

Conversation

@gorunjinian

@gorunjinian gorunjinian commented Aug 14, 2026

Copy link
Copy Markdown
Owner
  • Introduced AccountExportState and AccountSelectorDropdown to unify account selection logic across AccountKeysScreen, DescriptorsScreen, and new export screens.
  • Implemented a "Combined" coordinator export in CoordinatorExportService that bundles all supported single-sig and multisig sections into a single JSON payload for Sparrow and Coldcard.
  • Added AnimatedQrDisplay to provide standardized playback controls (pause, manual frame stepping, and frame counter) for large exports using BBQr or BC-UR.
  • Centralized QR encoding logic for text and JSON payloads into AnimatedQREncoder, deduplicating logic between descriptor and coordinator export paths.
  • Introduced dedicated NunchukQRScreen and SparrowQRScreen to handle specific coordinator formats with enhanced account and script-type selection (now merged into one)
  • Extended Wallet domain logic and CoordinatorExportService to derive keys and generate export records for arbitrary account numbers when the master key is available.
  • Refactored ExportMultiSigScreen and DescriptorsScreen to use the new unified account selection and QR display components.

…coordinator exports, and animated QR.

- Introduced `AccountExportState` and `AccountSelectorDropdown` to unify account selection logic across `AccountKeysScreen`, `DescriptorsScreen`, and new export screens.
- Implemented a "Combined" coordinator export in `CoordinatorExportService` that bundles all supported single-sig and multisig sections into a single JSON payload for Sparrow and Coldcard.
- Added `AnimatedQrDisplay` to provide standardized playback controls (pause, manual frame stepping, and frame counter) for large exports using BBQr or BC-UR.
- Centralized QR encoding logic for text and JSON payloads into `AnimatedQREncoder`, deduplicating logic between descriptor and coordinator export paths.
- Introduced dedicated `NunchukQRScreen` and `SparrowQRScreen` to handle specific coordinator formats with enhanced account and script-type selection.
- Extended `Wallet` domain logic and `CoordinatorExportService` to derive keys and generate export records for arbitrary account numbers when the master key is available.
- Refactored `ExportMultiSigScreen` and `DescriptorsScreen` to use the new unified account selection and QR display components.

Signed-off-by: Gorun Jinian <gorunbh@proton.me>
@gorunjinian gorunjinian self-assigned this Aug 14, 2026
@gorunjinian gorunjinian added feat request A new additional feature is requested UI fix Improvements and fixes related to UI work labels Aug 14, 2026
…olidate UI components and simplify navigation logic.

- Unified `NunchukQRScreen` and `SparrowQRScreen` into a single `CoordinatorExportScreen`, using a `SegmentedToggle` to switch between formats and export modes.
- Integrated animated QR support for combined Sparrow exports (BBQR/BC-UR) directly into the unified export view, including support for BIP48 multisig keys.
- Consolidated security warning dialogs for seed phrase and root key exports into a shared `AlertDialog` logic in `ExportOptionsScreen`, reducing boilerplate.
- Refined the sensitive view workflow to follow a consistent "Select Target -> Acknowledge Warning -> Verify Password" sequence.
- Optimized memory usage by implementing a `DisposableEffect` to recycle animated QR frames and trigger garbage collection when leaving export screens.
- Cleaned up the `Wallet` domain model and `AppNavigation` by removing redundant export methods and obsolete navigation routes.
- Updated `CoordinatorExportScreen` to provide real-time verification details (fingerprint, path, first address) that dynamically update based on the selected account and format.

Signed-off-by: Gorun Jinian <gorunbh@proton.me>
…s display and refined the coordinator export metadata.

- Created `AddressFormatter` utility to centralize address truncation logic, adding support for 5-character grouping and `AnnotatedString` styling to bold first/last segments for easier verification.
- Refactored `AddressesScreen` and `CoordinatorExportScreen` to use the new centralized formatting utility.
- Updated `CoordinatorExportService` to use technical network identifiers ("mainnet", "testnet4") instead of descriptive names, ensuring consistency in exported data and unit tests.

Signed-off-by: Gorun Jinian <gorunbh@proton.me>
@gorunjinian
gorunjinian merged commit cde81d9 into main Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat request A new additional feature is requested UI fix Improvements and fixes related to UI work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant