@volare.finance/volare.js
Version:
The SDK for Volare Protocol
153 lines • 5.43 kB
JavaScript
"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