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