UNPKG

@volare.finance/volare.js

Version:
165 lines 7.84 kB
"use strict"; /** * @file vault.ts * @author astra <astra@volare.finance> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Vault = void 0; const tslib_1 = require("tslib"); const utils_js_1 = require("@volare.finance/utils.js"); const volare_1 = require("../volare"); const url_1 = require("./url"); class Vault { constructor(instance) { this.instance = instance; } v(vault) { return tslib_1.__awaiter(this, void 0, void 0, function* () { vault.collateralSymbols = new Array(vault.collateralAssets.length); for (let j = 0; j < vault.collateralAssets.length; j++) { vault.collateralSymbols[j] = vault.collateralAssets[j] === utils_js_1.ZERO_ADDR ? '' : yield (0, volare_1.cSymbol)(vault.collateralAssets[j]); } return vault; }); } vDetails(vault) { return tslib_1.__awaiter(this, void 0, void 0, function* () { vault.shortSymbols = new Array(vault.shortVTokens.length); if (!vault.shortPayouts) { vault.shortPayouts = new Array(vault.shortVTokens.length); } for (let j = 0; j < vault.shortVTokens.length; j++) { if (vault.shortVTokens[j] === utils_js_1.ZERO_ADDR) { vault.shortSymbols[j] = ''; vault.shortAmounts[j] = utils_js_1.ZERO; vault.shortPayouts[j] = undefined; } else { vault.shortSymbols[j] = yield (0, volare_1.cSymbol)(vault.shortVTokens[j]); vault.shortAmounts[j] = new utils_js_1.BigNumber(vault.shortAmounts[j]); vault.shortPayouts[j] = vault.shortPayouts[j] ? new utils_js_1.BigNumber(vault.shortPayouts[j]) : undefined; } } vault.longSymbols = new Array(vault.longVTokens.length); if (!vault.longPayouts) { vault.longPayouts = new Array(vault.longVTokens.length); } for (let j = 0; j < vault.longVTokens.length; j++) { if (vault.longVTokens[j] === utils_js_1.ZERO_ADDR) { vault.longSymbols[j] = ''; vault.longAmounts[j] = utils_js_1.ZERO; vault.longPayouts[j] = undefined; } else { vault.longSymbols[j] = yield (0, volare_1.cSymbol)(vault.longVTokens[j]); vault.longAmounts[j] = new utils_js_1.BigNumber(vault.longAmounts[j]); vault.longPayouts[j] = vault.longPayouts[j] ? new utils_js_1.BigNumber(vault.longPayouts[j]) : undefined; } } vault.collateralSymbols = new Array(vault.collateralAssets.length); if (!vault.marginRequired) { vault.marginRequired = new Array(vault.collateralAssets.length); } if (!vault.payoutAmounts) { vault.payoutAmounts = new Array(vault.collateralAssets.length); } for (let j = 0; j < vault.collateralAssets.length; j++) { vault.collateralSymbols[j] = vault.collateralAssets[j] === utils_js_1.ZERO_ADDR ? '' : yield (0, volare_1.cSymbol)(vault.collateralAssets[j]); vault.collateralAmounts[j] = new utils_js_1.BigNumber(vault.collateralAmounts[j]); vault.marginRequired[j] = vault.marginRequired[j] ? new utils_js_1.BigNumber(vault.marginRequired[j]) : undefined; vault.payoutAmounts[j] = vault.payoutAmounts[j] ? new utils_js_1.BigNumber(vault.payoutAmounts[j]) : undefined; } vault.fee = new utils_js_1.BigNumber(vault.fee); return vault; }); } vaults(owner, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.VaultsUrl)(), filter, { params: { owner, }, }); const vaults = response.data; for (let i = 0; i < vaults.length; i++) { vaults[i] = yield this.v(vaults[i]); } return vaults; }); } vaultDetailsByOwnerAndVaultId(owner, vaultId) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.get((0, url_1.VaultsFindByOwnerAndVaultIdUrl)(), { params: { owner, vaultId, }, }); return this.vDetails(response.data); }); } candidates(owner, vaultId, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.VaultsCandidatesUrl)(), filter, { params: { owner, vaultId, }, }); const candidates = response.data; for (let i = 0; i < candidates.length; i++) { const vToken = yield (0, volare_1.cVTokenDetails)(candidates[i].vTokenAddress); candidates[i].vTokenSymbol = yield (0, volare_1.cSymbol)(vToken.address); candidates[i].underlying = vToken.underlyingAsset; candidates[i].underlyingSymbol = yield (0, volare_1.cSymbol)(vToken.underlyingAsset); candidates[i].underlyingDecimals = yield (0, volare_1.cDecimals)(vToken.underlyingAsset); candidates[i].strike = vToken.strikeAsset; candidates[i].strikeSymbol = yield (0, volare_1.cSymbol)(vToken.strikeAsset); candidates[i].strikeDecimals = yield (0, volare_1.cDecimals)(vToken.strikeAsset); candidates[i].collateral = vToken.collateralAsset; candidates[i].collateralSymbol = yield (0, volare_1.cSymbol)(vToken.collateralAsset); candidates[i].collateralDecimals = yield (0, volare_1.cDecimals)(vToken.collateralAsset); candidates[i].expiryPrice = new utils_js_1.BigNumber(candidates[i].expiryPrice); candidates[i].strikePrice = new utils_js_1.BigNumber(candidates[i].strikePrice); candidates[i].amount = new utils_js_1.BigNumber(candidates[i].amount); candidates[i].payout = new utils_js_1.BigNumber(candidates[i].payout); candidates[i].fee = new utils_js_1.BigNumber(candidates[i].fee); } return candidates; }); } liquidatableVaults(underlying, isPut, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.VaultsFindLiquidatableUrl)(), filter, { params: { underlying, isPut, }, }); const vaults = response.data; for (let i = 0; i < vaults.length; i++) { vaults[i] = yield this.vDetails(vaults[i]); } return vaults; }); } collaterals(owner, vaultId, index, filter) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield this.instance.post((0, url_1.VaultsCollateralsUrl)(), filter, { params: { owner, vaultId, index, }, }); const collaterals = response.data; for (let i = 0; i < collaterals.length; i++) { collaterals[i].amount = new utils_js_1.BigNumber(collaterals[i].amount); } return collaterals; }); } } exports.Vault = Vault; //# sourceMappingURL=vault.js.map