Source: script.js

/**
 * This module provides functions for converting generic bitcoin
 * scripts to hex or opcodes.
 * 
 * @module script
 */

import {script} from "bitcoinjs-lib";

/**
 * Extracts the ASM (opcode) representation of a script from a
 * `Multisig` object.
 * 
 * @param {Multisig} multisig - Multisig object
 * @returns {string} ASM representation of script
 * @example
 * import {
 *   generateMultisigFromPublicKeys, MAINNET, P2SH,
 *   scriptToOps,
 * } from "unchained-bitcoin";
 * const multisig = generateMultisigFromPublicKeys(MAINNET, P2SH, 1, "03a...", "03b...");
 * console.log(scriptToOps(multisig)) // "OP_1 03a... 03b... OP_2 OP_CHECKMULTISIG"
 * 
 */
export function scriptToOps(multisig) {
  return script.toASM(multisig.output);
}

/**
 * Extracts the hex representation of a script from a `Multisig`
 * object.
 * 
 * @param {Multisig} multisigScript - Multisig object
 * @returns {string} hex representation of script
 * @example
 * import {
 *   generateMultisigFromPublicKeys, MAINNET, P2SH,
 *   scriptToHex,
 * } from "unchained-bitcoin";
 * const multisig = generateMultisigFromPublicKeys(MAINNET, P2SH, 1, "03a...", "03b...");
 * console.log(scriptToHex(multisig)) // "5121024f355bdcb...5871aa52ae"
 * 
 */
export function scriptToHex(multisigScript) {
  return multisigScript.output.toString('hex');
}