@volare.finance/volare.js
Version:
The SDK for Volare Protocol
54 lines • 2.8 kB
JavaScript
;
/**
* @file controller.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 CHAIN_ID = Number(process.env.CHAIN_ID);
const ENDPOINT = String(process.env.ENDPOINT);
const MAKER_PRIVATE_KEY = String(process.env.MAKER_PRIVATE_KEY);
const VTOKEN_ADDRESS = String(process.env.VTOKEN_ADDRESS);
const VAULT_ID = 1;
const Contracts = (0, src_1.getContractsForChain)(CHAIN_ID);
const Provider = new ethers_1.providers.JsonRpcProvider(ENDPOINT);
const Maker = new ethers_1.Wallet(MAKER_PRIVATE_KEY, Provider);
src_1.VTokenImpl.Init(ENDPOINT);
const controller = new src_1.Controller(Contracts.Controller, ENDPOINT);
(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const vToken = yield (0, src_1.cVTokenDetails)(VTOKEN_ADDRESS);
console.log(`cExpiryPrice(vToken.underlyingAsset, vToken.expiry): ${yield (0, src_1.cExpiryPrice)(vToken.underlyingAsset, vToken.expiry)}`);
let tx;
// Configuration
console.log(yield controller.getConfiguration());
// Vault
console.log(`controller.getAccountVaultCounter(Maker.address): ${yield controller.getAccountVaultCounter(Maker.address)}`);
console.log(`controller.getVault(Maker.address, VAULT_ID): ${JSON.stringify(yield controller.getVault(Maker.address, VAULT_ID), undefined, 2)}`);
console.log(`vTokenBalanceOf(VTOKEN_ADDRESS, Maker.address): ${yield src_1.VTokenImpl.BalanceOf(VTOKEN_ADDRESS, Maker.address)}`);
if (0) {
// Short
tx = yield controller.short(Maker, 0, 0, vToken, new utils_js_1.BigNumber(7), src_1.VaultType.FullyCollateralized);
yield tx.wait();
}
else {
// Settle
tx = yield controller.settle(Maker, VAULT_ID);
yield tx.wait();
}
console.log(`vTokenBalanceOf(VTOKEN_ADDRESS, Maker.address): ${yield src_1.VTokenImpl.BalanceOf(VTOKEN_ADDRESS, Maker.address)}`);
// Vault
console.log(`controller.getAccountVaultCounter(Deployer.address): ${yield controller.getAccountVaultCounter(Maker.address)}`);
console.log(`controller.getVault(Deployer.address, VAULT_ID): ${JSON.stringify(yield controller.getVault(Maker.address, VAULT_ID), undefined, 2)}`);
const vaultWithDetails = yield controller.getVaultWithDetails(Maker.address, VAULT_ID);
console.log(`controller.getVaultWithDetails(Deployer.address, VAULT_ID): ${JSON.stringify(vaultWithDetails[0], undefined, 2)}, ${vaultWithDetails[1]}, ${vaultWithDetails[2]}`);
}))();
//# sourceMappingURL=controller.js.map