diff --git a/src/wallet/scriptpubkeyman.h b/src/wallet/scriptpubkeyman.h --- a/src/wallet/scriptpubkeyman.h +++ b/src/wallet/scriptpubkeyman.h @@ -154,6 +154,23 @@ public: ScriptPubKeyMan(WalletStorage &storage) : m_storage(storage) {} + virtual ~ScriptPubKeyMan(){}; + virtual isminetype IsMine(const CScript &script) const { return ISMINE_NO; } + + //! Upgrade stored CKeyMetadata objects to store key origin info as + //! KeyOriginInfo + virtual void UpgradeKeyMetadata() {} + + /* Returns true if HD is enabled */ + virtual bool IsHDEnabled() const { return false; } + + /* Returns true if the wallet can give out new addresses. This means it has + * keys in the keypool or can generate new keys */ + virtual bool CanGetAddresses(bool internal = false) { return false; } + + virtual int64_t GetOldestKeyPoolTime() { return GetTime(); } + + virtual size_t KeypoolCountExternalKeys() { return 0; } }; class LegacyScriptPubKeyMan : public ScriptPubKeyMan, @@ -250,20 +267,19 @@ public: bool GetNewDestination(const OutputType type, const std::string label, CTxDestination &dest, std::string &error); - isminetype IsMine(const CScript &script) const; + isminetype IsMine(const CScript &script) const override; //! will encrypt previously unencrypted keys bool EncryptKeys(CKeyingMaterial &vMasterKeyIn); - void UpgradeKeyMetadata() EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); + void UpgradeKeyMetadata() override EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); - bool IsHDEnabled() const; + bool IsHDEnabled() const override; - int64_t GetOldestKeyPoolTime(); - size_t KeypoolCountExternalKeys() EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); + int64_t GetOldestKeyPoolTime() override; + size_t KeypoolCountExternalKeys() override + EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); - /* Returns true if the wallet can give out new addresses. This means it has - * keys in the keypool or can generate new keys */ - bool CanGetAddresses(bool internal = false); + bool CanGetAddresses(bool internal = false) override; // Map from Key ID to key metadata. std::map mapKeyMetadata GUARDED_BY(cs_wallet); @@ -319,6 +335,7 @@ //! Fetches a pubkey from mapWatchKeys if it exists there bool GetWatchPubKey(const CKeyID &address, CPubKey &pubkey_out) const; + /* SigningProvider overrides */ bool HaveKey(const CKeyID &address) const override; bool GetKey(const CKeyID &address, CKey &keyOut) const override; bool GetPubKey(const CKeyID &address, CPubKey &vchPubKeyOut) const override;