diff --git a/src/interface/wallet.cpp b/src/interface/wallet.cpp index cbf30f49bc..efc9946fb6 100644 --- a/src/interface/wallet.cpp +++ b/src/interface/wallet.cpp @@ -85,6 +85,10 @@ public: } bool backupWallet(const std::string& filename) override { return m_wallet.BackupWallet(filename); } std::string getWalletName() override { return m_wallet.GetName(); } + bool getKeyFromPool(bool internal, CPubKey& pub_key) override + { + return m_wallet.GetKeyFromPool(pub_key, internal); + } bool getPubKey(const CKeyID& address, CPubKey& pub_key) override { return m_wallet.GetPubKey(address, pub_key); } bool getPrivKey(const CKeyID& address, CKey& key) override { return m_wallet.GetKey(address, key); } bool isSpendable(const CTxDestination& dest) override { return IsMine(m_wallet, dest) & ISMINE_SPENDABLE; } @@ -93,6 +97,10 @@ public: { return m_wallet.SetAddressBook(dest, name, purpose); } + bool delAddressBook(const CTxDestination& dest) override + { + return m_wallet.DelAddressBook(dest); + } bool getAddress(const CTxDestination& dest, std::string* name, isminetype* is_mine) override { LOCK(m_wallet.cs_wallet); @@ -108,6 +116,16 @@ public: } return true; } + std::vector getAddresses() override + { + LOCK(m_wallet.cs_wallet); + std::vector result; + for (const auto& item : m_wallet.mapAddressBook) { + result.emplace_back(item.first, IsMine(m_wallet, item.first), item.second.name, item.second.purpose); + } + return result; + } + void learnRelatedScripts(const CPubKey& key, OutputType type) override { m_wallet.LearnRelatedScripts(key, type); } bool addDestData(const CTxDestination& dest, const std::string& key, const std::string& value) override { LOCK(m_wallet.cs_wallet); 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 // For CAmount +#include // For CTxDestination (CKeyID and CScriptID) #include