Coverage Report

Created: 2025-06-10 13:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/bitcoin/src/init/bitcoind.cpp
Line
Count
Source
1
// Copyright (c) 2021-2022 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
class BitcoindInit : public interfaces::Init
22
{
23
public:
24
11.0k
    BitcoindInit(NodeContext& node) : m_node(node)
25
11.0k
    {
26
11.0k
        InitContext(m_node);
27
11.0k
        m_node.init = this;
28
11.0k
    }
29
0
    std::unique_ptr<interfaces::Node> makeNode() override { return interfaces::MakeNode(m_node); }
30
11.0k
    std::unique_ptr<interfaces::Chain> makeChain() override { return interfaces::MakeChain(m_node); }
31
11.0k
    std::unique_ptr<interfaces::Mining> makeMining() override { return interfaces::MakeMining(m_node); }
32
    std::unique_ptr<interfaces::WalletLoader> makeWalletLoader(interfaces::Chain& chain) override
33
11.0k
    {
34
11.0k
        return MakeWalletLoader(chain, *Assert(m_node.args));
35
11.0k
    }
36
0
    std::unique_ptr<interfaces::Echo> makeEcho() override { return interfaces::MakeEcho(); }
37
    NodeContext& m_node;
38
};
39
} // namespace
40
} // namespace init
41
42
namespace interfaces {
43
std::unique_ptr<Init> MakeNodeInit(NodeContext& node, int argc, char* argv[], int& exit_status)
44
11.0k
{
45
11.0k
    return std::make_unique<init::BitcoindInit>(node);
46
11.0k
}
47
} // namespace interfaces