aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet.cpp
diff options
context:
space:
mode:
authorTom Harding <tomh@thinlink.com>2015-03-11 16:48:53 -0700
committerTom Harding <tomh@thinlink.com>2015-04-11 19:03:58 -0700
commitb2b361926215eadd6bf43ed1d7110b925fc7cae5 (patch)
tree82db9091d3556b309368bbe63806602ef26cfe87 /src/wallet/wallet.cpp
parentc8a13501196fc79a3f728683b74f9d586dda46c1 (diff)
downloadbitcoin-b2b361926215eadd6bf43ed1d7110b925fc7cae5.tar.xz
Implement CTransaction::IsEquivalentTo(...)
Define CTransaction::IsEquivalentTo(const CTransaction& tx) True if only scriptSigs are different. In other words, true if the two transactions are malleability clones. In other words, true if the two transactions have the same effect on the outside universe. In the wallet, only SyncMetaData for equivalent transactions.
Diffstat (limited to 'src/wallet/wallet.cpp')
-rw-r--r--src/wallet/wallet.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 2566b2712b..92bb972cf3 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -417,6 +417,7 @@ void CWallet::SyncMetaData(pair<TxSpends::iterator, TxSpends::iterator> range)
const uint256& hash = it->second;
CWalletTx* copyTo = &mapWallet[hash];
if (copyFrom == copyTo) continue;
+ if (!copyFrom->IsEquivalentTo(*copyTo)) continue;
copyTo->mapValue = copyFrom->mapValue;
copyTo->vOrderForm = copyFrom->vOrderForm;
// fTimeReceivedIsTxTime not copied on purpose