@nexex/orderbook
Version:
48 lines • 2.28 kB
JavaScript
;
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