|
|
@ -1184,6 +1184,7 @@ bool DecrementNoteWitnesses(NoteDataMap& noteDataMap, int indexHeight, int64_t n |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CWallet::DecrementNoteWitnesses(const CBlockIndex* pindex) |
|
|
|
{ |
|
|
|
LOCK(cs_wallet); |
|
|
@ -1193,10 +1194,17 @@ void CWallet::DecrementNoteWitnesses(const CBlockIndex* pindex) |
|
|
|
if (!::DecrementNoteWitnesses(wtxItem.second.mapSaplingNoteData, pindex->GetHeight(), nWitnessCacheSize)) |
|
|
|
needsRescan = true; |
|
|
|
} |
|
|
|
nWitnessCacheSize -= 1; |
|
|
|
// TODO: If nWitnessCache is zero, we need to regenerate the caches (#1302)
|
|
|
|
assert(nWitnessCacheSize > 0); |
|
|
|
|
|
|
|
if ( WITNESS_CACHE_SIZE == _COINBASE_MATURITY+10 ) |
|
|
|
{ |
|
|
|
nWitnessCacheSize -= 1; |
|
|
|
// TODO: If nWitnessCache is zero, we need to regenerate the caches (#1302)
|
|
|
|
assert(nWitnessCacheSize > 0); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if ( nWitnessCacheSize > 0 ) |
|
|
|
nWitnessCacheSize-- |
|
|
|
} |
|
|
|
// For performance reasons, we write out the witness cache in
|
|
|
|
// CWallet::SetBestChain() (which also ensures that overall consistency
|
|
|
|
// of the wallet.dat is maintained).
|
|
|
|