UNPKG

xud

Version:
85 lines 4.06 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.builder = exports.describe = exports.command = exports.displayBalances = void 0; const cli_table3_1 = __importDefault(require("cli-table3")); const safe_1 = __importDefault(require("colors/safe")); const xudrpc_pb_1 = require("../../proto/xudrpc_pb"); const command_1 = require("../command"); const utils_1 = require("../utils"); const HEADERS = [ safe_1.default.blue('Currency'), safe_1.default.blue('Total Balance'), safe_1.default.blue('Wallet Balance (Not Tradable)'), safe_1.default.blue('Channel Balance (Tradable)'), ]; const formatBalances = (balances) => { const formatted = []; balances.balancesMap.forEach((balanceElement) => { const currency = balanceElement[0]; const balance = balanceElement[1]; const row = []; row.push(currency, utils_1.satsToCoinsStr(balance.totalBalance), formatBalance(balance.walletBalance, balance.unconfirmedWalletBalance), formatBalance(balance.channelBalance, balance.pendingChannelBalance, balance.inactiveChannelBalance)); formatted.push(row); }); return formatted; }; const formatBalance = (availableBalance, pendingBalance, inactiveBalance = 0) => { const availableBalanceStr = utils_1.satsToCoinsStr(availableBalance); const unconfirmedBalanceStr = pendingBalance > 0 ? `${utils_1.satsToCoinsStr(pendingBalance)} pending` : undefined; const inactiveBalanceStr = inactiveBalance > 0 ? `${utils_1.satsToCoinsStr(inactiveBalance)} inactive` : undefined; if (unconfirmedBalanceStr || inactiveBalanceStr) { let str = availableBalanceStr; let paranthetical = ''; if (unconfirmedBalanceStr) { paranthetical += paranthetical ? ` | ${unconfirmedBalanceStr}` : unconfirmedBalanceStr; } if (inactiveBalanceStr) { paranthetical += paranthetical ? ` | ${inactiveBalanceStr}` : inactiveBalanceStr; } str += ` (${paranthetical})`; return str; } return availableBalanceStr; }; const createTable = () => { const table = new cli_table3_1.default({ head: HEADERS, }); return table; }; exports.displayBalances = (balances) => { const table = createTable(); const formatted = formatBalances(balances); formatted.forEach(balance => table.push(balance)); console.log(safe_1.default.underline(safe_1.default.bold('\nBalance:'))); console.log(table.toString()); }; exports.command = 'getbalance [currency]'; exports.describe = 'get total balance for a given currency'; exports.builder = (argv) => argv .option('currency', { describe: 'the currency to query for', type: 'string', }) .example('$0 getbalance', 'get balance for all currencies') .example('$0 getbalance BTC', 'get BTC balance'); exports.handler = (argv) => __awaiter(void 0, void 0, void 0, function* () { const request = new xudrpc_pb_1.GetBalanceRequest(); if (argv.currency) { request.setCurrency(argv.currency.toUpperCase()); } (yield command_1.loadXudClient(argv)).getBalance(request, command_1.callback(argv, exports.displayBalances)); }); //# sourceMappingURL=getbalance.js.map