{"template_request",RPCArg::Type::OBJ,"{}","Format of the template",
{
{"mode",RPCArg::Type::STR,/* treat as named arg */RPCArg::Optional::OMITTED_NAMED_ARG,"This must be set to \"template\", \"proposal\" (see BIP 23), or omitted"},
{"capabilities",RPCArg::Type::ARR,/* treat as named arg */RPCArg::Optional::OMITTED_NAMED_ARG,"A list of strings",
{
{"template_request",RPCArg::Type::OBJ,"{}","Format of the template",
{
{"mode",RPCArg::Type::STR,/* treat as named arg */RPCArg::Optional::OMITTED_NAMED_ARG,"This must be set to \"template\", \"proposal\" (see BIP 23), or omitted"},
{"capabilities",RPCArg::Type::ARR,/* treat as named arg */RPCArg::Optional::OMITTED_NAMED_ARG,"A list of strings",
{
{"str",RPCArg::Type::STR,RPCArg::Optional::OMITTED,"client side supported feature, 'longpoll', 'coinbasevalue', 'proposal', 'serverlist', 'workid'"},
},
},
{"rules",RPCArg::Type::ARR,RPCArg::Optional::NO,"A list of strings",
{
{"segwit",RPCArg::Type::STR,RPCArg::Optional::NO,"(literal) indicates client side segwit support"},
{"str",RPCArg::Type::STR,RPCArg::Optional::OMITTED,"other client side supported softfork deployment"},
},
},
},
{"str",RPCArg::Type::STR,RPCArg::Optional::OMITTED,"client side supported feature, 'longpoll', 'coinbasevalue', 'proposal', 'serverlist', 'workid'"},
}},
{"rules",RPCArg::Type::ARR,RPCArg::Optional::NO,"A list of strings",
{
{"segwit",RPCArg::Type::STR,RPCArg::Optional::NO,"(literal) indicates client side segwit support"},
{"str",RPCArg::Type::STR,RPCArg::Optional::OMITTED,"other client side supported softfork deployment"},
}},
},
"\"template_request\""},
},
RPCResult{
RPCResult::Type::OBJ,"","",
},
{
RPCResult{"If the proposal was accepted with mode=='proposal'",RPCResult::Type::NONE,"",""},
RPCResult{"If the proposal was not accepted with mode=='proposal'",RPCResult::Type::STR,"","According to BIP22"},
{RPCResult::Type::ARR,"rules","specific block rules that are to be enforced",
{
{RPCResult::Type::STR,"","name of a rule the client must understand to some extent; see BIP 9 for format"},
}},
{RPCResult::Type::OBJ_DYN,"vbavailable","set of pending, supported versionbit (BIP 9) softfork deployments",
{
{RPCResult::Type::NUM,"rulename","identifies the bit number as indicating acceptance and readiness for the named softfork rule"},
}},
{RPCResult::Type::NUM,"vbrequired","bit mask of versionbits the server requires set in submissions"},
{RPCResult::Type::STR,"previousblockhash","The hash of current highest block"},
{RPCResult::Type::ARR,"transactions","contents of non-coinbase transactions that should be included in the next block",
{
{RPCResult::Type::OBJ,"","",
{
{RPCResult::Type::STR_HEX,"data","transaction data encoded in hexadecimal (byte-for-byte)"},
{RPCResult::Type::STR_HEX,"txid","transaction id encoded in little-endian hexadecimal"},
{RPCResult::Type::STR_HEX,"hash","hash encoded in little-endian hexadecimal (including witness data)"},
{RPCResult::Type::ARR,"depends","array of numbers",
{
{RPCResult::Type::NUM,"","transactions before this one (by 1-based index in 'transactions' list) that must be present in the final block if this one is"},
}},
{RPCResult::Type::NUM,"fee","difference in value between transaction inputs and outputs (in satoshis); for coinbase transactions, this is a negative Number of the total collected block fees (ie, not including the block subsidy); if key is not present, fee is unknown and clients MUST NOT assume there isn't one"},
{RPCResult::Type::NUM,"sigops","total SigOps cost, as counted for purposes of block limits; if key is not present, sigop cost is unknown and clients MUST NOT assume it is zero"},
{RPCResult::Type::NUM,"weight","total transaction weight, as counted for purposes of block limits"},
}},
}},
{RPCResult::Type::OBJ_DYN,"coinbaseaux","data that should be included in the coinbase's scriptSig content",
{RPCResult::Type::STR_HEX,"data","transaction data encoded in hexadecimal (byte-for-byte)"},
{RPCResult::Type::STR_HEX,"txid","transaction id encoded in little-endian hexadecimal"},
{RPCResult::Type::STR_HEX,"hash","hash encoded in little-endian hexadecimal (including witness data)"},
{RPCResult::Type::ARR,"depends","array of numbers",
{
{RPCResult::Type::STR_HEX,"key","values must be in the coinbase (keys may be ignored)"},
{RPCResult::Type::NUM,"","transactions before this one (by 1-based index in 'transactions' list) that must be present in the final block if this one is"},
}},
{RPCResult::Type::NUM,"coinbasevalue","maximum allowable input to coinbase transaction, including the generation award and transaction fees (in satoshis)"},
{RPCResult::Type::STR,"longpollid","an id to include with a request to longpoll on an update to this template"},
{RPCResult::Type::NUM_TIME,"mintime","The minimum timestamp appropriate for the next block time, expressed in "+UNIX_EPOCH_TIME},
{RPCResult::Type::ARR,"mutable","list of ways the block template may be changed",
{
{RPCResult::Type::STR,"value","A way the block template may be changed, e.g. 'time', 'transactions', 'prevblock'"},
}},
{RPCResult::Type::STR_HEX,"noncerange","A range of valid nonces"},
{RPCResult::Type::NUM,"sigoplimit","limit of sigops in blocks"},
{RPCResult::Type::NUM,"sizelimit","limit of block size"},
{RPCResult::Type::NUM,"weightlimit","limit of block weight"},
{RPCResult::Type::NUM_TIME,"curtime","current timestamp in "+UNIX_EPOCH_TIME},
{RPCResult::Type::STR,"bits","compressed target of next block"},
{RPCResult::Type::NUM,"height","The height of the next block"},
{RPCResult::Type::STR,"default_witness_commitment",/* optional */true,"a valid witness commitment for the unmodified block template"}
{RPCResult::Type::NUM,"fee","difference in value between transaction inputs and outputs (in satoshis); for coinbase transactions, this is a negative Number of the total collected block fees (ie, not including the block subsidy); if key is not present, fee is unknown and clients MUST NOT assume there isn't one"},
{RPCResult::Type::NUM,"sigops","total SigOps cost, as counted for purposes of block limits; if key is not present, sigop cost is unknown and clients MUST NOT assume it is zero"},
{RPCResult::Type::NUM,"weight","total transaction weight, as counted for purposes of block limits"},
}},
RPCExamples{
}},
{RPCResult::Type::OBJ_DYN,"coinbaseaux","data that should be included in the coinbase's scriptSig content",
{
{RPCResult::Type::STR_HEX,"key","values must be in the coinbase (keys may be ignored)"},
}},
{RPCResult::Type::NUM,"coinbasevalue","maximum allowable input to coinbase transaction, including the generation award and transaction fees (in satoshis)"},
{RPCResult::Type::STR,"longpollid","an id to include with a request to longpoll on an update to this template"},