@1delta/data-sdk 0.0.26 → 0.0.29

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/chains.d.ts CHANGED
@@ -49,4 +49,17 @@ export declare function initializeChainData({ chainsOverride }: {
49
49
  chainsOverride?: ChainInfoMap;
50
50
  }): void;
51
51
  export declare const chains: () => ChainInfoMap;
52
+ export interface ChainEntry {
53
+ chainId: string;
54
+ name: string;
55
+ logoURI: string;
56
+ }
57
+ export declare function chainLogoURI(chainId: string | number): string;
58
+ /**
59
+ * Build structured chain entries (chainId, name, logoURI) for the supplied
60
+ * chain IDs. Prefers the registry's `shortName` (concise, UI-friendly), falls
61
+ * back to the long `name`, then to `Chain {id}`. Sorted ascending by numeric
62
+ * chainId.
63
+ */
64
+ export declare function getChainEntries(chainIds: readonly string[]): ChainEntry[];
52
65
  export {};
package/dist/index.js CHANGED
@@ -10,6 +10,33 @@ function initializeChainData({ chainsOverride }) {
10
10
  if (chainsOverride) globalThis[GLOBAL_CHAIN_DATA_KEY] = chainsOverride;
11
11
  }
12
12
  var chains = () => getGlobalData();
13
+ var CHAIN_LOGO_BASE = "https://raw.githubusercontent.com/1delta-DAO/chains/main";
14
+ function chainLogoURI(chainId) {
15
+ return `${CHAIN_LOGO_BASE}/${String(chainId)}.webp`;
16
+ }
17
+ function getChainEntries(chainIds) {
18
+ const registry = chains();
19
+ const seen = /* @__PURE__ */ new Set();
20
+ const entries = [];
21
+ for (const id of chainIds) {
22
+ const key = String(id);
23
+ if (seen.has(key)) continue;
24
+ seen.add(key);
25
+ const info = registry[key];
26
+ entries.push({
27
+ chainId: key,
28
+ name: info?.shortName ?? info?.name ?? `Chain ${key}`,
29
+ logoURI: chainLogoURI(key)
30
+ });
31
+ }
32
+ entries.sort((a, b) => {
33
+ const an = Number(a.chainId);
34
+ const bn = Number(b.chainId);
35
+ if (Number.isFinite(an) && Number.isFinite(bn)) return an - bn;
36
+ return a.chainId.localeCompare(b.chainId);
37
+ });
38
+ return entries;
39
+ }
13
40
 
14
41
  // src/lending.ts
15
42
  var GLOBAL_LENDER_DATA_KEY = "__1delta_lender_registry__";
@@ -34,12 +61,17 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
34
61
  morphoTypeMarkets: {},
35
62
  morphoTypeVaults: {},
36
63
  aaveOraclesConfig: {},
64
+ compoundV2OraclesConfig: {},
37
65
  aaveWethGateway: {},
38
66
  morphoBundler3: {},
39
67
  listaNativeProvider: {},
68
+ midnightConfig: {},
69
+ midnightMarkets: {},
40
70
  compoundV3Bulker: {},
41
71
  eulerConfigs: {},
42
72
  eulerVaults: {},
73
+ dolomiteConfigs: {},
74
+ dolomiteEmode: {},
43
75
  aaveV4Spokes: {},
44
76
  aaveV4Oracles: {},
45
77
  aaveV4Peripherals: {},
@@ -79,12 +111,17 @@ function initializeLenderData({
79
111
  morphoTypeMarketsOverride,
80
112
  morphoTypeVaultsOverride,
81
113
  aaveOraclesConfigOverride,
114
+ compoundV2OraclesConfigOverride,
82
115
  aaveWethGatewayOverride,
83
116
  morphoBundler3Override,
84
117
  listaNativeProviderOverride,
118
+ midnightConfigOverride,
119
+ midnightMarketsOverride,
85
120
  compoundV3BulkerOverride,
86
121
  eulerConfigsOverride,
87
122
  eulerVaultsOverride,
123
+ dolomiteConfigsOverride,
124
+ dolomiteEmodeOverride,
88
125
  aaveV4SpokesOverride,
89
126
  aaveV4OraclesOverride,
90
127
  aaveV4PeripheralsOverride,
@@ -117,12 +154,17 @@ function initializeLenderData({
117
154
  if (morphoTypeMarketsOverride) data.morphoTypeMarkets = morphoTypeMarketsOverride;
118
155
  if (morphoTypeVaultsOverride) data.morphoTypeVaults = morphoTypeVaultsOverride;
119
156
  if (aaveOraclesConfigOverride) data.aaveOraclesConfig = aaveOraclesConfigOverride;
157
+ if (compoundV2OraclesConfigOverride) data.compoundV2OraclesConfig = compoundV2OraclesConfigOverride;
120
158
  if (aaveWethGatewayOverride) data.aaveWethGateway = aaveWethGatewayOverride;
121
159
  if (morphoBundler3Override) data.morphoBundler3 = morphoBundler3Override;
122
160
  if (listaNativeProviderOverride) data.listaNativeProvider = listaNativeProviderOverride;
161
+ if (midnightConfigOverride) data.midnightConfig = midnightConfigOverride;
162
+ if (midnightMarketsOverride) data.midnightMarkets = midnightMarketsOverride;
123
163
  if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
124
164
  if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
125
165
  if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
166
+ if (dolomiteConfigsOverride) data.dolomiteConfigs = dolomiteConfigsOverride;
167
+ if (dolomiteEmodeOverride) data.dolomiteEmode = dolomiteEmodeOverride;
126
168
  if (aaveV4SpokesOverride) data.aaveV4Spokes = aaveV4SpokesOverride;
127
169
  if (aaveV4OraclesOverride) data.aaveV4Oracles = aaveV4OraclesOverride;
128
170
  if (aaveV4PeripheralsOverride)
@@ -156,12 +198,32 @@ var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
156
198
  var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
157
199
  var initConfig = () => getGlobalData2()?.initConfig;
158
200
  var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
201
+ var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
159
202
  var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
160
203
  var morphoBundler3 = () => getGlobalData2()?.morphoBundler3;
161
204
  var listaNativeProvider = () => getGlobalData2()?.listaNativeProvider;
205
+ var midnightConfig = () => getGlobalData2()?.midnightConfig;
206
+ var midnightMarkets = () => getGlobalData2()?.midnightMarkets;
207
+ var midnightMarketsByChain = (chainId) => getGlobalData2()?.midnightMarkets?.[String(chainId)] ?? [];
208
+ var midnightMarketById = (chainId, marketId) => {
209
+ const lower = marketId.toLowerCase();
210
+ return midnightMarketsByChain(chainId).find((m) => m.marketId.toLowerCase() === lower);
211
+ };
162
212
  var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
163
213
  var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
164
214
  var eulerVaults = () => getGlobalData2()?.eulerVaults;
215
+ var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
216
+ var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
217
+ var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
218
+ var dolomiteMarketIdByToken = (chainId, token) => {
219
+ const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
220
+ if (!markets) return void 0;
221
+ const lower = token.toLowerCase();
222
+ for (const marketId in markets) {
223
+ if (markets[marketId]?.toLowerCase() === lower) return marketId;
224
+ }
225
+ return void 0;
226
+ };
165
227
  var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
166
228
  var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
167
229
  var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
@@ -311,8 +373,10 @@ exports.aaveV4Peripherals = aaveV4Peripherals;
311
373
  exports.aaveV4SpokeLenderKey = aaveV4SpokeLenderKey;
312
374
  exports.aaveV4Spokes = aaveV4Spokes;
313
375
  exports.aaveWethGateway = aaveWethGateway;
376
+ exports.chainLogoURI = chainLogoURI;
314
377
  exports.chains = chains;
315
378
  exports.compoundV2Oracles = compoundV2Oracles;
379
+ exports.compoundV2OraclesConfig = compoundV2OraclesConfig;
316
380
  exports.compoundV2Pools = compoundV2Pools;
317
381
  exports.compoundV2Reserves = compoundV2Reserves;
318
382
  exports.compoundV2TokenArray = compoundV2TokenArray;
@@ -322,6 +386,10 @@ exports.compoundV3Bulker = compoundV3Bulker;
322
386
  exports.compoundV3OraclesData = compoundV3OraclesData;
323
387
  exports.compoundV3Pools = compoundV3Pools;
324
388
  exports.compoundV3Reserves = compoundV3Reserves;
389
+ exports.dolomiteChains = dolomiteChains;
390
+ exports.dolomiteConfigs = dolomiteConfigs;
391
+ exports.dolomiteEmode = dolomiteEmode;
392
+ exports.dolomiteMarketIdByToken = dolomiteMarketIdByToken;
325
393
  exports.eulerConfigs = eulerConfigs;
326
394
  exports.eulerVaults = eulerVaults;
327
395
  exports.fetchTokenList = fetchTokenList;
@@ -343,12 +411,17 @@ exports.getAaveV4GatewayAddresses = getAaveV4GatewayAddresses;
343
411
  exports.getAaveV4PositionManagers = getAaveV4PositionManagers;
344
412
  exports.getAaveV4SpokeEntry = getAaveV4SpokeEntry;
345
413
  exports.getAaveV4SpokePeripherals = getAaveV4SpokePeripherals;
414
+ exports.getChainEntries = getChainEntries;
346
415
  exports.getSiloV2MarketEntry = getSiloV2MarketEntry;
347
416
  exports.getSiloV3MarketEntry = getSiloV3MarketEntry;
348
417
  exports.initConfig = initConfig;
349
418
  exports.initializeChainData = initializeChainData;
350
419
  exports.initializeLenderData = initializeLenderData;
351
420
  exports.listaNativeProvider = listaNativeProvider;
421
+ exports.midnightConfig = midnightConfig;
422
+ exports.midnightMarketById = midnightMarketById;
423
+ exports.midnightMarkets = midnightMarkets;
424
+ exports.midnightMarketsByChain = midnightMarketsByChain;
352
425
  exports.morphoBundler3 = morphoBundler3;
353
426
  exports.morphoOracles = morphoOracles;
354
427
  exports.morphoPools = morphoPools;
package/dist/index.mjs CHANGED
@@ -8,6 +8,33 @@ function initializeChainData({ chainsOverride }) {
8
8
  if (chainsOverride) globalThis[GLOBAL_CHAIN_DATA_KEY] = chainsOverride;
9
9
  }
10
10
  var chains = () => getGlobalData();
11
+ var CHAIN_LOGO_BASE = "https://raw.githubusercontent.com/1delta-DAO/chains/main";
12
+ function chainLogoURI(chainId) {
13
+ return `${CHAIN_LOGO_BASE}/${String(chainId)}.webp`;
14
+ }
15
+ function getChainEntries(chainIds) {
16
+ const registry = chains();
17
+ const seen = /* @__PURE__ */ new Set();
18
+ const entries = [];
19
+ for (const id of chainIds) {
20
+ const key = String(id);
21
+ if (seen.has(key)) continue;
22
+ seen.add(key);
23
+ const info = registry[key];
24
+ entries.push({
25
+ chainId: key,
26
+ name: info?.shortName ?? info?.name ?? `Chain ${key}`,
27
+ logoURI: chainLogoURI(key)
28
+ });
29
+ }
30
+ entries.sort((a, b) => {
31
+ const an = Number(a.chainId);
32
+ const bn = Number(b.chainId);
33
+ if (Number.isFinite(an) && Number.isFinite(bn)) return an - bn;
34
+ return a.chainId.localeCompare(b.chainId);
35
+ });
36
+ return entries;
37
+ }
11
38
 
12
39
  // src/lending.ts
13
40
  var GLOBAL_LENDER_DATA_KEY = "__1delta_lender_registry__";
@@ -32,12 +59,17 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
32
59
  morphoTypeMarkets: {},
33
60
  morphoTypeVaults: {},
34
61
  aaveOraclesConfig: {},
62
+ compoundV2OraclesConfig: {},
35
63
  aaveWethGateway: {},
36
64
  morphoBundler3: {},
37
65
  listaNativeProvider: {},
66
+ midnightConfig: {},
67
+ midnightMarkets: {},
38
68
  compoundV3Bulker: {},
39
69
  eulerConfigs: {},
40
70
  eulerVaults: {},
71
+ dolomiteConfigs: {},
72
+ dolomiteEmode: {},
41
73
  aaveV4Spokes: {},
42
74
  aaveV4Oracles: {},
43
75
  aaveV4Peripherals: {},
@@ -77,12 +109,17 @@ function initializeLenderData({
77
109
  morphoTypeMarketsOverride,
78
110
  morphoTypeVaultsOverride,
79
111
  aaveOraclesConfigOverride,
112
+ compoundV2OraclesConfigOverride,
80
113
  aaveWethGatewayOverride,
81
114
  morphoBundler3Override,
82
115
  listaNativeProviderOverride,
116
+ midnightConfigOverride,
117
+ midnightMarketsOverride,
83
118
  compoundV3BulkerOverride,
84
119
  eulerConfigsOverride,
85
120
  eulerVaultsOverride,
121
+ dolomiteConfigsOverride,
122
+ dolomiteEmodeOverride,
86
123
  aaveV4SpokesOverride,
87
124
  aaveV4OraclesOverride,
88
125
  aaveV4PeripheralsOverride,
@@ -115,12 +152,17 @@ function initializeLenderData({
115
152
  if (morphoTypeMarketsOverride) data.morphoTypeMarkets = morphoTypeMarketsOverride;
116
153
  if (morphoTypeVaultsOverride) data.morphoTypeVaults = morphoTypeVaultsOverride;
117
154
  if (aaveOraclesConfigOverride) data.aaveOraclesConfig = aaveOraclesConfigOverride;
155
+ if (compoundV2OraclesConfigOverride) data.compoundV2OraclesConfig = compoundV2OraclesConfigOverride;
118
156
  if (aaveWethGatewayOverride) data.aaveWethGateway = aaveWethGatewayOverride;
119
157
  if (morphoBundler3Override) data.morphoBundler3 = morphoBundler3Override;
120
158
  if (listaNativeProviderOverride) data.listaNativeProvider = listaNativeProviderOverride;
159
+ if (midnightConfigOverride) data.midnightConfig = midnightConfigOverride;
160
+ if (midnightMarketsOverride) data.midnightMarkets = midnightMarketsOverride;
121
161
  if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
122
162
  if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
123
163
  if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
164
+ if (dolomiteConfigsOverride) data.dolomiteConfigs = dolomiteConfigsOverride;
165
+ if (dolomiteEmodeOverride) data.dolomiteEmode = dolomiteEmodeOverride;
124
166
  if (aaveV4SpokesOverride) data.aaveV4Spokes = aaveV4SpokesOverride;
125
167
  if (aaveV4OraclesOverride) data.aaveV4Oracles = aaveV4OraclesOverride;
126
168
  if (aaveV4PeripheralsOverride)
@@ -154,12 +196,32 @@ var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
154
196
  var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
155
197
  var initConfig = () => getGlobalData2()?.initConfig;
156
198
  var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
199
+ var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
157
200
  var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
158
201
  var morphoBundler3 = () => getGlobalData2()?.morphoBundler3;
159
202
  var listaNativeProvider = () => getGlobalData2()?.listaNativeProvider;
203
+ var midnightConfig = () => getGlobalData2()?.midnightConfig;
204
+ var midnightMarkets = () => getGlobalData2()?.midnightMarkets;
205
+ var midnightMarketsByChain = (chainId) => getGlobalData2()?.midnightMarkets?.[String(chainId)] ?? [];
206
+ var midnightMarketById = (chainId, marketId) => {
207
+ const lower = marketId.toLowerCase();
208
+ return midnightMarketsByChain(chainId).find((m) => m.marketId.toLowerCase() === lower);
209
+ };
160
210
  var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
161
211
  var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
162
212
  var eulerVaults = () => getGlobalData2()?.eulerVaults;
213
+ var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
214
+ var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
215
+ var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
216
+ var dolomiteMarketIdByToken = (chainId, token) => {
217
+ const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
218
+ if (!markets) return void 0;
219
+ const lower = token.toLowerCase();
220
+ for (const marketId in markets) {
221
+ if (markets[marketId]?.toLowerCase() === lower) return marketId;
222
+ }
223
+ return void 0;
224
+ };
163
225
  var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
164
226
  var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
165
227
  var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
@@ -298,4 +360,4 @@ async function fetchTokenLists(chainIds) {
298
360
  return Object.fromEntries(results);
299
361
  }
300
362
 
301
- export { GEARBOX_ACCOUNT_COMPRESSOR_V310, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, chains, compoundV2Oracles, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, eulerConfigs, eulerVaults, fetchTokenList, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, listaNativeProvider, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey };
363
+ export { GEARBOX_ACCOUNT_COMPRESSOR_V310, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, chainLogoURI, chains, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, eulerConfigs, eulerVaults, fetchTokenList, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, listaNativeProvider, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey };
package/dist/lending.d.ts CHANGED
@@ -66,6 +66,53 @@ type ListaNativeProviderType = {
66
66
  nativeProvider: string;
67
67
  };
68
68
  };
69
+ /** Per-chain Midnight deployment addresses + HTTP API endpoint. */
70
+ export type MidnightConfigChain = {
71
+ /** Core Midnight contract. */
72
+ midnight: string;
73
+ /** MidnightBundlesV1 periphery (spot supply/borrow/repay bundles). */
74
+ midnightBundles: string;
75
+ /** On-chain mempool log contract where signed offers are published. */
76
+ midnightMempool: string;
77
+ ecrecoverRatifier?: string | null;
78
+ ecrecoverAuthorizer?: string | null;
79
+ setterRatifier?: string | null;
80
+ /** Midnight HTTP API base for book/quote/offer data (defaults to Morpho hosted). */
81
+ apiBaseUrl?: string | null;
82
+ };
83
+ export type MidnightConfigType = {
84
+ [chainId: string]: MidnightConfigChain;
85
+ };
86
+ /** One collateral leg of a Midnight market (mirrors on-chain CollateralParams). */
87
+ export type MidnightCollateralParam = {
88
+ token: string;
89
+ /** WAD-scaled liquidation LTV (as string). */
90
+ lltv: string;
91
+ /** WAD-scaled liquidation cursor (as string). */
92
+ liquidationCursor: string;
93
+ oracle: string;
94
+ decimals: number;
95
+ };
96
+ /** A Midnight market: full struct params needed to build calls + read state. */
97
+ export type MidnightMarketConfig = {
98
+ /** bytes32 market id (IdLib hash of the Market struct). */
99
+ marketId: string;
100
+ loanToken: string;
101
+ loanDecimals: number;
102
+ /** Ordered collateral legs; index = the on-chain `collateralIndex`. */
103
+ collateralParams: MidnightCollateralParam[];
104
+ /** Maturity, unix seconds (as string). */
105
+ maturity: string;
106
+ /** Recovery-close-factor threshold (WAD, as string). */
107
+ rcfThreshold: string;
108
+ enterGate: string;
109
+ liquidatorGate: string;
110
+ /** Optional display label, e.g. "USDC / WETH — 2026-09-18". */
111
+ name?: string;
112
+ };
113
+ export type MidnightMarketsType = {
114
+ [chainId: string]: MidnightMarketConfig[];
115
+ };
69
116
  type OracleMap = {
70
117
  [lender: string]: {
71
118
  [chainId: string]: string;
@@ -192,6 +239,11 @@ export type MorphoTypeVaultEntry = {
192
239
  underlying: string;
193
240
  /** Curated display name (e.g. `Lista USD1 Vault`). Optional. */
194
241
  name?: string;
242
+ /** Vault interface version. `v1` = MetaMorpho (withdraw-queue → markets);
243
+ * `v2` = Vaults V2 (adapter-based). Drives the on-chain fetcher's
244
+ * allocation walk. Absent ⇒ the fetcher auto-detects on-chain
245
+ * (`adaptersLength()` present ⇒ v2). */
246
+ version?: 'v1' | 'v2';
195
247
  };
196
248
  export type MorphoTypeVaultsType = {
197
249
  [protocol: string]: {
@@ -230,6 +282,17 @@ type AaveOraclesConfigType = {
230
282
  [chainId: string]: AaveOraclesConfigEntry;
231
283
  };
232
284
  };
285
+ type CompoundV2OraclesConfigEntry = {
286
+ /** Base asset address (if oracle quotes in a non-USD asset, e.g. native token) */
287
+ baseAsset?: string;
288
+ /** Fixed scaling decimals override (defaults to 36 - underlyingDecimals) */
289
+ scalingDecimals?: number;
290
+ };
291
+ type CompoundV2OraclesConfigType = {
292
+ [lender: string]: {
293
+ [chainId: string]: CompoundV2OraclesConfigEntry;
294
+ };
295
+ };
233
296
  type AaveWethGatewayType = {
234
297
  [fork: string]: {
235
298
  [chainId: string]: string;
@@ -259,6 +322,56 @@ type EulerVaultsType = {
259
322
  [chainId: string]: EulerVaultEntry[];
260
323
  };
261
324
  };
325
+ export type DolomiteAggregator = 'odos' | 'paraswap' | 'oogabooga' | 'enso';
326
+ export type DolomiteConfigEntry = {
327
+ dolomiteMargin: string;
328
+ expiry?: string;
329
+ markets?: {
330
+ [marketId: string]: string;
331
+ };
332
+ depositWithdrawalProxy?: string;
333
+ /**
334
+ * Modern DepositWithdrawalRouter — required for NATIVE (ETH/BNB) wrap/unwrap
335
+ * ops. The legacy `depositWithdrawalProxy` rejects direct EOA native sends
336
+ * ("invalid ETH sender"); ERC-20 deposits/withdrawals still use the proxy.
337
+ */
338
+ depositWithdrawalRouter?: string;
339
+ borrowPositionProxy?: string;
340
+ genericTraderProxy?: string;
341
+ aggregatorTraders?: {
342
+ [K in DolomiteAggregator]?: string;
343
+ };
344
+ };
345
+ export type DolomiteConfigsType = {
346
+ [chainId: string]: DolomiteConfigEntry;
347
+ };
348
+ export type DolomiteCategoryParam = {
349
+ marginRatioOverride: number;
350
+ liquidationRewardOverride: number;
351
+ };
352
+ export type DolomiteSingleCollateral = {
353
+ debtMarketIds: string[];
354
+ marginRatioOverride: number;
355
+ liquidationRewardOverride: number;
356
+ };
357
+ export type DolomiteEmodeChain = {
358
+ setter: string;
359
+ categories: {
360
+ [category: string]: DolomiteCategoryParam;
361
+ };
362
+ marketCategories: {
363
+ [marketId: string]: string;
364
+ };
365
+ riskFeatures: {
366
+ [marketId: string]: {
367
+ feature: string;
368
+ singleCollateral?: DolomiteSingleCollateral[];
369
+ };
370
+ };
371
+ };
372
+ export type DolomiteEmodeType = {
373
+ [chainId: string]: DolomiteEmodeChain;
374
+ };
262
375
  export type SiloHalfStatic = {
263
376
  /** silo (vault) address */
264
377
  silo: string;
@@ -414,7 +527,7 @@ export type AaveV4PeripheralsType = {
414
527
  [chainId: string]: AaveV4ChainPeripherals;
415
528
  };
416
529
  /** Override datas used in the SDK - works across all module instances */
417
- export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOverride, aaveOraclesOverride, compoundV2OraclesOverride, compoundV3OraclesDataOverride, compoundV3PoolsOverride, compoundV3BaseDataOverride, morphoPoolsOverride, compoundV2TokensOverride, compoundV2TokenArrayOverride, compoundV2PoolsOverride, initConfigOverride, aaveReservesOverride, compoundV3ReservesOverride, compoundV2ReservesOverride, morphoOraclesOverride, morphoTypeOraclesOverride, morphoTypeMarketsOverride, morphoTypeVaultsOverride, aaveOraclesConfigOverride, aaveWethGatewayOverride, morphoBundler3Override, listaNativeProviderOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
530
+ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOverride, aaveOraclesOverride, compoundV2OraclesOverride, compoundV3OraclesDataOverride, compoundV3PoolsOverride, compoundV3BaseDataOverride, morphoPoolsOverride, compoundV2TokensOverride, compoundV2TokenArrayOverride, compoundV2PoolsOverride, initConfigOverride, aaveReservesOverride, compoundV3ReservesOverride, compoundV2ReservesOverride, morphoOraclesOverride, morphoTypeOraclesOverride, morphoTypeMarketsOverride, morphoTypeVaultsOverride, aaveOraclesConfigOverride, compoundV2OraclesConfigOverride, aaveWethGatewayOverride, morphoBundler3Override, listaNativeProviderOverride, midnightConfigOverride, midnightMarketsOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
418
531
  aaveTokensOverride?: AaveTokensType;
419
532
  aavePoolsOverride?: AavePoolsType;
420
533
  aaveOraclesOverride?: OracleMap;
@@ -435,12 +548,17 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
435
548
  morphoTypeMarketsOverride?: MorphoTypeMarkets;
436
549
  morphoTypeVaultsOverride?: MorphoTypeVaultsType;
437
550
  aaveOraclesConfigOverride?: AaveOraclesConfigType;
551
+ compoundV2OraclesConfigOverride?: CompoundV2OraclesConfigType;
438
552
  aaveWethGatewayOverride?: AaveWethGatewayType;
439
553
  morphoBundler3Override?: MorphoBundler3Type;
440
554
  listaNativeProviderOverride?: ListaNativeProviderType;
555
+ midnightConfigOverride?: MidnightConfigType;
556
+ midnightMarketsOverride?: MidnightMarketsType;
441
557
  compoundV3BulkerOverride?: CompoundV3BulkerType;
442
558
  eulerConfigsOverride?: EulerConfigsType;
443
559
  eulerVaultsOverride?: EulerVaultsType;
560
+ dolomiteConfigsOverride?: DolomiteConfigsType;
561
+ dolomiteEmodeOverride?: DolomiteEmodeType;
444
562
  aaveV4SpokesOverride?: AaveV4SpokesType;
445
563
  aaveV4OraclesOverride?: AaveV4OraclesType;
446
564
  aaveV4PeripheralsOverride?: AaveV4PeripheralsType;
@@ -472,12 +590,23 @@ export declare const compoundV2Tokens: () => CompoundV2TokensType;
472
590
  export declare const compoundV2TokenArray: () => CompoundV2TokenArrayType;
473
591
  export declare const initConfig: () => InitConfigType;
474
592
  export declare const aaveOraclesConfig: () => AaveOraclesConfigType;
593
+ export declare const compoundV2OraclesConfig: () => CompoundV2OraclesConfigType;
475
594
  export declare const aaveWethGateway: () => AaveWethGatewayType;
476
595
  export declare const morphoBundler3: () => MorphoBundler3Type;
477
596
  export declare const listaNativeProvider: () => ListaNativeProviderType;
597
+ export declare const midnightConfig: () => MidnightConfigType;
598
+ export declare const midnightMarkets: () => MidnightMarketsType;
599
+ /** All Midnight market configs on a chain (empty array if none/unloaded). */
600
+ export declare const midnightMarketsByChain: (chainId: string | number) => MidnightMarketConfig[];
601
+ /** Look up one Midnight market config by its bytes32 id (case-insensitive). */
602
+ export declare const midnightMarketById: (chainId: string | number, marketId: string) => MidnightMarketConfig | undefined;
478
603
  export declare const compoundV3Bulker: () => CompoundV3BulkerType;
479
604
  export declare const eulerConfigs: () => EulerConfigsType;
480
605
  export declare const eulerVaults: () => EulerVaultsType;
606
+ export declare const dolomiteConfigs: () => DolomiteConfigsType;
607
+ export declare const dolomiteChains: () => string[];
608
+ export declare const dolomiteEmode: () => DolomiteEmodeType;
609
+ export declare const dolomiteMarketIdByToken: (chainId: string, token: string) => string | undefined;
481
610
  export declare const aaveV4Spokes: () => AaveV4SpokesType;
482
611
  export declare const aaveV4Oracles: () => AaveV4OraclesType;
483
612
  export declare const aaveV4Peripherals: () => AaveV4PeripheralsType;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.0.26",
7
+ "version": "0.0.29",
8
8
  "description": "Hold and initialize lending protocol data across a stack",
9
9
  "files": [
10
10
  "dist"