Browse Source

[Wallet] Ensure <0.13 clients can't open HD wallets

0.14
Jonas Schnelli 8 years ago
parent
commit
a4f137f367
No known key found for this signature in database
GPG Key ID: 29D4BCB6416F53EC
  1. 3
      src/wallet/wallet.cpp
  2. 3
      src/wallet/wallet.h

3
src/wallet/wallet.cpp

@ -3299,6 +3299,9 @@ bool CWallet::InitLoadWallet()
key.MakeNewKey(true); key.MakeNewKey(true);
if (!walletInstance->SetHDMasterKey(key)) if (!walletInstance->SetHDMasterKey(key))
throw std::runtime_error("CWallet::GenerateNewKey(): Storing master key failed"); throw std::runtime_error("CWallet::GenerateNewKey(): Storing master key failed");
// ensure this wallet.dat can only be opened by clients supporting HD
walletInstance->SetMinVersion(FEATURE_HD);
} }
CPubKey newDefaultKey; CPubKey newDefaultKey;
if (walletInstance->GetKeyFromPool(newDefaultKey)) { if (walletInstance->GetKeyFromPool(newDefaultKey)) {

3
src/wallet/wallet.h

@ -78,7 +78,8 @@ enum WalletFeature
FEATURE_WALLETCRYPT = 40000, // wallet encryption FEATURE_WALLETCRYPT = 40000, // wallet encryption
FEATURE_COMPRPUBKEY = 60000, // compressed public keys FEATURE_COMPRPUBKEY = 60000, // compressed public keys
FEATURE_LATEST = 60000 FEATURE_HD = 130000, // Hierarchical key derivation after BIP32 (HD Wallet)
FEATURE_LATEST = FEATURE_COMPRPUBKEY // HD is optional, use FEATURE_COMPRPUBKEY as latest version
}; };

Loading…
Cancel
Save