UNPKG

@bitgo/utxo-lib

Version:

Client-side Bitcoin JavaScript library

23 lines 3 kB
"use strict"; // [signatures ...] Object.defineProperty(exports, "__esModule", { value: true }); exports.check = check; 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); } check.toJSON = () => { return 'taproot n-of-n input'; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3RhcHJvb3Rub2ZuL2lucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtQkFBbUI7O0FBVW5CLHNCQVVDO0FBakJELDhCQUEyQztBQUMzQyw4QkFBaUM7QUFFakMsU0FBUyxrQkFBa0IsQ0FBQyxLQUFzQjtJQUNoRCxPQUFPLEtBQUssS0FBSyxXQUFPLENBQUMsSUFBSSxJQUFJLFVBQU8sQ0FBQywyQkFBMkIsQ0FBQyxLQUFlLENBQUMsQ0FBQztBQUN4RixDQUFDO0FBRUQsU0FBZ0IsS0FBSyxDQUFDLE1BQXNCLEVBQUUsZUFBeUI7SUFDckUsTUFBTSxNQUFNLEdBQUcsVUFBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQVUsQ0FBQztJQUNsRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXBDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsbUVBQW1FO1FBQ25FLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxXQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELE9BQVEsTUFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDekUsQ0FBQztBQUNELEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBVyxFQUFFO0lBQzFCLE9BQU8sc0JBQXNCLENBQUM7QUFDaEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gW3NpZ25hdHVyZXMgLi4uXVxuXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgeyBzY3JpcHQgYXMgYnNjcmlwdCB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgeyBvcGNvZGVzIH0gZnJvbSAnLi4vLi4vJztcblxuZnVuY3Rpb24gaXNQYXJ0aWFsU2lnbmF0dXJlKHZhbHVlOiBudW1iZXIgfCBCdWZmZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvcGNvZGVzLk9QXzAgfHwgYnNjcmlwdC5pc0Nhbm9uaWNhbFNjaG5vcnJTaWduYXR1cmUodmFsdWUgYXMgQnVmZmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKHNjcmlwdDogQnVmZmVyIHwgU3RhY2ssIGFsbG93SW5jb21wbGV0ZT86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgY29uc3QgY2h1bmtzID0gYnNjcmlwdC5kZWNvbXBpbGUoc2NyaXB0KSBhcyBTdGFjaztcbiAgaWYgKGNodW5rcy5sZW5ndGggPCAxKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKGFsbG93SW5jb21wbGV0ZSkge1xuICAgIC8vIERvbid0IG1hdGNoIGNvbXBsZXRlbHkgdW5zaWduZWQgdG8gYXZvaWQgY29sbGlkaW5nIHdpdGggbXVsdGlzaWdcbiAgICByZXR1cm4gY2h1bmtzLmV2ZXJ5KGlzUGFydGlhbFNpZ25hdHVyZSkgJiYgY2h1bmtzLnNvbWUoKGNodW5rKSA9PiBjaHVuayAhPT0gb3Bjb2Rlcy5PUF8wKTtcbiAgfVxuXG4gIHJldHVybiAoY2h1bmtzIGFzIEJ1ZmZlcltdKS5ldmVyeShic2NyaXB0LmlzQ2Fub25pY2FsU2Nobm9yclNpZ25hdHVyZSk7XG59XG5jaGVjay50b0pTT04gPSAoKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuICd0YXByb290IG4tb2YtbiBpbnB1dCc7XG59O1xuIl19