UI external signer support (e.g. hardware wallet) #16549

pull Sjors wants to merge 35 commits into bitcoin:master from Sjors:2019/08/hww-qt changing 72 files +1839 −127
  1. Sjors commented at 5:38 PM on August 5, 2019: member

    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):

    <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. 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.

  2. Sjors cross-referenced this on Aug 5, 2019 from issue External signer support - Wallet Box edition by Sjors
  3. DrahtBot added the label Build system on Aug 5, 2019
  4. DrahtBot added the label Docs on Aug 5, 2019
  5. DrahtBot added the label GUI on Aug 5, 2019
  6. DrahtBot added the label RPC/REST/ZMQ on Aug 5, 2019
  7. DrahtBot added the label Scripts and tools on Aug 5, 2019
  8. DrahtBot added the label Tests on Aug 5, 2019
  9. DrahtBot added the label Utils/log/libs on Aug 5, 2019
  10. DrahtBot added the label Wallet on Aug 5, 2019
  11. DrahtBot commented at 9:04 PM on August 5, 2019: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #19267 (ci: Upgrade most ci configs to focal by MarcoFalke)
    • #19162 (ci: tsan gui by MarcoFalke)
    • #19136 (wallet: add dumpwalletdescriptor RPC by achow101)
    • #19099 (refactor: Move wallet methods out of chain.h and node.h by ryanofsky)
    • #19077 (wallet: Add sqlite as an alternative wallet database and use it for new descriptor wallets by achow101)
    • #19064 (refactor: Cleanup thread ctor calls by hebasto)
    • #19046 (Replace CWallet::Set* functions that use memonly with Add/Load variants by achow101)
    • #19013 (test: add v0.20.0 to backwards compatibility test by Sjors)
    • #18870 (build: Allow BDB between 4.8 and 5.3 without --with-incompatible-bdb by achow101)
    • #18789 (qt: Add Create Unsigned button to SendConfirmationDialog by achow101)
    • #18788 (tests: Update more tests to work with descriptor wallets by achow101)
    • #18750 (build: optionally skip external warnings by vasild)
    • #18654 (rpc: separate bumpfee's psbt creation function into psbtbumpfee by achow101)
    • #18531 (rpc: Assert that RPCArg names are equal to CRPCCommand ones by MarcoFalke)
    • #18354 (Use shared pointers only in validation interface by bvbfan)
    • #18351 (Updated text on send confirmation dialog by dannmat)
    • #18202 (refactor: consolidate sendmany and sendtoaddress code by Sjors)
    • #18077 (net: Add NAT-PMP port forwarding support by hebasto)
    • #15937 (Add loadwallet and createwallet load_on_startup options by ryanofsky)
    • #15936 (Unify bitcoin-qt and bitcoind persistent settings by ryanofsky)
    • #15719 (Wallet passive startup by ryanofsky)
    • #15382 (util: add runCommandParseJSON by Sjors)

    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.

  12. DrahtBot added the label Needs rebase on Aug 6, 2019
  13. jonasschnelli commented at 11:41 AM on August 12, 2019: contributor

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

  14. 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.

  15. fanquake removed the label Build system on Aug 14, 2019
  16. fanquake removed the label Docs on Aug 14, 2019
  17. fanquake removed the label Scripts and tools on Aug 14, 2019
  18. fanquake removed the label Tests on Aug 14, 2019
  19. fanquake removed the label Utils/log/libs on Aug 14, 2019
  20. Sjors force-pushed on Sep 16, 2019
  21. 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:

    1. runCommandParseJSON, so the GUI can call HWI: #15382
    2. Wallet boxes #16341
    3. Native descriptor wallets #16528, which in turn needs a rebase on #16341 and the merged #15450 (create wallet)
    4. External signer RPC support: #16546
  22. Sjors force-pushed on Sep 18, 2019
  23. Sjors cross-referenced this on Sep 24, 2019 from issue ui: offline / multisig UX by Sjors
  24. Sjors cross-referenced this on Sep 25, 2019 from issue ui: make send a wizard by Sjors
  25. Sjors cross-referenced this on Sep 26, 2019 from issue [feature] A gui interface by achow101
  26. Sjors cross-referenced this on Oct 29, 2019 from issue Hardware wallet support by Sjors
  27. Sjors force-pushed on Oct 29, 2019
  28. DrahtBot removed the label Needs rebase on Oct 29, 2019
  29. Sjors force-pushed on Oct 29, 2019
  30. Sjors force-pushed on Oct 29, 2019
  31. DrahtBot added the label Needs rebase on Oct 30, 2019
  32. Sjors force-pushed on Oct 30, 2019
  33. Sjors force-pushed on Oct 31, 2019
  34. Sjors force-pushed on Oct 31, 2019
  35. DrahtBot removed the label Needs rebase on Oct 31, 2019
  36. DrahtBot added the label Needs rebase on Oct 31, 2019
  37. Sjors force-pushed on Nov 7, 2019
  38. DrahtBot removed the label Needs rebase on Nov 7, 2019
  39. DrahtBot added the label Needs rebase on Nov 8, 2019
  40. Sjors force-pushed on Dec 9, 2019
  41. DrahtBot removed the label Needs rebase on Dec 9, 2019
  42. DrahtBot added the label Needs rebase on Dec 16, 2019
  43. Sjors force-pushed on Jan 30, 2020
  44. DrahtBot removed the label Needs rebase on Jan 30, 2020
  45. Sjors cross-referenced this on Jan 30, 2020 from issue Native Descriptor Wallets using DescriptorScriptPubKeyMan by achow101
  46. Sjors force-pushed on Jan 30, 2020
  47. Sjors force-pushed on Jan 30, 2020
  48. Sjors force-pushed on Jan 30, 2020
  49. DrahtBot added the label Needs rebase on Feb 4, 2020
  50. Sjors force-pushed on Feb 21, 2020
  51. Sjors commented at 9:38 PM on February 21, 2020: member

    Rebased. Sending is a bit of a hack; I'll clean that up after #18027.

  52. DrahtBot removed the label Needs rebase on Feb 21, 2020
  53. DrahtBot cross-referenced this on Feb 21, 2020 from issue descriptors: Use xpub at last hardened step if possible by achow101
  54. DrahtBot cross-referenced this on Feb 21, 2020 from issue wallet: Pass in transactions and messages for signing instead of exporting the private keys by achow101
  55. DrahtBot cross-referenced this on Feb 21, 2020 from issue net: Add NAT-PMP port forwarding support by hebasto
  56. DrahtBot cross-referenced this on Feb 21, 2020 from issue gui: Drop WalletModel dependency to RecentRequestsTableModel by promag
  57. DrahtBot cross-referenced this on Feb 21, 2020 from issue "PSBT Operations" dialog by gwillen
  58. DrahtBot cross-referenced this on Feb 21, 2020 from issue refactor: Abstract boost::variant out by elichai
  59. DrahtBot cross-referenced this on Feb 21, 2020 from issue Disallow automatic conversion between disparate hash types by Empact
  60. DrahtBot cross-referenced this on Feb 21, 2020 from issue qt, refactor: Make BitcoinUnits::Unit a scoped enum by hebasto
  61. DrahtBot cross-referenced this on Feb 22, 2020 from issue rpc: Auto-format RPCResult by MarcoFalke
  62. DrahtBot cross-referenced this on Feb 22, 2020 from issue wallet: Keep inactive seeds after sethdseed and derive keys from them as needed by achow101
  63. DrahtBot cross-referenced this on Feb 22, 2020 from issue qt: Fix height of QR-less ReceiveRequestDialog by hebasto
  64. DrahtBot cross-referenced this on Feb 22, 2020 from issue refactor: deduplicate the message sign/verify code by vasild
  65. DrahtBot cross-referenced this on Feb 22, 2020 from issue gui: save and load PSBT by Sjors
  66. DrahtBot cross-referenced this on Feb 22, 2020 from issue Bugfix: GUI: Restore SendConfirmationDialog button default to "Yes" by luke-jr
  67. DrahtBot cross-referenced this on Feb 22, 2020 from issue Drop checkFinalTx and use Median Time Past to check finality of wallet transactions by ariard
  68. DrahtBot cross-referenced this on Feb 22, 2020 from issue rpc: set default bip32derivs to true for psbt methods by Sjors
  69. DrahtBot cross-referenced this on Feb 22, 2020 from issue Allow fundrawtransaction and walletcreatefundedpsbt to take external inputs by achow101
  70. DrahtBot cross-referenced this on Feb 22, 2020 from issue wallet: reduce loading time by using unordered maps by achow101
  71. DrahtBot cross-referenced this on Feb 22, 2020 from issue BIP-322: Generic signed message format by kallewoof
  72. DrahtBot cross-referenced this on Feb 22, 2020 from issue qt: Add privacy to the Overview page by hebasto
  73. DrahtBot cross-referenced this on Feb 22, 2020 from issue gui: Bilingual GUI error messages by hebasto
  74. DrahtBot cross-referenced this on Feb 22, 2020 from issue torcontrol: Launch a private Tor instance when not already running by luke-jr
  75. DrahtBot cross-referenced this on Feb 22, 2020 from issue util: add RunCommandParseJSON by Sjors
  76. DrahtBot cross-referenced this on Feb 22, 2020 from issue build: Optionally enable -Wzero-as-null-pointer-constant by Empact
  77. DrahtBot cross-referenced this on Feb 22, 2020 from issue Build: enable -Wdocumentation via isystem by Empact
  78. DrahtBot cross-referenced this on Feb 22, 2020 from issue wallet: Show fee in results for signrawtransaction* for segwit inputs by kallewoof
  79. DrahtBot cross-referenced this on Feb 22, 2020 from issue [wallet] [rpc] sendtoaddress/sendmany: Add explicit feerate option by kallewoof
  80. DrahtBot cross-referenced this on Feb 24, 2020 from issue refactor: consolidate sendmany and sendtoaddress code by Sjors
  81. DrahtBot cross-referenced this on Feb 25, 2020 from issue The ultimate send RPC by Sjors
  82. DrahtBot added the label Needs rebase on Feb 25, 2020
  83. Sjors force-pushed on Feb 25, 2020
  84. DrahtBot removed the label Needs rebase on Feb 25, 2020
  85. DrahtBot cross-referenced this on Feb 26, 2020 from issue Multiprocess build support by ryanofsky
  86. DrahtBot cross-referenced this on Feb 26, 2020 from issue Multiprocess bitcoin by ryanofsky
  87. DrahtBot cross-referenced this on Feb 28, 2020 from issue build: add --enable-isystem and change --enable-werror to enable -Werror by vasild
  88. DrahtBot cross-referenced this on Mar 2, 2020 from issue WIP test: Check that wait_until returns if time point is in the past by MarcoFalke
  89. DrahtBot cross-referenced this on Mar 2, 2020 from issue wip: gui: Refactor to drop client and wallet models setters by promag
  90. DrahtBot cross-referenced this on Mar 2, 2020 from issue wip: gui: Drop connectSlotsByName usage by promag
  91. DrahtBot cross-referenced this on Mar 3, 2020 from issue build: Enable -Wsuggest-override if available by hebasto
  92. DrahtBot cross-referenced this on Mar 5, 2020 from issue build: Remove Boost Chrono by fanquake
  93. DrahtBot cross-referenced this on Mar 6, 2020 from issue interfaces: Describe and follow some code conventions by ryanofsky
  94. DrahtBot added the label Needs rebase on Mar 9, 2020
  95. Sjors force-pushed on Mar 23, 2020
  96. Sjors force-pushed on Mar 27, 2020
  97. DrahtBot removed the label Needs rebase on Mar 27, 2020
  98. DrahtBot cross-referenced this on Mar 27, 2020 from issue Use shared pointers only in validation interface by bvbfan
  99. DrahtBot cross-referenced this on Mar 27, 2020 from issue [BIP 174] Implement serialization support for GLOBAL_XPUB field. by achow101
  100. DrahtBot cross-referenced this on Mar 28, 2020 from issue Implement BIP 340-342 validation (Schnorr/taproot/tapscript) by sipa
  101. DrahtBot cross-referenced this on Mar 30, 2020 from issue Build: Move wallet RPCs to their own libbitcoin_walletrpcs module by luke-jr
  102. Sjors force-pushed on Apr 1, 2020
  103. DrahtBot cross-referenced this on Apr 1, 2020 from issue wallet: include a checksum of encrypted private keys by achow101
  104. DrahtBot cross-referenced this on Apr 1, 2020 from issue Avoid unnecessary signing provider copies on descriptor expansion by Empact
  105. DrahtBot cross-referenced this on Apr 3, 2020 from issue test: remove rapidcheck integration and tests by fanquake
  106. DrahtBot cross-referenced this on Apr 5, 2020 from issue rpc: remove deprecated CRPCCommand constructor by MarcoFalke
  107. DrahtBot added the label Needs rebase on Apr 6, 2020
  108. Sjors force-pushed on Apr 22, 2020
  109. Sjors force-pushed on Apr 22, 2020
  110. DrahtBot removed the label Needs rebase on Apr 22, 2020
  111. DrahtBot added the label Needs rebase on Apr 23, 2020
  112. Sjors force-pushed on Apr 23, 2020
  113. DrahtBot cross-referenced this on Apr 23, 2020 from issue test: Add CreateWalletFromFile test by ryanofsky
  114. DrahtBot cross-referenced this on Apr 23, 2020 from issue wallet: Avoid translating RPC errors by MarcoFalke
  115. DrahtBot cross-referenced this on Apr 23, 2020 from issue Multiprocess build support by ryanofsky
  116. DrahtBot cross-referenced this on Apr 23, 2020 from issue gui: Add a `Make unsigned` button next to `Send` by achow101
  117. DrahtBot cross-referenced this on Apr 23, 2020 from issue gui: Add bumpFeePSBT action instead of changing normal bumpfee behavior by achow101
  118. DrahtBot cross-referenced this on Apr 23, 2020 from issue rpc: separate bumpfee's psbt creation function into psbtbumpfee by achow101
  119. DrahtBot cross-referenced this on Apr 23, 2020 from issue gui: Drop RecentRequestsTableModel dependency to WalletModel by promag
  120. DrahtBot cross-referenced this on Apr 23, 2020 from issue test: add factor option to adjust test timeouts by brakmic
  121. DrahtBot cross-referenced this on Apr 23, 2020 from issue refactor: Remove CAddressBookData::destdata by ryanofsky
  122. DrahtBot cross-referenced this on Apr 23, 2020 from issue rpc: return block hash & height in getbalances, gettransaction & getwalletinfo JSONs by brakmic
  123. DrahtBot cross-referenced this on Apr 23, 2020 from issue RPC: Show fee in results for signrawtransaction* for segwit inputs by luke-jr
  124. DrahtBot cross-referenced this on Apr 23, 2020 from issue rpc: fundrawtransaction and walletcreatefundedpsbt also lock manually selected coins by Sjors
  125. DrahtBot removed the label Needs rebase on Apr 23, 2020
  126. DrahtBot cross-referenced this on Apr 24, 2020 from issue Reverse cs_main, cs_wallet lock order and reduce cs_main locking by ariard
  127. DrahtBot cross-referenced this on Apr 26, 2020 from issue test: added test for upgradewallet RPC by brakmic
  128. Sjors force-pushed on Apr 27, 2020
  129. Sjors force-pushed on Apr 27, 2020
  130. DrahtBot cross-referenced this on Apr 27, 2020 from issue qt: Add Create Unsigned button to SendConfirmationDialog by achow101
  131. DrahtBot cross-referenced this on Apr 27, 2020 from issue tests: Update more tests to work with descriptor wallets by achow101
  132. DrahtBot cross-referenced this on Apr 27, 2020 from issue wallet: descriptor wallet release notes and cleanups by achow101
  133. DrahtBot cross-referenced this on Apr 30, 2020 from issue test: Strip down previous releases boilerplate by MarcoFalke
  134. DrahtBot commented at 11:09 AM on May 1, 2020: contributor

    <!--cf906140f33d8803c4a75a2196329ecb-->

    🐙 This pull request conflicts with the target branch and needs rebase.

  135. DrahtBot added the label Needs rebase on May 1, 2020
  136. Sjors marked this as a draft on May 4, 2020
  137. Sjors renamed this:
    [WIP] UI external signer support (e.g. hardware wallet)
    UI external signer support (e.g. hardware wallet)
    on May 4, 2020
  138. Sjors commented at 7:35 PM on May 4, 2020: member

    Github lets you mark existing pull requests as draft now!

  139. Sjors force-pushed on May 7, 2020
  140. DrahtBot cross-referenced this on May 8, 2020 from issue gui: Fix manual coin control with multiple wallets loaded by promag
  141. DrahtBot cross-referenced this on May 8, 2020 from issue test: Remove RPCOverloadWrapper boilerplate by MarcoFalke
  142. DrahtBot cross-referenced this on May 8, 2020 from issue rpc: prevent circular deps by extracting into separate include by brakmic
  143. DrahtBot cross-referenced this on May 8, 2020 from issue refactor: Apply override specifier consistently by hebasto
  144. DrahtBot cross-referenced this on May 9, 2020 from issue wallet: Move salvagewallet into wallettool by achow101
  145. fjahr commented at 11:44 AM on May 11, 2020: contributor

    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.

  146. Sjors force-pushed on May 18, 2020
  147. DrahtBot cross-referenced this on May 18, 2020 from issue wallet: Refactor the classes in wallet/db.{cpp/h} by achow101
  148. Sjors force-pushed on May 22, 2020
  149. fanquake cross-referenced this on May 27, 2020 from issue doc: Separate repository for the gui by MarcoFalke
  150. 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?

  151. 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 :-)

  152. Sjors force-pushed on Jun 10, 2020
  153. DrahtBot cross-referenced this on Jun 10, 2020 from issue wallet: add parent_desc to getaddressinfo by achow101
  154. DrahtBot cross-referenced this on Jun 10, 2020 from issue refactor: Cleanup thread ctor calls by hebasto
  155. DrahtBot cross-referenced this on Jun 10, 2020 from issue Replace CWallet::Set* functions that use memonly with Add/Load variants by achow101
  156. DrahtBot cross-referenced this on Jun 10, 2020 from issue Updated text on send confirmation dialog by dannmat
  157. DrahtBot cross-referenced this on Jun 11, 2020 from issue Add loadwallet and createwallet load_on_startup options by ryanofsky
  158. DrahtBot cross-referenced this on Jun 11, 2020 from issue refactor: remove ::vpwallets and related global variables by ryanofsky
  159. DrahtBot cross-referenced this on Jun 11, 2020 from issue refactor: Move wallet methods out of chain.h and node.h by ryanofsky
  160. DrahtBot cross-referenced this on Jun 12, 2020 from issue interfaces: Expose settings.json methods to GUI by ryanofsky
  161. [depends] boost: patch unused variable in boost_process
    Co-Authored-By: fanquake <fanquake@gmail.com>
    4037f85033
  162. configure: add ax_boost_process
    Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
    2436908651
  163. [build] make boost-process opt-in 459e567992
  164. [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
  165. [doc] include Doxygen comments for HAVE_BOOST_PROCESS 4a093579e1
  166. [ci] use boost::process
    Explictly opt-out on win64, in case the default changes.
    f97f9e2bd4
  167. [util] add runCommandParseJSON 48c57c7548
  168. [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
  169. 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
    edcf22fc0b
  170. [build] msvc: define ENABLE_EXTERNAL_SIGNER 1532fb3ac5
  171. [doc] include Doxygen comments for ENABLE_EXTERNAL_SIGNER 599c285abd
  172. [test] framework: add skip_if_no_external_signer b66180c034
  173. [wallet] add -signer argument for external signer command
    Create basic ExternalSigner class with contructor. A Signer(<cmd>)
    is added to CWallet on load if -signer=<cmd> is set.
    267ee5adf9
  174. [test] add external signer test
    Includes a mock to mimick the HWI interace.
    1357381b78
  175. [wallet] add external_signer flag 749bd05feb
  176. [wallet] add ExternalSignerScriptPubKeyMan 1be8ac458d
  177. Sjors force-pushed on Jun 16, 2020
  178. [rpc] add external signer RPC files a468f7a382
  179. [rpc] signer: add enumeratesigners to list external signers dd34019b8e
  180. [rpc] add external_signer option to createwallet d9c27f0a79
  181. [test] external_signer wallet flag is immutable 5ec6357b62
  182. [wallet] ExternalSigner: add getDescriptors method c59a7483fd
  183. [wallet] add GetExternalSigner() d8591fb41c
  184. [wallet] fetch keys from external signer upon creation 489f37b9c3
  185. Add Fingerprint() to Descriptor f481c5fdb5
  186. [rpc] signerdisplayaddress e31b152670
  187. [rpc] sendtoaddress: support external signer 23c992d390
  188. [doc] add external-signer.md 36f8792ede
  189. [gui] options: add external signer path 7218c328b1
  190. [gui] create wallet with external signer 3c21dd566c
  191. Add displayAddress to wallet interface 26a9baffe9
  192. [gui] display address on external signer b5c46cb99e
  193. [gui] node: get external signer list ee8b40eb2e
  194. [gui] wallet creation detects external signer c168ed0028
  195. [gui] send: use external signer 6f9259c790
  196. Sjors force-pushed on Jun 16, 2020
  197. [build] enable external signer by default for GUI e306aaa3c0
  198. DrahtBot cross-referenced this on Jun 16, 2020 from issue ci: Upgrade most ci configs to focal by MarcoFalke
  199. DrahtBot cross-referenced this on Jun 16, 2020 from issue Replace boost::filesystem with std::filesystem by kiminuo
  200. DrahtBot cross-referenced this on Jun 16, 2020 from issue ci: tsan gui by MarcoFalke
  201. DrahtBot cross-referenced this on Jun 17, 2020 from issue wallet: Add sqlite as an alternative wallet database and use it for new descriptor wallets by achow101
  202. DrahtBot cross-referenced this on Jun 17, 2020 from issue build: Allow BDB between 4.8 and 5.3 without --with-incompatible-bdb by achow101
  203. DrahtBot cross-referenced this on Jun 17, 2020 from issue build: optionally skip external warnings by vasild
  204. DrahtBot cross-referenced this on Jun 17, 2020 from issue Wallet passive startup by ryanofsky
  205. DrahtBot cross-referenced this on Jun 18, 2020 from issue test: add v0.20.1, v0.21.0 and v22.0 to backwards compatibility test by Sjors
  206. Sjors cross-referenced this on Jun 18, 2020 from issue UI external signer support (e.g. hardware wallet) by Sjors
  207. Sjors commented at 6:13 PM on June 18, 2020: member

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

  208. Sjors closed this on Jun 18, 2020

  209. Sjors deleted the branch on Apr 11, 2021
  210. bitcoin locked this on Aug 16, 2022

github-metadata-mirror

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: 2026-05-19 06:54 UTC