#35443 tests: add functional test for tr musig2 miniscript decaying multisig
| Reviewability | Reviews | Agreement | Size | ||||
|---|---|---|---|---|---|---|---|
| #35443 tests: add functional test for tr musig2 miniscript decaying multisig | Author silent 151d | 1 | Positive | 13 + 177 tests | |||
|
|
|
|
| |||
Reviewability: ReadyStalePaused Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs. Size: lines added or modified outside tests, then in tests; greener = smaller. | |||||||
Goal
Adds a new functional test, wallet_taproot_decaying_multisig_descriptor_psbt.py, exercising a 4-of-4 decaying multisig descriptor that uses MuSig2 for the Taproot key path and Miniscript for timelocked script-path fallbacks. It also adds an example of this descriptor pattern to doc/descriptors.md.
Problem: While Bitcoin Core supports MuSig2 and Miniscript descriptors, there was no end-to-end integration test or clear documentation demonstrating how wallet PSBT workflows handle combining a MuSig2 aggregate key path with timelocked Miniscript script paths across watch-only and single-key signer wallets.
Reviewability
Stale · Author silent 151d
No author activity for 151 days; a review may wait a long time for a response.
Waiting on (from the thread read):
- author: response to doc description suggestion 2026-10-27
Agreement
Positive
support without stated reasons, no open objection (rkrux, rkrux)
Thread notes: rkrux dropped their question about the assert placement (rc:4249018181) and gave an ACK (r:5668461708), while suggesting in rc:4389724651 that halvening timelocks be omitted from the doc description.
Objections, suggestions, and questions:
| Reviewer | Type | Harm, request, or question | Status | Must be | Author replied | Quote |
|---|---|---|---|---|---|---|
| rkrux (member) | suggestion, maintenance | merging the two test files into one to avoid code and method duplication | answered · author explained preference for keeping tests separate for documentation clarity | answered | yes | 2026-06-03: 'Consider merging these two files into one while getting rid of the duplication?' Status from: 2026-06-03: mjdietzx: 'my preference is keeping these tests separate to prioritize them being maximally simple and easy to follow.' |
| rkrux (member) | question, correctness | whether the assert needs to be inside the loop | accepted · reviewer dropped the question after realizing the assert is fine outside the loop | answered | no | 2026-10-12: 'Doesn't this assert need to be in the loop?' Status from: 2026-10-27: rkrux: 'Nvm, this seems fine outside the loop to check the final completeness of the PSBT post both the rounds.' |
| rkrux (member) | suggestion, maintenance | avoid mentioning halvening-related timelocks in the doc description since the example does not contain them | open | answered | no | 2026-10-27: 'This particular example doesn't contain any halvening related timelocks. It can be avoided in the description as well.' |
Support:
- rkrux (member) (Concept ACK, 2026-06-03): Concept ACK e588094 [not substantive]
- rkrux (member) (ACK, 2026-10-27): lgtm ACK e5880944cba298c04ad5fe4acd2c6208784554cc [not substantive]
Participants:
- rkrux (member, support, 7 statements 2026-06-03 to 2026-10-27): ACK; suggested avoiding halvening timelocks in doc description, dropped question on assert location, previously suggested combining tests
Files
177 lines under test/bench/ci.
- test/functional/wallet_taproot_decaying_multisig_descriptor_psbt.py +176/-0
- doc/descriptors.md +13/-0
- test/functional/test_runner.py +1/-0
Card
The short text the ranking pass compares across PRs.
Adds a functional test and documentation example for a Taproot decaying multisig wallet combining MuSig2 key-path spends with Miniscript timelocked script-path fallbacks. It verifies that single-key signer wallets can coordinate key-path and script-path spends using standard PSBT workflows without importing the multisig descriptor. The PR is clean and received a Concept ACK from rkrux, but the author has been silent for 105 days.
Data
thread read through 2026-10-27 (8 statements), head e5880944cb
labels: Tests
Categories
Wallet
P3 · test coverage
Adds functional test coverage for wallet PSBT workflows combining MuSig2 aggregate key paths with timelocked Miniscript script paths across watch-only and single-key signer wallets. While Bitcoin Core already supported these primitives, this provides useful end-to-end integration verification against regressions in complex multi-party descriptor workflows.
Membership: Adds wallet_taproot_decaying_multisig_descriptor_psbt.py to test wallet PSBT workflows and descriptor management.
Factors: security/stability 0, bug 0, performance 0, user value 1, leverage 0