Summary
Replace placeholder receive flow with real wallet-backed payment request generation and sharing.
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
- Generate real receive addresses via wallet interface.
- Persist receive request entries using current wallet API (
getAddressReceiveRequests / setAddressReceiveRequest).
- Create recent requests/history model in gui-qml (no dependency on
qt/recentrequeststablemodel).
- Support copy/share for address, QR payload, and BIP21 URI.
Acceptance Criteria (DoD-Aligned)
- Receive form creates a real address and stores request metadata.
- History survives app restart and supports selection/copy/remove.
- QR and BIP21 payloads match entered amount/label/message.
- Malformed persisted entries do not crash startup and are safely skipped with diagnostics.
Required Tests
- C++ unit tests: Unit tests for request serialization/deserialization and corruption handling in gui-qml model.
- QML QTest: QTests for receive form, history list, and share actions.
- Python E2E (
qml/test/testbridge.h): E2E flow: create request -> verify history -> restart -> verify persistence -> copy QR/URI.
Implementation Notes
- No wallet interface changes in this version; keep compatibility with existing raw storage API.
Summary
Replace placeholder receive flow with real wallet-backed payment request generation and sharing.
Complexity
LDependencies
011002Global Constraints
gui-qml/.bitcoin/src/qtcomponents. Reused logic must be moved/ported intogui-qml/.interfaces::Walletorinterfaces::Nodein this version.DefinitionOfDone.md.Scope
getAddressReceiveRequests/setAddressReceiveRequest).qt/recentrequeststablemodel).Acceptance Criteria (DoD-Aligned)
Required Tests
qml/test/testbridge.h): E2E flow: create request -> verify history -> restart -> verify persistence -> copy QR/URI.Implementation Notes