CURVE LLAMALEND JS
Setup
Install from npm:
npm install @curvefi/llamalend-api
Init
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {url: 'http://localhost:8545/', privateKey: ''}, { gasPrice: 0, maxFeePerGas: 0, maxPriorityFeePerGas: 0, chainId: 1 });
await llamalend.init('JsonRpc', {}, {});
llamalend.init("Infura", { network: "homestead", apiKey: <INFURA_KEY> }, { chainId: 1 });
llamalend.init('Web3', { externalProvider: <WEB3_PROVIDER> }, { chainId: 1 });
})()
Note 1. chainId
parameter is optional, but you must specify it in the case you use Metamask on localhost network, because Metamask has that bug
Note 2. Web3 init requires the address. Therefore, it can be initialized only after receiving the address.
Wrong ❌️
import type { FunctionComponent } from 'react'
import { useState, useMemo } from 'react'
import { providers } from 'ethers'
import Onboard from 'bnc-onboard'
import type { Wallet } from 'bnc-onboard/dist/src/interfaces'
import llamalend from '@curvefi/lending-api'
...
const WalletProvider: FunctionComponent = ({ children }) => {
const [wallet, setWallet] = useState<Wallet>()
const [provider, setProvider] = useState<providers.Web3Provider>()
const [address, setAddress] = useState<string>()
const networkId = 1
const onboard = useMemo(
() =>
Onboard({
dappId: DAPP_ID,
networkId,
subscriptions: {
address: (address) => {
setAddress(address)
},
wallet: (wallet) => {
setWallet(wallet)
if (wallet.provider) {
llamalend.init("Web3", { externalProvider: wallet.provider }, { chainId: networkId })
}
},
},
walletSelect: {
wallets: wallets,
},
}),
[]
)
...
Right ✔️
import type { FunctionComponent } from 'react'
import { useState, useMemo, useEffect } from 'react'
import { providers } from 'ethers'
import Onboard from 'bnc-onboard'
import type { Wallet } from 'bnc-onboard/dist/src/interfaces'
import llamalend from '@curvefi/lending-api'
...
const WalletProvider: FunctionComponent = ({ children }) => {
const [wallet, setWallet] = useState<Wallet>()
const [provider, setProvider] = useState<providers.Web3Provider>()
const [address, setAddress] = useState<string>()
const networkId = 1
const onboard = useMemo(
() =>
Onboard({
dappId: DAPP_ID,
networkId,
subscriptions: {
address: (address) => {
setAddress(address)
},
wallet: (wallet) => {
setWallet(wallet)
},
},
walletSelect: {
wallets: wallets,
},
}),
[]
)
useEffect(() => {
if (address && wallet?.provider) {
llamalend.init("Web3", { externalProvider: wallet.provider }, { chainId: networkId })
}
}, [address, wallet?.provider]);
...
Notes
- 1 Amounts can be passed in args either as numbers or strings.
- 2 lendMarket.swapPriceImpact method returns %, e. g. 0 < priceImpact <= 100.
- 3 Slippage arg should be passed as %, e. g. 0 < slippage <= 100.
General methods
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {});
const balances1 = await llamalend.getBalances(['sdt', 'weth']);
const balances2 = await llamalend.getBalances(['sdt', 'weth'], "0x0063046686E46Dc6F15918b61AE2B121458534a5");
const spender = "0x136e783846ef68C8Bd00a3369F787dF8d683a696"
await llamalend.getAllowance(['sdt', 'weth'], llamalend.signerAddress, spender);
await llamalend.hasAllowance(['sdt', 'weth'], ['1000', '1000'], llamalend.signerAddress, spender);
await llamalend.ensureAllowance(['sdt', 'weth'], ['1000', '1000'], spender);
await llamalend.getUsdRate('0x7ceb23fd6bc0add59e62ac25578270cff1b9f619');
})()
lendMarket
lendMarket fields
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {});
const lendMarket = llamalend.getLendMarket('one-way-market-0');
lendMarket.id
lendMarket.name
lendMarket.addresses
lendMarket.borrowed_token
lendMarket.collateral_token
lendMarket.coinAddresses
lendMarket.coinDecimals
lendMarket.defaultBands
lendMarket.maxBands
lendMarket.minBands
})()
Wallet balances for lendMarket
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {});
await llamalend.lendMarkets.fetchMarkets();
const lendMarket = llamalend.getLendMarket('one-way-market-0');
console.log(await lendMarket.wallet.balances());
{
borrowed: "100000.0"
collateral: "100.0"
vaultShares: "0.0"
}
console.log(await lendMarket.wallet.balances("0x0063046686E46Dc6F15918b61AE2B121458534a5"));
{
borrowed: "0.0"
collateral: "0.0"
vaultShares: "0.0"
}
})()
Stats for lendMarket
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {});
await llamalend.lendMarkets.fetchMarkets();
const lendMarket = llamalend.getLendMarket('one-way-market-0');
await lendMarket.stats.parameters();
await lendMarket.stats.rates();
await lendMarket.stats.futureRates(10000, 0);
await lendMarket.stats.futureRates(0, 10000);
await lendMarket.stats.balances();
const { activeBand, maxBand, minBand, liquidationBand } = await lendMarket.stats.bandsInfo();
await lendMarket.stats.bandBalances(liquidatingBand ?? 0);
await lendMarket.stats.bandsBalances();
await lendMarket.stats.totalDebt();
await lendMarket.stats.ammBalances();
await lendMarket.stats.capAndAvailable();
})()
Vault: deposit, mint, stake, unstake, withdraw, redeem for lendMarktet
await llamalend.init('JsonRpc', {});
await llamalend.lendMarkets.fetchMarkets();
const lendMarket = llamalend.getLendMarket('one-way-market-1');
await lendMarket.wallet.balances();
await lendMarket.vault.maxDeposit();
await lendMarket.vault.previewDeposit(20000);
await lendMarket.vault.depositIsApproved(20000);
await lendMarket.vault.depositApprove(20000);
await lendMarket.vault.deposit(20000);
await lendMarket.wallet.balances();
await lendMarket.vault.maxMint();
await lendMarket.vault.previewMint(20000);
await lendMarket.vault.mintIsApproved(20000);
await lendMarket.vault.mintApprove(20000);
await lendMarket.vault.mint(20000);
let balances = await lendMarket.wallet.balances();
await lendMarket.vault.convertToAssets(100000);
await lendMarket.vault.convertToShares(100);
await lendMarket.vault.stakeIsApproved(balances.vaultShares);
await lendMarket.vault.stakeApprove(balances.vaultShares);
await lendMarket.vault.stake(balances.vaultShares);
balances = await lendMarket.wallet.balances();
await lendMarket.vault.unstake(balances.gauge);
await lendMarket.wallet.balances();
await lendMarket.vault.maxWithdraw();
await lendMarket.vault.previewWithdraw(10000);
await lendMarket.vault.withdraw(10000);
await lendMarket.wallet.balances();
await lendMarket.vault.maxRedeem();
await lendMarket.vault.previewRedeem(10000);
await lendMarket.vault.redeem(10000);
await lendMarket.wallet.balances();
lendMarket.vault.rewardsOnly();
await lendMarket.vault.totalLiquidity();
await lendMarket.vault.crvApr();
await lendMarket.vault.rewardTokens();
await lendMarket.vault.rewardsApr();
await lendMarket.vault.claimableCrv();
await lendMarket.vault.claimCrv();
await lendMarket.vault.claimableRewards();
await lendMarket.vault.claimRewards();
Create loan, add collateral, borrow more, repay for lendMarket
(async () => {
await llamalend.init('JsonRpc', {});
await llamalend.lendMarkets.fetchMarkets();
const lendMarket = llamalend.getLendMarket('one-way-market-0');
await lendMarket.oraclePrice();
await lendMarket.price();
await lendMarket.basePrice();
await lendMarket.wallet.balances();
await lendMarket.createLoanMaxRecv(0.5, 5);
await lendMarket.createLoanBands(0.5, 1000, 5);
await lendMarket.createLoanPrices(0.5, 1000, 5);
await lendMarket.createLoanHealth(0.5, 1000, 5);
await lendMarket.createLoanHealth(0.5, 1000, 5, false);
await lendMarket.createLoanIsApproved(0.5);
await lendMarketa.createLoanApprove(0.5);
await lendMarket.createLoan(0.5, 1000, 5);
console.log(await lendMarket.userLoanExists());
console.log(await lendMarket.userState());
{
N: "5"
borrowed: "0.0"
collateral: "1.0"
debt: "1000.0"
}
console.log(await lendMarket.userHealth());
console.log(await lendMarket.userHealth(false));
console.log(await lendMarket.userRange());
console.log(await lendMarket.userBands());
console.log(await lendMarket.userPrices());
console.log(await lendMarket.userBandsBalances());
await lendMarket.borrowMoreMaxRecv(0.1);
await lendMarket.borrowMoreBands(0.1, 500);
await lendMarket.borrowMorePrices(0.1, 500);
await lendMarket.borrowMoreHealth(0.1, 500);
await lendMarket.borrowMoreHealth(0.1, 500, false);
await lendMarket.borrowMoreIsApproved(0.1);
await lendMarket.borrowMoreApprove(0.1);
await lendMarket.borrowMore(0.1, 500);
await lendMarket.addCollateralBands(0.2);
await lendMarket.addCollateralPrices(0.2);
await lendMarket.addCollateralHealth(0.2);
await lendMarket.addCollateralHealth(0.2, false);
await lendMarket.addCollateralIsApproved(0.2);
await lendMarket.addCollateralApprove(0.2);
await lendMarket.addCollateral(0.2);
await lendMarket.maxRemovable()
await lendMarket.removeCollateralBands(0.1);
await lendMarket.removeCollateralPrices(0.1);
await lendMarket.removeCollateralHealth(0.1);
await lendMarket.removeCollateralHealth(0.1, false);
await lendMarket.removeCollateral(0.1);
await lendMarket.wallet.balances();
await lendMarket.repayBands(1000);
await lendMarket.repayPrices(1000);
await lendMarket.repayHealth(1000);
await lendMarket.repayHealth(1000, false);
await lendMarket.repayIsApproved(1000);
await lendMarket.repayApprove(1000);
await lendMarket.repay(1000);
await lendMarket.fullRepayIsApproved();
await lendMarket.fullRepayApprove();
await lendMarket.fullRepay();
})()
Create loan all ranges methods for lendMarket
await llamalend.init('JsonRpc', {});
const lendMarket = llamalend.getLendMarket('one-way-market-0');
await lendMarket.createLoanMaxRecvAllRanges(1);
await lendMarket.createLoanBandsAllRanges(1, 2600);
await lendMarket.createLoanPricesAllRanges(1, 2600);
Swap for lendMarket
(async () => {
await llamalend.init('JsonRpc', {});
const lendMarket = llamalend.getLendMarket('one-way-market-0');
await lendMarket.wallet.balances();
await lendMarket.maxSwappable(0, 1);
await lendMarket.swapExpected(0, 1, 100);
await lendMarket.swapRequired(0, 1, 0.03679356627103543);
await lendMarket.swapPriceImpact(0, 1, 100);
await lendMarket.swapIsApproved(0, 100);
await lendMarket.swapApprove(0, 100);
await lendMarket.swap(0, 1, 100, 0.1);
await lendMarket.wallet.balances();
})()
Self-liquidation for lendMarket
(async () => {
await llamalend.init('JsonRpc', {});
const lendMarket = llamalend.getLendMarket('one-way-market-0');
await lendMarket.tokensToLiquidate();
await lendMarket.selfLiquidateIsApproved();
await lendMarket.selfLiquidateApprove();
await lendMarket.selfLiquidate(0.1);
})()
Liquidation for lendMarket
(async () => {
await llamalend.init('JsonRpc', {});
const lendMarket = llamalend.getLendMarket('one-way-market-0');
const addressToLiquidate = "0x66aB6D9362d4F35596279692F0251Db635165871";
await lendMarket.wallet.balances();
await lendMarket.userState(addressToLiquidate);
await lendMarket.currentLeverage()
await lendMarket.currentPosition()
await lendMarket.tokensToLiquidate(addressToLiquidate);
await lendMarket.liquidateIsApproved();
await lendMarket.liquidateApprove();
await lendMarket.liquidate(addressToLiquidate, 0.1);
})()
User loss for lendMarket
(async () => {
await llamalend.init('JsonRpc', {});
const lendMarket = llamalend.getLendMarket('sfrxeth');
console.log(await lendMarket.userLoss("0x0063046686E46Dc6F15918b61AE2B121458534a5"));
})()
Leverage (createLoan, borrowMore, repay) for lendMarket
(async () => {
await llamalend.init('JsonRpc', {}, {}, API_KEY_1INCH);
await llamalend.lendMarkets.fetchMarkets();
const lendMarket = llamalend.getLendMarket('one-way-market-0');
console.log(lendMarket.collateral_token, lendMarket.borrowed_token);
console.log(await lendMarket.wallet.balances());
let userCollateral = 1;
let userBorrowed = 1000;
let debt = 2000;
const range = 10;
const slippage = 0.5;
await lendMarket.leverage.maxLeverage(range);
await lendMarket.leverage.createLoanMaxRecv(userCollateral, userBorrowed, range);
await lendMarket.leverage.createLoanExpectedCollateral(userCollateral, userBorrowed, debt, slippage);
await lendMarket.leverage.createLoanPriceImpact(userBorrowed, debt);
await lendMarket.leverage.createLoanMaxRange(userCollateral, userBorrowed, debt);
await lendMarket.leverage.createLoanBands(userCollateral, userBorrowed, debt, range);
await lendMarket.leverage.createLoanPrices(userCollateral, userBorrowed, debt, range);
await lendMarket.leverage.createLoanHealth(userCollateral, userBorrowed, debt, range);
await lendMarket.leverage.createLoanHealth(userCollateral, userBorrowed, debt, range, false);
await lendMarket.leverage.createLoanIsApproved(userCollateral, userBorrowed);
await lendMarket.leverage.createLoanApprove(userCollateral, userBorrowed);
await lendMarket.leverage.createLoanRouteImage(userBorrowed, debt);
await lendMarket.leverage.createLoan(userCollateral, userBorrowed, debt, range);
await lendMarket.wallet.balances();
await lendMarket.userState();
await lendMarket.userBands();
await lendMarket.userPrices();
await lendMarket.userHealth();
await lendMarket.userHealth(false);
userCollateral = 2;
userBorrowed = 2000;
debt = 10000;
await lendMarket.leverage.borrowMoreMaxRecv(userCollateral, userBorrowed);
await lendMarket.leverage.borrowMoreExpectedCollateral(userCollateral, userBorrowed, debt, slippage);
await lendMarket.leverage.borrowMorePriceImpact(userBorrowed, debt);
await lendMarket.leverage.borrowMoreBands(userCollateral, userBorrowed, debt);
await lendMarket.leverage.borrowMorePrices(userCollateral, userBorrowed, debt);
await lendMarket.leverage.borrowMoreHealth(userCollateral, userBorrowed, debt, true);
await lendMarket.leverage.borrowMoreHealth(userCollateral, userBorrowed, debt, false);
await lendMarket.leverage.borrowMoreIsApproved(userCollateral, userBorrowed);
await lendMarket.leverage.borrowMoreApprove(userCollateral, userBorrowed);
await lendMarket.leverage.borrowMoreRouteImage(userBorrowed, debt);
await lendMarket.leverage.borrowMore(userCollateral, userBorrowed, debt, slippage);
await lendMarket.wallet.balances();
await lendMarket.userState();
await lendMarket.userBands();
await lendMarket.userPrices();
await lendMarket.userHealth();
await lendMarket.userHealth(false);
const stateCollateral = 2;
userCollateral = 1;
userBorrowed = 1500;
await lendMarket.leverage.repayExpectedBorrowed(stateCollateral, userCollateral, userBorrowed, slippage);
await lendMarket.leverage.repayPriceImpact(stateCollateral, userCollateral);
await lendMarket.leverage.repayIsFull(stateCollateral, userCollateral, userBorrowed);
await lendMarket.leverage.repayIsAvailable(stateCollateral, userCollateral, userBorrowed);
await lendMarket.leverage.repayBands(stateCollateral, userCollateral, userBorrowed);
await lendMarket.leverage.repayPrices(stateCollateral, userCollateral, userBorrowed);
await lendMarket.leverage.repayHealth(stateCollateral, userCollateral, userBorrowed, true);
await lendMarket.leverage.repayHealth(stateCollateral, userCollateral, userBorrowed, false);
await lendMarket.leverage.repayIsApproved(userCollateral, userBorrowed);
await lendMarket.leverage.repayApprove(userCollateral, userBorrowed);
await lendMarket.leverage.repayRouteImage(stateCollateral, userCollateral);
await lendMarket.leverage.repay(stateCollateral, userCollateral, userBorrowed, slippage);
await lendMarket.wallet.balances();
await lendMarket.userState();
await lendMarket.userBands();
await lendMarket.userPrices();
await lendMarket.userHealth();
await lendMarket.userHealth(false);
})()
Leverage createLoan all ranges methods for lendMarket
await llamalend.init('JsonRpc', {}, {}, API_KEY_1INCH);
await llamalend.lendMarkets.fetchMarkets();
const lendMarket = llamalend.getLendMarket('one-way-market-0');
const userCollateral = 1;
const userBorrowed = 1000;
const debt = 2000;
await lendMarket.leverage.createLoanMaxRecvAllRanges(userCollateral, userBorrowed);
await lendMarket.leverage.createLoanBandsAllRanges(userCollateral, userBorrowed, debt);
await lendMarket.leverage.createLoanPricesAllRanges(userCollateral, userBorrowed, debt);
MintMarket
MintMarket fields
import llamalend from "@curvefi/llamalend-api";
import {llamalend} from "./llamalend";
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
mintMarket.id;
mintMarket.address;
mintMarket.controller;
mintMarket.monetaryPolicy;
mintMarket.collateral;
mintMarket.collateralSymbol;
mintMarket.collateralDecimals;
mintMarket.coins;
mintMarket.coinAddresses;
mintMarket.coinDecimals;
mintMarket.minBands;
mintMarket.maxBands;
mintMarket.defaultBands;
mintMarket.A;
mintMarket.tickSpace;
})()
Wallet balances for mintMarket
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
await mintMarket.wallet.balances();
await mintMarket.wallet.balances("0x0063046686E46Dc6F15918b61AE2B121458534a5");
})()
Stats for mintMarket
import llamalend from "@curvefi/llamalend-api";
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
await mintMarket.stats.parameters();
await mintMarket.stats.balances();
await mintMarket.stats.maxMinBands();
await mintMarket.stats.activeBand();
const liquidatingBand = await mintMarket.stats.liquidatingBand();
await mintMarket.stats.bandBalances(liquidatingBand);
await mintMarket.stats.bandsBalances();
await mintMarket.stats.totalSupply();
await mintMarket.stats.totalDebt();
await mintMarket.stats.totalStablecoin();
await mintMarket.stats.totalCollateral();
await mintMarket.stats.capAndAvailable();
})()
Create loan, add collateral, borrow more, repay for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
console.log(llamalend.getMintMarketList());
const mintMarket = llamalend.getMintMarket('eth');
await mintMarket.oraclePrice();
await mintMarket.price();
await mintMarket.basePrice();
await mintMarket.wallet.balances();
await mintMarket.createLoanMaxRecv(0.5, 5);
await mintMarket.createLoanBands(0.5, 1000, 5);
await mintMarket.createLoanPrices(0.5, 1000, 5);
await mintMarket.createLoanHealth(0.5, 1000, 5);
await mintMarket.createLoanHealth(0.5, 1000, 5, false);
await mintMarket.createLoanIsApproved(0.5);
await mintMarket.createLoanApprove(0.5);
await mintMarket.createLoan(0.5, 1000, 5);
await mintMarket.debt();
await mintMarket.loanExists();
await mintMarket.userHealth();
await mintMarket.userHealth(false);
await mintMarket.userRange()
await mintMarket.userBands();
await mintMarket.userPrices();
await mintMarket.userState();
await mintMarket.userBandsBalances();
await mintMarket.borrowMoreMaxRecv(0.1);
await mintMarket.borrowMoreBands(0.1, 500);
await mintMarket.borrowMorePrices(0.1, 500);
await mintMarket.borrowMoreHealth(0.1, 500);
await mintMarket.borrowMoreHealth(0.1, 500, false);
await mintMarket.borrowMoreIsApproved(0.1);
await mintMarket.borrowMoreApprove(0.1);
await mintMarket.borrowMore(0.1, 500);
await mintMarket.addCollateralBands(0.2);
await mintMarket.addCollateralPrices(0.2);
await mintMarket.addCollateralHealth(0.2);
await mintMarket.addCollateralHealth(0.2, false);
await mintMarket.addCollateralIsApproved(0.2);
await mintMarket.addCollateralApprove(0.2);
await mintMarket.addCollateral(0.2);
await mintMarket.maxRemovable()
await mintMarket.removeCollateralBands(0.1);
await mintMarket.removeCollateralPrices(0.1);
await mintMarket.removeCollateralHealth(0.1);
await mintMarket.removeCollateralHealth(0.1, false);
await mintMarket.removeCollateral(0.1);
await mintMarket.wallet.balances();
await mintMarket.repayBands(1000);
await mintMarket.repayPrices(1000);
await mintMarket.repayHealth(1000);
await mintMarket.repayHealth(1000, false);
await mintMarket.repayIsApproved(1000);
await mintMarket.repayApprove(1000);
await mintMarket.repay(1000);
await mintMarket.fullRepayIsApproved();
await mintMarket.fullRepayApprove();
await mintMarket.fullRepay();
})()
Create loan all ranges methods for mintMarket
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
await mintMarket.createLoanMaxRecvAllRanges(1);
await mintMarket.createLoanBandsAllRanges(1, 2600);
await mintMarket.createLoanPricesAllRanges(1, 2600);
Swap for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
await mintMarket.wallet.balances();
await mintMarket.maxSwappable(0, 1);
await mintMarket.swapExpected(0, 1, 100);
await mintMarket.swapRequired(0, 1, 0.03679356627103543);
await mintMarket.swapPriceImpact(0, 1, 100);
await mintMarket.swapIsApproved(0, 100);
await mintMarket.swapApprove(0, 100);
await mintMarket.swap(0, 1, 100, 0.1);
await mintMarket.wallet.balances();
})()
Self-liquidation for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
await mintMarket.tokensToLiquidate();
await mintMarket.selfLiquidateIsApproved();
await mintMarket.selfLiquidateApprove();
await mintMarket.selfLiquidate(0.1);
})()
Liquidation for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('eth');
const addressToLiquidate = "0x66aB6D9362d4F35596279692F0251Db635165871";
await mintMarket.wallet.balances();
await mintMarket.userState(addressToLiquidate);
await mintMarket.tokensToLiquidate(addressToLiquidate);
await mintMarket.liquidateIsApproved();
await mintMarket.liquidateApprove();
await mintMarket.liquidate(addressToLiquidate, 0.1);
})()
User loss for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('sfrxeth');
console.log(await mintMarket.userLoss("0x0063046686E46Dc6F15918b61AE2B121458534a5"));
})()
Leverage for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('wsteth');
await mintMarket.leverage.createLoanMaxRecv(1, 5);
const { collateral, leverage, routeIdx } = await mintMarket.leverage.createLoanCollateral(1, 1000);
await mintMarket.leverage.getRouteName(routeIdx);
await mintMarket.leverage.getMaxRange(1, 1000);
await mintMarket.leverage.createLoanBands(1, 1000, 5);
await mintMarket.leverage.createLoanPrices(1, 1000, 5);
await mintMarket.leverage.createLoanHealth(1, 1000, 5);
await mintMarket.leverage.createLoanHealth(1, 1000, 5, false);
await mintMarket.leverage.priceImpact(1, 1000);
await mintMarket.leverage.createLoanIsApproved(1);
await mintMarket.leverage.createLoanApprove(1);
await mintMarket.leverage.createLoan(1, 1000, 5);
await mintMarket.debt();
await mintMarket.loanExists();
await mintMarket.userHealth();
await mintMarket.userHealth(false);
await mintMarket.userRange()
await mintMarket.userBands();
await mintMarket.userPrices();
await mintMarket.userState();
await mintMarket.userBandsBalances();
})()
Leverage all ranges methods for mintMarket
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('wsteth');
await mintMarket.leverage.createLoanMaxRecvAllRanges(1);
await mintMarket.leverage.createLoanBandsAllRanges(1, 14000);
await mintMarket.leverage.createLoanPricesAllRanges(1, 14000);
Deleverage for mintMarket
(async () => {
await llamalend.init('JsonRpc', {});
const mintMarket = llamalend.getMintMarket('wsteth');
await mintMarket.userState();
const { stablecoins, routeIdx } = await mintMarket.deleverage.repayStablecoins(0.5);
await mintMarket.deleverage.getRouteName(routeIdx)
await mintMarket.deleverage.repayBands(0.5)
await mintMarket.deleverage.repayPrices(0.5)
await mintMarket.deleverage.repayHealth(0.5)
await mintMarket.deleverage.repayHealth(0.5, false)
await mintMarket.deleverage.priceImpact(0.5)
await mintMarket.deleverage.isAvailable(0.5)
await mintMarket.deleverage.isFullRepayment(0.5)
await mintMarket.deleverage.repay(0.5, 0.3)
await mintMarket.userState()
await mintMarket.userBands()
await mintMarket.userPrices()
await mintMarket.userHealth()
await mintMarket.userHealth(false)
await mintMarket.userBandsBalances()
})()