move sigop counting to checkInputs.
This commit is contained in:
parent
9bc3e44a7f
commit
9ff7e93c71
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user