aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/init.h
blob: f8be90d3e31b6c1f023b5c8b2553363141c04914 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2017 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

#ifndef BITCOIN_WALLET_INIT_H
#define BITCOIN_WALLET_INIT_H

#include <walletinitinterface.h>
#include <string>

class CRPCTable;
class CScheduler;

class WalletInit : public WalletInitInterface {
public:

    //! Return the wallets help message.
    std::string GetHelpString(bool showDebug) override;

    //! Wallets parameter interaction
    bool ParameterInteraction() override;

    //! Register wallet RPCs.
    void RegisterRPC(CRPCTable &tableRPC) override;

    //! Responsible for reading and validating the -wallet arguments and verifying the wallet database.
    //  This function will perform salvage on the wallet if requested, as long as only one wallet is
    //  being loaded (WalletParameterInteraction forbids -salvagewallet, -zapwallettxes or -upgradewallet with multiwallet).
    bool Verify() override;

    //! Load wallet databases.
    bool Open() override;

    //! Complete startup of wallets.
    void Start(CScheduler& scheduler) override;

    //! Flush all wallets in preparation for shutdown.
    void Flush() override;

    //! Stop all wallets. Wallets will be flushed first.
    void Stop() override;

    //! Close all wallets.
    void Close() override;
};

#endif // BITCOIN_WALLET_INIT_H