mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-10-11 12:03:04 +02:00
Merge bitcoin/bitcoin#26207: rest: add verbose and mempool_sequence query params for mempool/contents
1ff5d61dfd
doc: add mempool/contents rest verbose and mempool_sequence args (Andrew Toth)52a31dccc9
tests: mempool/contents verbose and mempool_sequence query params tests (Andrew Toth)a518fff0f2
rest: 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: ACK1ff5d61dfd
stickies-v: re-ACK [1ff5d61
](1ff5d61dfd
) pablomartin4btc: tested ACK1ff5d61dfd
. Tree-SHA512: 1bf08a7ffde2e7db14dc746e421feedf17d84c4b3f1141e79e36feb6014811dfde80e1d8dbc476c15ff705de2d3c967b3081dcd80536d76b7edf888f1a92e9d1
This commit is contained in:
@@ -347,6 +347,34 @@ class RESTTest (BitcoinTestFramework):
|
||||
assert_equal(json_obj[tx]['spentby'], txs[i + 1:i + 2])
|
||||
assert_equal(json_obj[tx]['depends'], txs[i - 1:i])
|
||||
|
||||
# Check the mempool response for explicit parameters
|
||||
json_obj = self.test_rest_request("/mempool/contents", query_params={"verbose": "true", "mempool_sequence": "false"})
|
||||
assert_equal(json_obj, raw_mempool_verbose)
|
||||
|
||||
# Check the mempool response for not verbose
|
||||
json_obj = self.test_rest_request("/mempool/contents", query_params={"verbose": "false"})
|
||||
raw_mempool = self.nodes[0].getrawmempool(verbose=False)
|
||||
|
||||
assert_equal(json_obj, raw_mempool)
|
||||
|
||||
# Check the mempool response for sequence
|
||||
json_obj = self.test_rest_request("/mempool/contents", query_params={"verbose": "false", "mempool_sequence": "true"})
|
||||
raw_mempool = self.nodes[0].getrawmempool(verbose=False, mempool_sequence=True)
|
||||
|
||||
assert_equal(json_obj, raw_mempool)
|
||||
|
||||
# Check for error response if verbose=true and mempool_sequence=true
|
||||
resp = self.test_rest_request("/mempool/contents", ret_type=RetType.OBJ, status=400, query_params={"verbose": "true", "mempool_sequence": "true"})
|
||||
assert_equal(resp.read().decode('utf-8').strip(), 'Verbose results cannot contain mempool sequence values. (hint: set "verbose=false")')
|
||||
|
||||
# Check for error response if verbose is not "true" or "false"
|
||||
resp = self.test_rest_request("/mempool/contents", ret_type=RetType.OBJ, status=400, query_params={"verbose": "TRUE"})
|
||||
assert_equal(resp.read().decode('utf-8').strip(), 'The "verbose" query parameter must be either "true" or "false".')
|
||||
|
||||
# Check for error response if mempool_sequence is not "true" or "false"
|
||||
resp = self.test_rest_request("/mempool/contents", ret_type=RetType.OBJ, status=400, query_params={"verbose": "false", "mempool_sequence": "TRUE"})
|
||||
assert_equal(resp.read().decode('utf-8').strip(), 'The "mempool_sequence" query parameter must be either "true" or "false".')
|
||||
|
||||
# Now mine the transactions
|
||||
newblockhash = self.generate(self.nodes[1], 1)
|
||||
|
||||
|
Reference in New Issue
Block a user