@1delta/data-sdk 0.0.23 → 0.0.25

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
@@ -47,7 +47,12 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
47
47
  siloMarketsV3: {},
48
48
  siloPeripheralsV3: {},
49
49
  fluidResolvers: {},
50
- fluidVaults: {}
50
+ fluidVaults: {},
51
+ gearboxResolvers: {
52
+ addressProviderV310: "",
53
+ marketCompressorV310: "",
54
+ chains: {}
55
+ }
51
56
  };
52
57
  function getGlobalData2() {
53
58
  return globalThis[GLOBAL_LENDER_DATA_KEY];
@@ -86,7 +91,8 @@ function initializeLenderData({
86
91
  siloMarketsV3Override,
87
92
  siloPeripheralsV3Override,
88
93
  fluidResolversOverride,
89
- fluidVaultsOverride
94
+ fluidVaultsOverride,
95
+ gearboxResolversOverride
90
96
  }) {
91
97
  const data = getGlobalData2();
92
98
  if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;
@@ -125,6 +131,7 @@ function initializeLenderData({
125
131
  data.siloPeripheralsV3 = siloPeripheralsV3Override;
126
132
  if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
127
133
  if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
134
+ if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
128
135
  }
129
136
  var aaveTokens = () => getGlobalData2()?.aaveTokens;
130
137
  var aavePools = () => getGlobalData2()?.aavePools;
@@ -161,6 +168,13 @@ var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
161
168
  var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
162
169
  var fluidVaults = () => getGlobalData2()?.fluidVaults;
163
170
  var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
171
+ var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
172
+ var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
173
+ var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
174
+ var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
175
+ var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
176
+ var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
177
+ var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
164
178
  var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
165
179
  function getAaveV4SpokeEntry(chainId, lenderKey) {
166
180
  const parsed = parseAaveV4SpokeLenderKey(lenderKey);
@@ -251,6 +265,19 @@ function getSiloV3MarketEntry(chainId, lenderKey) {
251
265
  (m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
252
266
  );
253
267
  }
268
+ function gearboxV3LenderKey(creditManager) {
269
+ if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
270
+ throw new Error(
271
+ `gearboxV3LenderKey: invalid creditManager address ${creditManager}`
272
+ );
273
+ }
274
+ return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
275
+ }
276
+ function parseGearboxV3LenderKey(lenderKey) {
277
+ const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
278
+ if (!match) return void 0;
279
+ return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
280
+ }
254
281
 
255
282
  // src/tokens.ts
256
283
  var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
@@ -268,6 +295,7 @@ async function fetchTokenLists(chainIds) {
268
295
  return Object.fromEntries(results);
269
296
  }
270
297
 
298
+ exports.GEARBOX_ACCOUNT_COMPRESSOR_V310 = GEARBOX_ACCOUNT_COMPRESSOR_V310;
271
299
  exports.aaveOracles = aaveOracles;
272
300
  exports.aaveOraclesConfig = aaveOraclesConfig;
273
301
  exports.aavePools = aavePools;
@@ -298,6 +326,13 @@ exports.fluidChains = fluidChains;
298
326
  exports.fluidResolvers = fluidResolvers;
299
327
  exports.fluidVaultEntries = fluidVaultEntries;
300
328
  exports.fluidVaults = fluidVaults;
329
+ exports.gearboxAccountCompressor = gearboxAccountCompressor;
330
+ exports.gearboxAddressProviderV310 = gearboxAddressProviderV310;
331
+ exports.gearboxChains = gearboxChains;
332
+ exports.gearboxMarketCompressor = gearboxMarketCompressor;
333
+ exports.gearboxMarketConfigurators = gearboxMarketConfigurators;
334
+ exports.gearboxResolvers = gearboxResolvers;
335
+ exports.gearboxV3LenderKey = gearboxV3LenderKey;
301
336
  exports.getAaveV4GatewayAddresses = getAaveV4GatewayAddresses;
302
337
  exports.getAaveV4PositionManagers = getAaveV4PositionManagers;
303
338
  exports.getAaveV4SpokeEntry = getAaveV4SpokeEntry;
@@ -314,6 +349,7 @@ exports.morphoPools = morphoPools;
314
349
  exports.morphoTypeMarkets = morphoTypeMarkets;
315
350
  exports.morphoTypeOracles = morphoTypeOracles;
316
351
  exports.parseAaveV4SpokeLenderKey = parseAaveV4SpokeLenderKey;
352
+ exports.parseGearboxV3LenderKey = parseGearboxV3LenderKey;
317
353
  exports.parseSiloV2LenderKey = parseSiloV2LenderKey;
318
354
  exports.parseSiloV3LenderKey = parseSiloV3LenderKey;
319
355
  exports.siloMarkets = siloMarkets;
package/dist/index.mjs CHANGED
@@ -45,7 +45,12 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
45
45
  siloMarketsV3: {},
46
46
  siloPeripheralsV3: {},
47
47
  fluidResolvers: {},
48
- fluidVaults: {}
48
+ fluidVaults: {},
49
+ gearboxResolvers: {
50
+ addressProviderV310: "",
51
+ marketCompressorV310: "",
52
+ chains: {}
53
+ }
49
54
  };
50
55
  function getGlobalData2() {
51
56
  return globalThis[GLOBAL_LENDER_DATA_KEY];
@@ -84,7 +89,8 @@ function initializeLenderData({
84
89
  siloMarketsV3Override,
85
90
  siloPeripheralsV3Override,
86
91
  fluidResolversOverride,
87
- fluidVaultsOverride
92
+ fluidVaultsOverride,
93
+ gearboxResolversOverride
88
94
  }) {
89
95
  const data = getGlobalData2();
90
96
  if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;
@@ -123,6 +129,7 @@ function initializeLenderData({
123
129
  data.siloPeripheralsV3 = siloPeripheralsV3Override;
124
130
  if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
125
131
  if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
132
+ if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
126
133
  }
127
134
  var aaveTokens = () => getGlobalData2()?.aaveTokens;
128
135
  var aavePools = () => getGlobalData2()?.aavePools;
@@ -159,6 +166,13 @@ var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
159
166
  var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
160
167
  var fluidVaults = () => getGlobalData2()?.fluidVaults;
161
168
  var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
169
+ var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
170
+ var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
171
+ var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
172
+ var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
173
+ var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
174
+ var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
175
+ var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
162
176
  var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
163
177
  function getAaveV4SpokeEntry(chainId, lenderKey) {
164
178
  const parsed = parseAaveV4SpokeLenderKey(lenderKey);
@@ -249,6 +263,19 @@ function getSiloV3MarketEntry(chainId, lenderKey) {
249
263
  (m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
250
264
  );
251
265
  }
266
+ function gearboxV3LenderKey(creditManager) {
267
+ if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
268
+ throw new Error(
269
+ `gearboxV3LenderKey: invalid creditManager address ${creditManager}`
270
+ );
271
+ }
272
+ return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
273
+ }
274
+ function parseGearboxV3LenderKey(lenderKey) {
275
+ const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
276
+ if (!match) return void 0;
277
+ return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
278
+ }
252
279
 
253
280
  // src/tokens.ts
254
281
  var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
@@ -266,4 +293,4 @@ async function fetchTokenLists(chainIds) {
266
293
  return Object.fromEntries(results);
267
294
  }
268
295
 
269
- 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, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, listaNativeProvider, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, parseAaveV4SpokeLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey };
296
+ 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, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, 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
@@ -179,6 +179,19 @@ type MorphoTypeMarkets = {
179
179
  [chainId: string]: string[];
180
180
  };
181
181
  };
182
+ export type GearboxChainResolvers = {
183
+ /** curator address (lowercased) → curator display name */
184
+ marketConfigurators: {
185
+ [addr: string]: string;
186
+ };
187
+ };
188
+ export type GearboxResolversType = {
189
+ addressProviderV310: string;
190
+ marketCompressorV310: string;
191
+ chains: {
192
+ [chainId: string]: GearboxChainResolvers;
193
+ };
194
+ };
182
195
  type AaveOraclesConfigEntry = {
183
196
  /** Base asset address (if lender uses non-USD base) */
184
197
  baseAsset?: string;
@@ -376,7 +389,7 @@ export type AaveV4PeripheralsType = {
376
389
  [chainId: string]: AaveV4ChainPeripherals;
377
390
  };
378
391
  /** Override datas used in the SDK - works across all module instances */
379
- 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, }: {
392
+ 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, }: {
380
393
  aaveTokensOverride?: AaveTokensType;
381
394
  aavePoolsOverride?: AavePoolsType;
382
395
  aaveOraclesOverride?: OracleMap;
@@ -411,6 +424,7 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
411
424
  siloPeripheralsV3Override?: SiloPeripheralsType;
412
425
  fluidResolversOverride?: FluidResolversType;
413
426
  fluidVaultsOverride?: FluidVaultsType;
427
+ gearboxResolversOverride?: GearboxResolversType;
414
428
  }): void;
415
429
  export declare const aaveTokens: () => AaveTokensType;
416
430
  export declare const aavePools: () => AavePoolsType;
@@ -448,6 +462,33 @@ export declare const fluidResolvers: () => FluidResolversType;
448
462
  export declare const fluidVaults: () => FluidVaultsType;
449
463
  /** List of chains where Fluid resolvers are registered. */
450
464
  export declare const fluidChains: () => string[];
465
+ export declare const gearboxResolvers: () => GearboxResolversType;
466
+ /** List of chains where Gearbox V3.1 configurators are registered. */
467
+ export declare const gearboxChains: () => string[];
468
+ /** V3.1 deterministic MarketCompressor address (same on every chain). */
469
+ export declare const gearboxMarketCompressor: () => string | undefined;
470
+ /** V3.1 deterministic AddressProvider address (same on every chain). */
471
+ export declare const gearboxAddressProviderV310: () => string | undefined;
472
+ /**
473
+ * V3.1 deterministic CreditAccountCompressor address.
474
+ *
475
+ * Same CREATE2-derived address on every Gearbox V3.1 chain. Not in the
476
+ * resolvers JSON yet — hardcoded here until we decide whether to surface
477
+ * it in `lender-metadata` (the config gains no flexibility; the address
478
+ * is fixed across chains).
479
+ */
480
+ export declare const GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
481
+ export declare const gearboxAccountCompressor: () => string;
482
+ /**
483
+ * MarketConfigurator address → curator name for a given chain, or
484
+ * `undefined` if no curator is registered on that chain.
485
+ *
486
+ * Configurators are the entry point into `MarketCompressor.getMarkets`
487
+ * — each one is operated by a known curator (cp0x, Re7, Chaos Labs, …).
488
+ */
489
+ export declare const gearboxMarketConfigurators: (chainId: string) => {
490
+ [addr: string]: string;
491
+ } | undefined;
451
492
  /** Vault entries for a chain as `[address, meta]` tuples. */
452
493
  export declare const fluidVaultEntries: (chainId: string) => [string, FluidVaultMeta][];
453
494
  /**
@@ -586,4 +627,25 @@ export declare function parseSiloV3LenderKey(lenderKey: string): {
586
627
  * Returns `undefined` if no entry exists for that chain/config.
587
628
  */
588
629
  export declare function getSiloV3MarketEntry(chainId: string, lenderKey: string): SiloMarketEntry | undefined;
630
+ /**
631
+ * Synthesize the per-CreditManager lender key for a Gearbox V3 market.
632
+ *
633
+ * Mirrors `siloV2LenderKey` / `aaveV4SpokeLenderKey` — each CreditManager
634
+ * is its own isolated lending venue (positions in CM-A are invisible to
635
+ * CM-B even when both draw from the same pool), so it gets its own lender
636
+ * key rather than a config bucket under a shared parent.
637
+ *
638
+ * Format: `GEARBOX_V3_${creditManagerAddr.slice(2).toUpperCase()}`
639
+ *
640
+ * `isGearboxV3()` works on this because it matches `startsWith('GEARBOX_V3')`.
641
+ */
642
+ export declare function gearboxV3LenderKey(creditManager: string): string;
643
+ /**
644
+ * Inverse of `gearboxV3LenderKey`: given a per-CM lender key, return
645
+ * `{ creditManagerAddrLower }`. Returns `undefined` if the key isn't a
646
+ * per-CM Gearbox V3 key (e.g. someone passed the bare prefix `GEARBOX_V3`).
647
+ */
648
+ export declare function parseGearboxV3LenderKey(lenderKey: string): {
649
+ creditManagerAddrLower: string;
650
+ } | undefined;
589
651
  export {};
package/package.json CHANGED
@@ -1,46 +1,46 @@
1
1
  {
2
- "name": "@1delta/data-sdk",
3
- "license": "MIT",
4
- "publishConfig": {
5
- "access": "public"
6
- },
7
- "version": "0.0.23",
8
- "description": "Hold and initialize lending protocol data across a stack",
9
- "files": [
10
- "dist"
11
- ],
12
- "keywords": [
13
- "dex"
14
- ],
15
- "sideEffects": false,
16
- "main": "dist/index.js",
17
- "types": "dist/index.d.ts",
18
- "module": "dist/index.mjs",
19
- "scripts": {
20
- "build": "tsup",
21
- "dev": "tsup --watch",
22
- "test": "vitest --run",
23
- "coverage": "vitest run --coverage",
24
- "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
25
- },
26
- "devDependencies": {
27
- "tsup": "^8.5.1",
28
- "typescript": "^5.9.3"
29
- },
30
- "engines": {
31
- "node": ">=20"
32
- },
33
- "prettier": {
34
- "printWidth": 120,
35
- "semi": false,
36
- "singleQuote": true
37
- },
38
- "exports": {
39
- "./package.json": "./package.json",
40
- ".": {
41
- "types": "./dist/index.d.ts",
42
- "import": "./dist/index.mjs",
43
- "require": "./dist/index.js"
44
- }
45
- }
46
- }
2
+ "name": "@1delta/data-sdk",
3
+ "license": "MIT",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "version": "0.0.25",
8
+ "description": "Hold and initialize lending protocol data across a stack",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "keywords": [
13
+ "dex"
14
+ ],
15
+ "sideEffects": false,
16
+ "main": "dist/index.js",
17
+ "types": "dist/index.d.ts",
18
+ "module": "dist/index.mjs",
19
+ "devDependencies": {
20
+ "tsup": "^8.5.1",
21
+ "typescript": "^5.9.3"
22
+ },
23
+ "engines": {
24
+ "node": ">=20"
25
+ },
26
+ "prettier": {
27
+ "printWidth": 120,
28
+ "semi": false,
29
+ "singleQuote": true
30
+ },
31
+ "exports": {
32
+ "./package.json": "./package.json",
33
+ ".": {
34
+ "types": "./dist/index.d.ts",
35
+ "import": "./dist/index.mjs",
36
+ "require": "./dist/index.js"
37
+ }
38
+ },
39
+ "scripts": {
40
+ "build": "tsup",
41
+ "dev": "tsup --watch",
42
+ "test": "vitest --run",
43
+ "coverage": "vitest run --coverage",
44
+ "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
45
+ }
46
+ }