@nexex/cli
Version:
76 lines • 2.99 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = require("@oclif/command");
const chalk_1 = __importDefault(require("chalk"));
const cli_table3_1 = __importDefault(require("cli-table3"));
const utils_1 = require("ethers/utils");
const MarketBase_1 = __importDefault(require("../../MarketBase"));
class MarketOrder extends MarketBase_1.default {
async run() {
const { flags, args } = this.parse(MarketOrder);
const obClient = this.initObClient(flags);
const market = await this.getMarket(flags);
try {
const orderBook = await obClient.snapshot(market, flags.limit);
const [base, quote] = market.split('-');
console.log(chalk_1.default.red('Ask'));
let table = new cli_table3_1.default({
head: ['Order Hash', `${base} Amount`, `${quote} Amount`, 'Price']
});
orderBook.asks.forEach(order => {
table.push([
order.orderHash,
utils_1.commify(utils_1.formatEther(order.remainingBaseTokenAmount.toString(10))),
utils_1.commify(utils_1.formatEther(order.remainingQuoteTokenAmount.toString(10))),
chalk_1.default.red(order.price.toString(10))
]);
});
console.log(table.toString());
console.log(chalk_1.default.green('Bid'));
table = new cli_table3_1.default({
head: ['Order Hash', `${base} Amount`, `${quote} Amount`, 'Price']
});
orderBook.bids.forEach(order => {
table.push([
order.orderHash,
this.formatAmount(order.remainingBaseTokenAmount.toString(10)),
this.formatAmount(order.remainingQuoteTokenAmount.toString(10)),
chalk_1.default.green(order.price.toString(10))
]);
});
console.log(table.toString());
process.exit(0);
}
catch (e) {
if (e.response && e.response.data && e.response.data.message) {
console.log(e.response.data.message);
}
else {
console.log(chalk_1.default.red('Query orderbook fails'));
}
this.exit(1);
}
}
formatAmount(wei) {
try {
return utils_1.commify(utils_1.formatEther(wei));
}
catch (e) {
return 'Error';
}
}
}
MarketOrder.description = 'query top orders from a relayer';
MarketOrder.examples = [
`$ nexex-cli market:order --limit 5
`
];
MarketOrder.flags = {
...MarketBase_1.default.flags,
limit: command_1.flags.integer({ char: 'l', default: 5 })
};
exports.default = MarketOrder;
//# sourceMappingURL=order.js.map