@1delta/margin-fetcher 5.0.57 → 5.0.58

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
@@ -57381,18 +57381,31 @@ function parseVault3(entry, results, chainId, prices, tokenList, marketIds, rate
57381
57381
  };
57382
57382
  }
57383
57383
 
57384
+ // src/vaults/morpho/rateSanity.ts
57385
+ var IMPLAUSIBLE_APR_PERCENT = 100;
57386
+ var PINNED_LIQUIDITY_FRACTION = 1e-3;
57387
+ var isUnrealizableRate = (v) => {
57388
+ if (!(v.depositRate > IMPLAUSIBLE_APR_PERCENT)) return false;
57389
+ if (!(v.totalAssetsFormatted > 0)) return false;
57390
+ return v.liquidityFormatted / v.totalAssetsFormatted < PINNED_LIQUIDITY_FRACTION;
57391
+ };
57392
+ var dropUnrealizableRates = (vaults) => {
57393
+ const entries = Object.entries(vaults);
57394
+ const kept = entries.filter(([, v]) => !isUnrealizableRate(v));
57395
+ if (kept.length === entries.length) return vaults;
57396
+ return Object.fromEntries(kept);
57397
+ };
57398
+
57384
57399
  // src/vaults/morpho/fetchPublic.ts
57385
57400
  var hasMorphoOnChainVaults = (chainId) => (morphoTypeVaults()?.MORPHO_BLUE?.[chainId]?.length ?? 0) > 0;
57386
57401
  var fetchMorphoVaults = async (chainId, multicallRetry, prices = {}, tokenList = {}) => {
57387
- if (hasMorphoOnChainVaults(chainId)) {
57388
- return fetchMorphoVaultsFromChain(
57389
- chainId,
57390
- multicallRetry,
57391
- prices,
57392
- tokenList
57393
- );
57394
- }
57395
- return fetchMorphoVaultsFromApi(chainId, prices, tokenList);
57402
+ const vaults = hasMorphoOnChainVaults(chainId) ? await fetchMorphoVaultsFromChain(
57403
+ chainId,
57404
+ multicallRetry,
57405
+ prices,
57406
+ tokenList
57407
+ ) : await fetchMorphoVaultsFromApi(chainId, prices, tokenList);
57408
+ return dropUnrealizableRates(vaults);
57396
57409
  };
57397
57410
  var { chunk: chunk6 } = lodash;
57398
57411
  var LISTA_PROTOCOL = "LISTA_DAO";
@@ -57544,7 +57557,7 @@ var fetchListaVaultsFromChain = async (chainId, multicallRetry, prices = {}, tok
57544
57557
  );
57545
57558
  if (parsed) out[parsed.address] = parsed;
57546
57559
  }
57547
- return out;
57560
+ return dropUnrealizableRates(out);
57548
57561
  };
57549
57562
  async function fetchListaMarketRates(chainId, moolah, marketIds, multicallRetry) {
57550
57563
  const map = /* @__PURE__ */ new Map();