@1delta/data-sdk 0.0.41 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -36,37 +36,42 @@ function getChainEntries(chainIds) {
36
36
  return entries;
37
37
  }
38
38
 
39
- // src/lending.ts
39
+ // src/lending/registry.ts
40
40
  var GLOBAL_LENDER_DATA_KEY = "__1delta_lender_registry__";
41
- globalThis[GLOBAL_LENDER_DATA_KEY] = {
41
+ var LENDER_DATA_DEFAULTS = () => ({
42
42
  aaveTokens: {},
43
43
  aavePools: {},
44
- compoundV3Pools: {},
45
- morphoPools: {},
46
- compoundV3BaseData: {},
44
+ aaveReserves: {},
45
+ aaveOracles: {},
46
+ aaveOraclesConfig: {},
47
+ aaveWethGateway: {},
48
+ aaveV4Spokes: {},
49
+ aaveV4Oracles: {},
50
+ aaveV4Peripherals: {},
47
51
  compoundV2Pools: {},
48
52
  compoundV2Tokens: {},
49
53
  compoundV2TokenArray: {},
50
- initConfig: {},
51
- aaveReserves: {},
52
54
  compoundV2Reserves: {},
53
- compoundV3Reserves: {},
54
- aaveOracles: {},
55
55
  compoundV2Oracles: {},
56
+ compoundV2OraclesConfig: {},
57
+ compoundV3Pools: {},
58
+ compoundV3BaseData: {},
59
+ compoundV3Reserves: {},
56
60
  compoundV3OraclesData: {},
61
+ compoundV3Bulker: {},
62
+ morphoPools: {},
57
63
  morphoOracles: {},
58
64
  morphoTypeOracles: {},
59
65
  morphoTypeMarkets: {},
60
66
  morphoTypeVaults: {},
61
- aaveOraclesConfig: {},
62
- compoundV2OraclesConfig: {},
63
- aaveWethGateway: {},
64
67
  morphoBundler3: {},
68
+ initConfig: {},
65
69
  listaNativeProvider: {},
66
70
  midnightConfig: {},
67
71
  midnightMarkets: {},
68
72
  termConfig: {},
69
73
  termMarkets: {},
74
+ termMaxConfig: {},
70
75
  exactlyConfig: {},
71
76
  exactlyMarkets: {},
72
77
  tellerConfig: {},
@@ -76,7 +81,6 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
76
81
  riverConfig: {},
77
82
  riverMarkets: {},
78
83
  inverseConfig: {},
79
- termMaxConfig: {},
80
84
  inverseMarkets: {},
81
85
  usddConfig: {},
82
86
  usddMarkets: {},
@@ -88,14 +92,10 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
88
92
  llamaLendMarkets: {},
89
93
  resupplyConfig: {},
90
94
  curvanceConfig: {},
91
- compoundV3Bulker: {},
92
95
  eulerConfigs: {},
93
96
  eulerVaults: {},
94
97
  dolomiteConfigs: {},
95
98
  dolomiteEmode: {},
96
- aaveV4Spokes: {},
97
- aaveV4Oracles: {},
98
- aaveV4Peripherals: {},
99
99
  siloMarkets: {},
100
100
  siloPeripherals: {},
101
101
  siloMarketsV3: {},
@@ -107,166 +107,200 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
107
107
  marketCompressorV310: "",
108
108
  chains: {}
109
109
  }
110
- };
110
+ });
111
+ globalThis[GLOBAL_LENDER_DATA_KEY] = LENDER_DATA_DEFAULTS();
112
+ var LENDER_DATA_SLOTS = Object.keys(LENDER_DATA_DEFAULTS());
111
113
  function getGlobalData2() {
112
114
  return globalThis[GLOBAL_LENDER_DATA_KEY];
113
115
  }
114
- function initializeLenderData({
115
- aaveTokensOverride,
116
- aavePoolsOverride,
117
- aaveOraclesOverride,
118
- compoundV2OraclesOverride,
119
- compoundV3OraclesDataOverride,
120
- compoundV3PoolsOverride,
121
- compoundV3BaseDataOverride,
122
- morphoPoolsOverride,
123
- compoundV2TokensOverride,
124
- compoundV2TokenArrayOverride,
125
- compoundV2PoolsOverride,
126
- initConfigOverride,
127
- aaveReservesOverride,
128
- compoundV3ReservesOverride,
129
- compoundV2ReservesOverride,
130
- morphoOraclesOverride,
131
- morphoTypeOraclesOverride,
132
- morphoTypeMarketsOverride,
133
- morphoTypeVaultsOverride,
134
- aaveOraclesConfigOverride,
135
- compoundV2OraclesConfigOverride,
136
- aaveWethGatewayOverride,
137
- morphoBundler3Override,
138
- listaNativeProviderOverride,
139
- midnightConfigOverride,
140
- midnightMarketsOverride,
141
- termConfigOverride,
142
- termMarketsOverride,
143
- exactlyConfigOverride,
144
- exactlyMarketsOverride,
145
- tellerConfigOverride,
146
- tellerPoolsOverride,
147
- liquityConfigOverride,
148
- liquityMarketsOverride,
149
- riverConfigOverride,
150
- riverMarketsOverride,
151
- inverseConfigOverride,
152
- termMaxConfigOverride,
153
- inverseMarketsOverride,
154
- usddConfigOverride,
155
- usddMarketsOverride,
156
- skyConfigOverride,
157
- skyMarketsOverride,
158
- frankencoinConfigOverride,
159
- frankencoinMarketsOverride,
160
- llamaLendConfigOverride,
161
- llamaLendMarketsOverride,
162
- resupplyConfigOverride,
163
- curvanceConfigOverride,
164
- compoundV3BulkerOverride,
165
- eulerConfigsOverride,
166
- eulerVaultsOverride,
167
- dolomiteConfigsOverride,
168
- dolomiteEmodeOverride,
169
- aaveV4SpokesOverride,
170
- aaveV4OraclesOverride,
171
- aaveV4PeripheralsOverride,
172
- siloMarketsOverride,
173
- siloPeripheralsOverride,
174
- siloMarketsV3Override,
175
- siloPeripheralsV3Override,
176
- fluidResolversOverride,
177
- fluidVaultsOverride,
178
- gearboxResolversOverride
179
- }) {
116
+ function initializeLenderData(overrides) {
180
117
  const data = getGlobalData2();
181
- if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;
182
- if (aaveOraclesOverride) data.aaveOracles = aaveOraclesOverride;
183
- if (compoundV2OraclesOverride) data.compoundV2Oracles = compoundV2OraclesOverride;
184
- if (compoundV3OraclesDataOverride) data.compoundV3OraclesData = compoundV3OraclesDataOverride;
185
- if (aavePoolsOverride) data.aavePools = aavePoolsOverride;
186
- if (compoundV3PoolsOverride) data.compoundV3Pools = compoundV3PoolsOverride;
187
- if (morphoPoolsOverride) data.morphoPools = morphoPoolsOverride;
188
- if (compoundV3BaseDataOverride) data.compoundV3BaseData = compoundV3BaseDataOverride;
189
- if (compoundV2TokensOverride) data.compoundV2Tokens = compoundV2TokensOverride;
190
- if (compoundV2TokenArrayOverride) data.compoundV2TokenArray = compoundV2TokenArrayOverride;
191
- if (compoundV2PoolsOverride) data.compoundV2Pools = compoundV2PoolsOverride;
192
- if (initConfigOverride) data.initConfig = initConfigOverride;
193
- if (aaveReservesOverride) data.aaveReserves = aaveReservesOverride;
194
- if (compoundV3ReservesOverride) data.compoundV3Reserves = compoundV3ReservesOverride;
195
- if (compoundV2ReservesOverride) data.compoundV2Reserves = compoundV2ReservesOverride;
196
- if (morphoOraclesOverride) data.morphoOracles = morphoOraclesOverride;
197
- if (morphoTypeOraclesOverride) data.morphoTypeOracles = morphoTypeOraclesOverride;
198
- if (morphoTypeMarketsOverride) data.morphoTypeMarkets = morphoTypeMarketsOverride;
199
- if (morphoTypeVaultsOverride) data.morphoTypeVaults = morphoTypeVaultsOverride;
200
- if (aaveOraclesConfigOverride) data.aaveOraclesConfig = aaveOraclesConfigOverride;
201
- if (compoundV2OraclesConfigOverride) data.compoundV2OraclesConfig = compoundV2OraclesConfigOverride;
202
- if (aaveWethGatewayOverride) data.aaveWethGateway = aaveWethGatewayOverride;
203
- if (morphoBundler3Override) data.morphoBundler3 = morphoBundler3Override;
204
- if (listaNativeProviderOverride) data.listaNativeProvider = listaNativeProviderOverride;
205
- if (midnightConfigOverride) data.midnightConfig = midnightConfigOverride;
206
- if (midnightMarketsOverride) data.midnightMarkets = midnightMarketsOverride;
207
- if (termConfigOverride) data.termConfig = termConfigOverride;
208
- if (termMarketsOverride) data.termMarkets = termMarketsOverride;
209
- if (exactlyConfigOverride) data.exactlyConfig = exactlyConfigOverride;
210
- if (exactlyMarketsOverride) data.exactlyMarkets = exactlyMarketsOverride;
211
- if (tellerConfigOverride) data.tellerConfig = tellerConfigOverride;
212
- if (tellerPoolsOverride) data.tellerPools = tellerPoolsOverride;
213
- if (liquityConfigOverride) data.liquityConfig = liquityConfigOverride;
214
- if (liquityMarketsOverride) data.liquityMarkets = liquityMarketsOverride;
215
- if (riverConfigOverride) data.riverConfig = riverConfigOverride;
216
- if (riverMarketsOverride) data.riverMarkets = riverMarketsOverride;
217
- if (inverseConfigOverride) data.inverseConfig = inverseConfigOverride;
218
- if (termMaxConfigOverride) data.termMaxConfig = termMaxConfigOverride;
219
- if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
220
- if (usddConfigOverride) data.usddConfig = usddConfigOverride;
221
- if (usddMarketsOverride) data.usddMarkets = usddMarketsOverride;
222
- if (skyConfigOverride) data.skyConfig = skyConfigOverride;
223
- if (skyMarketsOverride) data.skyMarkets = skyMarketsOverride;
224
- if (frankencoinConfigOverride) data.frankencoinConfig = frankencoinConfigOverride;
225
- if (frankencoinMarketsOverride) data.frankencoinMarkets = frankencoinMarketsOverride;
226
- if (llamaLendConfigOverride) data.llamaLendConfig = llamaLendConfigOverride;
227
- if (llamaLendMarketsOverride) data.llamaLendMarkets = llamaLendMarketsOverride;
228
- if (resupplyConfigOverride) data.resupplyConfig = resupplyConfigOverride;
229
- if (curvanceConfigOverride) data.curvanceConfig = curvanceConfigOverride;
230
- if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
231
- if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
232
- if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
233
- if (dolomiteConfigsOverride) data.dolomiteConfigs = dolomiteConfigsOverride;
234
- if (dolomiteEmodeOverride) data.dolomiteEmode = dolomiteEmodeOverride;
235
- if (aaveV4SpokesOverride) data.aaveV4Spokes = aaveV4SpokesOverride;
236
- if (aaveV4OraclesOverride) data.aaveV4Oracles = aaveV4OraclesOverride;
237
- if (aaveV4PeripheralsOverride) data.aaveV4Peripherals = aaveV4PeripheralsOverride;
238
- if (siloMarketsOverride) data.siloMarkets = siloMarketsOverride;
239
- if (siloPeripheralsOverride) data.siloPeripherals = siloPeripheralsOverride;
240
- if (siloMarketsV3Override) data.siloMarketsV3 = siloMarketsV3Override;
241
- if (siloPeripheralsV3Override) data.siloPeripheralsV3 = siloPeripheralsV3Override;
242
- if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
243
- if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
244
- if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
118
+ const given = overrides;
119
+ for (const slot of LENDER_DATA_SLOTS) {
120
+ const value = given[`${slot}Override`];
121
+ if (value) data[slot] = value;
122
+ }
245
123
  }
124
+
125
+ // src/lending/aave.ts
246
126
  var aaveTokens = () => getGlobalData2()?.aaveTokens;
247
127
  var aavePools = () => getGlobalData2()?.aavePools;
248
128
  var aaveOracles = () => getGlobalData2()?.aaveOracles;
129
+ var aaveReserves = () => getGlobalData2()?.aaveReserves;
130
+ var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
131
+ var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
132
+
133
+ // src/lending/aaveV4.ts
134
+ var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
135
+ var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
136
+ var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
137
+ function getAaveV4SpokeEntry(chainId, lenderKey) {
138
+ const parsed = parseAaveV4SpokeLenderKey(lenderKey);
139
+ if (!parsed) return void 0;
140
+ return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
141
+ }
142
+ function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
143
+ const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
144
+ if (!c) return {};
145
+ let hubAddr = hubOverride?.toLowerCase();
146
+ if (!hubAddr) {
147
+ const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
148
+ hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
149
+ }
150
+ const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
151
+ return {
152
+ nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
153
+ signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
154
+ };
155
+ }
156
+ function getAaveV4SpokePeripherals(chainId, lenderKey) {
157
+ const parsed = parseAaveV4SpokeLenderKey(lenderKey);
158
+ if (!parsed) return void 0;
159
+ return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
160
+ }
161
+ function getAaveV4PositionManagers(chainId, lenderKey) {
162
+ const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
163
+ if (!meta?.positionManagers) return [];
164
+ return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
165
+ }
166
+ function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
167
+ const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
168
+ if (!meta?.positionManagers) return void 0;
169
+ const q = nameQuery.toLowerCase();
170
+ const hit = meta.positionManagers.find(
171
+ (pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
172
+ );
173
+ return hit?.address?.toLowerCase();
174
+ }
175
+ function aaveV4SpokeLenderKey(spoke) {
176
+ if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
177
+ throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
178
+ }
179
+ return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
180
+ }
181
+ function parseAaveV4SpokeLenderKey(lenderKey) {
182
+ const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
183
+ if (!match) return void 0;
184
+ return { spokeAddrLower: "0x" + match[1].toLowerCase() };
185
+ }
186
+
187
+ // src/lending/compoundV2.ts
188
+ var compoundV2Pools = () => getGlobalData2()?.compoundV2Pools;
189
+ var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
190
+ var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
191
+ var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
249
192
  var compoundV2Oracles = () => getGlobalData2()?.compoundV2Oracles;
193
+ var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
194
+
195
+ // src/lending/compoundV3.ts
196
+ var compoundV3Pools = () => getGlobalData2()?.compoundV3Pools;
197
+ var compoundV3BaseData = () => getGlobalData2()?.compoundV3BaseData;
198
+ var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
250
199
  var compoundV3OraclesData = () => getGlobalData2()?.compoundV3OraclesData;
200
+ var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
201
+
202
+ // src/lending/morpho.ts
203
+ var morphoPools = () => getGlobalData2()?.morphoPools;
251
204
  var morphoOracles = () => getGlobalData2()?.morphoOracles;
252
205
  var morphoTypeOracles = () => getGlobalData2()?.morphoTypeOracles;
253
206
  var morphoTypeMarkets = () => getGlobalData2()?.morphoTypeMarkets;
254
207
  var morphoTypeVaults = () => getGlobalData2()?.morphoTypeVaults;
255
- var aaveReserves = () => getGlobalData2()?.aaveReserves;
256
- var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
257
- var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
258
- var compoundV3Pools = () => getGlobalData2()?.compoundV3Pools;
259
- var morphoPools = () => getGlobalData2()?.morphoPools;
260
- var compoundV3BaseData = () => getGlobalData2()?.compoundV3BaseData;
261
- var compoundV2Pools = () => getGlobalData2()?.compoundV2Pools;
262
- var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
263
- var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
264
- var initConfig = () => getGlobalData2()?.initConfig;
265
- var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
266
- var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
267
- var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
268
208
  var morphoBundler3 = () => getGlobalData2()?.morphoBundler3;
209
+
210
+ // src/lending/euler.ts
211
+ var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
212
+ var eulerVaults = () => getGlobalData2()?.eulerVaults;
213
+
214
+ // src/lending/silo.ts
215
+ var siloMarkets = () => getGlobalData2()?.siloMarkets;
216
+ var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
217
+ var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
218
+ var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
219
+ function siloV2LenderKey(siloConfig) {
220
+ if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
221
+ throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
222
+ }
223
+ return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
224
+ }
225
+ function parseSiloV2LenderKey(lenderKey) {
226
+ const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
227
+ if (!match) return void 0;
228
+ return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
229
+ }
230
+ function getSiloV2MarketEntry(chainId, lenderKey) {
231
+ const parsed = parseSiloV2LenderKey(lenderKey);
232
+ if (!parsed) return void 0;
233
+ const list = getGlobalData2()?.siloMarkets?.[chainId];
234
+ if (!list) return void 0;
235
+ return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
236
+ }
237
+ function siloV3LenderKey(siloConfig) {
238
+ if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
239
+ throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
240
+ }
241
+ return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
242
+ }
243
+ function parseSiloV3LenderKey(lenderKey) {
244
+ const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
245
+ if (!match) return void 0;
246
+ return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
247
+ }
248
+ function getSiloV3MarketEntry(chainId, lenderKey) {
249
+ const parsed = parseSiloV3LenderKey(lenderKey);
250
+ if (!parsed) return void 0;
251
+ const list = getGlobalData2()?.siloMarketsV3?.[chainId];
252
+ if (!list) return void 0;
253
+ return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
254
+ }
255
+
256
+ // src/lending/fluid.ts
257
+ var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
258
+ var fluidVaults = () => getGlobalData2()?.fluidVaults;
259
+ var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
260
+ var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
261
+
262
+ // src/lending/gearbox.ts
263
+ var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
264
+ var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
265
+ var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
266
+ var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
267
+ var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
268
+ var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
269
+ var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
270
+ var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
271
+ function gearboxV3LenderKey(creditManager) {
272
+ if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
273
+ throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
274
+ }
275
+ return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
276
+ }
277
+ function parseGearboxV3LenderKey(lenderKey) {
278
+ const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
279
+ if (!match) return void 0;
280
+ return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
281
+ }
282
+
283
+ // src/lending/dolomite.ts
284
+ var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
285
+ var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
286
+ var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
287
+ var dolomiteMarketIdByToken = (chainId, token) => {
288
+ const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
289
+ if (!markets) return void 0;
290
+ const lower = token.toLowerCase();
291
+ for (const marketId in markets) {
292
+ if (markets[marketId]?.toLowerCase() === lower) return marketId;
293
+ }
294
+ return void 0;
295
+ };
296
+
297
+ // src/lending/initProtocol.ts
298
+ var initConfig = () => getGlobalData2()?.initConfig;
299
+
300
+ // src/lending/lista.ts
269
301
  var listaNativeProvider = () => getGlobalData2()?.listaNativeProvider;
302
+
303
+ // src/lending/midnight.ts
270
304
  var midnightConfig = () => getGlobalData2()?.midnightConfig;
271
305
  var MIDNIGHT_API_OVERRIDE_KEY = "__1delta_midnight_api_base__";
272
306
  var setMidnightApiBase = (url) => {
@@ -285,6 +319,8 @@ var midnightMarketById = (chainId, marketId) => {
285
319
  const lower = marketId.toLowerCase();
286
320
  return midnightMarketsByChain(chainId).find((m) => m.marketId.toLowerCase() === lower);
287
321
  };
322
+
323
+ // src/lending/term.ts
288
324
  var termConfig = () => getGlobalData2()?.termConfig;
289
325
  var TERM_API_OVERRIDE_KEY = "__1delta_term_api_base__";
290
326
  var setTermApiBase = (url) => {
@@ -303,6 +339,25 @@ var termMarketById = (chainId, termRepoId) => {
303
339
  const lower = termRepoId.toLowerCase();
304
340
  return termMarketsByChain(chainId).find((m) => m.termRepoId.toLowerCase() === lower);
305
341
  };
342
+
343
+ // src/lending/termMax.ts
344
+ var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
345
+ var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
346
+ var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
347
+ var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
348
+ function termMaxLenderKey(market) {
349
+ if (!market || !market.startsWith("0x") || market.length !== 42) {
350
+ throw new Error(`termMaxLenderKey: invalid market address ${market}`);
351
+ }
352
+ return `TERMMAX_${market.slice(2).toUpperCase()}`;
353
+ }
354
+ function parseTermMaxLenderKey(lenderKey) {
355
+ const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
356
+ if (!match) return void 0;
357
+ return { marketAddrLower: "0x" + match[1].toLowerCase() };
358
+ }
359
+
360
+ // src/lending/exactly.ts
306
361
  var exactlyConfig = () => getGlobalData2()?.exactlyConfig;
307
362
  var exactlyMarkets = () => getGlobalData2()?.exactlyMarkets;
308
363
  var exactlyMarketsByChain = (chainId) => getGlobalData2()?.exactlyMarkets?.[String(chainId)] ?? [];
@@ -314,6 +369,8 @@ var exactlyMarketByAsset = (chainId, asset) => {
314
369
  const lower = asset.toLowerCase();
315
370
  return exactlyMarketsByChain(chainId).find((m) => m.asset.toLowerCase() === lower);
316
371
  };
372
+
373
+ // src/lending/teller.ts
317
374
  var tellerConfig = () => getGlobalData2()?.tellerConfig;
318
375
  var tellerPools = () => getGlobalData2()?.tellerPools;
319
376
  var tellerConfigByChain = (chainId) => getGlobalData2()?.tellerConfig?.[String(chainId)];
@@ -322,6 +379,8 @@ var tellerPoolByAddress = (chainId, pool) => {
322
379
  const lower = pool.toLowerCase();
323
380
  return tellerPoolsByChain(chainId).find((p) => p.pool.toLowerCase() === lower);
324
381
  };
382
+
383
+ // src/lending/liquity.ts
325
384
  var liquityConfig = () => getGlobalData2()?.liquityConfig;
326
385
  var liquityConfigFor = (lender, chainId) => getGlobalData2()?.liquityConfig?.[lender]?.[String(chainId)];
327
386
  var liquityMarkets = () => getGlobalData2()?.liquityMarkets;
@@ -336,15 +395,21 @@ var liquityLendersByChain = (chainId) => {
336
395
  const chain = String(chainId);
337
396
  return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.collateralRegistry);
338
397
  };
398
+
399
+ // src/lending/river.ts
339
400
  var riverConfig = () => getGlobalData2()?.riverConfig;
340
401
  var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
341
402
  var riverMarkets = () => getGlobalData2()?.riverMarkets;
342
403
  var riverChainData = (lender, chainId) => getGlobalData2()?.riverMarkets?.[lender]?.[String(chainId)];
404
+ var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
405
+ var riverLendersByChain = (chainId) => {
406
+ const cfg = getGlobalData2()?.riverConfig ?? {};
407
+ const chain = String(chainId);
408
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
409
+ };
410
+
411
+ // src/lending/inverse.ts
343
412
  var inverseConfig = () => getGlobalData2()?.inverseConfig;
344
- var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
345
- var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
346
- var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
347
- var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
348
413
  var inverseConfigFor = (lender, chainId) => getGlobalData2()?.inverseConfig?.[lender]?.[String(chainId)];
349
414
  var inverseMarkets = () => getGlobalData2()?.inverseMarkets;
350
415
  var inverseChainData = (lender, chainId) => getGlobalData2()?.inverseMarkets?.[lender]?.[String(chainId)];
@@ -352,52 +417,28 @@ var inverseMarketByAddress = (lender, chainId, address) => {
352
417
  const lower = address.toLowerCase();
353
418
  return inverseChainData(lender, chainId)?.markets?.find((m) => m.address.toLowerCase() === lower);
354
419
  };
355
- var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
356
- var riverLendersByChain = (chainId) => {
357
- const cfg = getGlobalData2()?.riverConfig ?? {};
358
- const chain = String(chainId);
359
- return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
360
- };
361
420
  var inverseLendersByChain = (chainId) => {
362
421
  const cfg = getGlobalData2()?.inverseConfig ?? {};
363
422
  const chain = String(chainId);
364
423
  return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.dola);
365
424
  };
366
- var llamaLendConfig = () => getGlobalData2()?.llamaLendConfig;
367
- var llamaLendConfigFor = (lender, chainId) => getGlobalData2()?.llamaLendConfig?.[lender]?.[String(chainId)];
368
- var llamaLendMarkets = () => getGlobalData2()?.llamaLendMarkets;
369
- var llamaLendChainData = (lender, chainId) => getGlobalData2()?.llamaLendMarkets?.[lender]?.[String(chainId)];
370
- var llamaLendMarketByController = (lender, chainId, controller) => {
371
- const lower = controller.toLowerCase();
372
- return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.controller.toLowerCase() === lower);
373
- };
374
- var llamaLendMarketByVault = (lender, chainId, vault) => {
375
- const lower = vault.toLowerCase();
376
- return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.vault.toLowerCase() === lower);
425
+
426
+ // src/lending/frankencoin.ts
427
+ var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
428
+ var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
429
+ var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
430
+ var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
431
+ var frankencoinMarketByPosition = (lender, chainId, position) => {
432
+ const lower = position.toLowerCase();
433
+ return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
377
434
  };
378
- var llamaLendLendersByChain = (chainId) => {
379
- const cfg = getGlobalData2()?.llamaLendConfig ?? {};
435
+ var frankencoinLendersByChain = (chainId) => {
436
+ const cfg = getGlobalData2()?.frankencoinConfig ?? {};
380
437
  const chain = String(chainId);
381
- return Object.keys(cfg).filter(
382
- (lender) => !!(cfg[lender]?.[chain]?.oneWayFactory || cfg[lender]?.[chain]?.lendFactory)
383
- );
384
- };
385
- var llamaLendSupportsDelegation = (lender, chainId, controller) => llamaLendMarketByController(lender, chainId, controller)?.supportsDelegation === true;
386
- var llamaLendLeverageZap = (lender, chainId, aggregator) => {
387
- const cfg = llamaLendConfigFor(lender, chainId);
388
- if (!cfg) return void 0;
389
- const zap = aggregator === "odos" ? cfg.leverageZapOdos : cfg.leverageZap1inch;
390
- const router = aggregator === "odos" ? cfg.leverageZapOdosRouter : cfg.leverageZap1inchRouter;
391
- if (!zap || !router) return void 0;
392
- return { zap, router };
393
- };
394
- var llamaLendSupportsLeverage = (lender, chainId, controller) => {
395
- const m = llamaLendMarketByController(lender, chainId, controller);
396
- if (!m?.supportsLeverage) return false;
397
- const cfg = llamaLendConfigFor(lender, chainId);
398
- return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
438
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
399
439
  };
400
- var llamaLendApiBaseUrl = (lender, chainId) => llamaLendConfigFor(lender, chainId)?.apiBaseUrl || "https://api.curve.finance";
440
+
441
+ // src/lending/dss.ts
401
442
  var usddConfig = () => getGlobalData2()?.usddConfig;
402
443
  var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
403
444
  var usddMarkets = () => getGlobalData2()?.usddMarkets;
@@ -427,19 +468,56 @@ var dssMarketByIlk = (lender, chainId, ilk) => {
427
468
  };
428
469
  var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
429
470
  var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
430
- var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
431
- var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
432
- var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
433
- var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
434
- var frankencoinMarketByPosition = (lender, chainId, position) => {
435
- const lower = position.toLowerCase();
436
- return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
471
+
472
+ // src/lending/llamalend.ts
473
+ var llamaLendConfig = () => getGlobalData2()?.llamaLendConfig;
474
+ var llamaLendConfigFor = (lender, chainId) => getGlobalData2()?.llamaLendConfig?.[lender]?.[String(chainId)];
475
+ var llamaLendMarkets = () => getGlobalData2()?.llamaLendMarkets;
476
+ var llamaLendChainData = (lender, chainId) => getGlobalData2()?.llamaLendMarkets?.[lender]?.[String(chainId)];
477
+ var llamaLendMarketByController = (lender, chainId, controller) => {
478
+ const lower = controller.toLowerCase();
479
+ return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.controller.toLowerCase() === lower);
437
480
  };
438
- var frankencoinLendersByChain = (chainId) => {
439
- const cfg = getGlobalData2()?.frankencoinConfig ?? {};
481
+ var llamaLendMarketByVault = (lender, chainId, vault) => {
482
+ const lower = vault.toLowerCase();
483
+ return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.vault.toLowerCase() === lower);
484
+ };
485
+ var llamaLendLendersByChain = (chainId) => {
486
+ const cfg = getGlobalData2()?.llamaLendConfig ?? {};
440
487
  const chain = String(chainId);
441
- return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
488
+ return Object.keys(cfg).filter(
489
+ (lender) => !!(cfg[lender]?.[chain]?.oneWayFactory || cfg[lender]?.[chain]?.lendFactory)
490
+ );
442
491
  };
492
+ var llamaLendSupportsDelegation = (lender, chainId, controller) => llamaLendMarketByController(lender, chainId, controller)?.supportsDelegation === true;
493
+ var llamaLendLeverageZap = (lender, chainId, aggregator) => {
494
+ const cfg = llamaLendConfigFor(lender, chainId);
495
+ if (!cfg) return void 0;
496
+ const zap = aggregator === "odos" ? cfg.leverageZapOdos : cfg.leverageZap1inch;
497
+ const router = aggregator === "odos" ? cfg.leverageZapOdosRouter : cfg.leverageZap1inchRouter;
498
+ if (!zap || !router) return void 0;
499
+ return { zap, router };
500
+ };
501
+ var llamaLendSupportsLeverage = (lender, chainId, controller) => {
502
+ const m = llamaLendMarketByController(lender, chainId, controller);
503
+ if (!m?.supportsLeverage) return false;
504
+ const cfg = llamaLendConfigFor(lender, chainId);
505
+ return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
506
+ };
507
+ var llamaLendApiBaseUrl = (lender, chainId) => llamaLendConfigFor(lender, chainId)?.apiBaseUrl || "https://api.curve.finance";
508
+ function llamaLendLenderKey(controller) {
509
+ if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
510
+ throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
511
+ }
512
+ return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
513
+ }
514
+ function parseLlamaLendLenderKey(lenderKey) {
515
+ const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
516
+ if (!match) return void 0;
517
+ return { controllerAddrLower: "0x" + match[1].toLowerCase() };
518
+ }
519
+
520
+ // src/lending/resupply.ts
443
521
  var RESUPPLY_ETHEREUM_CONFIG = {
444
522
  registry: "0x10101010E0C3171D894B71B3400668aF311e7D94",
445
523
  reusd: "0x57aB1E0003F623289CD798B1824Be09a793e4Bec",
@@ -452,6 +530,18 @@ var RESUPPLY_ETHEREUM_CONFIG = {
452
530
  insurancePool: "0x00000000efe883b3304aFf71eaCf72Dbc3e1b577",
453
531
  sreusd: "0x557AB1e003951A73c12D16F0fEA8490E39C33C35",
454
532
  priceWatcher: "0xAaaa0013e2ec451F76816d1e0a02ABA596dd9251",
533
+ /**
534
+ * reUSD's own USD price feed — `PriceWatcher.oracle()`, read on-chain
535
+ * 2026-08-08. Its `price()` returns an 18-decimal USD price (0.98983 at
536
+ * the read), and it is the number the protocol itself watches to drive the
537
+ * off-peg amplifier in the borrow rate.
538
+ *
539
+ * Held as config rather than hopped through the PriceWatcher on every
540
+ * refresh (the Inverse `oracle` precedent). Governance-mutable in
541
+ * principle, so re-read `PriceWatcher.oracle()` if reUSD prices ever look
542
+ * frozen.
543
+ */
544
+ reusdOracle: "0x07Ac1E016D4335FB833666ed5C43846162d2B7e8",
455
545
  debtDecimals: 18
456
546
  };
457
547
  var RESUPPLY_BUILTIN = {
@@ -475,6 +565,8 @@ var resupplyLendersByChain = (chainId) => {
475
565
  }
476
566
  return [...keys];
477
567
  };
568
+
569
+ // src/lending/curvance.ts
478
570
  var CURVANCE_MONAD_CONFIG = {
479
571
  centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
480
572
  oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
@@ -493,11 +585,17 @@ var CURVANCE_MONAD_CONFIG = {
493
585
  },
494
586
  positionManagers: {
495
587
  // muBOND | AUSD
496
- "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": { simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4" },
588
+ "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
589
+ simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4"
590
+ },
497
591
  // loAZND | AUSD
498
- "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": { simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917" },
592
+ "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
593
+ simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917"
594
+ },
499
595
  // ezETH | WETH
500
- "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": { simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584" },
596
+ "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
597
+ simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584"
598
+ },
501
599
  // shMON | WMON
502
600
  "0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
503
601
  nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
@@ -509,38 +607,66 @@ var CURVANCE_MONAD_CONFIG = {
509
607
  simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
510
608
  },
511
609
  // sMON | WMON
512
- "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": { simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC" },
610
+ "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
611
+ simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC"
612
+ },
513
613
  // sAUSD | AUSD
514
614
  "0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
515
615
  simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
516
616
  vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
517
617
  },
518
618
  // earnAUSD | AUSD
519
- "0xd6365555f6a697C7C295bA741100AA644cE28545": { simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881" },
619
+ "0xd6365555f6a697C7C295bA741100AA644cE28545": {
620
+ simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881"
621
+ },
520
622
  // WMON | AUSD
521
- "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": { simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74" },
623
+ "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
624
+ simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74"
625
+ },
522
626
  // WMON | USDC
523
- "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": { simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef" },
627
+ "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
628
+ simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef"
629
+ },
524
630
  // WBTC | USDC
525
- "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": { simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6" },
631
+ "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
632
+ simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6"
633
+ },
526
634
  // WETH | USDC
527
- "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": { simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73" },
635
+ "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
636
+ simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73"
637
+ },
528
638
  // gMON | WMON
529
- "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": { simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee" },
639
+ "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
640
+ simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee"
641
+ },
530
642
  // syzUSD | AUSD
531
- "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": { simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419" },
643
+ "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
644
+ simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419"
645
+ },
532
646
  // wsrUSD | AUSD
533
- "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": { simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31" },
647
+ "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
648
+ simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31"
649
+ },
534
650
  // YZM | AUSD
535
- "0x4409e2161B6f9A25ACbC471a37390654Ed272249": { simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9" },
651
+ "0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
652
+ simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9"
653
+ },
536
654
  // vUSD | AUSD
537
- "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": { simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50" },
655
+ "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
656
+ simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50"
657
+ },
538
658
  // eBTC | WBTC
539
- "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": { simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9" },
659
+ "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
660
+ simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9"
661
+ },
540
662
  // savUSD | USDC
541
- "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": { simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c" },
663
+ "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
664
+ simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c"
665
+ },
542
666
  // savUSD | AUSD
543
- "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": { simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec" }
667
+ "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
668
+ simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec"
669
+ }
544
670
  }
545
671
  };
546
672
  var CURVANCE_BUILTIN = {
@@ -581,158 +707,6 @@ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
581
707
  if (kind) return pms[kind];
582
708
  return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
583
709
  };
584
- var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
585
- var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
586
- var eulerVaults = () => getGlobalData2()?.eulerVaults;
587
- var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
588
- var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
589
- var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
590
- var dolomiteMarketIdByToken = (chainId, token) => {
591
- const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
592
- if (!markets) return void 0;
593
- const lower = token.toLowerCase();
594
- for (const marketId in markets) {
595
- if (markets[marketId]?.toLowerCase() === lower) return marketId;
596
- }
597
- return void 0;
598
- };
599
- var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
600
- var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
601
- var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
602
- var siloMarkets = () => getGlobalData2()?.siloMarkets;
603
- var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
604
- var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
605
- var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
606
- var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
607
- var fluidVaults = () => getGlobalData2()?.fluidVaults;
608
- var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
609
- var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
610
- var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
611
- var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
612
- var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
613
- var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
614
- var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
615
- var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
616
- var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
617
- var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
618
- function getAaveV4SpokeEntry(chainId, lenderKey) {
619
- const parsed = parseAaveV4SpokeLenderKey(lenderKey);
620
- if (!parsed) return void 0;
621
- return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
622
- }
623
- function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
624
- const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
625
- if (!c) return {};
626
- let hubAddr = hubOverride?.toLowerCase();
627
- if (!hubAddr) {
628
- const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
629
- hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
630
- }
631
- const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
632
- return {
633
- nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
634
- signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
635
- };
636
- }
637
- function getAaveV4SpokePeripherals(chainId, lenderKey) {
638
- const parsed = parseAaveV4SpokeLenderKey(lenderKey);
639
- if (!parsed) return void 0;
640
- return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
641
- }
642
- function getAaveV4PositionManagers(chainId, lenderKey) {
643
- const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
644
- if (!meta?.positionManagers) return [];
645
- return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
646
- }
647
- function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
648
- const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
649
- if (!meta?.positionManagers) return void 0;
650
- const q = nameQuery.toLowerCase();
651
- const hit = meta.positionManagers.find(
652
- (pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
653
- );
654
- return hit?.address?.toLowerCase();
655
- }
656
- function aaveV4SpokeLenderKey(spoke) {
657
- if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
658
- throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
659
- }
660
- return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
661
- }
662
- function parseAaveV4SpokeLenderKey(lenderKey) {
663
- const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
664
- if (!match) return void 0;
665
- return { spokeAddrLower: "0x" + match[1].toLowerCase() };
666
- }
667
- function siloV2LenderKey(siloConfig) {
668
- if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
669
- throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
670
- }
671
- return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
672
- }
673
- function parseSiloV2LenderKey(lenderKey) {
674
- const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
675
- if (!match) return void 0;
676
- return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
677
- }
678
- function getSiloV2MarketEntry(chainId, lenderKey) {
679
- const parsed = parseSiloV2LenderKey(lenderKey);
680
- if (!parsed) return void 0;
681
- const list = getGlobalData2()?.siloMarkets?.[chainId];
682
- if (!list) return void 0;
683
- return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
684
- }
685
- function siloV3LenderKey(siloConfig) {
686
- if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
687
- throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
688
- }
689
- return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
690
- }
691
- function parseSiloV3LenderKey(lenderKey) {
692
- const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
693
- if (!match) return void 0;
694
- return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
695
- }
696
- function getSiloV3MarketEntry(chainId, lenderKey) {
697
- const parsed = parseSiloV3LenderKey(lenderKey);
698
- if (!parsed) return void 0;
699
- const list = getGlobalData2()?.siloMarketsV3?.[chainId];
700
- if (!list) return void 0;
701
- return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
702
- }
703
- function gearboxV3LenderKey(creditManager) {
704
- if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
705
- throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
706
- }
707
- return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
708
- }
709
- function parseGearboxV3LenderKey(lenderKey) {
710
- const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
711
- if (!match) return void 0;
712
- return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
713
- }
714
- function termMaxLenderKey(market) {
715
- if (!market || !market.startsWith("0x") || market.length !== 42) {
716
- throw new Error(`termMaxLenderKey: invalid market address ${market}`);
717
- }
718
- return `TERMMAX_${market.slice(2).toUpperCase()}`;
719
- }
720
- function parseTermMaxLenderKey(lenderKey) {
721
- const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
722
- if (!match) return void 0;
723
- return { marketAddrLower: "0x" + match[1].toLowerCase() };
724
- }
725
- function llamaLendLenderKey(controller) {
726
- if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
727
- throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
728
- }
729
- return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
730
- }
731
- function parseLlamaLendLenderKey(lenderKey) {
732
- const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
733
- if (!match) return void 0;
734
- return { controllerAddrLower: "0x" + match[1].toLowerCase() };
735
- }
736
710
 
737
711
  // src/tokens.ts
738
712
  var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;