diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index 32fcc78156..1070e8f68f 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -3357,6 +3357,8 @@ static RPCHelpMan loadtxoutset() const std::vector RPCHelpForChainstate{ {RPCResult::Type::NUM, "blocks", "number of blocks in this chainstate"}, {RPCResult::Type::STR_HEX, "bestblockhash", "blockhash of the tip"}, + {RPCResult::Type::STR_HEX, "bits", "nBits: compact representation of the block difficulty target"}, + {RPCResult::Type::STR_HEX, "target", "The difficulty target"}, {RPCResult::Type::NUM, "difficulty", "difficulty of the tip"}, {RPCResult::Type::NUM, "verificationprogress", "progress towards the network tip"}, {RPCResult::Type::STR_HEX, "snapshot_blockhash", /*optional=*/true, "the base block of the snapshot this chainstate is based on, if any"}, @@ -3399,6 +3401,8 @@ return RPCHelpMan{ data.pushKV("blocks", (int)chain.Height()); data.pushKV("bestblockhash", tip->GetBlockHash().GetHex()); + data.pushKV("bits", strprintf("%08x", tip->nBits)); + data.pushKV("target", GetTarget(*tip, chainman.GetConsensus().powLimit).GetHex()); data.pushKV("difficulty", GetDifficulty(*tip)); data.pushKV("verificationprogress", chainman.GuessVerificationProgress(tip)); data.pushKV("coins_db_cache_bytes", cs.m_coinsdb_cache_size_bytes); diff --git a/test/functional/feature_assumeutxo.py b/test/functional/feature_assumeutxo.py index 8addb7e238..2d4e33e5d8 100755 --- a/test/functional/feature_assumeutxo.py +++ b/test/functional/feature_assumeutxo.py @@ -38,6 +38,12 @@ from test_framework.wallet import ( getnewdestination, MiniWallet, ) +from test_framework.blocktools import ( + REGTEST_N_BITS, + REGTEST_TARGET, + nbits_str, + target_str, +) START_HEIGHT = 199 SNAPSHOT_BASE_HEIGHT = 299 @@ -229,6 +235,12 @@ class AssumeutxoTest(BitcoinTestFramework): assert_equal(normal['blocks'], START_HEIGHT + 99) assert_equal(snapshot['blocks'], SNAPSHOT_BASE_HEIGHT) + # Both states should have the same nBits and target + assert_equal(normal['bits'], nbits_str(REGTEST_N_BITS)) + assert_equal(normal['bits'], snapshot['bits']) + assert_equal(normal['target'], target_str(REGTEST_TARGET)) + assert_equal(normal['target'], snapshot['target']) + # Now lets sync the nodes and wait for the background validation to finish self.connect_nodes(0, 3) self.sync_blocks(nodes=(n0, n3))