@1delta/margin-fetcher 0.0.305 → 0.0.306

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
@@ -38153,7 +38153,7 @@ function computeWeightedSupplyApy(strategies, totalAssetsRaw, feePercent, evkInd
38153
38153
  }
38154
38154
  if (weightedRay === ZERO) return 0;
38155
38155
  const apyRayPerAsset = weightedRay / totalAssets;
38156
- const grossPercent = Number(apyRayPerAsset) / RAY_TO_PERCENT3;
38156
+ const grossPercent = apyToAprPercent(Number(apyRayPerAsset) / RAY_TO_PERCENT3);
38157
38157
  const netPercent = grossPercent * (1 - feePercent / 100);
38158
38158
  return Number.isFinite(netPercent) ? netPercent : 0;
38159
38159
  }
@@ -38327,18 +38327,6 @@ async function fetchEulerEarnVaultsFromSubgraph(chainId, prices = {}, tokenList
38327
38327
  var EULER_DATA_API_BASE2 = "https://v3.euler.finance/v3";
38328
38328
  var API_TIMEOUT_MS = 1e4;
38329
38329
  var DETAIL_CONCURRENCY = 8;
38330
- var BLOCK_TIME_SEC = {
38331
- "1": 12,
38332
- "56": 0.75,
38333
- "130": 1,
38334
- "146": 0.5,
38335
- "8453": 2,
38336
- "1923": 2,
38337
- "42161": 0.25,
38338
- "43114": 2
38339
- };
38340
- var DEFAULT_BLOCK_TIME_SEC = 2;
38341
- var MAX_LAG_SECONDS = 30 * 60;
38342
38330
  function safeBigInt2(v) {
38343
38331
  if (v == null || v === "") return 0n;
38344
38332
  try {
@@ -38366,37 +38354,6 @@ async function getJson(url) {
38366
38354
  clearTimeout(timer);
38367
38355
  }
38368
38356
  }
38369
- async function isEulerEarnSubgraphStale(chainId, subgraphUrl) {
38370
- const [subHead, chainHead] = await Promise.all([
38371
- fetchSubgraphHead(subgraphUrl),
38372
- getEvmClientUniversal({ chain: chainId, rpcId: 0 }).getBlockNumber().then((b) => Number(b)).catch(() => null)
38373
- ]);
38374
- if (subHead == null || chainHead == null) return true;
38375
- const lagBlocks = chainHead - subHead;
38376
- if (lagBlocks <= 0) return false;
38377
- const lagSeconds = lagBlocks * (BLOCK_TIME_SEC[chainId] ?? DEFAULT_BLOCK_TIME_SEC);
38378
- return lagSeconds > MAX_LAG_SECONDS;
38379
- }
38380
- async function fetchSubgraphHead(subgraphUrl) {
38381
- const controller = new AbortController();
38382
- const timer = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
38383
- try {
38384
- const res = await fetch(subgraphUrl, {
38385
- method: "POST",
38386
- headers: { "Content-Type": "application/json" },
38387
- body: JSON.stringify({ query: "{ _meta { block { number } } }" }),
38388
- signal: controller.signal
38389
- });
38390
- if (!res.ok) return null;
38391
- const json = await res.json();
38392
- const n = json?.data?._meta?.block?.number;
38393
- return typeof n === "number" ? n : null;
38394
- } catch {
38395
- return null;
38396
- } finally {
38397
- clearTimeout(timer);
38398
- }
38399
- }
38400
38357
  function mapApiDetail(d, chainId, prices, tokenList) {
38401
38358
  const address = (d.address ?? "").toLowerCase();
38402
38359
  const underlying = (d.asset?.address ?? "").toLowerCase();
@@ -38498,20 +38455,21 @@ async function fetchEulerEarnVaultsFromApi(chainId, prices = {}, tokenList = {})
38498
38455
  // src/vaults/euler-earn/fetchPublic.ts
38499
38456
  var isNonEmpty = (v) => !!v && Object.keys(v).length > 0;
38500
38457
  var fetchEulerEarnVaults = async (chainId, prices = {}, tokenList = {}, multicallRetry) => {
38501
- const subgraphUrl = getEulerEarnSubgraphUrl(chainId);
38502
- if (!subgraphUrl) {
38503
- return await fetchEulerEarnVaultsFromApi(chainId, prices, tokenList) ?? {};
38504
- }
38505
- const [stale, subgraph] = await Promise.all([
38506
- isEulerEarnSubgraphStale(chainId, subgraphUrl).catch(() => false),
38507
- fetchEulerEarnVaultsFromSubgraph(chainId, prices, tokenList, multicallRetry).then((r) => ({ ok: true, data: r })).catch(() => ({ ok: false, data: void 0 }))
38508
- ]);
38509
- if (!stale && subgraph.ok && isNonEmpty(subgraph.data)) {
38510
- return subgraph.data;
38511
- }
38512
- const fromApi = await fetchEulerEarnVaultsFromApi(chainId, prices, tokenList);
38458
+ const fromApi = await fetchEulerEarnVaultsFromApi(
38459
+ chainId,
38460
+ prices,
38461
+ tokenList
38462
+ ).catch(() => void 0);
38513
38463
  if (isNonEmpty(fromApi)) return fromApi;
38514
- return subgraph.ok && subgraph.data ? subgraph.data : {};
38464
+ const subgraphUrl = getEulerEarnSubgraphUrl(chainId);
38465
+ if (!subgraphUrl) return fromApi ?? {};
38466
+ const fromSubgraph = await fetchEulerEarnVaultsFromSubgraph(
38467
+ chainId,
38468
+ prices,
38469
+ tokenList,
38470
+ multicallRetry
38471
+ ).catch(() => void 0);
38472
+ return isNonEmpty(fromSubgraph) ? fromSubgraph : fromApi ?? {};
38515
38473
  };
38516
38474
  var CHAIN_ID4 = "1";
38517
38475
  var SWBTC = "0x8db2350d78abc13f5673a411d4700bcf87864dde";