@1delta/margin-fetcher 5.0.41 → 5.0.42

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.js CHANGED
@@ -7,7 +7,7 @@ import { fetchTokenLists, fetchTokenList, aavePools, compoundV3Pools, initConfig
7
7
  import lodash from 'lodash';
8
8
  import { Chain } from '@1delta/chain-registry';
9
9
  import { multicallRetryUniversal, getEvmClient, getEvmChain, getEvmClientUniversal } from '@1delta/providers';
10
- import { LiquityTroveManagerAbi, LiquityActivePoolAbi, LiquityStabilityPoolAbi, LiquityPriceFeedAbi, LiquitySortedTrovesAbi, RiverTroveManagerAbi, RiverStabilityPoolAbi, TellerMarketRegistryAbi, TellerV2Abi, InverseMarketAbi, InverseOracleAbi, InverseDbrAbi, Erc20Abi, LlamaLendControllerAbi, LlamaLendControllerV1Abi, LlamaLendControllerV2Abi, LlamaLendVaultAbi, LlamaLendAmmAbi, MetaMorphoAbi, ExactlyPreviewerAbi, ExactlyAuditorAbi, LenderCommitmentGroupAbi, ResupplyRegistryAbi, ResupplyPairAbi, ResupplyUtilitiesAbi, ResupplyRewardHandlerAbi, ResupplyPairEmissionsAbi, ConvexPoolUtilAbi, FraxlendPairAbi, FraxlendLeverAbi, FrankencoinPositionAbi, FluidLendingResolverAbi, FluidVaultResolverAbi, FluidLiquidityResolverAbi, MoolahVaultAbi, UsddVatAbi, UsddJugAbi, UsddSpotAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, DolomiteMarginAbi, GearboxMarketCompressorV310Abi, FluidDexResolverAbi, MorphoBlueAbi, MidnightAbi, TermRepoTokenAbi, TermRepoServicerAbi, TermRepoCollateralManagerAbi, LiquityTroveNFTAbi, LiquityCollSurplusPoolAbi, TellerCollateralManagerAbi, TermMaxViewerAbi, InverseEscrowAbi, CurvanceMarketManagerAbi, CurvanceCTokenAbi, GearboxCreditAccountCompressorV310Abi, UsddCdpManagerAbi, UsddProxyRegistryAbi, CurvanceProtocolReaderAbi, CurvanceCentralRegistryAbi, TermPriceConsumerAbi, CurvanceOracleManagerAbi, TermMaxOracleAggregatorV2Abi } from '@1delta/abis';
10
+ import { LiquityTroveManagerAbi, LiquityActivePoolAbi, LiquityStabilityPoolAbi, LiquityPriceFeedAbi, LiquitySortedTrovesAbi, RiverTroveManagerAbi, RiverStabilityPoolAbi, TellerMarketRegistryAbi, TellerV2Abi, InverseMarketAbi, InverseOracleAbi, InverseDbrAbi, Erc20Abi, LlamaLendControllerAbi, LlamaLendControllerV1Abi, LlamaLendControllerV2Abi, LlamaLendVaultAbi, LlamaLendAmmAbi, MetaMorphoAbi, FluidDexResolverAbi, ExactlyPreviewerAbi, ExactlyAuditorAbi, LenderCommitmentGroupAbi, ResupplyRegistryAbi, ResupplyPairAbi, ResupplyUtilitiesAbi, ResupplyRewardHandlerAbi, ResupplyPairEmissionsAbi, ConvexPoolUtilAbi, FraxlendPairAbi, FraxlendLeverAbi, FrankencoinPositionAbi, FluidLendingResolverAbi, FluidVaultResolverAbi, FluidLiquidityResolverAbi, MoolahVaultAbi, UsddVatAbi, UsddJugAbi, UsddSpotAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, DolomiteMarginAbi, GearboxMarketCompressorV310Abi, MorphoBlueAbi, MidnightAbi, TermRepoTokenAbi, TermRepoServicerAbi, TermRepoCollateralManagerAbi, LiquityTroveNFTAbi, LiquityCollSurplusPoolAbi, TellerCollateralManagerAbi, TermMaxViewerAbi, InverseEscrowAbi, CurvanceMarketManagerAbi, CurvanceCTokenAbi, GearboxCreditAccountCompressorV310Abi, UsddCdpManagerAbi, UsddProxyRegistryAbi, CurvanceProtocolReaderAbi, CurvanceCentralRegistryAbi, TermPriceConsumerAbi, CurvanceOracleManagerAbi, TermMaxOracleAggregatorV2Abi } from '@1delta/abis';
11
11
  export { MorphoLensAbi } from '@1delta/abis';
12
12
  import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getLstAcceptedInputs, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, bandLtvCurve, InitMarginAddresses } from '@1delta/calldata-sdk';
13
13
  import { proxyNativeFetch } from '@1delta/proxy-fetch';
@@ -11574,12 +11574,12 @@ function rateToApy(rate) {
11574
11574
  );
11575
11575
  }
11576
11576
  function parseLtv(ltv) {
11577
- let str7 = 0;
11577
+ let str8 = 0;
11578
11578
  try {
11579
- str7 = Number(formatUnits(BigInt(ltv), 18));
11579
+ str8 = Number(formatUnits(BigInt(ltv), 18));
11580
11580
  } catch (e) {
11581
11581
  }
11582
- return str7;
11582
+ return str8;
11583
11583
  }
11584
11584
  function liquidationPenaltyFromLltv(lltv) {
11585
11585
  if (!lltv || lltv <= 0) return 0;
@@ -62629,6 +62629,23 @@ var fetchAaveEarnVaults = async (chainId, multicallRetry, prices = {}, tokenList
62629
62629
  // src/vaults/upshift/fetchPublic.ts
62630
62630
  var num8 = (v) => typeof v === "number" && Number.isFinite(v) ? v : null;
62631
62631
  var isEvmAddress = (a) => /^0x[0-9a-fA-F]{40}$/.test(a);
62632
+ var str4 = (v) => {
62633
+ const s = typeof v === "string" ? v.trim() : "";
62634
+ return s ? s : void 0;
62635
+ };
62636
+ var UNCAPPED_SENTINEL = 1e12;
62637
+ var deriveDepositCapacity = (v, totalAssetsRaw) => {
62638
+ const cap = v.depositCap ?? v.maxSupply;
62639
+ const normalized = Number(cap?.normalized);
62640
+ if (!cap?.raw || !Number.isFinite(normalized)) return void 0;
62641
+ if (normalized >= UNCAPPED_SENTINEL) return void 0;
62642
+ try {
62643
+ const remaining = BigInt(cap.raw) - BigInt(totalAssetsRaw);
62644
+ return remaining > 0n ? remaining.toString() : "0";
62645
+ } catch {
62646
+ return void 0;
62647
+ }
62648
+ };
62632
62649
  var derivePricePerShare = (totalAssetsRaw, totalSupplyRaw, shareDecimals) => {
62633
62650
  try {
62634
62651
  const supply = BigInt(totalSupplyRaw);
@@ -62665,6 +62682,18 @@ function parseVault8(v, chainId, prices, tokenList) {
62665
62682
  const totalAssetsUsd = apiTvlUsd || totalAssetsFormatted * priceUsd;
62666
62683
  const name = (v.name ?? "").trim();
62667
62684
  const symbol = (v.receipt?.symbol ?? "").trim();
62685
+ const strategist = (v.strategists ?? []).find((s) => str4(s?.name));
62686
+ const curatorName = str4(strategist?.name);
62687
+ const performanceStanding = num8(v.fees?.performance) ?? 0;
62688
+ const managementStanding = num8(v.fees?.management) ?? 0;
62689
+ const performanceWaived = v.fees?.isPerformanceWaived === true;
62690
+ const managementWaived = v.fees?.isManagementWaived === true;
62691
+ const instant = v.instant_redeem_config;
62692
+ const instantRedeemEnabled = !!instant && instant.isPaused !== true;
62693
+ const spreadBps = instantRedeemEnabled ? Math.max(
62694
+ 0,
62695
+ ...(instant?.redeemableAssets ?? []).map((a) => num8(a?.spreadBps) ?? 0)
62696
+ ) : void 0;
62668
62697
  return {
62669
62698
  address: receiptAddr,
62670
62699
  vaultAddress: vaultAddr,
@@ -62689,8 +62718,30 @@ function parseVault8(v, chainId, prices, tokenList) {
62689
62718
  points: num8(v.apy?.pointsApy),
62690
62719
  underlying: num8(v.apy?.underlyingApy)
62691
62720
  },
62721
+ curatorName,
62722
+ curatorLogoURI: str4(strategist?.logo),
62723
+ description: str4(v.description),
62724
+ version: str4(v.version),
62725
+ fee: performanceWaived ? 0 : performanceStanding,
62726
+ managementFee: managementWaived ? 0 : managementStanding,
62727
+ feeDetail: {
62728
+ performanceStanding,
62729
+ managementStanding,
62730
+ performanceWaived,
62731
+ managementWaived,
62732
+ performanceWaivedUntilDate: str4(v.fees?.performanceFeeWaivedUntilDate),
62733
+ managementWaivedUntilDate: str4(v.fees?.managementFeeWaivedUntilDate)
62734
+ },
62735
+ withdrawalCooldownSeconds: num8(v.lagDuration) ?? 0,
62736
+ ...instantRedeemEnabled ? {
62737
+ withdrawalMode: "fee-or-queued",
62738
+ withdrawFeeBps: spreadBps,
62739
+ instantRedeemEnabled: true
62740
+ } : {},
62692
62741
  isDepositPaused: v.isDepositPaused ?? false,
62693
62742
  isWithdrawalPaused: v.isWithdrawalPaused ?? false,
62743
+ isClosed: v.withdrawalOnly === true,
62744
+ depositCapacity: deriveDepositCapacity(v, totalAssetsRaw),
62694
62745
  asset: assetMeta,
62695
62746
  priceUsd,
62696
62747
  totalAssetsFormatted,
@@ -64187,7 +64238,7 @@ var fetchGmxVaults = async (chainId, multicallRetry, options) => {
64187
64238
  // src/vaults/gmx/fetchUser.ts
64188
64239
  var DEFAULT_CAP = 50;
64189
64240
  var isBig = (v) => typeof v === "bigint";
64190
- var str4 = (v) => isBig(v) ? v.toString() : "0";
64241
+ var str5 = (v) => isBig(v) ? v.toString() : "0";
64191
64242
  var getGmxUserPositions = async (chainId, account, multicallRetry, options) => {
64192
64243
  const empty = {
64193
64244
  chainId,
@@ -64315,11 +64366,11 @@ var getGmxUserPositions = async (chainId, account, multicallRetry, options) => {
64315
64366
  market: a.market.toLowerCase(),
64316
64367
  initialLongToken: a.initialLongToken.toLowerCase(),
64317
64368
  initialShortToken: a.initialShortToken.toLowerCase(),
64318
- initialLongTokenAmount: str4(n.initialLongTokenAmount),
64319
- initialShortTokenAmount: str4(n.initialShortTokenAmount),
64320
- minOut: str4(n.minMarketTokens),
64321
- executionFee: str4(n.executionFee),
64322
- updatedAtTime: str4(n.updatedAtTime)
64369
+ initialLongTokenAmount: str5(n.initialLongTokenAmount),
64370
+ initialShortTokenAmount: str5(n.initialShortTokenAmount),
64371
+ minOut: str5(n.minMarketTokens),
64372
+ executionFee: str5(n.executionFee),
64373
+ updatedAtTime: str5(n.updatedAtTime)
64323
64374
  });
64324
64375
  });
64325
64376
  withdrawalKeys.forEach((key3, i) => {
@@ -64333,11 +64384,11 @@ var getGmxUserPositions = async (chainId, account, multicallRetry, options) => {
64333
64384
  account: a.account.toLowerCase(),
64334
64385
  receiver: a.receiver.toLowerCase(),
64335
64386
  market: a.market.toLowerCase(),
64336
- tokenAmount: str4(n.marketTokenAmount),
64337
- minLongTokenAmount: str4(n.minLongTokenAmount),
64338
- minShortTokenAmount: str4(n.minShortTokenAmount),
64339
- executionFee: str4(n.executionFee),
64340
- updatedAtTime: str4(n.updatedAtTime)
64387
+ tokenAmount: str5(n.marketTokenAmount),
64388
+ minLongTokenAmount: str5(n.minLongTokenAmount),
64389
+ minShortTokenAmount: str5(n.minShortTokenAmount),
64390
+ executionFee: str5(n.executionFee),
64391
+ updatedAtTime: str5(n.updatedAtTime)
64341
64392
  });
64342
64393
  });
64343
64394
  const glvDeposits = Array.isArray(glvRes[0]) ? glvRes[0] : [];
@@ -64354,11 +64405,11 @@ var getGmxUserPositions = async (chainId, account, multicallRetry, options) => {
64354
64405
  glv: a.glv.toLowerCase(),
64355
64406
  initialLongToken: a.initialLongToken.toLowerCase(),
64356
64407
  initialShortToken: a.initialShortToken.toLowerCase(),
64357
- initialLongTokenAmount: str4(n.initialLongTokenAmount),
64358
- initialShortTokenAmount: str4(n.initialShortTokenAmount),
64359
- minOut: str4(n.minGlvTokens),
64360
- executionFee: str4(n.executionFee),
64361
- updatedAtTime: str4(n.updatedAtTime)
64408
+ initialLongTokenAmount: str5(n.initialLongTokenAmount),
64409
+ initialShortTokenAmount: str5(n.initialShortTokenAmount),
64410
+ minOut: str5(n.minGlvTokens),
64411
+ executionFee: str5(n.executionFee),
64412
+ updatedAtTime: str5(n.updatedAtTime)
64362
64413
  });
64363
64414
  }
64364
64415
  for (const w of glvWithdrawals) {
@@ -64371,11 +64422,11 @@ var getGmxUserPositions = async (chainId, account, multicallRetry, options) => {
64371
64422
  receiver: a.receiver.toLowerCase(),
64372
64423
  market: a.market.toLowerCase(),
64373
64424
  glv: a.glv.toLowerCase(),
64374
- tokenAmount: str4(n.glvTokenAmount),
64375
- minLongTokenAmount: str4(n.minLongTokenAmount),
64376
- minShortTokenAmount: str4(n.minShortTokenAmount),
64377
- executionFee: str4(n.executionFee),
64378
- updatedAtTime: str4(n.updatedAtTime)
64425
+ tokenAmount: str5(n.glvTokenAmount),
64426
+ minLongTokenAmount: str5(n.minLongTokenAmount),
64427
+ minShortTokenAmount: str5(n.minShortTokenAmount),
64428
+ executionFee: str5(n.executionFee),
64429
+ updatedAtTime: str5(n.updatedAtTime)
64379
64430
  });
64380
64431
  }
64381
64432
  return {
@@ -65886,10 +65937,10 @@ function resolveMinDebt(input) {
65886
65937
  ];
65887
65938
  for (const c of candidates) {
65888
65939
  if (c == null) continue;
65889
- const str7 = String(c);
65890
- if (str7 === "0" || str7 === "") continue;
65891
- if (!/^\d+$/.test(str7)) continue;
65892
- return str7;
65940
+ const str8 = String(c);
65941
+ if (str8 === "0" || str8 === "") continue;
65942
+ if (!/^\d+$/.test(str8)) continue;
65943
+ return str8;
65893
65944
  }
65894
65945
  return void 0;
65895
65946
  }
@@ -65897,9 +65948,9 @@ function resolveMinCollateral(input) {
65897
65948
  const m = input.market ?? {};
65898
65949
  const raw = m.frankencoin?.minimumCollateral;
65899
65950
  if (raw == null) return void 0;
65900
- const str7 = String(raw);
65901
- if (str7 === "0" || str7 === "" || !/^\d+$/.test(str7)) return void 0;
65902
- return str7;
65951
+ const str8 = String(raw);
65952
+ if (str8 === "0" || str8 === "" || !/^\d+$/.test(str8)) return void 0;
65953
+ return str8;
65903
65954
  }
65904
65955
  function capUtil(total, cap) {
65905
65956
  if (!isNum(cap) || cap <= 0 || !isNum(total)) return void 0;
@@ -66376,10 +66427,17 @@ var VAULT_PROVIDER_TRAITS = {
66376
66427
  rateKind: "variable-managed",
66377
66428
  rateSource: "api",
66378
66429
  rateWindow: { kind: "trailing" },
66430
+ // Every vault requests → settles → claims; the per-vault delay runs 0 to
66431
+ // 30 days and rides on the row as `withdrawalCooldownSeconds`. One vault
66432
+ // (Upshift Clear RWA) declares `fee-or-queued` for its instant leg.
66379
66433
  defaultExitMode: "request-based",
66380
66434
  priceRisk: "none",
66381
66435
  counterpartyKind: "vault-strategy",
66382
- reportsPerformanceFee: false,
66436
+ // Upshift publishes a full schedule — performance AND management, per
66437
+ // vault, with waiver flags. Reported `false` while the fetcher dropped
66438
+ // the block, which made every row's empty fee list read as "free" when
66439
+ // one vault charges 20 % + 2 %.
66440
+ reportsPerformanceFee: true,
66383
66441
  reportsGovernance: false,
66384
66442
  reportsExposures: false,
66385
66443
  hasDecomposableBacking: true,
@@ -66539,6 +66597,19 @@ function buildFees2(input, t) {
66539
66597
  description: "Taken from the yield the vault earns, not from your principal. The published rate is already net of it."
66540
66598
  });
66541
66599
  }
66600
+ if (isNum2(input.managementFee) && input.managementFee !== 0) {
66601
+ out.push({
66602
+ id: "management",
66603
+ label: "Management fee",
66604
+ when: "ongoing",
66605
+ unit: "apr-percent",
66606
+ basis: "principal",
66607
+ value: t.feeIsFraction ? input.managementFee * 100 : input.managementFee,
66608
+ payee: "curator",
66609
+ mutable: true,
66610
+ description: "Accrues on your whole balance for as long as you hold, whether or not the vault earns anything. The published rate is already net of it."
66611
+ });
66612
+ }
66542
66613
  if (isNum2(input.withdrawFeeBps) && input.withdrawFeeBps !== 0) {
66543
66614
  out.push({
66544
66615
  id: "instant-exit",
@@ -67309,13 +67380,13 @@ function num12(v) {
67309
67380
  const n = typeof v === "number" ? v : Number(v);
67310
67381
  return Number.isFinite(n) ? n : void 0;
67311
67382
  }
67312
- function str5(v) {
67383
+ function str6(v) {
67313
67384
  if (typeof v === "string") return v.length > 0 ? v : void 0;
67314
67385
  if (typeof v === "number" && Number.isFinite(v)) return String(v);
67315
67386
  return void 0;
67316
67387
  }
67317
67388
  function addr2(v) {
67318
- return str5(v)?.toLowerCase();
67389
+ return str6(v)?.toLowerCase();
67319
67390
  }
67320
67391
  function yieldProfile(v) {
67321
67392
  return v === "yield-bearing" || v === "volatile" ? v : void 0;
@@ -67394,7 +67465,7 @@ var RATE_KIND = {
67394
67465
  gmx: "realized"
67395
67466
  };
67396
67467
  function resolveExitMode2(provider, meta, tvl, liq) {
67397
- const declared = str5(meta.withdrawalMode);
67468
+ const declared = str6(meta.withdrawalMode);
67398
67469
  if (declared) return declared;
67399
67470
  const fallback = vaultTraits(provider)?.defaultExitMode ?? "instant";
67400
67471
  if (fallback !== "instant-capped") return fallback;
@@ -67405,9 +67476,9 @@ function resolveExitMode2(provider, meta, tvl, liq) {
67405
67476
  return available >= total ? "instant" : "instant-capped";
67406
67477
  }
67407
67478
  function earnMarketFromVault(row, chainId, opts = {}) {
67408
- const provider = str5(row.provider);
67409
- const address = str5(row.vaultAddress)?.toLowerCase();
67410
- const underlying = str5(row.underlying)?.toLowerCase();
67479
+ const provider = str6(row.provider);
67480
+ const address = str6(row.vaultAddress)?.toLowerCase();
67481
+ const underlying = str6(row.underlying)?.toLowerCase();
67411
67482
  if (!provider || !address || !underlying) return void 0;
67412
67483
  const meta = row.providerMeta ?? {};
67413
67484
  const info = row.vaultInfo ?? {};
@@ -67447,15 +67518,15 @@ function earnMarketFromVault(row, chainId, opts = {}) {
67447
67518
  venue: vaultVenue(provider),
67448
67519
  venueKind: "vault",
67449
67520
  // Curator first (it names the actual operator), then the provider brand.
67450
- brand: str5(row.curatorName) ?? venueBrand(vaultVenue(provider)),
67521
+ brand: str6(row.curatorName) ?? venueBrand(vaultVenue(provider)),
67451
67522
  // What the vault is BUILT ON, kept apart from who runs it — see
67452
67523
  // `resolveEarnIdentity` for why this is not simply provider-vs-brand.
67453
67524
  ...withCuratorEntity(
67454
67525
  resolveEarnIdentity(
67455
67526
  vaultVenue(provider),
67456
- str5(row.curatorName)
67527
+ str6(row.curatorName)
67457
67528
  ),
67458
- str5(row.curatorEntity)
67529
+ str6(row.curatorEntity)
67459
67530
  ),
67460
67531
  // The maturity is part of a fixed-term row's IDENTITY. Pendle ships names
67461
67532
  // with no date, so several PTs on one underlying render identically —
@@ -67484,26 +67555,26 @@ function earnMarketFromVault(row, chainId, opts = {}) {
67484
67555
  withMaturityLabel(
67485
67556
  stripLeadingBrand(
67486
67557
  vaultDisplayName(row, info) ?? "",
67487
- str5(row.curatorName) ?? venueBrand(vaultVenue(provider))
67558
+ str6(row.curatorName) ?? venueBrand(vaultVenue(provider))
67488
67559
  ) || void 0,
67489
67560
  maturity
67490
67561
  ),
67491
- trancheFromCounterparty(str5(meta.solvency))
67562
+ trancheFromCounterparty(str6(meta.solvency))
67492
67563
  ),
67493
67564
  ref: address,
67494
- logoURI: str5(info.logoURI) ?? str5(row.underlyingInfo?.asset?.logoURI),
67565
+ logoURI: str6(info.logoURI) ?? str6(row.underlyingInfo?.asset?.logoURI),
67495
67566
  asset: {
67496
67567
  address: underlying,
67497
- symbol: str5(row.underlyingInfo?.asset?.symbol) ?? "",
67568
+ symbol: str6(row.underlyingInfo?.asset?.symbol) ?? "",
67498
67569
  decimals: assetDecimals,
67499
- assetGroup: str5(info.assetGroup),
67570
+ assetGroup: str6(info.assetGroup),
67500
67571
  priceUsd: num12(row.underlyingInfo?.prices?.priceUsd)
67501
67572
  },
67502
67573
  // The vault IS a share token by construction; carry it so a withdraw in
67503
67574
  // share units can be built without a second lookup.
67504
67575
  shareToken: {
67505
67576
  address,
67506
- symbol: str5(info.symbol) ?? str5(row.symbol) ?? "",
67577
+ symbol: str6(info.symbol) ?? str6(row.symbol) ?? "",
67507
67578
  decimals: shareDecimals
67508
67579
  },
67509
67580
  rate,
@@ -67522,11 +67593,11 @@ function earnMarketFromVault(row, chainId, opts = {}) {
67522
67593
  liq.liquidityUsd,
67523
67594
  assetDecimals
67524
67595
  ) : void 0,
67525
- depositCapacity: str5(meta.depositCapacity) ?? str5(meta.maxDeposit),
67596
+ depositCapacity: str6(meta.depositCapacity) ?? str6(meta.maxDeposit),
67526
67597
  maturity,
67527
67598
  exit: {
67528
67599
  mode: exitMode,
67529
- settlement: str5(meta.redemptionType),
67600
+ settlement: str6(meta.redemptionType),
67530
67601
  cooldownSecs: num12(meta.withdrawalCooldownSeconds),
67531
67602
  feeBps: num12(meta.withdrawFeeBps)
67532
67603
  },
@@ -67537,9 +67608,9 @@ function earnMarketFromVault(row, chainId, opts = {}) {
67537
67608
  // The curated trust classification, where one exists. Typed on `EarnRisk`
67538
67609
  // since the surface was written and never populated — a tranche's
67539
67610
  // first-loss position is the term most worth surfacing on a rate list.
67540
- counterparty: str5(meta.solvency),
67611
+ counterparty: str6(meta.solvency),
67541
67612
  score: num12(row.rating?.score),
67542
- label: str5(row.rating?.level),
67613
+ label: str6(row.rating?.level),
67543
67614
  illiquid: isIlliquid({
67544
67615
  exitMode,
67545
67616
  tvlUsd: num12(tvl.totalAssetsUsd),
@@ -67575,7 +67646,7 @@ function earnVaultTerms(provider, providerMeta, size) {
67575
67646
  }
67576
67647
  function resolveAvailability(meta, maturity) {
67577
67648
  const isMintable = meta.isMintable;
67578
- const capacity = str5(meta.depositCapacity) ?? str5(meta.maxDeposit);
67649
+ const capacity = str6(meta.depositCapacity) ?? str6(meta.maxDeposit);
67579
67650
  const capFull = capacity === "0";
67580
67651
  let gating;
67581
67652
  let reason;
@@ -67606,7 +67677,7 @@ function resolveAvailability(meta, maturity) {
67606
67677
  }
67607
67678
  function vaultDisplayName(row, info) {
67608
67679
  const share = row.shareAsset;
67609
- return str5(row.name) ?? str5(info.name) ?? str5(row.displayName) ?? str5(share?.name) ?? str5(share?.symbol) ?? str5(info.symbol) ?? str5(row.symbol);
67680
+ return str6(row.name) ?? str6(info.name) ?? str6(row.displayName) ?? str6(share?.name) ?? str6(share?.symbol) ?? str6(info.symbol) ?? str6(row.symbol);
67610
67681
  }
67611
67682
  function resolveMaturity(meta) {
67612
67683
  const expiry = num12(meta.expiry) ?? num12(meta.maturity);
@@ -67615,13 +67686,13 @@ function resolveMaturity(meta) {
67615
67686
  return {
67616
67687
  kind: "fixed-date",
67617
67688
  maturity: expiry,
67618
- maturityIso: str5(meta.expiryIso) ?? new Date(expiry * 1e3).toISOString(),
67689
+ maturityIso: str6(meta.expiryIso) ?? new Date(expiry * 1e3).toISOString(),
67619
67690
  // A SNAPSHOT — a cached listing ages, so a countdown must be recomputed
67620
67691
  // from `maturity` rather than ticked down from this.
67621
67692
  secondsToMaturity: Math.max(expiry - nowSecs, 0),
67622
67693
  // A PT simply stops earning: it redeems for the underlying at par and
67623
67694
  // sits there. No penalty, no liquidation, no auto-roll.
67624
- atMaturity: str5(meta.atMaturity) ?? "stops-earning"
67695
+ atMaturity: str6(meta.atMaturity) ?? "stops-earning"
67625
67696
  };
67626
67697
  }
67627
67698
  function isMatured(maturity) {
@@ -67654,7 +67725,7 @@ var num13 = (v) => {
67654
67725
  }
67655
67726
  return void 0;
67656
67727
  };
67657
- var str6 = (v) => typeof v === "string" && v.trim() !== "" ? v : void 0;
67728
+ var str7 = (v) => typeof v === "string" && v.trim() !== "" ? v : void 0;
67658
67729
  var bool2 = (v) => typeof v === "boolean" ? v : void 0;
67659
67730
  var fromRaw = (raw, decimals) => {
67660
67731
  const s = raw == null ? void 0 : String(raw);
@@ -67683,7 +67754,7 @@ function sdkRates(row, provider) {
67683
67754
  }
67684
67755
  function toVaultTermInput(vault, provider, chainId) {
67685
67756
  const row = vault;
67686
- const address = str6(row.address)?.toLowerCase();
67757
+ const address = str7(row.address)?.toLowerCase();
67687
67758
  if (!address) return void 0;
67688
67759
  const assetDecimals = num13(row.assetDecimals) ?? num13(row.decimals);
67689
67760
  const asset = row.asset;
@@ -67692,22 +67763,22 @@ function toVaultTermInput(vault, provider, chainId) {
67692
67763
  chainId,
67693
67764
  address,
67694
67765
  vaultUid: `vault.${provider}:${chainId}:${address}`,
67695
- name: str6(row.displayName) ?? str6(row.name),
67696
- brand: str6(row.brand),
67697
- curatorName: str6(row.curatorName),
67698
- description: str6(row.description),
67766
+ name: str7(row.displayName) ?? str7(row.name),
67767
+ brand: str7(row.brand),
67768
+ curatorName: str7(row.curatorName),
67769
+ description: str7(row.description),
67699
67770
  asset: {
67700
67771
  chainId,
67701
- address: str6(row.underlying)?.toLowerCase() ?? "",
67702
- symbol: str6(asset?.symbol),
67703
- name: str6(asset?.name),
67772
+ address: str7(row.underlying)?.toLowerCase() ?? "",
67773
+ symbol: str7(asset?.symbol),
67774
+ name: str7(asset?.name),
67704
67775
  decimals: assetDecimals,
67705
- assetGroup: str6(asset?.assetGroup),
67706
- logoURI: str6(asset?.logoURI)
67776
+ assetGroup: str7(asset?.assetGroup),
67777
+ logoURI: str7(asset?.logoURI)
67707
67778
  },
67708
67779
  ...sdkRates(row, provider),
67709
67780
  isForwardApr: bool2(row.isForwardApr),
67710
- aprWindow: str6(row.aprWindow),
67781
+ aprWindow: str7(row.aprWindow),
67711
67782
  // GMX / HyperCore / Pendle report USD only and set the token-denominated
67712
67783
  // fields to their USD figure — `totalAssetsFormatted` is the cross-provider
67713
67784
  // magnitude either way, so prefer it over re-deriving from raw.
@@ -67718,19 +67789,20 @@ function toVaultTermInput(vault, provider, chainId) {
67718
67789
  instantLiquidityRatio: num13(row.instantLiquidityRatio),
67719
67790
  totalBorrowed: fromRaw(row.totalBorrowed, assetDecimals),
67720
67791
  expectedLiquidity: fromRaw(row.expectedLiquidity, assetDecimals),
67721
- withdrawalMode: str6(row.withdrawalMode),
67792
+ withdrawalMode: str7(row.withdrawalMode),
67722
67793
  withdrawalCooldownSeconds: num13(row.withdrawalCooldownSeconds),
67723
67794
  withdrawFeeBps: num13(row.withdrawFeeBps),
67724
67795
  fee: num13(row.fee),
67796
+ managementFee: num13(row.managementFee),
67725
67797
  swapFeeRate: num13(row.feeRate),
67726
67798
  redemptionDiscountBps: num13(row.redemptionDiscountBps),
67727
67799
  instantRedeemEnabled: bool2(row.instantRedeemEnabled),
67728
67800
  yieldWarmupSeconds: num13(row.yieldWarmupSeconds),
67729
- accrual: str6(row.accrual),
67801
+ accrual: str7(row.accrual),
67730
67802
  needsDepositApproval: bool2(row.needsDepositApproval),
67731
67803
  isMintable: bool2(row.isMintable),
67732
- depositCapacity: str6(row.depositCapacity),
67733
- supplyCap: str6(row.supplyCap),
67804
+ depositCapacity: str7(row.depositCapacity),
67805
+ supplyCap: str7(row.supplyCap),
67734
67806
  paused: bool2(row.isPaused),
67735
67807
  depositsPaused: bool2(row.isDepositPaused),
67736
67808
  withdrawalsPaused: bool2(row.isWithdrawalPaused),
@@ -67738,13 +67810,13 @@ function toVaultTermInput(vault, provider, chainId) {
67738
67810
  whitelisted: bool2(row.whitelisted),
67739
67811
  expiry: num13(row.expiry),
67740
67812
  timelock: num13(row.timelock),
67741
- owner: str6(row.owner),
67742
- curator: str6(row.curator),
67743
- guardian: str6(row.guardian),
67744
- feeRecipient: str6(row.feeRecipient),
67745
- solvency: str6(row.solvency),
67746
- navOracle: str6(row.navOracle),
67747
- yieldProfile: str6(row.yieldProfile),
67813
+ owner: str7(row.owner),
67814
+ curator: str7(row.curator),
67815
+ guardian: str7(row.guardian),
67816
+ feeRecipient: str7(row.feeRecipient),
67817
+ solvency: str7(row.solvency),
67818
+ navOracle: str7(row.navOracle),
67819
+ yieldProfile: str7(row.yieldProfile),
67748
67820
  exposures: Array.isArray(row.exposures) ? row.exposures : void 0
67749
67821
  };
67750
67822
  }
@@ -67761,7 +67833,7 @@ function vaultTermInputFromEarnMarket(m) {
67761
67833
  name: m.name,
67762
67834
  brand: m.brand,
67763
67835
  curatorName: m.brand,
67764
- description: str6(meta.description),
67836
+ description: str7(meta.description),
67765
67837
  asset: {
67766
67838
  chainId: m.chainId,
67767
67839
  address: m.asset.address,
@@ -67774,7 +67846,7 @@ function vaultTermInputFromEarnMarket(m) {
67774
67846
  rewardsRate: m.rate.rewards,
67775
67847
  totalRate: m.rate.total,
67776
67848
  isForwardApr: bool2(meta.isForwardApr),
67777
- aprWindow: str6(meta.aprWindow),
67849
+ aprWindow: str7(meta.aprWindow),
67778
67850
  totalAssets: m.tvl.formatted,
67779
67851
  totalAssetsUsd: m.tvl.usd,
67780
67852
  liquidity: m.liquidity?.formatted,
@@ -67786,30 +67858,31 @@ function vaultTermInputFromEarnMarket(m) {
67786
67858
  withdrawalCooldownSeconds: m.exit.cooldownSecs,
67787
67859
  withdrawFeeBps: m.exit.feeBps,
67788
67860
  fee: m.rate.fee,
67861
+ managementFee: num13(meta.managementFee),
67789
67862
  swapFeeRate: num13(meta.feeRate),
67790
67863
  redemptionDiscountBps: num13(meta.redemptionDiscountBps),
67791
67864
  instantRedeemEnabled: bool2(meta.instantRedeemEnabled),
67792
67865
  yieldWarmupSeconds: num13(meta.yieldWarmupSeconds),
67793
- accrual: str6(meta.accrual),
67866
+ accrual: str7(meta.accrual),
67794
67867
  needsDepositApproval: bool2(meta.needsDepositApproval),
67795
67868
  // `canDeposit` already folds in the cap, the pause and the gate, so it is
67796
67869
  // the authoritative answer — but the REASON is what a disabled CTA renders,
67797
67870
  // and that only survives in the raw fields.
67798
67871
  isMintable: m.availability.canDeposit ? void 0 : false,
67799
67872
  depositCapacity: m.depositCapacity,
67800
- supplyCap: str6(meta.supplyCap),
67873
+ supplyCap: str7(meta.supplyCap),
67801
67874
  paused: m.availability.gating === "paused" ? true : void 0,
67802
67875
  withdrawalsPaused: m.availability.canWithdraw ? void 0 : true,
67803
67876
  isClosed: bool2(meta.isClosed),
67804
67877
  whitelisted: bool2(meta.whitelisted),
67805
67878
  expiry: m.maturity?.maturity,
67806
67879
  timelock: num13(meta.timelock),
67807
- owner: str6(meta.owner),
67808
- curator: str6(meta.curator),
67809
- guardian: str6(meta.guardian),
67810
- feeRecipient: str6(meta.feeRecipient),
67880
+ owner: str7(meta.owner),
67881
+ curator: str7(meta.curator),
67882
+ guardian: str7(meta.guardian),
67883
+ feeRecipient: str7(meta.feeRecipient),
67811
67884
  solvency: m.risk?.counterparty,
67812
- navOracle: str6(meta.navOracle),
67885
+ navOracle: str7(meta.navOracle),
67813
67886
  yieldProfile: m.risk?.yieldProfile,
67814
67887
  exposures: m.refs?.exposures
67815
67888
  };
@@ -67825,8 +67898,8 @@ function originRates(rates) {
67825
67898
  };
67826
67899
  }
67827
67900
  function vaultTermInputFromSourceRow(row, chainId) {
67828
- const provider = str6(row.provider);
67829
- const address = str6(row.vaultAddress)?.toLowerCase();
67901
+ const provider = str7(row.provider);
67902
+ const address = str7(row.vaultAddress)?.toLowerCase();
67830
67903
  if (!provider || !address) return void 0;
67831
67904
  const meta = row.providerMeta ?? {};
67832
67905
  const rates = row.rates ?? {};
@@ -67840,21 +67913,21 @@ function vaultTermInputFromSourceRow(row, chainId) {
67840
67913
  chainId,
67841
67914
  address,
67842
67915
  vaultUid: `vault.${provider}:${chainId}:${address}`,
67843
- name: str6(info.name) ?? str6(row.displayName) ?? str6(row.name),
67844
- brand: str6(row.curatorName) ?? str6(meta.brand),
67845
- curatorName: str6(row.curatorName),
67846
- description: str6(meta.description),
67916
+ name: str7(info.name) ?? str7(row.displayName) ?? str7(row.name),
67917
+ brand: str7(row.curatorName) ?? str7(meta.brand),
67918
+ curatorName: str7(row.curatorName),
67919
+ description: str7(meta.description),
67847
67920
  asset: {
67848
67921
  chainId,
67849
- address: str6(row.underlying)?.toLowerCase() ?? "",
67850
- symbol: str6(assetInfo?.symbol),
67922
+ address: str7(row.underlying)?.toLowerCase() ?? "",
67923
+ symbol: str7(assetInfo?.symbol),
67851
67924
  decimals: assetDecimals,
67852
- assetGroup: str6(info.assetGroup),
67853
- logoURI: str6(assetInfo?.logoURI)
67925
+ assetGroup: str7(info.assetGroup),
67926
+ logoURI: str7(assetInfo?.logoURI)
67854
67927
  },
67855
67928
  ...originRates(rates),
67856
67929
  isForwardApr: bool2(meta.isForwardApr),
67857
- aprWindow: str6(meta.aprWindow),
67930
+ aprWindow: str7(meta.aprWindow),
67858
67931
  totalAssets: num13(tvl.totalAssetsFormatted) ?? fromRaw(tvl.totalAssets, assetDecimals),
67859
67932
  totalAssetsUsd: num13(tvl.totalAssetsUsd),
67860
67933
  liquidity: num13(liq.liquidityFormatted) ?? fromRaw(liq.liquidity, assetDecimals),
@@ -67862,19 +67935,20 @@ function vaultTermInputFromSourceRow(row, chainId) {
67862
67935
  instantLiquidityRatio: num13(meta.instantLiquidityRatio),
67863
67936
  totalBorrowed: fromRaw(meta.totalBorrowed, assetDecimals),
67864
67937
  expectedLiquidity: fromRaw(meta.expectedLiquidity, assetDecimals),
67865
- withdrawalMode: str6(meta.withdrawalMode),
67938
+ withdrawalMode: str7(meta.withdrawalMode),
67866
67939
  withdrawalCooldownSeconds: num13(meta.withdrawalCooldownSeconds),
67867
67940
  withdrawFeeBps: num13(meta.withdrawFeeBps),
67868
67941
  fee: num13(rates.fee),
67942
+ managementFee: num13(meta.managementFee),
67869
67943
  swapFeeRate: num13(meta.feeRate),
67870
67944
  redemptionDiscountBps: num13(meta.redemptionDiscountBps),
67871
67945
  instantRedeemEnabled: bool2(meta.instantRedeemEnabled),
67872
67946
  yieldWarmupSeconds: num13(meta.yieldWarmupSeconds),
67873
- accrual: str6(meta.accrual),
67947
+ accrual: str7(meta.accrual),
67874
67948
  needsDepositApproval: bool2(meta.needsDepositApproval),
67875
67949
  isMintable: bool2(meta.isMintable),
67876
- depositCapacity: str6(meta.depositCapacity) ?? str6(meta.maxDeposit),
67877
- supplyCap: str6(meta.supplyCap),
67950
+ depositCapacity: str7(meta.depositCapacity) ?? str7(meta.maxDeposit),
67951
+ supplyCap: str7(meta.supplyCap),
67878
67952
  paused: bool2(meta.paused) ?? bool2(meta.isPaused),
67879
67953
  depositsPaused: bool2(meta.isDepositPaused),
67880
67954
  withdrawalsPaused: bool2(meta.isWithdrawalPaused),
@@ -67882,13 +67956,13 @@ function vaultTermInputFromSourceRow(row, chainId) {
67882
67956
  whitelisted: bool2(meta.whitelisted),
67883
67957
  expiry: num13(meta.expiry) ?? num13(meta.maturity),
67884
67958
  timelock: num13(meta.timelock),
67885
- owner: str6(meta.owner),
67886
- curator: str6(meta.curator),
67887
- guardian: str6(meta.guardian),
67888
- feeRecipient: str6(meta.feeRecipient),
67889
- solvency: str6(meta.solvency),
67890
- navOracle: str6(meta.navOracle),
67891
- yieldProfile: str6(info.yieldProfile),
67959
+ owner: str7(meta.owner),
67960
+ curator: str7(meta.curator),
67961
+ guardian: str7(meta.guardian),
67962
+ feeRecipient: str7(meta.feeRecipient),
67963
+ solvency: str7(meta.solvency),
67964
+ navOracle: str7(meta.navOracle),
67965
+ yieldProfile: str7(info.yieldProfile),
67892
67966
  exposures: Array.isArray(row.exposures) ? row.exposures : Array.isArray(meta.exposures) ? meta.exposures : void 0
67893
67967
  };
67894
67968
  }
@@ -70735,12 +70809,12 @@ var USER_SET_RATE_PREFIXES = [
70735
70809
  function collateralSymbolsByVenue(rows, fallbackChainId) {
70736
70810
  const byVenue = /* @__PURE__ */ new Map();
70737
70811
  for (const row of rows) {
70738
- const venue = str5(row.lender) ?? str5(row.lenderKey);
70739
- const chainId = str5(row.chainId) ?? fallbackChainId;
70812
+ const venue = str6(row.lender) ?? str6(row.lenderKey);
70813
+ const chainId = str6(row.chainId) ?? fallbackChainId;
70740
70814
  if (!venue || !chainId) continue;
70741
70815
  const collateralActive = row.flags?.collateralActive ?? row.collateralActive;
70742
70816
  if (collateralActive !== true) continue;
70743
- const symbol = str5(row.underlyingInfo?.asset?.symbol) ?? str5(row.asset?.symbol);
70817
+ const symbol = str6(row.underlyingInfo?.asset?.symbol) ?? str6(row.asset?.symbol);
70744
70818
  if (!symbol) continue;
70745
70819
  const key3 = venueGroupKey(chainId, venue);
70746
70820
  let set = byVenue.get(key3);
@@ -70753,7 +70827,7 @@ function venueGroupKey(chainId, venue) {
70753
70827
  return `${chainId}::${venue}`;
70754
70828
  }
70755
70829
  function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
70756
- const marketUid = str5(row.marketUid);
70830
+ const marketUid = str6(row.marketUid);
70757
70831
  if (!marketUid) return void 0;
70758
70832
  let earnUid;
70759
70833
  try {
@@ -70761,8 +70835,8 @@ function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
70761
70835
  } catch {
70762
70836
  return void 0;
70763
70837
  }
70764
- const chainId = str5(row.chainId) ?? fallbackChainId;
70765
- const venue = str5(row.lender) ?? str5(row.lenderKey);
70838
+ const chainId = str6(row.chainId) ?? fallbackChainId;
70839
+ const venue = str6(row.lender) ?? str6(row.lenderKey);
70766
70840
  if (!chainId || !venue) return void 0;
70767
70841
  const flags = row.flags ?? {};
70768
70842
  const assetInfo = row.underlyingInfo?.asset ?? row.asset ?? {};
@@ -70799,32 +70873,32 @@ function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
70799
70873
  // Same resolver as the vault half, so `protocol.key` means one thing
70800
70874
  // across the listing: the STABLE family key, never the per-market venue.
70801
70875
  // No lender publishes a curator today, hence the undefined.
70802
- ...resolveEarnIdentity(venue, void 0, str5(row.lenderInfo?.protocol)),
70876
+ ...resolveEarnIdentity(venue, void 0, str6(row.lenderInfo?.protocol)),
70803
70877
  // Pair-aware: "USDT · vs wstETH" for an isolated market, plain "USDC" for
70804
70878
  // a shared pool. The fetcher's own name is only the fallback — it is the
70805
70879
  // leg-local "Loan USDC", which a chain repeats across 300 markets and
70806
70880
  // which says nothing about WHICH market this is. Identical to what the
70807
70881
  // origin's SQL route builds, so both paths agree.
70808
70882
  name: earnMarketLabel({
70809
- assetSymbol: str5(assetInfo.symbol),
70810
- lenderMarketName: str5(row.lenderInfo?.name),
70811
- fetcherName: str5(row.name),
70883
+ assetSymbol: str6(assetInfo.symbol),
70884
+ lenderMarketName: str6(row.lenderInfo?.name),
70885
+ fetcherName: str6(row.name),
70812
70886
  venue,
70813
70887
  // The venue's collaterals, UNFILTERED — the label removes this row's own
70814
70888
  // leg itself. Filtering here made the collateral row of a 1-collateral
70815
70889
  // market look like a 0-collateral one, so the two legs of one market
70816
70890
  // disagreed about whether it was isolated.
70817
70891
  collateralSymbols: venueCollaterals?.get(venueGroupKey(chainId, venue)),
70818
- fallbackName: str5(row.name)
70892
+ fallbackName: str6(row.name)
70819
70893
  }),
70820
70894
  // Never re-derived — the uid's third segment as the origin minted it.
70821
70895
  ref: marketUid.split(":")[2],
70822
- logoURI: str5(assetInfo.logoURI),
70896
+ logoURI: str6(assetInfo.logoURI),
70823
70897
  asset: {
70824
70898
  address: underlying,
70825
- symbol: str5(assetInfo.symbol) ?? "",
70899
+ symbol: str6(assetInfo.symbol) ?? "",
70826
70900
  decimals,
70827
- assetGroup: str5(row.underlyingInfo?.assetGroup) ?? str5(row.asset?.assetGroup),
70901
+ assetGroup: str6(row.underlyingInfo?.assetGroup) ?? str6(row.asset?.assetGroup),
70828
70902
  priceUsd
70829
70903
  },
70830
70904
  // A lending supply position is an aToken/cToken/eToken balance, but the
@@ -70854,7 +70928,7 @@ function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
70854
70928
  availability,
70855
70929
  risk: {
70856
70930
  score: num12(row.risk?.score),
70857
- label: str5(row.risk?.label),
70931
+ label: str6(row.risk?.label),
70858
70932
  illiquid: isIlliquid({
70859
70933
  exitMode: "instant-capped",
70860
70934
  tvlUsd: num12(row.totalDepositsUSD ?? row.totalDepositsUsd),
@@ -70869,7 +70943,7 @@ function earnMarketFromPool(row, fallbackChainId, venueCollaterals) {
70869
70943
  // nothing else, and one may price its collateral off a feed that ignores
70870
70944
  // a depeg in it.
70871
70945
  oracle: addr2(row.oracleInfo?.feeds?.find((f) => f?.oracle)?.oracle),
70872
- oracleDescription: str5(
70946
+ oracleDescription: str6(
70873
70947
  row.oracleInfo?.feeds?.find((f) => f?.priceDescription)?.priceDescription
70874
70948
  ),
70875
70949
  borrowable: (flags.borrowingEnabled ?? row.borrowingEnabled) === true
@@ -71306,6 +71380,6 @@ function earnPositionTotals(items) {
71306
71380
  };
71307
71381
  }
71308
71382
 
71309
- export { ApiBookSource, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_PROFILE_ID, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, EARN_DESCRIPTIONS, EARN_LABELS, EMPTY_BALANCE, EXACTLY_LENDER_KEY, FRACTION_RATE_PROVIDERS, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, HYPERCORE_VAULT_REGISTRY, IDLE_MARKET_ID, INTERFACE_IDS, LAGOON_API_URL, LAGOON_CHAIN_IDS, MORPHO_LENS, MULTICALL_FAILURE, MaxParamThresholds, PASSTHROUGH_RATE_EPSILON, PENDLE_ASSETS_URL, PENDLE_CHAIN_IDS, PENDLE_MARKETS_URL, SDK_FRACTION_RATE_PROVIDERS, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, 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, TermMaxApiSource, TermSubgraphSource, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, VAULT_PROVIDERS, VAULT_PROVIDER_PROFILE, VAULT_PROVIDER_TRAITS, VAULT_SHARE_PRICE_PROBE, VAULT_VENUE_PREFIX, VOLATILE_VAULT_OVERRIDES, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, __resetResupplyUserCaches, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachImplications, attachPricesToFlashLiquidity, borrowDescription, borrowFindings, borrowHeadline, buildExposures2 as 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, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta2 as 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, 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, 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, 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, multicall3Abi2 as multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseEarnUid, parseMergedResult, parseMulticallRpcResponses, parseExpirySeconds as parsePendleExpirySeconds, parseRawRpcBatchResponses, parseRawRpcResponses, parseTermMaxLtv, parseTokenBalanceResult, pct, assetKey as pendleAssetKey, positivePart2 as 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 };
71383
+ export { ApiBookSource, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_PROFILE_ID, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, EARN_DESCRIPTIONS, EARN_LABELS, EMPTY_BALANCE, EXACTLY_LENDER_KEY, FRACTION_RATE_PROVIDERS, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, HYPERCORE_VAULT_REGISTRY, IDLE_MARKET_ID, INTERFACE_IDS, LAGOON_API_URL, LAGOON_CHAIN_IDS, MORPHO_LENS, MULTICALL_FAILURE, MaxParamThresholds, PASSTHROUGH_RATE_EPSILON, PENDLE_ASSETS_URL, PENDLE_CHAIN_IDS, PENDLE_MARKETS_URL, SDK_FRACTION_RATE_PROVIDERS, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, 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, TermMaxApiSource, TermSubgraphSource, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, VAULT_PROVIDERS, VAULT_PROVIDER_PROFILE, VAULT_PROVIDER_TRAITS, VAULT_SHARE_PRICE_PROBE, VAULT_VENUE_PREFIX, VOLATILE_VAULT_OVERRIDES, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, __resetResupplyUserCaches, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachImplications, attachPricesToFlashLiquidity, borrowDescription, borrowFindings, borrowHeadline, buildExposures2 as 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, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta2 as 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, multicall3Abi2 as multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseEarnUid, parseMergedResult, parseMulticallRpcResponses, parseExpirySeconds as parsePendleExpirySeconds, parseRawRpcBatchResponses, parseRawRpcResponses, parseTermMaxLtv, parseTokenBalanceResult, pct, assetKey as pendleAssetKey, positivePart2 as 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 };
71310
71384
  //# sourceMappingURL=index.js.map
71311
71385
  //# sourceMappingURL=index.js.map