aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/walletdb.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wallet/walletdb.h')
-rw-r--r--src/wallet/walletdb.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/wallet/walletdb.h b/src/wallet/walletdb.h
index 71b0ff26db..5addd5c5c0 100644
--- a/src/wallet/walletdb.h
+++ b/src/wallet/walletdb.h
@@ -7,6 +7,7 @@
#define BITCOIN_WALLET_WALLETDB_H
#include "amount.h"
+#include "primitives/transaction.h"
#include "wallet/db.h"
#include "key.h"
@@ -40,7 +41,7 @@ enum DBErrors
DB_NEED_REWRITE
};
-/* simple hd chain data model */
+/* simple HD chain data model */
class CHDChain
{
public:
@@ -72,9 +73,13 @@ public:
class CKeyMetadata
{
public:
- static const int CURRENT_VERSION=1;
+ static const int VERSION_BASIC=1;
+ static const int VERSION_WITH_HDDATA=10;
+ static const int CURRENT_VERSION=VERSION_WITH_HDDATA;
int nVersion;
int64_t nCreateTime; // 0 means unknown
+ std::string hdKeypath; //optional HD/bip32 keypath
+ CKeyID hdMasterKeyID; //id of the HD masterkey used to derive this key
CKeyMetadata()
{
@@ -82,7 +87,7 @@ public:
}
CKeyMetadata(int64_t nCreateTime_)
{
- nVersion = CKeyMetadata::CURRENT_VERSION;
+ SetNull();
nCreateTime = nCreateTime_;
}
@@ -93,12 +98,19 @@ public:
READWRITE(this->nVersion);
nVersion = this->nVersion;
READWRITE(nCreateTime);
+ if (this->nVersion >= VERSION_WITH_HDDATA)
+ {
+ READWRITE(hdKeypath);
+ READWRITE(hdMasterKeyID);
+ }
}
void SetNull()
{
nVersion = CKeyMetadata::CURRENT_VERSION;
nCreateTime = 0;
+ hdKeypath.clear();
+ hdMasterKeyID.SetNull();
}
};