PHP WebShell

Текущая директория: /opt/BitGoJS/modules/utxo-bin/dist/src/commands/cmdPsbt

Просмотр файла: withPsbt.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.withPsbtOptions = void 0;
exports.getOrCreatePsbt = getOrCreatePsbt;
exports.emitOutput = emitOutput;
exports.withPsbt = withPsbt;
const fs = require("fs/promises");
const utxolib = require("@bitgo/utxo-lib");
const args_1 = require("../../args");
const buffer_1 = require("buffer");
exports.withPsbtOptions = {
    ...args_1.readStringOptions,
    ...(0, args_1.getNetworkOptionsDemand)('bitcoin'),
    create: { type: 'boolean', default: false },
    edit: { type: 'boolean', default: false },
    out: { type: 'string' },
};
async function getOrCreatePsbt(args) {
    let psbt;
    try {
        psbt = await (0, args_1.argToString)({ path: args.path, stdin: false });
    }
    catch (e) {
        // check for ENOENT
        if (e.code !== 'ENOENT') {
            throw e;
        }
    }
    if (psbt) {
        if (args.expectEmpty) {
            throw new Error(`psbt is not empty (path=${args.path})`);
        }
        const buffer = utxolib.bitgo.toPsbtBuffer(psbt);
        return utxolib.Psbt.fromBuffer(buffer, { network: args.network });
    }
    if (args.create) {
        return new utxolib.Psbt({ network: args.network });
    }
    throw new Error(`missing psbt (path=${args.path})`);
}
async function emitOutput(value, args) {
    if (value instanceof utxolib.Psbt) {
        value = value.toBase64();
    }
    if (value instanceof buffer_1.Buffer) {
        value = value.toString('hex');
    }
    if (args.edit || args.out) {
        if (args.edit && args.out) {
            throw new Error('cannot specify both edit and out');
        }
        const path = args.edit ? args.path : args.out;
        if (!path) {
            throw new Error('missing out path');
        }
        await fs.writeFile(path, value);
    }
    else {
        console.log(value);
    }
}
async function withPsbt(args, fn) {
    const psbt = await getOrCreatePsbt(args);
    await emitOutput(await fn(psbt), args);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kUHNidC93aXRoUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQ0EsMENBcUJDO0FBRUQsZ0NBcUJDO0FBRUQsNEJBTUM7QUFwRkQsa0NBQWtDO0FBQ2xDLDJDQUEyQztBQUUzQyxxQ0FBcUY7QUFDckYsbUNBQWdDO0FBb0JuQixRQUFBLGVBQWUsR0FBRztJQUM3QixHQUFHLHdCQUFpQjtJQUNwQixHQUFHLElBQUEsOEJBQXVCLEVBQUMsU0FBUyxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtJQUMzQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDekMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtDQUNmLENBQUM7QUFFSixLQUFLLFVBQVUsZUFBZSxDQUFDLElBQWU7SUFDbkQsSUFBSSxJQUF3QixDQUFDO0lBQzdCLElBQUksQ0FBQztRQUNILElBQUksR0FBRyxNQUFNLElBQUEsa0JBQVcsRUFBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsbUJBQW1CO1FBQ25CLElBQUssQ0FBMkIsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkQsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FBQyxLQUFxQyxFQUFFLElBQTRCO0lBQ2xHLElBQUksS0FBSyxZQUFZLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUssWUFBWSxlQUFNLEVBQUUsQ0FBQztRQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLFFBQVEsQ0FDNUIsSUFBNEIsRUFDNUIsRUFBMEQ7SUFFMUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgYXJnVG9TdHJpbmcsIGdldE5ldHdvcmtPcHRpb25zRGVtYW5kLCByZWFkU3RyaW5nT3B0aW9ucyB9IGZyb20gJy4uLy4uL2FyZ3MnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcblxudHlwZSBJbnB1dEFyZ3MgPSB7XG4gIC8qKiBwYXRoIHRvIHBzYnQgZmlsZSAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogd2hlbiBzZXQsIGNyZWF0ZSBhIG5ldyBwc2J0ICovXG4gIGNyZWF0ZT86IGJvb2xlYW47XG4gIC8qKiBuZXR3b3JrICovXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgLyoqIGV4cGVjdCBlbXB0eSBwc2J0ICovXG4gIGV4cGVjdEVtcHR5PzogYm9vbGVhbjtcbn07XG50eXBlIE91dHB1dEFyZ3MgPSB7XG4gIC8qKiBlZGl0IHRoZSBpbnB1dCBmaWxlICovXG4gIGVkaXQ6IGJvb2xlYW47XG4gIC8qKiBvdXRwdXQgcGF0aCAqL1xuICBvdXQ/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgV2l0aFBzYnRPcHRpb25zID0gSW5wdXRBcmdzICYgT3V0cHV0QXJncztcblxuZXhwb3J0IGNvbnN0IHdpdGhQc2J0T3B0aW9ucyA9IHtcbiAgLi4ucmVhZFN0cmluZ09wdGlvbnMsXG4gIC4uLmdldE5ldHdvcmtPcHRpb25zRGVtYW5kKCdiaXRjb2luJyksXG4gIGNyZWF0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0sXG4gIGVkaXQ6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9LFxuICBvdXQ6IHsgdHlwZTogJ3N0cmluZycgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPckNyZWF0ZVBzYnQoYXJnczogSW5wdXRBcmdzKTogUHJvbWlzZTx1dHhvbGliLlBzYnQ+IHtcbiAgbGV0IHBzYnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBwc2J0ID0gYXdhaXQgYXJnVG9TdHJpbmcoeyBwYXRoOiBhcmdzLnBhdGgsIHN0ZGluOiBmYWxzZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIGNoZWNrIGZvciBFTk9FTlRcbiAgICBpZiAoKGUgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlICE9PSAnRU5PRU5UJykge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbiAgaWYgKHBzYnQpIHtcbiAgICBpZiAoYXJncy5leHBlY3RFbXB0eSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBwc2J0IGlzIG5vdCBlbXB0eSAocGF0aD0ke2FyZ3MucGF0aH0pYCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1ZmZlciA9IHV0eG9saWIuYml0Z28udG9Qc2J0QnVmZmVyKHBzYnQpO1xuICAgIHJldHVybiB1dHhvbGliLlBzYnQuZnJvbUJ1ZmZlcihidWZmZXIsIHsgbmV0d29yazogYXJncy5uZXR3b3JrIH0pO1xuICB9XG4gIGlmIChhcmdzLmNyZWF0ZSkge1xuICAgIHJldHVybiBuZXcgdXR4b2xpYi5Qc2J0KHsgbmV0d29yazogYXJncy5uZXR3b3JrIH0pO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBwc2J0IChwYXRoPSR7YXJncy5wYXRofSlgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVtaXRPdXRwdXQodmFsdWU6IHV0eG9saWIuUHNidCB8IEJ1ZmZlciB8IHN0cmluZywgYXJnczogSW5wdXRBcmdzICYgT3V0cHV0QXJncyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnRvQmFzZTY0KCk7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIGlmIChhcmdzLmVkaXQgfHwgYXJncy5vdXQpIHtcbiAgICBpZiAoYXJncy5lZGl0ICYmIGFyZ3Mub3V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBzcGVjaWZ5IGJvdGggZWRpdCBhbmQgb3V0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSBhcmdzLmVkaXQgPyBhcmdzLnBhdGggOiBhcmdzLm91dDtcbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBvdXQgcGF0aCcpO1xuICAgIH1cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aCwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2l0aFBzYnQoXG4gIGFyZ3M6IElucHV0QXJncyAmIE91dHB1dEFyZ3MsXG4gIGZuOiAocHNidDogdXR4b2xpYi5Qc2J0KSA9PiBQcm9taXNlPHV0eG9saWIuUHNidCB8IEJ1ZmZlcj5cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwc2J0ID0gYXdhaXQgZ2V0T3JDcmVhdGVQc2J0KGFyZ3MpO1xuICBhd2FpdCBlbWl0T3V0cHV0KGF3YWl0IGZuKHBzYnQpLCBhcmdzKTtcbn1cbiJdfQ==

Выполнить команду


Для локальной разработки. Не используйте в интернете!