UNPKG

@volare.finance/volare.js

Version:
61 lines 2.32 kB
"use strict"; /** * @file cache.ts * @author astra <astra@volare.com> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.global = exports.KeyCash = exports.cVTokenDetails = exports.cExpiryPrice = exports.cDecimals = exports.cSymbol = void 0; const tslib_1 = require("tslib"); const utils_js_1 = require("@volare.finance/utils.js"); const contracts_1 = require("./contracts"); const OracleV2_1 = require("./OracleV2"); const VTokenImpl_1 = require("./VTokenImpl"); const Symbols = {}; const Decimals = {}; const ExpiryPrices = {}; const VTokenDetails = {}; const cSymbol = (contract) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { if (!Symbols[contract]) { Symbols[contract] = yield utils_js_1.ERC20.Symbol(contract); } return Symbols[contract]; }); exports.cSymbol = cSymbol; const cDecimals = (contract) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { if (!Decimals[contract]) { Decimals[contract] = yield utils_js_1.ERC20.Decimals(contract); } return Decimals[contract]; }); exports.cDecimals = cDecimals; const cExpiryPrice = (asset, expiry) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { if (!ExpiryPrices[asset]) { ExpiryPrices[asset] = {}; } if (!ExpiryPrices[asset][expiry]) { const chainId = yield OracleV2_1.OracleV2.ChainId(); ExpiryPrices[asset][expiry] = yield OracleV2_1.OracleV2.GetExpiryPrice((0, contracts_1.getContractsForChain)(chainId).OracleV2, asset, expiry); } return ExpiryPrices[asset][expiry]; }); exports.cExpiryPrice = cExpiryPrice; const cVTokenDetails = (vTokenAddress) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { if (!VTokenDetails[vTokenAddress]) { const [collateralAsset, underlyingAsset, strikeAsset, strikePrice, expiry, isPut] = yield VTokenImpl_1.VTokenImpl.GetVTokenDetails(vTokenAddress); VTokenDetails[vTokenAddress] = { address: vTokenAddress, underlyingAsset, strikeAsset, collateralAsset, strikePrice, expiry, isPut, }; } return VTokenDetails[vTokenAddress]; }); exports.cVTokenDetails = cVTokenDetails; exports.KeyCash = 'cash'; exports.global = {}; //# sourceMappingURL=cache.js.map