Currently, the multisig descriptor constructions are limited to 16 keys only possibly because of template parsing reasons. Under p2sh context, such scripts would be invalid anyway because of 520-byte rule, but we can support up to 20 keys for CHECKMULTISIG in witness script context. 


{
        std::string ret;
        ToStringHelper(nullptr, ret, false, false);
        return AddChecksum(ret);
    }
    bool ToPrivateString(const SigningProvider& arg, std::string& out) const final
    {
        bool ret = ToStringHelper(&arg, out, true, false);
        out = AddChecksum(out);
        return ret;
    }
    bool ToNormalizedString(const SigningProvider& arg, std::string& out, bool priv) const override final
    {
        bool ret = ToStringHelper(&arg, out, priv, true);
        out = AddChecksum(out);
        return ret;
    }
    bool ExpandHelper(int pos, const SigningProvider& arg, const DescriptorCache* read_cache, std::vector<CScript>& output_scripts, FlatSigningProvider& out, DescriptorCache* write_cache) const