@1delta/data-sdk 0.0.35 → 0.0.36
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 +66 -0
- package/dist/index.mjs +53 -1
- package/dist/lending.d.ts +128 -1
- package/dist/tokens.d.ts +20 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -77,6 +77,9 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
77
77
|
liquityMarkets: {},
|
|
78
78
|
riverConfig: {},
|
|
79
79
|
riverMarkets: {},
|
|
80
|
+
inverseConfig: {},
|
|
81
|
+
termMaxConfig: {},
|
|
82
|
+
inverseMarkets: {},
|
|
80
83
|
compoundV3Bulker: {},
|
|
81
84
|
eulerConfigs: {},
|
|
82
85
|
eulerVaults: {},
|
|
@@ -137,6 +140,9 @@ function initializeLenderData({
|
|
|
137
140
|
liquityMarketsOverride,
|
|
138
141
|
riverConfigOverride,
|
|
139
142
|
riverMarketsOverride,
|
|
143
|
+
inverseConfigOverride,
|
|
144
|
+
termMaxConfigOverride,
|
|
145
|
+
inverseMarketsOverride,
|
|
140
146
|
compoundV3BulkerOverride,
|
|
141
147
|
eulerConfigsOverride,
|
|
142
148
|
eulerVaultsOverride,
|
|
@@ -190,6 +196,9 @@ function initializeLenderData({
|
|
|
190
196
|
if (liquityMarketsOverride) data.liquityMarkets = liquityMarketsOverride;
|
|
191
197
|
if (riverConfigOverride) data.riverConfig = riverConfigOverride;
|
|
192
198
|
if (riverMarketsOverride) data.riverMarkets = riverMarketsOverride;
|
|
199
|
+
if (inverseConfigOverride) data.inverseConfig = inverseConfigOverride;
|
|
200
|
+
if (termMaxConfigOverride) data.termMaxConfig = termMaxConfigOverride;
|
|
201
|
+
if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
|
|
193
202
|
if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
|
|
194
203
|
if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
|
|
195
204
|
if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
|
|
@@ -307,12 +316,29 @@ var riverConfig = () => getGlobalData2()?.riverConfig;
|
|
|
307
316
|
var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
|
|
308
317
|
var riverMarkets = () => getGlobalData2()?.riverMarkets;
|
|
309
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
|
+
};
|
|
310
331
|
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
311
332
|
var riverLendersByChain = (chainId) => {
|
|
312
333
|
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
313
334
|
const chain = String(chainId);
|
|
314
335
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
315
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
|
+
};
|
|
316
342
|
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
317
343
|
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
318
344
|
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
@@ -449,6 +475,17 @@ function parseGearboxV3LenderKey(lenderKey) {
|
|
|
449
475
|
if (!match) return void 0;
|
|
450
476
|
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
451
477
|
}
|
|
478
|
+
function termMaxLenderKey(market) {
|
|
479
|
+
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
480
|
+
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
481
|
+
}
|
|
482
|
+
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
483
|
+
}
|
|
484
|
+
function parseTermMaxLenderKey(lenderKey) {
|
|
485
|
+
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
486
|
+
if (!match) return void 0;
|
|
487
|
+
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
488
|
+
}
|
|
452
489
|
|
|
453
490
|
// src/tokens.ts
|
|
454
491
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|
|
@@ -465,6 +502,21 @@ async function fetchTokenLists(chainIds) {
|
|
|
465
502
|
const results = await Promise.all(promises);
|
|
466
503
|
return Object.fromEntries(results);
|
|
467
504
|
}
|
|
505
|
+
async function fetchTokenListFile(chainId) {
|
|
506
|
+
const data = await fetch(getListUrl(chainId));
|
|
507
|
+
if (!data.ok) throw new Error(`HTTP error! status: ${data.status}`);
|
|
508
|
+
const json = await data.json();
|
|
509
|
+
return {
|
|
510
|
+
list: json.list,
|
|
511
|
+
mainTokens: json.mainTokens ?? []
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
var MAIN_TOKENS_URL = "https://raw.githubusercontent.com/1delta-DAO/token-lists/main/main-tokens.json";
|
|
515
|
+
async function fetchMainTokensMap() {
|
|
516
|
+
const data = await fetch(MAIN_TOKENS_URL);
|
|
517
|
+
if (!data.ok) return void 0;
|
|
518
|
+
return await data.json();
|
|
519
|
+
}
|
|
468
520
|
|
|
469
521
|
exports.GEARBOX_ACCOUNT_COMPRESSOR_V310 = GEARBOX_ACCOUNT_COMPRESSOR_V310;
|
|
470
522
|
exports.aaveOracles = aaveOracles;
|
|
@@ -501,7 +553,9 @@ exports.exactlyMarketByAddress = exactlyMarketByAddress;
|
|
|
501
553
|
exports.exactlyMarketByAsset = exactlyMarketByAsset;
|
|
502
554
|
exports.exactlyMarkets = exactlyMarkets;
|
|
503
555
|
exports.exactlyMarketsByChain = exactlyMarketsByChain;
|
|
556
|
+
exports.fetchMainTokensMap = fetchMainTokensMap;
|
|
504
557
|
exports.fetchTokenList = fetchTokenList;
|
|
558
|
+
exports.fetchTokenListFile = fetchTokenListFile;
|
|
505
559
|
exports.fetchTokenLists = fetchTokenLists;
|
|
506
560
|
exports.findAaveV4PositionManager = findAaveV4PositionManager;
|
|
507
561
|
exports.fluidChains = fluidChains;
|
|
@@ -526,6 +580,12 @@ exports.getSiloV3MarketEntry = getSiloV3MarketEntry;
|
|
|
526
580
|
exports.initConfig = initConfig;
|
|
527
581
|
exports.initializeChainData = initializeChainData;
|
|
528
582
|
exports.initializeLenderData = initializeLenderData;
|
|
583
|
+
exports.inverseChainData = inverseChainData;
|
|
584
|
+
exports.inverseConfig = inverseConfig;
|
|
585
|
+
exports.inverseConfigFor = inverseConfigFor;
|
|
586
|
+
exports.inverseLendersByChain = inverseLendersByChain;
|
|
587
|
+
exports.inverseMarketByAddress = inverseMarketByAddress;
|
|
588
|
+
exports.inverseMarkets = inverseMarkets;
|
|
529
589
|
exports.liquityBranchByIndex = liquityBranchByIndex;
|
|
530
590
|
exports.liquityBranchByTroveManager = liquityBranchByTroveManager;
|
|
531
591
|
exports.liquityBranchesByChain = liquityBranchesByChain;
|
|
@@ -549,6 +609,7 @@ exports.parseAaveV4SpokeLenderKey = parseAaveV4SpokeLenderKey;
|
|
|
549
609
|
exports.parseGearboxV3LenderKey = parseGearboxV3LenderKey;
|
|
550
610
|
exports.parseSiloV2LenderKey = parseSiloV2LenderKey;
|
|
551
611
|
exports.parseSiloV3LenderKey = parseSiloV3LenderKey;
|
|
612
|
+
exports.parseTermMaxLenderKey = parseTermMaxLenderKey;
|
|
552
613
|
exports.resolveMidnightApiBase = resolveMidnightApiBase;
|
|
553
614
|
exports.resolveTermApiBase = resolveTermApiBase;
|
|
554
615
|
exports.riverChainData = riverChainData;
|
|
@@ -575,3 +636,8 @@ exports.termConfig = termConfig;
|
|
|
575
636
|
exports.termMarketById = termMarketById;
|
|
576
637
|
exports.termMarkets = termMarkets;
|
|
577
638
|
exports.termMarketsByChain = termMarketsByChain;
|
|
639
|
+
exports.termMaxApiBaseUrl = termMaxApiBaseUrl;
|
|
640
|
+
exports.termMaxChainIds = termMaxChainIds;
|
|
641
|
+
exports.termMaxConfig = termMaxConfig;
|
|
642
|
+
exports.termMaxConfigByChain = termMaxConfigByChain;
|
|
643
|
+
exports.termMaxLenderKey = termMaxLenderKey;
|
package/dist/index.mjs
CHANGED
|
@@ -75,6 +75,9 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
75
75
|
liquityMarkets: {},
|
|
76
76
|
riverConfig: {},
|
|
77
77
|
riverMarkets: {},
|
|
78
|
+
inverseConfig: {},
|
|
79
|
+
termMaxConfig: {},
|
|
80
|
+
inverseMarkets: {},
|
|
78
81
|
compoundV3Bulker: {},
|
|
79
82
|
eulerConfigs: {},
|
|
80
83
|
eulerVaults: {},
|
|
@@ -135,6 +138,9 @@ function initializeLenderData({
|
|
|
135
138
|
liquityMarketsOverride,
|
|
136
139
|
riverConfigOverride,
|
|
137
140
|
riverMarketsOverride,
|
|
141
|
+
inverseConfigOverride,
|
|
142
|
+
termMaxConfigOverride,
|
|
143
|
+
inverseMarketsOverride,
|
|
138
144
|
compoundV3BulkerOverride,
|
|
139
145
|
eulerConfigsOverride,
|
|
140
146
|
eulerVaultsOverride,
|
|
@@ -188,6 +194,9 @@ function initializeLenderData({
|
|
|
188
194
|
if (liquityMarketsOverride) data.liquityMarkets = liquityMarketsOverride;
|
|
189
195
|
if (riverConfigOverride) data.riverConfig = riverConfigOverride;
|
|
190
196
|
if (riverMarketsOverride) data.riverMarkets = riverMarketsOverride;
|
|
197
|
+
if (inverseConfigOverride) data.inverseConfig = inverseConfigOverride;
|
|
198
|
+
if (termMaxConfigOverride) data.termMaxConfig = termMaxConfigOverride;
|
|
199
|
+
if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
|
|
191
200
|
if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
|
|
192
201
|
if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
|
|
193
202
|
if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
|
|
@@ -305,12 +314,29 @@ var riverConfig = () => getGlobalData2()?.riverConfig;
|
|
|
305
314
|
var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
|
|
306
315
|
var riverMarkets = () => getGlobalData2()?.riverMarkets;
|
|
307
316
|
var riverChainData = (lender, chainId) => getGlobalData2()?.riverMarkets?.[lender]?.[String(chainId)];
|
|
317
|
+
var inverseConfig = () => getGlobalData2()?.inverseConfig;
|
|
318
|
+
var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
|
|
319
|
+
var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
|
|
320
|
+
var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
|
|
321
|
+
var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
|
|
322
|
+
var inverseConfigFor = (lender, chainId) => getGlobalData2()?.inverseConfig?.[lender]?.[String(chainId)];
|
|
323
|
+
var inverseMarkets = () => getGlobalData2()?.inverseMarkets;
|
|
324
|
+
var inverseChainData = (lender, chainId) => getGlobalData2()?.inverseMarkets?.[lender]?.[String(chainId)];
|
|
325
|
+
var inverseMarketByAddress = (lender, chainId, address) => {
|
|
326
|
+
const lower = address.toLowerCase();
|
|
327
|
+
return inverseChainData(lender, chainId)?.markets?.find((m) => m.address.toLowerCase() === lower);
|
|
328
|
+
};
|
|
308
329
|
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
309
330
|
var riverLendersByChain = (chainId) => {
|
|
310
331
|
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
311
332
|
const chain = String(chainId);
|
|
312
333
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
313
334
|
};
|
|
335
|
+
var inverseLendersByChain = (chainId) => {
|
|
336
|
+
const cfg = getGlobalData2()?.inverseConfig ?? {};
|
|
337
|
+
const chain = String(chainId);
|
|
338
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.dola);
|
|
339
|
+
};
|
|
314
340
|
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
315
341
|
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
316
342
|
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
@@ -447,6 +473,17 @@ function parseGearboxV3LenderKey(lenderKey) {
|
|
|
447
473
|
if (!match) return void 0;
|
|
448
474
|
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
449
475
|
}
|
|
476
|
+
function termMaxLenderKey(market) {
|
|
477
|
+
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
478
|
+
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
479
|
+
}
|
|
480
|
+
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
481
|
+
}
|
|
482
|
+
function parseTermMaxLenderKey(lenderKey) {
|
|
483
|
+
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
484
|
+
if (!match) return void 0;
|
|
485
|
+
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
486
|
+
}
|
|
450
487
|
|
|
451
488
|
// src/tokens.ts
|
|
452
489
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|
|
@@ -463,5 +500,20 @@ async function fetchTokenLists(chainIds) {
|
|
|
463
500
|
const results = await Promise.all(promises);
|
|
464
501
|
return Object.fromEntries(results);
|
|
465
502
|
}
|
|
503
|
+
async function fetchTokenListFile(chainId) {
|
|
504
|
+
const data = await fetch(getListUrl(chainId));
|
|
505
|
+
if (!data.ok) throw new Error(`HTTP error! status: ${data.status}`);
|
|
506
|
+
const json = await data.json();
|
|
507
|
+
return {
|
|
508
|
+
list: json.list,
|
|
509
|
+
mainTokens: json.mainTokens ?? []
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
var MAIN_TOKENS_URL = "https://raw.githubusercontent.com/1delta-DAO/token-lists/main/main-tokens.json";
|
|
513
|
+
async function fetchMainTokensMap() {
|
|
514
|
+
const data = await fetch(MAIN_TOKENS_URL);
|
|
515
|
+
if (!data.ok) return void 0;
|
|
516
|
+
return await data.json();
|
|
517
|
+
}
|
|
466
518
|
|
|
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 };
|
|
519
|
+
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 };
|
package/dist/lending.d.ts
CHANGED
|
@@ -457,6 +457,84 @@ 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
|
+
};
|
|
460
538
|
type OracleMap = {
|
|
461
539
|
[lender: string]: {
|
|
462
540
|
[chainId: string]: string;
|
|
@@ -871,7 +949,7 @@ export type AaveV4PeripheralsType = {
|
|
|
871
949
|
[chainId: string]: AaveV4ChainPeripherals;
|
|
872
950
|
};
|
|
873
951
|
/** 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, }: {
|
|
952
|
+
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, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
|
|
875
953
|
aaveTokensOverride?: AaveTokensType;
|
|
876
954
|
aavePoolsOverride?: AavePoolsType;
|
|
877
955
|
aaveOraclesOverride?: OracleMap;
|
|
@@ -908,6 +986,9 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
|
|
|
908
986
|
liquityMarketsOverride?: LiquityMarketsType;
|
|
909
987
|
riverConfigOverride?: RiverConfigType;
|
|
910
988
|
riverMarketsOverride?: RiverMarketsType;
|
|
989
|
+
inverseConfigOverride?: InverseConfigType;
|
|
990
|
+
termMaxConfigOverride?: TermMaxConfigType;
|
|
991
|
+
inverseMarketsOverride?: InverseMarketsType;
|
|
911
992
|
compoundV3BulkerOverride?: CompoundV3BulkerType;
|
|
912
993
|
eulerConfigsOverride?: EulerConfigsType;
|
|
913
994
|
eulerVaultsOverride?: EulerVaultsType;
|
|
@@ -1006,10 +1087,32 @@ export declare const riverConfigFor: (lender: string, chainId: string | number)
|
|
|
1006
1087
|
export declare const riverMarkets: () => RiverMarketsType;
|
|
1007
1088
|
/** Generated chain data (minNetDebt + TroveManager list; undefined if unloaded). */
|
|
1008
1089
|
export declare const riverChainData: (lender: string, chainId: string | number) => RiverChainData | undefined;
|
|
1090
|
+
export declare const inverseConfig: () => InverseConfigType;
|
|
1091
|
+
/** TermMax per-chain config map (undefined if unloaded). */
|
|
1092
|
+
export declare const termMaxConfig: () => TermMaxConfigType;
|
|
1093
|
+
/** TermMax deployment addresses for one chain (undefined if unloaded). */
|
|
1094
|
+
export declare const termMaxConfigByChain: (chainId: string | number) => TermMaxConfigChain | undefined;
|
|
1095
|
+
/** Chains with a TermMax deployment loaded. */
|
|
1096
|
+
export declare const termMaxChainIds: () => string[];
|
|
1097
|
+
/**
|
|
1098
|
+
* TermMax data API base for a chain. Read through the getter (not a module
|
|
1099
|
+
* constant) for the same reason as Midnight/Term: the per-request metadata
|
|
1100
|
+
* re-init rewrites `termMaxConfig`, so a captured value goes stale.
|
|
1101
|
+
*/
|
|
1102
|
+
export declare const termMaxApiBaseUrl: (chainId: string | number) => string;
|
|
1103
|
+
/** Deployment seed for one Inverse lender on a chain (undefined if unloaded). */
|
|
1104
|
+
export declare const inverseConfigFor: (lender: string, chainId: string | number) => InverseConfigChain | undefined;
|
|
1105
|
+
export declare const inverseMarkets: () => InverseMarketsType;
|
|
1106
|
+
/** Generated chain data (curated Market list; undefined if unloaded). */
|
|
1107
|
+
export declare const inverseChainData: (lender: string, chainId: string | number) => InverseChainData | undefined;
|
|
1108
|
+
/** Find one FiRM market by its Market contract address. */
|
|
1109
|
+
export declare const inverseMarketByAddress: (lender: string, chainId: string | number, address: string) => InverseMarketConfig | undefined;
|
|
1009
1110
|
/** Look up one River market by its factory index (the per-market key suffix). */
|
|
1010
1111
|
export declare const riverMarketByIndex: (lender: string, chainId: string | number, index: number | string) => RiverMarketConfig | undefined;
|
|
1011
1112
|
/** All River lender keys with config on a chain (drives getLendersForChain). */
|
|
1012
1113
|
export declare const riverLendersByChain: (chainId: string | number) => string[];
|
|
1114
|
+
/** All Inverse lender keys with config on a chain (drives getLendersForChain). */
|
|
1115
|
+
export declare const inverseLendersByChain: (chainId: string | number) => string[];
|
|
1013
1116
|
export declare const compoundV3Bulker: () => CompoundV3BulkerType;
|
|
1014
1117
|
export declare const eulerConfigs: () => EulerConfigsType;
|
|
1015
1118
|
export declare const eulerVaults: () => EulerVaultsType;
|
|
@@ -1221,4 +1324,28 @@ export declare function gearboxV3LenderKey(creditManager: string): string;
|
|
|
1221
1324
|
export declare function parseGearboxV3LenderKey(lenderKey: string): {
|
|
1222
1325
|
creditManagerAddrLower: string;
|
|
1223
1326
|
} | undefined;
|
|
1327
|
+
/**
|
|
1328
|
+
* Synthesize the per-market lender key for a TermMax market.
|
|
1329
|
+
*
|
|
1330
|
+
* Mirrors `EXACTLY_<MARKET_ADDRESS_HEX>` / `TELLER_<POOL_ADDRESS_HEX>`. One key
|
|
1331
|
+
* per TermMax market, i.e. per (debtToken, collateral, maturity) tuple — the
|
|
1332
|
+
* maturity is baked into the market contract, so unlike Exactly there is NO
|
|
1333
|
+
* `terms[]` menu underneath a key.
|
|
1334
|
+
*
|
|
1335
|
+
* Format: `TERMMAX_${marketAddr.slice(2).toUpperCase()}`
|
|
1336
|
+
*
|
|
1337
|
+
* chainId is intentionally NOT in the token (chain scoping happens at the
|
|
1338
|
+
* marketUid level), matching every other per-market key in this file.
|
|
1339
|
+
*
|
|
1340
|
+
* `isTermMax()` works on this because it matches `startsWith('TERMMAX')`.
|
|
1341
|
+
*/
|
|
1342
|
+
export declare function termMaxLenderKey(market: string): string;
|
|
1343
|
+
/**
|
|
1344
|
+
* Inverse of `termMaxLenderKey`: given a per-market lender key, return
|
|
1345
|
+
* `{ marketAddrLower }`. Returns `undefined` if the key isn't a per-market
|
|
1346
|
+
* TermMax key (e.g. someone passed the bare prefix `TERMMAX`).
|
|
1347
|
+
*/
|
|
1348
|
+
export declare function parseTermMaxLenderKey(lenderKey: string): {
|
|
1349
|
+
marketAddrLower: string;
|
|
1350
|
+
} | undefined;
|
|
1224
1351
|
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 {};
|