@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 +38 -2
- package/dist/index.mjs +31 -3
- package/dist/lending.d.ts +88 -1
- package/package.json +1 -1
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 {};
|