mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-04 10:12:28 +02:00
Merge bitcoin-core/gui#4: UI external signer support (e.g. hardware wallet)
1c4b456e1agui: send using external signer (Sjors Provoost)24815c6309gui: wallet creation detects external signer (Sjors Provoost)3f845ea299node: add externalSigners to interface (Sjors Provoost)62ac119f91gui: display address on external signer (Sjors Provoost)450cb40a34wallet: add displayAddress to interface (Sjors Provoost)eef8d64529gui: create wallet with external signer (Sjors Provoost)6cdbc83e93gui: 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 ACK1c4b456e1ahebasto: ACK1c4b456e1a, tested on Linux Mint 20.1 (Qt 5.12.8) with HWW `2.0.2-rc.1`. promag: Tested ACK1c4b456e1abut rebased withe033ca1379, with HWI 2.0.2, with Nano S and Nano X. meshcollider: re-code-review ACK1c4b456e1aTree-SHA512: 3503113c5c69d40adb6ce364d8e7cae23ce82d032a00474ba9aeb6202eb70f496ef4a6bf2e623e5171e524ad31ade7941a4e0e89539c64518aaec74f4562d86b
This commit is contained in:
@@ -109,6 +109,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="external_signer_checkbox">
|
||||
<property name="toolTip">
|
||||
<string>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>External signer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -143,6 +153,7 @@
|
||||
<tabstop>disable_privkeys_checkbox</tabstop>
|
||||
<tabstop>blank_wallet_checkbox</tabstop>
|
||||
<tabstop>descriptor_checkbox</tabstop>
|
||||
<tabstop>external_signer_checkbox</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
|
||||
@@ -229,6 +229,36 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBoxHww">
|
||||
<property name="title">
|
||||
<string>External Signer (e.g. hardware wallet)</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayoutHww">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayoutHww">
|
||||
<item>
|
||||
<widget class="QLabel" name="externalSignerPathLabel">
|
||||
<property name="text">
|
||||
<string>&External signer script path</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>externalSignerPath</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="externalSignerPath">
|
||||
<property name="toolTip">
|
||||
<string>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_Wallet">
|
||||
<property name="orientation">
|
||||
|
||||
@@ -254,6 +254,19 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnVerify">
|
||||
<property name="text">
|
||||
<string>&Verify</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Verify this address on e.g. a hardware wallet screen</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnSaveAs">
|
||||
<property name="text">
|
||||
|
||||
Reference in New Issue
Block a user