just_falconMember
Posts: 3 · Reputation: 122
#1Aug 4, 2024, 12:32 PM
Check out the file src/bitcoin-wallet.cpp in the latest branch, specifically line 103:
std::unique_ptr<interfaces::Init> init = interfaces::MakeWalletInit(argc, argv, exit_status);
if (!init) {
return exit_status;
}
This looks like it’s setting up the wallet, but I can't find much on interfaces::MakeWalletInit(argc, argv, exit_status) apart from what’s in src/init/bitcoin-wallet.cpp:
namespace interfaces {
std::unique_ptr<Init> MakeWalletInit(int argc, char* argv[], int& exit_status)
{
return std::make_unique<Init>();
}
} // namespace interfaces
But just returning a base Init object doesn’t seem very useful, right? I mean, the class itself is pretty bare:
class Init
{
public:
virtual ~Init() = default;
virtual std::unique_ptr<Node> makeNode() { return nullptr; }
virtual std::unique_ptr<Chain> makeChain() { return nullptr; }
virtual std::unique_ptr<Mining> makeMining() { return nullptr; }
virtual std::unique_ptr<WalletLoader> makeWalletLoader(Chain& chain) { return nullptr; }
virtual std::unique_ptr<Echo> makeEcho() { return nullptr; }
virtual Ipc* ipc() { return nullptr; }
virtual bool canListenIpc() { return false; }
};
So what's the point of lines 103 to 106 in src/bitcoin-wallet.cpp? I’m confused.