@1delta/data-sdk 0.0.40 → 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,17 +419,59 @@ 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
  };
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);
436
+ };
437
+ var frankencoinLendersByChain = (chainId) => {
438
+ const cfg = getGlobalData2()?.frankencoinConfig ?? {};
439
+ const chain = String(chainId);
440
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
441
+ };
442
+
443
+ // src/lending/dss.ts
444
+ var usddConfig = () => getGlobalData2()?.usddConfig;
445
+ var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
446
+ var usddMarkets = () => getGlobalData2()?.usddMarkets;
447
+ var usddChainData = (lender, chainId) => getGlobalData2()?.usddMarkets?.[lender]?.[String(chainId)];
448
+ var usddMarketByIlk = (lender, chainId, ilk) => usddChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
449
+ var usddLendersByChain = (chainId) => {
450
+ const cfg = getGlobalData2()?.usddConfig ?? {};
451
+ const chain = String(chainId);
452
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
453
+ };
454
+ var skyConfig = () => getGlobalData2()?.skyConfig;
455
+ var skyConfigFor = (lender, chainId) => getGlobalData2()?.skyConfig?.[lender]?.[String(chainId)];
456
+ var skyMarkets = () => getGlobalData2()?.skyMarkets;
457
+ var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
458
+ var skyLendersByChain = (chainId) => {
459
+ const cfg = getGlobalData2()?.skyConfig ?? {};
460
+ const chain = String(chainId);
461
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
462
+ };
463
+ var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
464
+ var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
465
+ var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
466
+ var dssMarketByIlk = (lender, chainId, ilk) => {
467
+ const norm = (s) => s.replace(/-/g, "_");
468
+ const want = norm(ilk);
469
+ return dssChainData(lender, chainId)?.markets?.find((m) => norm(m.ilk) === want);
470
+ };
471
+ var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
472
+ var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
473
+
474
+ // src/lending/llamalend.ts
368
475
  var llamaLendConfig = () => getGlobalData2()?.llamaLendConfig;
369
476
  var llamaLendConfigFor = (lender, chainId) => getGlobalData2()?.llamaLendConfig?.[lender]?.[String(chainId)];
370
477
  var llamaLendMarkets = () => getGlobalData2()?.llamaLendMarkets;
@@ -400,44 +507,19 @@ var llamaLendSupportsLeverage = (lender, chainId, controller) => {
400
507
  return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
401
508
  };
402
509
  var llamaLendApiBaseUrl = (lender, chainId) => llamaLendConfigFor(lender, chainId)?.apiBaseUrl || "https://api.curve.finance";
403
- var usddConfig = () => getGlobalData2()?.usddConfig;
404
- var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
405
- var usddMarkets = () => getGlobalData2()?.usddMarkets;
406
- var usddChainData = (lender, chainId) => getGlobalData2()?.usddMarkets?.[lender]?.[String(chainId)];
407
- var usddMarketByIlk = (lender, chainId, ilk) => usddChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
408
- var usddLendersByChain = (chainId) => {
409
- const cfg = getGlobalData2()?.usddConfig ?? {};
410
- const chain = String(chainId);
411
- return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
412
- };
413
- var skyConfig = () => getGlobalData2()?.skyConfig;
414
- var skyConfigFor = (lender, chainId) => getGlobalData2()?.skyConfig?.[lender]?.[String(chainId)];
415
- var skyMarkets = () => getGlobalData2()?.skyMarkets;
416
- var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
417
- var skyLendersByChain = (chainId) => {
418
- const cfg = getGlobalData2()?.skyConfig ?? {};
419
- const chain = String(chainId);
420
- return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
421
- };
422
- var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
423
- var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
424
- var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
425
- var dssMarketByIlk = (lender, chainId, ilk) => dssChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
426
- var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
427
- var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
428
- var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
429
- var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
430
- var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
431
- var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
432
- var frankencoinMarketByPosition = (lender, chainId, position) => {
433
- const lower = position.toLowerCase();
434
- return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
435
- };
436
- var frankencoinLendersByChain = (chainId) => {
437
- const cfg = getGlobalData2()?.frankencoinConfig ?? {};
438
- const chain = String(chainId);
439
- return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
440
- };
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
441
523
  var RESUPPLY_ETHEREUM_CONFIG = {
442
524
  registry: "0x10101010E0C3171D894B71B3400668aF311e7D94",
443
525
  reusd: "0x57aB1E0003F623289CD798B1824Be09a793e4Bec",
@@ -450,6 +532,18 @@ var RESUPPLY_ETHEREUM_CONFIG = {
450
532
  insurancePool: "0x00000000efe883b3304aFf71eaCf72Dbc3e1b577",
451
533
  sreusd: "0x557AB1e003951A73c12D16F0fEA8490E39C33C35",
452
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",
453
547
  debtDecimals: 18
454
548
  };
455
549
  var RESUPPLY_BUILTIN = {
@@ -473,6 +567,8 @@ var resupplyLendersByChain = (chainId) => {
473
567
  }
474
568
  return [...keys];
475
569
  };
570
+
571
+ // src/lending/curvance.ts
476
572
  var CURVANCE_MONAD_CONFIG = {
477
573
  centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
478
574
  oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
@@ -491,11 +587,17 @@ var CURVANCE_MONAD_CONFIG = {
491
587
  },
492
588
  positionManagers: {
493
589
  // muBOND | AUSD
494
- "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": { simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4" },
590
+ "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
591
+ simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4"
592
+ },
495
593
  // loAZND | AUSD
496
- "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": { simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917" },
594
+ "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
595
+ simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917"
596
+ },
497
597
  // ezETH | WETH
498
- "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": { simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584" },
598
+ "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
599
+ simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584"
600
+ },
499
601
  // shMON | WMON
500
602
  "0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
501
603
  nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
@@ -507,38 +609,66 @@ var CURVANCE_MONAD_CONFIG = {
507
609
  simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
508
610
  },
509
611
  // sMON | WMON
510
- "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": { simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC" },
612
+ "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
613
+ simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC"
614
+ },
511
615
  // sAUSD | AUSD
512
616
  "0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
513
617
  simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
514
618
  vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
515
619
  },
516
620
  // earnAUSD | AUSD
517
- "0xd6365555f6a697C7C295bA741100AA644cE28545": { simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881" },
621
+ "0xd6365555f6a697C7C295bA741100AA644cE28545": {
622
+ simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881"
623
+ },
518
624
  // WMON | AUSD
519
- "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": { simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74" },
625
+ "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
626
+ simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74"
627
+ },
520
628
  // WMON | USDC
521
- "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": { simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef" },
629
+ "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
630
+ simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef"
631
+ },
522
632
  // WBTC | USDC
523
- "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": { simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6" },
633
+ "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
634
+ simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6"
635
+ },
524
636
  // WETH | USDC
525
- "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": { simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73" },
637
+ "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
638
+ simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73"
639
+ },
526
640
  // gMON | WMON
527
- "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": { simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee" },
641
+ "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
642
+ simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee"
643
+ },
528
644
  // syzUSD | AUSD
529
- "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": { simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419" },
645
+ "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
646
+ simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419"
647
+ },
530
648
  // wsrUSD | AUSD
531
- "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": { simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31" },
649
+ "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
650
+ simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31"
651
+ },
532
652
  // YZM | AUSD
533
- "0x4409e2161B6f9A25ACbC471a37390654Ed272249": { simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9" },
653
+ "0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
654
+ simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9"
655
+ },
534
656
  // vUSD | AUSD
535
- "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": { simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50" },
657
+ "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
658
+ simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50"
659
+ },
536
660
  // eBTC | WBTC
537
- "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": { simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9" },
661
+ "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
662
+ simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9"
663
+ },
538
664
  // savUSD | USDC
539
- "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": { simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c" },
665
+ "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
666
+ simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c"
667
+ },
540
668
  // savUSD | AUSD
541
- "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": { simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec" }
669
+ "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
670
+ simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec"
671
+ }
542
672
  }
543
673
  };
544
674
  var CURVANCE_BUILTIN = {
@@ -579,158 +709,6 @@ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
579
709
  if (kind) return pms[kind];
580
710
  return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
581
711
  };
582
- var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
583
- var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
584
- var eulerVaults = () => getGlobalData2()?.eulerVaults;
585
- var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
586
- var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
587
- var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
588
- var dolomiteMarketIdByToken = (chainId, token) => {
589
- const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
590
- if (!markets) return void 0;
591
- const lower = token.toLowerCase();
592
- for (const marketId in markets) {
593
- if (markets[marketId]?.toLowerCase() === lower) return marketId;
594
- }
595
- return void 0;
596
- };
597
- var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
598
- var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
599
- var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
600
- var siloMarkets = () => getGlobalData2()?.siloMarkets;
601
- var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
602
- var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
603
- var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
604
- var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
605
- var fluidVaults = () => getGlobalData2()?.fluidVaults;
606
- var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
607
- var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
608
- var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
609
- var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
610
- var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
611
- var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
612
- var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
613
- var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
614
- var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
615
- var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
616
- function getAaveV4SpokeEntry(chainId, lenderKey) {
617
- const parsed = parseAaveV4SpokeLenderKey(lenderKey);
618
- if (!parsed) return void 0;
619
- return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
620
- }
621
- function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
622
- const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
623
- if (!c) return {};
624
- let hubAddr = hubOverride?.toLowerCase();
625
- if (!hubAddr) {
626
- const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
627
- hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
628
- }
629
- const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
630
- return {
631
- nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
632
- signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
633
- };
634
- }
635
- function getAaveV4SpokePeripherals(chainId, lenderKey) {
636
- const parsed = parseAaveV4SpokeLenderKey(lenderKey);
637
- if (!parsed) return void 0;
638
- return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
639
- }
640
- function getAaveV4PositionManagers(chainId, lenderKey) {
641
- const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
642
- if (!meta?.positionManagers) return [];
643
- return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
644
- }
645
- function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
646
- const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
647
- if (!meta?.positionManagers) return void 0;
648
- const q = nameQuery.toLowerCase();
649
- const hit = meta.positionManagers.find(
650
- (pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
651
- );
652
- return hit?.address?.toLowerCase();
653
- }
654
- function aaveV4SpokeLenderKey(spoke) {
655
- if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
656
- throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
657
- }
658
- return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
659
- }
660
- function parseAaveV4SpokeLenderKey(lenderKey) {
661
- const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
662
- if (!match) return void 0;
663
- return { spokeAddrLower: "0x" + match[1].toLowerCase() };
664
- }
665
- function siloV2LenderKey(siloConfig) {
666
- if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
667
- throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
668
- }
669
- return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
670
- }
671
- function parseSiloV2LenderKey(lenderKey) {
672
- const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
673
- if (!match) return void 0;
674
- return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
675
- }
676
- function getSiloV2MarketEntry(chainId, lenderKey) {
677
- const parsed = parseSiloV2LenderKey(lenderKey);
678
- if (!parsed) return void 0;
679
- const list = getGlobalData2()?.siloMarkets?.[chainId];
680
- if (!list) return void 0;
681
- return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
682
- }
683
- function siloV3LenderKey(siloConfig) {
684
- if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
685
- throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
686
- }
687
- return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
688
- }
689
- function parseSiloV3LenderKey(lenderKey) {
690
- const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
691
- if (!match) return void 0;
692
- return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
693
- }
694
- function getSiloV3MarketEntry(chainId, lenderKey) {
695
- const parsed = parseSiloV3LenderKey(lenderKey);
696
- if (!parsed) return void 0;
697
- const list = getGlobalData2()?.siloMarketsV3?.[chainId];
698
- if (!list) return void 0;
699
- return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
700
- }
701
- function gearboxV3LenderKey(creditManager) {
702
- if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
703
- throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
704
- }
705
- return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
706
- }
707
- function parseGearboxV3LenderKey(lenderKey) {
708
- const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
709
- if (!match) return void 0;
710
- return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
711
- }
712
- function termMaxLenderKey(market) {
713
- if (!market || !market.startsWith("0x") || market.length !== 42) {
714
- throw new Error(`termMaxLenderKey: invalid market address ${market}`);
715
- }
716
- return `TERMMAX_${market.slice(2).toUpperCase()}`;
717
- }
718
- function parseTermMaxLenderKey(lenderKey) {
719
- const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
720
- if (!match) return void 0;
721
- return { marketAddrLower: "0x" + match[1].toLowerCase() };
722
- }
723
- function llamaLendLenderKey(controller) {
724
- if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
725
- throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
726
- }
727
- return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
728
- }
729
- function parseLlamaLendLenderKey(lenderKey) {
730
- const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
731
- if (!match) return void 0;
732
- return { controllerAddrLower: "0x" + match[1].toLowerCase() };
733
- }
734
712
 
735
713
  // src/tokens.ts
736
714
  var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;