@1delta/margin-fetcher 0.0.235 → 0.0.236

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,6 +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, } from './vaults';
7
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';
8
9
  export { computeDepositDelta, computeWithdrawDelta, computeBorrowDelta, computeRepayDelta, getHealthFactor, getBorrowCapacity, getAssetConfig, computePostTradeMetrics, EMPTY_BALANCE, } from './lending/margin/base';
9
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
@@ -1,11 +1,11 @@
1
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
- import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isEulerType, isYLDR, isCompoundV3Type, isLista, isTectonicType, isBenqiType } from '@1delta/lender-registry';
4
+ import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isEulerType, isFluid, isYLDR, isCompoundV3Type, isLista, isTectonicType, isBenqiType } from '@1delta/lender-registry';
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 { MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, MorphoBlueAbi } from '@1delta/abis';
8
+ import { FluidLendingResolverAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, FluidVaultResolverAbi, MorphoBlueAbi } 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 { BALANCER_V2_FORKS, BALANCER_V3_FORKS, UNISWAP_V4_FORKS, isFlashLoanSourceExcluded, FLASH_LOAN_IDS } from '@1delta/dex-registry';
@@ -6281,7 +6281,9 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
6281
6281
  siloMarkets: {},
6282
6282
  siloPeripherals: {},
6283
6283
  siloMarketsV3: {},
6284
- siloPeripheralsV3: {}
6284
+ siloPeripheralsV3: {},
6285
+ fluidResolvers: {},
6286
+ fluidVaults: {}
6285
6287
  };
6286
6288
  function getGlobalData2() {
6287
6289
  return globalThis[GLOBAL_LENDER_DATA_KEY];
@@ -6309,6 +6311,7 @@ var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
6309
6311
  var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
6310
6312
  var siloMarkets = () => getGlobalData2()?.siloMarkets;
6311
6313
  var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
6314
+ var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
6312
6315
  function aaveV4SpokeLenderKey(spoke) {
6313
6316
  if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
6314
6317
  throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
@@ -6402,6 +6405,7 @@ var LENDER_SHORT_NAMES = {
6402
6405
  [Lender.COMPOUND_V3_WETH]: "Comp. WETH",
6403
6406
  [Lender.COMPOUND_V3_WSTETH]: "Comp. wstETH",
6404
6407
  [Lender.EULER_V2]: "Euler V2",
6408
+ [Lender.FLUID]: "Fluid",
6405
6409
  [Lender.FLUX_FINANCE]: "Flux",
6406
6410
  [Lender.GRANARY]: "Granary",
6407
6411
  [Lender.HANA]: "Hana",
@@ -6412,7 +6416,7 @@ var LENDER_SHORT_NAMES = {
6412
6416
  [Lender.MERIDIAN]: "Meridian"
6413
6417
  };
6414
6418
  function formatUnderscoreString(input) {
6415
- const _in = input.replace("MORPHO_BLUE", "MB");
6419
+ const _in = input.replace("MORPHO_BLUE", "MB").replace(/^FLUID_/, "Fluid ");
6416
6420
  return _in.split("_").map((word, index) => {
6417
6421
  if (index === 0) {
6418
6422
  return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
@@ -6421,6 +6425,7 @@ function formatUnderscoreString(input) {
6421
6425
  }).join(" ");
6422
6426
  }
6423
6427
  function lenderShortName(lender) {
6428
+ if (lender?.startsWith("FLUID")) return "Fluid";
6424
6429
  return LENDER_SHORT_NAMES[lender] ?? formatUnderscoreString(lender);
6425
6430
  }
6426
6431
 
@@ -19140,8 +19145,211 @@ var getSiloV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
19140
19145
  SILO_V3_CALLS_PER_PAIR
19141
19146
  ];
19142
19147
  };
19148
+ var { chunk: chunk4 } = lodash;
19149
+ var buildFluidCall = (chainId, _lender) => {
19150
+ const resolvers = fluidResolvers()?.[chainId];
19151
+ if (!resolvers) return [];
19152
+ return [
19153
+ {
19154
+ address: resolvers.vaultResolver,
19155
+ name: "getVaultsEntireData",
19156
+ params: []
19157
+ }
19158
+ ];
19159
+ };
19143
19160
 
19144
- // src/lending/public-data/fetchLender.ts
19161
+ // src/lending/public-data/fluid/publicCallParse.ts
19162
+ var FLUID_EEE_LOWER = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
19163
+ var normalizeUnderlying = (addr) => addr === FLUID_EEE_LOWER ? zeroAddress : addr;
19164
+ var FLUID_RATE_SCALE = 100;
19165
+ var scaleFluidRate = (raw) => {
19166
+ if (raw === void 0 || raw === null) return 0;
19167
+ return Number(raw) / FLUID_RATE_SCALE;
19168
+ };
19169
+ var getFluidPublicDataConverter = (_lender, chainId, prices, additionalYields, tokenList = {}) => {
19170
+ const expectedNumberOfCalls = 1;
19171
+ return [
19172
+ (data) => {
19173
+ if (data.length !== expectedNumberOfCalls) return void 0;
19174
+ const [vaultEntireData] = data;
19175
+ const out = {};
19176
+ for (const vault of vaultEntireData ?? []) {
19177
+ const parsed = parseVault(
19178
+ vault,
19179
+ chainId,
19180
+ prices,
19181
+ additionalYields,
19182
+ tokenList
19183
+ );
19184
+ if (parsed) {
19185
+ out[parsed.lender] = {
19186
+ data: parsed.data,
19187
+ params: parsed.params,
19188
+ chainId
19189
+ };
19190
+ }
19191
+ }
19192
+ return out;
19193
+ },
19194
+ expectedNumberOfCalls
19195
+ ];
19196
+ };
19197
+ function parseVault(vault, chainId, prices, additionalYields, tokenList) {
19198
+ const vaultAddress = (vault.vault ?? "").toLowerCase();
19199
+ const constants = vault.constantVariables;
19200
+ const configs = vault.configs;
19201
+ const rates = vault.exchangePricesAndRates;
19202
+ const totals = vault.totalSupplyAndBorrow;
19203
+ const limits = vault.limitsAndAvailability;
19204
+ if (!vaultAddress || !constants || !configs || !rates || !totals) {
19205
+ return void 0;
19206
+ }
19207
+ if (vault.isSmartCol || vault.isSmartDebt) return void 0;
19208
+ const rawCollateral = (constants.supplyToken?.token0 ?? constants.supplyToken ?? "").toString().toLowerCase();
19209
+ const rawLoan = (constants.borrowToken?.token0 ?? constants.borrowToken ?? "").toString().toLowerCase();
19210
+ if (!rawCollateral || !rawLoan) return void 0;
19211
+ const collateralAddress = normalizeUnderlying(rawCollateral);
19212
+ const loanAddress = normalizeUnderlying(rawLoan);
19213
+ const vaultId = Number(constants.vaultId ?? 0);
19214
+ const lender = `FLUID_${vaultId}`;
19215
+ const collateralMeta = tokenList[collateralAddress];
19216
+ const loanMeta = tokenList[loanAddress];
19217
+ const colDecimals = Number(
19218
+ constants.supplyDecimals ?? collateralMeta?.decimals ?? 18
19219
+ );
19220
+ const borrowDecimals = Number(
19221
+ constants.borrowDecimals ?? loanMeta?.decimals ?? 18
19222
+ );
19223
+ const totalSupply = Number(
19224
+ parseRawAmount(totals.totalSupplyVault?.toString(), colDecimals)
19225
+ );
19226
+ const totalBorrow = Number(
19227
+ parseRawAmount(totals.totalBorrowVault?.toString(), borrowDecimals)
19228
+ );
19229
+ const borrowable = Number(
19230
+ parseRawAmount(limits?.borrowable?.toString(), borrowDecimals)
19231
+ );
19232
+ const collateralPriceKey = toOracleKey(collateralMeta?.assetGroup) ?? toGenericPriceKey(collateralAddress, chainId);
19233
+ const loanPriceKey = toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId);
19234
+ const collateralPrice = prices[collateralPriceKey] ?? 0;
19235
+ const loanPrice = prices[loanPriceKey] ?? 0;
19236
+ const ltv = Number(configs.collateralFactor ?? 0) / BPS;
19237
+ const liquidationThreshold = Number(configs.liquidationThreshold ?? 0) / BPS;
19238
+ const liquidationPenalty = Number(configs.liquidationPenalty ?? 0) / BPS;
19239
+ const supplyRate = scaleFluidRate(rates.supplyRateVault);
19240
+ const borrowRate = scaleFluidRate(rates.borrowRateVault);
19241
+ const utilization = totalSupply > 0 ? totalBorrow / totalSupply : 0;
19242
+ const data = {};
19243
+ const collateralMarketUid = createMarketUid(chainId, lender, collateralAddress);
19244
+ data[collateralMarketUid] = {
19245
+ marketUid: collateralMarketUid,
19246
+ name: "Collateral " + (collateralMeta?.symbol ?? ""),
19247
+ poolId: collateralAddress,
19248
+ underlying: collateralAddress,
19249
+ asset: collateralMeta,
19250
+ totalDeposits: totalSupply,
19251
+ totalDebtStable: 0,
19252
+ totalDebt: 0,
19253
+ totalLiquidity: totalSupply,
19254
+ borrowLiquidity: 0,
19255
+ totalDepositsUSD: totalSupply * collateralPrice,
19256
+ totalDebtStableUSD: 0,
19257
+ totalDebtUSD: 0,
19258
+ totalLiquidityUSD: totalSupply * collateralPrice,
19259
+ borrowLiquidityUSD: 0,
19260
+ utilization: 0,
19261
+ depositRate: supplyRate,
19262
+ // vault collateral earns the supply side rate
19263
+ variableBorrowRate: 0,
19264
+ stableBorrowRate: 0,
19265
+ intrinsicYield: additionalYields?.intrinsicYields?.[collateralPriceKey] ?? 0,
19266
+ rewards: [],
19267
+ decimals: colDecimals,
19268
+ config: {
19269
+ "0": {
19270
+ category: 0,
19271
+ borrowCollateralFactor: ltv,
19272
+ collateralFactor: liquidationThreshold,
19273
+ borrowFactor: 1,
19274
+ collateralDisabled: false,
19275
+ debtDisabled: true
19276
+ }
19277
+ },
19278
+ liquidationBonus: liquidationPenalty,
19279
+ collateralActive: true,
19280
+ borrowingEnabled: false,
19281
+ depositsEnabled: true,
19282
+ hasStable: false,
19283
+ isActive: true,
19284
+ isFrozen: false
19285
+ };
19286
+ const loanMarketUid = createMarketUid(chainId, lender, loanAddress);
19287
+ data[loanMarketUid] = {
19288
+ marketUid: loanMarketUid,
19289
+ name: "Loan " + (loanMeta?.symbol ?? ""),
19290
+ poolId: loanAddress,
19291
+ underlying: loanAddress,
19292
+ asset: loanMeta,
19293
+ totalDeposits: 0,
19294
+ totalDebtStable: 0,
19295
+ totalDebt: totalBorrow,
19296
+ totalLiquidity: borrowable,
19297
+ borrowLiquidity: borrowable,
19298
+ totalDepositsUSD: 0,
19299
+ totalDebtStableUSD: 0,
19300
+ totalDebtUSD: totalBorrow * loanPrice,
19301
+ totalLiquidityUSD: borrowable * loanPrice,
19302
+ borrowLiquidityUSD: borrowable * loanPrice,
19303
+ utilization,
19304
+ depositRate: 0,
19305
+ variableBorrowRate: borrowRate,
19306
+ stableBorrowRate: 0,
19307
+ intrinsicYield: additionalYields?.intrinsicYields?.[loanPriceKey] ?? 0,
19308
+ rewards: [],
19309
+ decimals: borrowDecimals,
19310
+ config: {
19311
+ "0": {
19312
+ category: 0,
19313
+ borrowCollateralFactor: 0,
19314
+ collateralFactor: 0,
19315
+ borrowFactor: 1,
19316
+ collateralDisabled: true,
19317
+ debtDisabled: false
19318
+ }
19319
+ },
19320
+ liquidationBonus: 0,
19321
+ collateralActive: false,
19322
+ borrowingEnabled: true,
19323
+ depositsEnabled: false,
19324
+ hasStable: false,
19325
+ isActive: true,
19326
+ isFrozen: false
19327
+ };
19328
+ return {
19329
+ lender,
19330
+ data,
19331
+ params: {
19332
+ vault: {
19333
+ lender,
19334
+ vaultAddress,
19335
+ vaultId,
19336
+ collateralAddress,
19337
+ loanAddress,
19338
+ collateralDecimals: colDecimals,
19339
+ loanDecimals: borrowDecimals,
19340
+ oracle: configs.oracle,
19341
+ rebalancer: configs.rebalancer,
19342
+ liquidationThreshold,
19343
+ ltv,
19344
+ liquidationPenalty,
19345
+ oraclePriceOperate: configs.oraclePriceOperate?.toString(),
19346
+ oraclePriceLiquidate: configs.oraclePriceLiquidate?.toString(),
19347
+ isSmartCol: !!vault.isSmartCol,
19348
+ isSmartDebt: !!vault.isSmartDebt
19349
+ }
19350
+ }
19351
+ };
19352
+ }
19145
19353
  function getMorphoTypeMarketConverter(lender, chainId, prices, additionalYields, tokenList = {}, marketsOverride) {
19146
19354
  if (lender.startsWith("LISTA_DAO"))
19147
19355
  return getListaMarketDataConverter(
@@ -19178,6 +19386,7 @@ function buildLenderCall(chainId, lender) {
19178
19386
  if (isAaveV4Type(lender)) return buildAaveV4LenderReserveCall(chainId, lender);
19179
19387
  if (isSiloV2Type(lender)) return buildSiloV2LenderReserveCall(chainId, lender);
19180
19388
  if (isSiloV3Type(lender)) return buildSiloV3LenderReserveCall(chainId, lender);
19389
+ if (isFluid(lender)) return buildFluidCall(chainId);
19181
19390
  return [];
19182
19391
  }
19183
19392
  function getLenderDataConverter(lender, chainId, prices, additionalYields, tokenList = {}) {
@@ -19262,6 +19471,14 @@ function getLenderDataConverter(lender, chainId, prices, additionalYields, token
19262
19471
  additionalYields,
19263
19472
  tokenList
19264
19473
  );
19474
+ if (isFluid(lender))
19475
+ return getFluidPublicDataConverter(
19476
+ lender,
19477
+ chainId,
19478
+ prices,
19479
+ additionalYields,
19480
+ tokenList
19481
+ );
19265
19482
  return [() => null, 0];
19266
19483
  }
19267
19484
  var getAbi = (lender) => {
@@ -19286,6 +19503,8 @@ var getAbi = (lender) => {
19286
19503
  return [...SiloAbi, ...SiloLensAbi, ...InterestRateModelV2Abi];
19287
19504
  if (isSiloV3Type(lender))
19288
19505
  return [...SiloAbi, ...SiloLensAbi, ...InterestRateModelV2Abi];
19506
+ if (isFluid(lender))
19507
+ return [...FluidVaultResolverAbi];
19289
19508
  if (isSumerType(lender)) return [...SumerLensAbi, ...SumerComptrollerAbi];
19290
19509
  if (lender === Lender.TAKARA) return [...TakaraMarketStateAbi];
19291
19510
  if (isCompoundV2Type(lender)) return VenusLensAbi;
@@ -32537,6 +32756,89 @@ function attachPricesToFlashLiquidity(chainId, liq, prices, list = {}) {
32537
32756
  return liqCopy;
32538
32757
  }
32539
32758
 
32759
+ // src/vaults/fluid/publicCallBuild.ts
32760
+ var buildFluidFTokensCall = (chainId) => {
32761
+ const resolvers = fluidResolvers()?.[chainId];
32762
+ if (!resolvers) return [];
32763
+ return [
32764
+ {
32765
+ address: resolvers.lendingResolver,
32766
+ name: "getFTokensEntireData",
32767
+ params: []
32768
+ }
32769
+ ];
32770
+ };
32771
+
32772
+ // src/vaults/fluid/publicCallParse.ts
32773
+ var FLUID_EEE_LOWER2 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
32774
+ var normalizeUnderlying2 = (addr) => addr === FLUID_EEE_LOWER2 ? zeroAddress : addr;
32775
+ var FLUID_RATE_SCALE2 = 100;
32776
+ var scaleFluidRate2 = (raw) => {
32777
+ if (raw === void 0 || raw === null) return 0;
32778
+ return Number(raw) / FLUID_RATE_SCALE2;
32779
+ };
32780
+ var getFluidFTokensConverter = (chainId, prices = {}, tokenList = {}) => {
32781
+ const expectedNumberOfCalls = 1;
32782
+ return [
32783
+ (data) => {
32784
+ if (data.length !== expectedNumberOfCalls) return void 0;
32785
+ const [fTokenDetails] = data;
32786
+ return parseFTokens(fTokenDetails ?? [], chainId, prices, tokenList);
32787
+ },
32788
+ expectedNumberOfCalls
32789
+ ];
32790
+ };
32791
+ function parseFTokens(fTokens, chainId, prices, tokenList) {
32792
+ const out = {};
32793
+ for (const ft of fTokens) {
32794
+ const rawAsset = (ft.asset ?? "").toString().toLowerCase();
32795
+ if (!rawAsset) continue;
32796
+ const underlying = normalizeUnderlying2(rawAsset);
32797
+ const assetMeta = tokenList[underlying];
32798
+ const decimals = Number(ft.decimals ?? assetMeta?.decimals ?? 18);
32799
+ const totalAssetsFormatted = Number(
32800
+ parseRawAmount(ft.totalAssets?.toString(), decimals)
32801
+ );
32802
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
32803
+ const priceUsd = prices[oracleKey] ?? 0;
32804
+ const supplyRate = scaleFluidRate2(ft.supplyRate);
32805
+ const rewardsRate = scaleFluidRate2(ft.rewardsRate);
32806
+ const entry = {
32807
+ address: ft.tokenAddress,
32808
+ underlying,
32809
+ symbol: ft.symbol ?? "",
32810
+ name: ft.name ?? "",
32811
+ decimals,
32812
+ totalAssets: ft.totalAssets?.toString() ?? "0",
32813
+ totalSupply: ft.totalSupply?.toString() ?? "0",
32814
+ convertToShares: ft.convertToShares?.toString() ?? "0",
32815
+ convertToAssets: ft.convertToAssets?.toString() ?? "0",
32816
+ supplyRate,
32817
+ rewardsRate,
32818
+ depositRate: supplyRate + rewardsRate,
32819
+ isNativeUnderlying: !!ft.isNativeUnderlying,
32820
+ eip2612Deposits: !!ft.eip2612Deposits,
32821
+ asset: assetMeta,
32822
+ priceUsd: priceUsd || void 0,
32823
+ totalAssetsFormatted,
32824
+ totalAssetsUsd: totalAssetsFormatted * priceUsd
32825
+ };
32826
+ out[underlying] = entry;
32827
+ }
32828
+ return out;
32829
+ }
32830
+ var fetchFluidFTokens = async (chainId, multicallRetry, prices = {}, tokenList = {}) => {
32831
+ const calls = buildFluidFTokensCall(chainId);
32832
+ if (calls.length === 0) return {};
32833
+ const raw = await multicallRetry({
32834
+ chain: chainId,
32835
+ calls,
32836
+ abi: calls.map(() => FluidLendingResolverAbi)
32837
+ });
32838
+ const [converter] = getFluidFTokensConverter(chainId, prices, tokenList);
32839
+ return converter(raw) ?? {};
32840
+ };
32841
+
32540
32842
  // src/lending/margin/e-mode/index.ts
32541
32843
  function computeEModeSwitchHealth(positions, lenderMeta, currentCollateral, currentAdjustedDebt, currentMode, targetMode) {
32542
32844
  if (currentAdjustedDebt === 0) return null;
@@ -33023,6 +33325,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
33023
33325
  return parseTokenBalanceResult(rawResult, prepared.query);
33024
33326
  }
33025
33327
 
33026
- export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, 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, fetchEulerSubAccountIndexes, fetchFlashLiquidityForChain, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getSubAccountAddress, getSubAccountIndex, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
33328
+ 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, fetchOraclePrices, fetchPendlePrices, 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, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
33027
33329
  //# sourceMappingURL=index.js.map
33028
33330
  //# sourceMappingURL=index.js.map