Coverage Report

Created: 2026-06-01 18:35

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/bitcoin/src/init/bitcoind.cpp
Line
Count
Source
1
// Copyright (c) 2021-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <init.h>
6
#include <interfaces/chain.h>
7
#include <interfaces/echo.h>
8
#include <interfaces/init.h>
9
#include <interfaces/mining.h>
10
#include <interfaces/node.h>
11
#include <interfaces/wallet.h>
12
#include <node/context.h>
13
#include <util/check.h>
14
15
#include <memory>
16
17
using node::NodeContext;
18
19
namespace init {
20
namespace {
21
const char* EXE_NAME = "bitcoind";
22
23
class BitcoindInit : public interfaces::Init
24
{
25
public:
26
0
    BitcoindInit(NodeContext& node) : m_node(node)
27
0
    {
28
0
        InitContext(m_node);
29
0
        m_node.init = this;
30
0
    }
31
0
    std::unique_ptr<interfaces::Node> makeNode() override { return interfaces::MakeNode(m_node); }
32
0
    std::unique_ptr<interfaces::Chain> makeChain() override { return interfaces::MakeChain(m_node); }
33
0
    std::unique_ptr<interfaces::Mining> makeMining() override { return interfaces::MakeMining(m_node); }
34
    std::unique_ptr<interfaces::WalletLoader> makeWalletLoader(interfaces::Chain& chain) override
35
0
    {
36
0
        return MakeWalletLoader(chain, *Assert(m_node.args));
37
0
    }
38
0
    std::unique_ptr<interfaces::Echo> makeEcho() override { return interfaces::MakeEcho(); }
39
0
    const char* exeName() override { return EXE_NAME; }
40
    NodeContext& m_node;
41
};
42
} // namespace
43
} // namespace init
44
45
namespace interfaces {
46
std::unique_ptr<Init> MakeNodeInit(NodeContext& node, int argc, char* argv[], int& exit_status)
47
0
{
48
0
    return std::make_unique<init::BitcoindInit>(node);
49
0
}
50
} // namespace interfaces