move sigop counting to checkInputs.

This commit is contained in:
Christopher Jeffrey 2016-02-19 04:16:01 -08:00
parent 9bc3e44a7f
commit 9ff7e93c71
2 changed files with 17 additions and 17 deletions

View File

@ -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);

View File

@ -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;