@1delta/data-sdk 0.0.54 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -298,6 +298,7 @@ function parseGearboxV3LenderKey(lenderKey) {
298
298
 
299
299
  // src/lending/dolomite.ts
300
300
  var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
301
+ var dolomiteOdosExecutorShim = (chainId) => getGlobalData2()?.dolomiteConfigs?.[chainId]?.odosExecutor;
301
302
  var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
302
303
  var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
303
304
  var dolomiteMarketIdByToken = (chainId, token) => {
@@ -410,6 +411,20 @@ var midnightNotEnterableReason = (market, nowSec = Math.floor(Date.now() / 1e3))
410
411
  return "market gating could not be resolved";
411
412
  }
412
413
  };
414
+ var MIDNIGHT_COLLATERAL_MARK = "-c";
415
+ var midnightCollateralRef = (token, collateralIndex) => `${token.toLowerCase()}${MIDNIGHT_COLLATERAL_MARK}${collateralIndex}`;
416
+ var midnightLoanRef = (loanToken) => loanToken.toLowerCase();
417
+ var parseMidnightRef = (ref) => {
418
+ const at = ref.lastIndexOf(MIDNIGHT_COLLATERAL_MARK);
419
+ if (at > 0) {
420
+ const tail = ref.slice(at + MIDNIGHT_COLLATERAL_MARK.length);
421
+ if (/^\d+$/.test(tail)) {
422
+ return { token: ref.slice(0, at).toLowerCase(), collateralIndex: Number(tail) };
423
+ }
424
+ }
425
+ return { token: ref.toLowerCase(), collateralIndex: void 0 };
426
+ };
427
+ var isMidnightCollateralRef = (ref) => parseMidnightRef(ref).collateralIndex !== void 0;
413
428
 
414
429
  // src/lending/term.ts
415
430
  var termConfig = () => getGlobalData2()?.termConfig;
@@ -1242,6 +1257,7 @@ exports.dolomiteChains = dolomiteChains;
1242
1257
  exports.dolomiteConfigs = dolomiteConfigs;
1243
1258
  exports.dolomiteEmode = dolomiteEmode;
1244
1259
  exports.dolomiteMarketIdByToken = dolomiteMarketIdByToken;
1260
+ exports.dolomiteOdosExecutorShim = dolomiteOdosExecutorShim;
1245
1261
  exports.dssChainData = dssChainData;
1246
1262
  exports.dssConfigFor = dssConfigFor;
1247
1263
  exports.dssDebtJoin = dssDebtJoin;
@@ -1307,6 +1323,7 @@ exports.inverseMarketByAddress = inverseMarketByAddress;
1307
1323
  exports.inverseMarkets = inverseMarkets;
1308
1324
  exports.isAaveV4OperationRestricted = isAaveV4OperationRestricted;
1309
1325
  exports.isListaSmartLpAsset = isListaSmartLpAsset;
1326
+ exports.isMidnightCollateralRef = isMidnightCollateralRef;
1310
1327
  exports.liquityBranchByIndex = liquityBranchByIndex;
1311
1328
  exports.liquityBranchByTroveManager = liquityBranchByTroveManager;
1312
1329
  exports.liquityBranchesByChain = liquityBranchesByChain;
@@ -1333,7 +1350,9 @@ exports.llamaLendSupportsLeverage = llamaLendSupportsLeverage;
1333
1350
  exports.loadCached = loadCached;
1334
1351
  exports.loadCachedJson = loadCachedJson;
1335
1352
  exports.midnightApiBaseOverride = midnightApiBaseOverride;
1353
+ exports.midnightCollateralRef = midnightCollateralRef;
1336
1354
  exports.midnightConfig = midnightConfig;
1355
+ exports.midnightLoanRef = midnightLoanRef;
1337
1356
  exports.midnightMarketById = midnightMarketById;
1338
1357
  exports.midnightMarketIsEnterable = midnightMarketIsEnterable;
1339
1358
  exports.midnightMarkets = midnightMarkets;
@@ -1349,6 +1368,7 @@ exports.parseAaveV4SpokeLenderKey = parseAaveV4SpokeLenderKey;
1349
1368
  exports.parseFraxlendPairKey = parseFraxlendPairKey;
1350
1369
  exports.parseGearboxV3LenderKey = parseGearboxV3LenderKey;
1351
1370
  exports.parseLlamaLendLenderKey = parseLlamaLendLenderKey;
1371
+ exports.parseMidnightRef = parseMidnightRef;
1352
1372
  exports.parseSiloV2LenderKey = parseSiloV2LenderKey;
1353
1373
  exports.parseSiloV3LenderKey = parseSiloV3LenderKey;
1354
1374
  exports.parseTermMaxLenderKey = parseTermMaxLenderKey;
package/dist/index.mjs CHANGED
@@ -296,6 +296,7 @@ function parseGearboxV3LenderKey(lenderKey) {
296
296
 
297
297
  // src/lending/dolomite.ts
298
298
  var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
299
+ var dolomiteOdosExecutorShim = (chainId) => getGlobalData2()?.dolomiteConfigs?.[chainId]?.odosExecutor;
299
300
  var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
300
301
  var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
301
302
  var dolomiteMarketIdByToken = (chainId, token) => {
@@ -408,6 +409,20 @@ var midnightNotEnterableReason = (market, nowSec = Math.floor(Date.now() / 1e3))
408
409
  return "market gating could not be resolved";
409
410
  }
410
411
  };
412
+ var MIDNIGHT_COLLATERAL_MARK = "-c";
413
+ var midnightCollateralRef = (token, collateralIndex) => `${token.toLowerCase()}${MIDNIGHT_COLLATERAL_MARK}${collateralIndex}`;
414
+ var midnightLoanRef = (loanToken) => loanToken.toLowerCase();
415
+ var parseMidnightRef = (ref) => {
416
+ const at = ref.lastIndexOf(MIDNIGHT_COLLATERAL_MARK);
417
+ if (at > 0) {
418
+ const tail = ref.slice(at + MIDNIGHT_COLLATERAL_MARK.length);
419
+ if (/^\d+$/.test(tail)) {
420
+ return { token: ref.slice(0, at).toLowerCase(), collateralIndex: Number(tail) };
421
+ }
422
+ }
423
+ return { token: ref.toLowerCase(), collateralIndex: void 0 };
424
+ };
425
+ var isMidnightCollateralRef = (ref) => parseMidnightRef(ref).collateralIndex !== void 0;
411
426
 
412
427
  // src/lending/term.ts
413
428
  var termConfig = () => getGlobalData2()?.termConfig;
@@ -1196,4 +1211,4 @@ async function fetchMainTokensMap() {
1196
1211
  }
1197
1212
  }
1198
1213
 
1199
- export { COOLER_ETHEREUM_CONFIG, CURVANCE_MONAD_CONFIG, FRAXLEND_ETHEREUM_CONFIG, GEARBOX_ACCOUNT_COMPRESSOR_V310, REMOTE_CACHE_STORE_TTL_S, RESUPPLY_ETHEREUM_CONFIG, RemoteFetchError, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, assertTwyneKeysUnique, chainLogoURI, chains, clearRemoteCache, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, coolerConfig, coolerConfigFor, coolerLendersByChain, curvanceConfig, curvanceConfigFor, curvanceLendersByChain, curvancePositionManager, curvancePositionManagersFor, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, dssChainData, dssConfigFor, dssDebtJoin, dssDebtToken, dssMarketByIlk, eulerConfigs, eulerVaults, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchRemoteJson, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, flyingTulipAssets, flyingTulipAssetsFor, flyingTulipConfig, flyingTulipConfigFor, flyingTulipLendersByChain, frankencoinChainData, frankencoinConfig, frankencoinConfigFor, frankencoinLendersByChain, frankencoinMarketByPosition, frankencoinMarkets, fraxlendConfig, fraxlendConfigFor, fraxlendLendersByChain, fraxlendPairKey, fraxlendPairsFor, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeAccess, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, isAaveV4OperationRestricted, isListaSmartLpAsset, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaCollateralProvider, listaCollateralProviders, listaNativeProvider, listaSmartLpByCollateral, llamaLendApiBaseUrl, llamaLendChainData, llamaLendConfig, llamaLendConfigFor, llamaLendLenderKey, llamaLendLendersByChain, llamaLendLeverageZap, llamaLendMarketByController, llamaLendMarketByVault, llamaLendMarkets, llamaLendSupportsDelegation, llamaLendSupportsLeverage, loadCached, loadCachedJson, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarketIsEnterable, midnightMarkets, midnightMarketsByChain, midnightNotEnterableReason, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseFraxlendPairKey, parseGearboxV3LenderKey, parseLlamaLendLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTenorApiUrl, resolveTermApiBase, resolveTermOrderStoreBase, resupplyConfig, resupplyConfigFor, resupplyLendersByChain, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setRemoteCacheGithubToken, setRemoteCacheStore, setTenorApiUrl, setTermApiBase, setTermOrderStoreBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, skyChainData, skyConfig, skyConfigFor, skyLendersByChain, skyMarkets, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, tenorApiUrlOverride, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, termOrderStoreBaseOverride, twyneBaseKey, twyneBeaconFor, twyneChainData, twyneConfig, twyneConfigFor, twyneLendersByChain, twyneMarketByKey, twyneMarketFor, twyneMarketKey, twyneMarkets, twyneMarketsForIntermediateVault, twyneOperator, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
1214
+ export { COOLER_ETHEREUM_CONFIG, CURVANCE_MONAD_CONFIG, FRAXLEND_ETHEREUM_CONFIG, GEARBOX_ACCOUNT_COMPRESSOR_V310, REMOTE_CACHE_STORE_TTL_S, RESUPPLY_ETHEREUM_CONFIG, RemoteFetchError, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, assertTwyneKeysUnique, chainLogoURI, chains, clearRemoteCache, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, coolerConfig, coolerConfigFor, coolerLendersByChain, curvanceConfig, curvanceConfigFor, curvanceLendersByChain, curvancePositionManager, curvancePositionManagersFor, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, dolomiteOdosExecutorShim, dssChainData, dssConfigFor, dssDebtJoin, dssDebtToken, dssMarketByIlk, eulerConfigs, eulerVaults, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchRemoteJson, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, flyingTulipAssets, flyingTulipAssetsFor, flyingTulipConfig, flyingTulipConfigFor, flyingTulipLendersByChain, frankencoinChainData, frankencoinConfig, frankencoinConfigFor, frankencoinLendersByChain, frankencoinMarketByPosition, frankencoinMarkets, fraxlendConfig, fraxlendConfigFor, fraxlendLendersByChain, fraxlendPairKey, fraxlendPairsFor, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeAccess, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, isAaveV4OperationRestricted, isListaSmartLpAsset, isMidnightCollateralRef, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaCollateralProvider, listaCollateralProviders, listaNativeProvider, listaSmartLpByCollateral, llamaLendApiBaseUrl, llamaLendChainData, llamaLendConfig, llamaLendConfigFor, llamaLendLenderKey, llamaLendLendersByChain, llamaLendLeverageZap, llamaLendMarketByController, llamaLendMarketByVault, llamaLendMarkets, llamaLendSupportsDelegation, llamaLendSupportsLeverage, loadCached, loadCachedJson, midnightApiBaseOverride, midnightCollateralRef, midnightConfig, midnightLoanRef, midnightMarketById, midnightMarketIsEnterable, midnightMarkets, midnightMarketsByChain, midnightNotEnterableReason, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseFraxlendPairKey, parseGearboxV3LenderKey, parseLlamaLendLenderKey, parseMidnightRef, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTenorApiUrl, resolveTermApiBase, resolveTermOrderStoreBase, resupplyConfig, resupplyConfigFor, resupplyLendersByChain, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setRemoteCacheGithubToken, setRemoteCacheStore, setTenorApiUrl, setTermApiBase, setTermOrderStoreBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, skyChainData, skyConfig, skyConfigFor, skyLendersByChain, skyMarkets, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, tenorApiUrlOverride, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, termOrderStoreBaseOverride, twyneBaseKey, twyneBeaconFor, twyneChainData, twyneConfig, twyneConfigFor, twyneLendersByChain, twyneMarketByKey, twyneMarketFor, twyneMarketKey, twyneMarkets, twyneMarketsForIntermediateVault, twyneOperator, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
@@ -17,6 +17,25 @@ export type DolomiteConfigEntry = {
17
17
  aggregatorTraders?: {
18
18
  [K in DolomiteAggregator]?: string;
19
19
  };
20
+ /**
21
+ * Our `OdosExecutor` (`contracts-delegation`,
22
+ * `contracts/1delta/composer/generic/OdosExecutor.sol`) — a contract carrying
23
+ * the Odos executor selector (`executePath(bytes,uint256[],address)`) that
24
+ * simply forwards to another aggregator's router. Sibling of the same repo's
25
+ * `AggregationExecutor` (1inch) and `AllowanceHolderExecutor` (0x).
26
+ *
27
+ * It exists because Dolomite swaps must route through a Dolomite-DEPLOYED
28
+ * `IExchangeWrapper` and we cannot add one, so a chain is limited to the
29
+ * wrappers Dolomite happens to have deployed. `OdosRouterV2` takes a
30
+ * caller-supplied `executor` and `pathDefinition` and validates NEITHER (its
31
+ * only mapping is `referralLookup`), and `OdosAggregatorTrader` forwards both
32
+ * verbatim — so pointing `executor` at this shim runs a KyberSwap/0x/1inch
33
+ * route through the `odos` wrapper without Odos's API being involved.
34
+ *
35
+ * Absent = the shim is not deployed on this chain and the passthrough route
36
+ * must not be offered (fail closed).
37
+ */
38
+ odosExecutor?: string;
20
39
  };
21
40
  export type DolomiteConfigsType = {
22
41
  [chainId: string]: DolomiteConfigEntry;
@@ -49,6 +68,12 @@ export type DolomiteEmodeType = {
49
68
  [chainId: string]: DolomiteEmodeChain;
50
69
  };
51
70
  export declare const dolomiteConfigs: () => DolomiteConfigsType;
71
+ /**
72
+ * The `OdosExecutor` deployed on a chain, or `undefined` when the
73
+ * passthrough route is unavailable there. Callers MUST treat `undefined` as
74
+ * "not supported" — never substitute a default address.
75
+ */
76
+ export declare const dolomiteOdosExecutorShim: (chainId: string) => string | undefined;
52
77
  export declare const dolomiteChains: () => string[];
53
78
  export declare const dolomiteEmode: () => DolomiteEmodeType;
54
79
  export declare const dolomiteMarketIdByToken: (chainId: string, token: string) => string | undefined;
@@ -142,3 +142,21 @@ export declare const midnightMarketById: (chainId: string | number, marketId: st
142
142
  export declare const midnightMarketIsEnterable: (market: Pick<MidnightMarketConfig, "gating" | "deprecatedAt" | "maturity">, nowSec?: number) => boolean;
143
143
  /** Human-readable reason a market refuses new positions, or `undefined` if it does not. */
144
144
  export declare const midnightNotEnterableReason: (market: Pick<MidnightMarketConfig, "gating" | "deprecatedAt" | "maturity">, nowSec?: number) => string | undefined;
145
+ /** Ref for a Midnight COLLATERAL LEG row: `<token>-c<collateralIndex>`. */
146
+ export declare const midnightCollateralRef: (token: string, collateralIndex: number) => string;
147
+ /** Ref for a Midnight LOAN-side row (borrow / lend): the bare loan token. */
148
+ export declare const midnightLoanRef: (loanToken: string) => string;
149
+ /**
150
+ * Split a Midnight row ref back into its token and side.
151
+ *
152
+ * `collateralIndex === undefined` means the LOAN side (credit / debt), which is
153
+ * the bare-token form. Anything else is that collateral leg. A trailing
154
+ * `-c<digits>` is the only thing read as a leg marker, so a token address —
155
+ * which cannot contain `-` — is never mistaken for one.
156
+ */
157
+ export declare const parseMidnightRef: (ref: string) => {
158
+ token: string;
159
+ collateralIndex: number | undefined;
160
+ };
161
+ /** True when `ref` names a collateral leg rather than the loan side. */
162
+ export declare const isMidnightCollateralRef: (ref: string) => boolean;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.0.54",
7
+ "version": "0.0.56",
8
8
  "description": "Hold and initialize lending protocol data across a stack",
9
9
  "files": [
10
10
  "dist"