From 122b4a9fb38049089eb2abfea9a63a9a71f0d20d Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 6 Jan 2017 10:52:22 -0800 Subject: [PATCH] tx: refactor. --- lib/primitives/tx.js | 132 +++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/lib/primitives/tx.js b/lib/primitives/tx.js index a3532aec..850e35c3 100644 --- a/lib/primitives/tx.js +++ b/lib/primitives/tx.js @@ -1143,6 +1143,72 @@ TX.prototype.isFinal = function isFinal(height, ts) { return true; }; +/** + * Verify the nLockTime of a transaction. + * @param {Number} index - Index of input being verified. + * @param {Number} locktime - Locktime to verify against. + * @returns {Boolean} + */ + +TX.prototype.verifyLocktime = function verifyLocktime(index, locktime) { + var threshold = consensus.LOCKTIME_THRESHOLD; + var input = this.inputs[index]; + + if (!( + (this.locktime < threshold && locktime < threshold) + || (this.locktime >= threshold && locktime >= threshold) + )) { + return false; + } + + if (locktime > this.locktime) + return false; + + if (input.sequence === 0xffffffff) + return false; + + return true; +}; + +/** + * Verify the nSequence locktime of a transaction. + * @param {Number} index - Index of input being verified. + * @param {Number} sequence - Locktime to verify against. + * @returns {Boolean} + */ + +TX.prototype.verifySequence = function verifySequence(index, sequence) { + var input = this.inputs[index]; + var mask, seq1, seq2; + + if ((sequence & consensus.SEQUENCE_DISABLE_FLAG) !== 0) + return true; + + if (this.version < 2) + return false; + + if (input.sequence & consensus.SEQUENCE_DISABLE_FLAG) + return false; + + mask = consensus.SEQUENCE_TYPE_FLAG | consensus.SEQUENCE_MASK; + seq1 = input.sequence & mask; + seq2 = sequence & mask; + + if (!( + (seq1 < consensus.SEQUENCE_TYPE_FLAG + && seq2 < consensus.SEQUENCE_TYPE_FLAG) + || (seq1 >= consensus.SEQUENCE_TYPE_FLAG + && seq2 >= consensus.SEQUENCE_TYPE_FLAG) + )) { + return false; + } + + if (seq2 > seq1) + return false; + + return true; +}; + /** * Calculate legacy (inaccurate) sigop count. * @returns {Number} sigop count @@ -2552,72 +2618,6 @@ TX.isTX = function isTX(obj) { && typeof obj.witnessHash === 'function'; }; -/** - * Verify the nLockTime of a transaction. - * @param {Number} index - Index of input being verified. - * @param {Number} locktime - Locktime to verify against (max=u32). - * @returns {Boolean} - */ - -TX.prototype.verifyLocktime = function verifyLocktime(index, locktime) { - var threshold = consensus.LOCKTIME_THRESHOLD; - var input = this.inputs[index]; - - if (!( - (this.locktime < threshold && locktime < threshold) - || (this.locktime >= threshold && locktime >= threshold) - )) { - return false; - } - - if (locktime > this.locktime) - return false; - - if (input.sequence === 0xffffffff) - return false; - - return true; -}; - -/** - * Verify the nSequence locktime of a transaction. - * @param {Number} index - Index of input being verified. - * @param {Number} sequence - Locktime to verify against (max=u32). - * @returns {Boolean} - */ - -TX.prototype.verifySequence = function verifySequence(index, sequence) { - var input = this.inputs[index]; - var mask, seq1, seq2; - - if ((sequence & consensus.SEQUENCE_DISABLE_FLAG) !== 0) - return true; - - if (this.version < 2) - return false; - - if (input.sequence & consensus.SEQUENCE_DISABLE_FLAG) - return false; - - mask = consensus.SEQUENCE_TYPE_FLAG | consensus.SEQUENCE_MASK; - seq1 = input.sequence & mask; - seq2 = sequence & mask; - - if (!( - (seq1 < consensus.SEQUENCE_TYPE_FLAG - && seq2 < consensus.SEQUENCE_TYPE_FLAG) - || (seq1 >= consensus.SEQUENCE_TYPE_FLAG - && seq2 >= consensus.SEQUENCE_TYPE_FLAG) - )) { - return false; - } - - if (seq2 > seq1) - return false; - - return true; -}; - /* * Helpers */