xud
Version:
Exchange Union Daemon
105 lines • 4.89 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 = 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('Execution'),
safe_1.default.blue('Price'),
safe_1.default.blue('Role'),
safe_1.default.blue('Order Id'),
safe_1.default.blue('Order Id (Counterparty)'),
safe_1.default.blue('Swap Hash'),
safe_1.default.blue('Executed At'),
];
const displayTrades = (trades) => {
const table = new cli_table3_1.default({ head: HEADERS });
trades.tradesList.forEach((trade) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
const [baseCurrency, quoteCurrency] = trade.pairId.split('/');
const counterparty = ((_a = trade.counterparty) === null || _a === void 0 ? void 0 : _a.alias) || 'Self';
let role;
let orderId;
let counterpartyOrderId;
switch (trade.role) {
case xudrpc_pb_1.Role.TAKER:
orderId = utils_1.trim((_b = trade.takerOrder.id) !== null && _b !== void 0 ? _b : '', 8);
counterpartyOrderId = utils_1.trim((_d = (_c = trade.makerOrder) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : '', 8);
role = 'Taker';
break;
case xudrpc_pb_1.Role.MAKER:
orderId = utils_1.trim((_e = trade.makerOrder.id) !== null && _e !== void 0 ? _e : '', 8);
counterpartyOrderId = 'N/A';
role = 'Maker';
break;
case xudrpc_pb_1.Role.INTERNAL:
orderId = utils_1.trim((_g = (_f = trade.takerOrder) === null || _f === void 0 ? void 0 : _f.id) !== null && _g !== void 0 ? _g : '', 8);
counterpartyOrderId = utils_1.trim((_j = (_h = trade.makerOrder) === null || _h === void 0 ? void 0 : _h.id) !== null && _j !== void 0 ? _j : '', 8);
role = 'Internal';
break;
}
let side;
switch (trade.side) {
case xudrpc_pb_1.OrderSide.BUY:
side = 'Buy';
break;
case xudrpc_pb_1.OrderSide.SELL:
side = 'Sell';
break;
case xudrpc_pb_1.OrderSide.BOTH:
side = trade.takerOrder.side === xudrpc_pb_1.OrderSide.BUY ? 'Buy' : 'Sell';
break;
}
const details = [
`${side} ${utils_1.satsToCoinsStr(trade.quantity)} ${baseCurrency}`,
`${trade.price} ${quoteCurrency}`,
role,
orderId,
`${counterpartyOrderId} (${counterparty})`,
utils_1.trim(trade.rHash, 6),
new Date(trade.executedAt).toLocaleString(),
];
table.push(details);
});
console.log(safe_1.default.underline(safe_1.default.bold('\Trades:')));
console.log(table.toString());
};
exports.command = 'tradehistory [limit]';
exports.describe = 'list completed trades';
exports.builder = (argv) => argv
.option('limit', {
description: 'the maximum number of trades to display',
type: 'number',
default: 15,
})
.option('all', {
description: 'whether to display the complete trade history',
type: 'boolean',
default: false,
})
.example('$0 tradehistory', 'list most recent trades')
.example('$0 tradehistory 50', 'list the 50 most recent trades');
exports.handler = (argv) => __awaiter(void 0, void 0, void 0, function* () {
const request = new xudrpc_pb_1.TradeHistoryRequest();
if (!argv.all) {
// don't set a limit if the --all flag is specified
request.setLimit(argv.limit);
}
(yield command_1.loadXudClient(argv)).tradeHistory(request, command_1.callback(argv, displayTrades));
});
//# sourceMappingURL=tradehistory.js.map