@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 +21 -62
- package/dist/index.js.map +1 -1
- package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts.map +1 -1
- package/dist/vaults/euler-earn/fetchPublic.d.ts +14 -13
- package/dist/vaults/euler-earn/fetchPublic.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/kinetiq.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/monadLst.d.ts.map +1 -1
- package/package.json +3 -3
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
|
|
31744
|
-
return { [KHYPE_KEY]:
|
|
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")
|
|
32944
|
-
|
|
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
|
|
38501
|
-
|
|
38502
|
-
|
|
38503
|
-
|
|
38504
|
-
|
|
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
|
-
|
|
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";
|