UNPKG

@volare.finance/volare.js

Version:
143 lines 6.89 kB
"use strict"; /** * @file apis.ts * @author astra <astra@volare.finance> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Apis = void 0; const tslib_1 = require("tslib"); const utils_js_1 = require("@volare.finance/utils.js"); const axios_1 = tslib_1.__importDefault(require("axios")); const volare_1 = require("../volare"); const collateral_1 = require("./collateral"); const log_1 = require("./log"); const long_1 = require("./long"); const notification_1 = require("./notification"); const price_1 = require("./price"); const swap_1 = require("./swap"); const url_1 = require("./url"); const vault_1 = require("./vault"); const vToken_1 = require("./vToken"); const whitelist_1 = require("./whitelist"); class Apis { constructor(options) { this.config = options.config || { DECIMAL_PLACES: 2 }; utils_js_1.BigNumber.config(this.config); this.instance = axios_1.default.create({ baseURL: options.url, headers: { 'Content-Type': 'application/json; charset=utf-8', }, }); this.price = new price_1.Price(this.instance); this.whitelist = new whitelist_1.Whitelist(this.instance); this.collateral = new collateral_1.Collateral(this.instance); this.vToken = new vToken_1.VToken(this.instance); this.long = new long_1.Long(this.instance); this.vault = new vault_1.Vault(this.instance); this.swap = new swap_1.Swap(this.instance); this.log = new log_1.Log(this.instance); this.notification = new notification_1.Notification(this.instance); this.contracts = options.contracts; if (!utils_js_1.ERC20.IsInited()) { utils_js_1.ERC20.Init(options.endpoint); } } erc20(contract) { contract.totalSupply = new utils_js_1.BigNumber(contract.totalSupply); return contract; } cash() { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (volare_1.global[volare_1.KeyCash] === undefined) { const response = yield this.instance.get((0, url_1.CashUrl)()); const cash = response.data; volare_1.global[volare_1.KeyCash] = this.erc20(cash); } return volare_1.global[volare_1.KeyCash]; }); } longPnLByOwnerAndVToken(owner, vTokenAddress, start, end, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.LongFindPnLByOwnerAndVTokenUrl)(), filter, { params: { owner: owner, vToken: vTokenAddress, start, end, }, }); const longPnLs = response.data; for (let i = 0; i < longPnLs.length; i++) { longPnLs[i].expiryPrice = new utils_js_1.BigNumber(longPnLs[i].expiryPrice); longPnLs[i].amount = new utils_js_1.BigNumber(longPnLs[i].amount); longPnLs[i].payout = new utils_js_1.BigNumber(longPnLs[i].payout); } return longPnLs; }); } shorts(owner, vTokenAddress, isExpired, isSettled, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.ShortUrl)(), filter, { params: { owner: owner, vToken: vTokenAddress, isExpired, isSettled, }, }); const shorts = response.data; for (let i = 0; i < shorts.length; i++) { const vToken = yield (0, volare_1.cVTokenDetails)(shorts[i].vTokenAddress); shorts[i].underlying = vToken.underlyingAsset; shorts[i].underlyingSymbol = yield (0, volare_1.cSymbol)(vToken.underlyingAsset); shorts[i].underlyingDecimals = yield (0, volare_1.cDecimals)(vToken.underlyingAsset); shorts[i].strike = vToken.strikeAsset; shorts[i].strikeSymbol = yield (0, volare_1.cSymbol)(vToken.strikeAsset); shorts[i].strikeDecimals = yield (0, volare_1.cDecimals)(vToken.strikeAsset); shorts[i].collateral = vToken.collateralAsset; shorts[i].collateralSymbol = yield (0, volare_1.cSymbol)(vToken.collateralAsset); shorts[i].collateralDecimals = yield (0, volare_1.cDecimals)(vToken.collateralAsset); shorts[i].expiryPrice = new utils_js_1.BigNumber(shorts[i].expiryPrice); shorts[i].strikePrice = new utils_js_1.BigNumber(shorts[i].strikePrice); shorts[i].amount = new utils_js_1.BigNumber(shorts[i].amount); shorts[i].payout = new utils_js_1.BigNumber(shorts[i].payout); shorts[i].fee = new utils_js_1.BigNumber(shorts[i].fee); } return shorts; }); } vaultPnLByOwnerAndVaultId(owner, vaultId, start, end, isDetailed = false, filter) { var _a, _b, _c; return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.VaultFindPnLByOwnerAndVaultIdUrl)(), filter, { params: { owner: owner, vaultId, start, end, isDetailed, }, }); const vaultPnLs = response.data; for (let i = 0; i < vaultPnLs.length; i++) { for (let j = 0; j < ((_a = vaultPnLs[i].shortAmounts) === null || _a === void 0 ? void 0 : _a.length); j++) { vaultPnLs[i].shortAmounts[j] = new utils_js_1.BigNumber(vaultPnLs[i].shortAmounts[j]); vaultPnLs[i].shortExpiryPrices[j] = new utils_js_1.BigNumber(vaultPnLs[i].shortExpiryPrices[j]); } for (let j = 0; j < ((_b = vaultPnLs[i].longAmounts) === null || _b === void 0 ? void 0 : _b.length); j++) { vaultPnLs[i].longAmounts[j] = new utils_js_1.BigNumber(vaultPnLs[i].longAmounts[j]); vaultPnLs[i].longExpiryPrices[j] = new utils_js_1.BigNumber(vaultPnLs[i].longExpiryPrices[j]); } for (let j = 0; j < ((_c = vaultPnLs[i].collateralAmounts) === null || _c === void 0 ? void 0 : _c.length); j++) { vaultPnLs[i].collateralAmounts[j] = new utils_js_1.BigNumber(vaultPnLs[i].collateralAmounts[j]); vaultPnLs[i].marginRequired[j] = new utils_js_1.BigNumber(vaultPnLs[i].marginRequired[j]); } } return vaultPnLs; }); } } exports.Apis = Apis; //# sourceMappingURL=apis.js.map