bitcoin/src/qt/forms
Samuel Dobson 68a89d7a46
Merge bitcoin-core/gui#4: UI external signer support (e.g. hardware wallet)
1c4b456e1a gui: send using external signer (Sjors Provoost)
24815c6309 gui: wallet creation detects external signer (Sjors Provoost)
3f845ea299 node: add externalSigners to interface (Sjors Provoost)
62ac119f91 gui: display address on external signer (Sjors Provoost)
450cb40a34 wallet: add displayAddress to interface (Sjors Provoost)
eef8d64529 gui: create wallet with external signer (Sjors Provoost)
6cdbc83e93 gui: add external signer path to options dialog (Sjors Provoost)

Pull request description:

  Big picture overview in [this gist](https://gist.github.com/Sjors/29d06728c685e6182828c1ce9b74483d).

  This PR adds GUI support for external signers, based on the since merged bitcoin/bitcoin#16546 (RPC).

  The UX isn't amazing - especially the blocking calls - but it works.

  First we adds a GUI setting for the signer script (e.g. path to HWI):

  <img width="625" alt="Schermafbeelding 2019-08-05 om 19 32 59" src="https://user-images.githubusercontent.com/10217/62483415-e1ff1680-b7b7-11e9-97ca-8d2ce54ca1cb.png">

  Then we add an external signer checkbox to the wallet creation dialog:

  <img width="374" alt="Schermafbeelding 2019-11-07 om 19 17 23" src="https://user-images.githubusercontent.com/10217/68416387-b57ee000-0194-11ea-9730-127d60273008.png">

  It's checked by default if HWI detects a device. It also grabs the name. It then creates a fresh wallet and imports the keys.

  You can verify an address on the device (blocking...):
  <img width="673" alt="Schermafbeelding 2019-08-05 om 19 29 22" src="https://user-images.githubusercontent.com/10217/62483560-43bf8080-b7b8-11e9-9902-8a036116dc4b.png">

  Sending, including coin selection, Just Works(tm) as long the device is present.

  ~External signer support is enabled by default when the GUI is configured and Boost::Process is present.~

  External signer support remains disabled by default, see https://github.com/bitcoin/bitcoin/pull/21935.

ACKs for top commit:
  achow101:
    Code Review ACK 1c4b456e1a
  hebasto:
    ACK 1c4b456e1a, tested on Linux Mint 20.1 (Qt 5.12.8) with HWW `2.0.2-rc.1`.
  promag:
    Tested ACK 1c4b456e1a but rebased with e033ca1379, with HWI 2.0.2, with Nano S and Nano X.
  meshcollider:
    re-code-review ACK 1c4b456e1a

Tree-SHA512: 3503113c5c69d40adb6ce364d8e7cae23ce82d032a00474ba9aeb6202eb70f496ef4a6bf2e623e5171e524ad31ade7941a4e0e89539c64518aaec74f4562d86b
2021-06-09 18:59:59 +12:00
..
addressbookpage.ui [qt] Add support to search the address book 2018-01-03 16:15:15 +00:00
askpassphrasedialog.ui gui: fix passphrase labels/tooltip in createwalletdialog/askpassphrasedialog 2019-09-09 10:57:38 +02:00
coincontroldialog.ui gui: move coin control OK to the right 2019-05-28 11:16:39 -04:00
createwalletdialog.ui gui: create wallet with external signer 2021-05-27 14:01:53 +02:00
debugwindow.ui qt: make console buttons look clickable 2021-05-15 10:01:02 -04:00
editaddressdialog.ui qt: refactor: Use absolute include paths in .ui files 2017-11-16 08:23:02 +13:00
helpmessagedialog.ui Unify package name to as few places as possible without major changes 2015-12-14 02:11:10 +00:00
intro.ui GUI/Intro: Move prune setting below explanation 2020-11-30 02:46:43 +00:00
modaloverlay.ui scripted-diff: Replace three dots with ellipsis in the UI strings 2021-05-02 22:17:16 +03:00
openuridialog.ui gui: Move static placeholder texts to forms 2019-12-09 11:12:20 +01:00
optionsdialog.ui gui: add external signer path to options dialog 2021-05-27 14:01:53 +02:00
overviewpage.ui qt: Make warning label look clickable 2021-02-22 15:14:08 -05:00
psbtoperationsdialog.ui scripted-diff: Replace three dots with ellipsis in the UI strings 2021-05-02 22:17:16 +03:00
receivecoinsdialog.ui qt: Make "Create new receiving address" default unconditionally 2020-07-21 21:24:28 +03:00
receiverequestdialog.ui gui: display address on external signer 2021-05-27 14:01:54 +02:00
sendcoinsdialog.ui Merge bitcoin/bitcoin#21752: doc: Clarify that feerates are per virtual size 2021-05-11 11:55:20 +02:00
sendcoinsentry.ui qt: Normalize placeholder to avoid using "address book" in sendcoinsentry 2019-12-09 12:28:55 +01:00
signverifymessagedialog.ui gui: Move static placeholder texts to forms 2019-12-09 11:12:20 +01:00
transactiondescdialog.ui qt: Add transaction hash to details window title 2016-04-26 16:05:10 +02:00