@1delta/data-sdk 0.0.22 → 0.0.24

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
@@ -45,7 +45,10 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
45
45
  siloMarkets: {},
46
46
  siloPeripherals: {},
47
47
  siloMarketsV3: {},
48
- siloPeripheralsV3: {}
48
+ siloPeripheralsV3: {},
49
+ fluidResolvers: {},
50
+ fluidVaults: {},
51
+ gearboxResolvers: {}
49
52
  };
50
53
  function getGlobalData2() {
51
54
  return globalThis[GLOBAL_LENDER_DATA_KEY];
@@ -82,7 +85,10 @@ function initializeLenderData({
82
85
  siloMarketsOverride,
83
86
  siloPeripheralsOverride,
84
87
  siloMarketsV3Override,
85
- siloPeripheralsV3Override
88
+ siloPeripheralsV3Override,
89
+ fluidResolversOverride,
90
+ fluidVaultsOverride,
91
+ gearboxResolversOverride
86
92
  }) {
87
93
  const data = getGlobalData2();
88
94
  if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;
@@ -119,6 +125,9 @@ function initializeLenderData({
119
125
  if (siloMarketsV3Override) data.siloMarketsV3 = siloMarketsV3Override;
120
126
  if (siloPeripheralsV3Override)
121
127
  data.siloPeripheralsV3 = siloPeripheralsV3Override;
128
+ if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
129
+ if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
130
+ if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
122
131
  }
123
132
  var aaveTokens = () => getGlobalData2()?.aaveTokens;
124
133
  var aavePools = () => getGlobalData2()?.aavePools;
@@ -152,6 +161,12 @@ var siloMarkets = () => getGlobalData2()?.siloMarkets;
152
161
  var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
153
162
  var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
154
163
  var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
164
+ var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
165
+ var fluidVaults = () => getGlobalData2()?.fluidVaults;
166
+ var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
167
+ var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
168
+ var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers ?? {});
169
+ var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
155
170
  function getAaveV4SpokeEntry(chainId, lenderKey) {
156
171
  const parsed = parseAaveV4SpokeLenderKey(lenderKey);
157
172
  if (!parsed) return void 0;
@@ -241,6 +256,19 @@ function getSiloV3MarketEntry(chainId, lenderKey) {
241
256
  (m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
242
257
  );
243
258
  }
259
+ function gearboxV3LenderKey(creditManager) {
260
+ if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
261
+ throw new Error(
262
+ `gearboxV3LenderKey: invalid creditManager address ${creditManager}`
263
+ );
264
+ }
265
+ return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
266
+ }
267
+ function parseGearboxV3LenderKey(lenderKey) {
268
+ const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
269
+ if (!match) return void 0;
270
+ return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
271
+ }
244
272
 
245
273
  // src/tokens.ts
246
274
  var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
@@ -284,6 +312,13 @@ exports.eulerVaults = eulerVaults;
284
312
  exports.fetchTokenList = fetchTokenList;
285
313
  exports.fetchTokenLists = fetchTokenLists;
286
314
  exports.findAaveV4PositionManager = findAaveV4PositionManager;
315
+ exports.fluidChains = fluidChains;
316
+ exports.fluidResolvers = fluidResolvers;
317
+ exports.fluidVaultEntries = fluidVaultEntries;
318
+ exports.fluidVaults = fluidVaults;
319
+ exports.gearboxChains = gearboxChains;
320
+ exports.gearboxResolvers = gearboxResolvers;
321
+ exports.gearboxV3LenderKey = gearboxV3LenderKey;
287
322
  exports.getAaveV4GatewayAddresses = getAaveV4GatewayAddresses;
288
323
  exports.getAaveV4PositionManagers = getAaveV4PositionManagers;
289
324
  exports.getAaveV4SpokeEntry = getAaveV4SpokeEntry;
@@ -300,6 +335,7 @@ exports.morphoPools = morphoPools;
300
335
  exports.morphoTypeMarkets = morphoTypeMarkets;
301
336
  exports.morphoTypeOracles = morphoTypeOracles;
302
337
  exports.parseAaveV4SpokeLenderKey = parseAaveV4SpokeLenderKey;
338
+ exports.parseGearboxV3LenderKey = parseGearboxV3LenderKey;
303
339
  exports.parseSiloV2LenderKey = parseSiloV2LenderKey;
304
340
  exports.parseSiloV3LenderKey = parseSiloV3LenderKey;
305
341
  exports.siloMarkets = siloMarkets;
package/dist/index.mjs CHANGED
@@ -43,7 +43,10 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
43
43
  siloMarkets: {},
44
44
  siloPeripherals: {},
45
45
  siloMarketsV3: {},
46
- siloPeripheralsV3: {}
46
+ siloPeripheralsV3: {},
47
+ fluidResolvers: {},
48
+ fluidVaults: {},
49
+ gearboxResolvers: {}
47
50
  };
48
51
  function getGlobalData2() {
49
52
  return globalThis[GLOBAL_LENDER_DATA_KEY];
@@ -80,7 +83,10 @@ function initializeLenderData({
80
83
  siloMarketsOverride,
81
84
  siloPeripheralsOverride,
82
85
  siloMarketsV3Override,
83
- siloPeripheralsV3Override
86
+ siloPeripheralsV3Override,
87
+ fluidResolversOverride,
88
+ fluidVaultsOverride,
89
+ gearboxResolversOverride
84
90
  }) {
85
91
  const data = getGlobalData2();
86
92
  if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;
@@ -117,6 +123,9 @@ function initializeLenderData({
117
123
  if (siloMarketsV3Override) data.siloMarketsV3 = siloMarketsV3Override;
118
124
  if (siloPeripheralsV3Override)
119
125
  data.siloPeripheralsV3 = siloPeripheralsV3Override;
126
+ if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
127
+ if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
128
+ if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
120
129
  }
121
130
  var aaveTokens = () => getGlobalData2()?.aaveTokens;
122
131
  var aavePools = () => getGlobalData2()?.aavePools;
@@ -150,6 +159,12 @@ var siloMarkets = () => getGlobalData2()?.siloMarkets;
150
159
  var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
151
160
  var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
152
161
  var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
162
+ var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
163
+ var fluidVaults = () => getGlobalData2()?.fluidVaults;
164
+ var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
165
+ var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
166
+ var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers ?? {});
167
+ var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
153
168
  function getAaveV4SpokeEntry(chainId, lenderKey) {
154
169
  const parsed = parseAaveV4SpokeLenderKey(lenderKey);
155
170
  if (!parsed) return void 0;
@@ -239,6 +254,19 @@ function getSiloV3MarketEntry(chainId, lenderKey) {
239
254
  (m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
240
255
  );
241
256
  }
257
+ function gearboxV3LenderKey(creditManager) {
258
+ if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
259
+ throw new Error(
260
+ `gearboxV3LenderKey: invalid creditManager address ${creditManager}`
261
+ );
262
+ }
263
+ return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
264
+ }
265
+ function parseGearboxV3LenderKey(lenderKey) {
266
+ const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
267
+ if (!match) return void 0;
268
+ return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
269
+ }
242
270
 
243
271
  // src/tokens.ts
244
272
  var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
@@ -256,4 +284,4 @@ async function fetchTokenLists(chainIds) {
256
284
  return Object.fromEntries(results);
257
285
  }
258
286
 
259
- export { 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, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, listaNativeProvider, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, parseAaveV4SpokeLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey };
287
+ export { 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, gearboxChains, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, listaNativeProvider, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey };
package/dist/lending.d.ts CHANGED
@@ -122,6 +122,53 @@ interface MrophoOracleInfo {
122
122
  type MorphoOracles = {
123
123
  [c: string]: MrophoOracleInfo[];
124
124
  };
125
+ export type FluidResolvers = {
126
+ lendingResolver: string;
127
+ vaultResolver: string;
128
+ liquidityResolver: string;
129
+ };
130
+ export type FluidResolversType = {
131
+ [chainId: string]: FluidResolvers;
132
+ };
133
+ /** One asset on a vault side — underlying token and its fToken wrapper (if any). */
134
+ export type FluidVaultAsset = {
135
+ /** Lowercased underlying ERC20 address. Native ETH is represented by
136
+ * `zeroAddress` (`0x0000…0000`) — the Fluid on-chain EEE sentinel is
137
+ * normalized away at the parser boundary to match the rest of the
138
+ * lending stack's convention. Use `isNativeAddress` in calldata-sdk
139
+ * if you need to accept either form. */
140
+ underlying: string;
141
+ /** Lowercased fToken address wrapping this underlying, or `null` if none.
142
+ * `null` does NOT imply "not borrowable" — borrowability is a separate
143
+ * Liquidity/vault-config property. */
144
+ fToken: string | null;
145
+ };
146
+ /** One side of a Fluid vault — supply or borrow. Uniform shape across all vault
147
+ * types: `assets.length === 1` means simple, `> 1` means smart (DEX LP).
148
+ * `dex !== null` is equivalent. */
149
+ export type FluidVaultSide = {
150
+ /** 1 entry for simple sides, 2 entries for smart (DEX LP) sides. Order matches
151
+ * the vault's `constantsView().{supply|borrow}Token.{token0,token1}`. */
152
+ assets: FluidVaultAsset[];
153
+ /** Fluid DEX pool contract. `null` for simple sides. */
154
+ dex: string | null;
155
+ /** Optional SmartLending wrapper over the DEX LP (ERC4626-like). `null` when unused. */
156
+ smartLending: string | null;
157
+ };
158
+ export type FluidVaultMeta = {
159
+ vaultId: number;
160
+ /** Raw `IFluidVault.TYPE()` — Fluid uses scaled constants 10000/20000/30000/40000
161
+ * for T1/T2/T3/T4. Prefer `side.dex !== null` for smart-side detection. */
162
+ type: 10000 | 20000 | 30000 | 40000;
163
+ supply: FluidVaultSide;
164
+ borrow: FluidVaultSide;
165
+ };
166
+ /** Keyed by vault contract address (lowercased) for O(1) lookup. */
167
+ export type FluidVaultsType = {
168
+ [chainId: string]: {
169
+ [vaultAddress: string]: FluidVaultMeta;
170
+ };
171
+ };
125
172
  type MorphoTypeOracles = {
126
173
  [chainId: string]: {
127
174
  [protocol: string]: MrophoOracleInfo[];
@@ -132,6 +179,13 @@ type MorphoTypeMarkets = {
132
179
  [chainId: string]: string[];
133
180
  };
134
181
  };
182
+ export type GearboxResolvers = {
183
+ addressProvider: string;
184
+ dataCompressor: string;
185
+ };
186
+ export type GearboxResolversType = {
187
+ [chainId: string]: GearboxResolvers;
188
+ };
135
189
  type AaveOraclesConfigEntry = {
136
190
  /** Base asset address (if lender uses non-USD base) */
137
191
  baseAsset?: string;
@@ -329,7 +383,7 @@ export type AaveV4PeripheralsType = {
329
383
  [chainId: string]: AaveV4ChainPeripherals;
330
384
  };
331
385
  /** Override datas used in the SDK - works across all module instances */
332
- export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOverride, aaveOraclesOverride, compoundV2OraclesOverride, compoundV3OraclesDataOverride, compoundV3PoolsOverride, compoundV3BaseDataOverride, morphoPoolsOverride, compoundV2TokensOverride, compoundV2TokenArrayOverride, compoundV2PoolsOverride, initConfigOverride, aaveReservesOverride, compoundV3ReservesOverride, compoundV2ReservesOverride, morphoOraclesOverride, morphoTypeOraclesOverride, morphoTypeMarketsOverride, aaveOraclesConfigOverride, aaveWethGatewayOverride, morphoBundler3Override, listaNativeProviderOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, }: {
386
+ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOverride, aaveOraclesOverride, compoundV2OraclesOverride, compoundV3OraclesDataOverride, compoundV3PoolsOverride, compoundV3BaseDataOverride, morphoPoolsOverride, compoundV2TokensOverride, compoundV2TokenArrayOverride, compoundV2PoolsOverride, initConfigOverride, aaveReservesOverride, compoundV3ReservesOverride, compoundV2ReservesOverride, morphoOraclesOverride, morphoTypeOraclesOverride, morphoTypeMarketsOverride, aaveOraclesConfigOverride, aaveWethGatewayOverride, morphoBundler3Override, listaNativeProviderOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
333
387
  aaveTokensOverride?: AaveTokensType;
334
388
  aavePoolsOverride?: AavePoolsType;
335
389
  aaveOraclesOverride?: OracleMap;
@@ -362,6 +416,9 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
362
416
  siloPeripheralsOverride?: SiloPeripheralsType;
363
417
  siloMarketsV3Override?: SiloMarketsType;
364
418
  siloPeripheralsV3Override?: SiloPeripheralsType;
419
+ fluidResolversOverride?: FluidResolversType;
420
+ fluidVaultsOverride?: FluidVaultsType;
421
+ gearboxResolversOverride?: GearboxResolversType;
365
422
  }): void;
366
423
  export declare const aaveTokens: () => AaveTokensType;
367
424
  export declare const aavePools: () => AavePoolsType;
@@ -395,6 +452,15 @@ export declare const siloMarkets: () => SiloMarketsType;
395
452
  export declare const siloPeripherals: () => SiloPeripheralsType;
396
453
  export declare const siloMarketsV3: () => SiloMarketsType;
397
454
  export declare const siloPeripheralsV3: () => SiloPeripheralsType;
455
+ export declare const fluidResolvers: () => FluidResolversType;
456
+ export declare const fluidVaults: () => FluidVaultsType;
457
+ /** List of chains where Fluid resolvers are registered. */
458
+ export declare const fluidChains: () => string[];
459
+ export declare const gearboxResolvers: () => GearboxResolversType;
460
+ /** List of chains where Gearbox V3 resolvers are registered. */
461
+ export declare const gearboxChains: () => string[];
462
+ /** Vault entries for a chain as `[address, meta]` tuples. */
463
+ export declare const fluidVaultEntries: (chainId: string) => [string, FluidVaultMeta][];
398
464
  /**
399
465
  * Look up the spoke entry for a per-spoke V4 lender key (`AAVE_V4_<HEX>`).
400
466
  * Returns `undefined` if no entry exists for that chain/spoke.
@@ -531,4 +597,25 @@ export declare function parseSiloV3LenderKey(lenderKey: string): {
531
597
  * Returns `undefined` if no entry exists for that chain/config.
532
598
  */
533
599
  export declare function getSiloV3MarketEntry(chainId: string, lenderKey: string): SiloMarketEntry | undefined;
600
+ /**
601
+ * Synthesize the per-CreditManager lender key for a Gearbox V3 market.
602
+ *
603
+ * Mirrors `siloV2LenderKey` / `aaveV4SpokeLenderKey` — each CreditManager
604
+ * is its own isolated lending venue (positions in CM-A are invisible to
605
+ * CM-B even when both draw from the same pool), so it gets its own lender
606
+ * key rather than a config bucket under a shared parent.
607
+ *
608
+ * Format: `GEARBOX_V3_${creditManagerAddr.slice(2).toUpperCase()}`
609
+ *
610
+ * `isGearboxV3()` works on this because it matches `startsWith('GEARBOX_V3')`.
611
+ */
612
+ export declare function gearboxV3LenderKey(creditManager: string): string;
613
+ /**
614
+ * Inverse of `gearboxV3LenderKey`: given a per-CM lender key, return
615
+ * `{ creditManagerAddrLower }`. Returns `undefined` if the key isn't a
616
+ * per-CM Gearbox V3 key (e.g. someone passed the bare prefix `GEARBOX_V3`).
617
+ */
618
+ export declare function parseGearboxV3LenderKey(lenderKey: string): {
619
+ creditManagerAddrLower: string;
620
+ } | undefined;
534
621
  export {};
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.0.22",
7
+ "version": "0.0.24",
8
8
  "description": "Hold and initialize lending protocol data across a stack",
9
9
  "files": [
10
10
  "dist"