importdescriptors currently checks whether all private keys are present by expanding the descriptor and verifying that every expanded origin pubkey has a private key.
This is wrong for MuSig descriptors because expansion includes the synthetic aggregate pubkey. There is no individual private key for that aggregate pubkey, so importing a fully private MuSig descriptor such as rawtr(musig(A_priv,B_priv)) incorrectly returns:
Not all private keys provided. Some wallet functionality may return unexpected errors
This PR fixes the issue by making descriptor private-key completeness account for MuSig participant keys, and by having importdescriptors use Descriptor::HavePrivateKeys() instead of duplicating its own manual completeness check.
The functional test covers both cases:
rawtr(musig(A_priv,B_priv))imports without warnings.rawtr(musig(A_priv,B_pub))still warns that not all private keys were provided.