MarketController
Deploying markets
1. Get controller info for borrower
import { getController, MarketController, MarketParameters } from '@wildcatfi/wildcat-sdk';
const controller: MarketController = await getController(signer, borrower);
2. Get parameter constraints for new markets
controller.constraints: MarketParameterConstraints
contains the min/max values of
annualInterestBips
delinquencyFeeBips
withdrawalBatchDuration
reserveRatioBips
delinquencyGracePeriod
If provided values are out of this range, market deployment will revert.
3. Deploying a mock token for new market
import { deployToken } from "@wildcatfi/wildcat-sdk";
await deployToken(signer, 'name', 'symbol')
4. Deploying new market
const marketParameters: MarketParameters = {...}
if (!controller.isRegisteredBorrower) {
await controller.registerBorrower()
}
if (controller.getExistingMarketForParameters(marketParameters)) {
throw Error()
}
const market: Market = await controller.deployMarket(marketParameters);
Market
Get market instances
1. Get all Market
instances on Wildcat
import { getAllMarkets } from '@wildcatfi/wildcat-sdk';
const markets = getAllMarkets(provider);
2. Get all Market
instances for borrower
const controller: MarketController = await getController(signer, borrower);
MarketAccount
Get MarketAccount
1. Get MarketAccount
for every market
import { getAllMarketAccountsForLender } from '@wildcatfi/wildcat-sdk';
const accounts = await getAllMarketAccountsForLender(signer, lenderAddress);
Deposit
1. Get underlying assets from mock token
if (market.underlyingToken.isMock) {
await market.underlyingToken.faucet();
}