@bitgo-beta/utxo-lib
Version:
Client-side Bitcoin JavaScript library
24 lines • 3.02 kB
JavaScript
;
// [signatures ...]
Object.defineProperty(exports, "__esModule", { value: true });
exports.check = void 0;
const __1 = require("../../");
const __2 = require("../../");
function isPartialSignature(value) {
return value === __2.opcodes.OP_0 || __1.script.isCanonicalSchnorrSignature(value);
}
function check(script, allowIncomplete) {
const chunks = __1.script.decompile(script);
if (chunks.length < 1)
return false;
if (allowIncomplete) {
// Don't match completely unsigned to avoid colliding with multisig
return chunks.every(isPartialSignature) && chunks.some((chunk) => chunk !== __2.opcodes.OP_0);
}
return chunks.every(__1.script.isCanonicalSchnorrSignature);
}
exports.check = check;
check.toJSON = () => {
return 'taproot n-of-n input';
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3RhcHJvb3Rub2ZuL2lucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtQkFBbUI7OztBQUduQiw4QkFBMkM7QUFDM0MsOEJBQWlDO0FBRWpDLFNBQVMsa0JBQWtCLENBQUMsS0FBc0I7SUFDaEQsT0FBTyxLQUFLLEtBQUssV0FBTyxDQUFDLElBQUksSUFBSSxVQUFPLENBQUMsMkJBQTJCLENBQUMsS0FBZSxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELFNBQWdCLEtBQUssQ0FBQyxNQUFzQixFQUFFLGVBQXlCO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLFVBQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFVLENBQUM7SUFDbEQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUVwQyxJQUFJLGVBQWUsRUFBRTtRQUNuQixtRUFBbUU7UUFDbkUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFdBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzRjtJQUVELE9BQVEsTUFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDekUsQ0FBQztBQVZELHNCQVVDO0FBQ0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFXLEVBQUU7SUFDMUIsT0FBTyxzQkFBc0IsQ0FBQztBQUNoQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBbc2lnbmF0dXJlcyAuLi5dXG5cbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vLi4vJztcbmltcG9ydCB7IHNjcmlwdCBhcyBic2NyaXB0IH0gZnJvbSAnLi4vLi4vJztcbmltcG9ydCB7IG9wY29kZXMgfSBmcm9tICcuLi8uLi8nO1xuXG5mdW5jdGlvbiBpc1BhcnRpYWxTaWduYXR1cmUodmFsdWU6IG51bWJlciB8IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgPT09IG9wY29kZXMuT1BfMCB8fCBic2NyaXB0LmlzQ2Fub25pY2FsU2Nobm9yclNpZ25hdHVyZSh2YWx1ZSBhcyBCdWZmZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2soc2NyaXB0OiBCdWZmZXIgfCBTdGFjaywgYWxsb3dJbmNvbXBsZXRlPzogYm9vbGVhbik6IGJvb2xlYW4ge1xuICBjb25zdCBjaHVua3MgPSBic2NyaXB0LmRlY29tcGlsZShzY3JpcHQpIGFzIFN0YWNrO1xuICBpZiAoY2h1bmtzLmxlbmd0aCA8IDEpIHJldHVybiBmYWxzZTtcblxuICBpZiAoYWxsb3dJbmNvbXBsZXRlKSB7XG4gICAgLy8gRG9uJ3QgbWF0Y2ggY29tcGxldGVseSB1bnNpZ25lZCB0byBhdm9pZCBjb2xsaWRpbmcgd2l0aCBtdWx0aXNpZ1xuICAgIHJldHVybiBjaHVua3MuZXZlcnkoaXNQYXJ0aWFsU2lnbmF0dXJlKSAmJiBjaHVua3Muc29tZSgoY2h1bmspID0+IGNodW5rICE9PSBvcGNvZGVzLk9QXzApO1xuICB9XG5cbiAgcmV0dXJuIChjaHVua3MgYXMgQnVmZmVyW10pLmV2ZXJ5KGJzY3JpcHQuaXNDYW5vbmljYWxTY2hub3JyU2lnbmF0dXJlKTtcbn1cbmNoZWNrLnRvSlNPTiA9ICgpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gJ3RhcHJvb3Qgbi1vZi1uIGlucHV0Jztcbn07XG4iXX0=