UNPKG

@nexex/orderbook

Version:
48 lines 2.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var api_1 = require("@nexex/api"); var types_1 = require("@nexex/types"); var orderbook_1 = require("@nexex/types/tpl/orderbook"); var bignumber_js_1 = __importDefault(require("bignumber.js")); function fromPlainDexOrder(baseToken, quoteToken, order) { var side = order.makerTokenAddress.toLowerCase() === baseToken.addr.toLowerCase() ? types_1.OrderSide.ASK : types_1.OrderSide.BID; var baseAmount = side === types_1.OrderSide.BID ? new bignumber_js_1.default(order.takerTokenAmount) : new bignumber_js_1.default(order.makerTokenAmount); var quoteAmount = side === types_1.OrderSide.ASK ? new bignumber_js_1.default(order.takerTokenAmount) : new bignumber_js_1.default(order.makerTokenAmount); var price = quoteAmount .div(baseAmount) .times(Math.pow(10, baseToken.decimals)) .div(Math.pow(10, quoteToken.decimals)); var ret = new orderbook_1.OrderbookOrderTpl(); ret.orderHash = api_1.orderUtil.getOrderHashHex(order); ret.side = side; ret.state = types_1.OrderState.OPEN; ret.baseTokenAddress = baseToken.addr; ret.quoteTokenAddress = quoteToken.addr; ret.price = price; ret.createdDate = new Date(); ret.signedOrder = order; return ret; } exports.fromPlainDexOrder = fromPlainDexOrder; function toPlainOrder(order) { return { maker: order.maker, taker: order.taker, makerFeeRate: order.makerFeeRate.toString(10), takerFeeRate: order.takerFeeRate.toString(10), makerTokenAmount: order.makerTokenAmount.toString(10), takerTokenAmount: order.takerTokenAmount.toString(10), makerTokenAddress: order.makerTokenAddress, takerTokenAddress: order.takerTokenAddress, salt: order.salt.toString(10), exchangeContractAddress: order.exchangeContractAddress, makerFeeRecipient: order.makerFeeRecipient, expirationUnixTimestampSec: order.expirationUnixTimestampSec.toNumber(), ecSignature: order.ecSignature }; } exports.toPlainOrder = toPlainOrder; //# sourceMappingURL=orderUtil.js.map