By deafult, in a newly created descriptor wallet that is not watch-only and not empty, listdescriptors true works and gives output.

However, here is a scenario that breaks it:

  1. Get a new address in the descriptor wallet.
  2. Retrieve its public address (pub1)
  3. Create a multisig address with using this public address (pub1) and two others (pub2, pub3)
  4. Import the following descriptor into the wallet: sh(multi(priv1,pub2,pub3); I retrieved priv1 from listdescriptors true.
  5. Now, if I try listdescriptors true again, an error is returned:
"error": {
  "code": -4,
  "message": "Can't get descriptor string."

Is this expected as a result of how I imported a descriptor that mixes xprv and pubkeys, or is it a bug?

Note: when importing such a descriptor, I got a warning:

{"success": true, "warnings": ["Not all private keys provided. Some wallet functionality may return unexpected errors"]}


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.