@1delta/margin-fetcher 0.0.68 → 0.0.70

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
@@ -8287,9 +8287,9 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
8287
8287
  const resultReserves = {};
8288
8288
  const decimalsCeiling = data[expectedNumberOfCalls - 1];
8289
8289
  let eModeConfigs = {};
8290
- allModes.map((mode, index) => {
8290
+ allModes.forEach((mode, index) => {
8291
8291
  const rawCfg = emodeDataResult[index];
8292
- if (mode === 0 || rawCfg?.label !== "")
8292
+ if ((mode === 0 || rawCfg?.label !== "") && Number(rawCfg.ltv) !== 0) {
8293
8293
  eModeConfigs[mode] = {
8294
8294
  category: mode,
8295
8295
  label: rawCfg.label,
@@ -8297,6 +8297,7 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
8297
8297
  collateralFactor: rawCfg.liquidationThreshold / BPS,
8298
8298
  borrowFactor: 1
8299
8299
  };
8300
+ }
8300
8301
  });
8301
8302
  for (let i = 0; i < assetsToQuery.length; i++) {
8302
8303
  const asset = assetsToQuery[i];
@@ -8370,8 +8371,6 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
8370
8371
  hasStable: configData?.[7 /* stableBorrowRateEnabled */],
8371
8372
  isActive: configData?.[8 /* isActive */],
8372
8373
  isFrozen: configData?.[9 /* isFrozen */],
8373
- // eMode
8374
- eMode: eModeConfigs[eModeCategory],
8375
8374
  // caps
8376
8375
  borrowCap: Number(reserveCaps[0]?.toString()),
8377
8376
  supplyCap: Number(reserveCaps[1]?.toString()),
@@ -8395,23 +8394,32 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
8395
8394
  var populateEModes = (borrowCollateralFactor, collateralFactor, eModeCategory, eModeConfigs, allModes) => {
8396
8395
  let data = {};
8397
8396
  allModes.forEach((e) => {
8398
- data[e] = {
8399
- category: e,
8400
- borrowCollateralFactor,
8401
- collateralFactor,
8402
- borrowFactor: 1
8403
- };
8404
- if (e > 0) data[e].debtDisabled = true;
8405
- if (e > 0 && e === eModeCategory && eModeConfigs[e]) {
8397
+ if (e === 0)
8406
8398
  data[e] = {
8407
- ...data[e],
8399
+ label: "Disabled",
8408
8400
  category: e,
8409
- label: eModeConfigs[e]?.label ?? "Default",
8410
- borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,
8411
- collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,
8412
- borrowFactor: 1,
8413
- debtDisabled: false
8401
+ borrowCollateralFactor,
8402
+ collateralFactor,
8403
+ borrowFactor: 1
8414
8404
  };
8405
+ if (e > 0 && eModeConfigs[e]?.label && eModeConfigs[e]?.label !== "") {
8406
+ data[e] = {};
8407
+ data[e].label = eModeConfigs[e]?.label;
8408
+ data[e].debtDisabled = true;
8409
+ data[e].category = e;
8410
+ data[e].borrowFactor = 1;
8411
+ data[e].collateralFactor = collateralFactor;
8412
+ data[e].borrowCollateralFactor = borrowCollateralFactor;
8413
+ if (e > 0 && e === eModeCategory && eModeConfigs[e]) {
8414
+ data[e] = {
8415
+ ...data[e],
8416
+ category: e,
8417
+ borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,
8418
+ collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,
8419
+ borrowFactor: 1,
8420
+ debtDisabled: false
8421
+ };
8422
+ }
8415
8423
  }
8416
8424
  });
8417
8425
  return data;
@@ -8419,27 +8427,39 @@ var populateEModes = (borrowCollateralFactor, collateralFactor, eModeCategory, e
8419
8427
  var populateEModes32 = (borrowCollateralFactor, collateralFactor, collateralBitmap, debtBitmap, assetIndex, eModeConfigs, allModes) => {
8420
8428
  let data = {};
8421
8429
  allModes.forEach((e) => {
8422
- data[e] = {
8423
- category: e,
8424
- borrowCollateralFactor,
8425
- collateralFactor,
8426
- borrowFactor: 1
8427
- };
8428
- if (e > 0) data[e].debtDisabled = !!eModeConfigs[e];
8429
- if (e > 0 && eModeConfigs[e]) {
8430
+ if (e === 0)
8430
8431
  data[e] = {
8431
- ...data[e],
8432
+ label: "Disabled",
8432
8433
  category: e,
8433
- label: eModeConfigs[e]?.label ?? "Default",
8434
- borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,
8435
- collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,
8436
- borrowFactor: 1,
8437
- collateralDisabled: !isReserveEnabledOnBitmap(
8438
- collateralBitmap[e],
8439
- assetIndex
8440
- ),
8441
- debtDisabled: !isReserveEnabledOnBitmap(debtBitmap[e], assetIndex)
8434
+ borrowCollateralFactor,
8435
+ collateralFactor,
8436
+ borrowFactor: 1
8442
8437
  };
8438
+ if (e > 0) {
8439
+ if (eModeConfigs[e]?.label && eModeConfigs[e]?.label !== "") {
8440
+ data[e] = {};
8441
+ data[e].label = eModeConfigs[e]?.label ?? "Default";
8442
+ data[e].debtDisabled = true;
8443
+ data[e].category = e;
8444
+ data[e].borrowFactor = 1;
8445
+ data[e].collateralFactor = collateralFactor;
8446
+ data[e].borrowCollateralFactor = borrowCollateralFactor;
8447
+ data[e].debtDisabled = !!eModeConfigs[e];
8448
+ if (eModeConfigs[e]) {
8449
+ data[e] = {
8450
+ ...data[e],
8451
+ category: e,
8452
+ borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,
8453
+ collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,
8454
+ borrowFactor: 1,
8455
+ collateralDisabled: !isReserveEnabledOnBitmap(
8456
+ collateralBitmap[e],
8457
+ assetIndex
8458
+ ),
8459
+ debtDisabled: !isReserveEnabledOnBitmap(debtBitmap[e], assetIndex)
8460
+ };
8461
+ }
8462
+ }
8443
8463
  }
8444
8464
  });
8445
8465
  return data;
@@ -8559,9 +8579,9 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
8559
8579
  let eModeConfigs = {};
8560
8580
  let collateralBitmap = {};
8561
8581
  let debtBitmap = {};
8562
- allModes.map((mode, index) => {
8582
+ allModes.forEach((mode, index) => {
8563
8583
  const rawCfg = emodeDataResult[3 * index];
8564
- if (rawCfg && (mode === 0 || rawCfg?.label !== ""))
8584
+ if (rawCfg && (mode === 0 || rawCfg?.label !== "")) {
8565
8585
  eModeConfigs[mode] = {
8566
8586
  category: mode,
8567
8587
  label: rawCfg.label,
@@ -8569,8 +8589,9 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
8569
8589
  collateralFactor: rawCfg.liquidationThreshold / BPS,
8570
8590
  borrowFactor: 1
8571
8591
  };
8572
- debtBitmap[mode] = emodeDataResult[3 * index + 1];
8573
- collateralBitmap[mode] = emodeDataResult[3 * index + 2];
8592
+ debtBitmap[mode] = emodeDataResult[3 * index + 1];
8593
+ collateralBitmap[mode] = emodeDataResult[3 * index + 2];
8594
+ }
8574
8595
  });
8575
8596
  const lowerReservesList = reservesList?.map(
8576
8597
  (a) => a.toLowerCase()
@@ -8629,7 +8650,7 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
8629
8650
  const activeEmodes = allModes.map(
8630
8651
  (mode) => isReserveEnabledOnBitmap(debtBitmap[mode], assetIndex) || isReserveEnabledOnBitmap(collateralBitmap[mode], assetIndex) ? mode : -1
8631
8652
  ).filter((m) => m !== void 0 && m > 0);
8632
- const eModeCategory = activeEmodes.length === 0 ? 0 : activeEmodes[0];
8653
+ activeEmodes.length === 0 ? 0 : activeEmodes[0];
8633
8654
  resultReserves[asset] = {
8634
8655
  ...resultReserves[asset],
8635
8656
  decimals: Number(
@@ -8652,8 +8673,6 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
8652
8673
  hasStable: configData?.[7 /* stableBorrowRateEnabled */],
8653
8674
  isActive: configData?.[8 /* isActive */],
8654
8675
  isFrozen: configData?.[9 /* isFrozen */],
8655
- // eMode
8656
- eMode: eModeConfigs[eModeCategory],
8657
8676
  // caps
8658
8677
  borrowCap: Number(reserveCaps[0]?.toString()),
8659
8678
  supplyCap: Number(reserveCaps[1]?.toString()),
@@ -18418,6 +18437,7 @@ var RUSD = "0x09d4214c03d01f49544c0448dbe3a27f768f2b34";
18418
18437
  var USDF = "0xfa2b947eec368f42195f24f36d2af29f7c24cec2";
18419
18438
  var USUAL = "0xc4441c2be5d8fa8126822b9929ca0b81ea0de38e";
18420
18439
  var WOETH = "0xdcee70654261af21c44c093c300ed3bb97b78192";
18440
+ var DEUSD = "0x15700B564Ca08D9439C58cA5053166E8317aa138";
18421
18441
  var datasEthereum = [
18422
18442
  RETH,
18423
18443
  WBTC,
@@ -18462,7 +18482,8 @@ var datasEthereum = [
18462
18482
  RUSD,
18463
18483
  USDF,
18464
18484
  USUAL,
18465
- WOETH
18485
+ WOETH,
18486
+ DEUSD
18466
18487
  ].map((d) => prefixEthereum + d).join(",");
18467
18488
  var prefixAvalanche = "avax:";
18468
18489
  var WAVAX = "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7";
@@ -18639,7 +18660,8 @@ var SYMBOL_MAP = {
18639
18660
  wbera: "WBERA",
18640
18661
  wtlos: "WTLOS",
18641
18662
  xpl: "WXPL",
18642
- wglmr: "WGLMR"
18663
+ wglmr: "WGLMR",
18664
+ deusd: "Elixir deUSD::DEUSD"
18643
18665
  };
18644
18666
  async function fetchDefillamaData() {
18645
18667
  try {
@@ -20226,6 +20248,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20226
20248
  const uniswapV3Calls = getUniswapV3Calls(chainId);
20227
20249
  const [api3Calls, api3Names] = getApi3Calls(chainId);
20228
20250
  const [rwaCalls, rwaNames] = getRWADynamicOracleCalls(chainId);
20251
+ const [cometCalls, cometNames] = getCometCalls(chainId);
20229
20252
  const allCalls = [
20230
20253
  ...chainlinkCalls,
20231
20254
  ...aaveCalls,
@@ -20233,6 +20256,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20233
20256
  ...uniswapV3Calls,
20234
20257
  ...api3Calls,
20235
20258
  ...rwaCalls,
20259
+ ...cometCalls,
20236
20260
  ...morphoCalls
20237
20261
  ];
20238
20262
  const abis = [
@@ -20242,7 +20266,8 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20242
20266
  ...AaveOracleAbi,
20243
20267
  ...Api3OracleAbi,
20244
20268
  ...RWADynamicOracleAbi,
20245
- ...ProxyOracleAbi
20269
+ ...ProxyOracleAbi,
20270
+ ...CometAbi
20246
20271
  ];
20247
20272
  const result = await multicallRetry(
20248
20273
  chainId,
@@ -20262,6 +20287,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20262
20287
  chainlink: { calls: chainlinkCalls, names: chainlinkNames },
20263
20288
  api3: { calls: api3Calls, names: api3Names },
20264
20289
  rwa: { calls: rwaCalls, names: rwaNames },
20290
+ comet: { calls: cometCalls, names: cometNames },
20265
20291
  morpho: { queries: morphoQueries },
20266
20292
  uniswapCalls,
20267
20293
  uniswapV3Calls,
@@ -20285,6 +20311,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20285
20311
  rwa,
20286
20312
  uniswapCalls,
20287
20313
  uniswapV3Calls,
20314
+ comet,
20288
20315
  aaveCalls
20289
20316
  }
20290
20317
  } of chainResults) {
@@ -20316,6 +20343,13 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20316
20343
  const rwaSlice = result.slice(offset, offset + rwa.calls.length);
20317
20344
  const rwaData = parseRWADynamicOracleResults(chainId, rwaSlice, rwa.names);
20318
20345
  offset += rwa.calls.length;
20346
+ const cometSlice = result.slice(offset, offset + comet.calls.length);
20347
+ const cometData = parseCometResults(
20348
+ chainId,
20349
+ cometSlice,
20350
+ comet.names
20351
+ );
20352
+ offset += comet.calls.length;
20319
20353
  allPrices = {
20320
20354
  ...allPrices,
20321
20355
  ...chainlinkData,
@@ -20323,7 +20357,8 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
20323
20357
  ...uniswapData,
20324
20358
  ...uniswapV3Data,
20325
20359
  ...api3Data,
20326
- ...rwaData
20360
+ ...rwaData,
20361
+ ...cometData
20327
20362
  };
20328
20363
  }
20329
20364
  allPrices = { ...otherResults[0], ...allPrices, ...otherResults[1] };
@@ -20383,6 +20418,68 @@ var getUniswapV2Calls = (chainId) => {
20383
20418
  return [];
20384
20419
  }
20385
20420
  };
20421
+ var getCometCalls = (chainId) => {
20422
+ switch (chainId) {
20423
+ case Chain.ETHEREUM_MAINNET: {
20424
+ const names = [
20425
+ "Staked FRAX::SFRAX",
20426
+ //
20427
+ "Elixir deUSD::DEUSD",
20428
+ "Elixir Staked deUSD::SDEUSD"
20429
+ ];
20430
+ return [
20431
+ [
20432
+ {
20433
+ address: "0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840",
20434
+ // usdt comet
20435
+ name: "getPrice",
20436
+ params: [
20437
+ "0x8C74B2811D2F1aD65517ADB5C65773c1E520ed2f"
20438
+ // sfrax
20439
+ ]
20440
+ },
20441
+ {
20442
+ address: "0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840",
20443
+ name: "getPrice",
20444
+ params: [
20445
+ "0x471a6299C027Bd81ed4D66069dc510Bd0569f4F8"
20446
+ // deusd
20447
+ ]
20448
+ },
20449
+ {
20450
+ address: "0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840",
20451
+ name: "getPrice",
20452
+ params: [
20453
+ "0xE4829421ae79f2F44716cCbbb40751cd6Be3d483"
20454
+ // sdeusd
20455
+ ]
20456
+ }
20457
+ ],
20458
+ names
20459
+ ];
20460
+ }
20461
+ default:
20462
+ return [[], []];
20463
+ }
20464
+ };
20465
+ var parseCometResults = (chainId, data, names) => {
20466
+ switch (chainId) {
20467
+ case Chain.ETHEREUM_MAINNET: {
20468
+ const targetDecimals = [8, 8, 8];
20469
+ return Object.assign(
20470
+ {},
20471
+ ...data.map((entry, index) => {
20472
+ return {
20473
+ [names[index]]: Number(parseRawAmount(entry ?? "0", targetDecimals[index]))
20474
+ };
20475
+ })
20476
+ );
20477
+ }
20478
+ default: {
20479
+ return {};
20480
+ }
20481
+ }
20482
+ };
20386
20483
  var getUniswapV3Calls = (chainId) => {
20387
20484
  switch (chainId) {
20388
20485
  case Chain.HEMI_NETWORK:
@@ -20530,12 +20627,10 @@ var parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) =>
20530
20627
  let prices = {};
20531
20628
  data.forEach((d, i) => {
20532
20629
  const details = queries[i];
20533
- const {
20534
- loanAsset,
20535
- collateralAsset,
20536
- loanAssetDecimals,
20537
- collateralAssetDecimals
20538
- } = details;
20630
+ const loanAsset = details?.loanAsset;
20631
+ const collateralAsset = details?.collateralAsset;
20632
+ const loanAssetDecimals = details?.loanAssetDecimals;
20633
+ const collateralAssetDecimals = details?.collateralAssetDecimals;
20539
20634
  const oracleId = list[loanAsset]?.assetGroup ?? chainId + "-" + loanAsset;
20540
20635
  const debtPrice = donePrices[oracleId] ?? prices[oracleId];
20541
20636
  const oracleIdCollateral = list[collateralAsset]?.assetGroup ?? chainId + "-" + collateralAsset;
@@ -20546,12 +20641,12 @@ var parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) =>
20546
20641
  collateralAssetDecimals
20547
20642
  );
20548
20643
  if (debtPrice) {
20549
- if (!prices[oracleIdCollateral]) {
20644
+ if (!prices[oracleIdCollateral] && !donePrices[oracleIdCollateral]) {
20550
20645
  prices[oracleIdCollateral] = priceDebtToCollateral * debtPrice;
20551
20646
  }
20552
20647
  } else {
20553
20648
  if (collateralPrice) {
20554
- if (!prices[oracleId]) {
20649
+ if (!prices[oracleId] && !donePrices[oracleId]) {
20555
20650
  prices[oracleId] = collateralPrice / priceDebtToCollateral;
20556
20651
  }
20557
20652
  }