@1delta/data-sdk 0.0.35 → 0.0.37
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 +94 -16
- package/dist/index.mjs +75 -17
- package/dist/lending.d.ts +226 -1
- package/dist/tokens.d.ts +20 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -77,6 +77,11 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
77
77
|
liquityMarkets: {},
|
|
78
78
|
riverConfig: {},
|
|
79
79
|
riverMarkets: {},
|
|
80
|
+
inverseConfig: {},
|
|
81
|
+
termMaxConfig: {},
|
|
82
|
+
inverseMarkets: {},
|
|
83
|
+
usddConfig: {},
|
|
84
|
+
usddMarkets: {},
|
|
80
85
|
compoundV3Bulker: {},
|
|
81
86
|
eulerConfigs: {},
|
|
82
87
|
eulerVaults: {},
|
|
@@ -137,6 +142,11 @@ function initializeLenderData({
|
|
|
137
142
|
liquityMarketsOverride,
|
|
138
143
|
riverConfigOverride,
|
|
139
144
|
riverMarketsOverride,
|
|
145
|
+
inverseConfigOverride,
|
|
146
|
+
termMaxConfigOverride,
|
|
147
|
+
inverseMarketsOverride,
|
|
148
|
+
usddConfigOverride,
|
|
149
|
+
usddMarketsOverride,
|
|
140
150
|
compoundV3BulkerOverride,
|
|
141
151
|
eulerConfigsOverride,
|
|
142
152
|
eulerVaultsOverride,
|
|
@@ -190,6 +200,11 @@ function initializeLenderData({
|
|
|
190
200
|
if (liquityMarketsOverride) data.liquityMarkets = liquityMarketsOverride;
|
|
191
201
|
if (riverConfigOverride) data.riverConfig = riverConfigOverride;
|
|
192
202
|
if (riverMarketsOverride) data.riverMarkets = riverMarketsOverride;
|
|
203
|
+
if (inverseConfigOverride) data.inverseConfig = inverseConfigOverride;
|
|
204
|
+
if (termMaxConfigOverride) data.termMaxConfig = termMaxConfigOverride;
|
|
205
|
+
if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
|
|
206
|
+
if (usddConfigOverride) data.usddConfig = usddConfigOverride;
|
|
207
|
+
if (usddMarketsOverride) data.usddMarkets = usddMarketsOverride;
|
|
193
208
|
if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
|
|
194
209
|
if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
|
|
195
210
|
if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
|
|
@@ -197,13 +212,11 @@ function initializeLenderData({
|
|
|
197
212
|
if (dolomiteEmodeOverride) data.dolomiteEmode = dolomiteEmodeOverride;
|
|
198
213
|
if (aaveV4SpokesOverride) data.aaveV4Spokes = aaveV4SpokesOverride;
|
|
199
214
|
if (aaveV4OraclesOverride) data.aaveV4Oracles = aaveV4OraclesOverride;
|
|
200
|
-
if (aaveV4PeripheralsOverride)
|
|
201
|
-
data.aaveV4Peripherals = aaveV4PeripheralsOverride;
|
|
215
|
+
if (aaveV4PeripheralsOverride) data.aaveV4Peripherals = aaveV4PeripheralsOverride;
|
|
202
216
|
if (siloMarketsOverride) data.siloMarkets = siloMarketsOverride;
|
|
203
217
|
if (siloPeripheralsOverride) data.siloPeripherals = siloPeripheralsOverride;
|
|
204
218
|
if (siloMarketsV3Override) data.siloMarketsV3 = siloMarketsV3Override;
|
|
205
|
-
if (siloPeripheralsV3Override)
|
|
206
|
-
data.siloPeripheralsV3 = siloPeripheralsV3Override;
|
|
219
|
+
if (siloPeripheralsV3Override) data.siloPeripheralsV3 = siloPeripheralsV3Override;
|
|
207
220
|
if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
|
|
208
221
|
if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
|
|
209
222
|
if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
|
|
@@ -294,9 +307,7 @@ var liquityBranchesByChain = (lender, chainId) => getGlobalData2()?.liquityMarke
|
|
|
294
307
|
var liquityBranchByIndex = (lender, chainId, collIndex) => liquityBranchesByChain(lender, chainId).find((b) => b.collIndex === Number(collIndex));
|
|
295
308
|
var liquityBranchByTroveManager = (lender, chainId, troveManager) => {
|
|
296
309
|
const lower = troveManager.toLowerCase();
|
|
297
|
-
return liquityBranchesByChain(lender, chainId).find(
|
|
298
|
-
(b) => b.troveManager.toLowerCase() === lower
|
|
299
|
-
);
|
|
310
|
+
return liquityBranchesByChain(lender, chainId).find((b) => b.troveManager.toLowerCase() === lower);
|
|
300
311
|
};
|
|
301
312
|
var liquityLendersByChain = (chainId) => {
|
|
302
313
|
const cfg = getGlobalData2()?.liquityConfig ?? {};
|
|
@@ -307,12 +318,39 @@ var riverConfig = () => getGlobalData2()?.riverConfig;
|
|
|
307
318
|
var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
|
|
308
319
|
var riverMarkets = () => getGlobalData2()?.riverMarkets;
|
|
309
320
|
var riverChainData = (lender, chainId) => getGlobalData2()?.riverMarkets?.[lender]?.[String(chainId)];
|
|
321
|
+
var inverseConfig = () => getGlobalData2()?.inverseConfig;
|
|
322
|
+
var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
|
|
323
|
+
var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
|
|
324
|
+
var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
|
|
325
|
+
var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
|
|
326
|
+
var inverseConfigFor = (lender, chainId) => getGlobalData2()?.inverseConfig?.[lender]?.[String(chainId)];
|
|
327
|
+
var inverseMarkets = () => getGlobalData2()?.inverseMarkets;
|
|
328
|
+
var inverseChainData = (lender, chainId) => getGlobalData2()?.inverseMarkets?.[lender]?.[String(chainId)];
|
|
329
|
+
var inverseMarketByAddress = (lender, chainId, address) => {
|
|
330
|
+
const lower = address.toLowerCase();
|
|
331
|
+
return inverseChainData(lender, chainId)?.markets?.find((m) => m.address.toLowerCase() === lower);
|
|
332
|
+
};
|
|
310
333
|
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
311
334
|
var riverLendersByChain = (chainId) => {
|
|
312
335
|
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
313
336
|
const chain = String(chainId);
|
|
314
337
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
315
338
|
};
|
|
339
|
+
var inverseLendersByChain = (chainId) => {
|
|
340
|
+
const cfg = getGlobalData2()?.inverseConfig ?? {};
|
|
341
|
+
const chain = String(chainId);
|
|
342
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.dola);
|
|
343
|
+
};
|
|
344
|
+
var usddConfig = () => getGlobalData2()?.usddConfig;
|
|
345
|
+
var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
|
|
346
|
+
var usddMarkets = () => getGlobalData2()?.usddMarkets;
|
|
347
|
+
var usddChainData = (lender, chainId) => getGlobalData2()?.usddMarkets?.[lender]?.[String(chainId)];
|
|
348
|
+
var usddMarketByIlk = (lender, chainId, ilk) => usddChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
|
|
349
|
+
var usddLendersByChain = (chainId) => {
|
|
350
|
+
const cfg = getGlobalData2()?.usddConfig ?? {};
|
|
351
|
+
const chain = String(chainId);
|
|
352
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
353
|
+
};
|
|
316
354
|
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
317
355
|
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
318
356
|
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
@@ -412,9 +450,7 @@ function getSiloV2MarketEntry(chainId, lenderKey) {
|
|
|
412
450
|
if (!parsed) return void 0;
|
|
413
451
|
const list = getGlobalData2()?.siloMarkets?.[chainId];
|
|
414
452
|
if (!list) return void 0;
|
|
415
|
-
return list.find(
|
|
416
|
-
(m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
|
|
417
|
-
);
|
|
453
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
418
454
|
}
|
|
419
455
|
function siloV3LenderKey(siloConfig) {
|
|
420
456
|
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
@@ -432,15 +468,11 @@ function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
|
432
468
|
if (!parsed) return void 0;
|
|
433
469
|
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
434
470
|
if (!list) return void 0;
|
|
435
|
-
return list.find(
|
|
436
|
-
(m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
|
|
437
|
-
);
|
|
471
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
438
472
|
}
|
|
439
473
|
function gearboxV3LenderKey(creditManager) {
|
|
440
474
|
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
441
|
-
throw new Error(
|
|
442
|
-
`gearboxV3LenderKey: invalid creditManager address ${creditManager}`
|
|
443
|
-
);
|
|
475
|
+
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
444
476
|
}
|
|
445
477
|
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
446
478
|
}
|
|
@@ -449,6 +481,17 @@ function parseGearboxV3LenderKey(lenderKey) {
|
|
|
449
481
|
if (!match) return void 0;
|
|
450
482
|
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
451
483
|
}
|
|
484
|
+
function termMaxLenderKey(market) {
|
|
485
|
+
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
486
|
+
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
487
|
+
}
|
|
488
|
+
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
489
|
+
}
|
|
490
|
+
function parseTermMaxLenderKey(lenderKey) {
|
|
491
|
+
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
492
|
+
if (!match) return void 0;
|
|
493
|
+
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
494
|
+
}
|
|
452
495
|
|
|
453
496
|
// src/tokens.ts
|
|
454
497
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|
|
@@ -465,6 +508,21 @@ async function fetchTokenLists(chainIds) {
|
|
|
465
508
|
const results = await Promise.all(promises);
|
|
466
509
|
return Object.fromEntries(results);
|
|
467
510
|
}
|
|
511
|
+
async function fetchTokenListFile(chainId) {
|
|
512
|
+
const data = await fetch(getListUrl(chainId));
|
|
513
|
+
if (!data.ok) throw new Error(`HTTP error! status: ${data.status}`);
|
|
514
|
+
const json = await data.json();
|
|
515
|
+
return {
|
|
516
|
+
list: json.list,
|
|
517
|
+
mainTokens: json.mainTokens ?? []
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
var MAIN_TOKENS_URL = "https://raw.githubusercontent.com/1delta-DAO/token-lists/main/main-tokens.json";
|
|
521
|
+
async function fetchMainTokensMap() {
|
|
522
|
+
const data = await fetch(MAIN_TOKENS_URL);
|
|
523
|
+
if (!data.ok) return void 0;
|
|
524
|
+
return await data.json();
|
|
525
|
+
}
|
|
468
526
|
|
|
469
527
|
exports.GEARBOX_ACCOUNT_COMPRESSOR_V310 = GEARBOX_ACCOUNT_COMPRESSOR_V310;
|
|
470
528
|
exports.aaveOracles = aaveOracles;
|
|
@@ -501,7 +559,9 @@ exports.exactlyMarketByAddress = exactlyMarketByAddress;
|
|
|
501
559
|
exports.exactlyMarketByAsset = exactlyMarketByAsset;
|
|
502
560
|
exports.exactlyMarkets = exactlyMarkets;
|
|
503
561
|
exports.exactlyMarketsByChain = exactlyMarketsByChain;
|
|
562
|
+
exports.fetchMainTokensMap = fetchMainTokensMap;
|
|
504
563
|
exports.fetchTokenList = fetchTokenList;
|
|
564
|
+
exports.fetchTokenListFile = fetchTokenListFile;
|
|
505
565
|
exports.fetchTokenLists = fetchTokenLists;
|
|
506
566
|
exports.findAaveV4PositionManager = findAaveV4PositionManager;
|
|
507
567
|
exports.fluidChains = fluidChains;
|
|
@@ -526,6 +586,12 @@ exports.getSiloV3MarketEntry = getSiloV3MarketEntry;
|
|
|
526
586
|
exports.initConfig = initConfig;
|
|
527
587
|
exports.initializeChainData = initializeChainData;
|
|
528
588
|
exports.initializeLenderData = initializeLenderData;
|
|
589
|
+
exports.inverseChainData = inverseChainData;
|
|
590
|
+
exports.inverseConfig = inverseConfig;
|
|
591
|
+
exports.inverseConfigFor = inverseConfigFor;
|
|
592
|
+
exports.inverseLendersByChain = inverseLendersByChain;
|
|
593
|
+
exports.inverseMarketByAddress = inverseMarketByAddress;
|
|
594
|
+
exports.inverseMarkets = inverseMarkets;
|
|
529
595
|
exports.liquityBranchByIndex = liquityBranchByIndex;
|
|
530
596
|
exports.liquityBranchByTroveManager = liquityBranchByTroveManager;
|
|
531
597
|
exports.liquityBranchesByChain = liquityBranchesByChain;
|
|
@@ -549,6 +615,7 @@ exports.parseAaveV4SpokeLenderKey = parseAaveV4SpokeLenderKey;
|
|
|
549
615
|
exports.parseGearboxV3LenderKey = parseGearboxV3LenderKey;
|
|
550
616
|
exports.parseSiloV2LenderKey = parseSiloV2LenderKey;
|
|
551
617
|
exports.parseSiloV3LenderKey = parseSiloV3LenderKey;
|
|
618
|
+
exports.parseTermMaxLenderKey = parseTermMaxLenderKey;
|
|
552
619
|
exports.resolveMidnightApiBase = resolveMidnightApiBase;
|
|
553
620
|
exports.resolveTermApiBase = resolveTermApiBase;
|
|
554
621
|
exports.riverChainData = riverChainData;
|
|
@@ -575,3 +642,14 @@ exports.termConfig = termConfig;
|
|
|
575
642
|
exports.termMarketById = termMarketById;
|
|
576
643
|
exports.termMarkets = termMarkets;
|
|
577
644
|
exports.termMarketsByChain = termMarketsByChain;
|
|
645
|
+
exports.termMaxApiBaseUrl = termMaxApiBaseUrl;
|
|
646
|
+
exports.termMaxChainIds = termMaxChainIds;
|
|
647
|
+
exports.termMaxConfig = termMaxConfig;
|
|
648
|
+
exports.termMaxConfigByChain = termMaxConfigByChain;
|
|
649
|
+
exports.termMaxLenderKey = termMaxLenderKey;
|
|
650
|
+
exports.usddChainData = usddChainData;
|
|
651
|
+
exports.usddConfig = usddConfig;
|
|
652
|
+
exports.usddConfigFor = usddConfigFor;
|
|
653
|
+
exports.usddLendersByChain = usddLendersByChain;
|
|
654
|
+
exports.usddMarketByIlk = usddMarketByIlk;
|
|
655
|
+
exports.usddMarkets = usddMarkets;
|
package/dist/index.mjs
CHANGED
|
@@ -75,6 +75,11 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
75
75
|
liquityMarkets: {},
|
|
76
76
|
riverConfig: {},
|
|
77
77
|
riverMarkets: {},
|
|
78
|
+
inverseConfig: {},
|
|
79
|
+
termMaxConfig: {},
|
|
80
|
+
inverseMarkets: {},
|
|
81
|
+
usddConfig: {},
|
|
82
|
+
usddMarkets: {},
|
|
78
83
|
compoundV3Bulker: {},
|
|
79
84
|
eulerConfigs: {},
|
|
80
85
|
eulerVaults: {},
|
|
@@ -135,6 +140,11 @@ function initializeLenderData({
|
|
|
135
140
|
liquityMarketsOverride,
|
|
136
141
|
riverConfigOverride,
|
|
137
142
|
riverMarketsOverride,
|
|
143
|
+
inverseConfigOverride,
|
|
144
|
+
termMaxConfigOverride,
|
|
145
|
+
inverseMarketsOverride,
|
|
146
|
+
usddConfigOverride,
|
|
147
|
+
usddMarketsOverride,
|
|
138
148
|
compoundV3BulkerOverride,
|
|
139
149
|
eulerConfigsOverride,
|
|
140
150
|
eulerVaultsOverride,
|
|
@@ -188,6 +198,11 @@ function initializeLenderData({
|
|
|
188
198
|
if (liquityMarketsOverride) data.liquityMarkets = liquityMarketsOverride;
|
|
189
199
|
if (riverConfigOverride) data.riverConfig = riverConfigOverride;
|
|
190
200
|
if (riverMarketsOverride) data.riverMarkets = riverMarketsOverride;
|
|
201
|
+
if (inverseConfigOverride) data.inverseConfig = inverseConfigOverride;
|
|
202
|
+
if (termMaxConfigOverride) data.termMaxConfig = termMaxConfigOverride;
|
|
203
|
+
if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
|
|
204
|
+
if (usddConfigOverride) data.usddConfig = usddConfigOverride;
|
|
205
|
+
if (usddMarketsOverride) data.usddMarkets = usddMarketsOverride;
|
|
191
206
|
if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
|
|
192
207
|
if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
|
|
193
208
|
if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
|
|
@@ -195,13 +210,11 @@ function initializeLenderData({
|
|
|
195
210
|
if (dolomiteEmodeOverride) data.dolomiteEmode = dolomiteEmodeOverride;
|
|
196
211
|
if (aaveV4SpokesOverride) data.aaveV4Spokes = aaveV4SpokesOverride;
|
|
197
212
|
if (aaveV4OraclesOverride) data.aaveV4Oracles = aaveV4OraclesOverride;
|
|
198
|
-
if (aaveV4PeripheralsOverride)
|
|
199
|
-
data.aaveV4Peripherals = aaveV4PeripheralsOverride;
|
|
213
|
+
if (aaveV4PeripheralsOverride) data.aaveV4Peripherals = aaveV4PeripheralsOverride;
|
|
200
214
|
if (siloMarketsOverride) data.siloMarkets = siloMarketsOverride;
|
|
201
215
|
if (siloPeripheralsOverride) data.siloPeripherals = siloPeripheralsOverride;
|
|
202
216
|
if (siloMarketsV3Override) data.siloMarketsV3 = siloMarketsV3Override;
|
|
203
|
-
if (siloPeripheralsV3Override)
|
|
204
|
-
data.siloPeripheralsV3 = siloPeripheralsV3Override;
|
|
217
|
+
if (siloPeripheralsV3Override) data.siloPeripheralsV3 = siloPeripheralsV3Override;
|
|
205
218
|
if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
|
|
206
219
|
if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
|
|
207
220
|
if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
|
|
@@ -292,9 +305,7 @@ var liquityBranchesByChain = (lender, chainId) => getGlobalData2()?.liquityMarke
|
|
|
292
305
|
var liquityBranchByIndex = (lender, chainId, collIndex) => liquityBranchesByChain(lender, chainId).find((b) => b.collIndex === Number(collIndex));
|
|
293
306
|
var liquityBranchByTroveManager = (lender, chainId, troveManager) => {
|
|
294
307
|
const lower = troveManager.toLowerCase();
|
|
295
|
-
return liquityBranchesByChain(lender, chainId).find(
|
|
296
|
-
(b) => b.troveManager.toLowerCase() === lower
|
|
297
|
-
);
|
|
308
|
+
return liquityBranchesByChain(lender, chainId).find((b) => b.troveManager.toLowerCase() === lower);
|
|
298
309
|
};
|
|
299
310
|
var liquityLendersByChain = (chainId) => {
|
|
300
311
|
const cfg = getGlobalData2()?.liquityConfig ?? {};
|
|
@@ -305,12 +316,39 @@ var riverConfig = () => getGlobalData2()?.riverConfig;
|
|
|
305
316
|
var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
|
|
306
317
|
var riverMarkets = () => getGlobalData2()?.riverMarkets;
|
|
307
318
|
var riverChainData = (lender, chainId) => getGlobalData2()?.riverMarkets?.[lender]?.[String(chainId)];
|
|
319
|
+
var inverseConfig = () => getGlobalData2()?.inverseConfig;
|
|
320
|
+
var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
|
|
321
|
+
var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
|
|
322
|
+
var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
|
|
323
|
+
var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
|
|
324
|
+
var inverseConfigFor = (lender, chainId) => getGlobalData2()?.inverseConfig?.[lender]?.[String(chainId)];
|
|
325
|
+
var inverseMarkets = () => getGlobalData2()?.inverseMarkets;
|
|
326
|
+
var inverseChainData = (lender, chainId) => getGlobalData2()?.inverseMarkets?.[lender]?.[String(chainId)];
|
|
327
|
+
var inverseMarketByAddress = (lender, chainId, address) => {
|
|
328
|
+
const lower = address.toLowerCase();
|
|
329
|
+
return inverseChainData(lender, chainId)?.markets?.find((m) => m.address.toLowerCase() === lower);
|
|
330
|
+
};
|
|
308
331
|
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
309
332
|
var riverLendersByChain = (chainId) => {
|
|
310
333
|
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
311
334
|
const chain = String(chainId);
|
|
312
335
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
313
336
|
};
|
|
337
|
+
var inverseLendersByChain = (chainId) => {
|
|
338
|
+
const cfg = getGlobalData2()?.inverseConfig ?? {};
|
|
339
|
+
const chain = String(chainId);
|
|
340
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.dola);
|
|
341
|
+
};
|
|
342
|
+
var usddConfig = () => getGlobalData2()?.usddConfig;
|
|
343
|
+
var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
|
|
344
|
+
var usddMarkets = () => getGlobalData2()?.usddMarkets;
|
|
345
|
+
var usddChainData = (lender, chainId) => getGlobalData2()?.usddMarkets?.[lender]?.[String(chainId)];
|
|
346
|
+
var usddMarketByIlk = (lender, chainId, ilk) => usddChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
|
|
347
|
+
var usddLendersByChain = (chainId) => {
|
|
348
|
+
const cfg = getGlobalData2()?.usddConfig ?? {};
|
|
349
|
+
const chain = String(chainId);
|
|
350
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
351
|
+
};
|
|
314
352
|
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
315
353
|
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
316
354
|
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
@@ -410,9 +448,7 @@ function getSiloV2MarketEntry(chainId, lenderKey) {
|
|
|
410
448
|
if (!parsed) return void 0;
|
|
411
449
|
const list = getGlobalData2()?.siloMarkets?.[chainId];
|
|
412
450
|
if (!list) return void 0;
|
|
413
|
-
return list.find(
|
|
414
|
-
(m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
|
|
415
|
-
);
|
|
451
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
416
452
|
}
|
|
417
453
|
function siloV3LenderKey(siloConfig) {
|
|
418
454
|
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
@@ -430,15 +466,11 @@ function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
|
430
466
|
if (!parsed) return void 0;
|
|
431
467
|
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
432
468
|
if (!list) return void 0;
|
|
433
|
-
return list.find(
|
|
434
|
-
(m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower
|
|
435
|
-
);
|
|
469
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
436
470
|
}
|
|
437
471
|
function gearboxV3LenderKey(creditManager) {
|
|
438
472
|
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
439
|
-
throw new Error(
|
|
440
|
-
`gearboxV3LenderKey: invalid creditManager address ${creditManager}`
|
|
441
|
-
);
|
|
473
|
+
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
442
474
|
}
|
|
443
475
|
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
444
476
|
}
|
|
@@ -447,6 +479,17 @@ function parseGearboxV3LenderKey(lenderKey) {
|
|
|
447
479
|
if (!match) return void 0;
|
|
448
480
|
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
449
481
|
}
|
|
482
|
+
function termMaxLenderKey(market) {
|
|
483
|
+
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
484
|
+
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
485
|
+
}
|
|
486
|
+
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
487
|
+
}
|
|
488
|
+
function parseTermMaxLenderKey(lenderKey) {
|
|
489
|
+
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
490
|
+
if (!match) return void 0;
|
|
491
|
+
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
492
|
+
}
|
|
450
493
|
|
|
451
494
|
// src/tokens.ts
|
|
452
495
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|
|
@@ -463,5 +506,20 @@ async function fetchTokenLists(chainIds) {
|
|
|
463
506
|
const results = await Promise.all(promises);
|
|
464
507
|
return Object.fromEntries(results);
|
|
465
508
|
}
|
|
509
|
+
async function fetchTokenListFile(chainId) {
|
|
510
|
+
const data = await fetch(getListUrl(chainId));
|
|
511
|
+
if (!data.ok) throw new Error(`HTTP error! status: ${data.status}`);
|
|
512
|
+
const json = await data.json();
|
|
513
|
+
return {
|
|
514
|
+
list: json.list,
|
|
515
|
+
mainTokens: json.mainTokens ?? []
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
var MAIN_TOKENS_URL = "https://raw.githubusercontent.com/1delta-DAO/token-lists/main/main-tokens.json";
|
|
519
|
+
async function fetchMainTokensMap() {
|
|
520
|
+
const data = await fetch(MAIN_TOKENS_URL);
|
|
521
|
+
if (!data.ok) return void 0;
|
|
522
|
+
return await data.json();
|
|
523
|
+
}
|
|
466
524
|
|
|
467
|
-
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, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, 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, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaNativeProvider, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, resolveMidnightApiBase, resolveTermApiBase, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setTermApiBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain };
|
|
525
|
+
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, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaNativeProvider, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTermApiBase, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setTermApiBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
|
package/dist/lending.d.ts
CHANGED
|
@@ -457,6 +457,167 @@ export type RiverMarketsType = {
|
|
|
457
457
|
[chainId: string]: RiverChainData;
|
|
458
458
|
};
|
|
459
459
|
};
|
|
460
|
+
/** Per-chain FiRM deployment seed (hand-maintained). */
|
|
461
|
+
export type InverseConfigChain = {
|
|
462
|
+
/** DOLA — the only debt asset. */
|
|
463
|
+
dola: string;
|
|
464
|
+
/** DBR — the prepaid-interest token (deficit gates borrows AND withdrawals). */
|
|
465
|
+
dbr: string;
|
|
466
|
+
/** Pessimistic oracle (2-day-low `viewPrice`). */
|
|
467
|
+
oracle: string;
|
|
468
|
+
/** BorrowController v4 (contract-caller allowlist; EOAs bypass). */
|
|
469
|
+
borrowController: string;
|
|
470
|
+
/** Debt decimals (18). */
|
|
471
|
+
debtDecimals?: number;
|
|
472
|
+
/** Metadata snapshot of the DBR price in DOLA (= fixed borrow APR as a
|
|
473
|
+
* decimal) — FALLBACK ONLY when the live API/AMM read fails. */
|
|
474
|
+
dbrPriceDolaSnapshot?: string;
|
|
475
|
+
};
|
|
476
|
+
export type InverseConfigType = {
|
|
477
|
+
[lender: string]: {
|
|
478
|
+
[chainId: string]: InverseConfigChain;
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
/** Per-chain, protocol-level (evergreen) TermMax addresses. */
|
|
482
|
+
export type TermMaxConfigChain = {
|
|
483
|
+
/** TermMaxRouterV2 — the native atomic write surface (borrow, repay, …). */
|
|
484
|
+
routerV2: string;
|
|
485
|
+
/** OracleAggregatorV2 — `getPrice(asset) → (price, decimals)`; the feed LTV
|
|
486
|
+
* and liquidation are computed against. */
|
|
487
|
+
oracleAggregatorV2: string;
|
|
488
|
+
/** TermMaxViewer — batch position/order reads (the user-data multicall target). */
|
|
489
|
+
viewer: string;
|
|
490
|
+
/** WhitelistManager — gates which markets/adapters the ROUTER will touch.
|
|
491
|
+
* Does NOT gate the market/order/GT primitives (those are permissionless). */
|
|
492
|
+
whitelistManager?: string | null;
|
|
493
|
+
/** TermMaxSwapAdapter — the router swap adapter that executes ORDER swaps
|
|
494
|
+
* inside a `SwapPath`. Required to build `borrowTokenFromCollateral`; the
|
|
495
|
+
* order swaps themselves can be called directly without it. */
|
|
496
|
+
termMaxSwapAdapter?: string | null;
|
|
497
|
+
/** Market factories, newest last. Used for event-based discovery when the
|
|
498
|
+
* API is unavailable; not needed on the happy path. */
|
|
499
|
+
marketFactories?: string[] | null;
|
|
500
|
+
/** Legacy V1 router — retired, kept only so a stale key can be recognised
|
|
501
|
+
* and rejected rather than silently encoded against. */
|
|
502
|
+
routerV1?: string | null;
|
|
503
|
+
/** TermMax data API base, e.g. `https://api.termmax.ts.finance`. Overridable
|
|
504
|
+
* per chain so a self-hosted indexer can be swapped in. */
|
|
505
|
+
apiBaseUrl?: string | null;
|
|
506
|
+
};
|
|
507
|
+
export type TermMaxConfigType = {
|
|
508
|
+
[chainId: string]: TermMaxConfigChain;
|
|
509
|
+
};
|
|
510
|
+
/** One FiRM market (= one Market contract, one collateral). */
|
|
511
|
+
export type InverseMarketConfig = {
|
|
512
|
+
/** Market contract — also the per-market lender-key suffix (`INVERSE_<ADDR>`). */
|
|
513
|
+
address: string;
|
|
514
|
+
collToken: string;
|
|
515
|
+
collDecimals: number;
|
|
516
|
+
/** Escrow implementation the Market clones per user (CREATE2 predict). */
|
|
517
|
+
escrowImplementation: string;
|
|
518
|
+
/** Owner-mutable params, snapshotted each metadata refresh. */
|
|
519
|
+
collateralFactorBps: string;
|
|
520
|
+
liquidationIncentiveBps: string;
|
|
521
|
+
liquidationFactorBps: string;
|
|
522
|
+
/** Smaller borrows revert (DOLA units, human number as string). */
|
|
523
|
+
minDebt: string;
|
|
524
|
+
/** Per-market daily borrow cap (DOLA, human number as string). */
|
|
525
|
+
dailyLimit: string;
|
|
526
|
+
borrowPaused?: boolean;
|
|
527
|
+
name?: string;
|
|
528
|
+
};
|
|
529
|
+
/** Generated per-chain data: the curated Market list. */
|
|
530
|
+
export type InverseChainData = {
|
|
531
|
+
markets: InverseMarketConfig[];
|
|
532
|
+
};
|
|
533
|
+
export type InverseMarketsType = {
|
|
534
|
+
[lender: string]: {
|
|
535
|
+
[chainId: string]: InverseChainData;
|
|
536
|
+
};
|
|
537
|
+
};
|
|
538
|
+
/** One USDD PSM (1:1 stable swap module; NOT a lending market). */
|
|
539
|
+
export type UsddPsmConfig = {
|
|
540
|
+
ilk: string;
|
|
541
|
+
psm: string;
|
|
542
|
+
/** Approval target for `sellGem` (the PSM's own gem adapter). */
|
|
543
|
+
gemJoin: string;
|
|
544
|
+
gem: string;
|
|
545
|
+
gemSymbol?: string;
|
|
546
|
+
/** 6 on Ethereum (USDT/USDC), 18 on BNB (BSC-USDT). */
|
|
547
|
+
gemDecimals: number;
|
|
548
|
+
};
|
|
549
|
+
/** Per-chain USDD deployment seed (hand-maintained). */
|
|
550
|
+
export type UsddConfigChain = {
|
|
551
|
+
/** Core accounting engine — ilk params + urns live here. */
|
|
552
|
+
vat: string;
|
|
553
|
+
/** Stability-fee module (`ilks(ilk).duty`, per-second ray). */
|
|
554
|
+
jug: string;
|
|
555
|
+
/** Oracle liaison (`ilks(ilk)` → pip + mat). */
|
|
556
|
+
spot: string;
|
|
557
|
+
/** Liquidation module (clip, chop, hole per ilk). */
|
|
558
|
+
dog: string;
|
|
559
|
+
/** DssCdpManager — CDP ids, urn handles, `cdpAllow` grants. */
|
|
560
|
+
cdpManager: string;
|
|
561
|
+
/** DssProxyActions — the atomic one-shot target (via DSProxy.execute). */
|
|
562
|
+
proxyActions: string;
|
|
563
|
+
/** ProxyRegistry — `proxies(user)` / `build()` for the DSProxy route. */
|
|
564
|
+
proxyRegistry: string;
|
|
565
|
+
/** The debt token. */
|
|
566
|
+
usdd: string;
|
|
567
|
+
/** DaiJoin-equivalent for USDD enter/exit. */
|
|
568
|
+
usddJoin: string;
|
|
569
|
+
/** Debt decimals (18). */
|
|
570
|
+
debtDecimals?: number;
|
|
571
|
+
/** The savings Pot (sDAI-style; savings side lives in margin-fetcher's
|
|
572
|
+
* SAVINGS_REGISTRY, carried here for completeness). */
|
|
573
|
+
pot?: string;
|
|
574
|
+
susdd?: string;
|
|
575
|
+
/** 1:1 stable PSMs (swap modules — not lending markets). */
|
|
576
|
+
psms?: UsddPsmConfig[];
|
|
577
|
+
};
|
|
578
|
+
export type UsddConfigType = {
|
|
579
|
+
[lender: string]: {
|
|
580
|
+
[chainId: string]: UsddConfigChain;
|
|
581
|
+
};
|
|
582
|
+
};
|
|
583
|
+
/** One USDD market (= one collateral ilk). */
|
|
584
|
+
export type UsddMarketConfig = {
|
|
585
|
+
/** Ilk string (e.g. `WBTC-A`) — also the per-market key suffix
|
|
586
|
+
* (`USDD_<chainId>_<ILK>`). bytes32-encode via stringToHex(size 32). */
|
|
587
|
+
ilk: string;
|
|
588
|
+
/** Collateral adapter — approval target for deposits. */
|
|
589
|
+
gemJoin: string;
|
|
590
|
+
collToken: string;
|
|
591
|
+
collDecimals: number;
|
|
592
|
+
collSymbol?: string;
|
|
593
|
+
/** Price feed behind the Spot (OSM/Median). */
|
|
594
|
+
pip?: string;
|
|
595
|
+
/** Liquidation ratio, ray (Spot.mat). */
|
|
596
|
+
mat: string;
|
|
597
|
+
/** Per-second stability fee, ray (Jug.duty). */
|
|
598
|
+
duty: string;
|
|
599
|
+
/** Dutch-auction contract (Dog.clip). */
|
|
600
|
+
clip?: string;
|
|
601
|
+
/** Liquidation penalty, wad (Dog.chop; 1e18 = none). */
|
|
602
|
+
chop?: string;
|
|
603
|
+
/** Debt ceiling, rad (Vat.ilks.line). */
|
|
604
|
+
line: string;
|
|
605
|
+
/** Per-CDP debt floor, rad (Vat.ilks.dust). */
|
|
606
|
+
dust: string;
|
|
607
|
+
name?: string;
|
|
608
|
+
};
|
|
609
|
+
/** Generated per-chain data: verified ilk list + the cdpi trigger snapshot. */
|
|
610
|
+
export type UsddChainData = {
|
|
611
|
+
markets: UsddMarketConfig[];
|
|
612
|
+
/** `cdpManager.cdpi()` at generation time — the USDD_PLAN.md
|
|
613
|
+
* re-evaluation trigger (0 = no CDP ever opened on this chain). */
|
|
614
|
+
cdpi?: string;
|
|
615
|
+
};
|
|
616
|
+
export type UsddMarketsType = {
|
|
617
|
+
[lender: string]: {
|
|
618
|
+
[chainId: string]: UsddChainData;
|
|
619
|
+
};
|
|
620
|
+
};
|
|
460
621
|
type OracleMap = {
|
|
461
622
|
[lender: string]: {
|
|
462
623
|
[chainId: string]: string;
|
|
@@ -871,7 +1032,7 @@ export type AaveV4PeripheralsType = {
|
|
|
871
1032
|
[chainId: string]: AaveV4ChainPeripherals;
|
|
872
1033
|
};
|
|
873
1034
|
/** Override datas used in the SDK - works across all module instances */
|
|
874
|
-
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, termConfigOverride, termMarketsOverride, exactlyConfigOverride, exactlyMarketsOverride, tellerConfigOverride, tellerPoolsOverride, liquityConfigOverride, liquityMarketsOverride, riverConfigOverride, riverMarketsOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
|
|
1035
|
+
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, termConfigOverride, termMarketsOverride, exactlyConfigOverride, exactlyMarketsOverride, tellerConfigOverride, tellerPoolsOverride, liquityConfigOverride, liquityMarketsOverride, riverConfigOverride, riverMarketsOverride, inverseConfigOverride, termMaxConfigOverride, inverseMarketsOverride, usddConfigOverride, usddMarketsOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
|
|
875
1036
|
aaveTokensOverride?: AaveTokensType;
|
|
876
1037
|
aavePoolsOverride?: AavePoolsType;
|
|
877
1038
|
aaveOraclesOverride?: OracleMap;
|
|
@@ -908,6 +1069,11 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
|
|
|
908
1069
|
liquityMarketsOverride?: LiquityMarketsType;
|
|
909
1070
|
riverConfigOverride?: RiverConfigType;
|
|
910
1071
|
riverMarketsOverride?: RiverMarketsType;
|
|
1072
|
+
inverseConfigOverride?: InverseConfigType;
|
|
1073
|
+
termMaxConfigOverride?: TermMaxConfigType;
|
|
1074
|
+
inverseMarketsOverride?: InverseMarketsType;
|
|
1075
|
+
usddConfigOverride?: UsddConfigType;
|
|
1076
|
+
usddMarketsOverride?: UsddMarketsType;
|
|
911
1077
|
compoundV3BulkerOverride?: CompoundV3BulkerType;
|
|
912
1078
|
eulerConfigsOverride?: EulerConfigsType;
|
|
913
1079
|
eulerVaultsOverride?: EulerVaultsType;
|
|
@@ -1006,10 +1172,45 @@ export declare const riverConfigFor: (lender: string, chainId: string | number)
|
|
|
1006
1172
|
export declare const riverMarkets: () => RiverMarketsType;
|
|
1007
1173
|
/** Generated chain data (minNetDebt + TroveManager list; undefined if unloaded). */
|
|
1008
1174
|
export declare const riverChainData: (lender: string, chainId: string | number) => RiverChainData | undefined;
|
|
1175
|
+
export declare const inverseConfig: () => InverseConfigType;
|
|
1176
|
+
/** TermMax per-chain config map (undefined if unloaded). */
|
|
1177
|
+
export declare const termMaxConfig: () => TermMaxConfigType;
|
|
1178
|
+
/** TermMax deployment addresses for one chain (undefined if unloaded). */
|
|
1179
|
+
export declare const termMaxConfigByChain: (chainId: string | number) => TermMaxConfigChain | undefined;
|
|
1180
|
+
/** Chains with a TermMax deployment loaded. */
|
|
1181
|
+
export declare const termMaxChainIds: () => string[];
|
|
1182
|
+
/**
|
|
1183
|
+
* TermMax data API base for a chain. Read through the getter (not a module
|
|
1184
|
+
* constant) for the same reason as Midnight/Term: the per-request metadata
|
|
1185
|
+
* re-init rewrites `termMaxConfig`, so a captured value goes stale.
|
|
1186
|
+
*/
|
|
1187
|
+
export declare const termMaxApiBaseUrl: (chainId: string | number) => string;
|
|
1188
|
+
/** Deployment seed for one Inverse lender on a chain (undefined if unloaded). */
|
|
1189
|
+
export declare const inverseConfigFor: (lender: string, chainId: string | number) => InverseConfigChain | undefined;
|
|
1190
|
+
export declare const inverseMarkets: () => InverseMarketsType;
|
|
1191
|
+
/** Generated chain data (curated Market list; undefined if unloaded). */
|
|
1192
|
+
export declare const inverseChainData: (lender: string, chainId: string | number) => InverseChainData | undefined;
|
|
1193
|
+
/** Find one FiRM market by its Market contract address. */
|
|
1194
|
+
export declare const inverseMarketByAddress: (lender: string, chainId: string | number, address: string) => InverseMarketConfig | undefined;
|
|
1009
1195
|
/** Look up one River market by its factory index (the per-market key suffix). */
|
|
1010
1196
|
export declare const riverMarketByIndex: (lender: string, chainId: string | number, index: number | string) => RiverMarketConfig | undefined;
|
|
1011
1197
|
/** All River lender keys with config on a chain (drives getLendersForChain). */
|
|
1012
1198
|
export declare const riverLendersByChain: (chainId: string | number) => string[];
|
|
1199
|
+
/** All Inverse lender keys with config on a chain (drives getLendersForChain). */
|
|
1200
|
+
export declare const inverseLendersByChain: (chainId: string | number) => string[];
|
|
1201
|
+
export declare const usddConfig: () => UsddConfigType;
|
|
1202
|
+
/** Deployment seed for one USDD lender on a chain (undefined if unloaded). */
|
|
1203
|
+
export declare const usddConfigFor: (lender: string, chainId: string | number) => UsddConfigChain | undefined;
|
|
1204
|
+
export declare const usddMarkets: () => UsddMarketsType;
|
|
1205
|
+
/** Generated chain data (verified ilk list + cdpi snapshot; undefined if unloaded). */
|
|
1206
|
+
export declare const usddChainData: (lender: string, chainId: string | number) => UsddChainData | undefined;
|
|
1207
|
+
/** Look up one USDD market by its ilk string (the per-market key suffix). */
|
|
1208
|
+
export declare const usddMarketByIlk: (lender: string, chainId: string | number, ilk: string) => UsddMarketConfig | undefined;
|
|
1209
|
+
/** All USDD lender keys with config on a chain (drives getLendersForChain).
|
|
1210
|
+
* NB: config presence (`vat`) — not market presence — gates the fan-out, so
|
|
1211
|
+
* the (empty-roster) provider still runs and reports zero markets rather
|
|
1212
|
+
* than being invisible; the per-ilk keys only exist once metadata fills. */
|
|
1213
|
+
export declare const usddLendersByChain: (chainId: string | number) => string[];
|
|
1013
1214
|
export declare const compoundV3Bulker: () => CompoundV3BulkerType;
|
|
1014
1215
|
export declare const eulerConfigs: () => EulerConfigsType;
|
|
1015
1216
|
export declare const eulerVaults: () => EulerVaultsType;
|
|
@@ -1221,4 +1422,28 @@ export declare function gearboxV3LenderKey(creditManager: string): string;
|
|
|
1221
1422
|
export declare function parseGearboxV3LenderKey(lenderKey: string): {
|
|
1222
1423
|
creditManagerAddrLower: string;
|
|
1223
1424
|
} | undefined;
|
|
1425
|
+
/**
|
|
1426
|
+
* Synthesize the per-market lender key for a TermMax market.
|
|
1427
|
+
*
|
|
1428
|
+
* Mirrors `EXACTLY_<MARKET_ADDRESS_HEX>` / `TELLER_<POOL_ADDRESS_HEX>`. One key
|
|
1429
|
+
* per TermMax market, i.e. per (debtToken, collateral, maturity) tuple — the
|
|
1430
|
+
* maturity is baked into the market contract, so unlike Exactly there is NO
|
|
1431
|
+
* `terms[]` menu underneath a key.
|
|
1432
|
+
*
|
|
1433
|
+
* Format: `TERMMAX_${marketAddr.slice(2).toUpperCase()}`
|
|
1434
|
+
*
|
|
1435
|
+
* chainId is intentionally NOT in the token (chain scoping happens at the
|
|
1436
|
+
* marketUid level), matching every other per-market key in this file.
|
|
1437
|
+
*
|
|
1438
|
+
* `isTermMax()` works on this because it matches `startsWith('TERMMAX')`.
|
|
1439
|
+
*/
|
|
1440
|
+
export declare function termMaxLenderKey(market: string): string;
|
|
1441
|
+
/**
|
|
1442
|
+
* Inverse of `termMaxLenderKey`: given a per-market lender key, return
|
|
1443
|
+
* `{ marketAddrLower }`. Returns `undefined` if the key isn't a per-market
|
|
1444
|
+
* TermMax key (e.g. someone passed the bare prefix `TERMMAX`).
|
|
1445
|
+
*/
|
|
1446
|
+
export declare function parseTermMaxLenderKey(lenderKey: string): {
|
|
1447
|
+
marketAddrLower: string;
|
|
1448
|
+
} | undefined;
|
|
1224
1449
|
export {};
|
package/dist/tokens.d.ts
CHANGED
|
@@ -17,4 +17,24 @@ export declare function fetchTokenList(chainId: string): Promise<TokenList>;
|
|
|
17
17
|
export declare function fetchTokenLists(chainIds: string[]): Promise<{
|
|
18
18
|
[chainId: string]: TokenList;
|
|
19
19
|
}>;
|
|
20
|
+
export interface TokenListFileData {
|
|
21
|
+
list: TokenList;
|
|
22
|
+
/**
|
|
23
|
+
* Curated "main" token addresses (lowercase, native = zero address first).
|
|
24
|
+
* The full lists can hold tens of thousands of entries — mainTokens is the
|
|
25
|
+
* small subset intended for balance scans and default UI selections.
|
|
26
|
+
*/
|
|
27
|
+
mainTokens: string[];
|
|
28
|
+
}
|
|
29
|
+
/** Like {@link fetchTokenList} but keeps the `mainTokens` curation. */
|
|
30
|
+
export declare function fetchTokenListFile(chainId: string): Promise<TokenListFileData>;
|
|
31
|
+
/**
|
|
32
|
+
* Aggregated chainId → mainTokens map (one small file for all chains, so
|
|
33
|
+
* multi-chain consumers avoid downloading N full lists). Returns undefined
|
|
34
|
+
* while the file is not yet published — callers fall back to
|
|
35
|
+
* {@link fetchTokenListFile} per chain.
|
|
36
|
+
*/
|
|
37
|
+
export declare function fetchMainTokensMap(): Promise<{
|
|
38
|
+
[chainId: string]: string[];
|
|
39
|
+
} | undefined>;
|
|
20
40
|
export {};
|