@1delta/margin-fetcher 0.0.37 → 0.0.39
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/lending/aave-v2-type/publicCallParse.d.ts +4 -4
- package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/publicCallParse.js +60 -32
- package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.js +46 -33
- package/dist/lending/addresses/meridian.d.ts +3 -0
- package/dist/lending/addresses/meridian.d.ts.map +1 -1
- package/dist/lending/addresses/meridian.js +4 -1
- package/dist/lending/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/fetchLenderAll.js +2 -0
- package/dist/lending/morpho/constants/markets.d.ts.map +1 -1
- package/dist/lending/morpho/constants/markets.js +30 -0
- package/dist/lending/morpho/fetchPublic.d.ts.map +1 -1
- package/dist/lending/morpho/fetchPublic.js +45 -13
- package/dist/lending/morpho/getMarketsFromChain.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.js +1 -0
- package/dist/prices/defillama/index.d.ts.map +1 -1
- package/dist/prices/defillama/index.js +14 -2
- package/dist/prices/main-prices/fetchOracleData.js +8 -6
- package/dist/utils/parsing.d.ts +1 -1
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/parsing.js +2 -2
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/index.js +28 -1
- package/package.json +1 -1
- package/src/lending/aave-v2-type/publicCallParse.ts +334 -92
- package/src/lending/aave-v3-type/publicCallParse.ts +80 -56
- package/src/lending/addresses/meridian.ts +4 -1
- package/src/lending/fetchLenderAll.ts +1 -0
- package/src/lending/morpho/constants/markets.ts +30 -0
- package/src/lending/morpho/fetchPublic.ts +50 -14
- package/src/lending/morpho/getMarketsFromChain.ts +0 -1
- package/src/lending/user-data/morpho/userCallBuild.ts +1 -0
- package/src/prices/defillama/index.ts +16 -2
- package/src/prices/main-prices/fetchOracleData.ts +7 -6
- package/src/utils/parsing.ts +2 -2
- package/src/yields/index.ts +39 -0
- package/test/flashLiquidity.test.ts +2 -2
- package/test/lenderData.test.ts +3 -3
- package/test/mainPrices.test.ts +4 -3
- package/test/mbChain.test.ts +3 -4
- package/test/morpho.test.ts +1 -1
- package/test/userDataAaveTelos.test.ts +85 -0
|
@@ -73,7 +73,7 @@ export const fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
73
73
|
...RWADynamicOracleAbi,
|
|
74
74
|
...ProxyOracleAbi,
|
|
75
75
|
];
|
|
76
|
-
const result = await multicallRetry(chainId, allCalls, abis, undefined, 3, 0,
|
|
76
|
+
const result = await multicallRetry(chainId, allCalls, abis, undefined, 3, 0, false, rpcOverrides);
|
|
77
77
|
return {
|
|
78
78
|
chainId,
|
|
79
79
|
result,
|
|
@@ -317,15 +317,17 @@ const parseUniswapV2results = (data, chainId) => {
|
|
|
317
317
|
return {};
|
|
318
318
|
}
|
|
319
319
|
};
|
|
320
|
-
function
|
|
320
|
+
function getExponentForOracle(chainId, fork) {
|
|
321
321
|
// some chains only have high decimal oracles
|
|
322
322
|
if (chainId === Chain.AVALANCHE_C_CHAIN || chainId === Chain.MODE) {
|
|
323
|
-
return
|
|
323
|
+
return 10n;
|
|
324
324
|
}
|
|
325
325
|
if (chainId === Chain.XDC_NETWORK)
|
|
326
|
-
return
|
|
326
|
+
return 0n;
|
|
327
|
+
if (chainId === Chain.TELOS_EVM_MAINNET)
|
|
328
|
+
return 10n;
|
|
327
329
|
// otherwise, it depends on whether it is aave V3
|
|
328
|
-
return AAVE_V2_LENDERS.includes(fork);
|
|
330
|
+
return AAVE_V2_LENDERS.includes(fork) ? 0n : 10n;
|
|
329
331
|
}
|
|
330
332
|
/**
|
|
331
333
|
* Parser for aave results in ulticall slice
|
|
@@ -341,7 +343,7 @@ const parseAaveResults = (chainId, data, queries, list = {}) => {
|
|
|
341
343
|
const details = queries[i];
|
|
342
344
|
details.assets.forEach((a, j) => {
|
|
343
345
|
const oracleId = list[a]?.assetGroup ?? chainId + '-' + a;
|
|
344
|
-
prices[oracleId] = formatAavePrice(d[j].toString(),
|
|
346
|
+
prices[oracleId] = formatAavePrice(d[j].toString(), getExponentForOracle(chainId, details.fork));
|
|
345
347
|
});
|
|
346
348
|
}
|
|
347
349
|
});
|
package/dist/utils/parsing.d.ts
CHANGED
|
@@ -12,6 +12,6 @@ export declare const formatAaveYieldToNumber: (n?: string | bigint) => number;
|
|
|
12
12
|
export declare const calculateRateForCompound: (n: string, chainId: string, lender?: Lender) => number;
|
|
13
13
|
export declare const formatAaveRawApyToApr: (raw: bigint | string | undefined) => number;
|
|
14
14
|
export declare const convertRateToApr: (ratePerSecond: number | string) => number;
|
|
15
|
-
export declare const formatAavePrice: (price: string,
|
|
15
|
+
export declare const formatAavePrice: (price: string, exponent?: bigint) => number;
|
|
16
16
|
export declare const formatMorphoPrice: (price: string, collateralDec: number, debtDec: number) => number;
|
|
17
17
|
//# sourceMappingURL=parsing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,eAAO,MAAM,GAAG,QAAQ,CAAA;AAExB,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,iBAAa,KAAG,MAO/D,CAAA;AAED,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,EAAE,IAAA;CACH;AAYD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WAI1C,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,GAAG,MAAM,KAAG,MAG7D,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,GAAG,MAAM,EACT,SAAS,MAAM,EACf,eAAiC,KAChC,MAgBF,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,WAGrE,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,GAAG,MAAM,WAI9D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,eAAO,MAAM,GAAG,QAAQ,CAAA;AAExB,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,iBAAa,KAAG,MAO/D,CAAA;AAED,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,EAAE,IAAA;CACH;AAYD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WAI1C,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,GAAG,MAAM,KAAG,MAG7D,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,GAAG,MAAM,EACT,SAAS,MAAM,EACf,eAAiC,KAChC,MAgBF,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,WAGrE,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,GAAG,MAAM,WAI9D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,iBAAc,KAAG,MAY/D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,SAAS,MAAM,KACd,MAYF,CAAA"}
|
package/dist/utils/parsing.js
CHANGED
|
@@ -65,11 +65,11 @@ export const convertRateToApr = (ratePerSecond) => {
|
|
|
65
65
|
return 0;
|
|
66
66
|
return rps * 3600 * 24 * 365 * 100;
|
|
67
67
|
};
|
|
68
|
-
export const formatAavePrice = (price,
|
|
68
|
+
export const formatAavePrice = (price, exponent = 10n) => {
|
|
69
69
|
try {
|
|
70
70
|
return Number(formatEther(BigInt(price ?? '0') *
|
|
71
71
|
// 10^(18 - decimals)
|
|
72
|
-
10n ** (
|
|
72
|
+
10n ** (exponent)));
|
|
73
73
|
}
|
|
74
74
|
catch {
|
|
75
75
|
return NaN;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yields/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yields/index.ts"],"names":[],"mappings":"AAwGA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,GAAG,CAAA;IAC1B,oBAAoB,EAAE,GAAG,CAAA;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACxD,aAAa,EAAE;QACb,CAAC,OAAO,EAAE,MAAM,GAAG;YACjB,CAAC,MAAM,EAAE,MAAM,GAAG;gBAAE,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAA;aAAE,CAAA;SACzD,CAAA;KACF,CAAA;CACF;AAcD,eAAO,MAAM,kBAAkB,uCAmf9B,CAAA"}
|
package/dist/yields/index.js
CHANGED
|
@@ -31,6 +31,7 @@ const usdThree = 'Web 3 Dollar::USD3';
|
|
|
31
31
|
const jitoSol = 'Jito Staked SOL::JitoSOL';
|
|
32
32
|
const thBill = 'Theo Short Duration US Treasury Fund::THBILL';
|
|
33
33
|
const ssuperusd = 'SuperReturn sSuperUSD::SSUPERUSD';
|
|
34
|
+
const hbhype = 'hyperbeat x ether.fi HYPE::beHYPE';
|
|
34
35
|
const FeedData = {
|
|
35
36
|
WSTETH: 'https://eth-api.lido.fi/v1/protocol/steth/apr/sma',
|
|
36
37
|
STMATIC: 'https://polygon.lido.fi/api/stats',
|
|
@@ -65,6 +66,7 @@ const FeedData = {
|
|
|
65
66
|
THBILL: 'https://thbill-api.theo.xyz/snapshots',
|
|
66
67
|
YEARN_KATANA: 'https://katana-apr-service.vercel.app/api/vaults',
|
|
67
68
|
SSUPERUSD: 'https://www.superreturn.ai/api/trpc/cmc.getUSDCPrice,rewardBackend.getYield,rewardBackend.getTvlChange?batch=1&input=%7B%220%22%3A%7B%22json%22%3Anull%2C%22meta%22%3A%7B%22values%22%3A%5B%22undefined%22%5D%7D%7D%2C%221%22%3A%7B%22json%22%3Anull%2C%22meta%22%3A%7B%22values%22%3A%5B%22undefined%22%5D%7D%7D%2C%222%22%3A%7B%22json%22%3Anull%2C%22meta%22%3A%7B%22values%22%3A%5B%22undefined%22%5D%7D%7D%7D',
|
|
69
|
+
HBHYPE: 'https://api.hyperbeat.org/api/v1/staking?address=0xCeaD893b162D38e714D82d06a7fe0b0dc3c38E0b',
|
|
68
70
|
};
|
|
69
71
|
const LenderAPIs = {
|
|
70
72
|
MERIDIAN: 'https://omnidex.bmaa3ajd1gjri.eu-west-2.cs.amazonlightsail.com/lending_yields',
|
|
@@ -147,6 +149,29 @@ export const fetchGeneralYields = async () => {
|
|
|
147
149
|
return 0;
|
|
148
150
|
}
|
|
149
151
|
});
|
|
152
|
+
const hbhypePromise = safeFetch('HBHYPE', async () => {
|
|
153
|
+
try {
|
|
154
|
+
const response = await fetch(FeedData.HBHYPE);
|
|
155
|
+
if (!response.ok) {
|
|
156
|
+
throw new Error(`HTTP error! Status: ${response.status}`);
|
|
157
|
+
}
|
|
158
|
+
const result = await response.json();
|
|
159
|
+
// Ensure data exists and delegations is an array
|
|
160
|
+
if (!result.success ||
|
|
161
|
+
!result.data ||
|
|
162
|
+
!Array.isArray(result.data.delegations)) {
|
|
163
|
+
throw new Error('Invalid response structure');
|
|
164
|
+
}
|
|
165
|
+
const delegations = result.data.delegations;
|
|
166
|
+
// Compute average APR
|
|
167
|
+
const totalApr = delegations.reduce((sum, validator) => sum + Number(validator.apr ?? 0), 0);
|
|
168
|
+
const averageApr = totalApr / delegations.length;
|
|
169
|
+
return averageApr;
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
return 0;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
150
175
|
const ssuperusdPromise = safeFetch('SSUPERUSD', async () => {
|
|
151
176
|
try {
|
|
152
177
|
const res = await fetch(FeedData.SSUPERUSD, {
|
|
@@ -394,7 +419,7 @@ export const fetchGeneralYields = async () => {
|
|
|
394
419
|
},
|
|
395
420
|
})));
|
|
396
421
|
});
|
|
397
|
-
const [wstethData, ezethData, rethData, weethData, stmaticData, methData, maticXdata, susdeData, meridianData, savaxData, cbethData, rsethData, trumaticData, rtokensData, hypeData, osEthData, ethXData, pufEthData, angleData, susdsData, srUsdData, yusdData, rlpData, wstusrData, csusdlData, sdeusdData, rswethData, ynethxData, ethZeroData, usdZeroPlusData, jitoSolData, thBillData, yearnKatanaData, ssuperusdData,] = await Promise.all([
|
|
422
|
+
const [wstethData, ezethData, rethData, weethData, stmaticData, methData, maticXdata, susdeData, meridianData, savaxData, cbethData, rsethData, trumaticData, rtokensData, hypeData, osEthData, ethXData, pufEthData, angleData, susdsData, srUsdData, yusdData, rlpData, wstusrData, csusdlData, sdeusdData, rswethData, ynethxData, ethZeroData, usdZeroPlusData, jitoSolData, thBillData, yearnKatanaData, ssuperusdData, hbhypeData,] = await Promise.all([
|
|
398
423
|
wstethPromise,
|
|
399
424
|
ezethPromise,
|
|
400
425
|
rethPromise,
|
|
@@ -429,6 +454,7 @@ export const fetchGeneralYields = async () => {
|
|
|
429
454
|
thbillPromise,
|
|
430
455
|
yearnKatanaPromise,
|
|
431
456
|
ssuperusdPromise,
|
|
457
|
+
hbhypePromise,
|
|
432
458
|
]);
|
|
433
459
|
const data = {
|
|
434
460
|
intrinsicYields: {
|
|
@@ -464,6 +490,7 @@ export const fetchGeneralYields = async () => {
|
|
|
464
490
|
[jitoSol]: jitoSolData,
|
|
465
491
|
[thBill]: thBillData,
|
|
466
492
|
[ssuperusd]: ssuperusdData,
|
|
493
|
+
[hbhype]: hbhypeData,
|
|
467
494
|
...rtokensData,
|
|
468
495
|
...hypeData,
|
|
469
496
|
...angleData,
|