UNPKG

@volare.finance/volare.js

Version:
153 lines 5.43 kB
"use strict"; /** * @file swap.ts * @author astra <astra@volare.finance> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Swap = void 0; const tslib_1 = require("tslib"); const utils_js_1 = require("@volare.finance/utils.js"); const interfaces_1 = require("./interfaces"); const url_1 = require("./url"); const vToken_1 = require("./vToken"); const whitelist_1 = require("./whitelist"); const WIDTH = 10; class Swap { constructor(instance) { this.instance = instance; this.whitelist = new whitelist_1.Whitelist(this.instance); this.vToken = new vToken_1.VToken(this.instance); } o(order) { order.price = new utils_js_1.BigNumber(order.price); order.amount = new utils_js_1.BigNumber(order.amount); order.filled = new utils_js_1.BigNumber(order.filled); order.size = new utils_js_1.BigNumber(order.size); order.fee = new utils_js_1.BigNumber(order.fee); return order; } p(pair) { if (pair.position) { pair.greek = { ask1: { iv: 0, delta: 0, }, bid1: { iv: 0, delta: 0, }, }; } if (pair.position) { pair.position.amount = new utils_js_1.BigNumber(pair.position.amount); } return pair; } products(filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.whitelist.products(true, filter); }); } expires(product, isExpired = false, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.vToken.expires(product, isExpired, filter); }); } pairs(product, isExpired = false, expiry, owner, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.SwapsPairsUrl)(), filter, { params: { product, isExpired, expiry, owner, }, }); const pairs = response.data; return pairs.map(pair => this.p(pair)); }); } pair(asset, owner) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.get((0, url_1.SwapsPairUrl)(asset), { params: { owner, }, }); return this.p(response.data); }); } orderbook(asset, side, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.SwapsOrderbookUrl)(), filter, { params: { asset, side, }, }); const orderbook = response.data; return orderbook.map(line => { line.width = Math.floor((line.size * 100) / WIDTH); line.width = line.width < 100 ? line.width : 100; return line; }); }); } trades(asset, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.SwapsTradesUrl)(), filter, { params: { asset, }, }); return response.data; }); } putLimit(order) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.SwapOrdersPutLimitUrl)(), { orderHash: order.orderHash, limitOrder: Object.assign(Object.assign({}, order.limitOrder), { makerAmount: order.limitOrder.makerAmount.toString(10), takerAmount: order.limitOrder.takerAmount.toString(10), takerTokenFeeAmount: order.limitOrder.takerTokenFeeAmount.toString(10) }), signature: order.signature, }); return response.data; }); } orders(asset, owner, type = interfaces_1.OrderType.Limit, side, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.SwapsOrdersUrl)(), filter, { params: { asset, owner, side, type, }, }); return response.data; }); } order(hash) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.get((0, url_1.SwapsOrdersByHashUrl)(hash)); return this.o(response.data); }); } history(asset, owner, type, side, status, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.SwapsOrdersHistoryUrl)(), filter, { params: { asset, owner, type, side, status, }, }); return response.data; }); } } exports.Swap = Swap; //# sourceMappingURL=swap.js.map