@bitgo/utxo-bin
Version:
Command-line utility for BitGo UTXO transactions
73 lines • 8.4 kB
JavaScript
;
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==