diff --git a/src/main.cpp b/src/main.cpp index b947f717e9..969fe90b2d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -733,7 +733,7 @@ bool IsFinalTx(const CTransaction &tx, int nBlockHeight, int64_t nBlockTime) bool fFinalized = true; BOOST_FOREACH(const CTxIn& txin, tx.vin) - fFinalized = fFinalized && txin.IsFinal(); + fFinalized = fFinalized && !~txin.nSequence; if (!fFinalized && (int64_t)tx.nLockTime >= ((int64_t)tx.nLockTime < LOCKTIME_THRESHOLD ? (int64_t)nBlockHeight : nBlockTime)) return false; diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index 336151905c..4bf7faae09 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -37,7 +37,7 @@ std::string CTxIn::ToString() const str += strprintf(", coinbase %s", HexStr(scriptSig)); else str += strprintf(", scriptSig=%s", scriptSig.ToString().substr(0,24)); - if (nSequence != std::numeric_limits::max()) + if (~nSequence) str += strprintf(", nSequence=%u", nSequence); str += ")"; return str; diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index a7a1e013ed..d7422c1f3e 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -62,11 +62,11 @@ public: CTxIn() { - nSequence = std::numeric_limits::max(); + nSequence = ~(uint32_t)0; } - explicit CTxIn(COutPoint prevoutIn, CScript scriptSigIn=CScript(), uint32_t nSequenceIn=std::numeric_limits::max()); - CTxIn(uint256 hashPrevTx, uint32_t nOut, CScript scriptSigIn=CScript(), uint32_t nSequenceIn=std::numeric_limits::max()); + explicit CTxIn(COutPoint prevoutIn, CScript scriptSigIn=CScript(), uint32_t nSequenceIn=~(uint32_t)0); + CTxIn(uint256 hashPrevTx, uint32_t nOut, CScript scriptSigIn=CScript(), uint32_t nSequenceIn=~(uint32_t)0); ADD_SERIALIZE_METHODS; @@ -77,11 +77,6 @@ public: READWRITE(nSequence); } - bool IsFinal() const - { - return (nSequence == std::numeric_limits::max()); - } - friend bool operator==(const CTxIn& a, const CTxIn& b) { return (a.prevout == b.prevout && diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index a084a145c8..d96eff1d7a 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -71,7 +71,7 @@ CMutableTransaction BuildCreditingTransaction(const CScript& scriptPubKey) txCredit.vout.resize(1); txCredit.vin[0].prevout.SetNull(); txCredit.vin[0].scriptSig = CScript() << CScriptNum(0) << CScriptNum(0); - txCredit.vin[0].nSequence = std::numeric_limits::max(); + txCredit.vin[0].nSequence = ~(uint32_t)0; txCredit.vout[0].scriptPubKey = scriptPubKey; txCredit.vout[0].nValue = 0; @@ -88,7 +88,7 @@ CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CMu txSpend.vin[0].prevout.hash = txCredit.GetHash(); txSpend.vin[0].prevout.n = 0; txSpend.vin[0].scriptSig = scriptSig; - txSpend.vin[0].nSequence = std::numeric_limits::max(); + txSpend.vin[0].nSequence = ~(uint32_t)0; txSpend.vout[0].scriptPubKey = CScript(); txSpend.vout[0].nValue = 0;