Skip to content

Commit aa5c64d

Browse files
feat: sUSDS and sUSDC on Arbitrum
1 parent d4ec870 commit aa5c64d

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

script/production/arbitrum/clusters/ArbitrumCluster.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
"irms": [
44
"0x47842E428bA5553480227125013621e3E5A237b5",
55
"0x47842E428bA5553480227125013621e3E5A237b5",
6+
"0x0000000000000000000000000000000000000000",
7+
"0x0000000000000000000000000000000000000000",
68
"0x91FBEAc79167d574B8b0D9E00cb35143c4CB84E2",
79
"0xF7c774aCFA136F527287Dbc05477c015Ee6ED2C9",
810
"0xF7c774aCFA136F527287Dbc05477c015Ee6ED2C9",
@@ -16,12 +18,16 @@
1618
"0x94B6924796CcC98e5237615F8710Ef5732190F66",
1719
"0x94B6924796CcC98e5237615F8710Ef5732190F66",
1820
"0x94B6924796CcC98e5237615F8710Ef5732190F66",
21+
"0x94B6924796CcC98e5237615F8710Ef5732190F66",
22+
"0x94B6924796CcC98e5237615F8710Ef5732190F66",
1923
"0x94B6924796CcC98e5237615F8710Ef5732190F66"
2024
],
2125
"stubOracle": "0x0000000000000000000000000000000000000000",
2226
"vaults": [
2327
"0x0a1eCC5Fe8C9be3C809844fcBe615B46A869b899",
2428
"0x37512F45B4ba8808910632323b73783Ca938CD51",
29+
"0x0000000000000000000000000000000000000000",
30+
"0x0000000000000000000000000000000000000000",
2531
"0x78E3E051D32157AACD550fBB78458762d8f7edFF",
2632
"0xA8616E4D9f3f0aa01aff1d7c3b66249f8a5f1A58",
2733
"0x5A8294CE02908B1da68c6c39695c9b0FbaF7675d",

script/production/arbitrum/clusters/ArbitrumCluster.s.sol

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ contract Cluster is ManageCluster {
1717
cluster.assets = [
1818
USDC,
1919
USDT0,
20+
sUSDS,
21+
sUSDC,
2022
WETH,
2123
wstETH,
2224
weETH,
@@ -60,6 +62,8 @@ contract Cluster is ManageCluster {
6062
// in case the adapter is not present in the Adapter Registry, the adapter address can be passed instead in form of a string.
6163
cluster.oracleProviders[USDC ] = "0x3CD81aee1c41757B88961572BfD192cBF2127f37";
6264
cluster.oracleProviders[USDT0 ] = "0xbBC0166f5F14e9C4970c87bd5336e19Bc530FD74";
65+
cluster.oracleProviders[sUSDS ] = "0x5939ee098eb6d411c3727b78ee665771f5cb0501";
66+
cluster.oracleProviders[sUSDC ] = "ExternalVault|0x3CD81aee1c41757B88961572BfD192cBF2127f37";
6367
cluster.oracleProviders[WETH ] = "0x6C1212B14E190a5eB91B1c8cc2f6f4623476862C";
6468
cluster.oracleProviders[wstETH] = "0x1B9405C4742DF2fB0a2fC838fA08c4FE03300702";
6569
cluster.oracleProviders[weETH ] = "0x4F22d594a852DD3788Ba605A4786946334881492";
@@ -69,6 +73,8 @@ contract Cluster is ManageCluster {
6973
// define supply caps here. 0 means no supply can occur, type(uint256).max means no cap defined hence max amount
7074
cluster.supplyCaps[USDC ] = 100_000_000;
7175
cluster.supplyCaps[USDT0 ] = 100_000_000;
76+
cluster.supplyCaps[sUSDS ] = 10_000_000;
77+
cluster.supplyCaps[sUSDC ] = 10_000_000;
7278
cluster.supplyCaps[WETH ] = 50_000;
7379
cluster.supplyCaps[wstETH] = 30_000;
7480
cluster.supplyCaps[weETH ] = 30_000;
@@ -78,6 +84,8 @@ contract Cluster is ManageCluster {
7884
// define borrow caps here. 0 means no borrow can occur, type(uint256).max means no cap defined hence max amount
7985
cluster.borrowCaps[USDC ] = 90_000_000;
8086
cluster.borrowCaps[USDT0 ] = 90_000_000;
87+
cluster.borrowCaps[sUSDS ] = 8_000_000;
88+
cluster.borrowCaps[sUSDC ] = 8_000_000;
8189
cluster.borrowCaps[WETH ] = 45_000;
8290
cluster.borrowCaps[wstETH] = 15_000;
8391
cluster.borrowCaps[weETH ] = 15_000;
@@ -96,13 +104,18 @@ contract Cluster is ManageCluster {
96104
uint256[4] memory irmETH_LST = [uint256(0), uint256(146829246), uint256(4818228676), uint256(2147483648)];
97105

98106
// Base=0% APY, Kink(90%)=6.00% APY Max=40.00% APY
99-
uint256[4] memory irmUSD = [uint256(0), uint256(477682641), uint256(20526145828), uint256(3865470566)];
107+
uint256[4] memory irmUSD_1 = [uint256(0), uint256(477682641), uint256(20526145828), uint256(3865470566)];
108+
109+
// Base=0% APY, Kink(80%)=1.50% APY Max=40.00% APY
110+
uint256[4] memory irmUSD_2 = [uint256(0), uint256(137312259), uint256(11863395757), uint256(3435973836)];
100111

101112
// Base=0% APY, Kink(80%)=5.00% APY Max=80.00% APY
102113
uint256[4] memory irmDEFI = [uint256(0), uint256(449973958), uint256(19883875652), uint256(3435973836)];
103114

104-
cluster.kinkIRMParams[USDC ] = irmUSD;
105-
cluster.kinkIRMParams[USDT0 ] = irmUSD;
115+
cluster.kinkIRMParams[USDC ] = irmUSD_1;
116+
cluster.kinkIRMParams[USDT0 ] = irmUSD_1;
117+
cluster.kinkIRMParams[sUSDS ] = irmUSD_2;
118+
cluster.kinkIRMParams[sUSDC ] = irmUSD_2;
106119
cluster.kinkIRMParams[WETH ] = irmETH;
107120
cluster.kinkIRMParams[wstETH] = irmETH_LST;
108121
cluster.kinkIRMParams[weETH ] = irmETH_LST;
@@ -118,15 +131,17 @@ contract Cluster is ManageCluster {
118131

119132
// define ltv values here. columns are liability vaults, rows are collateral vaults
120133
cluster.ltvs = [
121-
// 0 1 2 3 4 5 6
122-
// USDC USDT0 WETH wstETH weETH WBTC ARB
123-
/* 0 USDC */ [uint16(0.00e4), 0.96e4, 0.86e4, 0.84e4, 0.84e4, 0.86e4, 0.65e4],
124-
/* 1 USDT0 */ [uint16(0.96e4), 0.00e4, 0.86e4, 0.84e4, 0.84e4, 0.86e4, 0.65e4],
125-
/* 2 WETH */ [uint16(0.86e4), 0.86e4, 0.00e4, 0.95e4, 0.94e4, 0.86e4, 0.65e4],
126-
/* 3 wstETH */ [uint16(0.84e4), 0.84e4, 0.95e4, 0.00e4, 0.93e4, 0.84e4, 0.65e4],
127-
/* 4 weETH */ [uint16(0.83e4), 0.83e4, 0.94e4, 0.93e4, 0.00e4, 0.83e4, 0.65e4],
128-
/* 5 WBTC */ [uint16(0.86e4), 0.86e4, 0.86e4, 0.84e4, 0.84e4, 0.00e4, 0.65e4],
129-
/* 6 ARB */ [uint16(0.65e4), 0.65e4, 0.65e4, 0.65e4, 0.65e4, 0.65e4, 0.00e4]
134+
// 0 1 2 3 4 5 6 7 8
135+
// USDC USDT0 sUSDS sUSDC WETH wstETH weETH WBTC ARB
136+
/* 0 USDC */ [uint16(0.00e4), 0.96e4, 0.96e4, 0.96e4, 0.86e4, 0.84e4, 0.84e4, 0.86e4, 0.65e4],
137+
/* 1 USDT0 */ [uint16(0.96e4), 0.00e4, 0.94e4, 0.94e4, 0.86e4, 0.84e4, 0.84e4, 0.86e4, 0.65e4],
138+
/* 2 sUSDS */ [uint16(0.96e4), 0.94e4, 0.00e4, 0.00e4, 0.84e4, 0.82e4, 0.81e4, 0.84e4, 0.65e4],
139+
/* 3 sUSDC */ [uint16(0.96e4), 0.94e4, 0.00e4, 0.00e4, 0.84e4, 0.82e4, 0.81e4, 0.84e4, 0.65e4],
140+
/* 4 WETH */ [uint16(0.86e4), 0.86e4, 0.84e4, 0.84e4, 0.00e4, 0.95e4, 0.94e4, 0.86e4, 0.65e4],
141+
/* 5 wstETH */ [uint16(0.84e4), 0.84e4, 0.82e4, 0.82e4, 0.95e4, 0.00e4, 0.93e4, 0.84e4, 0.65e4],
142+
/* 6 weETH */ [uint16(0.83e4), 0.83e4, 0.81e4, 0.81e4, 0.94e4, 0.93e4, 0.00e4, 0.83e4, 0.65e4],
143+
/* 7 WBTC */ [uint16(0.86e4), 0.86e4, 0.84e4, 0.84e4, 0.86e4, 0.84e4, 0.84e4, 0.00e4, 0.65e4],
144+
/* 8 ARB */ [uint16(0.65e4), 0.65e4, 0.65e4, 0.65e4, 0.65e4, 0.65e4, 0.65e4, 0.65e4, 0.00e4]
130145
];
131146

132147
// define external ltvs here. columns are liability vaults, rows are collateral vaults.

0 commit comments

Comments
 (0)