From 9ff7e93c7191e50bd7fe5efb19e1a223ef52e4a8 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 19 Feb 2016 04:16:01 -0800 Subject: [PATCH] move sigop counting to checkInputs. --- lib/bcoin/chain.js | 28 ++++++++++++++-------------- lib/bcoin/script.js | 6 +++--- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/bcoin/chain.js b/lib/bcoin/chain.js index 6855c1fa..abdd7124 100644 --- a/lib/bcoin/chain.js +++ b/lib/bcoin/chain.js @@ -378,7 +378,6 @@ Chain.prototype._verifyContext = function _verifyContext(block, prev, callback) Chain.prototype._verify = function _verify(block, prev) { var flags = constants.flags.MANDATORY_VERIFY_FLAGS; - var sigops = 0; var height, ts, i, tx, cb, coinbaseHeight, medianTime, locktimeMedian; // Skip the genesis block @@ -490,19 +489,6 @@ Chain.prototype._verify = function _verify(block, prev) { utils.debug('TX is not final: %s (%s)', block.rhash, i); return false; } - - // Check for block sigops limits - // Start counting P2SH sigops once block - // timestamps reach March 31st, 2012. - if (block.ts >= constants.block.bip16time) - sigops += tx.getSigops(true); - else - sigops += tx.getSigops(); - - if (sigops > constants.script.maxBlockSigops) { - utils.debug('Block has too many sigops: %s', block.rhash); - return false; - } } return flags; @@ -575,6 +561,7 @@ Chain.prototype._checkInputs = function _checkInputs(block, prev, flags, callbac this._fillBlock(block, function(err) { var i, j, input, hash; + var sigops = 0; if (err) return callback(err); @@ -617,6 +604,19 @@ Chain.prototype._checkInputs = function _checkInputs(block, prev, flags, callbac return callback(null, false); } } + + // Check for block sigops limits + // Start counting P2SH sigops once block + // timestamps reach March 31st, 2012. + if (block.ts >= constants.block.bip16time) + sigops += tx.getSigops(true); + else + sigops += tx.getSigops(); + + if (sigops > constants.script.maxBlockSigops) { + utils.debug('Block has too many sigops: %s', block.rhash); + return callback(null, false); + } } return callback(null, true); diff --git a/lib/bcoin/script.js b/lib/bcoin/script.js index 7357a5c9..76314562 100644 --- a/lib/bcoin/script.js +++ b/lib/bcoin/script.js @@ -1337,11 +1337,11 @@ script.size = script.getSize; script.isEncoded = function isEncoded(s) { var i, b; - if (!Array.isArray(data)) + if (!Array.isArray(s)) return false; - for (i = 0; i < data.length; i++) { - b = data[i]; + for (i = 0; i < s.length; i++) { + b = s[i]; if (typeof b !== 'number') return false;