UNPKG

@bitgo/utxo-bin

Version:

Command-line utility for BitGo UTXO transactions

73 lines 8.4 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.cmdFromFixedScript = void 0; const utxolib = __importStar(require("@bitgo/utxo-lib")); const descriptor_1 = require("@bitgo/utxo-core/descriptor"); const args_1 = require("../../args"); const format_1 = require("../../format"); function mapKeyToNetwork(key, network) { key = utxolib.bip32.fromBase58(key.toBase58()); key.network = network; return key; } function mapRootWalletKeysToNetwork(rootWalletKeys, network) { return new utxolib.bitgo.RootWalletKeys(rootWalletKeys.triple.map((key) => mapKeyToNetwork(key, network)), rootWalletKeys.derivationPrefixes); } exports.cmdFromFixedScript = { command: 'fromFixedScript', describe: 'Convert BitGo FixedScript RootWalletKeys to output descriptors', builder(b) { return b.option((0, args_1.getNetworkOptionsDemand)('bitcoin')).options(args_1.keyOptions).options({ format: args_1.formatTreeOrJson }); }, handler(argv) { let rootWalletKeys = (0, args_1.getRootWalletKeys)(argv); if (argv.network !== utxolib.networks.bitcoin) { rootWalletKeys = mapRootWalletKeysToNetwork(rootWalletKeys, argv.network); } const descriptorMap = (0, descriptor_1.getNamedDescriptorsForRootWalletKeys)(rootWalletKeys); const obj = Object.fromEntries([...descriptorMap].map(([name, descriptor]) => [name, descriptor?.toString() ?? null])); if (argv.format === 'tree') { console.log((0, format_1.formatObjAsTree)('descriptors', obj)); } else if (argv.format === 'json') { console.log(JSON.stringify(obj, null, 2)); } else { throw new Error(`Invalid format: ${argv.format}. Expected 'tree' or 'json'.`); } }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUZpeGVkU2NyaXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NtZERlc2NyaXB0b3IvZnJvbUZpeGVkU2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHlEQUEyQztBQUMzQyw0REFBbUY7QUFFbkYscUNBT29CO0FBQ3BCLHlDQUErQztBQVMvQyxTQUFTLGVBQWUsQ0FBQyxHQUEyQixFQUFFLE9BQXdCO0lBQzVFLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN0QixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUNqQyxjQUE0QyxFQUM1QyxPQUF3QjtJQUV4QixPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQ3JDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFtQyxFQUNuRyxjQUFjLENBQUMsa0JBQWtCLENBQ2xDLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBd0Q7SUFDckYsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixRQUFRLEVBQUUsZ0VBQWdFO0lBQzFFLE9BQU8sQ0FBQyxDQUFDO1FBQ1AsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUEsOEJBQXVCLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSx1QkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsSUFBSSxjQUFjLEdBQUcsSUFBQSx3QkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxjQUFjLEdBQUcsMEJBQTBCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBQSxpREFBb0MsRUFBQyxjQUFjLENBQUMsQ0FBQztRQUMzRSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUM1QixDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUN2RixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSx3QkFBZSxFQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxNQUFNLDhCQUE4QixDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZE1vZHVsZSB9IGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGdldE5hbWVkRGVzY3JpcHRvcnNGb3JSb290V2FsbGV0S2V5cyB9IGZyb20gJ0BiaXRnby91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7XG4gIEZvcm1hdFRyZWVPckpzb24sXG4gIGZvcm1hdFRyZWVPckpzb24sXG4gIGdldE5ldHdvcmtPcHRpb25zRGVtYW5kLFxuICBnZXRSb290V2FsbGV0S2V5cyxcbiAga2V5T3B0aW9ucyxcbiAgS2V5T3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vYXJncyc7XG5pbXBvcnQgeyBmb3JtYXRPYmpBc1RyZWUgfSBmcm9tICcuLi8uLi9mb3JtYXQnO1xuXG50eXBlIFRyaXBsZTxUPiA9IFtULCBULCBUXTtcblxudHlwZSBBcmdzRml4ZWRTY3JpcHRUb0Rlc2NyaXB0b3IgPSBLZXlPcHRpb25zICYge1xuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcms7XG4gIGZvcm1hdDogRm9ybWF0VHJlZU9ySnNvbjtcbn07XG5cbmZ1bmN0aW9uIG1hcEtleVRvTmV0d29yayhrZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UsIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2Uge1xuICBrZXkgPSB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoa2V5LnRvQmFzZTU4KCkpO1xuICBrZXkubmV0d29yayA9IG5ldHdvcms7XG4gIHJldHVybiBrZXk7XG59XG5cbmZ1bmN0aW9uIG1hcFJvb3RXYWxsZXRLZXlzVG9OZXR3b3JrKFxuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzIHtcbiAgcmV0dXJuIG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKFxuICAgIHJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGtleSkgPT4gbWFwS2V5VG9OZXR3b3JrKGtleSwgbmV0d29yaykpIGFzIFRyaXBsZTx1dHhvbGliLkJJUDMySW50ZXJmYWNlPixcbiAgICByb290V2FsbGV0S2V5cy5kZXJpdmF0aW9uUHJlZml4ZXNcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNtZEZyb21GaXhlZFNjcmlwdDogQ29tbWFuZE1vZHVsZTx1bmtub3duLCBBcmdzRml4ZWRTY3JpcHRUb0Rlc2NyaXB0b3I+ID0ge1xuICBjb21tYW5kOiAnZnJvbUZpeGVkU2NyaXB0JyxcbiAgZGVzY3JpYmU6ICdDb252ZXJ0IEJpdEdvIEZpeGVkU2NyaXB0IFJvb3RXYWxsZXRLZXlzIHRvIG91dHB1dCBkZXNjcmlwdG9ycycsXG4gIGJ1aWxkZXIoYikge1xuICAgIHJldHVybiBiLm9wdGlvbihnZXROZXR3b3JrT3B0aW9uc0RlbWFuZCgnYml0Y29pbicpKS5vcHRpb25zKGtleU9wdGlvbnMpLm9wdGlvbnMoeyBmb3JtYXQ6IGZvcm1hdFRyZWVPckpzb24gfSk7XG4gIH0sXG4gIGhhbmRsZXIoYXJndik6IHZvaWQge1xuICAgIGxldCByb290V2FsbGV0S2V5cyA9IGdldFJvb3RXYWxsZXRLZXlzKGFyZ3YpO1xuICAgIGlmIChhcmd2Lm5ldHdvcmsgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbikge1xuICAgICAgcm9vdFdhbGxldEtleXMgPSBtYXBSb290V2FsbGV0S2V5c1RvTmV0d29yayhyb290V2FsbGV0S2V5cywgYXJndi5uZXR3b3JrKTtcbiAgICB9XG4gICAgY29uc3QgZGVzY3JpcHRvck1hcCA9IGdldE5hbWVkRGVzY3JpcHRvcnNGb3JSb290V2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cyk7XG4gICAgY29uc3Qgb2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgWy4uLmRlc2NyaXB0b3JNYXBdLm1hcCgoW25hbWUsIGRlc2NyaXB0b3JdKSA9PiBbbmFtZSwgZGVzY3JpcHRvcj8udG9TdHJpbmcoKSA/PyBudWxsXSlcbiAgICApO1xuICAgIGlmIChhcmd2LmZvcm1hdCA9PT0gJ3RyZWUnKSB7XG4gICAgICBjb25zb2xlLmxvZyhmb3JtYXRPYmpBc1RyZWUoJ2Rlc2NyaXB0b3JzJywgb2JqKSk7XG4gICAgfSBlbHNlIGlmIChhcmd2LmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShvYmosIG51bGwsIDIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZvcm1hdDogJHthcmd2LmZvcm1hdH0uIEV4cGVjdGVkICd0cmVlJyBvciAnanNvbicuYCk7XG4gICAgfVxuICB9LFxufTtcbiJdfQ==