Update CWallet::MarkAffectedTransactionsDirty() for Sapling.

This commit is contained in:
Simon 2018-07-28 10:02:48 -07:00
parent a132719da5
commit dae1c4204a
2 changed files with 11 additions and 1 deletions

View File

@ -1384,11 +1384,19 @@ void CWallet::MarkAffectedTransactionsDirty(const CTransaction& tx)
for (const JSDescription& jsdesc : tx.vjoinsplit) {
for (const uint256& nullifier : jsdesc.nullifiers) {
if (mapSproutNullifiersToNotes.count(nullifier) &&
mapWallet.count(mapSproutNullifiersToNotes[nullifier].hash)) {
mapWallet.count(mapSproutNullifiersToNotes[nullifier].hash)) {
mapWallet[mapSproutNullifiersToNotes[nullifier].hash].MarkDirty();
}
}
}
for (const SpendDescription &spend : tx.vShieldedSpend) {
uint256 nullifier = spend.nullifier;
if (mapSaplingNullifiersToNotes.count(nullifier) &&
mapWallet.count(mapSaplingNullifiersToNotes[nullifier].hash)) {
mapWallet[mapSaplingNullifiersToNotes[nullifier].hash].MarkDirty();
}
}
}
void CWallet::EraseFromWallet(const uint256 &hash)

View File

@ -907,6 +907,8 @@ public:
*/
std::map<uint256, JSOutPoint> mapSproutNullifiersToNotes;
std::map<uint256, SaplingOutPoint> mapSaplingNullifiersToNotes;
std::map<uint256, CWalletTx> mapWallet;
int64_t nOrderPosNext;