diff options
author | Andrew Chow <achow101-github@achow101.com> | 2018-11-06 09:23:45 -0500 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2019-02-14 17:58:25 -0500 |
commit | 3d235dff5df106070e41e3a99cf9fb847a27e14a (patch) | |
tree | d9484067ce57ec5b8b33c86daf5d105e932c7a27 | |
parent | eab63bc264a35cf21738e8535773e3d36524c3fe (diff) | |
download | bitcoin-3d235dff5df106070e41e3a99cf9fb847a27e14a.tar.xz |
Implement a function to add KeyOriginInfo to a wallet
-rw-r--r-- | src/wallet/wallet.cpp | 10 | ||||
-rw-r--r-- | src/wallet/wallet.h | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 399490ea9f..4df4e0981e 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -4550,3 +4550,13 @@ bool CWallet::GetKeyOrigin(const CKeyID& keyID, KeyOriginInfo& info) const } return true; } + +bool CWallet::AddKeyOrigin(const CPubKey& pubkey, const KeyOriginInfo& info) +{ + LOCK(cs_wallet); + std::copy(info.fingerprint, info.fingerprint + 4, mapKeyMetadata[pubkey.GetID()].key_origin.fingerprint); + mapKeyMetadata[pubkey.GetID()].key_origin.path = info.path; + mapKeyMetadata[pubkey.GetID()].has_key_origin = true; + mapKeyMetadata[pubkey.GetID()].hdKeypath = WriteHDKeypath(info.path); + return WriteKeyMetadata(mapKeyMetadata[pubkey.GetID()], pubkey, true); +} diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index ad6d72afb6..3c5e475bd9 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1219,6 +1219,9 @@ public: /** Implement lookup of key origin information through wallet key metadata. */ bool GetKeyOrigin(const CKeyID& keyid, KeyOriginInfo& info) const override; + + /** Add a KeyOriginInfo to the wallet */ + bool AddKeyOrigin(const CPubKey& pubkey, const KeyOriginInfo& info); }; /** A key allocated from the key pool. */ |