aboutsummaryrefslogtreecommitdiff
path: root/src/interface/wallet.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface/wallet.h')
-rw-r--r--src/interface/wallet.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/interface/wallet.h b/src/interface/wallet.h
index 6cc196fd94..4510276446 100644
--- a/src/interface/wallet.h
+++ b/src/interface/wallet.h
@@ -6,6 +6,7 @@
#define BITCOIN_INTERFACE_WALLET_H
#include <amount.h> // For CAmount
+#include <pubkey.h> // For CTxDestination (CKeyID and CScriptID)
#include <script/ismine.h> // For isminefilter, isminetype
#include <script/standard.h> // For CTxDestination
#include <support/allocators/secure.h> // For SecureString
@@ -30,6 +31,7 @@ namespace interface {
class Handler;
class PendingWalletTx;
+struct WalletAddress;
struct WalletBalances;
struct WalletTxOut;
@@ -67,6 +69,9 @@ public:
//! Get wallet name.
virtual std::string getWalletName() = 0;
+ // Get key from pool.
+ virtual bool getKeyFromPool(bool internal, CPubKey& pub_key) = 0;
+
//! Get public key.
virtual bool getPubKey(const CKeyID& address, CPubKey& pub_key) = 0;
@@ -82,11 +87,21 @@ public:
//! Add or update address.
virtual bool setAddressBook(const CTxDestination& dest, const std::string& name, const std::string& purpose) = 0;
+ // Remove address.
+ virtual bool delAddressBook(const CTxDestination& dest) = 0;
+
//! Look up address in wallet, return whether exists.
virtual bool getAddress(const CTxDestination& dest,
std::string* name = nullptr,
isminetype* is_mine = nullptr) = 0;
+ //! Get wallet address list.
+ virtual std::vector<WalletAddress> getAddresses() = 0;
+
+ //! Add scripts to key store so old so software versions opening the wallet
+ //! database can detect payments to newer address types.
+ virtual void learnRelatedScripts(const CPubKey& key, OutputType type) = 0;
+
//! Add dest data.
virtual bool addDestData(const CTxDestination& dest, const std::string& key, const std::string& value) = 0;
@@ -216,6 +231,20 @@ public:
std::string& reject_reason) = 0;
};
+//! Information about one wallet address.
+struct WalletAddress
+{
+ CTxDestination dest;
+ isminetype is_mine;
+ std::string name;
+ std::string purpose;
+
+ WalletAddress(CTxDestination dest, 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))
+ {
+ }
+};
+
//! Collection of wallet balances.
struct WalletBalances
{