Skip to content

Conversation

Sjors
Copy link
Member

@Sjors Sjors commented Aug 5, 2019

Big picture overview in this gist.

This PR adds GUI support for external signers. It consists of 7 commits on top of #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):

Schermafbeelding 2019-08-05 om 19 32 59

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

Schermafbeelding 2019-11-07 om 19 17 23

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...):
Schermafbeelding 2019-08-05 om 19 29 22

Sending, including coin selection, Just Works(tm) as long the device is present. It's a bit weird though: the device will prompt for signing first and the QT confirmation dialog appears after.

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

@DrahtBot
Copy link
Contributor

DrahtBot commented Aug 5, 2019

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@jonasschnelli
Copy link
Contributor

This PR has 146 commits,... is this intentional?

@Sjors
Copy link
Member Author

Sjors commented Aug 12, 2019

@jonasschnelli see the list in #16546 for all the all the experimental stuff this PR is based on. The actual change is only a few commits (Github messes up the ordering), compared to RPC-only functionality.

@Sjors
Copy link
Member Author

Sjors commented Sep 16, 2019

Cleaned it up a bit and tweaked the timestamps so it's more clear that only the most recent 4 commits are relevant.

139 commits may seem a bit intimidating, but it's really just a matter of reviewing:

  1. runCommandParseJSON, so the GUI can call HWI: util: add RunCommandParseJSON #15382
  2. Wallet boxes Introduce ScriptPubKeyMan interface and use it for key and script management (aka wallet boxes) #16341
  3. Native descriptor wallets Native Descriptor Wallets using DescriptorScriptPubKeyMan #16528, which in turn needs a rebase on Introduce ScriptPubKeyMan interface and use it for key and script management (aka wallet boxes) #16341 and the merged gui: Create wallet menu option #15450 (create wallet)
  4. External signer RPC support: External signer support - Wallet Box edition #16546

@Sjors
Copy link
Member Author

Sjors commented Jun 18, 2020

Moving to the new GUI repo: bitcoin-core/gui#4

@Sjors Sjors closed this Jun 18, 2020
@Sjors Sjors deleted the 2019/08/hww-qt branch April 11, 2021 17:15
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants