add spendable checking for checklocktimeverify.

This commit is contained in:
Christopher Jeffrey 2015-12-17 15:57:49 -08:00
parent 5e89aedf0b
commit 6caa6b91dd

View File

@ -789,7 +789,7 @@ script.standard = function standard(s) {
|| (script.isMultisig(s) && 'multisig')
|| (script.isScripthash(s) && 'scripthash')
|| (script.isColored(s) && 'colored')
|| 'nonstandard';
|| null;
};
script.lockTime = function lockTime(s) {
@ -800,6 +800,17 @@ script.lockTime = function lockTime(s) {
&& new bn(s[0]);
};
script.spendable = function spendable(s, lockTime) {
if (!script.standard(s))
return false;
var lock = script.lockTime(s);
if (lock && lock.toNumber() > lockTime)
return false;
return true;
};
script.isPubkey = function isPubkey(s, key) {
if (script.lockTime(s))
s = s.slice(3);
@ -927,7 +938,7 @@ script.standardInput = function standardInput(s) {
|| (script.isPubkeyhashInput(s) && 'pubkeyhash')
|| (script.isScripthashInput(s) && 'scripthash')
|| (script.isMultisigInput(s) && 'multisig')
|| 'nonstandard';
|| null;
};
script.isPubkeyInput = function isPubkeyInput(s, key) {
@ -937,6 +948,8 @@ script.isPubkeyInput = function isPubkeyInput(s, key) {
if (s.length !== 1 || !Array.isArray(s[0]))
return false;
// return script.isValidSig(s[0]);
return 9 <= s[0].length && s[0].length <= 73;
};
@ -944,6 +957,9 @@ script.isPubkeyhashInput = function isPubkeyhashInput(s, key) {
if (s.length !== 2 || !Array.isArray(s[0]) || !Array.isArray(s[1]))
return false;
// var ret = script.isValidSig(s[0]) &&
// 33 <= s[1].length && s[1].length <= 65;
var ret = 9 <= s[0].length && s[0].length <= 73 &&
33 <= s[1].length && s[1].length <= 65;