UNPKG

@bitgo/utxo-lib

Version:

Client-side Bitcoin JavaScript library

22 lines 3.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isP2wsh = isP2wsh; exports.isP2wpkh = isP2wpkh; exports.isTaproot = isTaproot; exports.isSegwit = isSegwit; const opcodes = require("bitcoin-ops"); function isP2wsh(scriptPubkey, redeemScript) { const witnessProgramCandidate = redeemScript ?? scriptPubkey; return witnessProgramCandidate[0] === opcodes.OP_0 && witnessProgramCandidate.length === 34; } function isP2wpkh(scriptPubkey, redeemScript) { const witnessProgramCandidate = redeemScript ?? scriptPubkey; return witnessProgramCandidate[0] === opcodes.OP_0 && witnessProgramCandidate.length === 22; } function isTaproot(scriptPubkey) { return scriptPubkey[0] === opcodes.OP_1 && scriptPubkey.length === 34; } function isSegwit(scriptPubkey, redeemScript) { return isTaproot(scriptPubkey) || isP2wsh(scriptPubkey, redeemScript) || isP2wpkh(scriptPubkey, redeemScript); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0VHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vcHNidC9zY3JpcHRUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDBCQUdDO0FBRUQsNEJBR0M7QUFFRCw4QkFFQztBQUVELDRCQUVDO0FBbEJELHVDQUF1QztBQUV2QyxTQUFnQixPQUFPLENBQUMsWUFBb0IsRUFBRSxZQUFxQjtJQUNqRSxNQUFNLHVCQUF1QixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUM7SUFDN0QsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLHVCQUF1QixDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7QUFDOUYsQ0FBQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxZQUFvQixFQUFFLFlBQXFCO0lBQ2xFLE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxJQUFJLFlBQVksQ0FBQztJQUM3RCxPQUFPLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLElBQUksdUJBQXVCLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQztBQUM5RixDQUFDO0FBRUQsU0FBZ0IsU0FBUyxDQUFDLFlBQW9CO0lBQzVDLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxZQUFvQixFQUFFLFlBQXFCO0lBQ2xFLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNoSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3Bjb2RlcyBmcm9tICdiaXRjb2luLW9wcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Ayd3NoKHNjcmlwdFB1YmtleTogQnVmZmVyLCByZWRlZW1TY3JpcHQ/OiBCdWZmZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgd2l0bmVzc1Byb2dyYW1DYW5kaWRhdGUgPSByZWRlZW1TY3JpcHQgPz8gc2NyaXB0UHVia2V5O1xuICByZXR1cm4gd2l0bmVzc1Byb2dyYW1DYW5kaWRhdGVbMF0gPT09IG9wY29kZXMuT1BfMCAmJiB3aXRuZXNzUHJvZ3JhbUNhbmRpZGF0ZS5sZW5ndGggPT09IDM0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQMndwa2goc2NyaXB0UHVia2V5OiBCdWZmZXIsIHJlZGVlbVNjcmlwdD86IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICBjb25zdCB3aXRuZXNzUHJvZ3JhbUNhbmRpZGF0ZSA9IHJlZGVlbVNjcmlwdCA/PyBzY3JpcHRQdWJrZXk7XG4gIHJldHVybiB3aXRuZXNzUHJvZ3JhbUNhbmRpZGF0ZVswXSA9PT0gb3Bjb2Rlcy5PUF8wICYmIHdpdG5lc3NQcm9ncmFtQ2FuZGlkYXRlLmxlbmd0aCA9PT0gMjI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RhcHJvb3Qoc2NyaXB0UHVia2V5OiBCdWZmZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIHNjcmlwdFB1YmtleVswXSA9PT0gb3Bjb2Rlcy5PUF8xICYmIHNjcmlwdFB1YmtleS5sZW5ndGggPT09IDM0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWd3aXQoc2NyaXB0UHVia2V5OiBCdWZmZXIsIHJlZGVlbVNjcmlwdD86IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNUYXByb290KHNjcmlwdFB1YmtleSkgfHwgaXNQMndzaChzY3JpcHRQdWJrZXksIHJlZGVlbVNjcmlwdCkgfHwgaXNQMndwa2goc2NyaXB0UHVia2V5LCByZWRlZW1TY3JpcHQpO1xufVxuIl19