Skip to content

Commit 9f266cd

Browse files
Mitosis update vault addresses (#14133)
Co-authored-by: MTSS-Community <[email protected]>
1 parent 5940656 commit 9f266cd

File tree

1 file changed

+79
-32
lines changed

1 file changed

+79
-32
lines changed

projects/mitosis/index.js

+79-32
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const ADDRESSES = require('../helper/coreAssets.json');
1+
const ADDRESSES = require("../helper/coreAssets.json");
22

33
const WEETH_ADDRESS = {
44
ethereum: ADDRESSES.ethereum.WEETH,
@@ -22,21 +22,82 @@ const CAP_ADDRESS = {
2222
scroll: "0xcd32876b9B483eb75e8ca74935E4b51725F33A91",
2323
};
2424

25+
const THEO_VAULT_ADDRESS = [
26+
{
27+
chainId: 1,
28+
address: "0x0b75e167f8a37179b7044414ee43e94cabeaa2fa",
29+
},
30+
{
31+
chainId: 42161,
32+
address: "0x54602e5cba09e01eee9b2050f1f4f0dc902cee34",
33+
},
34+
{
35+
chainId: 59144,
36+
address: "0xcf101e13b5181f79094b0726b03e89d1cb95b28c",
37+
},
38+
];
39+
40+
const THEO_UNDERLYING_ASSETS = {
41+
"0x0b75e167f8a37179b7044414ee43e94cabeaa2fa": WEETH_ADDRESS.ethereum,
42+
"0x54602e5cba09e01eee9b2050f1f4f0dc902cee34": WEETH_ADDRESS.arbitrum,
43+
"0xcf101e13b5181f79094b0726b03e89d1cb95b28c": WEETH_ADDRESS.linea,
44+
};
2545

2646
const chainTVL = ({ vaults = [] }) => async (api) => {
27-
const caps = []
47+
const caps = [];
2848
if (CAP_ADDRESS[api.chain] && WEETH_ADDRESS[api.chain]) {
29-
caps.push({ cap: CAP_ADDRESS[api.chain], asset: WEETH_ADDRESS[api.chain] })
49+
caps.push({ cap: CAP_ADDRESS[api.chain], asset: WEETH_ADDRESS[api.chain] });
50+
}
51+
const capContracts = caps.map((i) => i.cap);
52+
const capTokens = caps.map((i) => i.asset);
53+
const capTokenBals = await api.multiCall({
54+
abi: "uint256:load",
55+
calls: capContracts,
56+
});
57+
api.add(capTokens, capTokenBals);
58+
59+
const theoVaults = THEO_VAULT_ADDRESS.filter(
60+
(vault) => vault.chainId === api.chainId
61+
).map((vault) => vault.address.toLowerCase());
62+
63+
const regularVaults = vaults.filter(
64+
(vault) => !theoVaults.includes(vault.toLowerCase())
65+
);
66+
67+
const vaultInfos = await api.multiCall({
68+
abi: "function vaultParams() view returns (uint8 decimals, address asset, uint56 minimumSupply, uint104 cap)",
69+
calls: regularVaults,
70+
permitFailure: true,
71+
});
72+
const vaultInfos2 = await api.multiCall({
73+
abi: "address:asset",
74+
calls: regularVaults,
75+
permitFailure: true,
76+
});
77+
const vaultTokens = vaultInfos.map((v, i) => v?.asset ?? vaultInfos2[i]);
78+
79+
const balances = await api.sumTokens({
80+
tokensAndOwners2: [vaultTokens, regularVaults],
81+
});
82+
83+
if (theoVaults.length > 0) {
84+
const theoTotalSupplies = await api.multiCall({
85+
abi: "uint256:totalSupply",
86+
calls: theoVaults,
87+
});
88+
89+
theoVaults.forEach((theoVault, i) => {
90+
const underlyingAsset = THEO_UNDERLYING_ASSETS[theoVault];
91+
if (underlyingAsset) {
92+
api.add(underlyingAsset, theoTotalSupplies[i]);
93+
} else {
94+
api.add(theoVault, theoTotalSupplies[i]);
95+
}
96+
});
3097
}
31-
const capContracts = caps.map(i => i.cap);
32-
const capTokens = caps.map(i => i.asset)
33-
const capTokenBals = await api.multiCall({ abi: 'uint256:load', calls: capContracts })
34-
api.add(capTokens, capTokenBals)
35-
const vaultInfos = await api.multiCall({ abi: "function vaultParams() view returns (uint8 decimals, address asset, uint56 minimumSupply, uint104 cap)", calls: vaults, permitFailure: true })
36-
const vaultInfos2 = await api.multiCall({ abi: "address:asset", calls: vaults, permitFailure: true })
37-
const vaultTokens = vaultInfos.map((v, i) => v?.asset ?? vaultInfos2[i])
38-
return api.sumTokens({ tokensAndOwners2: [vaultTokens, vaults] })
39-
}
98+
99+
return balances;
100+
};
40101

41102
module.exports = {
42103
doublecounted: true,
@@ -48,15 +109,13 @@ module.exports = {
48109
"0xA1eBd23c4364e7491633237A0d9359D82c629182",
49110
"0x0109e9f292516dAB3E15EfC61811C5e5a7FA5358",
50111
"0x0B75e167F8A37179b7044414EE43e94cabeAA2FA",
51-
"0x14C5a9007FDC5eE4De1581C892b5fd4623D8cdBf",
52112
],
53113
}),
54114
},
55115
scroll: {
56116
tvl: chainTVL({
57117
vaults: [
58118
"0xA0EeB418213f8472cba2c842378E1bB64e28bd28",
59-
"0xb9ca61a6d5fa0c443f3c48ab1fbf0118964308d6",
60119
]
61120
}),
62121
},
@@ -67,64 +126,52 @@ module.exports = {
67126
"0x73981B0496fC08e9136BAF74b79d32A4d4F2a007",
68127
"0xbEd575b0FeDa4F84b71144634693DaCc07749471",
69128
"0x54602E5cBa09e01EeE9B2050F1F4f0Dc902CeE34",
70-
"0x3c09fb9630B8f89F73871506F445F5DbedBEB0DF",
71129
]
72130
}),
73131
},
74132
optimism: {
75133
tvl: chainTVL({
76134
vaults: [
77135
"0x5616Fe2762687Cd8a9158c27F62aff84E36821Be",
78-
"0xea8eDdb19a980B6D9D77167ca08a70a692DA0DD7",
79136
],
80137
}),
81138
},
82139
mode: {
83140
tvl: chainTVL({
84141
vaults: [
85142
"0xbEd575b0FeDa4F84b71144634693DaCc07749471",
86-
"0xa30c1544d12309a519A205A486f6AF0515dFA442",
87143
],
88144
}),
89145
},
90146
manta: {
91147
tvl: chainTVL({
92-
vaults: [
93-
"0x8735C80fb5aEfF60d35C9d6E663758Af7861981E",
94-
],
148+
vaults: [],
95149
}),
96150
},
97151
blast: {
98152
tvl: chainTVL({
99153
vaults: [
100154
"0x8506fD66FCeD711c11F9E837EcAEC0F87C3F60A0",
101-
"0x0817b88a528E2F5F980d26e98fC950CbD6aE31Ef",
102155
],
103156
}),
104-
105157
},
106158
linea: {
107159
tvl: chainTVL({
108160
vaults: [
109161
"0x56ceD49205e5D9b4d8D9B29f4aBfbe7bb8b08768",
110162
"0x96d6cE4e83dB947fF6bD1Ab0B377F23cd5D9ec2D",
111163
"0xcF101e13b5181f79094B0726B03e89d1cB95b28C",
112-
"0x3478dE5e82431676C87113001bBeeb359cb5eAa5",
113164
],
114165
}),
115166
},
116167
bsc: {
117168
tvl: chainTVL({
118-
vaults: [
119-
"0xaDd58517c5D45c8ed361986f193785F8Ed1ABFc2",
120-
]
121-
})
169+
vaults: ["0xaDd58517c5D45c8ed361986f193785F8Ed1ABFc2"],
170+
}),
122171
},
123172
mantle: {
124173
tvl: chainTVL({
125-
vaults: [
126-
"0x6FF000453a9c14f7d3bf381925c8cde565DbCe55",
127-
]
128-
})
174+
vaults: ["0x6FF000453a9c14f7d3bf381925c8cde565DbCe55"],
175+
}),
129176
},
130-
};
177+
};

0 commit comments

Comments
 (0)