Skip to content

Feature Parity 18: PSBT Import/Export Flow #522

@johnny9

Description

@johnny9

Summary

Implement PSBT export from send flow and PSBT import/sign/finalize pathways.

Complexity

  • XL

Dependencies

  • 16
  • 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

  • Add create/export PSBT actions (clipboard + file).
  • Add PSBT import path (file + clipboard) and decode/validation UX.
  • Support sign/finalize/broadcast paths using wallet interface methods.
  • Integrate with external signer readiness states where relevant.

Acceptance Criteria (DoD-Aligned)

  1. User can export unsigned PSBT from transaction review.
  2. User can import PSBT, inspect status, sign if possible, and finalize/broadcast when complete.
  3. Large/invalid PSBT inputs fail gracefully with actionable messages.

Required Tests

  • C++ unit tests: Unit tests for PSBT parsing/sign/finalize adapters and error handling.
  • QML QTest: QTests for import/export dialog states and action enablement.
  • Python E2E (qml/test/testbridge.h): E2E flow covering PSBT export, re-import, sign/finalize, and broadcast.

Implementation Notes

  • Do not reuse qt/psbtoperationsdialog.*; implement gui-qml-native model + UI.

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