Skip to content

Commit

Permalink
Merge pull request #629 from ionicprotocol/development
Browse files Browse the repository at this point in the history
feat: deploy wUSDM
  • Loading branch information
rhlsthrm authored Sep 24, 2024
2 parents 7b921cd + 27da3a8 commit e538807
Show file tree
Hide file tree
Showing 7 changed files with 765 additions and 458 deletions.
16 changes: 16 additions & 0 deletions packages/chains/src/optimism/assets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export const wstETH = "0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb";
export const SNX = "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4";
export const WBTC = "0x68f180fcCe6836688e9084f035309E29Bf0A2095";
export const LUSD = "0xc40F949F8a4e094D1b49a23ea9241D289B7b2819";
export const wUSDM = "0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812";

export const assets: SupportedAsset[] = [
{
Expand Down Expand Up @@ -129,6 +130,21 @@ export const assets: SupportedAsset[] = [
initialCf: "70",
initialSupplyCap: parseEther(String(2_200_000)).toString(),
initialBorrowCap: parseEther(String(1_700_000)).toString()
},
{
symbol: assetSymbols.wUSDM,
underlying: wUSDM,
name: "Wrapped USDM",
decimals: 18,
oracle: OracleTypes.ChainlinkPriceOracleV2,
oracleSpecificParams: {
aggregator: "0xD673873c8627b29d9e245cDC133c6dA0a398b65A",
feedBaseCurrency: ChainlinkFeedBaseCurrency.USD
},
extraDocs: defaultDocs("https://optimistic.etherscan.io", wUSDM),
initialCf: "82",
initialSupplyCap: parseEther(String(1_300_000)).toString(),
initialBorrowCap: parseEther(String(1_000_000)).toString()
}
];

Expand Down
534 changes: 78 additions & 456 deletions packages/contracts/deployments/optimism/UniswapV3LiquidatorFunder.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion packages/contracts/tasks/chain-specific/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import "./bob";
import "./base";
import "./mode";
import "./fraxtal";
import "./fraxtal";
import "./optimism";
3 changes: 3 additions & 0 deletions packages/contracts/tasks/chain-specific/optimism/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import "./market";

export const COMPTROLLER_MAIN = "0xaFB4A254D125B0395610fdc8f1D022936c7b166B";
55 changes: 55 additions & 0 deletions packages/contracts/tasks/chain-specific/optimism/market.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { task } from "hardhat/config";
import { zeroAddress } from "viem";
import { assetSymbols } from "@ionicprotocol/types";
import { COMPTROLLER_MAIN } from ".";
import { optimism } from "@ionicprotocol/chains";

task("markets:deploy:optimism:new", "deploy new mode assets").setAction(async (_, { viem, run }) => {
const assetsToDeploy: string[] = [assetSymbols.wUSDM];
for (const asset of optimism.assets.filter((asset) => assetsToDeploy.includes(asset.symbol))) {
if (!asset.name || !asset.symbol || !asset.underlying) {
throw new Error(`Asset ${asset.symbol} has no name, symbol or underlying`);
}
const name = `Ionic ${asset.name}`;
const symbol = "ion" + asset.symbol;
console.log(`Deploying ctoken ${name} with symbol ${symbol}`);
await run("market:deploy", {
signer: "deployer",
cf: "0",
underlying: asset.underlying,
comptroller: COMPTROLLER_MAIN,
symbol,
name
});
const pool = await viem.getContractAt("IonicComptroller", COMPTROLLER_MAIN);
const cToken = await pool.read.cTokensByUnderlying([asset.underlying]);
console.log(`Deployed ${asset.symbol} at ${cToken}`);

if (cToken !== zeroAddress) {
await run("market:set-supply-cap", {
market: cToken,
maxSupply: asset.initialSupplyCap
});

await run("market:set-borrow-cap", {
market: cToken,
maxBorrow: asset.initialBorrowCap
});
}
}
});

task("market:set-cf:optimism:new", "Sets CF on a market").setAction(async (_, { viem, run }) => {
for (const asset of optimism.assets.filter((asset) => asset.symbol === assetSymbols.wsuperOETHb)) {
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
});
}
}
});
12 changes: 11 additions & 1 deletion packages/ui/constants/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,17 @@ export const pools: Record<number, PoolParams> = {
{
id: '0',
name: 'Main Pool',
assets: ['USDC', 'USDT', 'WETH', 'OP', 'wstETH', 'SNX', 'WBTC', 'LUSD']
assets: [
'USDC',
'USDT',
'WETH',
'wUSDM',
'OP',
'wstETH',
'SNX',
'WBTC',
'LUSD'
]
}
]
},
Expand Down

0 comments on commit e538807

Please sign in to comment.