diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-07-02 19:58:11 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-07-02 19:59:50 +0200 |
commit | 3203a0832adf72f4303c7ab1a7a6046a6dd14778 (patch) | |
tree | 9222e3cb6e0a9e602fedec702d7497e397d06c00 /src/primitives | |
parent | 987efae1fd222320329ff1293afd4986c28df9fd (diff) | |
parent | 5d34e16d3a1e6ef37d5e6d254063c342b0e5fe39 (diff) |
Merge pull request #5881
5d34e16 Add txn_clone.py test (Tom Harding)
defd2d5 Better txn_doublespend.py test (Tom Harding)
b2b3619 Implement CTransaction::IsEquivalentTo(...) (Tom Harding)
Diffstat (limited to 'src/primitives')
-rw-r--r-- | src/primitives/transaction.cpp | 9 | ||||
-rw-r--r-- | src/primitives/transaction.h | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index 606dbea798..d864a9b6d3 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -87,6 +87,15 @@ CTransaction& CTransaction::operator=(const CTransaction &tx) { return *this; } +bool CTransaction::IsEquivalentTo(const CTransaction& tx) const +{ + CMutableTransaction tx1 = *this; + CMutableTransaction tx2 = tx; + for (unsigned int i = 0; i < tx1.vin.size(); i++) tx1.vin[i].scriptSig = CScript(); + for (unsigned int i = 0; i < tx2.vin.size(); i++) tx2.vin[i].scriptSig = CScript(); + return CTransaction(tx1) == CTransaction(tx2); +} + CAmount CTransaction::GetValueOut() const { CAmount nValueOut = 0; diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 6cfd93a9a1..0c9ebb7b88 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -222,6 +222,9 @@ public: return hash; } + // True if only scriptSigs are different + bool IsEquivalentTo(const CTransaction& tx) const; + // Return sum of txouts. CAmount GetValueOut() const; // GetValueIn() is a method on CCoinsViewCache, because |