Persist Sapling key material in the wallet to disk
This commit is contained in:
@@ -166,7 +166,10 @@ bool CWallet::AddSaplingZKey(
|
||||
return true;
|
||||
}
|
||||
|
||||
// TODO: Persist to disk
|
||||
if (!IsCrypted()) {
|
||||
auto ivk = sk.expsk.full_viewing_key().in_viewing_key();
|
||||
return CWalletDB(strWalletFile).WriteSaplingZKey(ivk, sk, mapSaplingZKeyMetadata[ivk]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -302,7 +305,16 @@ bool CWallet::AddCryptedSaplingSpendingKey(const libzcash::SaplingExtendedFullVi
|
||||
if (!fFileBacked)
|
||||
return true;
|
||||
{
|
||||
// TODO: Sapling - Write to disk
|
||||
LOCK(cs_wallet);
|
||||
if (pwalletdbEncryption) {
|
||||
return pwalletdbEncryption->WriteCryptedSaplingZKey(extfvk,
|
||||
vchCryptedSecret,
|
||||
mapSaplingZKeyMetadata[extfvk.fvk.in_viewing_key()]);
|
||||
} else {
|
||||
return CWalletDB(strWalletFile).WriteCryptedSaplingZKey(extfvk,
|
||||
vchCryptedSecret,
|
||||
mapSaplingZKeyMetadata[extfvk.fvk.in_viewing_key()]);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -334,6 +346,25 @@ bool CWallet::LoadCryptedZKey(const libzcash::SproutPaymentAddress &addr, const
|
||||
return CCryptoKeyStore::AddCryptedSproutSpendingKey(addr, rk, vchCryptedSecret);
|
||||
}
|
||||
|
||||
bool CWallet::LoadCryptedSaplingZKey(
|
||||
const libzcash::SaplingExtendedFullViewingKey &extfvk,
|
||||
const std::vector<unsigned char> &vchCryptedSecret)
|
||||
{
|
||||
return CCryptoKeyStore::AddCryptedSaplingSpendingKey(extfvk, vchCryptedSecret, extfvk.DefaultAddress());
|
||||
}
|
||||
|
||||
bool CWallet::LoadSaplingZKeyMetadata(const libzcash::SaplingIncomingViewingKey &ivk, const CKeyMetadata &meta)
|
||||
{
|
||||
AssertLockHeld(cs_wallet); // mapSaplingZKeyMetadata
|
||||
mapSaplingZKeyMetadata[ivk] = meta;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CWallet::LoadSaplingZKey(const libzcash::SaplingExtendedSpendingKey &key)
|
||||
{
|
||||
return CCryptoKeyStore::AddSaplingSpendingKey(key, key.DefaultAddress());
|
||||
}
|
||||
|
||||
bool CWallet::LoadZKey(const libzcash::SproutSpendingKey &key)
|
||||
{
|
||||
return CCryptoKeyStore::AddSproutSpendingKey(key);
|
||||
|
||||
Reference in New Issue
Block a user