UNPKG

@volare.finance/volare.js

Version:
45 lines 1.9 kB
"use strict"; /** * @file VTokenImpl.ts * @author astra <astra@volare.finance> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.VTokenImpl = void 0; const tslib_1 = require("tslib"); const utils_js_1 = require("@volare.finance/utils.js"); const ethers_1 = require("ethers"); const VToken_json_1 = require("../artifacts/VToken.json"); const protocols_1 = require("./protocols"); class VTokenImpl extends utils_js_1.ERC20 { static ABI() { return VToken_json_1.abi; } static BalanceOf(contract, owner) { const _super = Object.create(null, { BalanceOf: { get: () => super.BalanceOf } }); return tslib_1.__awaiter(this, void 0, void 0, function* () { const balance = yield _super.BalanceOf.call(this, contract, owner); return (0, utils_js_1.$float)(balance, protocols_1.VTOKEN_DECIMALS); }); } static Allowance(contract, owner, spender) { const _super = Object.create(null, { Allowance: { get: () => super.Allowance } }); return tslib_1.__awaiter(this, void 0, void 0, function* () { const allowance = yield _super.Allowance.call(this, contract, owner, spender); return (0, utils_js_1.$float)(allowance, protocols_1.VTOKEN_DECIMALS); }); } static GetVTokenDetails(contract) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const vToken = new ethers_1.Contract(contract, VTokenImpl.ABI(), VTokenImpl.provider); const [collateral, underlying, strike, strikePrice, expiry, isPut] = yield vToken.getVTokenDetails(); return [collateral, underlying, strike, (0, utils_js_1.$float)(strikePrice, protocols_1.STRIKE_DECIMALS), Number(expiry), isPut]; }); } } exports.VTokenImpl = VTokenImpl; //# sourceMappingURL=VTokenImpl.js.map