-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
4bb2372 qa: drop specific value assertions in coin selection test (Antoine Poinsot) 7eb024a fuzz: alternate between generating wsh() and tr() descs (Antoine Poinsot) b9a4625 ci: run functional tests both under Taproot and P2WSH (Antoine Poinsot) 687a0c2 qa: adapt hardcoded coin selection tests to Taproot (Antoine Poinsot) ecef6bf qa: functional tests lianad using Taproot descriptors (Antoine Poinsot) 96d30db signer: taproot support in hot signer (Antoine Poinsot) 80a7dc3 signer: move p2wsh signing into a dedicated function (Antoine Poinsot) d622258 command: also update Taproot sigs in 'updatespend' (Antoine Poinsot) 714bd3c spend: check for either p2wsh or Taproot sigs in sanity checks (Antoine Poinsot) e05039f spend: don't populate non_witness_utxo for Taproot (Antoine Poinsot) 8596ca7 bitcoind: compare descriptors, not their string representation. (Antoine Poinsot) 602c862 bitcoind: sanity check min supported version for Taproot descriptor (Antoine Poinsot) d3b7e4c config: unit test a valid config with a Taproot descriptor (Antoine Poinsot) 6cf8eaa config: deser_from_str isn't descriptor specific. (Antoine Poinsot) 04f4b8a descriptors: Taproot support (Antoine Poinsot) c897d41 descriptors: encapsulate key matching logic (Antoine Poinsot) 85fdc40 descriptor: encapsulate PSBT in/out information update (Antoine Poinsot) Pull request description: This introduces Taproot support in the Liana daemon / core library. We start by introducing support for `tr()` descriptors alongside `wsh()` descriptors in the Taproot modules. For Taproot-Liana descriptors whose primary spending path isn't a single key, we deterministically derive an unspendable internal key as per https://delvingbitcoin.org/t/unspendable-keys-in-descriptors/304/21. This is to allow signing devices to not display the internal key as a spendable key when verifying a descriptor. Currently signing device vendors signaled willingness to implement this scheme. We then adapt the PSBT management logic to use Taproot fields when necessary and upgrade the hot signer to provide Schnorr signatures depending on the PSBT information. Finally, the functional tests are adapted to be able to run the whole test suite under either P2WSH or Taproot. This is done in a somewhat hacky way as i bailed out of re-implementing a Taproot PSBT signer and finalizer in Python after implementing [TapMiniscript support in upstream python-bip380](darosior/python-bip380#23). Instead we use a small Rust program to sign PSBTs for now and we skip a test which explicitly requires an external finalizer. ACKs for top commit: darosior: ACK 4bb2372 -- this underwent multiple rounds of review, Edouard tested it in his follow-up PR to the GUI and i wrote a couple fuzz targets exercising part of the logic introduced here Tree-SHA512: 426032f0bcf8a27e43cf3d158da011bda648cb56534ea678d3c4a43c3f59047e4bb7f83469fd38f70ac962d1a9721e9c1f68baa60bf597bf08fa3c39fc00ebe8
- Loading branch information
Showing
25 changed files
with
2,055 additions
and
370 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.