From 9169a50d529efeae465e55947978f5e470d7f7d0 Mon Sep 17 00:00:00 2001 From: glozow Date: Thu, 14 Aug 2025 13:07:55 -0400 Subject: [PATCH] [rpc] expose blockmintxfee via getmininginfo --- src/rpc/mining.cpp | 4 ++++ test/functional/mining_basic.py | 1 + 2 files changed, 5 insertions(+) diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index c66b6c1984a..e0e355693ef 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -429,6 +429,7 @@ static RPCHelpMan getmininginfo() {RPCResult::Type::STR_HEX, "target", "The current target"}, {RPCResult::Type::NUM, "networkhashps", "The network hashes per second"}, {RPCResult::Type::NUM, "pooledtx", "The size of the mempool"}, + {RPCResult::Type::STR_AMOUNT, "blockmintxfee", "Minimum feerate of packages selected for block inclusion in " + CURRENCY_UNIT + "/kvB"}, {RPCResult::Type::STR, "chain", "current network name (" LIST_CHAIN_NAMES ")"}, {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)"}, {RPCResult::Type::OBJ, "next", "The next block", @@ -469,6 +470,9 @@ static RPCHelpMan getmininginfo() obj.pushKV("target", GetTarget(tip, chainman.GetConsensus().powLimit).GetHex()); obj.pushKV("networkhashps", getnetworkhashps().HandleRequest(request)); obj.pushKV("pooledtx", (uint64_t)mempool.size()); + BlockAssembler::Options assembler_options; + ApplyArgsManOptions(*node.args, assembler_options); + obj.pushKV("blockmintxfee", ValueFromAmount(assembler_options.blockMinFeeRate.GetFeePerK())); obj.pushKV("chain", chainman.GetParams().GetChainTypeString()); UniValue next(UniValue::VOBJ); diff --git a/test/functional/mining_basic.py b/test/functional/mining_basic.py index 4683919d1cc..4f104359d04 100755 --- a/test/functional/mining_basic.py +++ b/test/functional/mining_basic.py @@ -153,6 +153,7 @@ class MiningTest(BitcoinTestFramework): self.log.info(f"-> Test {blockmintxfee_parameter} ({blockmintxfee_sat_kvb} sat/kvB)...") self.restart_node(0, extra_args=[blockmintxfee_parameter, '-minrelaytxfee=0', '-persistmempool=0']) self.wallet.rescan_utxos() # to avoid spending outputs of txs that are not in mempool anymore after restart + assert_equal(node.getmininginfo()['blockmintxfee'], blockmintxfee_btc_kvb) # submit one tx with exactly the blockmintxfee rate, and one slightly below tx_with_min_feerate = self.wallet.send_self_transfer(from_node=node, fee_rate=blockmintxfee_btc_kvb, confirmed_only=True)