@1delta/margin-fetcher 0.0.250 → 0.0.252
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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +445 -8
- 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/morpho/fetchUserPositionsFromSubgraph.d.ts +44 -0
- package/dist/lending/user-data/morpho/fetchUserPositionsFromSubgraph.d.ts.map +1 -0
- package/dist/lending/user-data/morpho/index.d.ts +1 -0
- package/dist/lending/user-data/morpho/index.d.ts.map +1 -1
- package/dist/lending/user-data/with-permissions/types.d.ts +6 -0
- package/dist/lending/user-data/with-permissions/types.d.ts.map +1 -1
- package/dist/vaults/displayName.d.ts +19 -0
- package/dist/vaults/displayName.d.ts.map +1 -0
- package/dist/vaults/fetchVaultsAll.d.ts +56 -0
- package/dist/vaults/fetchVaultsAll.d.ts.map +1 -0
- package/dist/vaults/fluid/publicCallParse.d.ts.map +1 -1
- package/dist/vaults/fluid/types.d.ts +11 -1
- package/dist/vaults/fluid/types.d.ts.map +1 -1
- package/dist/vaults/gearbox/publicCallParse.d.ts.map +1 -1
- package/dist/vaults/gearbox/types.d.ts +14 -1
- package/dist/vaults/gearbox/types.d.ts.map +1 -1
- package/dist/vaults/index.d.ts +2 -0
- package/dist/vaults/index.d.ts.map +1 -1
- package/dist/vaults/morpho/fetchFromApi.d.ts.map +1 -1
- package/dist/vaults/morpho/fetchFromSubgraph.d.ts.map +1 -1
- package/dist/vaults/morpho/index.d.ts +1 -1
- package/dist/vaults/morpho/index.d.ts.map +1 -1
- package/dist/vaults/morpho/types.d.ts +28 -1
- package/dist/vaults/morpho/types.d.ts.map +1 -1
- package/dist/vaults/silo/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/silo/types.d.ts +12 -1
- package/dist/vaults/silo/types.d.ts.map +1 -1
- package/package.json +4 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { getLenderPublicData, getLenderPublicDataViaApi, getLenderPublicDataAll, getLenderUserDataResult, convertLenderUserDataResult, prepareLenderUserDataRpcCalls, type PreparedUserDataRpcCalls, prepareMergedRpcCalls, parseMergedResult, type PreparedMergedRpcCalls, type MergedUserData, type PermissionParams, prepareMergedMulticallParams, type PreparedMergedMulticallParams, getMergedUserData, needsLenderApproval, needsTokenApproval, type TokenApprovalParams, type TokenApprovalMeta, getLenderUserDataMulti, type ChainQuery, type ProviderOptions, type BaseLendingPosition, type BasicReserveResponse, type AprData, type BalanceData, type UserConfig, type UserData, MORPHO_LENS, decodePackedMorphoUserDataset, decodePackedListaUserDataset, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, decodeMarkets, decodeListaMarkets, normalizeToBytes, getMorphoTypeMarketConverter, buildSummaries, buildPortfolioTotals, fuseLenderData, filterActiveLenders, type PortfolioTotals, type PortfolioSummary, type LenderSummary, type LenderDataEntry, type ChainSummary, type SubAccountSummary, type SummaryBalanceData, type SummaryAprData, type UserDataResult, calculateWeightedAverage, calculateNetApr, calculateLeverage, calculateOverallNetApr, getBalanceForMarketUid, } from './lending';
|
|
1
|
+
export { getLenderPublicData, getLenderPublicDataViaApi, getLenderPublicDataAll, getLenderUserDataResult, convertLenderUserDataResult, prepareLenderUserDataRpcCalls, type PreparedUserDataRpcCalls, prepareMergedRpcCalls, parseMergedResult, type PreparedMergedRpcCalls, type MergedUserData, type PermissionParams, prepareMergedMulticallParams, type PreparedMergedMulticallParams, getMergedUserData, needsLenderApproval, needsTokenApproval, type TokenApprovalParams, type TokenApprovalMeta, getLenderUserDataMulti, type ChainQuery, type ProviderOptions, type BaseLendingPosition, type BasicReserveResponse, type AprData, type BalanceData, type UserConfig, type UserData, MORPHO_LENS, decodePackedMorphoUserDataset, decodePackedListaUserDataset, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, fetchMorphoUserPositionMarkets, fetchMorphoUserBalances, hasMorphoUserSubgraph, hasMorphoUserApi, hasMorphoPositionIndex, type MorphoSubgraphProxyConfig, type MorphoUserMarketBalance, decodeMarkets, decodeListaMarkets, normalizeToBytes, getMorphoTypeMarketConverter, buildSummaries, buildPortfolioTotals, fuseLenderData, filterActiveLenders, type PortfolioTotals, type PortfolioSummary, type LenderSummary, type LenderDataEntry, type ChainSummary, type SubAccountSummary, type SummaryBalanceData, type SummaryAprData, type UserDataResult, calculateWeightedAverage, calculateNetApr, calculateLeverage, calculateOverallNetApr, getBalanceForMarketUid, } from './lending';
|
|
2
2
|
export { type PoolWithMeta, generateLendingPools, unflattenLenderData, } from './lending-pools';
|
|
3
3
|
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, } from './vaults';
|
|
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';
|
|
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":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,wBAAwB,EAC7B,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,WAAW,EACX,6BAA6B,EAC7B,4BAA4B,EAC5B,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAE5B,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EAEnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,YAAY,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,eAAe,EACf,KAAK,SAAS,EACd,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { getEvmChain, getEvmClient, getEvmClientUniversal, multicallRetryUnivers
|
|
|
8
8
|
import { FluidLendingResolverAbi, 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
|
+
import { proxyNativeFetch } from '@1delta/proxy-fetch';
|
|
11
12
|
import { BALANCER_V2_FORKS, BALANCER_V3_FORKS, UNISWAP_V4_FORKS, isFlashLoanSourceExcluded, FLASH_LOAN_IDS } from '@1delta/dex-registry';
|
|
12
13
|
|
|
13
14
|
// src/abis/aave-v2/ProtocolDataProvider.ts
|
|
@@ -7542,6 +7543,9 @@ var Chain = /* @__PURE__ */ ((Chain2) => {
|
|
|
7542
7543
|
Chain2["STUDIO_BLOCKCHAIN_MAINNET"] = "240241";
|
|
7543
7544
|
Chain2["JOVAY_MAINNET"] = "5734951";
|
|
7544
7545
|
Chain2["MANTRACHAIN_MAINNET"] = "5888";
|
|
7546
|
+
Chain2["MEGAETH_MAINNET"] = "4326";
|
|
7547
|
+
Chain2["STABLE_MAINNET"] = "988";
|
|
7548
|
+
Chain2["PHAROS_MAINNET"] = "1672";
|
|
7545
7549
|
return Chain2;
|
|
7546
7550
|
})(Chain || {});
|
|
7547
7551
|
|
|
@@ -28335,8 +28339,8 @@ function resolveDebitDataKey(chainId, lender, tokenAddress, cToken, isProtected)
|
|
|
28335
28339
|
if (cToken) return cToken.toLowerCase();
|
|
28336
28340
|
const tokenMap = getCompoundV2CollateralTokens(chainId, lender);
|
|
28337
28341
|
if (tokenMap) {
|
|
28338
|
-
const
|
|
28339
|
-
if (
|
|
28342
|
+
const resolved2 = tokenMap[tokenAddress.toLowerCase()];
|
|
28343
|
+
if (resolved2) return resolved2.toLowerCase();
|
|
28340
28344
|
}
|
|
28341
28345
|
}
|
|
28342
28346
|
if (isCompoundV3Type(lender)) {
|
|
@@ -28408,6 +28412,200 @@ function needsTokenApproval(params) {
|
|
|
28408
28412
|
const allowance = debitData.allowances?.[spenderLower] ?? 0n;
|
|
28409
28413
|
return allowance < amount;
|
|
28410
28414
|
}
|
|
28415
|
+
var MORPHO_USER_SUBGRAPH_URLS = {
|
|
28416
|
+
[Chain.SEI_NETWORK]: "https://api.goldsky.com/api/public/project_cmiergfbv4vma01vb642yaeam/subgraphs/morphoblue-sei/1.0.1/gn",
|
|
28417
|
+
[Chain.CELO_MAINNET]: "https://api.goldsky.com/api/public/project_cmiergfbv4vma01vb642yaeam/subgraphs/morphoblue-celo/1.0.4/gn",
|
|
28418
|
+
[Chain.LISK]: "https://api.goldsky.com/api/public/project_cmiergfbv4vma01vb642yaeam/subgraphs/morphobluelisk/1.0.1/gn",
|
|
28419
|
+
[Chain.SONEIUM]: "https://api.goldsky.com/api/public/project_cmiergfbv4vma01vb642yaeam/subgraphs/morphobluesoneium/1.0.2/gn",
|
|
28420
|
+
[Chain.TAC_MAINNET]: "https://api.goldsky.com/api/public/project_cmiergfbv4vma01vb642yaeam/subgraphs/morphoblue-tac/1.0.0/gn",
|
|
28421
|
+
// Hemi uses a different provider, but speaks the same GraphQL schema.
|
|
28422
|
+
[Chain.HEMI_NETWORK]: "https://feather.securesecrets.org/hemi-mopho-blue/"
|
|
28423
|
+
};
|
|
28424
|
+
var MORPHO_BLUE_API_URL = "https://blue-api.morpho.org/graphql";
|
|
28425
|
+
var MORPHO_API_CHAIN_IDS = {
|
|
28426
|
+
[Chain.ETHEREUM_MAINNET]: 1,
|
|
28427
|
+
[Chain.BASE]: 8453,
|
|
28428
|
+
[Chain.ARBITRUM_ONE]: 42161,
|
|
28429
|
+
[Chain.OP_MAINNET]: 10,
|
|
28430
|
+
[Chain.POLYGON_MAINNET]: 137,
|
|
28431
|
+
[Chain.GNOSIS]: 100,
|
|
28432
|
+
[Chain.FRAXTAL]: 252,
|
|
28433
|
+
[Chain.BLAST]: 81457,
|
|
28434
|
+
[Chain.LINEA]: 59144,
|
|
28435
|
+
[Chain.TAIKO_ALETHIA]: 167e3,
|
|
28436
|
+
[Chain.AVALANCHE_C_CHAIN]: 43114,
|
|
28437
|
+
[Chain.ZKSYNC_MAINNET]: 324,
|
|
28438
|
+
[Chain.SONIC_MAINNET]: 146,
|
|
28439
|
+
[Chain.SCROLL]: 534352,
|
|
28440
|
+
[Chain.BERACHAIN]: 80094,
|
|
28441
|
+
[Chain.HYPEREVM]: 999,
|
|
28442
|
+
[Chain.UNICHAIN]: 130
|
|
28443
|
+
};
|
|
28444
|
+
var FETCH_TIMEOUT_MS = 3e3;
|
|
28445
|
+
var CACHE_TTL_MS = 2e3;
|
|
28446
|
+
var buildSubgraphQuery = (account) => `
|
|
28447
|
+
{
|
|
28448
|
+
account(id: "${account.toLowerCase()}") {
|
|
28449
|
+
positions {
|
|
28450
|
+
market { id }
|
|
28451
|
+
side
|
|
28452
|
+
balance
|
|
28453
|
+
shares
|
|
28454
|
+
}
|
|
28455
|
+
}
|
|
28456
|
+
}`;
|
|
28457
|
+
var buildApiQuery = (account, chainId) => `
|
|
28458
|
+
{
|
|
28459
|
+
userByAddress(address: "${account}", chainId: ${chainId}) {
|
|
28460
|
+
marketPositions {
|
|
28461
|
+
market { uniqueKey }
|
|
28462
|
+
supplyShares
|
|
28463
|
+
borrowShares
|
|
28464
|
+
collateral
|
|
28465
|
+
}
|
|
28466
|
+
}
|
|
28467
|
+
}`;
|
|
28468
|
+
function isNonZero(value) {
|
|
28469
|
+
if (value === null || value === void 0) return false;
|
|
28470
|
+
return value !== "0" && value !== 0;
|
|
28471
|
+
}
|
|
28472
|
+
async function attemptFetchJson(url, body, proxyConfig) {
|
|
28473
|
+
const controller = new AbortController();
|
|
28474
|
+
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
28475
|
+
try {
|
|
28476
|
+
const response = await proxyNativeFetch(url, proxyConfig, {
|
|
28477
|
+
method: "POST",
|
|
28478
|
+
headers: { "Content-Type": "application/json" },
|
|
28479
|
+
body,
|
|
28480
|
+
signal: controller.signal
|
|
28481
|
+
});
|
|
28482
|
+
if (!response.ok) return void 0;
|
|
28483
|
+
return await response.json();
|
|
28484
|
+
} catch {
|
|
28485
|
+
return void 0;
|
|
28486
|
+
} finally {
|
|
28487
|
+
clearTimeout(timer);
|
|
28488
|
+
}
|
|
28489
|
+
}
|
|
28490
|
+
async function fetchJsonWithProxyFallback(url, body, proxyConfig) {
|
|
28491
|
+
const direct = await attemptFetchJson(url, body, void 0);
|
|
28492
|
+
if (direct !== void 0) return direct;
|
|
28493
|
+
if (!proxyConfig) return void 0;
|
|
28494
|
+
return attemptFetchJson(url, body, proxyConfig);
|
|
28495
|
+
}
|
|
28496
|
+
var inflight = /* @__PURE__ */ new Map();
|
|
28497
|
+
var resolved = /* @__PURE__ */ new Map();
|
|
28498
|
+
function cacheKey(chainId, account) {
|
|
28499
|
+
return `${chainId}:${account.toLowerCase()}`;
|
|
28500
|
+
}
|
|
28501
|
+
async function dedupedFetch(chainId, account, loader) {
|
|
28502
|
+
const key = cacheKey(chainId, account);
|
|
28503
|
+
const now = Date.now();
|
|
28504
|
+
const cached = resolved.get(key);
|
|
28505
|
+
if (cached && cached.expiresAt > now) {
|
|
28506
|
+
return cached.value;
|
|
28507
|
+
}
|
|
28508
|
+
const existing = inflight.get(key);
|
|
28509
|
+
if (existing) return existing;
|
|
28510
|
+
const promise = loader().then((value) => {
|
|
28511
|
+
resolved.set(key, { value, expiresAt: Date.now() + CACHE_TTL_MS });
|
|
28512
|
+
return value;
|
|
28513
|
+
}).finally(() => {
|
|
28514
|
+
inflight.delete(key);
|
|
28515
|
+
});
|
|
28516
|
+
inflight.set(key, promise);
|
|
28517
|
+
return promise;
|
|
28518
|
+
}
|
|
28519
|
+
function hasMorphoUserSubgraph(chainId) {
|
|
28520
|
+
return chainId in MORPHO_USER_SUBGRAPH_URLS;
|
|
28521
|
+
}
|
|
28522
|
+
function hasMorphoUserApi(chainId) {
|
|
28523
|
+
return chainId in MORPHO_API_CHAIN_IDS;
|
|
28524
|
+
}
|
|
28525
|
+
function hasMorphoPositionIndex(chainId) {
|
|
28526
|
+
return hasMorphoUserSubgraph(chainId) || hasMorphoUserApi(chainId);
|
|
28527
|
+
}
|
|
28528
|
+
async function fetchMorphoUserBalances(chainId, account, proxyConfig) {
|
|
28529
|
+
if (hasMorphoUserSubgraph(chainId)) {
|
|
28530
|
+
return dedupedFetch(
|
|
28531
|
+
chainId,
|
|
28532
|
+
account,
|
|
28533
|
+
() => fetchBalancesFromSubgraph(chainId, account, proxyConfig)
|
|
28534
|
+
);
|
|
28535
|
+
}
|
|
28536
|
+
if (hasMorphoUserApi(chainId)) {
|
|
28537
|
+
return dedupedFetch(
|
|
28538
|
+
chainId,
|
|
28539
|
+
account,
|
|
28540
|
+
() => fetchBalancesFromApi(chainId, account, proxyConfig)
|
|
28541
|
+
);
|
|
28542
|
+
}
|
|
28543
|
+
return void 0;
|
|
28544
|
+
}
|
|
28545
|
+
async function fetchMorphoUserPositionMarkets(chainId, account, proxyConfig) {
|
|
28546
|
+
const balances = await fetchMorphoUserBalances(chainId, account, proxyConfig);
|
|
28547
|
+
if (balances === void 0) return void 0;
|
|
28548
|
+
return new Set(balances.map((b) => b.marketId));
|
|
28549
|
+
}
|
|
28550
|
+
async function fetchBalancesFromSubgraph(chainId, account, proxyConfig) {
|
|
28551
|
+
const subgraphUrl = MORPHO_USER_SUBGRAPH_URLS[chainId];
|
|
28552
|
+
const json = await fetchJsonWithProxyFallback(
|
|
28553
|
+
subgraphUrl,
|
|
28554
|
+
JSON.stringify({ query: buildSubgraphQuery(account) }),
|
|
28555
|
+
proxyConfig
|
|
28556
|
+
);
|
|
28557
|
+
if (!json) return void 0;
|
|
28558
|
+
const positions = json.data?.account?.positions ?? [];
|
|
28559
|
+
const byMarket = /* @__PURE__ */ new Map();
|
|
28560
|
+
for (const pos of positions) {
|
|
28561
|
+
const marketId = pos.market.id.toLowerCase();
|
|
28562
|
+
if (!byMarket.has(marketId)) {
|
|
28563
|
+
byMarket.set(marketId, {
|
|
28564
|
+
supplyShares: "0",
|
|
28565
|
+
borrowShares: "0",
|
|
28566
|
+
collateral: "0"
|
|
28567
|
+
});
|
|
28568
|
+
}
|
|
28569
|
+
const entry = byMarket.get(marketId);
|
|
28570
|
+
if (pos.side === "SUPPLIER" && pos.shares) {
|
|
28571
|
+
entry.supplyShares = pos.shares;
|
|
28572
|
+
} else if (pos.side === "BORROWER" && pos.shares) {
|
|
28573
|
+
entry.borrowShares = pos.shares;
|
|
28574
|
+
} else if (pos.side === "COLLATERAL") {
|
|
28575
|
+
entry.collateral = pos.balance ?? "0";
|
|
28576
|
+
}
|
|
28577
|
+
}
|
|
28578
|
+
const result = [];
|
|
28579
|
+
for (const [marketId, entry] of byMarket) {
|
|
28580
|
+
if (isNonZero(entry.supplyShares) || isNonZero(entry.borrowShares) || isNonZero(entry.collateral)) {
|
|
28581
|
+
result.push({ marketId, ...entry });
|
|
28582
|
+
}
|
|
28583
|
+
}
|
|
28584
|
+
return result;
|
|
28585
|
+
}
|
|
28586
|
+
async function fetchBalancesFromApi(chainId, account, proxyConfig) {
|
|
28587
|
+
const numericChainId = MORPHO_API_CHAIN_IDS[chainId];
|
|
28588
|
+
const json = await fetchJsonWithProxyFallback(
|
|
28589
|
+
MORPHO_BLUE_API_URL,
|
|
28590
|
+
JSON.stringify({ query: buildApiQuery(account, numericChainId) }),
|
|
28591
|
+
proxyConfig
|
|
28592
|
+
);
|
|
28593
|
+
if (!json) return void 0;
|
|
28594
|
+
const positions = json.data?.userByAddress?.marketPositions ?? [];
|
|
28595
|
+
const result = [];
|
|
28596
|
+
for (const pos of positions) {
|
|
28597
|
+
if (!isNonZero(pos.supplyShares) && !isNonZero(pos.borrowShares) && !isNonZero(pos.collateral)) {
|
|
28598
|
+
continue;
|
|
28599
|
+
}
|
|
28600
|
+
result.push({
|
|
28601
|
+
marketId: pos.market.uniqueKey.toLowerCase(),
|
|
28602
|
+
supplyShares: String(pos.supplyShares),
|
|
28603
|
+
borrowShares: String(pos.borrowShares),
|
|
28604
|
+
collateral: String(pos.collateral)
|
|
28605
|
+
});
|
|
28606
|
+
}
|
|
28607
|
+
return result;
|
|
28608
|
+
}
|
|
28411
28609
|
|
|
28412
28610
|
// src/lending/user-data/summary/utils.ts
|
|
28413
28611
|
function calculateWeightedAverage(items) {
|
|
@@ -30784,10 +30982,10 @@ function createMerklRewardFetcher(config) {
|
|
|
30784
30982
|
for (const opp of opps) {
|
|
30785
30983
|
if (opp.action !== "LEND" && opp.action !== "BORROW") continue;
|
|
30786
30984
|
if (!opp.apr || opp.apr <= 0) continue;
|
|
30787
|
-
const
|
|
30788
|
-
if (!
|
|
30789
|
-
const lender =
|
|
30790
|
-
const reward = ensureReward(result, chainId, lender,
|
|
30985
|
+
const resolved2 = resolve(opp);
|
|
30986
|
+
if (!resolved2) continue;
|
|
30987
|
+
const lender = resolved2.lender ?? config.lenderKey;
|
|
30988
|
+
const reward = ensureReward(result, chainId, lender, resolved2.asset);
|
|
30791
30989
|
const breakdowns = extractRewardBreakdowns(opp);
|
|
30792
30990
|
reward.link = getMerkleUrl(opp);
|
|
30793
30991
|
if (opp.action === "LEND") {
|
|
@@ -33730,6 +33928,15 @@ var buildFluidFTokensCall = (chainId) => {
|
|
|
33730
33928
|
];
|
|
33731
33929
|
};
|
|
33732
33930
|
|
|
33931
|
+
// src/vaults/displayName.ts
|
|
33932
|
+
var composeVaultDisplayName = (brand, curatorName, asset, fallbackName) => {
|
|
33933
|
+
const symbol = (asset?.symbol ?? "").trim();
|
|
33934
|
+
const label = (curatorName ?? brand).trim() || brand;
|
|
33935
|
+
if (symbol) return `${label} ${symbol}`;
|
|
33936
|
+
const fallback = (fallbackName ?? "").trim();
|
|
33937
|
+
return fallback || brand;
|
|
33938
|
+
};
|
|
33939
|
+
|
|
33733
33940
|
// src/vaults/fluid/publicCallParse.ts
|
|
33734
33941
|
var FLUID_EEE_LOWER4 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
33735
33942
|
var normalizeUnderlying4 = (addr) => addr === FLUID_EEE_LOWER4 ? zeroAddress : addr;
|
|
@@ -33766,11 +33973,21 @@ function parseFTokens(fTokens, chainId, prices, tokenList) {
|
|
|
33766
33973
|
const rewardsRate = scaleFluidRate2(ft.rewardsRate);
|
|
33767
33974
|
const liquidityRaw = ft.liquidityUserSupplyData?.withdrawable?.toString() ?? "0";
|
|
33768
33975
|
const liquidityFormatted = Number(parseRawAmount(liquidityRaw, decimals));
|
|
33976
|
+
const onchainName = (ft.name ?? "").toString().trim();
|
|
33977
|
+
const underlyingSymbol = (assetMeta?.symbol ?? ft.symbol ?? "").toString().replace(/^f/, "").trim();
|
|
33978
|
+
const displayName = onchainName ? onchainName : underlyingSymbol ? `Fluid ${underlyingSymbol}` : "Fluid";
|
|
33769
33979
|
const entry = {
|
|
33770
33980
|
address: ft.tokenAddress,
|
|
33771
33981
|
underlying,
|
|
33772
33982
|
symbol: ft.symbol ?? "",
|
|
33773
|
-
name:
|
|
33983
|
+
name: displayName,
|
|
33984
|
+
displayName: composeVaultDisplayName(
|
|
33985
|
+
"Fluid",
|
|
33986
|
+
void 0,
|
|
33987
|
+
assetMeta,
|
|
33988
|
+
displayName
|
|
33989
|
+
),
|
|
33990
|
+
curatorName: "Fluid",
|
|
33774
33991
|
decimals,
|
|
33775
33992
|
totalAssets: ft.totalAssets?.toString() ?? "0",
|
|
33776
33993
|
totalSupply: ft.totalSupply?.toString() ?? "0",
|
|
@@ -33805,6 +34022,121 @@ var fetchFluidFTokens = async (chainId, multicallRetry, prices = {}, tokenList =
|
|
|
33805
34022
|
return converter(raw) ?? {};
|
|
33806
34023
|
};
|
|
33807
34024
|
|
|
34025
|
+
// src/vaults/gearbox/publicCallBuild.ts
|
|
34026
|
+
var buildGearboxV3PoolsCall = (chainId) => {
|
|
34027
|
+
const compressor = gearboxMarketCompressor();
|
|
34028
|
+
const configurators = gearboxMarketConfigurators(chainId);
|
|
34029
|
+
if (!compressor || !configurators) return [];
|
|
34030
|
+
const curatorAddrs = Object.keys(configurators);
|
|
34031
|
+
if (curatorAddrs.length === 0) return [];
|
|
34032
|
+
return [
|
|
34033
|
+
{
|
|
34034
|
+
address: compressor,
|
|
34035
|
+
name: "getMarkets",
|
|
34036
|
+
params: [
|
|
34037
|
+
{
|
|
34038
|
+
configurators: curatorAddrs,
|
|
34039
|
+
pools: [],
|
|
34040
|
+
underlying: zeroAddress
|
|
34041
|
+
}
|
|
34042
|
+
]
|
|
34043
|
+
}
|
|
34044
|
+
];
|
|
34045
|
+
};
|
|
34046
|
+
|
|
34047
|
+
// src/vaults/gearbox/publicCallParse.ts
|
|
34048
|
+
var WETH_MAINNET = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
|
|
34049
|
+
var normalizeUnderlying5 = (addr, chainId) => {
|
|
34050
|
+
const lower = addr.toLowerCase();
|
|
34051
|
+
if (chainId === "1" && lower === WETH_MAINNET) return zeroAddress;
|
|
34052
|
+
return lower;
|
|
34053
|
+
};
|
|
34054
|
+
var RAY_TO_PERCENT2 = 1e25;
|
|
34055
|
+
var scaleRate = (raw) => {
|
|
34056
|
+
if (raw === void 0 || raw === null) return 0;
|
|
34057
|
+
return Number(raw) / RAY_TO_PERCENT2;
|
|
34058
|
+
};
|
|
34059
|
+
var getGearboxV3PoolsConverter = (chainId, prices = {}, tokenList = {}) => {
|
|
34060
|
+
const expectedNumberOfCalls = 1;
|
|
34061
|
+
return [
|
|
34062
|
+
(data) => {
|
|
34063
|
+
if (data.length !== expectedNumberOfCalls) return void 0;
|
|
34064
|
+
const [markets] = data;
|
|
34065
|
+
return parseMarkets(markets ?? [], chainId, prices, tokenList);
|
|
34066
|
+
},
|
|
34067
|
+
expectedNumberOfCalls
|
|
34068
|
+
];
|
|
34069
|
+
};
|
|
34070
|
+
function parseMarkets(markets, chainId, prices, tokenList) {
|
|
34071
|
+
const out = {};
|
|
34072
|
+
const configuratorNames = gearboxMarketConfigurators(chainId) ?? {};
|
|
34073
|
+
for (const m of markets) {
|
|
34074
|
+
const pool = m?.pool;
|
|
34075
|
+
if (!pool) continue;
|
|
34076
|
+
if (pool.isPaused) continue;
|
|
34077
|
+
const rawAddress = (pool.baseParams?.addr ?? "").toString().toLowerCase();
|
|
34078
|
+
const rawUnderlying = (pool.underlying ?? "").toString().toLowerCase();
|
|
34079
|
+
if (!rawAddress || !rawUnderlying) continue;
|
|
34080
|
+
const underlying = normalizeUnderlying5(rawUnderlying, chainId);
|
|
34081
|
+
const assetMeta = tokenList[underlying];
|
|
34082
|
+
const decimals = Number(assetMeta?.decimals ?? pool.decimals ?? 18);
|
|
34083
|
+
const totalAssetsRaw = pool.expectedLiquidity?.toString() ?? "0";
|
|
34084
|
+
const totalAssetsFormatted = Number(
|
|
34085
|
+
parseRawAmount(totalAssetsRaw, decimals)
|
|
34086
|
+
);
|
|
34087
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
|
|
34088
|
+
const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
|
|
34089
|
+
const liquidityRaw = pool.availableLiquidity?.toString() ?? "0";
|
|
34090
|
+
const liquidityFormatted = Number(parseRawAmount(liquidityRaw, decimals));
|
|
34091
|
+
const configurator = (m?.configurator ?? "").toString().toLowerCase();
|
|
34092
|
+
const curatorName = configurator ? configuratorNames[configurator] : void 0;
|
|
34093
|
+
const entry = {
|
|
34094
|
+
address: rawAddress,
|
|
34095
|
+
underlying,
|
|
34096
|
+
symbol: pool.symbol ?? "",
|
|
34097
|
+
name: pool.name ?? "",
|
|
34098
|
+
displayName: composeVaultDisplayName(
|
|
34099
|
+
"Gearbox",
|
|
34100
|
+
curatorName,
|
|
34101
|
+
assetMeta,
|
|
34102
|
+
pool.name ?? void 0
|
|
34103
|
+
),
|
|
34104
|
+
decimals,
|
|
34105
|
+
totalAssets: totalAssetsRaw,
|
|
34106
|
+
totalSupply: pool.totalSupply?.toString() ?? "0",
|
|
34107
|
+
totalBorrowed: pool.totalBorrowed?.toString() ?? "0",
|
|
34108
|
+
availableLiquidity: pool.availableLiquidity?.toString() ?? "0",
|
|
34109
|
+
expectedLiquidity: pool.expectedLiquidity?.toString() ?? "0",
|
|
34110
|
+
dieselRate: pool.dieselRate?.toString() ?? "0",
|
|
34111
|
+
withdrawFeeBps: Number(pool.withdrawFee ?? 0),
|
|
34112
|
+
curator: configurator || void 0,
|
|
34113
|
+
curatorName,
|
|
34114
|
+
supplyRate: scaleRate(pool.supplyRate),
|
|
34115
|
+
baseInterestRate: scaleRate(pool.baseInterestRate),
|
|
34116
|
+
asset: assetMeta,
|
|
34117
|
+
priceUsd: priceUsd || void 0,
|
|
34118
|
+
totalAssetsFormatted,
|
|
34119
|
+
totalAssetsUsd: totalAssetsFormatted * priceUsd,
|
|
34120
|
+
liquidity: liquidityRaw,
|
|
34121
|
+
liquidityFormatted,
|
|
34122
|
+
liquidityUsd: liquidityFormatted * priceUsd
|
|
34123
|
+
};
|
|
34124
|
+
out[underlying] = entry;
|
|
34125
|
+
}
|
|
34126
|
+
return out;
|
|
34127
|
+
}
|
|
34128
|
+
var fetchGearboxV3Pools = async (chainId, multicallRetry, prices = {}, tokenList = {}) => {
|
|
34129
|
+
const calls = buildGearboxV3PoolsCall(chainId);
|
|
34130
|
+
if (calls.length === 0) return {};
|
|
34131
|
+
const raw = await multicallRetry({
|
|
34132
|
+
chain: chainId,
|
|
34133
|
+
calls,
|
|
34134
|
+
abi: calls.map(() => GearboxMarketCompressorV310Abi)
|
|
34135
|
+
});
|
|
34136
|
+
const [converter] = getGearboxV3PoolsConverter(chainId, prices, tokenList);
|
|
34137
|
+
return converter(raw) ?? {};
|
|
34138
|
+
};
|
|
34139
|
+
|
|
33808
34140
|
// src/vaults/morpho/fetchFromApi.ts
|
|
33809
34141
|
var MORPHO_API_URL = "https://blue-api.morpho.org/graphql";
|
|
33810
34142
|
var PAGE_SIZE = 200;
|
|
@@ -33844,6 +34176,12 @@ query GetVaults {
|
|
|
33844
34176
|
owner
|
|
33845
34177
|
curator
|
|
33846
34178
|
guardian
|
|
34179
|
+
curators {
|
|
34180
|
+
id
|
|
34181
|
+
name
|
|
34182
|
+
image
|
|
34183
|
+
verified
|
|
34184
|
+
}
|
|
33847
34185
|
rewards {
|
|
33848
34186
|
supplyApr
|
|
33849
34187
|
asset {
|
|
@@ -33869,6 +34207,21 @@ async function fetchPage(chainId, first, skip) {
|
|
|
33869
34207
|
const json = await response.json();
|
|
33870
34208
|
return json?.data?.vaults?.items ?? [];
|
|
33871
34209
|
}
|
|
34210
|
+
var parseCurators = (curators) => {
|
|
34211
|
+
if (!curators?.length) return void 0;
|
|
34212
|
+
const out = [];
|
|
34213
|
+
for (const c of curators) {
|
|
34214
|
+
const name = c?.name?.trim();
|
|
34215
|
+
if (!name) continue;
|
|
34216
|
+
out.push({
|
|
34217
|
+
id: c.id ?? "",
|
|
34218
|
+
name,
|
|
34219
|
+
image: c.image ?? void 0,
|
|
34220
|
+
verified: c.verified ?? void 0
|
|
34221
|
+
});
|
|
34222
|
+
}
|
|
34223
|
+
return out.length > 0 ? out : void 0;
|
|
34224
|
+
};
|
|
33872
34225
|
var sumRewardsApr = (rewards) => {
|
|
33873
34226
|
if (!rewards) return 0;
|
|
33874
34227
|
let total = 0;
|
|
@@ -33898,11 +34251,19 @@ function parseVault2(v, chainId, prices, tokenList) {
|
|
|
33898
34251
|
const rewardsRate = sumRewardsApr(state.rewards);
|
|
33899
34252
|
const apiTotalAssetsUsd = Number(state.totalAssetsUsd ?? 0);
|
|
33900
34253
|
const totalAssetsUsd = apiTotalAssetsUsd || totalAssetsFormatted * resolvedPriceUsd;
|
|
34254
|
+
const curators = parseCurators(state.curators);
|
|
34255
|
+
const primaryCurator = curators?.[0];
|
|
33901
34256
|
return {
|
|
33902
34257
|
address,
|
|
33903
34258
|
underlying: assetAddr,
|
|
33904
34259
|
symbol: v.symbol ?? "",
|
|
33905
34260
|
name: v.name ?? "",
|
|
34261
|
+
displayName: composeVaultDisplayName(
|
|
34262
|
+
"Morpho",
|
|
34263
|
+
primaryCurator?.name,
|
|
34264
|
+
assetMeta,
|
|
34265
|
+
v.name ?? void 0
|
|
34266
|
+
),
|
|
33906
34267
|
decimals,
|
|
33907
34268
|
totalAssets: totalAssetsRaw,
|
|
33908
34269
|
totalSupply: state.totalSupply?.toString() ?? "0",
|
|
@@ -33915,6 +34276,9 @@ function parseVault2(v, chainId, prices, tokenList) {
|
|
|
33915
34276
|
owner: state.owner?.toLowerCase() || void 0,
|
|
33916
34277
|
curator: state.curator?.toLowerCase() || void 0,
|
|
33917
34278
|
guardian: state.guardian?.toLowerCase() || void 0,
|
|
34279
|
+
curatorName: primaryCurator?.name,
|
|
34280
|
+
curatorImage: primaryCurator?.image,
|
|
34281
|
+
curators,
|
|
33918
34282
|
asset: assetMeta,
|
|
33919
34283
|
priceUsd: resolvedPriceUsd || void 0,
|
|
33920
34284
|
totalAssetsFormatted,
|
|
@@ -33992,6 +34356,12 @@ function parseVault3(v, chainId, prices, tokenList) {
|
|
|
33992
34356
|
underlying: assetAddr,
|
|
33993
34357
|
symbol: v.symbol ?? "",
|
|
33994
34358
|
name: v.name ?? "",
|
|
34359
|
+
displayName: composeVaultDisplayName(
|
|
34360
|
+
"Morpho",
|
|
34361
|
+
void 0,
|
|
34362
|
+
assetMeta,
|
|
34363
|
+
v.name ?? void 0
|
|
34364
|
+
),
|
|
33995
34365
|
decimals,
|
|
33996
34366
|
totalAssets: totalAssetsRaw,
|
|
33997
34367
|
totalSupply: v.totalShares?.toString() ?? "0",
|
|
@@ -34113,6 +34483,12 @@ function parseVault4(v, chainId, prices, tokenList) {
|
|
|
34113
34483
|
underlying: assetAddr,
|
|
34114
34484
|
symbol: v.symbol ?? "",
|
|
34115
34485
|
name: v.name ?? "",
|
|
34486
|
+
displayName: composeVaultDisplayName(
|
|
34487
|
+
"Silo",
|
|
34488
|
+
void 0,
|
|
34489
|
+
assetMeta,
|
|
34490
|
+
v.name ?? void 0
|
|
34491
|
+
),
|
|
34116
34492
|
decimals,
|
|
34117
34493
|
protocolVersion: v.protocol?.protocolVersion ?? "",
|
|
34118
34494
|
protocolId: (v.protocolId ?? v.protocol?.id ?? "").toLowerCase(),
|
|
@@ -34172,6 +34548,67 @@ var fetchSiloVaults = async (chainId, prices = {}, tokenList = {}, options) => {
|
|
|
34172
34548
|
}
|
|
34173
34549
|
return out;
|
|
34174
34550
|
};
|
|
34551
|
+
var warn3 = (...args) => {
|
|
34552
|
+
};
|
|
34553
|
+
var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices = {}, tokenList = {}, options) => {
|
|
34554
|
+
const requested = new Set(providers);
|
|
34555
|
+
if (requested.size === 0) return {};
|
|
34556
|
+
const tasks = [];
|
|
34557
|
+
const out = {};
|
|
34558
|
+
if (requested.has("fluid")) {
|
|
34559
|
+
tasks.push(
|
|
34560
|
+
fetchFluidFTokens(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
34561
|
+
out.fluid = res;
|
|
34562
|
+
}).catch((e) => {
|
|
34563
|
+
warn3(
|
|
34564
|
+
`[vaults] fluid fetch failed for chain ${chainId}:`,
|
|
34565
|
+
e?.message ?? e
|
|
34566
|
+
);
|
|
34567
|
+
})
|
|
34568
|
+
);
|
|
34569
|
+
}
|
|
34570
|
+
if (requested.has("gearbox")) {
|
|
34571
|
+
tasks.push(
|
|
34572
|
+
fetchGearboxV3Pools(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
34573
|
+
out.gearbox = res;
|
|
34574
|
+
}).catch((e) => {
|
|
34575
|
+
warn3(
|
|
34576
|
+
`[vaults] gearbox fetch failed for chain ${chainId}:`,
|
|
34577
|
+
e?.message ?? e
|
|
34578
|
+
);
|
|
34579
|
+
})
|
|
34580
|
+
);
|
|
34581
|
+
}
|
|
34582
|
+
if (requested.has("morpho")) {
|
|
34583
|
+
tasks.push(
|
|
34584
|
+
fetchMorphoVaults(chainId, prices, tokenList).then((res) => {
|
|
34585
|
+
out.morpho = res;
|
|
34586
|
+
}).catch((e) => {
|
|
34587
|
+
warn3(
|
|
34588
|
+
`[vaults] morpho fetch failed for chain ${chainId}:`,
|
|
34589
|
+
e?.message ?? e
|
|
34590
|
+
);
|
|
34591
|
+
})
|
|
34592
|
+
);
|
|
34593
|
+
}
|
|
34594
|
+
if (requested.has("silo")) {
|
|
34595
|
+
tasks.push(
|
|
34596
|
+
fetchSiloVaults(chainId, prices, tokenList, {
|
|
34597
|
+
protocolVersion: options?.siloProtocolVersion,
|
|
34598
|
+
limit: options?.siloLimit
|
|
34599
|
+
}).then((res) => {
|
|
34600
|
+
out.silo = res;
|
|
34601
|
+
}).catch((e) => {
|
|
34602
|
+
warn3(
|
|
34603
|
+
`[vaults] silo fetch failed for chain ${chainId}:`,
|
|
34604
|
+
e?.message ?? e
|
|
34605
|
+
);
|
|
34606
|
+
})
|
|
34607
|
+
);
|
|
34608
|
+
}
|
|
34609
|
+
await Promise.all(tasks);
|
|
34610
|
+
return out;
|
|
34611
|
+
};
|
|
34175
34612
|
|
|
34176
34613
|
// src/lending/margin/e-mode/index.ts
|
|
34177
34614
|
function computeEModeSwitchHealth(positions, lenderMeta, currentCollateral, currentAdjustedDebt, currentMode, targetMode) {
|
|
@@ -34659,6 +35096,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
34659
35096
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
34660
35097
|
}
|
|
34661
35098
|
|
|
34662
|
-
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, 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, hasMorphoVaultSubgraph, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
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 };
|
|
34663
35100
|
//# sourceMappingURL=index.js.map
|
|
34664
35101
|
//# sourceMappingURL=index.js.map
|