Fix bug where wallet was not persisting witnesses to disk.

Author: str4d
This commit is contained in:
Simon 2016-09-03 09:51:17 -07:00
parent 9cd713439a
commit 97b6f365a1
1 changed files with 10 additions and 2 deletions

View File

@ -654,7 +654,11 @@ void CWallet::IncrementNoteWitnesses(const CBlockIndex* pindex,
nWitnessCacheSize += 1;
}
if (fFileBacked) {
CWalletDB(strWalletFile).WriteWitnessCacheSize(nWitnessCacheSize);
CWalletDB walletdb(strWalletFile);
for (std::pair<const uint256, CWalletTx>& wtxItem : mapWallet) {
walletdb.WriteTx(wtxItem.first, wtxItem.second);
}
walletdb.WriteWitnessCacheSize(nWitnessCacheSize);
}
}
}
@ -675,7 +679,11 @@ void CWallet::DecrementNoteWitnesses()
// TODO: If nWitnessCache is zero, we need to regenerate the caches (#1302)
assert(nWitnessCacheSize > 0);
if (fFileBacked) {
CWalletDB(strWalletFile).WriteWitnessCacheSize(nWitnessCacheSize);
CWalletDB walletdb(strWalletFile);
for (std::pair<const uint256, CWalletTx>& wtxItem : mapWallet) {
walletdb.WriteTx(wtxItem.first, wtxItem.second);
}
walletdb.WriteWitnessCacheSize(nWitnessCacheSize);
}
}
}