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):
Then we add an external signer checkbox to the wallet creation dialog:
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…):
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 added the label
Build system
on Aug 5, 2019
DrahtBot added the label
Docs
on Aug 5, 2019
DrahtBot added the label
GUI
on Aug 5, 2019
DrahtBot added the label
RPC/REST/ZMQ
on Aug 5, 2019
DrahtBot added the label
Scripts and tools
on Aug 5, 2019
DrahtBot added the label
Tests
on Aug 5, 2019
DrahtBot added the label
Utils/log/libs
on Aug 5, 2019
DrahtBot added the label
Wallet
on Aug 5, 2019
DrahtBot
commented at 9:04 pm on August 5, 2019:
member
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Conflicts
Reviewers, this pull request conflicts with the following ones:
#19267 (ci: Upgrade most ci configs to focal by MarcoFalke)
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.
DrahtBot added the label
Needs rebase
on Aug 6, 2019
jonasschnelli
commented at 11:41 am on August 12, 2019:
contributor
This PR has 146 commits,… is this intentional?
Sjors
commented at 1:18 pm on August 12, 2019:
member
@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.
fanquake removed the label
Build system
on Aug 14, 2019
fanquake removed the label
Docs
on Aug 14, 2019
fanquake removed the label
Scripts and tools
on Aug 14, 2019
fanquake removed the label
Tests
on Aug 14, 2019
fanquake removed the label
Utils/log/libs
on Aug 14, 2019
Sjors force-pushed
on Sep 16, 2019
Sjors
commented at 5:19 pm on September 16, 2019:
member
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:
runCommandParseJSON, so the GUI can call HWI: #15382
Github lets you mark existing pull requests as draft now!
Sjors force-pushed
on May 7, 2020
fjahr
commented at 11:44 am on May 11, 2020:
member
Concept ACK
I am not a huge GUI user but I compared the way this works here with #16546 and it looks good to me.
Sjors force-pushed
on May 18, 2020
Sjors force-pushed
on May 22, 2020
jonasschnelli
commented at 7:31 am on May 29, 2020:
contributor
I haven’t followed the recent HWW work,… but is this still à jour with the concept?
Sjors
commented at 6:37 pm on May 29, 2020:
member
I’m keeping this PR up to date and it actually works, so it is the concept :-)
Sjors force-pushed
on Jun 10, 2020
[depends] boost: patch unused variable in boost_process
Co-Authored-By: fanquake <fanquake@gmail.com>
4037f85033
configure: add ax_boost_process
Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
2436908651
[build] make boost-process opt-in459e567992
[build] msvc: add boost::process
* AppVeyor boost-process vcpkg package.
* Tell Boost linter to ignore it
* Add HAVE_BOOST_PROCESS for MSVC build (bitcoin_config.h)
97f65def30
[doc] include Doxygen comments for HAVE_BOOST_PROCESS4a093579e1
[ci] use boost::process
Explictly opt-out on win64, in case the default changes.
f97f9e2bd4
[util] add runCommandParseJSON48c57c7548
[rpc] [DO NOT MERGE] sendmany: return PSBT for wallets without private keys
TODO: replace with #16378 once its prerequisites are merged.
In addition we check to see if the PSBT is complete, in preperation for a ScriptPubKeyMan that can use an external signer.
fc46eb2202
configure: add --enable-external-signer
This prepares external signer support to be disabled by default.
It adds a configure option to enable this feature and to check
if Boost::Process is present.
It can also be enabled using --with-boost-process
This also exposes ENABLE_EXTERNAL_SIGNER to the test suite via test/config.ini
fixup! e192a9dedf1bc5dcddb928466eca9a93c83e5c91
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2024-12-18 12:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me