From 3d7ab7ecb7dfcdfb8aaa45869388887b948841c8 Mon Sep 17 00:00:00 2001 From: Fabian Jahr Date: Fri, 12 Jul 2024 16:57:51 +0100 Subject: [PATCH] rpc, test: Address feedback from #29668 --- src/rpc/blockchain.cpp | 4 ++-- src/rpc/blockchain.h | 3 +++ src/test/blockchain_tests.cpp | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index a883570f94b..d7e316dd828 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -864,7 +864,7 @@ std::optional GetPruneHeight(const BlockManager& blockman, const CChain& ch if (!first_block || !chain_tip) return std::nullopt; // If the chain tip is pruned, everything is pruned. - if (!((chain_tip->nStatus & BLOCK_HAVE_MASK) == BLOCK_HAVE_MASK)) return chain_tip->nHeight; + if ((chain_tip->nStatus & BLOCK_HAVE_MASK) != BLOCK_HAVE_MASK) return chain_tip->nHeight; const auto& first_unpruned{blockman.GetFirstBlock(*chain_tip, /*status_mask=*/BLOCK_HAVE_MASK, first_block)}; if (&first_unpruned == first_block) { @@ -1354,7 +1354,7 @@ RPCHelpMan getblockchaininfo() {RPCResult::Type::STR_HEX, "chainwork", "total amount of work in active chain, in hexadecimal"}, {RPCResult::Type::NUM, "size_on_disk", "the estimated size of the block and undo files on disk"}, {RPCResult::Type::BOOL, "pruned", "if the blocks are subject to pruning"}, - {RPCResult::Type::NUM, "pruneheight", /*optional=*/true, "height of the last block pruned, plus one (only present if pruning is enabled)"}, + {RPCResult::Type::NUM, "pruneheight", /*optional=*/true, "the first block unpruned, all previous blocks were pruned (only present if pruning is enabled)"}, {RPCResult::Type::BOOL, "automatic_pruning", /*optional=*/true, "whether automatic pruning is enabled (only present if pruning is enabled)"}, {RPCResult::Type::NUM, "prune_target_size", /*optional=*/true, "the target size used by pruning (only present if automatic pruning is enabled)"}, {RPCResult::Type::STR_HEX, "signet_challenge", /*optional=*/true, "the block challenge (aka. block script), in hexadecimal (only present if the current network is a signet)"}, diff --git a/src/rpc/blockchain.h b/src/rpc/blockchain.h index d14a43b22d0..efb06ac2d29 100644 --- a/src/rpc/blockchain.h +++ b/src/rpc/blockchain.h @@ -9,15 +9,18 @@ #include #include #include +#include #include #include #include #include +#include #include class CBlock; class CBlockIndex; +class CChain; class Chainstate; class UniValue; namespace node { diff --git a/src/test/blockchain_tests.cpp b/src/test/blockchain_tests.cpp index c6b35e32d8a..c160f4e24d1 100644 --- a/src/test/blockchain_tests.cpp +++ b/src/test/blockchain_tests.cpp @@ -80,7 +80,7 @@ BOOST_AUTO_TEST_CASE(get_difficulty_for_very_high_target) //! Prune chain from height down to genesis block and check that //! GetPruneHeight returns the correct value -static void CheckGetPruneHeight(node::BlockManager& blockman, CChain& chain, int height) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) +static void CheckGetPruneHeight(const node::BlockManager& blockman, const CChain& chain, int height) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) { AssertLockHeld(::cs_main); @@ -98,8 +98,8 @@ static void CheckGetPruneHeight(node::BlockManager& blockman, CChain& chain, int BOOST_FIXTURE_TEST_CASE(get_prune_height, TestChain100Setup) { LOCK(::cs_main); - auto& chain = m_node.chainman->ActiveChain(); - auto& blockman = m_node.chainman->m_blockman; + const auto& chain = m_node.chainman->ActiveChain(); + const auto& blockman = m_node.chainman->m_blockman; // Fresh chain of 100 blocks without any pruned blocks, so std::nullopt should be returned BOOST_CHECK(!GetPruneHeight(blockman, chain).has_value());