Skip to content

Commit 8bff900

Browse files
Merge #6019: feat(wallet): external signer (hardware signer)
013953b Merge bitcoin#24065: build: explicitly disable support for external signing on Windows (fanquake) d1ce974 fix: missing changes from bitcoin#22320 for external signer (Konstantin Akimov) 2718bbd Merge bitcoin-core/gui#441: Add Create Unsigned button to SendConfirmationDialog (Hennadii Stepanov) f6410f3 fix: dashify doc/external-signer.md (Konstantin Akimov) 6c4ba34 Merge bitcoin#25770: build: Fix help string for `--enable-external-signer` configure option (fanquake) 8fae189 Merge bitcoin#25019: parse external signer master fp as bytes in ExternalSigner::SignTransaction (Andrew Chow) e852bdf Merge bitcoin#24401: wallet: Add external-signer-support specific error message (Andrew Chow) a6f7e73 Merge bitcoin#24307: RPC: Return external_signer in getwalletinfo (Andrew Chow) 65bb461 Merge bitcoin#23628: Check descriptors returned by external signers (fanquake) 8c559be Merge bitcoin#23004: multiprocess: add interfaces::ExternalSigner class (W. J. van der Laan) 6a73d31 Merge bitcoin#22789: external_signer: improve fingerprint matching logic (stop on first match) (W. J. van der Laan) 8e5f624 Merge bitcoin-core/gui#396: Ensure external signer option remains disabled without signers (Hennadii Stepanov) 6d07721 Merge bitcoin#22348: build: Fix cross build for Windows with Boost Process (fanquake) 1b9b7c7 Merge bitcoin#21935: Enable external signer support by default, reduce #ifdef (fanquake) 9c30a2e Merge bitcoin#22173: wallet: Do not load external signers wallets when unsupported (Samuel Dobson) 38911c7 Merge bitcoin-core/gui#4: UI external signer support (e.g. hardware wallet) (Samuel Dobson) 2ebf7ca Merge bitcoin#21666: Miscellaneous external signer changes (fanquake) 7dbb4c1 Merge bitcoin#21467: Move external signer out of wallet module (fanquake) 6373ba7 Merge bitcoin#21417: Misc external signer improvement and HWI 2 support (fanquake) fac568a Merge bitcoin#21292: build, doc: Fix configure script output indentation and typos (MarcoFalke) 3a3dfa3 Merge bitcoin#21285: wallet: fix doc typo in signer option (fanquake) a33222d fix: alignment in configure.ac for debug output of options choice (Konstantin Akimov) d49f0eb Merge bitcoin#16546: External signer support - Wallet Box edition (Wladimir J. van der Laan) 4bb4981 fix: remove nodiscard attribute as follow-up for bitcoin#18115 (Konstantin Akimov) 52f7cad fix: missing dashification of rpc/backup.cpp (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented This PR introduce support of external signers (for example, hardware signers such as Ledger) which could be used to sign transactions, using existing feature PSBT. ## What was done? Bitcoin backports from Bitcoin Core v22, v23, v24 to support hardware wallets in Dash Core. This PR is not the smallest possible set of backports, but it is set that provide working external signer in both CLI and GUI versions of Dash Core. Extra backports to improve user experience are to be done in the next PRs, see #6913 ## How Has This Been Tested? Got successfully signed transaction using a repo https://github.com/knst/hwi/ (WIP, see also knst/HWI#1) ## Breaking Changes It introduces multiple new RPC, doesn't seems as any really breaking change ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 013953b Tree-SHA512: ec2158526d00130beef1d99c0030f5e3df4a4c62f439eb16bf31297c1ab5888af2e76ecaa2d7edfe31ba668a5ce550184e244e55ce1db85c3218fd9f53c6d118
2 parents 7d69b5a + 013953b commit 8bff900

68 files changed

Lines changed: 1604 additions & 105 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ci/test/00_setup_env_arm.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ export RUN_FUNCTIONAL_TESTS=false
2525
export GOAL="install"
2626
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
2727
# This could be removed once the ABI change warning does not show up by default
28-
export BITCOIN_CONFIG="--enable-reduce-exports CXXFLAGS=-Wno-psabi --with-boost-process"
28+
export BITCOIN_CONFIG="--enable-reduce-exports CXXFLAGS=-Wno-psabi"

ci/test/00_setup_env_mac.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ export XCODE_BUILD_ID=15A240d
1414
export RUN_UNIT_TESTS=false
1515
export RUN_FUNCTIONAL_TESTS=false
1616
export GOAL="all deploy"
17-
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with-boost-process"
17+
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner"

ci/test/00_setup_env_mac_native_x86_64.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export CONTAINER_NAME=ci_macos
1010
export HOST=x86_64-apple-darwin
1111
export PIP_PACKAGES="zmq lief"
1212
export GOAL="install"
13-
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with-boost-process"
13+
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner"
1414
export CI_OS_NAME="macos"
1515
export NO_DEPENDS=1
1616
export OSX_SDK=""

ci/test/00_setup_env_native_asan.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ export TEST_RUNNER_EXTRA="--timeout-factor=4" # Increase timeout because saniti
1212
export FUNCTIONAL_TESTS_CONFIG="--exclude wallet_multiwallet.py" # Temporarily suppress ASan heap-use-after-free (see issue #14163)
1313
export RUN_BENCH=true
1414
export GOAL="install"
15-
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++ --with-boost-process"
15+
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++"

ci/test/00_setup_env_native_fuzz.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ export RUN_UNIT_TESTS=false
1515
export RUN_FUNCTIONAL_TESTS=false
1616
export RUN_FUZZ_TESTS=true
1717
export GOAL="install"
18-
export BITCOIN_CONFIG="--enable-zmq --disable-ccache --enable-fuzz --with-sanitizers=fuzzer,address,undefined,integer CC='clang-19 -ftrivial-auto-var-init=pattern' CXX='clang++-19 -ftrivial-auto-var-init=pattern' --with-boost-process"
18+
export BITCOIN_CONFIG="--enable-zmq --disable-ccache --enable-fuzz --with-sanitizers=fuzzer,address,undefined,integer CC='clang-19 -ftrivial-auto-var-init=pattern' CXX='clang++-19 -ftrivial-auto-var-init=pattern'"

ci/test/00_setup_env_native_multiprocess.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export DEP_OPTS="MULTIPROCESS=1 CC=clang-19 CXX=clang++-19"
1313
export RUN_TIDY=true
1414
export GOAL="install"
1515
export TEST_RUNNER_EXTRA="--v2transport"
16-
export BITCOIN_CONFIG="--with-boost-process --enable-debug CC=clang-19 CXX=clang++-19" # Use clang to avoid OOM
16+
export BITCOIN_CONFIG="--enable-debug CC=clang-19 CXX=clang++-19" # Use clang to avoid OOM
1717
# Additional flags for RUN_TIDY
1818
export BITCOIN_CONFIG="${BITCOIN_CONFIG} --disable-hardening CFLAGS='-O0 -g0' CXXFLAGS='-O0 -g0 -Wno-error=documentation'"
1919
export BITCOIND=dash-node # Used in functional tests

ci/test/00_setup_env_native_nowallet.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ export HOST=x86_64-pc-linux-gnu
1111
export PACKAGES="python3-zmq"
1212
export DEP_OPTS="NO_WALLET=1 CC=gcc-14 CXX=g++-14"
1313
export GOAL="install"
14-
export BITCOIN_CONFIG="--enable-reduce-exports --with-boost-process CC=gcc-14 CXX=g++-14"
14+
export BITCOIN_CONFIG="--enable-reduce-exports CC=gcc-14 CXX=g++-14"

ci/test/00_setup_env_native_qt5.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ export RUN_UNIT_TESTS_SEQUENTIAL="true"
1515
export RUN_UNIT_TESTS="false"
1616
export GOAL="install"
1717
export DOWNLOAD_PREVIOUS_RELEASES="true"
18-
export BITCOIN_CONFIG="--enable-zmq --with-libs=no --enable-reduce-exports LDFLAGS=-static-libstdc++ --with-boost-process"
18+
export BITCOIN_CONFIG="--enable-zmq --with-libs=no --enable-reduce-exports LDFLAGS=-static-libstdc++"

ci/test/00_setup_env_native_tsan.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ export DEP_OPTS="CC=clang-19 CXX='clang++-19 -stdlib=libc++'"
1212
export TEST_RUNNER_EXTRA="--extended --exclude feature_pruning,feature_dbcrash,wallet_multiwallet.py" # Temporarily suppress ASan heap-use-after-free (see issue #14163)
1313
export TEST_RUNNER_EXTRA="${TEST_RUNNER_EXTRA} --timeout-factor=4" # Increase timeout because sanitizers slow down
1414
export GOAL="install"
15-
export BITCOIN_CONFIG="--enable-zmq --with-sanitizers=thread CC=clang-19 CXX=clang++-19 CXXFLAGS='-g' --with-boost-process"
15+
export BITCOIN_CONFIG="--enable-zmq --with-sanitizers=thread CC=clang-19 CXX=clang++-19 CXXFLAGS='-g'"
1616
export CPPFLAGS="-DARENA_DEBUG -DDEBUG_LOCKORDER -DDEBUG_LOCKCONTENTION"
1717
export PYZMQ=true

ci/test/00_setup_env_s390x.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ export RUN_UNIT_TESTS=true
2222
export TEST_RUNNER_EXTRA="--exclude rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
2323
export RUN_FUNCTIONAL_TESTS=true
2424
export GOAL="install"
25-
export BITCOIN_CONFIG="--enable-reduce-exports --with-boost-process"
25+
export BITCOIN_CONFIG="--enable-reduce-exports"

0 commit comments

Comments
 (0)