Summary
Add legacy wallet migration UX around walletLoader().migrateWallet.
Complexity
Dependencies
Global Constraints
- All implementation lives under
gui-qml/.
- No GUI runtime dependency on
bitcoin/src/qt components. Reused logic must be moved/ported into gui-qml/.
- Do not change
interfaces::Wallet or interfaces::Node in this version.
- Issue completion must satisfy
DefinitionOfDone.md.
Scope
- Detect migration-eligible wallets.
- Add migration flow with passphrase prompt where needed.
- Display migration output, backup path, and follow-up actions.
- Handle partial migration and rollback messaging.
Acceptance Criteria (DoD-Aligned)
- Eligible wallet can be migrated from UI.
- Failure and partial warning conditions are clearly explained.
- Migration backup location is shown to user.
Required Tests
- C++ unit tests: Unit tests for migration result mapping and edge-case handling.
- QML QTest: QTests for migration confirmation, password, and result states.
- Python E2E (
qml/test/testbridge.h): E2E migration scenario with success + forced failure path checks.
Implementation Notes
- Document limitations in feature note because design coverage is currently not explicit.
Summary
Add legacy wallet migration UX around
walletLoader().migrateWallet.Complexity
LDependencies
101202Global Constraints
gui-qml/.bitcoin/src/qtcomponents. Reused logic must be moved/ported intogui-qml/.interfaces::Walletorinterfaces::Nodein this version.DefinitionOfDone.md.Scope
Acceptance Criteria (DoD-Aligned)
Required Tests
qml/test/testbridge.h): E2E migration scenario with success + forced failure path checks.Implementation Notes