Moved from https://github.com/bitcoin/bitcoin/issues/16954.
Continued discussion from https://github.com/bitcoin/bitcoin/pull/16944#issuecomment-534538035, based on @gwillen’s offline signing branch: https://github.com/gwillen/bitcoin/tree/feature-offline-v2
If we make the entire Send experience a modal, things might get a bit simpler.
Sorry for the handwriting :-) There’s 3 stages to a transaction:
- Draft / compose: enter recipient, amount, fees, etc. (the current Send screen).
This step is skipped when loading a PSBT (e.g. via menu: Transaction -> Load, or a smart clipboard).
-
Sign: currently a popup which confirms the details. With hardware wallets (e.g. #16549) this should enumerate connected wallets and let you sign one by one. In a multisig situation it should detect if any signatures are missing, and rename the 3rd step to “Export”.
-
Finish / Export: once again repeat the importantant details. For basic wallets with private keys in it, this should just show that the transaction has been broadcast. With a completed PSBT it should let the user choose between broadcasting or exporting (clipboard, save to disk).