forked from namecoin/namecoin-core
-
Notifications
You must be signed in to change notification settings - Fork 1
/
context.h
40 lines (33 loc) · 1.34 KB
/
context.h
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
// Copyright (c) 2020 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_CONTEXT_H
#define BITCOIN_WALLET_CONTEXT_H
class ArgsManager;
namespace interfaces {
class Chain;
} // namespace interfaces
struct NodeContext;
//! WalletContext struct containing references to state shared between CWallet
//! instances, like the reference to the chain interface, and the list of opened
//! wallets.
//!
//! Future shared state can be added here as an alternative to adding global
//! variables.
//!
//! The struct isn't intended to have any member functions. It should just be a
//! collection of state pointers that doesn't pull in dependencies or implement
//! behavior.
struct WalletContext {
interfaces::Chain* chain{nullptr};
ArgsManager* args{nullptr};
/* getauxwork is a wallet RPC but actually needs the NodeContext (unlike
any of the upstream Bitcoin wallet RPCs). */
NodeContext* nodeContext{nullptr};
//! Declare default constructor and destructor that are not inline, so code
//! instantiating the WalletContext struct doesn't need to #include class
//! definitions for smart pointer and container members.
WalletContext();
~WalletContext();
};
#endif // BITCOIN_WALLET_CONTEXT_H