@1delta/margin-fetcher 5.0.47 → 5.0.50

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
@@ -1430,11 +1430,18 @@ interface PermissionParams {
1430
1430
  /** Silo: withdraw from protected (non-borrowable) collateral share token */
1431
1431
  siloIsProtected?: boolean;
1432
1432
  /**
1433
- * Gearbox V3: BotListV3 contract address (resolved from
1434
- * `AddressProviderV310`). Required when any lender is GEARBOX_V3 passed
1435
- * through to `prepareLenderDebitMulticall`.
1433
+ * Gearbox V3: BotListV3 contract address. Resolve it PER FACADE
1434
+ * (`creditFacade.botList()`), not from the per-chain metadata constant
1435
+ * V3.0 and V3.1 markets coexist on a chain and use different BotLists, and
1436
+ * `gearbox-resolvers.json` publishes only the V3.1 address.
1436
1437
  */
1437
1438
  gearboxBotList?: string;
1439
+ /**
1440
+ * Gearbox facade `version()`. >= 310 selects the V3.1
1441
+ * `botPermissions(bot, creditAccount)` read; anything else keeps the V3.0
1442
+ * `(bot, creditManager, borrower)` form. Both generations are live.
1443
+ */
1444
+ gearboxBotListVersion?: bigint;
1438
1445
  }
1439
1446
  interface PermissionMeta {
1440
1447
  chainId: string;
@@ -11167,6 +11174,15 @@ interface EarnMarket {
11167
11174
  asset: EarnAsset;
11168
11175
  /** Present only when depositing mints a distinct receipt token. */
11169
11176
  shareToken?: EarnShareToken;
11177
+ /**
11178
+ * Present when the row's POSITION is a multi-token pool position rather than
11179
+ * a balance of `asset`. Absent ⇒ an ordinary single-asset row.
11180
+ *
11181
+ * `asset` stays what it is — the thing the user hands over — because that is
11182
+ * what a deposit form needs. What it stops being on these rows is what the
11183
+ * user ends up HOLDING, and nothing else on the row says so.
11184
+ */
11185
+ basket?: EarnBasket;
11170
11186
  /** What the user earns. ALWAYS PERCENT — see `EarnRate`. */
11171
11187
  rate: EarnRate;
11172
11188
  /** Size and room. */
@@ -11246,6 +11262,108 @@ interface EarnShareToken {
11246
11262
  */
11247
11263
  decimals: number;
11248
11264
  }
11265
+ /**
11266
+ * A position whose unit is a POOL POSITION over several tokens.
11267
+ *
11268
+ * ## Why this is on the row and not in `providerMeta`
11269
+ *
11270
+ * Every earn row is rendered under one asset's name, and for these rows that
11271
+ * name is a half-truth: deposit USDC into a Fluid smart vault and you hold a
11272
+ * claim on USDC *and* ETH, in a split that keeps moving and that you do not
11273
+ * control. Ranked in a list beside ordinary USDC rows it reads as the same
11274
+ * kind of thing, and it is not — it carries the other leg's price risk. The
11275
+ * one place that fact can live is the row.
11276
+ *
11277
+ * It is also the fix for a rate bug that already shipped: on a pool position
11278
+ * the per-leg rate is right PER DOLLAR and is NOT the position's APR, so a
11279
+ * "best APR" taken as the max over legs read 11.81 % where the vault earned
11280
+ * 10.33 %. `rate` on a basket row is always the POSITION's; `legs[].rate`
11281
+ * keeps the per-leg figure so the headline stays auditable.
11282
+ *
11283
+ * ## Deliberately NOT Fluid-shaped
11284
+ *
11285
+ * `legs` is an ARRAY, not a pair. Fluid smart vaults, Lista SmartLP, Uniswap
11286
+ * V2 and GMX GM are all two-token, but Curve 3pool is three, tricrypto is
11287
+ * three and Balancer goes to eight — and a `[Leg, Leg]` tuple is exactly the
11288
+ * kind of shortcut that forces a second, competing vocabulary the first time a
11289
+ * three-token pool arrives. `LP_ACTIONS_PLAN.md` §3's lending-side `lp`
11290
+ * descriptor still spells a 2-tuple because both of its providers are
11291
+ * two-token; when a Curve or Balancer LP reaches the LENDING half, that one
11292
+ * should adopt this shape rather than the reverse.
11293
+ */
11294
+ interface EarnBasket {
11295
+ /**
11296
+ * How this row's own `asset` relates to the pool position.
11297
+ *
11298
+ * `leg` — the row IS one leg, and the venue emits one row per leg
11299
+ * (Fluid smart: a T4 emits up to four rows for ONE vault).
11300
+ * Consumers must dedupe on `positionUnit` before summing,
11301
+ * or they will count the same position N times.
11302
+ * `positionUnit` — the row IS the pool position; `asset` is the LP token
11303
+ * itself (GMX GM/GLV, a Curve LP gauge, Lista SmartLP).
11304
+ */
11305
+ rowAsset: 'leg' | 'positionUnit';
11306
+ /**
11307
+ * The pool's tokens, IN THE POOL'S OWN INDEX ORDER.
11308
+ *
11309
+ * The order is load-bearing, not cosmetic: a two-input deposit form maps its
11310
+ * inputs to it positionally, and swapping them lands the amounts on the
11311
+ * wrong legs. Preserve it verbatim from the source; never sort it.
11312
+ */
11313
+ legs: EarnBasketLeg[];
11314
+ /**
11315
+ * The composition is POOL-CONTROLLED — it drifts with price and trading, and
11316
+ * a holder cannot choose to hold one leg on its own.
11317
+ *
11318
+ * True for every constant-function pool (Uniswap V2, Curve, Balancer, Fluid
11319
+ * DEX, GMX GM). It would be FALSE for a position whose split the user sets
11320
+ * and the protocol does not touch, which is why this is a flag rather than
11321
+ * being implied by `legs.length > 1` — a basket and an auto-balanced basket
11322
+ * are different claims, and a UI warning about drift must only fire on the
11323
+ * second.
11324
+ */
11325
+ autoBalanced: boolean;
11326
+ /** What the position is denominated in, when it is not `asset`. */
11327
+ positionUnit?: {
11328
+ /** `shares` = an internal share count (Fluid); `lpToken` = a real ERC-20. */
11329
+ kind: 'shares' | 'lpToken';
11330
+ /** Present for `lpToken` — this is what a client dedupes leg rows on. */
11331
+ address?: string;
11332
+ decimals: number;
11333
+ };
11334
+ /**
11335
+ * Current split by VALUE, parallel to `legs`, fractions summing to ~1.
11336
+ *
11337
+ * The word "current" is the whole point: it is a snapshot of a number that
11338
+ * moves, so it is safe to display and never safe to cache or to treat as the
11339
+ * ratio a future deposit will land at.
11340
+ */
11341
+ weights?: number[];
11342
+ /**
11343
+ * Pool venue family — `fluid-dex`, `curve`, `uniswap-v2`, `gmx-gm`,
11344
+ * `lista-smartlp`. Free-form on purpose: it exists so a client can say WHERE
11345
+ * the position lives without parsing `venue`, not so anyone can switch on it.
11346
+ */
11347
+ pool?: string;
11348
+ /**
11349
+ * Swap fee in bps, so a client can explain what an off-ratio entry costs
11350
+ * without protocol knowledge. Absent ⇒ not published by the source.
11351
+ */
11352
+ feeBps?: number;
11353
+ }
11354
+ interface EarnBasketLeg {
11355
+ address: string;
11356
+ symbol?: string;
11357
+ decimals?: number;
11358
+ assetGroup?: string;
11359
+ /**
11360
+ * This leg's OWN rate, PERCENT — what the row's `rate.total` was blended
11361
+ * from. Kept because it is not wrong (it is the rate per dollar sitting in
11362
+ * this token) and because hiding it makes the headline unauditable against
11363
+ * the market page the user came from.
11364
+ */
11365
+ rate?: number;
11366
+ }
11249
11367
  /**
11250
11368
  * An amount, carried in whichever scales the source actually provides.
11251
11369
  *
@@ -12595,11 +12713,6 @@ interface EarnVaultNormalizeOptions {
12595
12713
  */
12596
12714
  fractionRateProviders?: ReadonlySet<string>;
12597
12715
  }
12598
- /**
12599
- * Normalize one origin vault row. Returns `undefined` when the row lacks the
12600
- * identifiers needed to key or transact it — a dropped row is recoverable, a
12601
- * row with a fabricated key is not.
12602
- */
12603
12716
  declare function earnMarketFromVault(row: VaultSourceRow, chainId: string, opts?: EarnVaultNormalizeOptions): EarnMarket | undefined;
12604
12717
  /**
12605
12718
  * Convert a source rate to PERCENT.
@@ -12715,6 +12828,27 @@ interface PoolSourceRow {
12715
12828
  score?: number | string;
12716
12829
  label?: string;
12717
12830
  };
12831
+ /**
12832
+ * ROW-LEVEL, and deliberately not under `fluid`: the position's composition
12833
+ * is pool-controlled. Lender-agnostic by design — Lista SmartLP and GMX
12834
+ * GM/GLV are the same shape.
12835
+ */
12836
+ autoBalanced?: boolean;
12837
+ /**
12838
+ * Fluid's smart-vault descriptor. The ONLY source of leg order today, and
12839
+ * the reason `basket.legs` can be populated at all on the lending half.
12840
+ */
12841
+ fluid?: {
12842
+ isSmartCol?: boolean;
12843
+ isSmartDebt?: boolean;
12844
+ collateralPair?: string[];
12845
+ debtPair?: string[];
12846
+ basketSupplyRate?: number | string;
12847
+ basketBorrowRate?: number | string;
12848
+ supplyDexTradingRate?: number | string;
12849
+ borrowDexTradingRate?: number | string;
12850
+ [key: string]: unknown;
12851
+ };
12718
12852
  /**
12719
12853
  * Oracle provenance per feed. `priceDescription` ("BTC / USD") is the only
12720
12854
  * field the label uses — it is what distinguishes two markets on the same
@@ -12791,23 +12925,6 @@ interface PoolSourceRow {
12791
12925
  * costs nothing and removes the question.
12792
12926
  */
12793
12927
  declare function collateralSymbolsByVenue(rows: readonly PoolSourceRow[], fallbackChainId?: string): Map<string, string[]>;
12794
- /**
12795
- * Normalize one origin pool row.
12796
- *
12797
- * Returns `undefined` when the row carries no `marketUid`. **The uid is never
12798
- * reconstructed** — rebuilding it as `lender:chainId:underlying` is only
12799
- * correct for the default-format lenders and silently mints a wrong key for
12800
- * Compound V2 (needs the cToken) and Dolomite (needs the integer marketId).
12801
- * A wrong term sheet is a display bug; a wrong uid routes a deposit to the
12802
- * wrong market. Drop the row and let the caller log it.
12803
- *
12804
- * `venueCollaterals` is the whole map from {@link collateralSymbolsByVenue} —
12805
- * the row is looked up here so a caller cannot key it wrong. Omitting it is
12806
- * legal and falls back to the fetcher's own name, which is how 300 rows came to
12807
- * read "Loan USDC" in production.
12808
- *
12809
- * See EARN_ENDPOINT_PLAN.md §3.2 and §4.1.
12810
- */
12811
12928
  declare function earnMarketFromPool(row: PoolSourceRow, fallbackChainId?: string, venueCollaterals?: ReadonlyMap<string, string[]>): EarnMarket | undefined;
12812
12929
  /**
12813
12930
  * Below this (in percent) a venue's own yield is treated as nothing.
@@ -13198,4 +13315,4 @@ declare const fetchFluidDexState: (chainId: string, multicallRetry: MulticallRet
13198
13315
  /** Synchronous read of whatever `fetchFluidDexState` last cached for a chain. */
13199
13316
  declare const getCachedFluidDexState: (chainId: string) => FluidDexStateMap | undefined;
13200
13317
 
13201
- export { type AaveMetadata, type AaveV2Public, type AaveV2UserReserveResponse, type AaveV3Public, type AaveV3UserReserveResponse, type AdditionalYields, type AdminKind, ApiBookSource, type AprData, type AprPercent, type AssetQuality, type AssetRiskIndex, type AuctionWindow, type AvailabilityTerms, type BalanceData, type BaseLendingPosition, type BasicReserveResponse, type BorrowExitTerms, type BorrowTermSheet, type BuildTermSheetOptions, type BuildVaultTermSheetOptions, type ChainDiagnostic, type ChainLinkResponse, type ChainQuery, type ChainSummary, type CompoundV2Metadata, type CompoundV3Public, type CompoundV3UserReserveResponse, type ConfigEntry, type ConvertLenderUserDataOptions, type CoreValidators, type CounterpartyTerms, type CoverageInfo, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_PROFILE_ID, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, type DeepPartial, type Denomination, type DepthMap, type DssMarketRaw, type DssMarketsRaw, type DssPositionInfo, EARN_DESCRIPTIONS, EARN_LABELS, EMPTY_BALANCE, type EModeAssets, type EModeData, type EModeResult, EXACTLY_LENDER_KEY, type EarnActionInput, type EarnActionKind, type EarnAmount, type EarnAppliedDefaults, type EarnAprBreakdown, type EarnAsset, type EarnAvailability, type EarnCapability, type EarnCurator, type EarnExclusions, type EarnExit, type EarnFacetBucket, type EarnFacets, type EarnGating, type EarnLabelDimension, type EarnLendingPosition, type EarnMarket, type EarnMarketLabelInput, type EarnPosition, type EarnPositionAsset, type EarnPositionBase, type EarnPositionLeg, type EarnPositionSourceStatus, type EarnPositionSubAccount, type EarnPositionTotals, type EarnPositionUid, type EarnPositionsResponse, type EarnProtocol, type EarnProtocolAndCurator, type EarnRate, type EarnRateSource, type EarnRefs, type EarnResponse, type EarnRisk, type EarnShareToken, type EarnSourceStatus, type EarnVaultNormalizeOptions, type EarnVaultPosition, type EarnVenueKind, type EarnVocabulary, type EndpointFailure, type EnrichmentIndex, type EulerEarnVault, type EulerEarnVaults, type EulerV2Metadata, type ExactlyFixedPool, type ExactlyFixedPosition, type ExactlyMarketAccount, type ExactlyMarketsRaw, type ExactlyUserFixedPosition, type ExposureEntry, type ExposureTerms, type ExtraValidationCall, FRACTION_RATE_PROVIDERS, type FeeTerm, type FeeWhen, type FeedObservation, type FeedStat, type FeedStatsMap, type FeedTimestampMap, type FetchListaVaultsFromChainOptions, type FetchMorphoVaultsFromChainOptions, type FetchOraclePricesOptions, type FetchPendlePtOptions, type FetchTokenBalancesOptions, type FlattenPriorityConfig, type FluidDexShareState, type FluidDexStateMap, type FluidFToken, type FluidFTokens, type FrankencoinMarketRaw, type FrankencoinMarketsRaw, type FrankencoinPositionInfo, type FraxlendPairRaw, type FraxlendPairsRaw, type FullLenderRewardsMap, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, type GenericCurrency, type GenericTokenList, type GetVaultPublicDataAllOptions, type GmxExecutionFees, type GmxPendingDeposit, type GmxPendingWithdrawal, type GmxReadContracts, type GmxUserBalance, type GmxUserPositions, type GmxUserPositionsOptions, type GmxVault, type GmxVaultKind, type GmxVaults, type GmxVaultsFetchOptions, type GovernancePower, type GovernanceRow, type GovernanceTerms, type GroupAccumulator, HYPERCORE_VAULT_REGISTRY, type HypercoreLockStatus, type HypercoreUserPositionsOptions, type HypercoreVault, type HypercoreVaultPosition, type HypercoreVaultRegistryEntry, type HypercoreVaults, type HypercoreVaultsFetchOptions, IDLE_MARKET_ID, INTERFACE_IDS, type IncompleteLenderRead, type IncompleteReason, type InitMetadata, type InitPublic, type InitUserReserveResponse, type InterfaceKind, type InvariantViolation, type InverseMarketRaw, type InverseMarketsRaw, type InversePositionInfo, LAGOON_API_URL, LAGOON_CHAIN_IDS, type LagoonApiVault, type LagoonSyncMode, type LagoonVault, type LagoonVaults, type LenderAssetReward, type LenderConfigData, type LenderConfigMap, type LenderCrossPoolMeta, type LenderData, type LenderDataEntry, type LenderInfo, type LenderInfoMap, type LenderPublicBase, type LenderRewardsMap, type LenderSummary, type LenderToLenderCrossPoolMeta, type LenderTotalAmounts, type LenderUserQuery, type LenderUserResponse, type LenderYieldComplete, type LenderYields$1 as LenderYields, LendingMode, type LiquidationPenaltyTerm, type LiquidationTerms, type LiquityBranchRaw, type LiquityDiscoveredTrove, type LiquityDiscovery, type LiquityMarketsRaw, type LiquitySpInfo, type LiquityTroveInfo, type ListaMarketOverrides, type LlamaLendMarketOverride, type LlamaLendMarketOverrides, type LlamaLendMarketRaw, type LlamaLendMarketsRaw, type LlamaLendPositionInfo, type LoopPostTradeMetrics, type LstDelegation, type LstDelegationKind, type LstValidator, type LstWithdrawalFetchOptions, type LstWithdrawalRegistryEntry, type LstWithdrawalRequest, type LstWithdrawalRequestsByLst, type LstWithdrawalStatus, MORPHO_LENS, MULTICALL_FAILURE, type MaturityTerms, MaxParamThresholds, type MergedUserData, type MidnightBook, type MidnightBookLevel, type MidnightBookSource, type ModeBase, type ModeVariant, type MorphoMarketOverrides, type MorphoSubgraphProxyConfig, type MorphoUserMarketBalance, type MorphoUserReserveResponse, type MorphoVault, type MorphoVaults, type MulticallEndpointOptions, type MulticallRpcBatch, type NumberMap, type Open, type OracleBand, type OracleDiagnostics, type OraclePriceEntry, type OraclePricesResult, type OracleRiskRow, type OracleTerms, type OutlierGuardConfig, PASSTHROUGH_RATE_EPSILON, PENDLE_ASSETS_URL, PENDLE_CHAIN_IDS, PENDLE_MARKETS_URL, type ParsedBalanceData, type ParsedEarnUid, type ParsedLendingEarnUid, type ParsedResponse, type ParsedUserBalance, type ParsedVaultEarnUid, type PendleApiAsset, type PendleApiMarket, type PendleApiMarketDetails, type PendlePtMarket, type PendlePtMarkets, type PermissionKind, type PermissionParams, type PoolData, type PoolSourceRow, type PoolWithMeta, type PortfolioSummary, type PortfolioTotals, type PositionConstraints, type PostTradeMetrics, type PreparedCall, type PreparedMergedMulticallParams, type PreparedMergedRpcCalls, type PreparedTokenBalanceRpcCalls, type PreparedUserDataRpcCalls, type PriceDerivation, type PriceSelection, type ProtocolParams, type ProviderOptions, type RateKind, type RateMenuEntry, type RateTerms, type RawRpcBatch, type RawRpcCall, type RawRpcResponse, type ReadFailurePolicy, type RedemptionTerms, type ResupplyMarketsRaw, type ResupplyPairIdentity, type ResupplyPairRaw, type ResupplyPositionInfo, type ResupplyWrappedMarket, type RewardSourceRef, type RewardStream, type RewardTerm, type RewardTokenRef, type RiverMarketRaw, type RiverMarketsRaw, type RiverPositionInfo, SDK_FRACTION_RATE_PROVIDERS, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, type SelectPricesOptions, type Severity, type SeverityFinding, type SiloVault, type SiloVaults, type StCeloValidatorGroup, type StaleFeedEntry, type StampOptions, type StructuredOraclePrices, type SubAccountSummary, type SumerPositionInput, type SummaryAprData, type SummaryBalanceData, type SupplyExitMode, type SupplyExitTerms, type SupplyTermSheet, TELLER_CALLS_PER_BID, TERMMAX_CALLS_PER_ACCOUNT, DECIMAL_BASE as TERMMAX_DECIMAL_BASE, TERMMAX_LIQUIDATION_PENALTY, TERMMAX_LIQUIDATION_WINDOW_SECS, TERMMAX_LIQUIDATOR_BONUS, TERMMAX_PARTIAL_CLOSE_FACTOR, TERMMAX_PARTIAL_LIQUIDATION_THRESHOLD_USD, TERM_ADAPTERS, TERM_PROFILES, TERM_SHEET_SCHEMA_VERSION, type TellerDiscoveredBid, type TellerDiscovery, type TellerMarketsRaw, type TellerPoolRaw, type TermAdapter, type TermAssetRef, type TermAuctionOrder, type TermAuctionOrders, type TermBookSource, type TermBookTop, type TermInfo, type TermListing, type TermMarketRaw, TermMaxApiSource, type TermMaxBookTop, type TermMaxCurveSegment, type TermMaxDataSource, type TermMaxDiscovery, type TermMaxFeeConfig, type TermMaxMarketConfig, type TermMaxMarketRaw, type TermMaxOrderState, type TermProfile, type TermSheet, type TermSheetDigest, type TermSheetInput, type TermSheetViolation, TermSubgraphSource, type TermTag, type TokenApprovalMeta, type TokenApprovalParams, type TokenBalanceEntry, type TokenBalanceQuery, type TokenBalanceResult, type TokenEntry, type TokenList, type TokenListInput, type TrackerDiagnostic, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, type USDPriceMap, type UpshiftApiAsset, type UpshiftApiVault, type UpshiftVault, type UpshiftVaults, type UsddMarketRaw, type UsddMarketsRaw, type DssPositionInfo as UsddPositionInfo, type UserApr, type UserConfig, type UserData, type UserDataResult, type UserLendingPosition, type UtilizationTerms, VAULT_PROVIDERS, VAULT_PROVIDER_PROFILE, VAULT_PROVIDER_TRAITS, VAULT_SHARE_PRICE_PROBE, VAULT_VENUE_PREFIX, VOLATILE_VAULT_OVERRIDES, type ValidationResult, type VaultAprResult, type VaultBalanceInput, type VaultClassification, type VaultClassificationFields, type VaultLookupEntry, type VaultMarketExposure, type VaultProvider, type VaultProviderTraits, type VaultPublicDataAll, type VaultPublicDataResult, type VaultSourceRow, type VaultTermInput, type VaultYieldSeries, type VaultYieldSnapshot, type YDaemonVault, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, type YearnVault, type YearnVaultKind, type YearnVaults, type YieldProfile, __resetResupplyUserCaches, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachImplications, attachPricesToFlashLiquidity, borrowDescription, borrowFindings, borrowHeadline, buildExposures, buildFluidFTokensCall, buildLendingPositionUid, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildTermMaxUserCall, buildTermSheet, buildTermSheetsForGroup, buildVaultEarnUid, buildVaultLookup, buildVaultTermSheet, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, clearPendleMarketsCache, collateralSymbolsByVenue, collectFeedObservations, computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta, computeZapTradeDeltas, consensusReference, convertDssMarketsToResponse, convertExactlyMarketsToResponse, convertFrankencoinMarketsToResponse, convertFraxlendPairsToResponse, convertInverseMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertLlamaLendMarketsToResponse, convertResupplyMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, convertTermMaxMarketsToResponse, convertUsddMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, deriveBorrowTags, deriveSupplyTags, detectInterfaceKinds, dexResolverFor, disambiguateEarnNames, dssIlkBytes32, dssKeyParts, dssLenderKey, duration, earnDescription, earnLabel, earnMarketFromPool, earnMarketFromVault, earnMarketLabel, earnPositionFromLenderEntry, earnPositionFromVaultBalance, earnPositionTotals, earnRowSubtitle, earnUidFromMarketUid, earnVaultTerms, earnVenueKind, encodeBalanceFetcherCalldata, enrichTermSheet, enrichmentIndexFromRows, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feePhrase, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchDssMarkets, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidDexState, fetchFluidFTokens, fetchFrankencoinMarkets, fetchFraxlendPairs, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchInverseMarkets, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchLlamaLendMarkets, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendleApiAssets, fetchPendleApiMarkets, fetchPendlePrices, fetchPendlePtMarkets, fetchResupplyMarkets, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTermMaxMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchUsddMarkets, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, finalizeInfo, findingsFor, formatRaw, frankencoinKeyParts, frankencoinLenderKey, fraxlendAssetPerCollateral, fraxlendKeyParts, fraxlendLenderKey, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedFluidDexState, getCachedLiquityTroves, getCachedTellerBids, getCachedTermMaxDiscovery, getCachedTermMaxMarket, getCachedTermMaxMarkets, getCoreValidators, getFluidFTokensConverter, getGmxApiHost, getGmxReadContracts, getGmxUserPositions, getHealthFactor, getHypercoreUserPositions, getHypercoreVaultRegistry, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getLstDelegation, getLstValidators, getLstWithdrawalRegistry, getLstWithdrawalRequests, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getReadFailurePolicy, getResolvedDolomiteAccountNumbers, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getTermProfile, getVaultPublicDataAll, getVaultWithdrawalRequests, hasCritical, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasPendleMarkets, hasUpshiftVaults, hasYearnVaults, ilkToKeySegment, implausibleRatePercent, inverseKeyParts, inverseLenderKey, isBoundNeed, isFailedCall, isIlliquid, isLendingPosition, isLiveMarket as isLivePendleMarket, isStablecoinSymbol, isVaultPosition, isVaultVenue, isYearnV3, keySegmentToIlk, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, llamaLendKeyParts, llamaLendLenderKey, mergeDeep, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseEarnUid, parseMergedResult, parseMulticallRpcResponses, parseExpirySeconds as parsePendleExpirySeconds, parseRawRpcBatchResponses, parseRawRpcResponses, parseTermMaxLtv, parseTokenBalanceResult, pct, assetKey as pendleAssetKey, positivePart, predictInverseEscrow, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, rankFindings, ratePercent, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveAdapter, resolveDerivation, resolveEarnIdentity, resolveModeConfig, resolveStCeloDepositGroup, resolveVaultProfileId, resupplyKeyParts, resupplyLenderKey, resupplyMarketLabel, riverKeyParts, riverLenderKey, savingsAddresses, savingsBalanceKind, selectAssetGroupPrices, shortDate, splitChainScopedAddress as splitPendleChainScopedAddress, stampCapabilities, stampEarnSubtitles, stampVaultClassification, stampVaultTermSheets, stripLeadingBrand, supplyDescription, supplyFindings, supplyHeadline, swapRoutedProvidersArePriceConsistent, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, termMaxApiBase, borrowNif as termMaxBorrowNif, curveApr as termMaxCurveApr, curveAprNumber as termMaxCurveAprNumber, daysToMaturity as termMaxDaysToMaturity, lendNif as termMaxLendNif, mintGtFeeRatio as termMaxMintGtFeeRatio, ratioToNumber as termMaxRatioToNumber, ratioToPercent as termMaxRatioToPercent, tickToAprNumber, tickToPrice, toDigest, toTermSheetInput, toVaultTermInput, trancheFromCounterparty, tryParseEarnUid, unflattenLenderData, updateFeedStats, usdValue, usddIlkBytes32, usddKeyParts, usddLenderKey, validateTermSheet, validateTermSheets, validateUserData, vaultSharesToAssets, vaultTermInputFromEarnMarket, vaultTermInputFromSourceRow, vaultTraits, vaultVenue, venueBrand, venueBrandKey, withMaturityLabel, withTrancheLabel };
13318
+ export { type AaveMetadata, type AaveV2Public, type AaveV2UserReserveResponse, type AaveV3Public, type AaveV3UserReserveResponse, type AdditionalYields, type AdminKind, ApiBookSource, type AprData, type AprPercent, type AssetQuality, type AssetRiskIndex, type AuctionWindow, type AvailabilityTerms, type BalanceData, type BaseLendingPosition, type BasicReserveResponse, type BorrowExitTerms, type BorrowTermSheet, type BuildTermSheetOptions, type BuildVaultTermSheetOptions, type ChainDiagnostic, type ChainLinkResponse, type ChainQuery, type ChainSummary, type CompoundV2Metadata, type CompoundV3Public, type CompoundV3UserReserveResponse, type ConfigEntry, type ConvertLenderUserDataOptions, type CoreValidators, type CounterpartyTerms, type CoverageInfo, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_PROFILE_ID, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, type DeepPartial, type Denomination, type DepthMap, type DssMarketRaw, type DssMarketsRaw, type DssPositionInfo, EARN_DESCRIPTIONS, EARN_LABELS, EMPTY_BALANCE, type EModeAssets, type EModeData, type EModeResult, EXACTLY_LENDER_KEY, type EarnActionInput, type EarnActionKind, type EarnAmount, type EarnAppliedDefaults, type EarnAprBreakdown, type EarnAsset, type EarnAvailability, type EarnBasket, type EarnBasketLeg, type EarnCapability, type EarnCurator, type EarnExclusions, type EarnExit, type EarnFacetBucket, type EarnFacets, type EarnGating, type EarnLabelDimension, type EarnLendingPosition, type EarnMarket, type EarnMarketLabelInput, type EarnPosition, type EarnPositionAsset, type EarnPositionBase, type EarnPositionLeg, type EarnPositionSourceStatus, type EarnPositionSubAccount, type EarnPositionTotals, type EarnPositionUid, type EarnPositionsResponse, type EarnProtocol, type EarnProtocolAndCurator, type EarnRate, type EarnRateSource, type EarnRefs, type EarnResponse, type EarnRisk, type EarnShareToken, type EarnSourceStatus, type EarnVaultNormalizeOptions, type EarnVaultPosition, type EarnVenueKind, type EarnVocabulary, type EndpointFailure, type EnrichmentIndex, type EulerEarnVault, type EulerEarnVaults, type EulerV2Metadata, type ExactlyFixedPool, type ExactlyFixedPosition, type ExactlyMarketAccount, type ExactlyMarketsRaw, type ExactlyUserFixedPosition, type ExposureEntry, type ExposureTerms, type ExtraValidationCall, FRACTION_RATE_PROVIDERS, type FeeTerm, type FeeWhen, type FeedObservation, type FeedStat, type FeedStatsMap, type FeedTimestampMap, type FetchListaVaultsFromChainOptions, type FetchMorphoVaultsFromChainOptions, type FetchOraclePricesOptions, type FetchPendlePtOptions, type FetchTokenBalancesOptions, type FlattenPriorityConfig, type FluidDexShareState, type FluidDexStateMap, type FluidFToken, type FluidFTokens, type FrankencoinMarketRaw, type FrankencoinMarketsRaw, type FrankencoinPositionInfo, type FraxlendPairRaw, type FraxlendPairsRaw, type FullLenderRewardsMap, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, type GenericCurrency, type GenericTokenList, type GetVaultPublicDataAllOptions, type GmxExecutionFees, type GmxPendingDeposit, type GmxPendingWithdrawal, type GmxReadContracts, type GmxUserBalance, type GmxUserPositions, type GmxUserPositionsOptions, type GmxVault, type GmxVaultKind, type GmxVaults, type GmxVaultsFetchOptions, type GovernancePower, type GovernanceRow, type GovernanceTerms, type GroupAccumulator, HYPERCORE_VAULT_REGISTRY, type HypercoreLockStatus, type HypercoreUserPositionsOptions, type HypercoreVault, type HypercoreVaultPosition, type HypercoreVaultRegistryEntry, type HypercoreVaults, type HypercoreVaultsFetchOptions, IDLE_MARKET_ID, INTERFACE_IDS, type IncompleteLenderRead, type IncompleteReason, type InitMetadata, type InitPublic, type InitUserReserveResponse, type InterfaceKind, type InvariantViolation, type InverseMarketRaw, type InverseMarketsRaw, type InversePositionInfo, LAGOON_API_URL, LAGOON_CHAIN_IDS, type LagoonApiVault, type LagoonSyncMode, type LagoonVault, type LagoonVaults, type LenderAssetReward, type LenderConfigData, type LenderConfigMap, type LenderCrossPoolMeta, type LenderData, type LenderDataEntry, type LenderInfo, type LenderInfoMap, type LenderPublicBase, type LenderRewardsMap, type LenderSummary, type LenderToLenderCrossPoolMeta, type LenderTotalAmounts, type LenderUserQuery, type LenderUserResponse, type LenderYieldComplete, type LenderYields$1 as LenderYields, LendingMode, type LiquidationPenaltyTerm, type LiquidationTerms, type LiquityBranchRaw, type LiquityDiscoveredTrove, type LiquityDiscovery, type LiquityMarketsRaw, type LiquitySpInfo, type LiquityTroveInfo, type ListaMarketOverrides, type LlamaLendMarketOverride, type LlamaLendMarketOverrides, type LlamaLendMarketRaw, type LlamaLendMarketsRaw, type LlamaLendPositionInfo, type LoopPostTradeMetrics, type LstDelegation, type LstDelegationKind, type LstValidator, type LstWithdrawalFetchOptions, type LstWithdrawalRegistryEntry, type LstWithdrawalRequest, type LstWithdrawalRequestsByLst, type LstWithdrawalStatus, MORPHO_LENS, MULTICALL_FAILURE, type MaturityTerms, MaxParamThresholds, type MergedUserData, type MidnightBook, type MidnightBookLevel, type MidnightBookSource, type ModeBase, type ModeVariant, type MorphoMarketOverrides, type MorphoSubgraphProxyConfig, type MorphoUserMarketBalance, type MorphoUserReserveResponse, type MorphoVault, type MorphoVaults, type MulticallEndpointOptions, type MulticallRpcBatch, type NumberMap, type Open, type OracleBand, type OracleDiagnostics, type OraclePriceEntry, type OraclePricesResult, type OracleRiskRow, type OracleTerms, type OutlierGuardConfig, PASSTHROUGH_RATE_EPSILON, PENDLE_ASSETS_URL, PENDLE_CHAIN_IDS, PENDLE_MARKETS_URL, type ParsedBalanceData, type ParsedEarnUid, type ParsedLendingEarnUid, type ParsedResponse, type ParsedUserBalance, type ParsedVaultEarnUid, type PendleApiAsset, type PendleApiMarket, type PendleApiMarketDetails, type PendlePtMarket, type PendlePtMarkets, type PermissionKind, type PermissionParams, type PoolData, type PoolSourceRow, type PoolWithMeta, type PortfolioSummary, type PortfolioTotals, type PositionConstraints, type PostTradeMetrics, type PreparedCall, type PreparedMergedMulticallParams, type PreparedMergedRpcCalls, type PreparedTokenBalanceRpcCalls, type PreparedUserDataRpcCalls, type PriceDerivation, type PriceSelection, type ProtocolParams, type ProviderOptions, type RateKind, type RateMenuEntry, type RateTerms, type RawRpcBatch, type RawRpcCall, type RawRpcResponse, type ReadFailurePolicy, type RedemptionTerms, type ResupplyMarketsRaw, type ResupplyPairIdentity, type ResupplyPairRaw, type ResupplyPositionInfo, type ResupplyWrappedMarket, type RewardSourceRef, type RewardStream, type RewardTerm, type RewardTokenRef, type RiverMarketRaw, type RiverMarketsRaw, type RiverPositionInfo, SDK_FRACTION_RATE_PROVIDERS, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, type SelectPricesOptions, type Severity, type SeverityFinding, type SiloVault, type SiloVaults, type StCeloValidatorGroup, type StaleFeedEntry, type StampOptions, type StructuredOraclePrices, type SubAccountSummary, type SumerPositionInput, type SummaryAprData, type SummaryBalanceData, type SupplyExitMode, type SupplyExitTerms, type SupplyTermSheet, TELLER_CALLS_PER_BID, TERMMAX_CALLS_PER_ACCOUNT, DECIMAL_BASE as TERMMAX_DECIMAL_BASE, TERMMAX_LIQUIDATION_PENALTY, TERMMAX_LIQUIDATION_WINDOW_SECS, TERMMAX_LIQUIDATOR_BONUS, TERMMAX_PARTIAL_CLOSE_FACTOR, TERMMAX_PARTIAL_LIQUIDATION_THRESHOLD_USD, TERM_ADAPTERS, TERM_PROFILES, TERM_SHEET_SCHEMA_VERSION, type TellerDiscoveredBid, type TellerDiscovery, type TellerMarketsRaw, type TellerPoolRaw, type TermAdapter, type TermAssetRef, type TermAuctionOrder, type TermAuctionOrders, type TermBookSource, type TermBookTop, type TermInfo, type TermListing, type TermMarketRaw, TermMaxApiSource, type TermMaxBookTop, type TermMaxCurveSegment, type TermMaxDataSource, type TermMaxDiscovery, type TermMaxFeeConfig, type TermMaxMarketConfig, type TermMaxMarketRaw, type TermMaxOrderState, type TermProfile, type TermSheet, type TermSheetDigest, type TermSheetInput, type TermSheetViolation, TermSubgraphSource, type TermTag, type TokenApprovalMeta, type TokenApprovalParams, type TokenBalanceEntry, type TokenBalanceQuery, type TokenBalanceResult, type TokenEntry, type TokenList, type TokenListInput, type TrackerDiagnostic, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, type USDPriceMap, type UpshiftApiAsset, type UpshiftApiVault, type UpshiftVault, type UpshiftVaults, type UsddMarketRaw, type UsddMarketsRaw, type DssPositionInfo as UsddPositionInfo, type UserApr, type UserConfig, type UserData, type UserDataResult, type UserLendingPosition, type UtilizationTerms, VAULT_PROVIDERS, VAULT_PROVIDER_PROFILE, VAULT_PROVIDER_TRAITS, VAULT_SHARE_PRICE_PROBE, VAULT_VENUE_PREFIX, VOLATILE_VAULT_OVERRIDES, type ValidationResult, type VaultAprResult, type VaultBalanceInput, type VaultClassification, type VaultClassificationFields, type VaultLookupEntry, type VaultMarketExposure, type VaultProvider, type VaultProviderTraits, type VaultPublicDataAll, type VaultPublicDataResult, type VaultSourceRow, type VaultTermInput, type VaultYieldSeries, type VaultYieldSnapshot, type YDaemonVault, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, type YearnVault, type YearnVaultKind, type YearnVaults, type YieldProfile, __resetResupplyUserCaches, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachImplications, attachPricesToFlashLiquidity, borrowDescription, borrowFindings, borrowHeadline, buildExposures, buildFluidFTokensCall, buildLendingPositionUid, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildTermMaxUserCall, buildTermSheet, buildTermSheetsForGroup, buildVaultEarnUid, buildVaultLookup, buildVaultTermSheet, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, clearPendleMarketsCache, collateralSymbolsByVenue, collectFeedObservations, computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta, computeZapTradeDeltas, consensusReference, convertDssMarketsToResponse, convertExactlyMarketsToResponse, convertFrankencoinMarketsToResponse, convertFraxlendPairsToResponse, convertInverseMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertLlamaLendMarketsToResponse, convertResupplyMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, convertTermMaxMarketsToResponse, convertUsddMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, deriveBorrowTags, deriveSupplyTags, detectInterfaceKinds, dexResolverFor, disambiguateEarnNames, dssIlkBytes32, dssKeyParts, dssLenderKey, duration, earnDescription, earnLabel, earnMarketFromPool, earnMarketFromVault, earnMarketLabel, earnPositionFromLenderEntry, earnPositionFromVaultBalance, earnPositionTotals, earnRowSubtitle, earnUidFromMarketUid, earnVaultTerms, earnVenueKind, encodeBalanceFetcherCalldata, enrichTermSheet, enrichmentIndexFromRows, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feePhrase, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchDssMarkets, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidDexState, fetchFluidFTokens, fetchFrankencoinMarkets, fetchFraxlendPairs, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchInverseMarkets, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchLlamaLendMarkets, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendleApiAssets, fetchPendleApiMarkets, fetchPendlePrices, fetchPendlePtMarkets, fetchResupplyMarkets, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTermMaxMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchUsddMarkets, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, finalizeInfo, findingsFor, formatRaw, frankencoinKeyParts, frankencoinLenderKey, fraxlendAssetPerCollateral, fraxlendKeyParts, fraxlendLenderKey, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedFluidDexState, getCachedLiquityTroves, getCachedTellerBids, getCachedTermMaxDiscovery, getCachedTermMaxMarket, getCachedTermMaxMarkets, getCoreValidators, getFluidFTokensConverter, getGmxApiHost, getGmxReadContracts, getGmxUserPositions, getHealthFactor, getHypercoreUserPositions, getHypercoreVaultRegistry, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getLstDelegation, getLstValidators, getLstWithdrawalRegistry, getLstWithdrawalRequests, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getReadFailurePolicy, getResolvedDolomiteAccountNumbers, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getTermProfile, getVaultPublicDataAll, getVaultWithdrawalRequests, hasCritical, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasPendleMarkets, hasUpshiftVaults, hasYearnVaults, ilkToKeySegment, implausibleRatePercent, inverseKeyParts, inverseLenderKey, isBoundNeed, isFailedCall, isIlliquid, isLendingPosition, isLiveMarket as isLivePendleMarket, isStablecoinSymbol, isVaultPosition, isVaultVenue, isYearnV3, keySegmentToIlk, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, llamaLendKeyParts, llamaLendLenderKey, mergeDeep, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseEarnUid, parseMergedResult, parseMulticallRpcResponses, parseExpirySeconds as parsePendleExpirySeconds, parseRawRpcBatchResponses, parseRawRpcResponses, parseTermMaxLtv, parseTokenBalanceResult, pct, assetKey as pendleAssetKey, positivePart, predictInverseEscrow, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, rankFindings, ratePercent, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveAdapter, resolveDerivation, resolveEarnIdentity, resolveModeConfig, resolveStCeloDepositGroup, resolveVaultProfileId, resupplyKeyParts, resupplyLenderKey, resupplyMarketLabel, riverKeyParts, riverLenderKey, savingsAddresses, savingsBalanceKind, selectAssetGroupPrices, shortDate, splitChainScopedAddress as splitPendleChainScopedAddress, stampCapabilities, stampEarnSubtitles, stampVaultClassification, stampVaultTermSheets, stripLeadingBrand, supplyDescription, supplyFindings, supplyHeadline, swapRoutedProvidersArePriceConsistent, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, termMaxApiBase, borrowNif as termMaxBorrowNif, curveApr as termMaxCurveApr, curveAprNumber as termMaxCurveAprNumber, daysToMaturity as termMaxDaysToMaturity, lendNif as termMaxLendNif, mintGtFeeRatio as termMaxMintGtFeeRatio, ratioToNumber as termMaxRatioToNumber, ratioToPercent as termMaxRatioToPercent, tickToAprNumber, tickToPrice, toDigest, toTermSheetInput, toVaultTermInput, trancheFromCounterparty, tryParseEarnUid, unflattenLenderData, updateFeedStats, usdValue, usddIlkBytes32, usddKeyParts, usddLenderKey, validateTermSheet, validateTermSheets, validateUserData, vaultSharesToAssets, vaultTermInputFromEarnMarket, vaultTermInputFromSourceRow, vaultTraits, vaultVenue, venueBrand, venueBrandKey, withMaturityLabel, withTrancheLabel };
package/dist/index.js CHANGED
@@ -19453,6 +19453,19 @@ function parseVault(vault, chainId, prices, additionalYields, tokenList, liquidi
19453
19453
  const meta = tokenList[token];
19454
19454
  return toOracleKey(meta?.assetGroup) ?? toGenericPriceKey(token, chainId);
19455
19455
  };
19456
+ const basketRate = (legs) => {
19457
+ let value = 0;
19458
+ let weighted = 0;
19459
+ for (const leg of legs) {
19460
+ const v = leg.amount * (prices[priceKeyFor(leg.token)] ?? 0);
19461
+ if (v <= 0) continue;
19462
+ value += v;
19463
+ weighted += v * leg.rate;
19464
+ }
19465
+ return value > 0 ? weighted / value : legs[0]?.rate ?? 0;
19466
+ };
19467
+ const basketSupplyRate = isSmartCol ? basketRate(colLegs) : void 0;
19468
+ const basketBorrowRate = isSmartDebt ? basketRate(debtLegs) : void 0;
19456
19469
  const irmTotals = (state, decimals) => state ? {
19457
19470
  irmTotalDeposits: Number(parseRawAmount(state.totalSupply, decimals)),
19458
19471
  irmTotalDebt: Number(parseRawAmount(state.totalBorrow, decimals))
@@ -19518,8 +19531,49 @@ function parseVault(vault, chainId, prices, additionalYields, tokenList, liquidi
19518
19531
  * it a smart market is described as an ordinary pool — the generic
19519
19532
  * builder cannot tell them apart.
19520
19533
  */
19534
+ /**
19535
+ * THIS ROW'S ASSET IS NOT INDEPENDENTLY HOLDABLE.
19536
+ *
19537
+ * LENDER-AGNOSTIC ON PURPOSE — it sits on the ROW, not inside `fluid`,
19538
+ * because the shape is not Fluid's alone: Lista SmartLP's collateral
19539
+ * receipt, GMX's GM/GLV baskets and Fluid's smart sides are all market
19540
+ * sides whose position unit is a multi-token basket (the same set
19541
+ * LP_ACTIONS_PLAN.md enumerates). Any of them can set this, and a
19542
+ * consumer branches on it once instead of learning each protocol.
19543
+ *
19544
+ * True means: depositing any leg mints a share of a basket over ALL of
19545
+ * them, and the POOL — not the user — sets and continuously re-sets the
19546
+ * ratio. There is no way to "hold the ETH leg" of a USDC+ETH side; the
19547
+ * split drifts with every trade and with the range shifting around its
19548
+ * centre price.
19549
+ *
19550
+ * Three consequences a consumer must handle: "you deposited X" is false
19551
+ * from the first block; a single leg's rate is right per DOLLAR but is
19552
+ * NOT the position's rate (use the basket rate); and an exit has to be
19553
+ * sized in shares rather than in this token.
19554
+ */
19555
+ ...isSmartVault ? { autoBalanced: true } : {},
19521
19556
  fluid: isSmartVault ? {
19522
19557
  vaultType,
19558
+ /**
19559
+ * The rate of the POSITION, not of this leg.
19560
+ *
19561
+ * A per-leg rate is individually correct — every dollar in the LP
19562
+ * earns the DEX trading yield regardless of which token it sits in,
19563
+ * so `legRate = liquidityRate + tradingRate` is right per dollar.
19564
+ * What it is NOT is the vault's APR: ranking or headlining a single
19565
+ * leg overstates the position whenever the legs differ. On the live
19566
+ * USDC+ETH/USDC+ETH vault the legs read 11.81 % and 8.19 % while
19567
+ * the position earns 10.33 % — and a "best APR" taken as the max
19568
+ * over legs shows 11.81 %.
19569
+ *
19570
+ * Value-weighted by each leg's own share of the side, which is the
19571
+ * pool's composition as this vault holds it. Fluid's own UI
19572
+ * publishes exactly this figure (10.33 % supply / −1.72 % borrow),
19573
+ * and these match it to the basis point.
19574
+ */
19575
+ basketSupplyRate,
19576
+ basketBorrowRate,
19523
19577
  isSmartCol,
19524
19578
  isSmartDebt,
19525
19579
  /** Both legs of the collateral LP, in token0/token1 order. */
@@ -68154,12 +68208,32 @@ function resolveExitMode2(provider, meta, tvl, liq) {
68154
68208
  if (total <= 0) return "instant";
68155
68209
  return available >= total ? "instant" : "instant-capped";
68156
68210
  }
68211
+ function resolveVaultBasket(provider, meta) {
68212
+ if (provider !== "gmx") return void 0;
68213
+ const legs = [];
68214
+ const push2 = (address, symbol) => {
68215
+ const a = str6(address)?.toLowerCase();
68216
+ if (a)
68217
+ legs.push({ address: a, ...str6(symbol) ? { symbol: str6(symbol) } : {} });
68218
+ };
68219
+ push2(meta.longToken, meta.longSymbol);
68220
+ push2(meta.shortToken, meta.shortSymbol);
68221
+ if (legs.length === 0) return void 0;
68222
+ return {
68223
+ rowAsset: "positionUnit",
68224
+ legs,
68225
+ autoBalanced: true,
68226
+ positionUnit: { kind: "lpToken", decimals: 18 },
68227
+ pool: "gmx-gm"
68228
+ };
68229
+ }
68157
68230
  function earnMarketFromVault(row, chainId, opts = {}) {
68158
68231
  const provider = str6(row.provider);
68159
68232
  const address = str6(row.vaultAddress)?.toLowerCase();
68160
68233
  const underlying = str6(row.underlying)?.toLowerCase();
68161
68234
  if (!provider || !address || !underlying) return void 0;
68162
68235
  const meta = row.providerMeta ?? {};
68236
+ const basket = resolveVaultBasket(provider, meta);
68163
68237
  const info = row.vaultInfo ?? {};
68164
68238
  const rates = row.rates ?? {};
68165
68239
  const tvl = row.tvl ?? {};
@@ -68299,6 +68373,7 @@ function earnMarketFromVault(row, chainId, opts = {}) {
68299
68373
  // Filled by `capabilities.ts` — kept required on the type so a normalizer
68300
68374
  // that forgets to stamp them is a compile error, not an empty CTA.
68301
68375
  capabilities: [],
68376
+ ...basket ? { basket } : {},
68302
68377
  providerMeta: row.providerMeta
68303
68378
  };
68304
68379
  return market;
@@ -71505,6 +71580,21 @@ function collateralSymbolsByVenue(rows, fallbackChainId) {
71505
71580
  function venueGroupKey(chainId, venue) {
71506
71581
  return `${chainId}::${venue}`;
71507
71582
  }
71583
+ function resolveBasket(row) {
71584
+ if (row.autoBalanced !== true) return void 0;
71585
+ const f = row.fluid;
71586
+ if (f && f.isSmartCol !== true) return void 0;
71587
+ const legs = (f?.collateralPair ?? []).map((a) => addr2(a)).filter((a) => !!a).map((address) => ({ address }));
71588
+ return {
71589
+ // Fluid emits one row PER LEG of the pool, so this row is a leg and a
71590
+ // consumer that sums the listing without deduping counts the position
71591
+ // twice. Lista/GMX are the `positionUnit` shape and will say so.
71592
+ rowAsset: "leg",
71593
+ legs,
71594
+ autoBalanced: true,
71595
+ ...f?.supplyDexTradingRate != null || f?.collateralPair ? { pool: "fluid-dex" } : {}
71596
+ };
71597
+ }
71508
71598
  function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
71509
71599
  const marketUid = str6(row.marketUid);
71510
71600
  if (!marketUid) return void 0;
@@ -71541,6 +71631,7 @@ function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
71541
71631
  source: "chain"
71542
71632
  };
71543
71633
  const availability = resolveAvailability2(row, flags, rate.total);
71634
+ const basket = resolveBasket(row);
71544
71635
  return {
71545
71636
  earnUid,
71546
71637
  chainId,
@@ -71614,6 +71705,7 @@ function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
71614
71705
  liquidityUsd: num12(row.totalLiquidityUSD ?? row.totalLiquidityUsd)
71615
71706
  })
71616
71707
  },
71708
+ ...basket ? { basket } : {},
71617
71709
  capabilities: [],
71618
71710
  refs: {
71619
71711
  marketUid,