UNPKG

@bitgo/utxo-bin

Version:

Command-line utility for BitGo UTXO transactions

71 lines 9.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatSat = formatSat; exports.formatTree = formatTree; exports.formatObjAsTree = formatObjAsTree; const chalk_1 = require("chalk"); const archy_1 = __importDefault(require("archy")); const Parser_1 = require("./Parser"); const parseUnknown_1 = require("./parseUnknown"); const hideDefault = ['pubkeys', 'sequence', 'locktime', 'scriptSig', 'witness']; function formatSat(v) { return (Number(v) / 1e8).toFixed(8); } function getDefaultChalk() { if (process.env.NO_COLOR) { return new chalk_1.Instance({ level: 0 }); } return new chalk_1.Instance(); } function formatTree(n, { hide = hideDefault, chalk = getDefaultChalk() } = {}) { function getLabel(label, v, { showUndefined } = { showUndefined: false }) { const arr = [chalk.bold(label)]; if (v === undefined) { if (showUndefined) { arr.push(chalk.dim('undefined')); } } else { arr.push(String(v)); } return arr.join(': '); } function getLabelFromValue(v) { switch (typeof v) { case 'undefined': return undefined; case 'boolean': case 'number': case 'string': case 'bigint': return String(v); case 'object': if (v === null) { return String(v); } if (Buffer.isBuffer(v)) { return `${v.toString('hex')} ${chalk.dim(`(${v.length} bytes)`)}`; } if (v instanceof Uint8Array) { return getLabelFromValue(Buffer.from(v)); } } throw new Error(`could not get label from value ${typeof v}`); } function toArchy(n) { return { label: getLabel(n.label, getLabelFromValue(n.value), { showUndefined: !Boolean(n.nodes?.length) }), nodes: n.nodes ? n.nodes.flatMap((e) => (hide.includes(e.label) ? [] : [toArchy(e)])) : undefined, }; } return (0, archy_1.default)(toArchy(n)); } function formatObjAsTree(label, obj, { hide = hideDefault, chalk = getDefaultChalk() } = {}) { const p = new Parser_1.Parser({ parseError: 'continue' }); const node = (0, parseUnknown_1.parseUnknown)(p, label, obj, { omit: hide }); return formatTree(node, { hide, chalk }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLDhCQUVDO0FBY0QsZ0NBbURDO0FBRUQsMENBUUM7QUFyRkQsaUNBQXdDO0FBQ3hDLGtEQUEwQjtBQUUxQixxQ0FBK0Q7QUFDL0QsaURBQThDO0FBRTlDLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLFNBQWdCLFNBQVMsQ0FBQyxDQUFrQjtJQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBT0QsU0FBUyxlQUFlO0lBQ3RCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksZ0JBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLElBQUksZ0JBQVEsRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFnQixVQUFVLENBQ3hCLENBQWEsRUFDYixFQUFFLElBQUksR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLGVBQWUsRUFBRSxLQUFvQixFQUFFO0lBRXJFLFNBQVMsUUFBUSxDQUNmLEtBQXNCLEVBQ3RCLENBQVcsRUFDWCxFQUFFLGFBQWEsS0FBaUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO1FBRXhFLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMs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IGFyY2h5IGZyb20gJ2FyY2h5JztcblxuaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJOb2RlLCBQYXJzZXJOb2RlVmFsdWUgfSBmcm9tICcuL1BhcnNlcic7XG5pbXBvcnQgeyBwYXJzZVVua25vd24gfSBmcm9tICcuL3BhcnNlVW5rbm93bic7XG5cbmNvbnN0IGhpZGVEZWZhdWx0ID0gWydwdWJrZXlzJywgJ3NlcXVlbmNlJywgJ2xvY2t0aW1lJywgJ3NjcmlwdFNpZycsICd3aXRuZXNzJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTYXQodjogbnVtYmVyIHwgYmlnaW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIChOdW1iZXIodikgLyAxZTgpLnRvRml4ZWQoOCk7XG59XG5cbnR5cGUgRm9ybWF0T3B0aW9ucyA9IHtcbiAgaGlkZT86IHN0cmluZ1tdO1xuICBjaGFsaz86IENoYWxrO1xufTtcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdENoYWxrKCk6IENoYWxrIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PX0NPTE9SKSB7XG4gICAgcmV0dXJuIG5ldyBJbnN0YW5jZSh7IGxldmVsOiAwIH0pO1xuICB9XG4gIHJldHVybiBuZXcgSW5zdGFuY2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRyZWUoXG4gIG46IFBhcnNlck5vZGUsXG4gIHsgaGlkZSA9IGhpZGVEZWZhdWx0LCBjaGFsayA9IGdldERlZmF1bHRDaGFsaygpIH06IEZvcm1hdE9wdGlvbnMgPSB7fVxuKTogc3RyaW5nIHtcbiAgZnVuY3Rpb24gZ2V0TGFiZWwoXG4gICAgbGFiZWw6IHN0cmluZyB8IG51bWJlcixcbiAgICB2PzogdW5rbm93bixcbiAgICB7IHNob3dVbmRlZmluZWQgfTogeyBzaG93VW5kZWZpbmVkOiBib29sZWFuIH0gPSB7IHNob3dVbmRlZmluZWQ6IGZhbHNlIH1cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcnIgPSBbY2hhbGsuYm9sZChsYWJlbCldO1xuICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChzaG93VW5kZWZpbmVkKSB7XG4gICAgICAgIGFyci5wdXNoKGNoYWxrLmRpbSgndW5kZWZpbmVkJykpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhcnIucHVzaChTdHJpbmcodikpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyLmpvaW4oJzogJyk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRMYWJlbEZyb21WYWx1ZSh2OiBQYXJzZXJOb2RlVmFsdWUpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIGlmICh2ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHYpKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3YudG9TdHJpbmcoJ2hleCcpfSAke2NoYWxrLmRpbShgKCR7di5sZW5ndGh9IGJ5dGVzKWApfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGdldExhYmVsRnJvbVZhbHVlKEJ1ZmZlci5mcm9tKHYpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBnZXQgbGFiZWwgZnJvbSB2YWx1ZSAke3R5cGVvZiB2fWApO1xuICB9XG5cbiAgZnVuY3Rpb24gdG9BcmNoeShuOiBQYXJzZXJOb2RlKTogYXJjaHkuRGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBnZXRMYWJlbChuLmxhYmVsLCBnZXRMYWJlbEZyb21WYWx1ZShuLnZhbHVlKSwgeyBzaG93VW5kZWZpbmVkOiAhQm9vbGVhbihuLm5vZGVzPy5sZW5ndGgpIH0pLFxuICAgICAgbm9kZXM6IG4ubm9kZXMgPyBuLm5vZGVzLmZsYXRNYXAoKGUpID0+IChoaWRlLmluY2x1ZGVzKGUubGFiZWwpID8gW10gOiBbdG9BcmNoeShlKV0pKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGFyY2h5KHRvQXJjaHkobikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0T2JqQXNUcmVlKFxuICBsYWJlbDogc3RyaW5nIHwgbnVtYmVyLFxuICBvYmo6IHVua25vd24sXG4gIHsgaGlkZSA9IGhpZGVEZWZhdWx0LCBjaGFsayA9IGdldERlZmF1bHRDaGFsaygpIH06IEZvcm1hdE9wdGlvbnMgPSB7fVxuKTogc3RyaW5nIHtcbiAgY29uc3QgcCA9IG5ldyBQYXJzZXIoeyBwYXJzZUVycm9yOiAnY29udGludWUnIH0pO1xuICBjb25zdCBub2RlID0gcGFyc2VVbmtub3duKHAsIGxhYmVsLCBvYmosIHsgb21pdDogaGlkZSB9KTtcbiAgcmV0dXJuIGZvcm1hdFRyZWUobm9kZSwgeyBoaWRlLCBjaGFsayB9KTtcbn1cbiJdfQ==