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 JSDescription& jsdesc : tx.vjoinsplit) {
for (const uint256& nullifier : jsdesc.nullifiers) { for (const uint256& nullifier : jsdesc.nullifiers) {
if (mapSproutNullifiersToNotes.count(nullifier) && if (mapSproutNullifiersToNotes.count(nullifier) &&
mapWallet.count(mapSproutNullifiersToNotes[nullifier].hash)) { mapWallet.count(mapSproutNullifiersToNotes[nullifier].hash)) {
mapWallet[mapSproutNullifiersToNotes[nullifier].hash].MarkDirty(); 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) void CWallet::EraseFromWallet(const uint256 &hash)

View File

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