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. 


{
    UniValue arr{UniValue::VARR};
    for (int i{0}; i < int(m_args.size()); ++i) {
        const auto& arg = m_args.at(i);
        std::vector<std::string> arg_names;
        boost::split(arg_names, arg.m_names, boost::is_any_of("|"));
        for (const auto& arg_name : arg_names) {
            UniValue map{UniValue::VARR};
            map.push_back(m_name);
            map.push_back(i);
            map.push_back(arg_name);
            map.push_back(arg.m_type == RPCArg::Type::STR ||
                          arg.m_type == RPCArg::Type::STR_HEX);
            arr.push_back(map);
        }
    }
    return arr;
}
std::string RPCArg::GetFirstName() const