expose CBlockIndex::nTx in getblock(header)
This commit is contained in:
parent
a607d23ae8
commit
86edf4a2a5
3 changed files with 12 additions and 0 deletions
|
@ -95,6 +95,7 @@ UniValue blockheaderToJSON(const CBlockIndex* blockindex)
|
||||||
result.pushKV("bits", strprintf("%08x", blockindex->nBits));
|
result.pushKV("bits", strprintf("%08x", blockindex->nBits));
|
||||||
result.pushKV("difficulty", GetDifficulty(blockindex));
|
result.pushKV("difficulty", GetDifficulty(blockindex));
|
||||||
result.pushKV("chainwork", blockindex->nChainWork.GetHex());
|
result.pushKV("chainwork", blockindex->nChainWork.GetHex());
|
||||||
|
result.pushKV("nTx", (uint64_t)blockindex->nTx);
|
||||||
|
|
||||||
if (blockindex->pprev)
|
if (blockindex->pprev)
|
||||||
result.pushKV("previousblockhash", blockindex->pprev->GetBlockHash().GetHex());
|
result.pushKV("previousblockhash", blockindex->pprev->GetBlockHash().GetHex());
|
||||||
|
@ -140,6 +141,7 @@ UniValue blockToJSON(const CBlock& block, const CBlockIndex* blockindex, bool tx
|
||||||
result.pushKV("bits", strprintf("%08x", block.nBits));
|
result.pushKV("bits", strprintf("%08x", block.nBits));
|
||||||
result.pushKV("difficulty", GetDifficulty(blockindex));
|
result.pushKV("difficulty", GetDifficulty(blockindex));
|
||||||
result.pushKV("chainwork", blockindex->nChainWork.GetHex());
|
result.pushKV("chainwork", blockindex->nChainWork.GetHex());
|
||||||
|
result.pushKV("nTx", (uint64_t)blockindex->nTx);
|
||||||
|
|
||||||
if (blockindex->pprev)
|
if (blockindex->pprev)
|
||||||
result.pushKV("previousblockhash", blockindex->pprev->GetBlockHash().GetHex());
|
result.pushKV("previousblockhash", blockindex->pprev->GetBlockHash().GetHex());
|
||||||
|
@ -694,6 +696,7 @@ static UniValue getblockheader(const JSONRPCRequest& request)
|
||||||
" \"bits\" : \"1d00ffff\", (string) The bits\n"
|
" \"bits\" : \"1d00ffff\", (string) The bits\n"
|
||||||
" \"difficulty\" : x.xxx, (numeric) The difficulty\n"
|
" \"difficulty\" : x.xxx, (numeric) The difficulty\n"
|
||||||
" \"chainwork\" : \"0000...1f3\" (string) Expected number of hashes required to produce the current chain (in hex)\n"
|
" \"chainwork\" : \"0000...1f3\" (string) Expected number of hashes required to produce the current chain (in hex)\n"
|
||||||
|
" \"nTx\" : n, (numeric) The number of transactions in the block.\n"
|
||||||
" \"previousblockhash\" : \"hash\", (string) The hash of the previous block\n"
|
" \"previousblockhash\" : \"hash\", (string) The hash of the previous block\n"
|
||||||
" \"nextblockhash\" : \"hash\", (string) The hash of the next block\n"
|
" \"nextblockhash\" : \"hash\", (string) The hash of the next block\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
|
@ -782,6 +785,7 @@ static UniValue getblock(const JSONRPCRequest& request)
|
||||||
" \"bits\" : \"1d00ffff\", (string) The bits\n"
|
" \"bits\" : \"1d00ffff\", (string) The bits\n"
|
||||||
" \"difficulty\" : x.xxx, (numeric) The difficulty\n"
|
" \"difficulty\" : x.xxx, (numeric) The difficulty\n"
|
||||||
" \"chainwork\" : \"xxxx\", (string) Expected number of hashes required to produce the chain up to this block (in hex)\n"
|
" \"chainwork\" : \"xxxx\", (string) Expected number of hashes required to produce the chain up to this block (in hex)\n"
|
||||||
|
" \"nTx\" : n, (numeric) The number of transactions in the block.\n"
|
||||||
" \"previousblockhash\" : \"hash\", (string) The hash of the previous block\n"
|
" \"previousblockhash\" : \"hash\", (string) The hash of the previous block\n"
|
||||||
" \"nextblockhash\" : \"hash\" (string) The hash of the next block\n"
|
" \"nextblockhash\" : \"hash\" (string) The hash of the next block\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
|
|
|
@ -260,10 +260,17 @@ class PruneTest(BitcoinTestFramework):
|
||||||
# should not prune because chain tip of node 3 (995) < PruneAfterHeight (1000)
|
# should not prune because chain tip of node 3 (995) < PruneAfterHeight (1000)
|
||||||
assert_raises_rpc_error(-1, "Blockchain is too short for pruning", node.pruneblockchain, height(500))
|
assert_raises_rpc_error(-1, "Blockchain is too short for pruning", node.pruneblockchain, height(500))
|
||||||
|
|
||||||
|
# Save block transaction count before pruning, assert value
|
||||||
|
block1_details = node.getblock(node.getblockhash(1))
|
||||||
|
assert_equal(block1_details["nTx"], len(block1_details["tx"]))
|
||||||
|
|
||||||
# mine 6 blocks so we are at height 1001 (i.e., above PruneAfterHeight)
|
# mine 6 blocks so we are at height 1001 (i.e., above PruneAfterHeight)
|
||||||
node.generate(6)
|
node.generate(6)
|
||||||
assert_equal(node.getblockchaininfo()["blocks"], 1001)
|
assert_equal(node.getblockchaininfo()["blocks"], 1001)
|
||||||
|
|
||||||
|
# Pruned block should still know the number of transactions
|
||||||
|
assert_equal(node.getblockheader(node.getblockhash(1))["nTx"], block1_details["nTx"])
|
||||||
|
|
||||||
# negative heights should raise an exception
|
# negative heights should raise an exception
|
||||||
assert_raises_rpc_error(-8, "Negative", node.pruneblockchain, -10)
|
assert_raises_rpc_error(-8, "Negative", node.pruneblockchain, -10)
|
||||||
|
|
||||||
|
|
|
@ -217,6 +217,7 @@ class BlockchainTest(BitcoinTestFramework):
|
||||||
assert_equal(header['confirmations'], 1)
|
assert_equal(header['confirmations'], 1)
|
||||||
assert_equal(header['previousblockhash'], secondbesthash)
|
assert_equal(header['previousblockhash'], secondbesthash)
|
||||||
assert_is_hex_string(header['chainwork'])
|
assert_is_hex_string(header['chainwork'])
|
||||||
|
assert_equal(header['nTx'], 1)
|
||||||
assert_is_hash_string(header['hash'])
|
assert_is_hash_string(header['hash'])
|
||||||
assert_is_hash_string(header['previousblockhash'])
|
assert_is_hash_string(header['previousblockhash'])
|
||||||
assert_is_hash_string(header['merkleroot'])
|
assert_is_hash_string(header['merkleroot'])
|
||||||
|
|
Loading…
Reference in a new issue