add spendable checking for checklocktimeverify.
This commit is contained in:
parent
5e89aedf0b
commit
6caa6b91dd
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user