Skip to content

Feature Parity 14: Receive Requests: Generation, History, QR, and BIP21 Sharing #518

@johnny9

Description

@johnny9

Summary

Replace placeholder receive flow with real wallet-backed payment request generation and sharing.

Complexity

  • L

Dependencies

  • 01
  • 10
  • 02

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)

  1. Receive form creates a real address and stores request metadata.
  2. History survives app restart and supports selection/copy/remove.
  3. QR and BIP21 payloads match entered amount/label/message.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions