UNPKG

@nexex/cli

Version:
76 lines 2.99 kB
"use strict"; 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