Skip to content

miniscript: account for all `StringType` variants in `Miniscriptdescriptor::ToString()`

In MiniscriptDescriptor::ToStringHelper() only the StringType::Private variant of the type argument was handled. This PR implements serializing w/ all variants of StringType & add a functional test for the descriptor triggering the related issue.

Closes #31694: previously when calling listdescriptors RPC on a wallet containing a taproot descriptor w/ a (miniscript) taptree, origins of internal key & taptree were serialized w/ differents hardened derivation markers:

  • origin of the internal key were serialized w/ StringType::Normalized type (using h as marker)
  • origins of taptree keys were serialized w/ StringType::Private type (using ' as marker)

Note: Origins in segwit (wsh()) miniscript descriptors were also serialized w/ StringType::Private type (' marker) and are now serialized w/ StringType::Normalized type (h marker).

Merge request reports

Loading