@concrete-xyz/sdk
Version:
Concrete SDK for interacting with vault contracts
33 lines (23 loc) • 1.05 kB
JavaScript
import { ethers } from "ethers";
import { getVault } from "../dist/sdk/index.mjs";
const mainnetRpcUrl = "https://ethereum-rpc.publicnode.com";
const mainnetProvider = new ethers.JsonRpcProvider(mainnetRpcUrl);
const randomWallet = ethers.Wallet.createRandom();
const testSigner = randomWallet.connect(mainnetProvider);
console.log("Test signer address:", testSigner.address);
const vault = getVault("0x15cE9bE6609db102b70D68ca75a39c555bEa5Fac", "Ethereum", mainnetProvider, testSigner)
const input = BigInt(1 * 10 ** 18);
const conversion = await vault.previewConversion(input)
const data = await vault.getVaultDetails();
console.log(`From ${await vault.toUnderlyingDecimals(input)} ${data.underlying.symbol}`)
console.log(`To ${await vault.toUnderlyingDecimals(conversion.vaultTokensReciving)} ${data.vaultAsset.symbol}`)
{
const tx = await vault.approve(vault.getAddress(), input)
const receipt = await tx.wait()
console.log(receipt)
}
{
const tx = await vault.deposit(input)
const receipt = await tx.wait()
console.log(receipt)
}