mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-10 14:08:40 +01:00
Merge bitcoin/bitcoin#26207: rest: add verbose and mempool_sequence query params for mempool/contents
1ff5d61dfddoc: add mempool/contents rest verbose and mempool_sequence args (Andrew Toth)52a31dccc9tests: mempool/contents verbose and mempool_sequence query params tests (Andrew Toth)a518fff0f2rest: add verbose and mempool_sequence query params for mempool/contents (Andrew Toth) Pull request description: The verbose mempool json response can get very large. This adds an option to return the non-verbose response of just the txids. It is identical to the rpc response so the diff here is minimal. This also adds the mempool_sequence parameter for rpc consistency. Verbose defaults to true to remain backwards compatible. It uses query parameters to be compatible with the efforts in https://github.com/bitcoin/bitcoin/issues/25752. ACKs for top commit: achow101: ACK1ff5d61dfdstickies-v: re-ACK [1ff5d61](1ff5d61dfd) pablomartin4btc: tested ACK1ff5d61dfd. Tree-SHA512: 1bf08a7ffde2e7db14dc746e421feedf17d84c4b3f1141e79e36feb6014811dfde80e1d8dbc476c15ff705de2d3c967b3081dcd80536d76b7edf888f1a92e9d1
This commit is contained in:
15
src/rest.cpp
15
src/rest.cpp
@@ -652,7 +652,20 @@ static bool rest_mempool(const std::any& context, HTTPRequest* req, const std::s
|
||||
case RESTResponseFormat::JSON: {
|
||||
std::string str_json;
|
||||
if (param == "contents") {
|
||||
str_json = MempoolToJSON(*mempool, true).write() + "\n";
|
||||
const std::string raw_verbose{req->GetQueryParameter("verbose").value_or("true")};
|
||||
if (raw_verbose != "true" && raw_verbose != "false") {
|
||||
return RESTERR(req, HTTP_BAD_REQUEST, "The \"verbose\" query parameter must be either \"true\" or \"false\".");
|
||||
}
|
||||
const std::string raw_mempool_sequence{req->GetQueryParameter("mempool_sequence").value_or("false")};
|
||||
if (raw_mempool_sequence != "true" && raw_mempool_sequence != "false") {
|
||||
return RESTERR(req, HTTP_BAD_REQUEST, "The \"mempool_sequence\" query parameter must be either \"true\" or \"false\".");
|
||||
}
|
||||
const bool verbose{raw_verbose == "true"};
|
||||
const bool mempool_sequence{raw_mempool_sequence == "true"};
|
||||
if (verbose && mempool_sequence) {
|
||||
return RESTERR(req, HTTP_BAD_REQUEST, "Verbose results cannot contain mempool sequence values. (hint: set \"verbose=false\")");
|
||||
}
|
||||
str_json = MempoolToJSON(*mempool, verbose, mempool_sequence).write() + "\n";
|
||||
} else {
|
||||
str_json = MempoolInfoToJSON(*mempool).write() + "\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user