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