@volare.finance/volare.js
Version:
The SDK for Volare Protocol
61 lines • 2.32 kB
JavaScript
;
/**
* @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