UNPKG

@bitgo/utxo-bin

Version:

Command-line utility for BitGo UTXO transactions

75 lines 8.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bitcoinRegtest = void 0; exports.getNetworkForName = getNetworkForName; exports.getNetworkName = getNetworkName; exports.getNetworkList = getNetworkList; exports.getNetwork = getNetwork; exports.getNetworkOptions = getNetworkOptions; exports.getNetworkOptionsDemand = getNetworkOptionsDemand; const utxolib = require("@bitgo/utxo-lib"); const utxo_lib_1 = require("@bitgo/utxo-lib"); exports.bitcoinRegtest = { ...utxolib.networks.testnet, bech32: 'bcrt', }; function getNetworkForName(name) { if (name === 'bitcoinRegtest') { return exports.bitcoinRegtest; } const network = utxolib.networks[name]; if (!network) { throw new Error(`invalid network ${name}`); } return network; } function getNetworkName(network) { if (network === exports.bitcoinRegtest) { return 'bitcoinRegtest'; } return utxolib.getNetworkName(network); } const networkOrder = [ utxolib.networks.bitcoin, utxolib.networks.bitcoincash, utxolib.networks.bitcoingold, utxolib.networks.bitcoinsv, utxolib.networks.dash, utxolib.networks.dogecoin, utxolib.networks.ecash, utxolib.networks.litecoin, utxolib.networks.zcash, ]; function getNetworkOrderIndex(network) { if (network === exports.bitcoinRegtest) { network = utxolib.networks.bitcoin; } network = (0, utxo_lib_1.getMainnet)(network); const index = networkOrder.indexOf(network); if (index === -1) { throw new Error(`unknown network ${network}`); } return index; } function getNetworkList() { return [...utxolib.getNetworkList(), exports.bitcoinRegtest].sort((a, b) => getNetworkOrderIndex(a) - getNetworkOrderIndex(b) || getNetworkName(a).localeCompare(getNetworkName(b))); } function getNetwork(argv) { return getNetworkForName(argv.network); } function getNetworkOptions(defaultValue) { return { network: { type: 'string', description: 'network name', default: defaultValue, coerce: getNetworkForName, }, }; } function getNetworkOptionsDemand(defaultValue) { return { network: { ...getNetworkOptions(defaultValue).network, demandOption: true }, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyZ3MvcGFyc2VOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLDhDQVNDO0FBRUQsd0NBS0M7QUEwQkQsd0NBSUM7QUFFRCxnQ0FFQztBQVdELDhDQVdDO0FBRUQsMERBTUM7QUF4RkQsMkNBQTJDO0FBQzNDLDhDQUE2QztBQUVoQyxRQUFBLGNBQWMsR0FBb0I7SUFDN0MsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDM0IsTUFBTSxFQUFFLE1BQU07Q0FDZixDQUFDO0FBRUYsU0FBZ0IsaUJBQWlCLENBQUMsSUFBWTtJQUM1QyxJQUFJLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sc0JBQWMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUEyQixDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUF3QjtJQUNyRCxJQUFJLE9BQU8sS0FBSyxzQkFBYyxFQUFFLENBQUM7UUFDL0IsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBVyxDQUFDO0FBQ25ELENBQUM7QUFFRCxNQUFNLFlBQVksR0FBRztJQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO0lBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0lBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUs7SUFDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztDQUN2QixDQUFDO0FBRUYsU0FBUyxvQkFBb0IsQ0FBQyxPQUF3QjtJQUNwRCxJQUFJLE9BQU8sS0FBSyxzQkFBYyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLEdBQUcsSUFBQSxxQkFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxzQkFBYyxDQUFDLENBQUMsSUFBSSxDQUN2RCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQXlCO0lBQ2xELE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFXRCxTQUFnQixpQkFBaUIsQ0FBQyxZQUFxQjtJQUdyRCxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFFBQVE7WUFDZCxXQUFXLEVBQUUsY0FBYztZQUMzQixPQUFPLEVBQUUsWUFBWTtZQUNyQixNQUFNLEVBQUUsaUJBQWlCO1NBQzFCO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxZQUFxQjtJQUczRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRTtLQUM1RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGdldE1haW5uZXQgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5leHBvcnQgY29uc3QgYml0Y29pblJlZ3Rlc3Q6IHV0eG9saWIuTmV0d29yayA9IHtcbiAgLi4udXR4b2xpYi5uZXR3b3Jrcy50ZXN0bmV0LFxuICBiZWNoMzI6ICdiY3J0Jyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrRm9yTmFtZShuYW1lOiBzdHJpbmcpOiB1dHhvbGliLk5ldHdvcmsge1xuICBpZiAobmFtZSA9PT0gJ2JpdGNvaW5SZWd0ZXN0Jykge1xuICAgIHJldHVybiBiaXRjb2luUmVndGVzdDtcbiAgfVxuICBjb25zdCBuZXR3b3JrID0gdXR4b2xpYi5uZXR3b3Jrc1tuYW1lIGFzIHV0eG9saWIuTmV0d29ya05hbWVdO1xuICBpZiAoIW5ldHdvcmspIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29yayAke25hbWV9YCk7XG4gIH1cbiAgcmV0dXJuIG5ldHdvcms7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrTmFtZShuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBzdHJpbmcge1xuICBpZiAobmV0d29yayA9PT0gYml0Y29pblJlZ3Rlc3QpIHtcbiAgICByZXR1cm4gJ2JpdGNvaW5SZWd0ZXN0JztcbiAgfVxuICByZXR1cm4gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKSBhcyBzdHJpbmc7XG59XG5cbmNvbnN0IG5ldHdvcmtPcmRlciA9IFtcbiAgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luLFxuICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5jYXNoLFxuICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5nb2xkLFxuICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5zdixcbiAgdXR4b2xpYi5uZXR3b3Jrcy5kYXNoLFxuICB1dHhvbGliLm5ldHdvcmtzLmRvZ2Vjb2luLFxuICB1dHhvbGliLm5ldHdvcmtzLmVjYXNoLFxuICB1dHhvbGliLm5ldHdvcmtzLmxpdGVjb2luLFxuICB1dHhvbGliLm5ldHdvcmtzLnpjYXNoLFxuXTtcblxuZnVuY3Rpb24gZ2V0TmV0d29ya09yZGVySW5kZXgobmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogbnVtYmVyIHtcbiAgaWYgKG5ldHdvcmsgPT09IGJpdGNvaW5SZWd0ZXN0KSB7XG4gICAgbmV0d29yayA9IHV0eG9saWIubmV0d29ya3MuYml0Y29pbjtcbiAgfVxuICBuZXR3b3JrID0gZ2V0TWFpbm5ldChuZXR3b3JrKTtcbiAgY29uc3QgaW5kZXggPSBuZXR3b3JrT3JkZXIuaW5kZXhPZihuZXR3b3JrKTtcbiAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBuZXR3b3JrICR7bmV0d29ya31gKTtcbiAgfVxuICByZXR1cm4gaW5kZXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrTGlzdCgpOiB1dHhvbGliLk5ldHdvcmtbXSB7XG4gIHJldHVybiBbLi4udXR4b2xpYi5nZXROZXR3b3JrTGlzdCgpLCBiaXRjb2luUmVndGVzdF0uc29ydChcbiAgICAoYSwgYikgPT4gZ2V0TmV0d29ya09yZGVySW5kZXgoYSkgLSBnZXROZXR3b3JrT3JkZXJJbmRleChiKSB8fCBnZXROZXR3b3JrTmFtZShhKS5sb2NhbGVDb21wYXJlKGdldE5ldHdvcmtOYW1lKGIpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29yayhhcmd2OiB7IG5ldHdvcms6IHN0cmluZyB9KTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgcmV0dXJuIGdldE5ldHdvcmtGb3JOYW1lKGFyZ3YubmV0d29yayk7XG59XG5cbnR5cGUgRGVtYW5kT3B0aW9uPFQ+ID0gVCAmIHsgZGVtYW5kT3B0aW9uOiB0cnVlIH07XG5cbnR5cGUgTmV0d29ya09wdGlvbjxURGVmYXVsdD4gPSB7XG4gIHR5cGU6ICdzdHJpbmcnO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBkZWZhdWx0OiBURGVmYXVsdDtcbiAgY29lcmNlOiAoYXJnOiBzdHJpbmcpID0+IHV0eG9saWIuTmV0d29yaztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrT3B0aW9ucyhkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiB7XG4gIG5ldHdvcms6IE5ldHdvcmtPcHRpb248dHlwZW9mIGRlZmF1bHRWYWx1ZT47XG59IHtcbiAgcmV0dXJuIHtcbiAgICBuZXR3b3JrOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnbmV0d29yayBuYW1lJyxcbiAgICAgIGRlZmF1bHQ6IGRlZmF1bHRWYWx1ZSxcbiAgICAgIGNvZXJjZTogZ2V0TmV0d29ya0Zvck5hbWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtPcHRpb25zRGVtYW5kKGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHtcbiAgbmV0d29yazogRGVtYW5kT3B0aW9uPE5ldHdvcmtPcHRpb248dHlwZW9mIGRlZmF1bHRWYWx1ZT4+O1xufSB7XG4gIHJldHVybiB7XG4gICAgbmV0d29yazogeyAuLi5nZXROZXR3b3JrT3B0aW9ucyhkZWZhdWx0VmFsdWUpLm5ldHdvcmssIGRlbWFuZE9wdGlvbjogdHJ1ZSB9LFxuICB9O1xufVxuIl19