A user reported on stackexchange that they were unable to sign for a multi_a
script using a wallet that only had the corresponding keys (i.e. it did not have the multi_a()
descriptor). This PR fixes this issue.
Additionally, wallet_taproot.py
is modified to test for this scenario by having another wallet in do_test_psbt
which contains descriptors that only have the keys involved in the descriptor being tested. wallet_taproot.py
was also modified to create new wallets for each test case rather than sharing wallets throughout as the sharing could result in the signing wallet having the keys in a different descriptor and accidentally result in failing to detect a test failure.
The changes to the test also revealed a similar issue with rawtr()
descriptors, which has also been fixed by checking if a descriptor can produce a SigningProvider
for the Taproot output pubkey.