@1delta/margin-fetcher 0.0.120 → 0.0.122

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.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { getLenderPublicData, getLenderPublicDataViaApi, getLenderPublicDataAll, getLenderUserDataResult, convertLenderUserDataResult, inititalizeAllData, fetchLenderMetaFromDirAndInitialize, fetchLenderMetaFromDir, } from './lending';
2
2
  export { type LendingPair, generateLendingPairs, getTopPairs, } from './lending-pairs';
3
- export { type PoolWithMeta, generateLendingPools } from './lending-pools';
3
+ export { type PoolWithMeta, generateLendingPools, unflattenLenderData, } from './lending-pools';
4
4
  export { fetchGeneralYields } from './yields';
5
5
  export { fetchDefillamaData, fetchDefillamaHistData, fetchMainPrices, fetchPendlePrices, } from './prices';
6
6
  export { getLendersForChain, filterLendersByProtocol, getAavesForChain, getLenderAssets, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isAaveV3Type, isAaveV2Type, isYLDR, isAaveV32Type, isAaveType, isMultiMarket, } from './utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,mCAAmC,EACnC,sBAAsB,GACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,WAAW,EAChB,oBAAoB,EACpB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,UAAU,GAChB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,mCAAmC,EACnC,sBAAsB,GACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,WAAW,EAChB,oBAAoB,EACpB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,YAAY,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,UAAU,GAChB,MAAM,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -10556,7 +10556,8 @@ var MORPHO_LENS = {
10556
10556
  [Chain.BERACHAIN]: "0x7a59ddbB76521E8982Fa3A08598C9a83b14A6C07",
10557
10557
  [Chain.BNB_SMART_CHAIN_MAINNET]: "0xFc98b3157f0447DfbB9FdBE7d072F7DdacA1E27C",
10558
10558
  // lista lens
10559
- [Chain.UNICHAIN]: "0xA453ba397c61B0c292EA3959A858821145B2707F"
10559
+ [Chain.UNICHAIN]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
10560
+ [Chain.SEI_NETWORK]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297"
10560
10561
  };
10561
10562
  var LISTA_LENS = {
10562
10563
  [Chain.BNB_SMART_CHAIN_MAINNET]: "0xFc98b3157f0447DfbB9FdBE7d072F7DdacA1E27C"
@@ -18738,7 +18739,112 @@ function createCompoundV2Entry(i, data, assetsIn, vToken, asset, prices, pricesH
18738
18739
  };
18739
18740
  }
18740
18741
 
18741
- // src/lending/user-data/fetchUserData.ts
18742
+ // src/lending-pools/computeLendingPools.ts
18743
+ function resolvePrice(map, key, fallbackKey) {
18744
+ if (!map) return void 0;
18745
+ if (key != null && map[key] != null) return map[key];
18746
+ if (fallbackKey != null && map[fallbackKey] != null) return map[fallbackKey];
18747
+ return void 0;
18748
+ }
18749
+ function getPriceKey(asset) {
18750
+ const assetGroup = asset?.assetGroup;
18751
+ return [
18752
+ assetGroup,
18753
+ toOracleKey(assetGroup) ?? toGenericPriceKey(asset?.address, asset?.chainId)
18754
+ ];
18755
+ }
18756
+ var generateLendingPools = (lenderData, prices, histPrices) => {
18757
+ const flat = [];
18758
+ for (const [chainId, chain] of Object.entries(lenderData)) {
18759
+ for (const [lender, lenderEntry] of Object.entries(chain.data)) {
18760
+ for (const pool of Object.values(lenderEntry.data)) {
18761
+ if (
18762
+ // isolated collaterals without yield
18763
+ (isMorphoType(lender) || isCompoundV3Type(lender)) && !pool.borrowingEnabled
18764
+ )
18765
+ continue;
18766
+ if (pool.isFrozen) continue;
18767
+ flat.push({ ...pool, chainId, lender });
18768
+ }
18769
+ }
18770
+ }
18771
+ const byMarket = /* @__PURE__ */ new Map();
18772
+ for (const pool of flat) {
18773
+ const key = `${pool.chainId}:${pool.lender}`;
18774
+ if (!byMarket.has(key)) byMarket.set(key, []);
18775
+ byMarket.get(key).push({
18776
+ ...pool,
18777
+ apr: pool.depositRate + (pool.stakingYield ?? 0),
18778
+ utilitzation: (Number(pool.totalDebt) + Number(pool.totalDebtStable ?? 0)) / Number(pool.totalDeposits),
18779
+ exposure: []
18780
+ });
18781
+ }
18782
+ for (const group of byMarket.values()) {
18783
+ for (const collateralPool of group) {
18784
+ const collateralConfigs = Object.values(
18785
+ collateralPool.config ?? {}
18786
+ ).filter((cfg) => cfg && cfg.collateralDisabled !== true);
18787
+ if (!collateralConfigs.length) continue;
18788
+ const exposuresByPoolId = /* @__PURE__ */ new Map();
18789
+ for (const borrowPool of group) {
18790
+ for (const collateralCfg of collateralConfigs) {
18791
+ const cat = collateralCfg.category;
18792
+ const borrowCfg = borrowPool.config?.[cat];
18793
+ if (!borrowCfg || borrowCfg.debtDisabled === true) continue;
18794
+ const candidate = collateralCfg.collateralFactor;
18795
+ const existing = exposuresByPoolId.get(borrowPool.poolId);
18796
+ if (!existing || candidate > existing.collateralFactor) {
18797
+ exposuresByPoolId.set(borrowPool.poolId, {
18798
+ asset: borrowPool.asset,
18799
+ collateralFactor: candidate
18800
+ });
18801
+ }
18802
+ }
18803
+ }
18804
+ collateralPool.exposure = Array.from(exposuresByPoolId.values());
18805
+ }
18806
+ }
18807
+ for (const group of byMarket.values()) {
18808
+ for (const pool of group) {
18809
+ const [assetGroup, key] = getPriceKey(pool.asset) ?? [
18810
+ void 0,
18811
+ void 0
18812
+ ];
18813
+ pool.price = resolvePrice(prices, key, assetGroup);
18814
+ pool.histPrice = resolvePrice(histPrices, key, assetGroup);
18815
+ }
18816
+ }
18817
+ return Array.from(byMarket.values()).flat();
18818
+ };
18819
+
18820
+ // src/lending-pools/computeLenderDataFromPools.ts
18821
+ function unflattenLenderData(pools) {
18822
+ const result = {};
18823
+ for (const pool of pools) {
18824
+ const { chainId, lender, poolId, ...rest } = pool;
18825
+ if (!result[chainId]) {
18826
+ result[chainId] = { data: {}, lastFetched: Date.now() };
18827
+ }
18828
+ if (!result[chainId].data[lender]) {
18829
+ result[chainId].data[lender] = {
18830
+ data: {},
18831
+ eModes: {},
18832
+ chainId: String(chainId)
18833
+ };
18834
+ }
18835
+ const {
18836
+ exposure,
18837
+ price,
18838
+ histPrice,
18839
+ utilitzation,
18840
+ chainId: _c,
18841
+ lender: _l,
18842
+ ...poolData
18843
+ } = rest;
18844
+ result[chainId].data[lender].data[poolId] = poolData;
18845
+ }
18846
+ return result;
18847
+ }
18742
18848
  function buildUserCall(chainId, lender, account, params, assets) {
18743
18849
  if (isAaveV2Type(lender))
18744
18850
  return buildAaveV2UserCall(chainId, lender, account);
@@ -19150,8 +19256,8 @@ function generateLendingPairs(lenderData, prices, histPrices) {
19150
19256
  }
19151
19257
  const depositApr = long.depositRate + long.stakingYield;
19152
19258
  const borrowApr = short.variableBorrowRate + short.stakingYield;
19153
- const [assetGroupLong, keyLong] = getPriceKey(long.asset);
19154
- const [assetGroupShort, keyShort] = getPriceKey(short.asset);
19259
+ const [assetGroupLong, keyLong] = getPriceKey2(long.asset);
19260
+ const [assetGroupShort, keyShort] = getPriceKey2(short.asset);
19155
19261
  const priceLong = prices[keyLong] ?? 0;
19156
19262
  const priceShort = prices[keyShort] ?? 0;
19157
19263
  const price24hLong = histPrices[keyLong] ?? priceLong;
@@ -19197,7 +19303,7 @@ function generateLendingPairs(lenderData, prices, histPrices) {
19197
19303
  }
19198
19304
  return pairs;
19199
19305
  }
19200
- function getPriceKey(asset) {
19306
+ function getPriceKey2(asset) {
19201
19307
  const assetGroup = asset?.assetGroup;
19202
19308
  return [
19203
19309
  assetGroup,
@@ -19342,83 +19448,6 @@ function getDistinctPairsByShortAsset(pairs) {
19342
19448
  return result;
19343
19449
  }
19344
19450
 
19345
- // src/lending-pools/computeLendingPools.ts
19346
- function resolvePrice(map, key, fallbackKey) {
19347
- if (!map) return void 0;
19348
- if (key != null && map[key] != null) return map[key];
19349
- if (fallbackKey != null && map[fallbackKey] != null) return map[fallbackKey];
19350
- return void 0;
19351
- }
19352
- function getPriceKey2(asset) {
19353
- const assetGroup = asset?.assetGroup;
19354
- return [
19355
- assetGroup,
19356
- toOracleKey(assetGroup) ?? toGenericPriceKey(asset?.address, asset?.chainId)
19357
- ];
19358
- }
19359
- var generateLendingPools = (lenderData, prices, histPrices) => {
19360
- const flat = [];
19361
- for (const [chainId, chain] of Object.entries(lenderData)) {
19362
- for (const [lender, lenderEntry] of Object.entries(chain.data)) {
19363
- for (const pool of Object.values(lenderEntry.data)) {
19364
- if (
19365
- // isolated collaterals without yield
19366
- (isMorphoType(lender) || isCompoundV3Type(lender)) && !pool.borrowingEnabled
19367
- )
19368
- continue;
19369
- if (pool.isFrozen) continue;
19370
- flat.push({ ...pool, chainId, lender });
19371
- }
19372
- }
19373
- }
19374
- const byMarket = /* @__PURE__ */ new Map();
19375
- for (const pool of flat) {
19376
- const key = `${pool.chainId}:${pool.lender}`;
19377
- if (!byMarket.has(key)) byMarket.set(key, []);
19378
- byMarket.get(key).push({
19379
- ...pool,
19380
- utilitzation: (Number(pool.totalDebt) + Number(pool.totalDebtStable ?? 0)) / Number(pool.totalDeposits),
19381
- exposure: []
19382
- });
19383
- }
19384
- for (const group of byMarket.values()) {
19385
- for (const collateralPool of group) {
19386
- const collateralConfigs = Object.values(
19387
- collateralPool.config ?? {}
19388
- ).filter((cfg) => cfg && cfg.collateralDisabled !== true);
19389
- if (!collateralConfigs.length) continue;
19390
- const exposuresByPoolId = /* @__PURE__ */ new Map();
19391
- for (const borrowPool of group) {
19392
- for (const collateralCfg of collateralConfigs) {
19393
- const cat = collateralCfg.category;
19394
- const borrowCfg = borrowPool.config?.[cat];
19395
- if (!borrowCfg || borrowCfg.debtDisabled === true) continue;
19396
- const candidate = collateralCfg.collateralFactor;
19397
- const existing = exposuresByPoolId.get(borrowPool.poolId);
19398
- if (!existing || candidate > existing.collateralFactor) {
19399
- exposuresByPoolId.set(borrowPool.poolId, {
19400
- asset: borrowPool.asset,
19401
- collateralFactor: candidate
19402
- });
19403
- }
19404
- }
19405
- }
19406
- collateralPool.exposure = Array.from(exposuresByPoolId.values());
19407
- }
19408
- }
19409
- for (const group of byMarket.values()) {
19410
- for (const pool of group) {
19411
- const [assetGroup, key] = getPriceKey2(pool.asset) ?? [
19412
- void 0,
19413
- void 0
19414
- ];
19415
- pool.price = resolvePrice(prices, key, assetGroup);
19416
- pool.histPrice = resolvePrice(histPrices, key, assetGroup);
19417
- }
19418
- }
19419
- return Array.from(byMarket.values()).flat();
19420
- };
19421
-
19422
19451
  // src/prices/pendle/fetchPendlePrices.ts
19423
19452
  var PENDLE_API_BASE = "https://api-v2.pendle.finance/core";
19424
19453
  var MARKETS_ENDPOINT = `${PENDLE_API_BASE}/v1/markets/all`;
@@ -19628,7 +19657,7 @@ function averageDataLastN(arr, n = 7) {
19628
19657
  if (last.length === 0) return 0;
19629
19658
  return last.reduce((sum, x) => sum + x.data, 0) / last.length;
19630
19659
  }
19631
- var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/asset-lists/main/${chainId}.json`;
19660
+ var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
19632
19661
  async function getDeltaTokenList(chain) {
19633
19662
  const data = await fetch(getListUrl(chain));
19634
19663
  const list = (await data.json()).list;
@@ -20368,6 +20397,7 @@ var URL = `https://coins.llama.fi/prices/current/${[
20368
20397
  datasManta,
20369
20398
  datasTelos,
20370
20399
  datasbsc
20400
+ // datassei,
20371
20401
  ].join(",")}`;
20372
20402
  var URL_HIST = (ref) => `https://coins.llama.fi/prices/historical/${ref}/${[
20373
20403
  datasEthereum,
@@ -20463,6 +20493,7 @@ var SYMBOL_MAP = {
20463
20493
  wtlos: "WTLOS",
20464
20494
  xpl: "WXPL",
20465
20495
  wglmr: "WGLMR",
20496
+ wsei: "SEI",
20466
20497
  deusd: "Elixir deUSD::DEUSD",
20467
20498
  sky: "SKY Governance Token::SKY"
20468
20499
  };
@@ -20489,6 +20520,7 @@ async function fetchDefillamaData() {
20489
20520
  prices["TLOS"] = prices["WTLOS"];
20490
20521
  prices["XPL"] = prices["WXPL"];
20491
20522
  prices["GLMR"] = prices["WGLMR"];
20523
+ prices["WSEI"] = prices["SEI"];
20492
20524
  prices["USDBC"] = prices["USDC"];
20493
20525
  prices["BTCB"] = prices["WBTC"];
20494
20526
  prices["CBBTC"] = prices["WBTC"];
@@ -20532,6 +20564,7 @@ async function fetchDefillamaHistData() {
20532
20564
  histPrices["TLOS"] = histPrices["WTLOS"];
20533
20565
  histPrices["XPL"] = histPrices["WXPL"];
20534
20566
  histPrices["GLMR"] = histPrices["WGLMR"];
20567
+ histPrices["WSEI"] = histPrices["SEI"];
20535
20568
  histPrices["LUSD"] = histPrices["USDT"];
20536
20569
  histPrices["XDAI"] = histPrices["DAI"];
20537
20570
  histPrices["WXDAI"] = histPrices["DAI"];
@@ -23429,6 +23462,6 @@ function attachPricesToFlashLiquidity(chainId, liq, prices, list = {}) {
23429
23462
  return liqCopy;
23430
23463
  }
23431
23464
 
23432
- export { attachPricesToFlashLiquidity, convertLenderUserDataResult, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchLenderMetaFromDir, fetchLenderMetaFromDirAndInitialize, fetchMainPrices, fetchPendlePrices, filterLendersByProtocol, generateLendingPairs, generateLendingPools, getAavesForChain, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataResult, getLendersForChain, getTopPairs, inititalizeAllData, isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR };
23465
+ export { attachPricesToFlashLiquidity, convertLenderUserDataResult, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchLenderMetaFromDir, fetchLenderMetaFromDirAndInitialize, fetchMainPrices, fetchPendlePrices, filterLendersByProtocol, generateLendingPairs, generateLendingPools, getAavesForChain, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataResult, getLendersForChain, getTopPairs, inititalizeAllData, isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR, unflattenLenderData };
23433
23466
  //# sourceMappingURL=index.js.map
23434
23467
  //# sourceMappingURL=index.js.map