refactor: have mining files include what they use
What changed, and why it matters
This commit is a pure code cleanup: it adjusts which header files are included in mining-related source files so each file explicitly includes only what it actually uses. There are no functional code changes, no bug fixes, and no security-relevant behavior changes.
No security action needed. Treat as normal maintenance/refactoring commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit is an ‘include what you use’ (IWYU) refactor across 27 files. It adds, removes, and reorders #include directives and forward declarations in mining-related headers and implementation files. The diff shows no changes to logic, data structures, algorithms, or APIs. It is purely a build hygiene and compilation-dependency cleanup.
Changed components
src/node/miner.cppsrc/node/miner.hsrc/node/mini_miner.hsrc/interfaces/mining.hsrc/rpc/mining.hsrc/init.cppsrc/node/interfaces.cpptest/bench mining filestest/fuzz mining filesInspect captured patch +388 / −127
diff --git a/src/bench/block_assemble.cpp b/src/bench/block_assemble.cpp
index 9bc15922..be039174 100644
--- a/src/bench/block_assemble.cpp
+++ b/src/bench/block_assemble.cpp
@@ -4,7 +4,7 @@
#include <bench/bench.h>
#include <consensus/consensus.h>
-#include <node/miner.h>
+#include <node/mining_types.h>
#include <primitives/transaction.h>
#include <random.h>
#include <script/script.h>
@@ -18,6 +18,7 @@
#include <cassert>
#include <cstddef>
#include <memory>
+#include <string>
#include <vector>
using node::BlockCreateOptions;
diff --git a/src/bench/connectblock.cpp b/src/bench/connectblock.cpp
index ba2d9048..0c7470b5 100644
--- a/src/bench/connectblock.cpp
+++ b/src/bench/connectblock.cpp
@@ -4,14 +4,27 @@
#include <addresstype.h>
#include <bench/bench.h>
-#include <interfaces/chain.h>
-#include <kernel/cs_main.h>
-#include <script/interpreter.h>
+#include <chain.h>
+#include <coins.h>
+#include <consensus/amount.h>
+#include <consensus/validation.h>
+#include <key.h>
+#include <node/blockstorage.h>
+#include <policy/feerate.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <pubkey.h>
+#include <script/script.h>
#include <sync.h>
#include <test/util/setup_common.h>
#include <validation.h>
#include <cassert>
+#include <cstddef>
+#include <memory>
+#include <optional>
+#include <string>
+#include <utility>
#include <vector>
/*
diff --git a/src/init.cpp b/src/init.cpp
index aab7a52e..ec270ffd 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -9,6 +9,7 @@
#include <kernel/checks.h>
+#include <addrdb.h>
#include <addrman.h>
#include <banman.h>
#include <blockfilter.h>
@@ -18,13 +19,15 @@
#include <chainparamsbase.h>
#include <clientversion.h>
#include <common/args.h>
+#include <common/messages.h>
#include <common/system.h>
-#include <consensus/amount.h>
-#include <consensus/consensus.h>
-#include <deploymentstatus.h>
-#include <hash.h>
+#include <compat/compat.h>
+#include <consensus/params.h>
+#include <crypto/hex_base.h>
+#include <dbwrapper.h>
#include <httprpc.h>
#include <httpserver.h>
+#include <index/base.h>
#include <index/blockfilterindex.h>
#include <index/coinstatsindex.h>
#include <index/txindex.h>
@@ -36,14 +39,18 @@
#include <interfaces/mining.h>
#include <interfaces/node.h>
#include <ipc/exception.h>
+#include <kernel/blockmanager_opts.h>
#include <kernel/caches.h>
+#include <kernel/chainstatemanager_opts.h>
#include <kernel/context.h>
+#include <kernel/notifications_interface.h>
#include <key.h>
#include <logging.h>
#include <mapport.h>
#include <net.h>
#include <net_permissions.h>
#include <net_processing.h>
+#include <netaddress.h>
#include <netbase.h>
#include <netgroup.h>
#include <node/blockmanager_args.h>
@@ -57,8 +64,8 @@
#include <node/mempool_args.h>
#include <node/mempool_persist.h>
#include <node/mempool_persist_args.h>
-#include <node/miner.h>
#include <node/mining_args.h>
+#include <node/mining_types.h>
#include <node/peerman_args.h>
#include <policy/feerate.h>
#include <policy/fees/block_policy_estimator.h>
@@ -66,19 +73,20 @@
#include <policy/policy.h>
#include <policy/settings.h>
#include <protocol.h>
-#include <rpc/blockchain.h>
+#include <random.h>
#include <rpc/register.h>
#include <rpc/server.h>
#include <rpc/util.h>
#include <scheduler.h>
#include <script/sigcache.h>
#include <sync.h>
+#include <tinyformat.h>
#include <torcontrol.h>
-#include <txdb.h>
+#include <txgraph.h>
#include <txmempool.h>
+#include <uint256.h>
#include <util/asmap.h>
#include <util/batchpriority.h>
-#include <util/byte_units.h>
#include <util/chaintype.h>
#include <util/check.h>
#include <util/fs.h>
@@ -98,21 +106,31 @@
#include <walletinitinterface.h>
#include <algorithm>
+#include <any>
#include <cerrno>
#include <condition_variable>
#include <cstddef>
#include <cstdint>
-#include <cstdio>
+#include <exception>
#include <fstream>
#include <functional>
+#include <initializer_list>
+#include <list>
+#include <memory>
+#include <new>
+#include <optional>
#include <set>
+#include <span>
#include <string>
+#include <system_error>
#include <thread>
+#include <tuple>
+#include <utility>
+#include <variant>
#include <vector>
#ifndef WIN32
#include <csignal>
-#include <sys/stat.h>
#endif
#ifdef ENABLE_ZMQ
diff --git a/src/interfaces/mining.h b/src/interfaces/mining.h
index 30dade3e..a95bc220 100644
--- a/src/interfaces/mining.h
+++ b/src/interfaces/mining.h
@@ -7,7 +7,6 @@
#include <consensus/amount.h>
#include <interfaces/types.h>
-#include <node/types.h>
#include <node/mining_types.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
@@ -17,6 +16,7 @@
#include <cstdint>
#include <memory>
#include <optional>
+#include <string>
#include <vector>
namespace node {
diff --git a/src/node/interfaces.cpp b/src/node/interfaces.cpp
index 5aa6e271..edb73628 100644
--- a/src/node/interfaces.cpp
+++ b/src/node/interfaces.cpp
@@ -2,16 +2,19 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <addrdb.h>
+#include <bitcoin-build-config.h> // IWYU pragma: keep
+
#include <banman.h>
#include <blockfilter.h>
#include <btcsignals.h>
#include <chain.h>
#include <chainparams.h>
+#include <coins.h>
#include <common/args.h>
+#include <common/settings.h>
+#include <consensus/amount.h>
#include <consensus/merkle.h>
#include <consensus/validation.h>
-#include <deploymentstatus.h>
#include <external_signer.h>
#include <httprpc.h>
#include <index/blockfilterindex.h>
@@ -22,24 +25,24 @@
#include <interfaces/node.h>
#include <interfaces/rpc.h>
#include <interfaces/types.h>
-#include <interfaces/wallet.h>
-#include <kernel/chain.h>
#include <kernel/context.h>
-#include <kernel/mempool_entry.h>
+#include <key.h>
#include <logging.h>
#include <mapport.h>
#include <net.h>
#include <net_processing.h>
+#include <net_types.h>
#include <netaddress.h>
#include <netbase.h>
#include <node/blockstorage.h>
#include <node/coin.h>
#include <node/context.h>
#include <node/interface_ui.h>
-#include <node/mini_miner.h>
+#include <node/kernel_notifications.h>
#include <node/miner.h>
+#include <node/mini_miner.h>
#include <node/mining_args.h>
-#include <node/kernel_notifications.h>
+#include <node/mining_types.h>
#include <node/transaction.h>
#include <node/types.h>
#include <node/warnings.h>
@@ -47,13 +50,12 @@
#include <policy/fees/block_policy_estimator.h>
#include <policy/policy.h>
#include <policy/rbf.h>
-#include <policy/settings.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <rpc/blockchain.h>
#include <rpc/protocol.h>
+#include <rpc/request.h>
#include <rpc/server.h>
-#include <support/allocators/secure.h>
#include <sync.h>
#include <txmempool.h>
#include <uint256.h>
@@ -62,17 +64,24 @@
#include <util/result.h>
#include <util/signalinterrupt.h>
#include <util/string.h>
+#include <util/time.h>
#include <util/translation.h>
#include <validation.h>
#include <validationinterface.h>
-#include <bitcoin-build-config.h> // IWYU pragma: keep
-
#include <any>
+#include <atomic>
+#include <condition_variable>
+#include <cstdint>
+#include <cstdlib>
+#include <functional>
+#include <map>
#include <memory>
#include <optional>
-#include <stdexcept>
+#include <string>
+#include <tuple>
#include <utility>
+#include <vector>
using interfaces::BlockRef;
using interfaces::BlockTemplate;
diff --git a/src/node/miner.cpp b/src/node/miner.cpp
index 97a316ce..5c0df502 100644
--- a/src/node/miner.cpp
+++ b/src/node/miner.cpp
@@ -7,30 +7,48 @@
#include <chain.h>
#include <chainparams.h>
-#include <coins.h>
#include <common/args.h>
#include <consensus/amount.h>
#include <consensus/consensus.h>
#include <consensus/merkle.h>
+#include <consensus/params.h>
#include <consensus/tx_verify.h>
#include <consensus/validation.h>
-#include <deploymentstatus.h>
-#include <node/context.h>
+#include <interfaces/types.h>
+#include <node/blockstorage.h>
#include <node/kernel_notifications.h>
#include <node/mining_args.h>
+#include <node/mining_types.h>
#include <policy/feerate.h>
#include <policy/policy.h>
#include <pow.h>
+#include <primitives/block.h>
#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
+#include <tinyformat.h>
+#include <txgraph.h>
+#include <txmempool.h>
+#include <uint256.h>
+#include <util/check.h>
+#include <util/feefrac.h>
#include <util/log.h>
-#include <util/moneystr.h>
+#include <util/result.h>
#include <util/signalinterrupt.h>
#include <util/time.h>
+#include <util/translation.h>
#include <validation.h>
+#include <versionbits.h>
#include <algorithm>
+#include <compare>
+#include <condition_variable>
+#include <cstddef>
+#include <functional>
#include <numeric>
+#include <span>
#include <stdexcept>
+#include <string>
#include <utility>
namespace node {
diff --git a/src/node/miner.h b/src/node/miner.h
index fcb5649f..14780833 100644
--- a/src/node/miner.h
+++ b/src/node/miner.h
@@ -6,32 +6,32 @@
#ifndef BITCOIN_NODE_MINER_H
#define BITCOIN_NODE_MINER_H
-#include <interfaces/types.h>
-#include <node/types.h>
+#include <consensus/amount.h>
#include <node/mining_types.h>
-#include <policy/policy.h>
#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <threadsafety.h>
#include <txmempool.h>
#include <util/feefrac.h>
+#include <util/time.h>
#include <cstdint>
#include <memory>
#include <optional>
+#include <vector>
-#include <boost/multi_index/identity.hpp>
-#include <boost/multi_index/indexed_by.hpp>
-#include <boost/multi_index/ordered_index.hpp>
-#include <boost/multi_index/tag.hpp>
-#include <boost/multi_index_container.hpp>
-
-class ArgsManager;
class CBlockIndex;
class CChainParams;
-class CScript;
class Chainstate;
class ChainstateManager;
-namespace Consensus { struct Params; };
+namespace Consensus {
+struct Params;
+} // namespace Consensus
+class uint256;
+namespace interfaces {
+struct BlockRef;
+} // namespace interfaces
using interfaces::BlockRef;
diff --git a/src/node/mini_miner.h b/src/node/mini_miner.h
index d07108cb..0634c53e 100644
--- a/src/node/mini_miner.h
+++ b/src/node/mini_miner.h
@@ -5,13 +5,12 @@
#ifndef BITCOIN_NODE_MINI_MINER_H
#define BITCOIN_NODE_MINI_MINER_H
+#include <attributes.h>
#include <consensus/amount.h>
#include <primitives/transaction.h>
-#include <uint256.h>
#include <cstdint>
#include <map>
-#include <memory>
#include <optional>
#include <set>
#include <vector>
diff --git a/src/rpc/mining.h b/src/rpc/mining.h
index 13627227..a6c243c2 100644
--- a/src/rpc/mining.h
+++ b/src/rpc/mining.h
@@ -5,6 +5,8 @@
#ifndef BITCOIN_RPC_MINING_H
#define BITCOIN_RPC_MINING_H
+#include <cstdint>
+
/** Default max iterations to try in RPC generatetodescriptor, generatetoaddress, and generateblock. */
static const uint64_t DEFAULT_MAX_TRIES{1000000};
diff --git a/src/test/blockfilter_index_tests.cpp b/src/test/blockfilter_index_tests.cpp
index a26f3411..3fb273df 100644
--- a/src/test/blockfilter_index_tests.cpp
+++ b/src/test/blockfilter_index_tests.cpp
@@ -4,22 +4,43 @@
#include <addresstype.h>
#include <blockfilter.h>
-#include <chainparams.h>
+#include <chain.h>
#include <consensus/merkle.h>
#include <consensus/validation.h>
+#include <index/base.h>
#include <index/blockfilterindex.h>
-#include <interfaces/mining.h>
#include <interfaces/chain.h>
-#include <node/miner.h>
+#include <interfaces/mining.h>
+#include <key.h>
+#include <node/blockstorage.h>
#include <pow.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/util/blockfilter.h>
-#include <test/util/common.h>
+#include <test/util/common.h> // IWYU pragma: keep
#include <test/util/setup_common.h>
-#include <util/byte_units.h>
+#include <tinyformat.h>
+#include <uint256.h>
+#include <util/check.h>
+#include <util/fs.h>
+#include <util/time.h>
#include <validation.h>
#include <boost/test/unit_test.hpp>
+
+#include <compare>
+#include <cstddef>
+#include <cstdint>
+#include <functional>
#include <future>
+#include <memory>
+#include <span>
+#include <string>
+#include <thread>
+#include <utility>
+#include <vector>
using node::BlockManager;
diff --git a/src/test/coinstatsindex_tests.cpp b/src/test/coinstatsindex_tests.cpp
index e4755ed6..42c01ca5 100644
--- a/src/test/coinstatsindex_tests.cpp
+++ b/src/test/coinstatsindex_tests.cpp
@@ -2,18 +2,31 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <chain.h>
#include <chainparams.h>
+#include <coins.h>
+#include <consensus/validation.h>
#include <index/coinstatsindex.h>
#include <interfaces/chain.h>
#include <kernel/coinstats.h>
#include <kernel/types.h>
+#include <key.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/util/setup_common.h>
#include <test/util/validation.h>
-#include <util/byte_units.h>
+#include <util/check.h>
#include <validation.h>
#include <boost/test/unit_test.hpp>
+#include <memory>
+#include <optional>
+#include <span>
+#include <vector>
+
using kernel::ChainstateRole;
BOOST_AUTO_TEST_SUITE(coinstatsindex_tests)
diff --git a/src/test/fuzz/cmpctblock.cpp b/src/test/fuzz/cmpctblock.cpp
index 7808acba..882169c9 100644
--- a/src/test/fuzz/cmpctblock.cpp
+++ b/src/test/fuzz/cmpctblock.cpp
@@ -14,12 +14,13 @@
#include <net_processing.h>
#include <netmessagemaker.h>
#include <node/blockstorage.h>
-#include <node/miner.h>
+#include <node/mining_types.h>
#include <policy/truc_policy.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <protocol.h>
#include <script/script.h>
+#include <serialize.h>
#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
@@ -43,7 +44,6 @@
#include <validationinterface.h>
#include <boost/multi_index/detail/hash_index_iterator.hpp>
-#include <boost/operators.hpp>
#include <cstddef>
#include <cstdint>
@@ -52,7 +52,6 @@
#include <memory>
#include <optional>
#include <string>
-#include <string_view>
#include <thread>
#include <utility>
#include <vector>
diff --git a/src/test/fuzz/mini_miner.cpp b/src/test/fuzz/mini_miner.cpp
index 77f9e682..daa3dae3 100644
--- a/src/test/fuzz/mini_miner.cpp
+++ b/src/test/fuzz/mini_miner.cpp
@@ -2,27 +2,35 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <node/mini_miner.h>
+
+#include <consensus/amount.h>
+#include <kernel/cs_main.h>
+#include <policy/feerate.h>
+#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
#include <test/fuzz/util.h>
-#include <test/fuzz/util/mempool.h>
-#include <test/util/mining.h>
#include <test/util/script.h>
+#include <test/util/random.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
#include <test/util/txmempool.h>
-
-#include <node/miner.h>
-#include <node/mini_miner.h>
-#include <node/types.h>
-#include <primitives/transaction.h>
-#include <random.h>
#include <txmempool.h>
+#include <uint256.h>
#include <util/check.h>
-#include <util/time.h>
#include <util/translation.h>
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
#include <deque>
+#include <functional>
+#include <map>
+#include <optional>
+#include <utility>
#include <vector>
namespace {
diff --git a/src/test/fuzz/package_eval.cpp b/src/test/fuzz/package_eval.cpp
index c87a3651..9cb51c7d 100644
--- a/src/test/fuzz/package_eval.cpp
+++ b/src/test/fuzz/package_eval.cpp
@@ -2,25 +2,50 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <chain.h>
+#include <consensus/amount.h>
+#include <consensus/consensus.h>
#include <consensus/validation.h>
-#include <node/context.h>
-#include <node/mempool_args.h>
-#include <node/miner.h>
+#include <node/mining_types.h> // IWYU pragma: keep
+#include <policy/feerate.h>
+#include <policy/packages.h>
+#include <policy/policy.h>
+#include <policy/settings.h>
#include <policy/truc_policy.h>
+#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
#include <test/fuzz/util.h>
#include <test/fuzz/util/mempool.h>
#include <test/util/mining.h>
+#include <test/util/random.h>
#include <test/util/script.h>
#include <test/util/setup_common.h>
#include <test/util/txmempool.h>
+#include <txmempool.h>
#include <util/check.h>
-#include <util/rbf.h>
+#include <util/hasher.h>
+#include <util/time.h>
#include <util/translation.h>
#include <validation.h>
#include <validationinterface.h>
+#include <cstddef>
+#include <cstdint>
+#include <functional>
+#include <iterator>
+#include <limits>
+#include <map>
+#include <memory>
+#include <optional>
+#include <set>
+#include <span>
+#include <string>
+#include <unordered_map>
+#include <utility>
+#include <vector>
using node::NodeContext;
namespace {
diff --git a/src/test/fuzz/process_message.cpp b/src/test/fuzz/process_message.cpp
index dd95a5fc..3ebedd91 100644
--- a/src/test/fuzz/process_message.cpp
+++ b/src/test/fuzz/process_message.cpp
@@ -2,14 +2,16 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <addrman.h>
#include <banman.h>
#include <consensus/consensus.h>
+#include <kernel/chainparams.h>
#include <net.h>
#include <net_processing.h>
-#include <node/warnings.h>
+#include <node/mining_types.h>
+#include <primitives/block.h>
#include <primitives/transaction.h>
#include <protocol.h>
-#include <script/script.h>
#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
@@ -17,18 +19,25 @@
#include <test/fuzz/util/net.h>
#include <test/util/mining.h>
#include <test/util/net.h>
+#include <test/util/random.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
#include <test/util/validation.h>
#include <util/check.h>
#include <util/time.h>
+#include <validation.h>
#include <validationinterface.h>
+#include <algorithm>
+#include <array>
#include <cstdlib>
+#include <functional>
#include <iostream>
#include <memory>
+#include <optional>
#include <string>
#include <string_view>
+#include <utility>
#include <vector>
namespace {
diff --git a/src/test/fuzz/process_messages.cpp b/src/test/fuzz/process_messages.cpp
index d3a3ccb6..21b44515 100644
--- a/src/test/fuzz/process_messages.cpp
+++ b/src/test/fuzz/process_messages.cpp
@@ -2,13 +2,16 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <addrman.h>
#include <banman.h>
#include <consensus/consensus.h>
+#include <kernel/chainparams.h>
#include <net.h>
#include <net_processing.h>
-#include <node/warnings.h>
+#include <node/mining_types.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
#include <protocol.h>
-#include <script/script.h>
#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
@@ -16,13 +19,18 @@
#include <test/fuzz/util/net.h>
#include <test/util/mining.h>
#include <test/util/net.h>
+#include <test/util/random.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
#include <test/util/validation.h>
#include <util/time.h>
+#include <validation.h>
#include <validationinterface.h>
+#include <functional>
#include <ios>
+#include <memory>
+#include <optional>
#include <string>
#include <utility>
#include <vector>
diff --git a/src/test/fuzz/tx_pool.cpp b/src/test/fuzz/tx_pool.cpp
index 825b32bc..23c40c9f 100644
--- a/src/test/fuzz/tx_pool.cpp
+++ b/src/test/fuzz/tx_pool.cpp
@@ -2,26 +2,51 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <chain.h>
+#include <coins.h>
+#include <consensus/amount.h>
+#include <consensus/consensus.h>
#include <consensus/validation.h>
-#include <node/context.h>
-#include <node/mempool_args.h>
#include <node/miner.h>
+#include <node/mining_types.h>
+#include <policy/feerate.h>
+#include <policy/packages.h>
#include <policy/policy.h>
#include <policy/truc_policy.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
#include <test/fuzz/util.h>
#include <test/fuzz/util/mempool.h>
#include <test/util/mining.h>
+#include <test/util/random.h>
#include <test/util/script.h>
#include <test/util/setup_common.h>
#include <test/util/txmempool.h>
+#include <txmempool.h>
#include <util/check.h>
-#include <util/rbf.h>
+#include <util/string.h>
+#include <util/time.h>
#include <util/translation.h>
#include <validation.h>
#include <validationinterface.h>
+#include <cstddef>
+#include <cstdint>
+#include <functional>
+#include <iterator>
+#include <limits>
+#include <map>
+#include <memory>
+#include <optional>
+#include <set>
+#include <span>
+#include <string>
+#include <utility>
+#include <vector>
using node::BlockAssembler;
using node::BlockCreateOptions;
using node::NodeContext;
diff --git a/src/test/fuzz/utxo_total_supply.cpp b/src/test/fuzz/utxo_total_supply.cpp
index 9e227234..b59cbf99 100644
--- a/src/test/fuzz/utxo_total_supply.cpp
+++ b/src/test/fuzz/utxo_total_supply.cpp
@@ -3,22 +3,34 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <chainparams.h>
-#include <consensus/consensus.h>
+#include <consensus/amount.h>
#include <consensus/merkle.h>
#include <kernel/coinstats.h>
#include <node/miner.h>
-#include <script/interpreter.h>
-#include <streams.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
#include <test/fuzz/util.h>
#include <test/util/mining.h>
+#include <test/util/random.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
-#include <util/chaintype.h>
-#include <util/time.h>
+#include <txdb.h>
+#include <uint256.h>
+#include <util/check.h>
#include <validation.h>
+#include <cstddef>
+#include <cstdint>
+#include <functional>
+#include <memory>
+#include <optional>
+#include <utility>
+#include <vector>
+
FUZZ_TARGET(utxo_total_supply)
{
SeedRandomStateForTest(SeedRand::ZEROS);
diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp
index 4d1c3053..2ddc1307 100644
--- a/src/test/miner_tests.cpp
+++ b/src/test/miner_tests.cpp
@@ -3,15 +3,28 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <addresstype.h>
+#include <chain.h>
#include <coins.h>
-#include <common/system.h>
+#include <consensus/amount.h>
#include <consensus/consensus.h>
#include <consensus/merkle.h>
#include <consensus/tx_verify.h>
#include <interfaces/mining.h>
+#include <interfaces/types.h>
+#include <kernel/chainparams.h>
#include <node/miner.h>
+#include <node/mining_types.h>
+#include <policy/feerate.h>
#include <policy/policy.h>
-#include <test/util/random.h>
+#include <pow.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <random.h>
+#include <script/script.h>
+#include <serialize.h>
+#include <sync.h>
+#include <test/util/common.h>
+#include <test/util/setup_common.h>
#include <test/util/transaction_utils.h>
#include <test/util/txmempool.h>
#include <txmempool.h>
@@ -23,16 +36,19 @@
#include <util/translation.h>
#include <validation.h>
#include <versionbits.h>
-#include <pow.h>
-#include <test/util/common.h>
-#include <test/util/setup_common.h>
+#include <boost/test/unit_test.hpp>
+#include <cstddef>
+#include <cstdint>
+#include <iterator>
#include <memory>
+#include <optional>
+#include <span>
+#include <stdexcept>
+#include <string>
#include <vector>
-#include <boost/test/unit_test.hpp>
-
using namespace util::hex_literals;
using interfaces::BlockTemplate;
using interfaces::Mining;
diff --git a/src/test/peerman_tests.cpp b/src/test/peerman_tests.cpp
index 1681b876..9044e9c2 100644
--- a/src/test/peerman_tests.cpp
+++ b/src/test/peerman_tests.cpp
@@ -2,16 +2,26 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or https://www.opensource.org/licenses/mit-license.php.
+#include <chain.h>
#include <chainparams.h>
+#include <consensus/params.h>
#include <interfaces/mining.h>
-#include <node/miner.h>
#include <net_processing.h>
#include <pow.h>
+#include <primitives/block.h>
+#include <protocol.h>
+#include <sync.h>
#include <test/util/setup_common.h>
+#include <util/check.h>
+#include <util/time.h>
#include <validation.h>
+#include <validationinterface.h>
#include <boost/test/unit_test.hpp>
+#include <cstdint>
+#include <memory>
+
BOOST_FIXTURE_TEST_SUITE(peerman_tests, RegTestingSetup)
/** Window, in blocks, for connecting to NODE_NETWORK_LIMITED peers */
diff --git a/src/test/testnet4_miner_tests.cpp b/src/test/testnet4_miner_tests.cpp
index c5b144d4..5998b5e6 100644
--- a/src/test/testnet4_miner_tests.cpp
+++ b/src/test/testnet4_miner_tests.cpp
@@ -2,10 +2,11 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <common/system.h>
+#include <chain.h>
#include <interfaces/mining.h>
-#include <node/miner.h>
-#include <test/util/common.h>
+#include <node/mining_types.h>
+#include <primitives/block.h>
+#include <sync.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
#include <util/time.h>
@@ -13,6 +14,8 @@
#include <boost/test/unit_test.hpp>
+#include <memory>
+
using interfaces::BlockTemplate;
using interfaces::Mining;
using node::BlockWaitOptions;
diff --git a/src/test/util/mining.cpp b/src/test/util/mining.cpp
index 6191f91b..9df682f5 100644
--- a/src/test/util/mining.cpp
+++ b/src/test/util/mining.cpp
@@ -4,6 +4,8 @@
#include <test/util/mining.h>
+#include <addresstype.h>
+#include <chain.h>
#include <chainparams.h>
#include <consensus/merkle.h>
#include <consensus/validation.h>
@@ -11,15 +13,21 @@
#include <key_io.h>
#include <node/context.h>
#include <pow.h>
+#include <primitives/block.h>
#include <primitives/transaction.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/util/script.h>
+#include <uint256.h>
#include <util/check.h>
#include <validation.h>
#include <validationinterface.h>
#include <versionbits.h>
-#include <algorithm>
+#include <cstdint>
#include <memory>
+#include <optional>
+#include <utility>
using node::NodeContext;
diff --git a/src/test/util/mining.h b/src/test/util/mining.h
index e15b8a0b..d1a071b3 100644
--- a/src/test/util/mining.h
+++ b/src/test/util/mining.h
@@ -5,8 +5,7 @@
#ifndef BITCOIN_TEST_UTIL_MINING_H
#define BITCOIN_TEST_UTIL_MINING_H
-#include <node/miner.h>
-
+#include <cstddef>
#include <memory>
#include <string>
#include <vector>
diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp
index 25d71f38..d7b7b29d 100644
--- a/src/test/util/setup_common.cpp
+++ b/src/test/util/setup_common.cpp
@@ -6,52 +6,68 @@
#include <addrman.h>
#include <banman.h>
+#include <chain.h>
#include <chainparams.h>
+#include <coins.h>
#include <common/system.h>
+#include <consensus/amount.h>
#include <consensus/consensus.h>
-#include <consensus/params.h>
#include <consensus/validation.h>
-#include <crypto/sha256.h>
+#include <crypto/hex_base.h>
+#include <dbwrapper.h>
#include <init.h>
-#include <interfaces/mining.h>
-#include <init/common.h>
#include <interfaces/chain.h>
-#include <kernel/mempool_entry.h>
+#include <interfaces/mining.h>
+#include <kernel/caches.h>
+#include <kernel/context.h>
+#include <key.h>
#include <logging.h>
#include <net.h>
#include <net_processing.h>
+#include <netbase.h>
+#include <netgroup.h>
#include <node/blockstorage.h>
#include <node/chainstate.h>
#include <node/context.h>
#include <node/kernel_notifications.h>
-#include <node/mempool_args.h>
#include <node/miner.h>
#include <node/mining_args.h>
+#include <node/mining_types.h>
#include <node/peerman_args.h>
#include <node/warnings.h>
#include <noui.h>
-#include <policy/fees/block_policy_estimator.h>
+#include <policy/feerate.h>
+#include <policy/policy.h>
#include <pow.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
#include <random.h>
-#include <rpc/blockchain.h>
#include <rpc/register.h>
#include <rpc/server.h>
#include <scheduler.h>
-#include <script/sigcache.h>
+#include <script/interpreter.h>
+#include <script/script.h>
+#include <script/sign.h>
+#include <script/signingprovider.h>
+#include <serialize.h>
+#include <span.h>
#include <streams.h>
+#include <sync.h>
#include <test/util/coverage.h>
#include <test/util/net.h>
#include <test/util/random.h>
-#include <test/util/transaction_utils.h>
#include <test/util/txmempool.h>
-#include <txdb.h>
+#include <tinyformat.h>
#include <txmempool.h>
+#include <uint256.h>
#include <util/chaintype.h>
#include <util/check.h>
+#include <util/fs.h>
#include <util/fs_helpers.h>
#include <util/rbf.h>
+#include <util/result.h>
+#include <util/signalinterrupt.h>
#include <util/strencodings.h>
-#include <util/string.h>
#include <util/task_runner.h>
#include <util/thread.h>
#include <util/threadnames.h>
@@ -60,12 +76,23 @@
#include <util/vector.h>
#include <validation.h>
#include <validationinterface.h>
-#include <walletinitinterface.h>
#include <algorithm>
-#include <future>
+#include <array>
+#include <atomic>
+#include <cstdlib>
+#include <deque>
#include <functional>
+#include <future>
+#include <iostream>
+#include <iterator>
+#include <map>
+#include <numeric>
+#include <span>
#include <stdexcept>
+#include <string_view>
+#include <thread>
+#include <tuple>
#include <utility>
using namespace util::hex_literals;
diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h
index 6ab63ec9..62bfaba9 100644
--- a/src/test/util/setup_common.h
+++ b/src/test/util/setup_common.h
@@ -6,26 +6,26 @@
#define BITCOIN_TEST_UTIL_SETUP_COMMON_H
#include <common/args.h> // IWYU pragma: export
+#include <consensus/amount.h>
#include <kernel/caches.h>
-#include <kernel/context.h>
#include <key.h>
#include <node/caches.h>
#include <node/context.h> // IWYU pragma: export
-#include <optional>
-#include <ostream>
#include <primitives/transaction.h>
-#include <pubkey.h>
-#include <stdexcept>
+#include <random.h>
#include <test/util/random.h>
#include <util/chaintype.h> // IWYU pragma: export
-#include <util/check.h>
#include <util/fs.h>
#include <util/signalinterrupt.h>
-#include <util/string.h>
#include <util/vector.h>
+#include <cstddef>
+#include <cstdint>
#include <functional>
-#include <type_traits>
+#include <memory>
+#include <optional>
+#include <string>
+#include <utility>
#include <vector>
class CFeeRate;
diff --git a/src/test/validation_block_tests.cpp b/src/test/validation_block_tests.cpp
index 2d3d5d65..51aecd60 100644
--- a/src/test/validation_block_tests.cpp
+++ b/src/test/validation_block_tests.cpp
@@ -2,24 +2,37 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <boost/test/unit_test.hpp>
-
+#include <chain.h>
#include <chainparams.h>
+#include <consensus/consensus.h>
#include <consensus/merkle.h>
#include <consensus/validation.h>
#include <interfaces/mining.h>
-#include <node/miner.h>
+#include <node/blockstorage.h>
#include <pow.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
#include <random.h>
-#include <test/util/common.h>
-#include <test/util/random.h>
+#include <script/script.h>
+#include <sync.h>
+#include <test/util/common.h> // IWYU pragma: keep
#include <test/util/script.h>
#include <test/util/setup_common.h>
-#include <util/time.h>
+#include <txmempool.h>
+#include <uint256.h>
+#include <util/check.h>
#include <validation.h>
#include <validationinterface.h>
+#include <boost/test/unit_test.hpp>
+
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <span>
#include <thread>
+#include <utility>
+#include <vector>
using kernel::ChainstateRole;
diff --git a/src/test/validation_chainstate_tests.cpp b/src/test/validation_chainstate_tests.cpp
index 4d7c8334..c9110655 100644
--- a/src/test/validation_chainstate_tests.cpp
+++ b/src/test/validation_chainstate_tests.cpp
@@ -2,28 +2,33 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//
+#include <chain.h>
#include <chainparams.h>
+#include <coins.h>
#include <consensus/amount.h>
#include <consensus/validation.h>
+#include <node/blockstorage.h>
#include <node/kernel_notifications.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
#include <random.h>
-#include <rpc/blockchain.h>
#include <script/script.h>
#include <sync.h>
#include <test/util/chainstate.h>
-#include <test/util/common.h>
+#include <test/util/common.h> // IWYU pragma: keep
#include <test/util/coins.h>
-#include <test/util/random.h>
#include <test/util/setup_common.h>
+#include <tinyformat.h>
#include <uint256.h>
-#include <util/byte_units.h>
#include <util/check.h>
#include <validation.h>
-#include <vector>
-
#include <boost/test/unit_test.hpp>
+#include <memory>
+#include <optional>
+#include <vector>
+
class CTxMemPool;
BOOST_FIXTURE_TEST_SUITE(validation_chainstate_tests, ChainTestingSetup)
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.