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