@1delta/margin-fetcher 0.0.168 → 0.0.169
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/ccip-G7HDSZ4N.js +5 -0
- package/dist/{ccip-MRVHO3PE.js.map → ccip-G7HDSZ4N.js.map} +1 -1
- package/dist/{chunk-QCZNLSVI.js → chunk-ZVIJSUIM.js} +100 -83
- package/dist/chunk-ZVIJSUIM.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +404 -190
- package/dist/index.js.map +1 -1
- package/dist/lending/index.d.ts +1 -1
- package/dist/lending/index.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v2/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/summary/buildPortfolioTotals.d.ts +2 -2
- package/dist/lending/user-data/summary/buildPortfolioTotals.d.ts.map +1 -1
- package/dist/lending/user-data/summary/buildSummaries.d.ts +4 -4
- package/dist/lending/user-data/summary/buildSummaries.d.ts.map +1 -1
- package/dist/lending/user-data/summary/types.d.ts +36 -29
- package/dist/lending/user-data/summary/types.d.ts.map +1 -1
- package/dist/lending/user-data/summary/utils.d.ts +33 -0
- package/dist/lending/user-data/summary/utils.d.ts.map +1 -1
- package/dist/yields/fetchGeneralYields.d.ts +2 -1
- package/dist/yields/fetchGeneralYields.d.ts.map +1 -1
- package/dist/yields/index.d.ts +5 -2
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/angle.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/angle.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/coinbase.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/coinbase.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/ethena.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/ethena.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/etherfi.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/etherfi.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/gmx.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/gmx.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/hyperbeat.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/hyperbeat.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/hyperlend.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/hyperlend.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/hyperliquid.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/hyperliquid.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/jito.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/jito.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/kelp.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/kelp.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/lido.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/lido.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/mantle.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/mantle.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/maple.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/maple.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/morphoVaults.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/morphoVaults.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/ondo.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/ondo.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/pendle.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/pendle.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/puffer.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/puffer.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/renzo.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/renzo.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/reserve.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/reserve.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/reservoir.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/reservoir.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/resolv.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/resolv.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/rocketpool.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/rocketpool.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/savax.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/savax.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/sky.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/sky.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/stader.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/stader.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/stakewise.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/stakewise.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/superreturn.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/superreturn.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/swell.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/swell.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/theo.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/theo.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/trufin.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/trufin.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/usdai.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/usdai.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/usdx.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/usdx.d.ts.map +1 -0
- package/dist/yields/{fetchers → intrinsic/fetchers}/usual.d.ts +1 -1
- package/dist/yields/intrinsic/fetchers/usual.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/yearnKatana.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/yearnKatana.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/yieldfi.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/yieldfi.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/yieldnest.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/yieldnest.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/yoProtocol.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/yoProtocol.d.ts.map +1 -0
- package/dist/yields/intrinsic/index.d.ts +5 -0
- package/dist/yields/intrinsic/index.d.ts.map +1 -0
- package/dist/yields/rewards/fetchLenderRewards.d.ts +9 -0
- package/dist/yields/rewards/fetchLenderRewards.d.ts.map +1 -0
- package/dist/yields/rewards/index.d.ts +5 -0
- package/dist/yields/rewards/index.d.ts.map +1 -0
- package/dist/yields/rewards/merkl.d.ts +22 -0
- package/dist/yields/rewards/merkl.d.ts.map +1 -0
- package/dist/yields/rewards/types.d.ts +68 -0
- package/dist/yields/rewards/types.d.ts.map +1 -0
- package/dist/yields/types.d.ts +18 -6
- package/dist/yields/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/ccip-MRVHO3PE.js +0 -5
- package/dist/chunk-QCZNLSVI.js.map +0 -1
- package/dist/yields/fetchers/angle.d.ts +0 -3
- package/dist/yields/fetchers/angle.d.ts.map +0 -1
- package/dist/yields/fetchers/coinbase.d.ts +0 -3
- package/dist/yields/fetchers/coinbase.d.ts.map +0 -1
- package/dist/yields/fetchers/ethena.d.ts +0 -3
- package/dist/yields/fetchers/ethena.d.ts.map +0 -1
- package/dist/yields/fetchers/etherfi.d.ts.map +0 -1
- package/dist/yields/fetchers/gmx.d.ts +0 -3
- package/dist/yields/fetchers/gmx.d.ts.map +0 -1
- package/dist/yields/fetchers/hyperbeat.d.ts.map +0 -1
- package/dist/yields/fetchers/hyperlend.d.ts +0 -3
- package/dist/yields/fetchers/hyperlend.d.ts.map +0 -1
- package/dist/yields/fetchers/hyperliquid.d.ts.map +0 -1
- package/dist/yields/fetchers/jito.d.ts +0 -3
- package/dist/yields/fetchers/jito.d.ts.map +0 -1
- package/dist/yields/fetchers/kelp.d.ts +0 -3
- package/dist/yields/fetchers/kelp.d.ts.map +0 -1
- package/dist/yields/fetchers/lido.d.ts.map +0 -1
- package/dist/yields/fetchers/mantle.d.ts +0 -3
- package/dist/yields/fetchers/mantle.d.ts.map +0 -1
- package/dist/yields/fetchers/maple.d.ts +0 -3
- package/dist/yields/fetchers/maple.d.ts.map +0 -1
- package/dist/yields/fetchers/morphoVaults.d.ts +0 -3
- package/dist/yields/fetchers/morphoVaults.d.ts.map +0 -1
- package/dist/yields/fetchers/ondo.d.ts +0 -3
- package/dist/yields/fetchers/ondo.d.ts.map +0 -1
- package/dist/yields/fetchers/pendle.d.ts +0 -3
- package/dist/yields/fetchers/pendle.d.ts.map +0 -1
- package/dist/yields/fetchers/puffer.d.ts +0 -3
- package/dist/yields/fetchers/puffer.d.ts.map +0 -1
- package/dist/yields/fetchers/renzo.d.ts +0 -3
- package/dist/yields/fetchers/renzo.d.ts.map +0 -1
- package/dist/yields/fetchers/reserve.d.ts +0 -3
- package/dist/yields/fetchers/reserve.d.ts.map +0 -1
- package/dist/yields/fetchers/reservoir.d.ts +0 -3
- package/dist/yields/fetchers/reservoir.d.ts.map +0 -1
- package/dist/yields/fetchers/resolv.d.ts.map +0 -1
- package/dist/yields/fetchers/rocketpool.d.ts +0 -3
- package/dist/yields/fetchers/rocketpool.d.ts.map +0 -1
- package/dist/yields/fetchers/savax.d.ts +0 -3
- package/dist/yields/fetchers/savax.d.ts.map +0 -1
- package/dist/yields/fetchers/sky.d.ts +0 -3
- package/dist/yields/fetchers/sky.d.ts.map +0 -1
- package/dist/yields/fetchers/stader.d.ts.map +0 -1
- package/dist/yields/fetchers/stakewise.d.ts +0 -3
- package/dist/yields/fetchers/stakewise.d.ts.map +0 -1
- package/dist/yields/fetchers/superreturn.d.ts +0 -3
- package/dist/yields/fetchers/superreturn.d.ts.map +0 -1
- package/dist/yields/fetchers/swell.d.ts +0 -3
- package/dist/yields/fetchers/swell.d.ts.map +0 -1
- package/dist/yields/fetchers/theo.d.ts +0 -3
- package/dist/yields/fetchers/theo.d.ts.map +0 -1
- package/dist/yields/fetchers/trufin.d.ts +0 -3
- package/dist/yields/fetchers/trufin.d.ts.map +0 -1
- package/dist/yields/fetchers/usdai.d.ts +0 -3
- package/dist/yields/fetchers/usdai.d.ts.map +0 -1
- package/dist/yields/fetchers/usdx.d.ts +0 -3
- package/dist/yields/fetchers/usdx.d.ts.map +0 -1
- package/dist/yields/fetchers/usual.d.ts.map +0 -1
- package/dist/yields/fetchers/yearnKatana.d.ts +0 -3
- package/dist/yields/fetchers/yearnKatana.d.ts.map +0 -1
- package/dist/yields/fetchers/yieldfi.d.ts +0 -3
- package/dist/yields/fetchers/yieldfi.d.ts.map +0 -1
- package/dist/yields/fetchers/yieldnest.d.ts +0 -3
- package/dist/yields/fetchers/yieldnest.d.ts.map +0 -1
- package/dist/yields/fetchers/yoProtocol.d.ts +0 -3
- package/dist/yields/fetchers/yoProtocol.d.ts.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseAbi, formatEther, BaseError, encodeFunctionData, formatUnits, decodeFunctionResult, decodeAbiParameters, AbiEncodingLengthMismatchError, concatHex, isAddress, InvalidAddressError, pad, stringToHex, boolToHex, integerRegex, numberToHex, bytesRegex, BytesSizeMismatchError, arrayRegex, UnsupportedPackedAbiType } from './chunk-
|
|
1
|
+
import { parseAbi, formatEther, BaseError, encodeFunctionData, formatUnits, decodeFunctionResult, decodeAbiParameters, AbiEncodingLengthMismatchError, concatHex, isAddress, InvalidAddressError, pad, stringToHex, boolToHex, integerRegex, numberToHex, bytesRegex, BytesSizeMismatchError, arrayRegex, UnsupportedPackedAbiType } from './chunk-ZVIJSUIM.js';
|
|
2
2
|
import './chunk-BYTNVMX7.js';
|
|
3
3
|
import './chunk-PR4QN5HX.js';
|
|
4
4
|
import { Lender, isAaveType, isCompoundV3, isMultiMarket, isInit, isCompoundV2Type, isVenusType, isMorphoType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isYLDR, isCompoundV3Type, isTectonicType, isBenqiType, isLista } from '@1delta/lender-registry';
|
|
@@ -7848,7 +7848,7 @@ var buildCompoundV3StyleLenderReserveCall = (chainId, lender) => {
|
|
|
7848
7848
|
return calls;
|
|
7849
7849
|
};
|
|
7850
7850
|
|
|
7851
|
-
// ../../node_modules/.pnpm/viem@2.45.
|
|
7851
|
+
// ../../node_modules/.pnpm/viem@2.45.3_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/_esm/utils/abi/encodePacked.js
|
|
7852
7852
|
function encodePacked(types, values) {
|
|
7853
7853
|
if (types.length !== values.length)
|
|
7854
7854
|
throw new AbiEncodingLengthMismatchError({
|
|
@@ -7911,7 +7911,7 @@ function encode(type, value, isArray2 = false) {
|
|
|
7911
7911
|
throw new UnsupportedPackedAbiType(type);
|
|
7912
7912
|
}
|
|
7913
7913
|
|
|
7914
|
-
// ../../node_modules/.pnpm/viem@2.45.
|
|
7914
|
+
// ../../node_modules/.pnpm/viem@2.45.3_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/_esm/errors/unit.js
|
|
7915
7915
|
var InvalidDecimalNumberError = class extends BaseError {
|
|
7916
7916
|
constructor({ value }) {
|
|
7917
7917
|
super(`Number \`${value}\` is not a valid decimal number.`, {
|
|
@@ -7920,7 +7920,7 @@ var InvalidDecimalNumberError = class extends BaseError {
|
|
|
7920
7920
|
}
|
|
7921
7921
|
};
|
|
7922
7922
|
|
|
7923
|
-
// ../../node_modules/.pnpm/viem@2.45.
|
|
7923
|
+
// ../../node_modules/.pnpm/viem@2.45.3_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/_esm/utils/unit/parseUnits.js
|
|
7924
7924
|
function parseUnits(value, decimals) {
|
|
7925
7925
|
if (!/^(-?)([0-9]*)\.?([0-9]*)$/.test(value))
|
|
7926
7926
|
throw new InvalidDecimalNumberError({ value });
|
|
@@ -7955,7 +7955,7 @@ function parseUnits(value, decimals) {
|
|
|
7955
7955
|
return BigInt(`${negative ? "-" : ""}${integer}${fraction}`);
|
|
7956
7956
|
}
|
|
7957
7957
|
|
|
7958
|
-
// ../../node_modules/.pnpm/viem@2.45.
|
|
7958
|
+
// ../../node_modules/.pnpm/viem@2.45.3_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/_esm/constants/address.js
|
|
7959
7959
|
var zeroAddress = "0x0000000000000000000000000000000000000000";
|
|
7960
7960
|
|
|
7961
7961
|
// src/utils/parsing.ts
|
|
@@ -17482,8 +17482,10 @@ var getCompoundV2UserDataConverter = (lender, chainId, account, metaMap) => {
|
|
|
17482
17482
|
}
|
|
17483
17483
|
};
|
|
17484
17484
|
function createCompoundV2Entry(i, data, key, assetsIn, vToken, meta, claimableRewards) {
|
|
17485
|
-
const
|
|
17486
|
-
const
|
|
17485
|
+
const _depositsRaw = data[3 * i].toString();
|
|
17486
|
+
const _borrowsRaw = data[3 * i + 1].toString();
|
|
17487
|
+
const depositsRaw = _depositsRaw === "0x" ? "0" : _depositsRaw;
|
|
17488
|
+
const borrowsRaw = _borrowsRaw === "0x" ? "0" : _borrowsRaw;
|
|
17487
17489
|
const depositShares = data[3 * i + 2].toString();
|
|
17488
17490
|
const collateralEnabled = Boolean(assetsIn?.includes(vToken));
|
|
17489
17491
|
if (!collateralEnabled && depositsRaw === "0" && borrowsRaw === "0") {
|
|
@@ -23478,13 +23480,32 @@ function calculateOverallNetApr(totalDepositsUSD, totalDebtUSD, avgDepositApr, a
|
|
|
23478
23480
|
if (totalNetWorth === 0) return 0;
|
|
23479
23481
|
return (totalDepositsUSD * avgDepositApr - totalDebtUSD * avgBorrowApr) / Math.abs(totalNetWorth) * (totalNetWorth > 0 ? 1 : -1);
|
|
23480
23482
|
}
|
|
23483
|
+
function calculateWeightedAprs(items) {
|
|
23484
|
+
const wa = (field5, weightField) => calculateWeightedAverage(
|
|
23485
|
+
items.filter((i) => i[weightField] !== 0).map((i) => ({ value: i[field5], weight: Math.abs(i[weightField]) }))
|
|
23486
|
+
);
|
|
23487
|
+
return {
|
|
23488
|
+
apr: wa("apr", "nav"),
|
|
23489
|
+
depositApr: wa("depositApr", "deposits"),
|
|
23490
|
+
borrowApr: wa("borrowApr", "debt"),
|
|
23491
|
+
rewardApr: wa("rewardApr", "nav"),
|
|
23492
|
+
rewardDepositApr: wa("rewardDepositApr", "deposits"),
|
|
23493
|
+
rewardBorrowApr: wa("rewardBorrowApr", "debt"),
|
|
23494
|
+
intrinsicApr: wa("intrinsicApr", "nav"),
|
|
23495
|
+
intrinsicDepositApr: wa("intrinsicDepositApr", "deposits"),
|
|
23496
|
+
intrinsicBorrowApr: wa("intrinsicBorrowApr", "debt")
|
|
23497
|
+
};
|
|
23498
|
+
}
|
|
23481
23499
|
|
|
23482
23500
|
// src/lending/user-data/summary/buildPortfolioTotals.ts
|
|
23483
23501
|
function buildPortfolioTotals(userDataResult) {
|
|
23484
|
-
let
|
|
23485
|
-
let
|
|
23486
|
-
let
|
|
23502
|
+
let totalDeposits = 0;
|
|
23503
|
+
let totalDebt = 0;
|
|
23504
|
+
let totalCollateral = 0;
|
|
23505
|
+
let totalCollateralAllActive = 0;
|
|
23487
23506
|
let totalNav24h = 0;
|
|
23507
|
+
let totalDeposits24h = 0;
|
|
23508
|
+
let totalDebt24h = 0;
|
|
23488
23509
|
let lenderCount = 0;
|
|
23489
23510
|
const aprItems = [];
|
|
23490
23511
|
const activeChains = /* @__PURE__ */ new Set();
|
|
@@ -23492,61 +23513,51 @@ function buildPortfolioTotals(userDataResult) {
|
|
|
23492
23513
|
activeChains.add(chainId);
|
|
23493
23514
|
for (const [, userData] of Object.entries(lenders)) {
|
|
23494
23515
|
lenderCount++;
|
|
23495
|
-
let lenderDeposits = 0;
|
|
23496
|
-
let lenderDebt = 0;
|
|
23497
|
-
let lenderDepositAprSum = 0;
|
|
23498
|
-
let lenderBorrowAprSum = 0;
|
|
23499
|
-
let lenderDepositWeight = 0;
|
|
23500
|
-
let lenderDebtWeight = 0;
|
|
23501
23516
|
for (const subAccount of userData.data) {
|
|
23502
23517
|
const { balanceData: balanceData2, aprData: aprData2 } = subAccount;
|
|
23503
|
-
|
|
23504
|
-
|
|
23505
|
-
|
|
23506
|
-
|
|
23507
|
-
lenderDepositWeight += balanceData2.deposits;
|
|
23508
|
-
}
|
|
23509
|
-
if (balanceData2.debt > 0) {
|
|
23510
|
-
lenderBorrowAprSum += aprData2.borrowApr * balanceData2.debt;
|
|
23511
|
-
lenderDebtWeight += balanceData2.debt;
|
|
23512
|
-
}
|
|
23518
|
+
totalDeposits += balanceData2.deposits;
|
|
23519
|
+
totalDebt += balanceData2.debt;
|
|
23520
|
+
totalCollateral += balanceData2.collateral;
|
|
23521
|
+
totalCollateralAllActive += balanceData2.collateralAllActive;
|
|
23513
23522
|
totalNav24h += balanceData2.nav24h ?? 0;
|
|
23514
|
-
|
|
23515
|
-
|
|
23516
|
-
totalDepositsUSD += lenderDeposits;
|
|
23517
|
-
totalDebtUSD += lenderDebt;
|
|
23518
|
-
if (lenderDepositWeight > 0) {
|
|
23523
|
+
totalDeposits24h += balanceData2.deposits24h ?? 0;
|
|
23524
|
+
totalDebt24h += balanceData2.debt24h ?? 0;
|
|
23519
23525
|
aprItems.push({
|
|
23520
|
-
|
|
23521
|
-
|
|
23522
|
-
|
|
23523
|
-
|
|
23526
|
+
deposits: balanceData2.deposits,
|
|
23527
|
+
debt: balanceData2.debt,
|
|
23528
|
+
nav: balanceData2.deposits - balanceData2.debt,
|
|
23529
|
+
apr: aprData2.apr,
|
|
23530
|
+
depositApr: aprData2.depositApr,
|
|
23531
|
+
borrowApr: aprData2.borrowApr,
|
|
23532
|
+
rewardApr: aprData2.rewardApr,
|
|
23533
|
+
rewardDepositApr: aprData2.rewardDepositApr,
|
|
23534
|
+
rewardBorrowApr: aprData2.rewardBorrowApr,
|
|
23535
|
+
intrinsicApr: aprData2.intrinsicApr,
|
|
23536
|
+
intrinsicDepositApr: aprData2.intrinsicDepositApr,
|
|
23537
|
+
intrinsicBorrowApr: aprData2.intrinsicBorrowApr
|
|
23524
23538
|
});
|
|
23525
23539
|
}
|
|
23526
23540
|
}
|
|
23527
23541
|
}
|
|
23528
|
-
const
|
|
23529
|
-
const
|
|
23530
|
-
const
|
|
23531
|
-
const totalDebtWeight = aprItems.reduce((sum, a) => sum + a.debt, 0);
|
|
23532
|
-
const avgBorrowApr = totalDebtWeight > 0 ? aprItems.filter((a) => a.debt > 0).reduce((sum, a) => sum + a.borrowApr * a.debt, 0) / totalDebtWeight : 0;
|
|
23533
|
-
const avgNetApr = calculateOverallNetApr(
|
|
23534
|
-
totalDepositsUSD,
|
|
23535
|
-
totalDebtUSD,
|
|
23536
|
-
avgDepositApr,
|
|
23537
|
-
avgBorrowApr
|
|
23538
|
-
);
|
|
23539
|
-
const overallLeverage = calculateLeverage(totalDepositsUSD, totalNetWorth);
|
|
23542
|
+
const totalNav = totalDeposits - totalDebt;
|
|
23543
|
+
const leverage = calculateLeverage(totalDeposits, totalNav);
|
|
23544
|
+
const weightedAprs = calculateWeightedAprs(aprItems);
|
|
23540
23545
|
return {
|
|
23541
|
-
|
|
23542
|
-
|
|
23543
|
-
|
|
23544
|
-
|
|
23545
|
-
|
|
23546
|
-
|
|
23547
|
-
|
|
23548
|
-
|
|
23549
|
-
|
|
23546
|
+
balanceData: {
|
|
23547
|
+
deposits: totalDeposits,
|
|
23548
|
+
debt: totalDebt,
|
|
23549
|
+
collateral: totalCollateral,
|
|
23550
|
+
collateralAllActive: totalCollateralAllActive,
|
|
23551
|
+
nav: totalNav,
|
|
23552
|
+
deposits24h: totalDeposits24h,
|
|
23553
|
+
debt24h: totalDebt24h,
|
|
23554
|
+
nav24h: totalNav24h
|
|
23555
|
+
},
|
|
23556
|
+
aprData: {
|
|
23557
|
+
...weightedAprs,
|
|
23558
|
+
rewards: {}
|
|
23559
|
+
},
|
|
23560
|
+
leverage,
|
|
23550
23561
|
activeLenders: lenderCount,
|
|
23551
23562
|
activeChains: activeChains.size
|
|
23552
23563
|
};
|
|
@@ -23560,79 +23571,82 @@ function lenderSortPriority(lender) {
|
|
|
23560
23571
|
}
|
|
23561
23572
|
function aggregateLenderData(lender, userData) {
|
|
23562
23573
|
const { chainId, data } = userData;
|
|
23563
|
-
let
|
|
23564
|
-
let
|
|
23574
|
+
let totalDeposits = 0;
|
|
23575
|
+
let totalDebt = 0;
|
|
23565
23576
|
let totalCollateral = 0;
|
|
23577
|
+
let totalCollateralAllActive = 0;
|
|
23566
23578
|
let totalNav24h = 0;
|
|
23579
|
+
let totalDeposits24h = 0;
|
|
23580
|
+
let totalDebt24h = 0;
|
|
23567
23581
|
const subAccountSummaries = [];
|
|
23568
23582
|
const aprItems = [];
|
|
23569
|
-
let totalRewardApr = 0;
|
|
23570
|
-
let healthSum = 0;
|
|
23571
|
-
let healthCount = 0;
|
|
23572
23583
|
for (const subAccount of data) {
|
|
23573
|
-
const { balanceData:
|
|
23574
|
-
|
|
23575
|
-
|
|
23576
|
-
totalCollateral +=
|
|
23577
|
-
|
|
23578
|
-
|
|
23579
|
-
|
|
23580
|
-
|
|
23581
|
-
|
|
23582
|
-
|
|
23583
|
-
|
|
23584
|
-
|
|
23585
|
-
|
|
23586
|
-
|
|
23587
|
-
|
|
23588
|
-
|
|
23589
|
-
|
|
23584
|
+
const { balanceData: balanceData3, aprData: aprData2, positions, health, accountId, userConfig } = subAccount;
|
|
23585
|
+
totalDeposits += balanceData3.deposits;
|
|
23586
|
+
totalDebt += balanceData3.debt;
|
|
23587
|
+
totalCollateral += balanceData3.collateral;
|
|
23588
|
+
totalCollateralAllActive += balanceData3.collateralAllActive;
|
|
23589
|
+
totalNav24h += balanceData3.nav24h ?? 0;
|
|
23590
|
+
totalDeposits24h += balanceData3.deposits24h ?? 0;
|
|
23591
|
+
totalDebt24h += balanceData3.debt24h ?? 0;
|
|
23592
|
+
aprItems.push({
|
|
23593
|
+
deposits: balanceData3.deposits,
|
|
23594
|
+
debt: balanceData3.debt,
|
|
23595
|
+
nav: balanceData3.deposits - balanceData3.debt,
|
|
23596
|
+
apr: aprData2.apr,
|
|
23597
|
+
depositApr: aprData2.depositApr,
|
|
23598
|
+
borrowApr: aprData2.borrowApr,
|
|
23599
|
+
rewardApr: aprData2.rewardApr,
|
|
23600
|
+
rewardDepositApr: aprData2.rewardDepositApr,
|
|
23601
|
+
rewardBorrowApr: aprData2.rewardBorrowApr,
|
|
23602
|
+
intrinsicApr: aprData2.intrinsicApr,
|
|
23603
|
+
intrinsicDepositApr: aprData2.intrinsicDepositApr,
|
|
23604
|
+
intrinsicBorrowApr: aprData2.intrinsicBorrowApr
|
|
23605
|
+
});
|
|
23590
23606
|
subAccountSummaries.push({
|
|
23591
23607
|
accountId,
|
|
23592
23608
|
health,
|
|
23593
|
-
balanceData:
|
|
23609
|
+
balanceData: balanceData3,
|
|
23594
23610
|
aprData: aprData2,
|
|
23595
23611
|
userConfig,
|
|
23596
23612
|
positionCount: positions.length
|
|
23597
23613
|
});
|
|
23598
23614
|
}
|
|
23599
|
-
const
|
|
23600
|
-
const
|
|
23601
|
-
|
|
23602
|
-
|
|
23603
|
-
|
|
23604
|
-
|
|
23605
|
-
|
|
23606
|
-
|
|
23607
|
-
|
|
23608
|
-
|
|
23609
|
-
|
|
23610
|
-
|
|
23611
|
-
|
|
23615
|
+
const nav = totalDeposits - totalDebt;
|
|
23616
|
+
const leverage = calculateLeverage(totalDeposits, nav);
|
|
23617
|
+
const weightedAprs = calculateWeightedAprs(aprItems);
|
|
23618
|
+
const balanceData2 = {
|
|
23619
|
+
deposits: totalDeposits,
|
|
23620
|
+
debt: totalDebt,
|
|
23621
|
+
collateral: totalCollateral,
|
|
23622
|
+
collateralAllActive: totalCollateralAllActive,
|
|
23623
|
+
nav,
|
|
23624
|
+
deposits24h: totalDeposits24h,
|
|
23625
|
+
debt24h: totalDebt24h,
|
|
23626
|
+
nav24h: totalNav24h
|
|
23627
|
+
};
|
|
23612
23628
|
return {
|
|
23613
23629
|
lender,
|
|
23614
23630
|
chainId,
|
|
23615
|
-
|
|
23616
|
-
|
|
23617
|
-
|
|
23618
|
-
|
|
23619
|
-
|
|
23620
|
-
borrowApr,
|
|
23621
|
-
netApr,
|
|
23622
|
-
rewardApr: totalRewardApr,
|
|
23623
|
-
healthFactor,
|
|
23631
|
+
balanceData: balanceData2,
|
|
23632
|
+
aprData: {
|
|
23633
|
+
...weightedAprs,
|
|
23634
|
+
rewards: {}
|
|
23635
|
+
},
|
|
23624
23636
|
leverage,
|
|
23625
|
-
collateral: totalCollateral,
|
|
23626
23637
|
subAccounts: subAccountSummaries
|
|
23627
23638
|
};
|
|
23628
23639
|
}
|
|
23629
23640
|
function buildSummaries(userDataResult) {
|
|
23630
23641
|
const lenderSummaries = [];
|
|
23631
23642
|
const chainMap = {};
|
|
23632
|
-
let
|
|
23633
|
-
let
|
|
23634
|
-
let totalRewardApr = 0;
|
|
23643
|
+
let totalDeposits = 0;
|
|
23644
|
+
let totalDebt = 0;
|
|
23635
23645
|
let totalNav24h = 0;
|
|
23646
|
+
let totalDeposits24h = 0;
|
|
23647
|
+
let totalDebt24h = 0;
|
|
23648
|
+
let totalCollateral = 0;
|
|
23649
|
+
let totalCollateralAllActive = 0;
|
|
23636
23650
|
const aprItems = [];
|
|
23637
23651
|
const activeChains = /* @__PURE__ */ new Set();
|
|
23638
23652
|
for (const [chainId, lenders] of Object.entries(userDataResult)) {
|
|
@@ -23649,51 +23663,55 @@ function buildSummaries(userDataResult) {
|
|
|
23649
23663
|
for (const [lender, userData] of Object.entries(lenders)) {
|
|
23650
23664
|
const summary = aggregateLenderData(lender, userData);
|
|
23651
23665
|
lenderSummaries.push(summary);
|
|
23652
|
-
|
|
23653
|
-
|
|
23654
|
-
|
|
23655
|
-
|
|
23656
|
-
|
|
23657
|
-
|
|
23658
|
-
|
|
23659
|
-
|
|
23660
|
-
|
|
23661
|
-
|
|
23662
|
-
|
|
23663
|
-
|
|
23664
|
-
|
|
23665
|
-
|
|
23666
|
+
totalDeposits += summary.balanceData.deposits;
|
|
23667
|
+
totalDebt += summary.balanceData.debt;
|
|
23668
|
+
totalNav24h += summary.balanceData.nav24h;
|
|
23669
|
+
totalDeposits24h += summary.balanceData.deposits24h;
|
|
23670
|
+
totalDebt24h += summary.balanceData.debt24h;
|
|
23671
|
+
totalCollateral += summary.balanceData.collateral;
|
|
23672
|
+
totalCollateralAllActive += summary.balanceData.collateralAllActive;
|
|
23673
|
+
aprItems.push({
|
|
23674
|
+
deposits: summary.balanceData.deposits,
|
|
23675
|
+
debt: summary.balanceData.debt,
|
|
23676
|
+
nav: summary.balanceData.nav,
|
|
23677
|
+
apr: summary.aprData.apr,
|
|
23678
|
+
depositApr: summary.aprData.depositApr,
|
|
23679
|
+
borrowApr: summary.aprData.borrowApr,
|
|
23680
|
+
rewardApr: summary.aprData.rewardApr,
|
|
23681
|
+
rewardDepositApr: summary.aprData.rewardDepositApr,
|
|
23682
|
+
rewardBorrowApr: summary.aprData.rewardBorrowApr,
|
|
23683
|
+
intrinsicApr: summary.aprData.intrinsicApr,
|
|
23684
|
+
intrinsicDepositApr: summary.aprData.intrinsicDepositApr,
|
|
23685
|
+
intrinsicBorrowApr: summary.aprData.intrinsicBorrowApr
|
|
23686
|
+
});
|
|
23687
|
+
chainMap[chainId].totalDepositsUSD += summary.balanceData.deposits;
|
|
23688
|
+
chainMap[chainId].totalDebtUSD += summary.balanceData.debt;
|
|
23666
23689
|
chainMap[chainId].lenderCount++;
|
|
23667
23690
|
}
|
|
23668
23691
|
chainMap[chainId].netWorth = chainMap[chainId].totalDepositsUSD - chainMap[chainId].totalDebtUSD;
|
|
23669
23692
|
}
|
|
23670
|
-
const
|
|
23671
|
-
const
|
|
23672
|
-
|
|
23673
|
-
);
|
|
23674
|
-
const avgBorrowApr = calculateWeightedAverage(
|
|
23675
|
-
aprItems.filter((a) => a.debt > 0).map((a) => ({ value: a.borrowApr, weight: a.debt }))
|
|
23676
|
-
);
|
|
23677
|
-
const avgNetApr = calculateOverallNetApr(
|
|
23678
|
-
totalDepositsUSD,
|
|
23679
|
-
totalDebtUSD,
|
|
23680
|
-
avgDepositApr,
|
|
23681
|
-
avgBorrowApr
|
|
23682
|
-
);
|
|
23683
|
-
const overallLeverage = calculateLeverage(totalDepositsUSD, totalNetWorth);
|
|
23693
|
+
const totalNav = totalDeposits - totalDebt;
|
|
23694
|
+
const leverage = calculateLeverage(totalDeposits, totalNav);
|
|
23695
|
+
const weightedAprs = calculateWeightedAprs(aprItems);
|
|
23684
23696
|
lenderSummaries.sort(
|
|
23685
|
-
(a, b) => b.
|
|
23697
|
+
(a, b) => b.balanceData.nav - a.balanceData.nav || lenderSortPriority(a.lender) - lenderSortPriority(b.lender) || a.lender.localeCompare(b.lender)
|
|
23686
23698
|
);
|
|
23687
23699
|
return {
|
|
23688
|
-
|
|
23689
|
-
|
|
23690
|
-
|
|
23691
|
-
|
|
23692
|
-
|
|
23693
|
-
|
|
23694
|
-
|
|
23695
|
-
|
|
23696
|
-
|
|
23700
|
+
balanceData: {
|
|
23701
|
+
deposits: totalDeposits,
|
|
23702
|
+
debt: totalDebt,
|
|
23703
|
+
collateral: totalCollateral,
|
|
23704
|
+
collateralAllActive: totalCollateralAllActive,
|
|
23705
|
+
nav: totalNav,
|
|
23706
|
+
deposits24h: totalDeposits24h,
|
|
23707
|
+
debt24h: totalDebt24h,
|
|
23708
|
+
nav24h: totalNav24h
|
|
23709
|
+
},
|
|
23710
|
+
aprData: {
|
|
23711
|
+
...weightedAprs,
|
|
23712
|
+
rewards: {}
|
|
23713
|
+
},
|
|
23714
|
+
leverage,
|
|
23697
23715
|
activeLenders: lenderSummaries.length,
|
|
23698
23716
|
activeChains: activeChains.size,
|
|
23699
23717
|
lenders: lenderSummaries,
|
|
@@ -23702,7 +23720,7 @@ function buildSummaries(userDataResult) {
|
|
|
23702
23720
|
}
|
|
23703
23721
|
function filterActiveLenders(summary) {
|
|
23704
23722
|
const activeLenders = summary.lenders.filter(
|
|
23705
|
-
(l) => l.
|
|
23723
|
+
(l) => l.balanceData.deposits > 0 || l.balanceData.debt > 0
|
|
23706
23724
|
);
|
|
23707
23725
|
return {
|
|
23708
23726
|
...summary,
|
|
@@ -23725,7 +23743,7 @@ function fuseLenderData(userDataResult, summary) {
|
|
|
23725
23743
|
});
|
|
23726
23744
|
}
|
|
23727
23745
|
entries.sort(
|
|
23728
|
-
(a, b) => b.
|
|
23746
|
+
(a, b) => b.balanceData.nav - a.balanceData.nav || lenderSortPriority(a.lender) - lenderSortPriority(b.lender) || a.lender.localeCompare(b.lender)
|
|
23729
23747
|
);
|
|
23730
23748
|
return entries;
|
|
23731
23749
|
}
|
|
@@ -24913,7 +24931,7 @@ async function getListsMulti(chainIds) {
|
|
|
24913
24931
|
return res;
|
|
24914
24932
|
}
|
|
24915
24933
|
|
|
24916
|
-
// src/yields/fetchers/lido.ts
|
|
24934
|
+
// src/yields/intrinsic/fetchers/lido.ts
|
|
24917
24935
|
var WSTETH_URL = "https://eth-api.lido.fi/v1/protocol/steth/apr/sma";
|
|
24918
24936
|
var tETH = "Treehouse ETH::TETH";
|
|
24919
24937
|
var wstethFetcher = {
|
|
@@ -24934,7 +24952,7 @@ var stmaticFetcher = {
|
|
|
24934
24952
|
}
|
|
24935
24953
|
};
|
|
24936
24954
|
|
|
24937
|
-
// src/yields/fetchers/renzo.ts
|
|
24955
|
+
// src/yields/intrinsic/fetchers/renzo.ts
|
|
24938
24956
|
var EZETH_URL = "https://app.renzoprotocol.com/api/stats?chainId=1";
|
|
24939
24957
|
var ezethFetcher = {
|
|
24940
24958
|
label: "EZETH",
|
|
@@ -24944,7 +24962,7 @@ var ezethFetcher = {
|
|
|
24944
24962
|
}
|
|
24945
24963
|
};
|
|
24946
24964
|
|
|
24947
|
-
// src/yields/fetchers/rocketpool.ts
|
|
24965
|
+
// src/yields/intrinsic/fetchers/rocketpool.ts
|
|
24948
24966
|
var RETH_URL = "https://api.rocketpool.net/api/mainnet/payload";
|
|
24949
24967
|
var rethFetcher = {
|
|
24950
24968
|
label: "RETH",
|
|
@@ -24954,7 +24972,7 @@ var rethFetcher = {
|
|
|
24954
24972
|
}
|
|
24955
24973
|
};
|
|
24956
24974
|
|
|
24957
|
-
// src/yields/fetchers/etherfi.ts
|
|
24975
|
+
// src/yields/intrinsic/fetchers/etherfi.ts
|
|
24958
24976
|
var WEETH_URL = "https://www.ether.fi/api/apr";
|
|
24959
24977
|
var WEETHS_URL = "https://api.sevenseas.capital/etherfi/ethereum/performance/0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88";
|
|
24960
24978
|
var weeths = "Super Symbiotic LRT::weETHs";
|
|
@@ -24981,7 +24999,7 @@ var weethsFetcher = {
|
|
|
24981
24999
|
}
|
|
24982
25000
|
};
|
|
24983
25001
|
|
|
24984
|
-
// src/yields/fetchers/mantle.ts
|
|
25002
|
+
// src/yields/intrinsic/fetchers/mantle.ts
|
|
24985
25003
|
var METH_URL = "https://meth.mantle.xyz/api/stats/apy";
|
|
24986
25004
|
var methFetcher = {
|
|
24987
25005
|
label: "METH",
|
|
@@ -24992,7 +25010,7 @@ var methFetcher = {
|
|
|
24992
25010
|
}
|
|
24993
25011
|
};
|
|
24994
25012
|
|
|
24995
|
-
// src/yields/fetchers/ethena.ts
|
|
25013
|
+
// src/yields/intrinsic/fetchers/ethena.ts
|
|
24996
25014
|
var SUSDE_URL = "https://yields.llama.fi/poolsEnriched?pool=66985a81-9c51-46ca-9977-42b4fe7bc6df";
|
|
24997
25015
|
var susdeFetcher = {
|
|
24998
25016
|
label: "SUSDE",
|
|
@@ -25006,7 +25024,7 @@ var susdeFetcher = {
|
|
|
25006
25024
|
}
|
|
25007
25025
|
};
|
|
25008
25026
|
|
|
25009
|
-
// src/yields/fetchers/stader.ts
|
|
25027
|
+
// src/yields/intrinsic/fetchers/stader.ts
|
|
25010
25028
|
var MATICX_URL = "https://universe.staderlabs.com/polygon/apy";
|
|
25011
25029
|
var ETHX_URL = "https://universe.staderlabs.com/eth/apy";
|
|
25012
25030
|
var ethX = "Stader ETHx::ETHx";
|
|
@@ -25025,7 +25043,7 @@ var ethxFetcher = {
|
|
|
25025
25043
|
}
|
|
25026
25044
|
};
|
|
25027
25045
|
|
|
25028
|
-
// src/yields/fetchers/savax.ts
|
|
25046
|
+
// src/yields/intrinsic/fetchers/savax.ts
|
|
25029
25047
|
var SAVAX_URL = "https://api.benqi.fi/liquidstaking/apr";
|
|
25030
25048
|
var savaxFetcher = {
|
|
25031
25049
|
label: "SAVAX",
|
|
@@ -25035,7 +25053,7 @@ var savaxFetcher = {
|
|
|
25035
25053
|
}
|
|
25036
25054
|
};
|
|
25037
25055
|
|
|
25038
|
-
// src/yields/fetchers/coinbase.ts
|
|
25056
|
+
// src/yields/intrinsic/fetchers/coinbase.ts
|
|
25039
25057
|
var CBETH_URL = "https://api.exchange.coinbase.com/wrapped-assets/cbeth";
|
|
25040
25058
|
var cbethFetcher = {
|
|
25041
25059
|
label: "CBETH",
|
|
@@ -25055,7 +25073,7 @@ var cbethFetcher = {
|
|
|
25055
25073
|
}
|
|
25056
25074
|
};
|
|
25057
25075
|
|
|
25058
|
-
// src/yields/fetchers/kelp.ts
|
|
25076
|
+
// src/yields/intrinsic/fetchers/kelp.ts
|
|
25059
25077
|
var RSETH_URL = "https://universe.kelpdao.xyz/rseth/totalApy";
|
|
25060
25078
|
var rsethFetcher = {
|
|
25061
25079
|
label: "RSETH",
|
|
@@ -25065,7 +25083,7 @@ var rsethFetcher = {
|
|
|
25065
25083
|
}
|
|
25066
25084
|
};
|
|
25067
25085
|
|
|
25068
|
-
// src/yields/fetchers/trufin.ts
|
|
25086
|
+
// src/yields/intrinsic/fetchers/trufin.ts
|
|
25069
25087
|
var TRUMATIC_URL = "https://api.trufin.io/staker/apy?staker=MATIC";
|
|
25070
25088
|
var trumaticFetcher = {
|
|
25071
25089
|
label: "TRUMATIC",
|
|
@@ -25075,7 +25093,7 @@ var trumaticFetcher = {
|
|
|
25075
25093
|
}
|
|
25076
25094
|
};
|
|
25077
25095
|
|
|
25078
|
-
// src/yields/fetchers/stakewise.ts
|
|
25096
|
+
// src/yields/intrinsic/fetchers/stakewise.ts
|
|
25079
25097
|
var OSETH_URL = "https://graphs.stakewise.io/mainnet-a/subgraphs/name/stakewise/prod?opName=osTokenApy";
|
|
25080
25098
|
var osETH = "StakeWise Staked ETH::OSETH";
|
|
25081
25099
|
var osethFetcher = {
|
|
@@ -25093,7 +25111,7 @@ var osethFetcher = {
|
|
|
25093
25111
|
}
|
|
25094
25112
|
};
|
|
25095
25113
|
|
|
25096
|
-
// src/yields/fetchers/yieldnest.ts
|
|
25114
|
+
// src/yields/intrinsic/fetchers/yieldnest.ts
|
|
25097
25115
|
var YNETHX_URL = "https://gateway.yieldnest.finance/api/v1/graphql";
|
|
25098
25116
|
var ynethx = "ynETH MAX::YNETHX";
|
|
25099
25117
|
var ynethxFetcher = {
|
|
@@ -25118,7 +25136,7 @@ var ynethxFetcher = {
|
|
|
25118
25136
|
}
|
|
25119
25137
|
};
|
|
25120
25138
|
|
|
25121
|
-
// src/yields/fetchers/puffer.ts
|
|
25139
|
+
// src/yields/intrinsic/fetchers/puffer.ts
|
|
25122
25140
|
var PUFETH_URL = "https://api-v2.puffer.fi/backend-for-frontend/tvl/all";
|
|
25123
25141
|
var pufEth = "PUFETH";
|
|
25124
25142
|
var pufethFetcher = {
|
|
@@ -25132,7 +25150,7 @@ var pufethFetcher = {
|
|
|
25132
25150
|
}
|
|
25133
25151
|
};
|
|
25134
25152
|
|
|
25135
|
-
// src/yields/fetchers/sky.ts
|
|
25153
|
+
// src/yields/intrinsic/fetchers/sky.ts
|
|
25136
25154
|
var SUSDS_URL = "https://info-sky.blockanalitica.com/api/v1/overall/?format=json";
|
|
25137
25155
|
var sUsds = "sUSDS::SUSDS";
|
|
25138
25156
|
var susdsFetcher = {
|
|
@@ -25148,7 +25166,7 @@ var susdsFetcher = {
|
|
|
25148
25166
|
}
|
|
25149
25167
|
};
|
|
25150
25168
|
|
|
25151
|
-
// src/yields/fetchers/reservoir.ts
|
|
25169
|
+
// src/yields/intrinsic/fetchers/reservoir.ts
|
|
25152
25170
|
var SRUSD_URL = "https://app.reservoir.xyz/api/website";
|
|
25153
25171
|
var srUsd = "Reservoir srUSD::SRUSD";
|
|
25154
25172
|
var wsrusd = "Wrapped Savings rUSD::WSRUSD";
|
|
@@ -25167,7 +25185,7 @@ var srusdFetcher = {
|
|
|
25167
25185
|
}
|
|
25168
25186
|
};
|
|
25169
25187
|
|
|
25170
|
-
// src/yields/fetchers/yieldfi.ts
|
|
25188
|
+
// src/yields/intrinsic/fetchers/yieldfi.ts
|
|
25171
25189
|
var YUSD_URL = "https://ctrl.yield.fi/t/yusd/apy";
|
|
25172
25190
|
var yusd = "YieldFi yUSD::yUSD";
|
|
25173
25191
|
var yusdFetcher = {
|
|
@@ -25181,7 +25199,7 @@ var yusdFetcher = {
|
|
|
25181
25199
|
}
|
|
25182
25200
|
};
|
|
25183
25201
|
|
|
25184
|
-
// src/yields/fetchers/resolv.ts
|
|
25202
|
+
// src/yields/intrinsic/fetchers/resolv.ts
|
|
25185
25203
|
var RLP_URL = "https://api.resolv.xyz/apr/rlp/7d";
|
|
25186
25204
|
var WSTUSR_URL = "https://api.resolv.xyz/apr/staking/7d";
|
|
25187
25205
|
var rlp = "Resolv RLP::RLP";
|
|
@@ -25213,7 +25231,7 @@ var wstusrFetcher = {
|
|
|
25213
25231
|
}
|
|
25214
25232
|
};
|
|
25215
25233
|
|
|
25216
|
-
// src/yields/fetchers/morphoVaults.ts
|
|
25234
|
+
// src/yields/intrinsic/fetchers/morphoVaults.ts
|
|
25217
25235
|
var MORPHO_VAULTS_URL = "https://blue-api.morpho.org/graphql";
|
|
25218
25236
|
var csusdl = "Coinshift USDL Morpho Vault::CSUSDL";
|
|
25219
25237
|
var csusdlFetcher = {
|
|
@@ -25236,7 +25254,7 @@ var csusdlFetcher = {
|
|
|
25236
25254
|
}
|
|
25237
25255
|
};
|
|
25238
25256
|
|
|
25239
|
-
// src/yields/fetchers/swell.ts
|
|
25257
|
+
// src/yields/intrinsic/fetchers/swell.ts
|
|
25240
25258
|
var RSWETH_URL = "https://v3-lst.svc.swellnetwork.io/api/tokens/sweth/apr";
|
|
25241
25259
|
var rsweth = "Restaked Swell ETH::RSWETH";
|
|
25242
25260
|
var rswethFetcher = {
|
|
@@ -25250,7 +25268,7 @@ var rswethFetcher = {
|
|
|
25250
25268
|
}
|
|
25251
25269
|
};
|
|
25252
25270
|
|
|
25253
|
-
// src/yields/fetchers/usual.ts
|
|
25271
|
+
// src/yields/intrinsic/fetchers/usual.ts
|
|
25254
25272
|
var USDZEROPLUS_URL = "https://app.usual.money/api/rewards/rates/USD0++";
|
|
25255
25273
|
var ETHZERO_URL = "https://app.usual.money/api/rewards/rates/ETH0";
|
|
25256
25274
|
var usdZeroPlus = "Staked USD0::USD0++";
|
|
@@ -25276,7 +25294,7 @@ var ethZeroFetcher = {
|
|
|
25276
25294
|
}
|
|
25277
25295
|
};
|
|
25278
25296
|
|
|
25279
|
-
// src/yields/fetchers/jito.ts
|
|
25297
|
+
// src/yields/intrinsic/fetchers/jito.ts
|
|
25280
25298
|
var JITOSOL_URL = "https://www.jito.network/api/getJitoPoolStats/";
|
|
25281
25299
|
var jitoSol = "Jito Staked SOL::JitoSOL";
|
|
25282
25300
|
var jitoSolFetcher = {
|
|
@@ -25291,7 +25309,7 @@ var jitoSolFetcher = {
|
|
|
25291
25309
|
}
|
|
25292
25310
|
};
|
|
25293
25311
|
|
|
25294
|
-
// src/yields/fetchers/theo.ts
|
|
25312
|
+
// src/yields/intrinsic/fetchers/theo.ts
|
|
25295
25313
|
var THBILL_URL = "https://thbill-api.theo.xyz/snapshots";
|
|
25296
25314
|
var thBill = "Theo Short Duration US Treasury Fund::THBILL";
|
|
25297
25315
|
var thbillFetcher = {
|
|
@@ -25307,7 +25325,7 @@ var thbillFetcher = {
|
|
|
25307
25325
|
}
|
|
25308
25326
|
};
|
|
25309
25327
|
|
|
25310
|
-
// src/yields/fetchers/superreturn.ts
|
|
25328
|
+
// src/yields/intrinsic/fetchers/superreturn.ts
|
|
25311
25329
|
var SSUPERUSD_URL = "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";
|
|
25312
25330
|
var ssuperusd = "SuperReturn sSuperUSD::SSUPERUSD";
|
|
25313
25331
|
var ssuperusdFetcher = {
|
|
@@ -25325,7 +25343,7 @@ var ssuperusdFetcher = {
|
|
|
25325
25343
|
}
|
|
25326
25344
|
};
|
|
25327
25345
|
|
|
25328
|
-
// src/yields/fetchers/hyperbeat.ts
|
|
25346
|
+
// src/yields/intrinsic/fetchers/hyperbeat.ts
|
|
25329
25347
|
var HBHYPE_URL = "https://api.hyperbeat.org/api/v1/staking?address=0xCeaD893b162D38e714D82d06a7fe0b0dc3c38E0b";
|
|
25330
25348
|
var HBUHYPE_URL = "https://app.hyperbeat.org/api/hyperfolio/vault-infos?vaultAddress=0x96C6cBB6251Ee1c257b2162ca0f39AA5Fa44B1FB";
|
|
25331
25349
|
var hbhype = "hyperbeat x ether.fi HYPE::beHYPE";
|
|
@@ -25371,7 +25389,7 @@ var hbuhypeFetcher = {
|
|
|
25371
25389
|
}
|
|
25372
25390
|
};
|
|
25373
25391
|
|
|
25374
|
-
// src/yields/fetchers/hyperliquid.ts
|
|
25392
|
+
// src/yields/intrinsic/fetchers/hyperliquid.ts
|
|
25375
25393
|
var HLP_URL = "https://api-ui.hyperliquid.xyz/info";
|
|
25376
25394
|
var HWHLP_URL = "https://api.hyperwavefi.xyz/stats/latest?asset=hwhlp_999";
|
|
25377
25395
|
var hlp = "Wrapped HLP::WHLP";
|
|
@@ -25413,7 +25431,7 @@ var hwhlpFetcher = {
|
|
|
25413
25431
|
}
|
|
25414
25432
|
};
|
|
25415
25433
|
|
|
25416
|
-
// src/yields/fetchers/usdx.ts
|
|
25434
|
+
// src/yields/intrinsic/fetchers/usdx.ts
|
|
25417
25435
|
var SUSDX_URL = "https://app.usdx.money/v1/base/apyInfo";
|
|
25418
25436
|
var susdx = "SUSDX";
|
|
25419
25437
|
var susdxFetcher = {
|
|
@@ -25424,7 +25442,7 @@ var susdxFetcher = {
|
|
|
25424
25442
|
}
|
|
25425
25443
|
};
|
|
25426
25444
|
|
|
25427
|
-
// src/yields/fetchers/reserve.ts
|
|
25445
|
+
// src/yields/intrinsic/fetchers/reserve.ts
|
|
25428
25446
|
var RTOKENS_URL = "https://yields.reserve.org/pools";
|
|
25429
25447
|
var hyUSD = "High Yield USD Base::HYUSD";
|
|
25430
25448
|
var bsdETH = "Based ETH::BSDETH";
|
|
@@ -25454,7 +25472,7 @@ var rtokensFetcher = {
|
|
|
25454
25472
|
}
|
|
25455
25473
|
};
|
|
25456
25474
|
|
|
25457
|
-
// src/yields/fetchers/hyperlend.ts
|
|
25475
|
+
// src/yields/intrinsic/fetchers/hyperlend.ts
|
|
25458
25476
|
var HYPE_URL = "https://api.hyperlend.finance/data/nativeApy";
|
|
25459
25477
|
var wstHype = "Staked HYPE Shares::WSTHYPE";
|
|
25460
25478
|
var kHYPE = "Kinetiq Staked HYPE::kHYPE";
|
|
@@ -25469,7 +25487,7 @@ var hypeFetcher = {
|
|
|
25469
25487
|
}
|
|
25470
25488
|
};
|
|
25471
25489
|
|
|
25472
|
-
// src/yields/fetchers/angle.ts
|
|
25490
|
+
// src/yields/intrinsic/fetchers/angle.ts
|
|
25473
25491
|
var ANGLE_URL = "https://exporter.angle.money/v2/savingsApr";
|
|
25474
25492
|
var stUSD = "Angle Staked USDA::stUSD";
|
|
25475
25493
|
var stEur = "Angle Staked EURA::stEUR";
|
|
@@ -25497,7 +25515,7 @@ var addressToAssetYearn = {
|
|
|
25497
25515
|
"0x93fec6639717b6215a48e5a72a162c50dcc40d68": "vbAUSD yVault::yvvbAUSD"
|
|
25498
25516
|
};
|
|
25499
25517
|
|
|
25500
|
-
// src/yields/fetchers/yearnKatana.ts
|
|
25518
|
+
// src/yields/intrinsic/fetchers/yearnKatana.ts
|
|
25501
25519
|
var YEARN_KATANA_URL = "https://katana-apr-service.vercel.app/api/vaults";
|
|
25502
25520
|
var yearnKatanaFetcher = {
|
|
25503
25521
|
label: "YEARN_KATANA",
|
|
@@ -25517,7 +25535,7 @@ var yearnKatanaFetcher = {
|
|
|
25517
25535
|
}
|
|
25518
25536
|
};
|
|
25519
25537
|
|
|
25520
|
-
// src/yields/fetchers/yoProtocol.ts
|
|
25538
|
+
// src/yields/intrinsic/fetchers/yoProtocol.ts
|
|
25521
25539
|
var YO_URL = "https://api.yo.xyz/api/v1/vault/stats";
|
|
25522
25540
|
var yoeth = "Yield Optimizer ETH::YOETH";
|
|
25523
25541
|
var yobtc = "Yield Optimizer BTC::YOBTC";
|
|
@@ -25544,7 +25562,7 @@ var yoFetcher = {
|
|
|
25544
25562
|
}
|
|
25545
25563
|
};
|
|
25546
25564
|
|
|
25547
|
-
// src/yields/fetchers/gmx.ts
|
|
25565
|
+
// src/yields/intrinsic/fetchers/gmx.ts
|
|
25548
25566
|
var GMX_URL = "https://arbitrum-api.gmxinfra.io/apy?period=1d";
|
|
25549
25567
|
var gmx_eth_usd = "GMX Market ETH/USD::GM [WETH-USDC]";
|
|
25550
25568
|
var gmx_btc_usd = "GMX Market BTC/USD::GM [WBTC-USDC]";
|
|
@@ -25682,7 +25700,7 @@ function yearFractionToExpiry(expiryISO, now = /* @__PURE__ */ new Date()) {
|
|
|
25682
25700
|
return yearFraction;
|
|
25683
25701
|
}
|
|
25684
25702
|
|
|
25685
|
-
// src/yields/fetchers/pendle.ts
|
|
25703
|
+
// src/yields/intrinsic/fetchers/pendle.ts
|
|
25686
25704
|
var pendleFetcher = {
|
|
25687
25705
|
label: "PENDLE",
|
|
25688
25706
|
fetch: async () => {
|
|
@@ -25702,7 +25720,7 @@ var pendleFetcher = {
|
|
|
25702
25720
|
}
|
|
25703
25721
|
};
|
|
25704
25722
|
|
|
25705
|
-
// src/yields/fetchers/usdai.ts
|
|
25723
|
+
// src/yields/intrinsic/fetchers/usdai.ts
|
|
25706
25724
|
var USDAI_APY_URL = "https://api.usd.ai/usdai/dashboard/current-apy";
|
|
25707
25725
|
var usdai = "sUSDai::SUSDAI";
|
|
25708
25726
|
var usdaiFetcher = {
|
|
@@ -25718,7 +25736,7 @@ var usdaiFetcher = {
|
|
|
25718
25736
|
}
|
|
25719
25737
|
};
|
|
25720
25738
|
|
|
25721
|
-
// src/yields/fetchers/maple.ts
|
|
25739
|
+
// src/yields/intrinsic/fetchers/maple.ts
|
|
25722
25740
|
var MAPLE_URL = "https://api.maple.finance/v2/graphql";
|
|
25723
25741
|
var SYRUP_USDT_ID = "0x356b8d89c1e1239cbbb9de4815c39a1474d5ba7d";
|
|
25724
25742
|
var SYRUP_USDC_ID = "0x80ac24aa929eaf5013f6436cda2a7ba190f5cc0b";
|
|
@@ -25755,7 +25773,7 @@ var mapleFetcher = {
|
|
|
25755
25773
|
}
|
|
25756
25774
|
};
|
|
25757
25775
|
|
|
25758
|
-
// src/yields/fetchers/ondo.ts
|
|
25776
|
+
// src/yields/intrinsic/fetchers/ondo.ts
|
|
25759
25777
|
var ONDO_BASE_URL = "https://app.ondo.finance/api/v2/assets";
|
|
25760
25778
|
var ondoFetcher = {
|
|
25761
25779
|
label: "ONDO",
|
|
@@ -25771,8 +25789,8 @@ var ondoFetcher = {
|
|
|
25771
25789
|
}
|
|
25772
25790
|
};
|
|
25773
25791
|
|
|
25774
|
-
// src/yields/
|
|
25775
|
-
|
|
25792
|
+
// src/yields/intrinsic/index.ts
|
|
25793
|
+
async function fetchIntrinsicYields() {
|
|
25776
25794
|
const wstethPromise = safeFetch(wstethFetcher.label, wstethFetcher.fetch);
|
|
25777
25795
|
const weethFetcher = createWeethFetcher(wstethPromise);
|
|
25778
25796
|
const fetchers = [
|
|
@@ -25820,20 +25838,216 @@ var fetchGeneralYields = async () => {
|
|
|
25820
25838
|
mapleFetcher,
|
|
25821
25839
|
ondoFetcher
|
|
25822
25840
|
];
|
|
25823
|
-
const
|
|
25841
|
+
const results = await Promise.all([
|
|
25824
25842
|
wstethPromise,
|
|
25825
25843
|
...fetchers.map((f) => safeFetch(f.label, f.fetch))
|
|
25826
25844
|
]);
|
|
25827
25845
|
const intrinsicYields = {};
|
|
25828
|
-
if (wstethData) Object.assign(intrinsicYields, wstethData);
|
|
25829
25846
|
for (const result of results) {
|
|
25830
25847
|
if (result) Object.assign(intrinsicYields, result);
|
|
25831
25848
|
}
|
|
25849
|
+
return intrinsicYields;
|
|
25850
|
+
}
|
|
25851
|
+
|
|
25852
|
+
// src/yields/rewards/merkl.ts
|
|
25853
|
+
var MERKL_API_BASE = "https://api.merkl.xyz/v4";
|
|
25854
|
+
async function fetchMerklOpportunities(protocolId, chainId) {
|
|
25855
|
+
const all = [];
|
|
25856
|
+
let page = 0;
|
|
25857
|
+
while (true) {
|
|
25858
|
+
const params = new URLSearchParams({
|
|
25859
|
+
mainProtocolId: protocolId,
|
|
25860
|
+
chainId,
|
|
25861
|
+
status: "LIVE",
|
|
25862
|
+
items: "100",
|
|
25863
|
+
page: String(page)
|
|
25864
|
+
});
|
|
25865
|
+
const res = await fetch(`${MERKL_API_BASE}/opportunities?${params}`);
|
|
25866
|
+
if (!res.ok) throw new Error(`Merkl API ${res.status} for chain ${chainId}`);
|
|
25867
|
+
const batch = await res.json();
|
|
25868
|
+
all.push(...batch);
|
|
25869
|
+
if (batch.length < 100) break;
|
|
25870
|
+
page++;
|
|
25871
|
+
}
|
|
25872
|
+
return all;
|
|
25873
|
+
}
|
|
25874
|
+
function emptyReward() {
|
|
25875
|
+
return {
|
|
25876
|
+
distribution: "merkle",
|
|
25877
|
+
deposit: 0,
|
|
25878
|
+
borrow: 0,
|
|
25879
|
+
additionalDepositData: [],
|
|
25880
|
+
additionalBorrowData: []
|
|
25881
|
+
};
|
|
25882
|
+
}
|
|
25883
|
+
function ensureReward(result, chainId, lender, asset) {
|
|
25884
|
+
if (!result[chainId]) result[chainId] = {};
|
|
25885
|
+
if (!result[chainId][lender]) result[chainId][lender] = {};
|
|
25886
|
+
if (!result[chainId][lender][asset])
|
|
25887
|
+
result[chainId][lender][asset] = emptyReward();
|
|
25888
|
+
return result[chainId][lender][asset];
|
|
25889
|
+
}
|
|
25890
|
+
function getMerkleUrl(opp) {
|
|
25891
|
+
return `https://app.merkl.xyz/opportunities/${opp.chain.name}/${opp.type}/${opp.identifier}`;
|
|
25892
|
+
}
|
|
25893
|
+
function extractRewardBreakdowns(opp) {
|
|
25894
|
+
if (!opp.rewardsRecord?.breakdowns?.length) return [];
|
|
25895
|
+
return opp.rewardsRecord.breakdowns.map((b) => ({
|
|
25896
|
+
token: b.token.symbol,
|
|
25897
|
+
tokenAddress: b.token.address,
|
|
25898
|
+
dailyUsdValue: b.value,
|
|
25899
|
+
distributionType: b.distributionType
|
|
25900
|
+
}));
|
|
25901
|
+
}
|
|
25902
|
+
function resolveUnderlyingFromOpportunity(opp) {
|
|
25903
|
+
if (!opp.tokens?.length) return void 0;
|
|
25904
|
+
if (opp.depositUrl) {
|
|
25905
|
+
try {
|
|
25906
|
+
const url = new URL(opp.depositUrl);
|
|
25907
|
+
const underlying2 = url.searchParams.get("underlyingAsset");
|
|
25908
|
+
if (underlying2) return underlying2.toLowerCase();
|
|
25909
|
+
} catch {
|
|
25910
|
+
}
|
|
25911
|
+
}
|
|
25912
|
+
const explorer = opp.explorerAddress?.toLowerCase();
|
|
25913
|
+
const underlying = opp.tokens.find(
|
|
25914
|
+
(t) => t.address.toLowerCase() !== explorer && !t.symbol.startsWith("variableDebt") && !t.symbol.startsWith("stableDebt")
|
|
25915
|
+
);
|
|
25916
|
+
if (underlying) return underlying.address.toLowerCase();
|
|
25917
|
+
return opp.tokens[0].address.toLowerCase();
|
|
25918
|
+
}
|
|
25919
|
+
function createMerklRewardFetcher(config) {
|
|
25920
|
+
const defaultResolve = (opp) => {
|
|
25921
|
+
const asset = resolveUnderlyingFromOpportunity(opp);
|
|
25922
|
+
if (!asset) return void 0;
|
|
25923
|
+
return { asset };
|
|
25924
|
+
};
|
|
25925
|
+
const resolve = config.resolveAsset ?? defaultResolve;
|
|
25926
|
+
return {
|
|
25927
|
+
label: `MERKL_${config.merklProtocolId.toUpperCase()}`,
|
|
25928
|
+
fetch: async () => {
|
|
25929
|
+
const result = {};
|
|
25930
|
+
const chainResults = await Promise.all(
|
|
25931
|
+
config.chainIds.map(async (chainId) => {
|
|
25932
|
+
try {
|
|
25933
|
+
const opps = await fetchMerklOpportunities(
|
|
25934
|
+
config.merklProtocolId,
|
|
25935
|
+
chainId
|
|
25936
|
+
);
|
|
25937
|
+
return { chainId, opps };
|
|
25938
|
+
} catch (e) {
|
|
25939
|
+
console.error(`Merkl: failed to fetch chain ${chainId}:`, e);
|
|
25940
|
+
return { chainId, opps: [] };
|
|
25941
|
+
}
|
|
25942
|
+
})
|
|
25943
|
+
);
|
|
25944
|
+
for (const { chainId, opps } of chainResults) {
|
|
25945
|
+
for (const opp of opps) {
|
|
25946
|
+
if (opp.action !== "LEND" && opp.action !== "BORROW") continue;
|
|
25947
|
+
if (!opp.apr || opp.apr <= 0) continue;
|
|
25948
|
+
const resolved = resolve(opp);
|
|
25949
|
+
if (!resolved) continue;
|
|
25950
|
+
const lender = resolved.lender ?? config.lenderKey;
|
|
25951
|
+
const reward = ensureReward(result, chainId, lender, resolved.asset);
|
|
25952
|
+
const breakdowns = extractRewardBreakdowns(opp);
|
|
25953
|
+
reward.link = getMerkleUrl(opp);
|
|
25954
|
+
if (opp.action === "LEND") {
|
|
25955
|
+
reward.deposit += opp.apr;
|
|
25956
|
+
reward.additionalDepositData.push(...breakdowns);
|
|
25957
|
+
} else {
|
|
25958
|
+
reward.borrow += opp.apr;
|
|
25959
|
+
reward.additionalBorrowData.push(...breakdowns);
|
|
25960
|
+
}
|
|
25961
|
+
}
|
|
25962
|
+
}
|
|
25963
|
+
return result;
|
|
25964
|
+
}
|
|
25965
|
+
};
|
|
25966
|
+
}
|
|
25967
|
+
var AAVE_V3_MERKL_CHAINS = [
|
|
25968
|
+
"1",
|
|
25969
|
+
// Ethereum
|
|
25970
|
+
"10",
|
|
25971
|
+
// Optimism
|
|
25972
|
+
"56",
|
|
25973
|
+
// BSC
|
|
25974
|
+
"100",
|
|
25975
|
+
// Gnosis
|
|
25976
|
+
"137",
|
|
25977
|
+
// Polygon
|
|
25978
|
+
"5000",
|
|
25979
|
+
// Mantle
|
|
25980
|
+
"8453",
|
|
25981
|
+
// Base
|
|
25982
|
+
"42161",
|
|
25983
|
+
// Arbitrum
|
|
25984
|
+
"42220",
|
|
25985
|
+
// Celo
|
|
25986
|
+
"43114",
|
|
25987
|
+
// Avalanche
|
|
25988
|
+
"59144",
|
|
25989
|
+
// Linea
|
|
25990
|
+
"534352"
|
|
25991
|
+
// Scroll
|
|
25992
|
+
];
|
|
25993
|
+
var aaveMerklRewardFetcher = createMerklRewardFetcher({
|
|
25994
|
+
merklProtocolId: "aave",
|
|
25995
|
+
lenderKey: "AAVE_V3",
|
|
25996
|
+
chainIds: AAVE_V3_MERKL_CHAINS
|
|
25997
|
+
});
|
|
25998
|
+
|
|
25999
|
+
// src/yields/rewards/fetchLenderRewards.ts
|
|
26000
|
+
function mergeRewardResults(target, source) {
|
|
26001
|
+
for (const [chainId, lenders] of Object.entries(source)) {
|
|
26002
|
+
if (!target[chainId]) target[chainId] = {};
|
|
26003
|
+
for (const [lender, assets] of Object.entries(lenders)) {
|
|
26004
|
+
if (!target[chainId][lender]) target[chainId][lender] = {};
|
|
26005
|
+
Object.assign(target[chainId][lender], assets);
|
|
26006
|
+
}
|
|
26007
|
+
}
|
|
26008
|
+
}
|
|
26009
|
+
var rewardFetchers = [aaveMerklRewardFetcher];
|
|
26010
|
+
async function fetchLenderRewards() {
|
|
26011
|
+
const results = await Promise.all(
|
|
26012
|
+
rewardFetchers.map((f) => safeFetch(f.label, f.fetch))
|
|
26013
|
+
);
|
|
26014
|
+
const lenderRewards = {};
|
|
26015
|
+
for (const rr of results) {
|
|
26016
|
+
if (rr) mergeRewardResults(lenderRewards, rr);
|
|
26017
|
+
}
|
|
26018
|
+
return lenderRewards;
|
|
26019
|
+
}
|
|
26020
|
+
|
|
26021
|
+
// src/yields/fetchGeneralYields.ts
|
|
26022
|
+
var fetchGeneralYields = async () => {
|
|
26023
|
+
const [intrinsicYields, lenderRewards] = await Promise.all([
|
|
26024
|
+
fetchIntrinsicYields(),
|
|
26025
|
+
fetchLenderRewards()
|
|
26026
|
+
]);
|
|
26027
|
+
return { intrinsicYields, lenderRewards };
|
|
26028
|
+
};
|
|
26029
|
+
var fetchGeneralYieldsByMarketUid = async () => {
|
|
26030
|
+
const { intrinsicYields, lenderRewards } = await fetchGeneralYields();
|
|
25832
26031
|
return {
|
|
25833
26032
|
intrinsicYields,
|
|
25834
|
-
lenderRewards:
|
|
26033
|
+
lenderRewards: flattenLenderRewards(lenderRewards)
|
|
25835
26034
|
};
|
|
25836
26035
|
};
|
|
26036
|
+
var flattenLenderRewards = (input) => {
|
|
26037
|
+
const result = {};
|
|
26038
|
+
for (const chainId in input) {
|
|
26039
|
+
const lenderMap = input[chainId];
|
|
26040
|
+
for (const lender in lenderMap) {
|
|
26041
|
+
const assetMap = lenderMap[lender];
|
|
26042
|
+
for (const asset in assetMap) {
|
|
26043
|
+
const reward = assetMap[asset];
|
|
26044
|
+
const marketUid = createMarketUid(chainId, lender, asset);
|
|
26045
|
+
result[marketUid] = reward;
|
|
26046
|
+
}
|
|
26047
|
+
}
|
|
26048
|
+
}
|
|
26049
|
+
return result;
|
|
26050
|
+
};
|
|
25837
26051
|
|
|
25838
26052
|
// src/prices/defillama/index.ts
|
|
25839
26053
|
var prefixEthereum = "ethereum:";
|
|
@@ -25982,7 +26196,7 @@ var datasManta = [manta].map((d) => prefixManta + d).join(",");
|
|
|
25982
26196
|
var datasTelos = [wtlos].map((d) => prefixTelos + d).join(",");
|
|
25983
26197
|
var datasbsc = [xpl].map((d) => prefixbsc + d).join(",");
|
|
25984
26198
|
var datasmoonbeam = [glmr].map((d) => prefixmoonbeam + d).join(",");
|
|
25985
|
-
var
|
|
26199
|
+
var URL2 = `https://coins.llama.fi/prices/current/${[
|
|
25986
26200
|
datasEthereum,
|
|
25987
26201
|
datasAvalanche,
|
|
25988
26202
|
datasArbitrum,
|
|
@@ -26105,7 +26319,7 @@ var SYMBOL_MAP = {
|
|
|
26105
26319
|
};
|
|
26106
26320
|
async function fetchDefillamaData() {
|
|
26107
26321
|
try {
|
|
26108
|
-
const res = await fetch(
|
|
26322
|
+
const res = await fetch(URL2).then((a) => a.json());
|
|
26109
26323
|
let prices = Object.assign(
|
|
26110
26324
|
{},
|
|
26111
26325
|
...Object.values(res.coins).map((k) => {
|
|
@@ -30120,6 +30334,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
30120
30334
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
30121
30335
|
}
|
|
30122
30336
|
|
|
30123
|
-
export { EMPTY_BALANCE, MORPHO_LENS, applyPositionDelta, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchMainPrices, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPairs, generateLendingPools, getAavesForChain, getAssetConfig, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMergedUserData, getMorphoTypeMarketConverter, getTopPairs, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
30337
|
+
export { EMPTY_BALANCE, MORPHO_LENS, applyPositionDelta, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchMainPrices, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPairs, generateLendingPools, getAavesForChain, getAssetConfig, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMergedUserData, getMorphoTypeMarketConverter, getTopPairs, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
30124
30338
|
//# sourceMappingURL=index.js.map
|
|
30125
30339
|
//# sourceMappingURL=index.js.map
|