HomePhabricator

[electrum] refactor: move Send tab to its own module

Description

[electrum] refactor: move Send tab to its own module

Summary:
This move 1500+ lines of code from the main window god object to another module with limited interconnections. The main_window no longer needs to maintain the payement request and privkey sweeping state machines, and no longer needs to know the details of the zoo of widgets in the Send tab. The send tab still needs some knowledge of the main window API to trigger some statusbar or history updates, to access contacts stored in the Contacts tab, and to use some trivial helper functions that can easily be factored out in the future(get_decimal_point(), on_error(), show_transaaction(), password_dialog`...)

The send tab widget now deals with everything related to sending transactions, payment requests, invoices.

There is no change in behavior.

Depends on D18335

Test Plan:
git show --color-moved=dimmed_zebra --color-moved-ws=allow-indentation-change

Run the application and try to test all the touched components (send transactions, view transaction details, send to contacts, paste a URI in the recipient edit, open an URI on the command line, open a payment request...)

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D18324

Details

Provenance
PiRKAuthored on Jul 3 2025, 20:24
PiRKPushed on Jul 8 2025, 12:08
Reviewer
Restricted Project
Differential Revision
D18324: [electrum] refactor: move Send tab to its own module
Parents
rABCacbd2ec2eaca: [electrum] simplify and inline InvoiceList.chkVisible
Branches
Unknown
Tags
Unknown