xud
Version:
Exchange Union Daemon
85 lines • 4.06 kB
JavaScript
;
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