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