diff --git a/packages/contracts/tasks/chain-specific/superseed/market.ts b/packages/contracts/tasks/chain-specific/superseed/market.ts index f09dcae87a..af6b6b3d99 100644 --- a/packages/contracts/tasks/chain-specific/superseed/market.ts +++ b/packages/contracts/tasks/chain-specific/superseed/market.ts @@ -43,3 +43,58 @@ task("markets:deploy:superseed:new", "deploy new superseed assets").setAction(as } } }); + +task("superseed:set-caps:new", "one time setup").setAction(async (_, { viem, run, getNamedAccounts, deployments }) => { + const { deployer } = await getNamedAccounts(); + const assetsToDeploy: string[] = [assetSymbols.WETH]; + for (const asset of superseed.assets.filter((asset) => assetsToDeploy.includes(asset.symbol))) { + const pool = await viem.getContractAt("IonicComptroller", COMPTROLLER_MAIN); + const cToken = await pool.read.cTokensByUnderlying([asset.underlying]); + const asExt = await viem.getContractAt("CTokenFirstExtension", cToken); + const admin = await pool.read.admin(); + const ap = await deployments.get("AddressesProvider"); + if (admin.toLowerCase() !== deployer.toLowerCase()) { + await prepareAndLogTransaction({ + contractInstance: asExt, + functionName: "_setAddressesProvider", + args: [ap.address as Address], + description: "Set Addresses Provider", + inputs: [ + { + internalType: "address", + name: "_ap", + type: "address" + } + ] + }); + } else { + const tx = await asExt.write._setAddressesProvider([ap.address as Address]); + console.log("set addresses provider", tx); + } + + await run("market:set-borrow-cap", { + market: cToken, + maxBorrow: asset.initialBorrowCap + }); + + await run("market:set-supply-cap", { + market: cToken, + maxSupply: asset.initialSupplyCap + }); + } +}); + +task("market:set-cf:superseed:new", "Sets CF on a market").setAction(async (_, { viem, run }) => { + for (const asset of superseed.assets.filter((asset) => asset.symbol === assetSymbols.WETH)) { + const pool = await viem.getContractAt("IonicComptroller", COMPTROLLER_MAIN); + const cToken = await pool.read.cTokensByUnderlying([asset.underlying]); + console.log("cToken: ", cToken, asset.symbol); + + if (asset.initialCf) { + await run("market:set:ltv", { + marketAddress: cToken, + ltv: asset.initialCf + }); + } + } +}); \ No newline at end of file