aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2022-01-11 11:10:49 +0100
committerMarcoFalke <falke.marco@gmail.com>2022-01-11 11:11:00 +0100
commitc561f2f06ed25f08f7776ac41aeb2999ebe79550 (patch)
treeebd933b661b7cd1ca84e0ecaaac9020c72f952dd /src/interfaces
parentfa74718414d7adb36095d277967d70c538a6ffdb (diff)
parente5b6aef61221b621ad77b5f075a16897e08835bf (diff)
Merge bitcoin/bitcoin#23497: Add `src/node/` and `src/wallet/` code to `node::` and `wallet::` namespaces
e5b6aef61221b621ad77b5f075a16897e08835bf Move CBlockFileInfo::ToString method where class is declared (Russell Yanofsky) f7086fd8ff084ab0dd656d75b7485e59263bdfd8 Add src/wallet/* code to wallet:: namespace (Russell Yanofsky) 90fc8b089d591cabff60ee829a33f96c37fd27ba Add src/node/* code to node:: namespace (Russell Yanofsky) Pull request description: There are no code changes, this is just adding `namespace` and `using` declarations and `node::` or `wallet::` qualifiers in some places. Motivations for this change are: - To make it easier to see when node and wallet code is being accessed places where it shouldn't be. For example if GUI code is accessing node and wallet internals or if wallet and node code are referencing each other. - To make source code organization clearer ([#15732](https://github.com/bitcoin/bitcoin/issues/15732)), being able to know that `wallet::` code is in `src/wallet/`, `node::` code is in `src/node/`, `init::` code is in `src/init/`, `util::` code is in `src/util/`, etc. Reviewing with `git log -p -n1 -U0 --word-diff-regex=.` can be helpful to verify this is only updating declarations, not changing code. ACKs for top commit: achow101: ACK e5b6aef61221b621ad77b5f075a16897e08835bf MarcoFalke: Concept ACK e5b6aef61221b621ad77b5f075a16897e08835bf 🍨 Tree-SHA512: 3797745c90246794e2d55a2ee6e8b0ad5c811e4e03a242d3fdfeb68032f8787f0d48ed4097f6b7730f540220c0af99ef423cd9dbe7f76b2ec12e769a757a2c8d
Diffstat (limited to 'src/interfaces')
-rw-r--r--src/interfaces/chain.h4
-rw-r--r--src/interfaces/init.h4
-rw-r--r--src/interfaces/node.h14
-rw-r--r--src/interfaces/wallet.h46
4 files changed, 39 insertions, 29 deletions
diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h
index 9eb0d680e3..4f5105a5c1 100644
--- a/src/interfaces/chain.h
+++ b/src/interfaces/chain.h
@@ -28,7 +28,9 @@ enum class RBFTransactionState;
struct bilingual_str;
struct CBlockLocator;
struct FeeCalculation;
+namespace node {
struct NodeContext;
+} // namespace node
namespace interfaces {
@@ -316,7 +318,7 @@ public:
};
//! Return implementation of Chain interface.
-std::unique_ptr<Chain> MakeChain(NodeContext& node);
+std::unique_ptr<Chain> MakeChain(node::NodeContext& node);
} // namespace interfaces
diff --git a/src/interfaces/init.h b/src/interfaces/init.h
index a4ecf4b5d1..2153076366 100644
--- a/src/interfaces/init.h
+++ b/src/interfaces/init.h
@@ -7,7 +7,9 @@
#include <memory>
+namespace node {
struct NodeContext;
+} // namespace node
namespace interfaces {
class Chain;
@@ -40,7 +42,7 @@ public:
//! status code to exit with. If this returns non-null, the caller can start up
//! normally and use the Init object to spawn and connect to other processes
//! while it is running.
-std::unique_ptr<Init> MakeNodeInit(NodeContext& node, int argc, char* argv[], int& exit_status);
+std::unique_ptr<Init> MakeNodeInit(node::NodeContext& node, int argc, char* argv[], int& exit_status);
//! Return implementation of Init interface for the wallet process.
std::unique_ptr<Init> MakeWalletInit(int argc, char* argv[], int& exit_status);
diff --git a/src/interfaces/node.h b/src/interfaces/node.h
index 8143839850..9c1b196d61 100644
--- a/src/interfaces/node.h
+++ b/src/interfaces/node.h
@@ -22,7 +22,6 @@
#include <vector>
class BanMan;
-class CCoinControl;
class CFeeRate;
class CNodeStats;
class Coin;
@@ -32,8 +31,13 @@ class proxyType;
enum class SynchronizationState;
enum class TransactionError;
struct CNodeStateStats;
-struct NodeContext;
struct bilingual_str;
+namespace node {
+struct NodeContext;
+} // namespace node
+namespace wallet {
+class CCoinControl;
+} // namespace wallet
namespace interfaces {
class Handler;
@@ -242,12 +246,12 @@ public:
//! Get and set internal node context. Useful for testing, but not
//! accessible across processes.
- virtual NodeContext* context() { return nullptr; }
- virtual void setContext(NodeContext* context) { }
+ virtual node::NodeContext* context() { return nullptr; }
+ virtual void setContext(node::NodeContext* context) { }
};
//! Return implementation of Node interface.
-std::unique_ptr<Node> MakeNode(NodeContext& context);
+std::unique_ptr<Node> MakeNode(node::NodeContext& context);
//! Block tip (could be a header or not, depends on the subscribed signal).
struct BlockTip {
diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h
index a83f0727a1..aa33a3c951 100644
--- a/src/interfaces/wallet.h
+++ b/src/interfaces/wallet.h
@@ -24,19 +24,21 @@
#include <utility>
#include <vector>
-class CCoinControl;
class CFeeRate;
class CKey;
-class CWallet;
enum class FeeReason;
enum class OutputType;
enum class TransactionError;
+struct PartiallySignedTransaction;
+struct bilingual_str;
+namespace wallet {
+class CCoinControl;
+class CWallet;
enum isminetype : unsigned int;
struct CRecipient;
-struct PartiallySignedTransaction;
struct WalletContext;
-struct bilingual_str;
using isminefilter = std::underlying_type<isminetype>::type;
+} // namespace wallet
namespace interfaces {
@@ -108,7 +110,7 @@ public:
//! Look up address in wallet, return whether exists.
virtual bool getAddress(const CTxDestination& dest,
std::string* name,
- isminetype* is_mine,
+ wallet::isminetype* is_mine,
std::string* purpose) = 0;
//! Get wallet address list.
@@ -136,8 +138,8 @@ public:
virtual void listLockedCoins(std::vector<COutPoint>& outputs) = 0;
//! Create transaction.
- virtual CTransactionRef createTransaction(const std::vector<CRecipient>& recipients,
- const CCoinControl& coin_control,
+ virtual CTransactionRef createTransaction(const std::vector<wallet::CRecipient>& recipients,
+ const wallet::CCoinControl& coin_control,
bool sign,
int& change_pos,
CAmount& fee,
@@ -159,7 +161,7 @@ public:
//! Create bump transaction.
virtual bool createBumpTransaction(const uint256& txid,
- const CCoinControl& coin_control,
+ const wallet::CCoinControl& coin_control,
std::vector<bilingual_str>& errors,
CAmount& old_fee,
CAmount& new_fee,
@@ -214,19 +216,19 @@ public:
virtual CAmount getBalance() = 0;
//! Get available balance.
- virtual CAmount getAvailableBalance(const CCoinControl& coin_control) = 0;
+ virtual CAmount getAvailableBalance(const wallet::CCoinControl& coin_control) = 0;
//! Return whether transaction input belongs to wallet.
- virtual isminetype txinIsMine(const CTxIn& txin) = 0;
+ virtual wallet::isminetype txinIsMine(const CTxIn& txin) = 0;
//! Return whether transaction output belongs to wallet.
- virtual isminetype txoutIsMine(const CTxOut& txout) = 0;
+ virtual wallet::isminetype txoutIsMine(const CTxOut& txout) = 0;
//! Return debit amount if transaction input belongs to wallet.
- virtual CAmount getDebit(const CTxIn& txin, isminefilter filter) = 0;
+ virtual CAmount getDebit(const CTxIn& txin, wallet::isminefilter filter) = 0;
//! Return credit amount if transaction input belongs to wallet.
- virtual CAmount getCredit(const CTxOut& txout, isminefilter filter) = 0;
+ virtual CAmount getCredit(const CTxOut& txout, wallet::isminefilter filter) = 0;
//! Return AvailableCoins + LockedCoins grouped by wallet address.
//! (put change in one group with wallet address)
@@ -241,7 +243,7 @@ public:
//! Get minimum fee.
virtual CAmount getMinimumFee(unsigned int tx_bytes,
- const CCoinControl& coin_control,
+ const wallet::CCoinControl& coin_control,
int* returned_target,
FeeReason* reason) = 0;
@@ -308,7 +310,7 @@ public:
virtual std::unique_ptr<Handler> handleCanGetAddressesChanged(CanGetAddressesChangedFn fn) = 0;
//! Return pointer to internal wallet class, useful for testing.
- virtual CWallet* wallet() { return nullptr; }
+ virtual wallet::CWallet* wallet() { return nullptr; }
};
//! Wallet chain client that in addition to having chain client methods for
@@ -342,18 +344,18 @@ public:
virtual std::unique_ptr<Handler> handleLoadWallet(LoadWalletFn fn) = 0;
//! Return pointer to internal context, useful for testing.
- virtual WalletContext* context() { return nullptr; }
+ virtual wallet::WalletContext* context() { return nullptr; }
};
//! Information about one wallet address.
struct WalletAddress
{
CTxDestination dest;
- isminetype is_mine;
+ wallet::isminetype is_mine;
std::string name;
std::string purpose;
- WalletAddress(CTxDestination dest, isminetype is_mine, std::string name, std::string purpose)
+ WalletAddress(CTxDestination dest, wallet::isminetype is_mine, std::string name, std::string purpose)
: dest(std::move(dest)), is_mine(is_mine), name(std::move(name)), purpose(std::move(purpose))
{
}
@@ -383,10 +385,10 @@ struct WalletBalances
struct WalletTx
{
CTransactionRef tx;
- std::vector<isminetype> txin_is_mine;
- std::vector<isminetype> txout_is_mine;
+ std::vector<wallet::isminetype> txin_is_mine;
+ std::vector<wallet::isminetype> txout_is_mine;
std::vector<CTxDestination> txout_address;
- std::vector<isminetype> txout_address_is_mine;
+ std::vector<wallet::isminetype> txout_address_is_mine;
CAmount credit;
CAmount debit;
CAmount change;
@@ -421,7 +423,7 @@ struct WalletTxOut
//! Return implementation of Wallet interface. This function is defined in
//! dummywallet.cpp and throws if the wallet component is not compiled.
-std::unique_ptr<Wallet> MakeWallet(WalletContext& context, const std::shared_ptr<CWallet>& wallet);
+std::unique_ptr<Wallet> MakeWallet(wallet::WalletContext& context, const std::shared_ptr<wallet::CWallet>& wallet);
//! Return implementation of ChainClient interface for a wallet loader. This
//! function will be undefined in builds where ENABLE_WALLET is false.