@1delta/margin-fetcher 0.0.252 → 0.0.254

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 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';
@@ -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 }) {
@@ -11097,7 +11102,13 @@ var MORPHO_LENS = {
11097
11102
  [Chain.UNICHAIN]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
11098
11103
  [Chain.SEI_NETWORK]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297",
11099
11104
  [Chain.MONAD_MAINNET]: "0x0bd7473CbBf81d9dD936c61117eD230d95006CA2",
11100
- [Chain.CELO_MAINNET]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d"
11105
+ [Chain.CELO_MAINNET]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d",
11106
+ [Chain.PLUME_MAINNET]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
11107
+ [Chain.FLARE_MAINNET]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
11108
+ [Chain.STABLE_MAINNET]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
11109
+ [Chain.CORN]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
11110
+ [Chain.LISK]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
11111
+ [Chain.ABSTRACT]: "0x8e24cfc19c6c00c524353cb8816f5f1c2f33c201"
11101
11112
  };
11102
11113
  var buildMorphoUserCallWithLens = (chainId, account, lender, marketsToQuery) => {
11103
11114
  const marketSlices = chunk(marketsToQuery, 100);
@@ -19835,11 +19846,14 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
19835
19846
  return {};
19836
19847
  }) => {
19837
19848
  let calls = [];
19849
+ const validLenders = [];
19838
19850
  for (const lender of lenders) {
19839
19851
  const abi = getAbi(lender);
19840
19852
  const callData = buildLenderCall(chainId, lender);
19853
+ if (callData.some((c) => !c.address)) continue;
19841
19854
  const mappedCalls = callData.map((call) => ({ call, abi: call.abi ?? abi }));
19842
19855
  calls.push(...mappedCalls);
19856
+ validLenders.push(lender);
19843
19857
  }
19844
19858
  const [rawResults, list] = await Promise.all([
19845
19859
  multicallRetry({
@@ -19853,7 +19867,7 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
19853
19867
  const invalidLenders = [];
19854
19868
  let lenderData = {};
19855
19869
  let currentSlice = 0;
19856
- for (const lender of lenders) {
19870
+ for (const lender of validLenders) {
19857
19871
  const [converter, sliceLength] = getLenderDataConverter(
19858
19872
  lender,
19859
19873
  chainId,
@@ -20501,6 +20515,10 @@ function lenderApiOnly(lender, chainId) {
20501
20515
  if (chainId === Chain.BERACHAIN) return false;
20502
20516
  if (chainId === Chain.SEI_NETWORK) return false;
20503
20517
  if (chainId === Chain.CELO_MAINNET) return false;
20518
+ if (chainId === Chain.CORN) return false;
20519
+ if (chainId === Chain.ABSTRACT) return false;
20520
+ if (chainId === Chain.PLUME_MAINNET) return false;
20521
+ if (chainId === Chain.LISK) return false;
20504
20522
  return true;
20505
20523
  }
20506
20524
  return false;
@@ -31305,6 +31323,9 @@ function morphoApiAvailable(chainId) {
31305
31323
  if (chainId === Chain.BERACHAIN) return false;
31306
31324
  if (chainId === Chain.SEI_NETWORK) return false;
31307
31325
  if (chainId === Chain.CELO_MAINNET) return false;
31326
+ if (chainId === Chain.CORN) return false;
31327
+ if (chainId === Chain.ABSTRACT) return false;
31328
+ if (chainId === Chain.PLUME_MAINNET) return false;
31308
31329
  if (chainId === Chain.LISK) return false;
31309
31330
  if (chainId === Chain.BNB_SMART_CHAIN_MAINNET) return false;
31310
31331
  return true;
@@ -34420,6 +34441,289 @@ var fetchMorphoVaults = async (chainId, prices = {}, tokenList = {}) => {
34420
34441
  }
34421
34442
  return fetchMorphoVaultsFromApi(chainId, prices, tokenList);
34422
34443
  };
34444
+ var VAULT_CALLS = [
34445
+ "name",
34446
+ "symbol",
34447
+ "decimals",
34448
+ "totalAssets",
34449
+ "totalSupply",
34450
+ "fee",
34451
+ "timelock",
34452
+ "owner",
34453
+ "curator",
34454
+ "guardian"
34455
+ ];
34456
+ var CALLS_PER_VAULT = VAULT_CALLS.length;
34457
+ var FEE_SCALE = 1e18;
34458
+ var isHex40 = (addr) => typeof addr === "string" && /^0x[0-9a-f]{40}$/i.test(addr);
34459
+ var lcOrUndefined = (addr) => isHex40(addr) ? addr.toLowerCase() : void 0;
34460
+ var toNumberSafe = (raw, fallback = 0) => {
34461
+ if (raw === void 0 || raw === null) return fallback;
34462
+ const n = Number(raw);
34463
+ return Number.isFinite(n) ? n : fallback;
34464
+ };
34465
+ var toStringSafe = (raw, fallback = "") => {
34466
+ if (raw === void 0 || raw === null) return fallback;
34467
+ return String(raw);
34468
+ };
34469
+ var DEFAULT_SKIP_PROTOCOLS = /* @__PURE__ */ new Set(["LISTA_DAO"]);
34470
+ var collectEntries = (chainId, protocols, skip) => {
34471
+ const all = morphoTypeVaults() ?? {};
34472
+ const out = [];
34473
+ const seen = /* @__PURE__ */ new Set();
34474
+ const protocolKeys = protocols && protocols.length > 0 ? protocols : Object.keys(all);
34475
+ for (const protocol of protocolKeys) {
34476
+ if (skip?.has(protocol)) continue;
34477
+ const list = all[protocol]?.[chainId] ?? [];
34478
+ for (const entry of list) {
34479
+ const vaultAddr = entry?.vault?.toLowerCase();
34480
+ if (!vaultAddr || seen.has(vaultAddr)) continue;
34481
+ seen.add(vaultAddr);
34482
+ out.push({ protocol, entry });
34483
+ }
34484
+ }
34485
+ return out;
34486
+ };
34487
+ var fetchMorphoVaultsFromChain = async (chainId, multicallRetry, prices = {}, tokenList = {}, opts = {}) => {
34488
+ const entries = opts.vaultsOverride ? opts.vaultsOverride.map((entry) => ({ protocol: "", entry })) : collectEntries(chainId, opts.protocols, DEFAULT_SKIP_PROTOCOLS);
34489
+ if (entries.length === 0) return {};
34490
+ const calls = entries.flatMap(
34491
+ ({ entry }) => VAULT_CALLS.map((name) => ({
34492
+ address: entry.vault,
34493
+ name,
34494
+ params: []
34495
+ }))
34496
+ );
34497
+ const raw = await multicallRetry({
34498
+ chain: chainId,
34499
+ calls,
34500
+ abi: calls.map(() => MetaMorphoAbi),
34501
+ allowFailure: true
34502
+ });
34503
+ const out = {};
34504
+ for (let i = 0; i < entries.length; i++) {
34505
+ const { entry } = entries[i];
34506
+ const base = i * CALLS_PER_VAULT;
34507
+ const slice = raw.slice(base, base + CALLS_PER_VAULT);
34508
+ const parsed = parseVault4(entry, slice, chainId, prices, tokenList);
34509
+ if (parsed) out[parsed.address] = parsed;
34510
+ }
34511
+ return out;
34512
+ };
34513
+ function parseVault4(entry, results, chainId, prices, tokenList) {
34514
+ const address = entry?.vault?.toLowerCase();
34515
+ const underlying = entry?.underlying?.toLowerCase();
34516
+ if (!address || !underlying) return null;
34517
+ const [
34518
+ nameRaw,
34519
+ symbolRaw,
34520
+ decimalsRaw,
34521
+ totalAssetsRaw,
34522
+ totalSupplyRaw,
34523
+ feeRaw,
34524
+ timelockRaw,
34525
+ ownerRaw,
34526
+ curatorRaw,
34527
+ guardianRaw
34528
+ ] = results;
34529
+ const assetMeta = tokenList[underlying];
34530
+ const decimals = Number(decimalsRaw ?? assetMeta?.decimals ?? 18);
34531
+ const totalAssets = toStringSafe(totalAssetsRaw, "0");
34532
+ const totalSupply = toStringSafe(totalSupplyRaw, "0");
34533
+ const totalAssetsFormatted = Number(parseRawAmount(totalAssets, decimals));
34534
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
34535
+ const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
34536
+ const onchainName = toStringSafe(nameRaw).trim();
34537
+ const fallbackName = onchainName || (entry.name ?? "").trim();
34538
+ const symbol = toStringSafe(symbolRaw);
34539
+ const fee = toNumberSafe(feeRaw) / FEE_SCALE * 100;
34540
+ const timelock = toNumberSafe(timelockRaw);
34541
+ return {
34542
+ address,
34543
+ underlying,
34544
+ symbol,
34545
+ name: fallbackName,
34546
+ displayName: composeVaultDisplayName("Morpho", void 0, assetMeta, fallbackName),
34547
+ decimals,
34548
+ totalAssets,
34549
+ totalSupply,
34550
+ // On-chain path can't compute the per-allocation supply APR without
34551
+ // walking the underlying market list — surface 0 like the Goldsky path
34552
+ // does for rewards. Callers that need APR on these vaults should layer
34553
+ // it in separately or fall back to the API/subgraph fetchers.
34554
+ supplyRate: 0,
34555
+ rewardsRate: 0,
34556
+ depositRate: 0,
34557
+ fee,
34558
+ timelock,
34559
+ whitelisted: true,
34560
+ owner: lcOrUndefined(ownerRaw),
34561
+ curator: lcOrUndefined(curatorRaw),
34562
+ guardian: lcOrUndefined(guardianRaw),
34563
+ asset: assetMeta,
34564
+ priceUsd: priceUsd || void 0,
34565
+ totalAssetsFormatted,
34566
+ totalAssetsUsd: totalAssetsFormatted * priceUsd,
34567
+ // No on-chain "immediately withdrawable" figure without summing the
34568
+ // public allocator's per-market caps. Use totalAssets as an optimistic
34569
+ // ceiling — same convention as Silo / Euler-Earn / Morpho-Goldsky.
34570
+ liquidity: totalAssets,
34571
+ liquidityFormatted: totalAssetsFormatted,
34572
+ liquidityUsd: totalAssetsFormatted * priceUsd
34573
+ };
34574
+ }
34575
+ var LISTA_PROTOCOL = "LISTA_DAO";
34576
+ var PHASE1_CALLS = [
34577
+ "name",
34578
+ "symbol",
34579
+ "decimals",
34580
+ "totalAssets",
34581
+ "totalSupply",
34582
+ "fee",
34583
+ "feeRecipient",
34584
+ "CURATOR"
34585
+ ];
34586
+ var PHASE1_PER_VAULT = PHASE1_CALLS.length;
34587
+ var FEE_SCALE2 = 1e18;
34588
+ var isHex402 = (addr) => typeof addr === "string" && /^0x[0-9a-f]{40}$/i.test(addr);
34589
+ var lcOrUndefined2 = (addr) => {
34590
+ if (!isHex402(addr)) return void 0;
34591
+ const lower = addr.toLowerCase();
34592
+ return lower === zeroAddress ? void 0 : lower;
34593
+ };
34594
+ var isHex64 = (val) => typeof val === "string" && /^0x[0-9a-f]{64}$/i.test(val);
34595
+ var toNumberSafe2 = (raw, fallback = 0) => {
34596
+ if (raw === void 0 || raw === null) return fallback;
34597
+ const n = Number(raw);
34598
+ return Number.isFinite(n) ? n : fallback;
34599
+ };
34600
+ var toStringSafe2 = (raw, fallback = "") => {
34601
+ if (raw === void 0 || raw === null) return fallback;
34602
+ return String(raw);
34603
+ };
34604
+ var collectEntries2 = (chainId) => {
34605
+ const list = morphoTypeVaults()?.[LISTA_PROTOCOL]?.[chainId] ?? [];
34606
+ const seen = /* @__PURE__ */ new Set();
34607
+ const out = [];
34608
+ for (const entry of list) {
34609
+ const vaultAddr = entry?.vault?.toLowerCase();
34610
+ if (!vaultAddr || seen.has(vaultAddr)) continue;
34611
+ seen.add(vaultAddr);
34612
+ out.push(entry);
34613
+ }
34614
+ return out;
34615
+ };
34616
+ var fetchListaVaultsFromChain = async (chainId, multicallRetry, prices = {}, tokenList = {}, opts = {}) => {
34617
+ const entries = opts.vaultsOverride ?? collectEntries2(chainId);
34618
+ if (entries.length === 0) return {};
34619
+ const phase1Calls = entries.flatMap(
34620
+ (entry) => PHASE1_CALLS.map((name) => ({
34621
+ address: entry.vault,
34622
+ name,
34623
+ params: []
34624
+ }))
34625
+ );
34626
+ const phase1 = await multicallRetry({
34627
+ chain: chainId,
34628
+ calls: phase1Calls,
34629
+ abi: phase1Calls.map(() => MoolahVaultAbi),
34630
+ allowFailure: true
34631
+ });
34632
+ const curatorRoleByVault = [];
34633
+ for (let i = 0; i < entries.length; i++) {
34634
+ const role = phase1[i * PHASE1_PER_VAULT + 7];
34635
+ curatorRoleByVault.push(isHex64(role) ? role : void 0);
34636
+ }
34637
+ const phase2Calls = entries.map((entry, i) => ({
34638
+ address: entry.vault,
34639
+ name: "getRoleMember",
34640
+ params: [curatorRoleByVault[i] ?? zeroHash, 0n]
34641
+ }));
34642
+ const phase2 = await multicallRetry({
34643
+ chain: chainId,
34644
+ calls: phase2Calls,
34645
+ abi: phase2Calls.map(() => MoolahVaultAbi),
34646
+ allowFailure: true
34647
+ });
34648
+ const out = {};
34649
+ for (let i = 0; i < entries.length; i++) {
34650
+ const entry = entries[i];
34651
+ const slice = phase1.slice(
34652
+ i * PHASE1_PER_VAULT,
34653
+ (i + 1) * PHASE1_PER_VAULT
34654
+ );
34655
+ const curatorAddrRaw = curatorRoleByVault[i] ? phase2[i] : void 0;
34656
+ const parsed = parseVault5(
34657
+ entry,
34658
+ slice,
34659
+ curatorAddrRaw,
34660
+ chainId,
34661
+ prices,
34662
+ tokenList
34663
+ );
34664
+ if (parsed) out[parsed.address] = parsed;
34665
+ }
34666
+ return out;
34667
+ };
34668
+ function parseVault5(entry, results, curatorAddrRaw, chainId, prices, tokenList) {
34669
+ const address = entry?.vault?.toLowerCase();
34670
+ const underlying = entry?.underlying?.toLowerCase();
34671
+ if (!address || !underlying) return null;
34672
+ const [
34673
+ nameRaw,
34674
+ symbolRaw,
34675
+ decimalsRaw,
34676
+ totalAssetsRaw,
34677
+ totalSupplyRaw,
34678
+ feeRaw,
34679
+ /* feeRecipientRaw */
34680
+ ,
34681
+ /* curatorRoleRaw */
34682
+ ,
34683
+ ] = results;
34684
+ const assetMeta = tokenList[underlying];
34685
+ const decimals = Number(decimalsRaw ?? assetMeta?.decimals ?? 18);
34686
+ const totalAssets = toStringSafe2(totalAssetsRaw, "0");
34687
+ const totalSupply = toStringSafe2(totalSupplyRaw, "0");
34688
+ const totalAssetsFormatted = Number(parseRawAmount(totalAssets, decimals));
34689
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
34690
+ const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
34691
+ const onchainName = toStringSafe2(nameRaw).trim();
34692
+ const fallbackName = onchainName || (entry.name ?? "").trim();
34693
+ const symbol = toStringSafe2(symbolRaw);
34694
+ const fee = toNumberSafe2(feeRaw) / FEE_SCALE2 * 100;
34695
+ return {
34696
+ address,
34697
+ underlying,
34698
+ symbol,
34699
+ name: fallbackName,
34700
+ displayName: composeVaultDisplayName(
34701
+ "Lista",
34702
+ void 0,
34703
+ assetMeta,
34704
+ fallbackName
34705
+ ),
34706
+ decimals,
34707
+ totalAssets,
34708
+ totalSupply,
34709
+ supplyRate: 0,
34710
+ rewardsRate: 0,
34711
+ depositRate: 0,
34712
+ fee,
34713
+ timelock: 0,
34714
+ whitelisted: true,
34715
+ owner: void 0,
34716
+ curator: lcOrUndefined2(curatorAddrRaw),
34717
+ guardian: void 0,
34718
+ asset: assetMeta,
34719
+ priceUsd: priceUsd || void 0,
34720
+ totalAssetsFormatted,
34721
+ totalAssetsUsd: totalAssetsFormatted * priceUsd,
34722
+ liquidity: totalAssets,
34723
+ liquidityFormatted: totalAssetsFormatted,
34724
+ liquidityUsd: totalAssetsFormatted * priceUsd
34725
+ };
34726
+ }
34423
34727
 
34424
34728
  // src/vaults/silo/fetchPublic.ts
34425
34729
  var SILO_API_URL = "https://api-v3.silo.finance";
@@ -34459,7 +34763,7 @@ var toRawAmount = (decimalString, decimals) => {
34459
34763
  return "0";
34460
34764
  }
34461
34765
  };
34462
- function parseVault4(v, chainId, prices, tokenList) {
34766
+ function parseVault6(v, chainId, prices, tokenList) {
34463
34767
  const address = (v?.id ?? "").toLowerCase();
34464
34768
  const assetAddr = (v?.asset?.id ?? "").toLowerCase();
34465
34769
  if (!address || !assetAddr) return null;
@@ -34543,10 +34847,131 @@ var fetchSiloVaults = async (chainId, prices = {}, tokenList = {}, options) => {
34543
34847
  if (options?.protocolVersion && v.protocol?.protocolVersion !== options.protocolVersion) {
34544
34848
  continue;
34545
34849
  }
34546
- const parsed = parseVault4(v, chainId, prices, tokenList);
34850
+ const parsed = parseVault6(v, chainId, prices, tokenList);
34851
+ if (parsed) out[parsed.address] = parsed;
34852
+ }
34853
+ return out;
34854
+ };
34855
+
34856
+ // src/vaults/euler-earn/fetchFromSubgraph.ts
34857
+ var EULER_EARN_SUBGRAPH_URLS = {
34858
+ // [Chain.ETHEREUM_MAINNET]:
34859
+ // 'https://api.goldsky.com/api/public/<projectId>/subgraphs/euler-earn-mainnet/<ver>/gn',
34860
+ };
34861
+ var hasEulerEarnVaultSubgraph = (chainId) => chainId in EULER_EARN_SUBGRAPH_URLS;
34862
+ var EULER_EARN_VAULTS_QUERY = `
34863
+ {
34864
+ eulerEarnVaults(first: 200, skip: 0) {
34865
+ id
34866
+ name
34867
+ symbol
34868
+ decimals
34869
+ asset { id }
34870
+ owner { id }
34871
+ curator { id }
34872
+ guardian { id }
34873
+ feeRecipient
34874
+ performanceFee
34875
+ fee
34876
+ totalAssets
34877
+ totalShares
34878
+ supplyApy
34879
+ rate { id rate }
34880
+ }
34881
+ }
34882
+ `;
34883
+ function readAddress2(field5) {
34884
+ if (!field5) return void 0;
34885
+ if (typeof field5 === "string") return field5.toLowerCase();
34886
+ return field5.id?.toLowerCase();
34887
+ }
34888
+ function parseVaultRate2(v) {
34889
+ if (v.supplyApy != null) {
34890
+ const n = Number(v.supplyApy);
34891
+ if (Number.isFinite(n)) {
34892
+ return n < 1 ? n * 100 : n;
34893
+ }
34894
+ }
34895
+ if (v.rate?.rate) {
34896
+ const n = Number(v.rate.rate) * 100;
34897
+ if (Number.isFinite(n)) return n;
34898
+ }
34899
+ return 0;
34900
+ }
34901
+ function parseVaultFee(v) {
34902
+ const raw = v.performanceFee ?? v.fee;
34903
+ if (raw == null) return 0;
34904
+ const n = Number(raw);
34905
+ if (!Number.isFinite(n)) return 0;
34906
+ if (n < 1) return n * 100;
34907
+ if (n > 100) return n / 1e16;
34908
+ return n;
34909
+ }
34910
+ function parseVault7(v, chainId, prices, tokenList) {
34911
+ const address = (v?.id ?? "").toLowerCase();
34912
+ const assetAddr = (v?.asset?.id ?? "").toLowerCase();
34913
+ if (!address || !assetAddr) return null;
34914
+ const assetMeta = tokenList[assetAddr];
34915
+ const decimals = Number(v.decimals ?? assetMeta?.decimals ?? 18);
34916
+ const totalAssetsRaw = v.totalAssets?.toString() ?? "0";
34917
+ const totalAssetsFormatted = Number(parseRawAmount(totalAssetsRaw, decimals));
34918
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(assetAddr, chainId);
34919
+ const priceUsd = prices[oracleKey] ?? prices[assetAddr] ?? 0;
34920
+ const supplyRate = parseVaultRate2(v);
34921
+ const fee = parseVaultFee(v);
34922
+ return {
34923
+ address,
34924
+ underlying: assetAddr,
34925
+ symbol: v.symbol ?? "",
34926
+ name: v.name ?? "",
34927
+ decimals,
34928
+ totalAssets: totalAssetsRaw,
34929
+ totalSupply: v.totalShares?.toString() ?? "0",
34930
+ supplyRate,
34931
+ rewardsRate: 0,
34932
+ depositRate: supplyRate,
34933
+ fee,
34934
+ owner: readAddress2(v.owner),
34935
+ curator: readAddress2(v.curator),
34936
+ guardian: readAddress2(v.guardian),
34937
+ feeRecipient: v.feeRecipient?.toLowerCase() || void 0,
34938
+ asset: assetMeta,
34939
+ priceUsd: priceUsd || void 0,
34940
+ totalAssetsFormatted,
34941
+ totalAssetsUsd: totalAssetsFormatted * priceUsd,
34942
+ // Subgraph doesn't expose immediate-withdraw — same optimistic
34943
+ // ceiling as Morpho/Silo earn-vault fetchers.
34944
+ liquidity: totalAssetsRaw,
34945
+ liquidityFormatted: totalAssetsFormatted,
34946
+ liquidityUsd: totalAssetsFormatted * priceUsd
34947
+ };
34948
+ }
34949
+ async function fetchEulerEarnVaultsFromSubgraph(chainId, prices = {}, tokenList = {}) {
34950
+ const url = EULER_EARN_SUBGRAPH_URLS[chainId];
34951
+ if (!url) return {};
34952
+ const response = await fetch(url, {
34953
+ method: "POST",
34954
+ headers: { "Content-Type": "application/json" },
34955
+ body: JSON.stringify({ query: EULER_EARN_VAULTS_QUERY })
34956
+ });
34957
+ if (!response.ok) {
34958
+ throw new Error(
34959
+ `Euler Earn vaults subgraph failed for chain ${chainId}: ${response.status} - ${response.statusText}`
34960
+ );
34961
+ }
34962
+ const json = await response.json();
34963
+ const items = json?.data?.eulerEarnVaults ?? [];
34964
+ const out = {};
34965
+ for (const v of items) {
34966
+ const parsed = parseVault7(v, chainId, prices, tokenList);
34547
34967
  if (parsed) out[parsed.address] = parsed;
34548
34968
  }
34549
34969
  return out;
34970
+ }
34971
+
34972
+ // src/vaults/euler-earn/fetchPublic.ts
34973
+ var fetchEulerEarnVaults = async (chainId, prices = {}, tokenList = {}) => {
34974
+ return fetchEulerEarnVaultsFromSubgraph(chainId, prices, tokenList);
34550
34975
  };
34551
34976
  var warn3 = (...args) => {
34552
34977
  };
@@ -34606,6 +35031,18 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
34606
35031
  })
34607
35032
  );
34608
35033
  }
35034
+ if (requested.has("euler-earn")) {
35035
+ tasks.push(
35036
+ fetchEulerEarnVaults(chainId, prices, tokenList).then((res) => {
35037
+ out["euler-earn"] = res;
35038
+ }).catch((e) => {
35039
+ warn3(
35040
+ `[vaults] euler-earn fetch failed for chain ${chainId}:`,
35041
+ e?.message ?? e
35042
+ );
35043
+ })
35044
+ );
35045
+ }
34609
35046
  await Promise.all(tasks);
34610
35047
  return out;
34611
35048
  };
@@ -35096,6 +35533,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
35096
35533
  return parseTokenBalanceResult(rawResult, prepared.query);
35097
35534
  }
35098
35535
 
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 };
35536
+ 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
35537
  //# sourceMappingURL=index.js.map
35101
35538
  //# sourceMappingURL=index.js.map