UNPKG

@volare.finance/volare.js

Version:
50 lines 2.44 kB
"use strict"; /** * @file liquidate.ts * @author astra <astra@volare.finance> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const utils_js_1 = require("@volare.finance/utils.js"); const dotenv_1 = require("dotenv"); const ethers_1 = require("ethers"); const src_1 = require("../src"); (0, dotenv_1.config)({ path: '.env', encoding: 'utf8', }); const OWNER_ADDRESS = '0x77df10c2e9ecb12e1d811b3291d29cd93d5f7fa6'; const VAULT_ID = 35; const VTOKEN_ADDRESS = '0x07e31465B170932Bf2109d51ff30Ed4424C754B2'; const CHAIN_ID = Number(process.env.CHAIN_ID); const ENDPOINT = String(process.env.ENDPOINT); const MAKER_PRIVATE_KEY = String(process.env.MAKER_PRIVATE_KEY); const Contracts = (0, src_1.getContractsForChain)(CHAIN_ID); const Provider = new ethers_1.providers.JsonRpcProvider(ENDPOINT); const USDC = new utils_js_1.ERC20(Contracts.USDC, ENDPOINT); const Maker = new ethers_1.Wallet(MAKER_PRIVATE_KEY, Provider); const vanilla = new src_1.Vanilla({ endpoint: ENDPOINT, contracts: Contracts, }); (() => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const vault = yield vanilla.getVault(OWNER_ADDRESS, VAULT_ID); console.log(vault); const vToken = yield (0, src_1.cVTokenDetails)(VTOKEN_ADDRESS); console.log(vToken); console.log(new Date(vToken.expiry * 1000)); const underlyingPrice = yield vanilla.getPrice(vToken.underlyingAsset); console.log(`USDC.balanceOf: ${yield USDC.balanceOf(Maker.address)}`); console.log(`vanilla.balanceOf: ${yield src_1.VTokenImpl.BalanceOf(vToken.address, Maker.address)}`); console.log(`vanilla.getMarginRequired: ${yield vanilla.getMarginRequired(OWNER_ADDRESS, VAULT_ID, src_1.VaultType.NakedMargin)}`); console.log(`getLiquidatablePrice: ${(0, src_1.getLiquidatablePrice)(vToken, vault.shortAmounts[0], vault.collateralAmounts[0])}`); console.log(`getNakedMarginRequired: ${(0, src_1.getNakedMarginRequired)(vToken, vault.shortAmounts[0], underlyingPrice)}`); // liquidate const tx = yield vanilla.liquidate(Maker, OWNER_ADDRESS, VAULT_ID, vault.shortAmounts[0]); const receipt = yield tx.wait(); console.log(receipt); console.log(`USDC.balanceOf: ${yield USDC.balanceOf(Maker.address)}`); console.log(`vanilla.balanceOf: ${yield src_1.VTokenImpl.BalanceOf(vToken.address, Maker.address)}`); }))(); //# sourceMappingURL=liquidate.js.map