Merge #20556: rpc: Properly document return values (submitblock, gettxout, getblocktemplate, scantxoutset)
fa7ff0790erpc: Properly document submitblock return value (MarcoFalke)fae542c28brpc: Properly document getblocktemplate return value (MarcoFalke)fabaccf031rpc: Properly document scantxoutset return value (MarcoFalke)faa2059547rpc: Properly document gettxout return value (MarcoFalke) Pull request description: Currently a few return values are undocumented. This is causing confusion at the least. See for example #18476 ACKs for top commit: fjahr: utACKfa7ff0790eamitiuttarwar: tACKfa7ff0790eTree-SHA512: 933cb8f003163d93dbedb302d4c162514c2698ec6d58dbb9a053da8b8b9a4459b0701a3d9e830ecdabd7f278a46b7a07a3af49ec60703a80fcd75390877294ea
This commit is contained in:
2 files changed
+30
-22
No files matched your search
+18
-14
@@ -1106,23 +1106,22 @@ static RPCHelpMan gettxout()
|
|||||||
{"n", RPCArg::Type::NUM, RPCArg::Optional::NO, "vout number"},
|
{"n", RPCArg::Type::NUM, RPCArg::Optional::NO, "vout number"},
|
||||||
{"include_mempool", RPCArg::Type::BOOL, /* default */ "true", "Whether to include the mempool. Note that an unspent output that is spent in the mempool won't appear."},
|
{"include_mempool", RPCArg::Type::BOOL, /* default */ "true", "Whether to include the mempool. Note that an unspent output that is spent in the mempool won't appear."},
|
||||||
},
|
},
|
||||||
RPCResult{
|
|
||||||
RPCResult::Type::OBJ, "", "",
|
|
||||||
{
|
{
|
||||||
|
RPCResult{"If the UTXO was not found", RPCResult::Type::NONE, "", ""},
|
||||||
|
RPCResult{"Otherwise", RPCResult::Type::OBJ, "", "", {
|
||||||
{RPCResult::Type::STR_HEX, "bestblock", "The hash of the block at the tip of the chain"},
|
{RPCResult::Type::STR_HEX, "bestblock", "The hash of the block at the tip of the chain"},
|
||||||
{RPCResult::Type::NUM, "confirmations", "The number of confirmations"},
|
{RPCResult::Type::NUM, "confirmations", "The number of confirmations"},
|
||||||
{RPCResult::Type::STR_AMOUNT, "value", "The transaction value in " + CURRENCY_UNIT},
|
{RPCResult::Type::STR_AMOUNT, "value", "The transaction value in " + CURRENCY_UNIT},
|
||||||
{RPCResult::Type::OBJ, "scriptPubKey", "",
|
{RPCResult::Type::OBJ, "scriptPubKey", "", {
|
||||||
{
|
|
||||||
{RPCResult::Type::STR_HEX, "asm", ""},
|
{RPCResult::Type::STR_HEX, "asm", ""},
|
||||||
{RPCResult::Type::STR_HEX, "hex", ""},
|
{RPCResult::Type::STR_HEX, "hex", ""},
|
||||||
{RPCResult::Type::NUM, "reqSigs", "Number of required signatures"},
|
{RPCResult::Type::NUM, "reqSigs", "Number of required signatures"},
|
||||||
{RPCResult::Type::STR_HEX, "type", "The type, eg pubkeyhash"},
|
{RPCResult::Type::STR_HEX, "type", "The type, eg pubkeyhash"},
|
||||||
{RPCResult::Type::ARR, "addresses", "array of bitcoin addresses",
|
{RPCResult::Type::ARR, "addresses", "array of bitcoin addresses", {{RPCResult::Type::STR, "address", "bitcoin address"}}},
|
||||||
{{RPCResult::Type::STR, "address", "bitcoin address"}}},
|
|
||||||
}},
|
}},
|
||||||
{RPCResult::Type::BOOL, "coinbase", "Coinbase or not"},
|
{RPCResult::Type::BOOL, "coinbase", "Coinbase or not"},
|
||||||
}},
|
}},
|
||||||
|
},
|
||||||
RPCExamples{
|
RPCExamples{
|
||||||
"\nGet unspent transactions\n"
|
"\nGet unspent transactions\n"
|
||||||
+ HelpExampleCli("listunspent", "") +
|
+ HelpExampleCli("listunspent", "") +
|
||||||
@@ -2152,25 +2151,29 @@ static RPCHelpMan scantxoutset()
|
|||||||
"For more information on output descriptors, see the documentation in the doc/descriptors.md file.\n",
|
"For more information on output descriptors, see the documentation in the doc/descriptors.md file.\n",
|
||||||
{
|
{
|
||||||
{"action", RPCArg::Type::STR, RPCArg::Optional::NO, "The action to execute\n"
|
{"action", RPCArg::Type::STR, RPCArg::Optional::NO, "The action to execute\n"
|
||||||
" \"start\" for starting a scan\n"
|
"\"start\" for starting a scan\n"
|
||||||
" \"abort\" for aborting the current scan (returns true when abort was successful)\n"
|
"\"abort\" for aborting the current scan (returns true when abort was successful)\n"
|
||||||
" \"status\" for progress report (in %) of the current scan"},
|
"\"status\" for progress report (in %) of the current scan"},
|
||||||
{"scanobjects", RPCArg::Type::ARR, RPCArg::Optional::OMITTED, "Array of scan objects. Required for \"start\" action\n"
|
{"scanobjects", RPCArg::Type::ARR, RPCArg::Optional::OMITTED, "Array of scan objects. Required for \"start\" action\n"
|
||||||
" Every scan object is either a string descriptor or an object:",
|
"Every scan object is either a string descriptor or an object:",
|
||||||
{
|
{
|
||||||
{"descriptor", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "An output descriptor"},
|
{"descriptor", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "An output descriptor"},
|
||||||
{"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "An object with output descriptor and metadata",
|
{"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "An object with output descriptor and metadata",
|
||||||
{
|
{
|
||||||
{"desc", RPCArg::Type::STR, RPCArg::Optional::NO, "An output descriptor"},
|
{"desc", RPCArg::Type::STR, RPCArg::Optional::NO, "An output descriptor"},
|
||||||
{"range", RPCArg::Type::RANGE, /* default */ "1000", "The range of HD chain indexes to explore (either end or [begin,end])"},
|
{"range", RPCArg::Type::RANGE, /* default */ "1000", "The range of HD chain indexes to explore (either end or [begin,end])"},
|
||||||
},
|
}},
|
||||||
},
|
|
||||||
},
|
},
|
||||||
"[scanobjects,...]"},
|
"[scanobjects,...]"},
|
||||||
},
|
},
|
||||||
RPCResult{
|
|
||||||
RPCResult::Type::OBJ, "", "",
|
|
||||||
{
|
{
|
||||||
|
RPCResult{"When action=='abort'", RPCResult::Type::BOOL, "", ""},
|
||||||
|
RPCResult{"When action=='status' and no scan is in progress", RPCResult::Type::NONE, "", ""},
|
||||||
|
RPCResult{"When action=='status' and scan is in progress", RPCResult::Type::OBJ, "", "",
|
||||||
|
{
|
||||||
|
{RPCResult::Type::NUM, "progress", "The scan progress"},
|
||||||
|
}},
|
||||||
|
RPCResult{"When action=='start'", RPCResult::Type::OBJ, "", "", {
|
||||||
{RPCResult::Type::BOOL, "success", "Whether the scan was completed"},
|
{RPCResult::Type::BOOL, "success", "Whether the scan was completed"},
|
||||||
{RPCResult::Type::NUM, "txouts", "The number of unspent transaction outputs scanned"},
|
{RPCResult::Type::NUM, "txouts", "The number of unspent transaction outputs scanned"},
|
||||||
{RPCResult::Type::NUM, "height", "The current block height (index)"},
|
{RPCResult::Type::NUM, "height", "The current block height (index)"},
|
||||||
@@ -2189,6 +2192,7 @@ static RPCHelpMan scantxoutset()
|
|||||||
}},
|
}},
|
||||||
{RPCResult::Type::STR_AMOUNT, "total_amount", "The total amount of all found unspent outputs in " + CURRENCY_UNIT},
|
{RPCResult::Type::STR_AMOUNT, "total_amount", "The total amount of all found unspent outputs in " + CURRENCY_UNIT},
|
||||||
}},
|
}},
|
||||||
|
},
|
||||||
RPCExamples{""},
|
RPCExamples{""},
|
||||||
[&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue
|
[&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue
|
||||||
{
|
{
|
||||||
|
|||||||
+12
-8
@@ -519,19 +519,19 @@ static RPCHelpMan getblocktemplate()
|
|||||||
{"capabilities", RPCArg::Type::ARR, /* treat as named arg */ RPCArg::Optional::OMITTED_NAMED_ARG, "A list of strings",
|
{"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'"},
|
{"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",
|
{"rules", RPCArg::Type::ARR, RPCArg::Optional::NO, "A list of strings",
|
||||||
{
|
{
|
||||||
{"segwit", RPCArg::Type::STR, RPCArg::Optional::NO, "(literal) indicates client side segwit support"},
|
{"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, "other client side supported softfork deployment"},
|
||||||
},
|
}},
|
||||||
},
|
|
||||||
},
|
},
|
||||||
"\"template_request\""},
|
"\"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{"Otherwise", RPCResult::Type::OBJ, "", "",
|
||||||
{
|
{
|
||||||
{RPCResult::Type::NUM, "version", "The preferred block version"},
|
{RPCResult::Type::NUM, "version", "The preferred block version"},
|
||||||
{RPCResult::Type::ARR, "rules", "specific block rules that are to be enforced",
|
{RPCResult::Type::ARR, "rules", "specific block rules that are to be enforced",
|
||||||
@@ -579,8 +579,9 @@ static RPCHelpMan getblocktemplate()
|
|||||||
{RPCResult::Type::NUM_TIME, "curtime", "current timestamp in " + UNIX_EPOCH_TIME},
|
{RPCResult::Type::NUM_TIME, "curtime", "current timestamp in " + UNIX_EPOCH_TIME},
|
||||||
{RPCResult::Type::STR, "bits", "compressed target of next block"},
|
{RPCResult::Type::STR, "bits", "compressed target of next block"},
|
||||||
{RPCResult::Type::NUM, "height", "The height of the 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::STR, "default_witness_commitment", /* optional */ true, "a valid witness commitment for the unmodified block template"},
|
||||||
}},
|
}},
|
||||||
|
},
|
||||||
RPCExamples{
|
RPCExamples{
|
||||||
HelpExampleCli("getblocktemplate", "'{\"rules\": [\"segwit\"]}'")
|
HelpExampleCli("getblocktemplate", "'{\"rules\": [\"segwit\"]}'")
|
||||||
+ HelpExampleRpc("getblocktemplate", "{\"rules\": [\"segwit\"]}")
|
+ HelpExampleRpc("getblocktemplate", "{\"rules\": [\"segwit\"]}")
|
||||||
@@ -946,7 +947,10 @@ static RPCHelpMan submitblock()
|
|||||||
{"hexdata", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "the hex-encoded block data to submit"},
|
{"hexdata", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "the hex-encoded block data to submit"},
|
||||||
{"dummy", RPCArg::Type::STR, /* default */ "ignored", "dummy value, for compatibility with BIP22. This value is ignored."},
|
{"dummy", RPCArg::Type::STR, /* default */ "ignored", "dummy value, for compatibility with BIP22. This value is ignored."},
|
||||||
},
|
},
|
||||||
RPCResult{RPCResult::Type::NONE, "", "Returns JSON Null when valid, a string according to BIP22 otherwise"},
|
{
|
||||||
|
RPCResult{"If the block was accepted", RPCResult::Type::NONE, "", ""},
|
||||||
|
RPCResult{"Otherwise", RPCResult::Type::STR, "", "According to BIP22"},
|
||||||
|
},
|
||||||
RPCExamples{
|
RPCExamples{
|
||||||
HelpExampleCli("submitblock", "\"mydata\"")
|
HelpExampleCli("submitblock", "\"mydata\"")
|
||||||
+ HelpExampleRpc("submitblock", "\"mydata\"")
|
+ HelpExampleRpc("submitblock", "\"mydata\"")
|
||||||
|
|||||||
Reference in new issue
Block a user