@1delta/margin-fetcher 0.0.252 → 0.0.253
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.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +429 -5
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/fetchLender.d.ts.map +1 -1
- package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts +12 -0
- package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts.map +1 -0
- package/dist/vaults/euler-earn/fetchPublic.d.ts +24 -0
- package/dist/vaults/euler-earn/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/euler-earn/index.d.ts +4 -0
- package/dist/vaults/euler-earn/index.d.ts.map +1 -0
- package/dist/vaults/euler-earn/types.d.ts +70 -0
- package/dist/vaults/euler-earn/types.d.ts.map +1 -0
- package/dist/vaults/fetchVaultsAll.d.ts +4 -2
- package/dist/vaults/fetchVaultsAll.d.ts.map +1 -1
- package/dist/vaults/index.d.ts +1 -0
- package/dist/vaults/index.d.ts.map +1 -1
- package/dist/vaults/morpho/fetchFromChain.d.ts +30 -0
- package/dist/vaults/morpho/fetchFromChain.d.ts.map +1 -0
- package/dist/vaults/morpho/fetchListaFromChain.d.ts +34 -0
- package/dist/vaults/morpho/fetchListaFromChain.d.ts.map +1 -0
- package/dist/vaults/morpho/index.d.ts +2 -0
- package/dist/vaults/morpho/index.d.ts.map +1 -1
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { fetchGeneralYields, fetchGeneralYieldsByMarketUid } from './yields';
|
|
|
4
4
|
export { fetchPendlePrices, fetchOraclePrices, selectAssetGroupPrices, type TokenListInput, type FetchOraclePricesOptions, type OraclePriceEntry, type StructuredOraclePrices, type USDPriceMap, type MorphoMarketOverrides, type ListaMarketOverrides, type OracleDiagnostics, type OraclePricesResult, type ChainDiagnostic, type TrackerDiagnostic, type StaleFeedEntry, } from './prices';
|
|
5
5
|
export { getLendersForChain, filterLendersByProtocol, getAavesForChain, getLenderAssets, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isAaveV3Type, isAaveV2Type, isYLDR, isAaveV32Type, isAaveType, isMultiMarket, createMarketUid, } from './utils';
|
|
6
6
|
export { fetchFlashLiquidityForChain, attachPricesToFlashLiquidity, } from './flash-liquidity';
|
|
7
|
-
export { buildFluidFTokensCall, getFluidFTokensConverter, fetchFluidFTokens, type FluidFToken, type FluidFTokens, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromSubgraph, hasMorphoVaultSubgraph, type MorphoVault, type MorphoVaults, fetchSiloVaults, type SiloVault, type SiloVaults, getVaultPublicDataAll, type VaultProvider, type VaultPublicDataAll, type GetVaultPublicDataAllOptions, } from './vaults';
|
|
7
|
+
export { buildFluidFTokensCall, getFluidFTokensConverter, fetchFluidFTokens, type FluidFToken, type FluidFTokens, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromSubgraph, fetchMorphoVaultsFromChain, type FetchMorphoVaultsFromChainOptions, fetchListaVaultsFromChain, type FetchListaVaultsFromChainOptions, hasMorphoVaultSubgraph, type MorphoVault, type MorphoVaults, fetchSiloVaults, type SiloVault, type SiloVaults, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, hasEulerEarnVaultSubgraph, type EulerEarnVault, type EulerEarnVaults, getVaultPublicDataAll, type VaultProvider, type VaultPublicDataAll, type GetVaultPublicDataAllOptions, } from './vaults';
|
|
8
8
|
export { type GenericCurrency, type GenericTokenList, type ParsedResponse, type ChainLinkResponse, type LenderRewardsMap, type NumberMap, type FullLenderRewardsMap, type AdditionalYields, type TokenList, type LenderUserQuery, type UserLendingPosition, type LenderUserResponse, type AaveV2UserReserveResponse, type AaveV3UserReserveResponse, type MorphoUserReserveResponse, type CompoundV3UserReserveResponse, type AaveV3Public, type LenderPublicBase, type LenderYields, type LenderTotalAmounts, type LenderConfigMap, type LenderConfigData, type ModeBase, type EModeData, type AaveV2Public, type CompoundV3Public, type UserApr, type InitUserReserveResponse, type InitPublic, type LenderData, type PoolData, type ConfigEntry, } from './types';
|
|
9
9
|
export { computeDepositDelta, computeWithdrawDelta, computeBorrowDelta, computeRepayDelta, getHealthFactor, getBorrowCapacity, getAssetConfig, computePostTradeMetrics, EMPTY_BALANCE, } from './lending/margin/base';
|
|
10
10
|
export type { PostTradeMetrics } from './lending/margin/base';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3
|
|
|
5
5
|
export { isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR } from '@1delta/lender-registry';
|
|
6
6
|
import lodash from 'lodash';
|
|
7
7
|
import { getEvmChain, getEvmClient, getEvmClientUniversal, multicallRetryUniversal } from '@1delta/providers';
|
|
8
|
-
import { FluidLendingResolverAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, FluidVaultResolverAbi, GearboxMarketCompressorV310Abi, MorphoBlueAbi, GearboxCreditAccountCompressorV310Abi } from '@1delta/abis';
|
|
8
|
+
import { FluidLendingResolverAbi, MetaMorphoAbi, MoolahVaultAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, FluidVaultResolverAbi, GearboxMarketCompressorV310Abi, MorphoBlueAbi, GearboxCreditAccountCompressorV310Abi } from '@1delta/abis';
|
|
9
9
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
10
10
|
import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, InitMarginAddresses } from '@1delta/calldata-sdk';
|
|
11
11
|
import { proxyNativeFetch } from '@1delta/proxy-fetch';
|
|
@@ -6269,6 +6269,7 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
6269
6269
|
morphoOracles: {},
|
|
6270
6270
|
morphoTypeOracles: {},
|
|
6271
6271
|
morphoTypeMarkets: {},
|
|
6272
|
+
morphoTypeVaults: {},
|
|
6272
6273
|
aaveOraclesConfig: {},
|
|
6273
6274
|
aaveWethGateway: {},
|
|
6274
6275
|
morphoBundler3: {},
|
|
@@ -6300,6 +6301,7 @@ var aaveOracles = () => getGlobalData2()?.aaveOracles;
|
|
|
6300
6301
|
var compoundV2Oracles = () => getGlobalData2()?.compoundV2Oracles;
|
|
6301
6302
|
var compoundV3OraclesData = () => getGlobalData2()?.compoundV3OraclesData;
|
|
6302
6303
|
var morphoTypeMarkets = () => getGlobalData2()?.morphoTypeMarkets;
|
|
6304
|
+
var morphoTypeVaults = () => getGlobalData2()?.morphoTypeVaults;
|
|
6303
6305
|
var aaveReserves = () => getGlobalData2()?.aaveReserves;
|
|
6304
6306
|
var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
|
|
6305
6307
|
var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
|
|
@@ -8118,6 +8120,9 @@ function encode(type, value, isArray2 = false) {
|
|
|
8118
8120
|
throw new UnsupportedPackedAbiType(type);
|
|
8119
8121
|
}
|
|
8120
8122
|
|
|
8123
|
+
// ../../node_modules/.pnpm/viem@2.45.3_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@6.0.6_zod@4.3.6/node_modules/viem/_esm/constants/bytes.js
|
|
8124
|
+
var zeroHash = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
8125
|
+
|
|
8121
8126
|
// ../../node_modules/.pnpm/viem@2.45.3_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@6.0.6_zod@4.3.6/node_modules/viem/_esm/errors/unit.js
|
|
8122
8127
|
var InvalidDecimalNumberError = class extends BaseError {
|
|
8123
8128
|
constructor({ value }) {
|
|
@@ -19835,11 +19840,14 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
19835
19840
|
return {};
|
|
19836
19841
|
}) => {
|
|
19837
19842
|
let calls = [];
|
|
19843
|
+
const validLenders = [];
|
|
19838
19844
|
for (const lender of lenders) {
|
|
19839
19845
|
const abi = getAbi(lender);
|
|
19840
19846
|
const callData = buildLenderCall(chainId, lender);
|
|
19847
|
+
if (callData.some((c) => !c.address)) continue;
|
|
19841
19848
|
const mappedCalls = callData.map((call) => ({ call, abi: call.abi ?? abi }));
|
|
19842
19849
|
calls.push(...mappedCalls);
|
|
19850
|
+
validLenders.push(lender);
|
|
19843
19851
|
}
|
|
19844
19852
|
const [rawResults, list] = await Promise.all([
|
|
19845
19853
|
multicallRetry({
|
|
@@ -19853,7 +19861,7 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
19853
19861
|
const invalidLenders = [];
|
|
19854
19862
|
let lenderData = {};
|
|
19855
19863
|
let currentSlice = 0;
|
|
19856
|
-
for (const lender of
|
|
19864
|
+
for (const lender of validLenders) {
|
|
19857
19865
|
const [converter, sliceLength] = getLenderDataConverter(
|
|
19858
19866
|
lender,
|
|
19859
19867
|
chainId,
|
|
@@ -34420,6 +34428,289 @@ var fetchMorphoVaults = async (chainId, prices = {}, tokenList = {}) => {
|
|
|
34420
34428
|
}
|
|
34421
34429
|
return fetchMorphoVaultsFromApi(chainId, prices, tokenList);
|
|
34422
34430
|
};
|
|
34431
|
+
var VAULT_CALLS = [
|
|
34432
|
+
"name",
|
|
34433
|
+
"symbol",
|
|
34434
|
+
"decimals",
|
|
34435
|
+
"totalAssets",
|
|
34436
|
+
"totalSupply",
|
|
34437
|
+
"fee",
|
|
34438
|
+
"timelock",
|
|
34439
|
+
"owner",
|
|
34440
|
+
"curator",
|
|
34441
|
+
"guardian"
|
|
34442
|
+
];
|
|
34443
|
+
var CALLS_PER_VAULT = VAULT_CALLS.length;
|
|
34444
|
+
var FEE_SCALE = 1e18;
|
|
34445
|
+
var isHex40 = (addr) => typeof addr === "string" && /^0x[0-9a-f]{40}$/i.test(addr);
|
|
34446
|
+
var lcOrUndefined = (addr) => isHex40(addr) ? addr.toLowerCase() : void 0;
|
|
34447
|
+
var toNumberSafe = (raw, fallback = 0) => {
|
|
34448
|
+
if (raw === void 0 || raw === null) return fallback;
|
|
34449
|
+
const n = Number(raw);
|
|
34450
|
+
return Number.isFinite(n) ? n : fallback;
|
|
34451
|
+
};
|
|
34452
|
+
var toStringSafe = (raw, fallback = "") => {
|
|
34453
|
+
if (raw === void 0 || raw === null) return fallback;
|
|
34454
|
+
return String(raw);
|
|
34455
|
+
};
|
|
34456
|
+
var DEFAULT_SKIP_PROTOCOLS = /* @__PURE__ */ new Set(["LISTA_DAO"]);
|
|
34457
|
+
var collectEntries = (chainId, protocols, skip) => {
|
|
34458
|
+
const all = morphoTypeVaults() ?? {};
|
|
34459
|
+
const out = [];
|
|
34460
|
+
const seen = /* @__PURE__ */ new Set();
|
|
34461
|
+
const protocolKeys = protocols && protocols.length > 0 ? protocols : Object.keys(all);
|
|
34462
|
+
for (const protocol of protocolKeys) {
|
|
34463
|
+
if (skip?.has(protocol)) continue;
|
|
34464
|
+
const list = all[protocol]?.[chainId] ?? [];
|
|
34465
|
+
for (const entry of list) {
|
|
34466
|
+
const vaultAddr = entry?.vault?.toLowerCase();
|
|
34467
|
+
if (!vaultAddr || seen.has(vaultAddr)) continue;
|
|
34468
|
+
seen.add(vaultAddr);
|
|
34469
|
+
out.push({ protocol, entry });
|
|
34470
|
+
}
|
|
34471
|
+
}
|
|
34472
|
+
return out;
|
|
34473
|
+
};
|
|
34474
|
+
var fetchMorphoVaultsFromChain = async (chainId, multicallRetry, prices = {}, tokenList = {}, opts = {}) => {
|
|
34475
|
+
const entries = opts.vaultsOverride ? opts.vaultsOverride.map((entry) => ({ protocol: "", entry })) : collectEntries(chainId, opts.protocols, DEFAULT_SKIP_PROTOCOLS);
|
|
34476
|
+
if (entries.length === 0) return {};
|
|
34477
|
+
const calls = entries.flatMap(
|
|
34478
|
+
({ entry }) => VAULT_CALLS.map((name) => ({
|
|
34479
|
+
address: entry.vault,
|
|
34480
|
+
name,
|
|
34481
|
+
params: []
|
|
34482
|
+
}))
|
|
34483
|
+
);
|
|
34484
|
+
const raw = await multicallRetry({
|
|
34485
|
+
chain: chainId,
|
|
34486
|
+
calls,
|
|
34487
|
+
abi: calls.map(() => MetaMorphoAbi),
|
|
34488
|
+
allowFailure: true
|
|
34489
|
+
});
|
|
34490
|
+
const out = {};
|
|
34491
|
+
for (let i = 0; i < entries.length; i++) {
|
|
34492
|
+
const { entry } = entries[i];
|
|
34493
|
+
const base = i * CALLS_PER_VAULT;
|
|
34494
|
+
const slice = raw.slice(base, base + CALLS_PER_VAULT);
|
|
34495
|
+
const parsed = parseVault4(entry, slice, chainId, prices, tokenList);
|
|
34496
|
+
if (parsed) out[parsed.address] = parsed;
|
|
34497
|
+
}
|
|
34498
|
+
return out;
|
|
34499
|
+
};
|
|
34500
|
+
function parseVault4(entry, results, chainId, prices, tokenList) {
|
|
34501
|
+
const address = entry?.vault?.toLowerCase();
|
|
34502
|
+
const underlying = entry?.underlying?.toLowerCase();
|
|
34503
|
+
if (!address || !underlying) return null;
|
|
34504
|
+
const [
|
|
34505
|
+
nameRaw,
|
|
34506
|
+
symbolRaw,
|
|
34507
|
+
decimalsRaw,
|
|
34508
|
+
totalAssetsRaw,
|
|
34509
|
+
totalSupplyRaw,
|
|
34510
|
+
feeRaw,
|
|
34511
|
+
timelockRaw,
|
|
34512
|
+
ownerRaw,
|
|
34513
|
+
curatorRaw,
|
|
34514
|
+
guardianRaw
|
|
34515
|
+
] = results;
|
|
34516
|
+
const assetMeta = tokenList[underlying];
|
|
34517
|
+
const decimals = Number(decimalsRaw ?? assetMeta?.decimals ?? 18);
|
|
34518
|
+
const totalAssets = toStringSafe(totalAssetsRaw, "0");
|
|
34519
|
+
const totalSupply = toStringSafe(totalSupplyRaw, "0");
|
|
34520
|
+
const totalAssetsFormatted = Number(parseRawAmount(totalAssets, decimals));
|
|
34521
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
|
|
34522
|
+
const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
|
|
34523
|
+
const onchainName = toStringSafe(nameRaw).trim();
|
|
34524
|
+
const fallbackName = onchainName || (entry.name ?? "").trim();
|
|
34525
|
+
const symbol = toStringSafe(symbolRaw);
|
|
34526
|
+
const fee = toNumberSafe(feeRaw) / FEE_SCALE * 100;
|
|
34527
|
+
const timelock = toNumberSafe(timelockRaw);
|
|
34528
|
+
return {
|
|
34529
|
+
address,
|
|
34530
|
+
underlying,
|
|
34531
|
+
symbol,
|
|
34532
|
+
name: fallbackName,
|
|
34533
|
+
displayName: composeVaultDisplayName("Morpho", void 0, assetMeta, fallbackName),
|
|
34534
|
+
decimals,
|
|
34535
|
+
totalAssets,
|
|
34536
|
+
totalSupply,
|
|
34537
|
+
// On-chain path can't compute the per-allocation supply APR without
|
|
34538
|
+
// walking the underlying market list — surface 0 like the Goldsky path
|
|
34539
|
+
// does for rewards. Callers that need APR on these vaults should layer
|
|
34540
|
+
// it in separately or fall back to the API/subgraph fetchers.
|
|
34541
|
+
supplyRate: 0,
|
|
34542
|
+
rewardsRate: 0,
|
|
34543
|
+
depositRate: 0,
|
|
34544
|
+
fee,
|
|
34545
|
+
timelock,
|
|
34546
|
+
whitelisted: true,
|
|
34547
|
+
owner: lcOrUndefined(ownerRaw),
|
|
34548
|
+
curator: lcOrUndefined(curatorRaw),
|
|
34549
|
+
guardian: lcOrUndefined(guardianRaw),
|
|
34550
|
+
asset: assetMeta,
|
|
34551
|
+
priceUsd: priceUsd || void 0,
|
|
34552
|
+
totalAssetsFormatted,
|
|
34553
|
+
totalAssetsUsd: totalAssetsFormatted * priceUsd,
|
|
34554
|
+
// No on-chain "immediately withdrawable" figure without summing the
|
|
34555
|
+
// public allocator's per-market caps. Use totalAssets as an optimistic
|
|
34556
|
+
// ceiling — same convention as Silo / Euler-Earn / Morpho-Goldsky.
|
|
34557
|
+
liquidity: totalAssets,
|
|
34558
|
+
liquidityFormatted: totalAssetsFormatted,
|
|
34559
|
+
liquidityUsd: totalAssetsFormatted * priceUsd
|
|
34560
|
+
};
|
|
34561
|
+
}
|
|
34562
|
+
var LISTA_PROTOCOL = "LISTA_DAO";
|
|
34563
|
+
var PHASE1_CALLS = [
|
|
34564
|
+
"name",
|
|
34565
|
+
"symbol",
|
|
34566
|
+
"decimals",
|
|
34567
|
+
"totalAssets",
|
|
34568
|
+
"totalSupply",
|
|
34569
|
+
"fee",
|
|
34570
|
+
"feeRecipient",
|
|
34571
|
+
"CURATOR"
|
|
34572
|
+
];
|
|
34573
|
+
var PHASE1_PER_VAULT = PHASE1_CALLS.length;
|
|
34574
|
+
var FEE_SCALE2 = 1e18;
|
|
34575
|
+
var isHex402 = (addr) => typeof addr === "string" && /^0x[0-9a-f]{40}$/i.test(addr);
|
|
34576
|
+
var lcOrUndefined2 = (addr) => {
|
|
34577
|
+
if (!isHex402(addr)) return void 0;
|
|
34578
|
+
const lower = addr.toLowerCase();
|
|
34579
|
+
return lower === zeroAddress ? void 0 : lower;
|
|
34580
|
+
};
|
|
34581
|
+
var isHex64 = (val) => typeof val === "string" && /^0x[0-9a-f]{64}$/i.test(val);
|
|
34582
|
+
var toNumberSafe2 = (raw, fallback = 0) => {
|
|
34583
|
+
if (raw === void 0 || raw === null) return fallback;
|
|
34584
|
+
const n = Number(raw);
|
|
34585
|
+
return Number.isFinite(n) ? n : fallback;
|
|
34586
|
+
};
|
|
34587
|
+
var toStringSafe2 = (raw, fallback = "") => {
|
|
34588
|
+
if (raw === void 0 || raw === null) return fallback;
|
|
34589
|
+
return String(raw);
|
|
34590
|
+
};
|
|
34591
|
+
var collectEntries2 = (chainId) => {
|
|
34592
|
+
const list = morphoTypeVaults()?.[LISTA_PROTOCOL]?.[chainId] ?? [];
|
|
34593
|
+
const seen = /* @__PURE__ */ new Set();
|
|
34594
|
+
const out = [];
|
|
34595
|
+
for (const entry of list) {
|
|
34596
|
+
const vaultAddr = entry?.vault?.toLowerCase();
|
|
34597
|
+
if (!vaultAddr || seen.has(vaultAddr)) continue;
|
|
34598
|
+
seen.add(vaultAddr);
|
|
34599
|
+
out.push(entry);
|
|
34600
|
+
}
|
|
34601
|
+
return out;
|
|
34602
|
+
};
|
|
34603
|
+
var fetchListaVaultsFromChain = async (chainId, multicallRetry, prices = {}, tokenList = {}, opts = {}) => {
|
|
34604
|
+
const entries = opts.vaultsOverride ?? collectEntries2(chainId);
|
|
34605
|
+
if (entries.length === 0) return {};
|
|
34606
|
+
const phase1Calls = entries.flatMap(
|
|
34607
|
+
(entry) => PHASE1_CALLS.map((name) => ({
|
|
34608
|
+
address: entry.vault,
|
|
34609
|
+
name,
|
|
34610
|
+
params: []
|
|
34611
|
+
}))
|
|
34612
|
+
);
|
|
34613
|
+
const phase1 = await multicallRetry({
|
|
34614
|
+
chain: chainId,
|
|
34615
|
+
calls: phase1Calls,
|
|
34616
|
+
abi: phase1Calls.map(() => MoolahVaultAbi),
|
|
34617
|
+
allowFailure: true
|
|
34618
|
+
});
|
|
34619
|
+
const curatorRoleByVault = [];
|
|
34620
|
+
for (let i = 0; i < entries.length; i++) {
|
|
34621
|
+
const role = phase1[i * PHASE1_PER_VAULT + 7];
|
|
34622
|
+
curatorRoleByVault.push(isHex64(role) ? role : void 0);
|
|
34623
|
+
}
|
|
34624
|
+
const phase2Calls = entries.map((entry, i) => ({
|
|
34625
|
+
address: entry.vault,
|
|
34626
|
+
name: "getRoleMember",
|
|
34627
|
+
params: [curatorRoleByVault[i] ?? zeroHash, 0n]
|
|
34628
|
+
}));
|
|
34629
|
+
const phase2 = await multicallRetry({
|
|
34630
|
+
chain: chainId,
|
|
34631
|
+
calls: phase2Calls,
|
|
34632
|
+
abi: phase2Calls.map(() => MoolahVaultAbi),
|
|
34633
|
+
allowFailure: true
|
|
34634
|
+
});
|
|
34635
|
+
const out = {};
|
|
34636
|
+
for (let i = 0; i < entries.length; i++) {
|
|
34637
|
+
const entry = entries[i];
|
|
34638
|
+
const slice = phase1.slice(
|
|
34639
|
+
i * PHASE1_PER_VAULT,
|
|
34640
|
+
(i + 1) * PHASE1_PER_VAULT
|
|
34641
|
+
);
|
|
34642
|
+
const curatorAddrRaw = curatorRoleByVault[i] ? phase2[i] : void 0;
|
|
34643
|
+
const parsed = parseVault5(
|
|
34644
|
+
entry,
|
|
34645
|
+
slice,
|
|
34646
|
+
curatorAddrRaw,
|
|
34647
|
+
chainId,
|
|
34648
|
+
prices,
|
|
34649
|
+
tokenList
|
|
34650
|
+
);
|
|
34651
|
+
if (parsed) out[parsed.address] = parsed;
|
|
34652
|
+
}
|
|
34653
|
+
return out;
|
|
34654
|
+
};
|
|
34655
|
+
function parseVault5(entry, results, curatorAddrRaw, chainId, prices, tokenList) {
|
|
34656
|
+
const address = entry?.vault?.toLowerCase();
|
|
34657
|
+
const underlying = entry?.underlying?.toLowerCase();
|
|
34658
|
+
if (!address || !underlying) return null;
|
|
34659
|
+
const [
|
|
34660
|
+
nameRaw,
|
|
34661
|
+
symbolRaw,
|
|
34662
|
+
decimalsRaw,
|
|
34663
|
+
totalAssetsRaw,
|
|
34664
|
+
totalSupplyRaw,
|
|
34665
|
+
feeRaw,
|
|
34666
|
+
/* feeRecipientRaw */
|
|
34667
|
+
,
|
|
34668
|
+
/* curatorRoleRaw */
|
|
34669
|
+
,
|
|
34670
|
+
] = results;
|
|
34671
|
+
const assetMeta = tokenList[underlying];
|
|
34672
|
+
const decimals = Number(decimalsRaw ?? assetMeta?.decimals ?? 18);
|
|
34673
|
+
const totalAssets = toStringSafe2(totalAssetsRaw, "0");
|
|
34674
|
+
const totalSupply = toStringSafe2(totalSupplyRaw, "0");
|
|
34675
|
+
const totalAssetsFormatted = Number(parseRawAmount(totalAssets, decimals));
|
|
34676
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
|
|
34677
|
+
const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
|
|
34678
|
+
const onchainName = toStringSafe2(nameRaw).trim();
|
|
34679
|
+
const fallbackName = onchainName || (entry.name ?? "").trim();
|
|
34680
|
+
const symbol = toStringSafe2(symbolRaw);
|
|
34681
|
+
const fee = toNumberSafe2(feeRaw) / FEE_SCALE2 * 100;
|
|
34682
|
+
return {
|
|
34683
|
+
address,
|
|
34684
|
+
underlying,
|
|
34685
|
+
symbol,
|
|
34686
|
+
name: fallbackName,
|
|
34687
|
+
displayName: composeVaultDisplayName(
|
|
34688
|
+
"Lista",
|
|
34689
|
+
void 0,
|
|
34690
|
+
assetMeta,
|
|
34691
|
+
fallbackName
|
|
34692
|
+
),
|
|
34693
|
+
decimals,
|
|
34694
|
+
totalAssets,
|
|
34695
|
+
totalSupply,
|
|
34696
|
+
supplyRate: 0,
|
|
34697
|
+
rewardsRate: 0,
|
|
34698
|
+
depositRate: 0,
|
|
34699
|
+
fee,
|
|
34700
|
+
timelock: 0,
|
|
34701
|
+
whitelisted: true,
|
|
34702
|
+
owner: void 0,
|
|
34703
|
+
curator: lcOrUndefined2(curatorAddrRaw),
|
|
34704
|
+
guardian: void 0,
|
|
34705
|
+
asset: assetMeta,
|
|
34706
|
+
priceUsd: priceUsd || void 0,
|
|
34707
|
+
totalAssetsFormatted,
|
|
34708
|
+
totalAssetsUsd: totalAssetsFormatted * priceUsd,
|
|
34709
|
+
liquidity: totalAssets,
|
|
34710
|
+
liquidityFormatted: totalAssetsFormatted,
|
|
34711
|
+
liquidityUsd: totalAssetsFormatted * priceUsd
|
|
34712
|
+
};
|
|
34713
|
+
}
|
|
34423
34714
|
|
|
34424
34715
|
// src/vaults/silo/fetchPublic.ts
|
|
34425
34716
|
var SILO_API_URL = "https://api-v3.silo.finance";
|
|
@@ -34459,7 +34750,7 @@ var toRawAmount = (decimalString, decimals) => {
|
|
|
34459
34750
|
return "0";
|
|
34460
34751
|
}
|
|
34461
34752
|
};
|
|
34462
|
-
function
|
|
34753
|
+
function parseVault6(v, chainId, prices, tokenList) {
|
|
34463
34754
|
const address = (v?.id ?? "").toLowerCase();
|
|
34464
34755
|
const assetAddr = (v?.asset?.id ?? "").toLowerCase();
|
|
34465
34756
|
if (!address || !assetAddr) return null;
|
|
@@ -34543,10 +34834,131 @@ var fetchSiloVaults = async (chainId, prices = {}, tokenList = {}, options) => {
|
|
|
34543
34834
|
if (options?.protocolVersion && v.protocol?.protocolVersion !== options.protocolVersion) {
|
|
34544
34835
|
continue;
|
|
34545
34836
|
}
|
|
34546
|
-
const parsed =
|
|
34837
|
+
const parsed = parseVault6(v, chainId, prices, tokenList);
|
|
34838
|
+
if (parsed) out[parsed.address] = parsed;
|
|
34839
|
+
}
|
|
34840
|
+
return out;
|
|
34841
|
+
};
|
|
34842
|
+
|
|
34843
|
+
// src/vaults/euler-earn/fetchFromSubgraph.ts
|
|
34844
|
+
var EULER_EARN_SUBGRAPH_URLS = {
|
|
34845
|
+
// [Chain.ETHEREUM_MAINNET]:
|
|
34846
|
+
// 'https://api.goldsky.com/api/public/<projectId>/subgraphs/euler-earn-mainnet/<ver>/gn',
|
|
34847
|
+
};
|
|
34848
|
+
var hasEulerEarnVaultSubgraph = (chainId) => chainId in EULER_EARN_SUBGRAPH_URLS;
|
|
34849
|
+
var EULER_EARN_VAULTS_QUERY = `
|
|
34850
|
+
{
|
|
34851
|
+
eulerEarnVaults(first: 200, skip: 0) {
|
|
34852
|
+
id
|
|
34853
|
+
name
|
|
34854
|
+
symbol
|
|
34855
|
+
decimals
|
|
34856
|
+
asset { id }
|
|
34857
|
+
owner { id }
|
|
34858
|
+
curator { id }
|
|
34859
|
+
guardian { id }
|
|
34860
|
+
feeRecipient
|
|
34861
|
+
performanceFee
|
|
34862
|
+
fee
|
|
34863
|
+
totalAssets
|
|
34864
|
+
totalShares
|
|
34865
|
+
supplyApy
|
|
34866
|
+
rate { id rate }
|
|
34867
|
+
}
|
|
34868
|
+
}
|
|
34869
|
+
`;
|
|
34870
|
+
function readAddress2(field5) {
|
|
34871
|
+
if (!field5) return void 0;
|
|
34872
|
+
if (typeof field5 === "string") return field5.toLowerCase();
|
|
34873
|
+
return field5.id?.toLowerCase();
|
|
34874
|
+
}
|
|
34875
|
+
function parseVaultRate2(v) {
|
|
34876
|
+
if (v.supplyApy != null) {
|
|
34877
|
+
const n = Number(v.supplyApy);
|
|
34878
|
+
if (Number.isFinite(n)) {
|
|
34879
|
+
return n < 1 ? n * 100 : n;
|
|
34880
|
+
}
|
|
34881
|
+
}
|
|
34882
|
+
if (v.rate?.rate) {
|
|
34883
|
+
const n = Number(v.rate.rate) * 100;
|
|
34884
|
+
if (Number.isFinite(n)) return n;
|
|
34885
|
+
}
|
|
34886
|
+
return 0;
|
|
34887
|
+
}
|
|
34888
|
+
function parseVaultFee(v) {
|
|
34889
|
+
const raw = v.performanceFee ?? v.fee;
|
|
34890
|
+
if (raw == null) return 0;
|
|
34891
|
+
const n = Number(raw);
|
|
34892
|
+
if (!Number.isFinite(n)) return 0;
|
|
34893
|
+
if (n < 1) return n * 100;
|
|
34894
|
+
if (n > 100) return n / 1e16;
|
|
34895
|
+
return n;
|
|
34896
|
+
}
|
|
34897
|
+
function parseVault7(v, chainId, prices, tokenList) {
|
|
34898
|
+
const address = (v?.id ?? "").toLowerCase();
|
|
34899
|
+
const assetAddr = (v?.asset?.id ?? "").toLowerCase();
|
|
34900
|
+
if (!address || !assetAddr) return null;
|
|
34901
|
+
const assetMeta = tokenList[assetAddr];
|
|
34902
|
+
const decimals = Number(v.decimals ?? assetMeta?.decimals ?? 18);
|
|
34903
|
+
const totalAssetsRaw = v.totalAssets?.toString() ?? "0";
|
|
34904
|
+
const totalAssetsFormatted = Number(parseRawAmount(totalAssetsRaw, decimals));
|
|
34905
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(assetAddr, chainId);
|
|
34906
|
+
const priceUsd = prices[oracleKey] ?? prices[assetAddr] ?? 0;
|
|
34907
|
+
const supplyRate = parseVaultRate2(v);
|
|
34908
|
+
const fee = parseVaultFee(v);
|
|
34909
|
+
return {
|
|
34910
|
+
address,
|
|
34911
|
+
underlying: assetAddr,
|
|
34912
|
+
symbol: v.symbol ?? "",
|
|
34913
|
+
name: v.name ?? "",
|
|
34914
|
+
decimals,
|
|
34915
|
+
totalAssets: totalAssetsRaw,
|
|
34916
|
+
totalSupply: v.totalShares?.toString() ?? "0",
|
|
34917
|
+
supplyRate,
|
|
34918
|
+
rewardsRate: 0,
|
|
34919
|
+
depositRate: supplyRate,
|
|
34920
|
+
fee,
|
|
34921
|
+
owner: readAddress2(v.owner),
|
|
34922
|
+
curator: readAddress2(v.curator),
|
|
34923
|
+
guardian: readAddress2(v.guardian),
|
|
34924
|
+
feeRecipient: v.feeRecipient?.toLowerCase() || void 0,
|
|
34925
|
+
asset: assetMeta,
|
|
34926
|
+
priceUsd: priceUsd || void 0,
|
|
34927
|
+
totalAssetsFormatted,
|
|
34928
|
+
totalAssetsUsd: totalAssetsFormatted * priceUsd,
|
|
34929
|
+
// Subgraph doesn't expose immediate-withdraw — same optimistic
|
|
34930
|
+
// ceiling as Morpho/Silo earn-vault fetchers.
|
|
34931
|
+
liquidity: totalAssetsRaw,
|
|
34932
|
+
liquidityFormatted: totalAssetsFormatted,
|
|
34933
|
+
liquidityUsd: totalAssetsFormatted * priceUsd
|
|
34934
|
+
};
|
|
34935
|
+
}
|
|
34936
|
+
async function fetchEulerEarnVaultsFromSubgraph(chainId, prices = {}, tokenList = {}) {
|
|
34937
|
+
const url = EULER_EARN_SUBGRAPH_URLS[chainId];
|
|
34938
|
+
if (!url) return {};
|
|
34939
|
+
const response = await fetch(url, {
|
|
34940
|
+
method: "POST",
|
|
34941
|
+
headers: { "Content-Type": "application/json" },
|
|
34942
|
+
body: JSON.stringify({ query: EULER_EARN_VAULTS_QUERY })
|
|
34943
|
+
});
|
|
34944
|
+
if (!response.ok) {
|
|
34945
|
+
throw new Error(
|
|
34946
|
+
`Euler Earn vaults subgraph failed for chain ${chainId}: ${response.status} - ${response.statusText}`
|
|
34947
|
+
);
|
|
34948
|
+
}
|
|
34949
|
+
const json = await response.json();
|
|
34950
|
+
const items = json?.data?.eulerEarnVaults ?? [];
|
|
34951
|
+
const out = {};
|
|
34952
|
+
for (const v of items) {
|
|
34953
|
+
const parsed = parseVault7(v, chainId, prices, tokenList);
|
|
34547
34954
|
if (parsed) out[parsed.address] = parsed;
|
|
34548
34955
|
}
|
|
34549
34956
|
return out;
|
|
34957
|
+
}
|
|
34958
|
+
|
|
34959
|
+
// src/vaults/euler-earn/fetchPublic.ts
|
|
34960
|
+
var fetchEulerEarnVaults = async (chainId, prices = {}, tokenList = {}) => {
|
|
34961
|
+
return fetchEulerEarnVaultsFromSubgraph(chainId, prices, tokenList);
|
|
34550
34962
|
};
|
|
34551
34963
|
var warn3 = (...args) => {
|
|
34552
34964
|
};
|
|
@@ -34606,6 +35018,18 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
34606
35018
|
})
|
|
34607
35019
|
);
|
|
34608
35020
|
}
|
|
35021
|
+
if (requested.has("euler-earn")) {
|
|
35022
|
+
tasks.push(
|
|
35023
|
+
fetchEulerEarnVaults(chainId, prices, tokenList).then((res) => {
|
|
35024
|
+
out["euler-earn"] = res;
|
|
35025
|
+
}).catch((e) => {
|
|
35026
|
+
warn3(
|
|
35027
|
+
`[vaults] euler-earn fetch failed for chain ${chainId}:`,
|
|
35028
|
+
e?.message ?? e
|
|
35029
|
+
);
|
|
35030
|
+
})
|
|
35031
|
+
);
|
|
35032
|
+
}
|
|
34609
35033
|
await Promise.all(tasks);
|
|
34610
35034
|
return out;
|
|
34611
35035
|
};
|
|
@@ -35096,6 +35520,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
35096
35520
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
35097
35521
|
}
|
|
35098
35522
|
|
|
35099
|
-
export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, 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, fetchEulerSubAccountIndexes, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromSubgraph, fetchOraclePrices, fetchPendlePrices, fetchSiloVaults, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getFluidFTokensConverter, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getSubAccountAddress, getSubAccountIndex, getVaultPublicDataAll, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasMorphoVaultSubgraph, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
35523
|
+
export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, 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, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchListaVaultsFromChain, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchMorphoVaultsFromSubgraph, fetchOraclePrices, fetchPendlePrices, fetchSiloVaults, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getFluidFTokensConverter, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getSubAccountAddress, getSubAccountIndex, getVaultPublicDataAll, hasEulerEarnVaultSubgraph, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasMorphoVaultSubgraph, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
35100
35524
|
//# sourceMappingURL=index.js.map
|
|
35101
35525
|
//# sourceMappingURL=index.js.map
|