@1delta/margin-fetcher 5.0.104 → 5.0.106

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
@@ -9,7 +9,7 @@ import { Chain, isEvmChainId, isSvmChainId } from '@1delta/chain-registry';
9
9
  import { multicallRetryUniversal, getEvmClient, getEvmChain, createMulticallRetryUniversal, LIST_OVERRIDES, getEvmClientUniversal } from '@1delta/providers';
10
10
  import { LiquityTroveManagerAbi, LiquityActivePoolAbi, LiquityStabilityPoolAbi, LiquityPriceFeedAbi, LiquitySortedTrovesAbi, RiverTroveManagerAbi, RiverStabilityPoolAbi, TellerMarketRegistryAbi, TellerV2Abi, InverseMarketAbi, InverseOracleAbi, InverseDbrAbi, CurveTricryptoOracleAbi, Erc20Abi, CoolerMonoAbi, CoolerLtvOracleAbi, LlamaLendControllerAbi, LlamaLendControllerV1Abi, LlamaLendControllerV2Abi, LlamaLendVaultAbi, LlamaLendAmmAbi, TwyneCollateralVaultAbi, MetaMorphoAbi, FluidDexResolverAbi, ExactlyPreviewerAbi, ExactlyAuditorAbi, FlyingTulipLendingLensAbi, 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, TwyneVaultManagerAbi, TwyneCollateralVaultFactoryAbi, AaveV2V3Abi, TwyneATokenWrapperAbi, UsddCdpManagerAbi, UsddProxyRegistryAbi, CurvanceProtocolReaderAbi, CurvanceCentralRegistryAbi, TermPriceConsumerAbi, CurvanceOracleManagerAbi, TermMaxOracleAggregatorV2Abi } from '@1delta/abis';
11
11
  export { MorphoLensAbi } from '@1delta/abis';
12
- import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getLstAcceptedInputs, savingsVerbRequires, savingsSupportsVerb, getCompoundV2Comptroller as getCompoundV2Comptroller$1, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, FLUID_VAULT_FACTORY, getAaveStyleLenderTokenAddress, LendingMode, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, findSavingsWithdrawEntry, bandLtvCurve, InitMarginAddresses, ignoresReceiver, buildLstWithdrawRequest, SAVINGS_RECEIVER_CAPABILITY } from '@1delta/calldata-sdk';
12
+ import { NEST_SAVINGS_VAULTS, NEST_PREDICATE_PROXY, NEST_USDC, prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getLstAcceptedInputs, savingsVerbRequires, savingsSupportsVerb, getCompoundV2Comptroller as getCompoundV2Comptroller$1, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, FLUID_VAULT_FACTORY, getAaveStyleLenderTokenAddress, LendingMode, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, findSavingsWithdrawEntry, bandLtvCurve, InitMarginAddresses, ignoresReceiver, buildLstWithdrawRequest, SAVINGS_RECEIVER_CAPABILITY } from '@1delta/calldata-sdk';
13
13
  import { proxyNativeFetch } from '@1delta/proxy-fetch';
14
14
  import { BALANCER_V2_FORKS, BALANCER_V3_FORKS, UNISWAP_V4_FORKS, isFlashLoanSourceExcluded, FLASH_LOAN_IDS } from '@1delta/dex-registry';
15
15
  import { getNativeDecimals, getWrappedNativeAddressSafe, isNativeWrapOneToOne } from '@1delta/wnative';
@@ -51558,6 +51558,164 @@ var VENUS_HUB_ENTRIES = {
51558
51558
  [Chain.BNB_SMART_CHAIN_MAINNET]: "0x6d93fd479f2d37445cfbe132412e316a0364acc2"
51559
51559
  });
51560
51560
 
51561
+ // src/yields/intrinsic/fetchers/nest.ts
51562
+ var NEST_API_URL = "https://api.nest.credit/v1";
51563
+ var NEST_VAULT_GROUPS = {
51564
+ "0x119dd7daff816f29d7ee47596ae5e4bdc4299165": "Nest BlackOpal LiquidStone II Vault::nOPAL",
51565
+ "0x2a3e301dbd45c143dfbb7b1ce1c55bf0bbf161cb": "Nest Apollo ACRDX Vault::nACRDX",
51566
+ "0xe72fe64840f4ef80e3ec73a1c749491b5c938cb9": "Nest Treasuries Vault::nTBILL",
51567
+ "0x29bf22381a5811dec89dc7b46a5ce57ad02c0240": "Nest WisdomTree Vault::nWISDOM",
51568
+ "0x593ccca4c4bf58b7526a4c164ceef4003c6388db": "Nest Alpha Vault::nALPHA",
51569
+ "0x11113ff3a60c2450f4b22515cb760417259ee94b": "Nest Basis Vault::nBASIS",
51570
+ "0xa5f78b2a0ab85429d2dfbf8b60abc70f4cec066c": "Nest Credit Vault::nCREDIT",
51571
+ "0x7488b23f4c26b44eef2e0766896be47443e86d79": "Nest AXI Vault::nAXI",
51572
+ "0xd99076fcfd61b3695c5a00740364a84ac8c46cba": "Nest Perena Vault::nPERENA",
51573
+ "0xdf45b8322ea4ce898331602e2d1f3d1a67ae0ee8": "Nest Liquid Credit Vault::nLCRD",
51574
+ "0x770c2d6b16c8f8ab5535ae719a5475411c120f6e": "Nest Hamilton Lane SCOPE Vault::nSCOPE",
51575
+ "0x066d10e240999aea6798b2e2ca0bdac2923cbdff": "Nest FalconX CLO::nFALCON",
51576
+ "0x63810d7f1c7b4dbfb60c173ba120a2be98b59e13": "Nest BlackRock iShares AAA CLO Active ETF Vault::nCLOA",
51577
+ "0x6fec234e8801ed88964bc058a0f9fbcc9fcbd2eb": "Prime Vault::nPRIME",
51578
+ "0x1f37620a0e0660db3cdbb8cdbf62d8099f959925": "Plume Factor Vault::FACTOR"
51579
+ };
51580
+ var NEST_GROUP_ALIASES = {
51581
+ "Nest Alpha Vault::nALPHA": ["Nest ALPHA Vault::nALPHA"],
51582
+ "Nest AXI Vault::nAXI": ["Nest USDC PayFi Lending Vault::nAXI"],
51583
+ "Nest BlackRock iShares AAA CLO Active ETF Vault::nCLOA": [
51584
+ "Nest BlackRock iShares AAA CLO Active ETF Vault::NCLOA"
51585
+ ]
51586
+ };
51587
+ var NEST_RWA_SLUGS = [
51588
+ {
51589
+ slug: "janus-henderson-fund",
51590
+ group: "Janus Henderson Anemoy Treasury Fund::JTRSY"
51591
+ },
51592
+ {
51593
+ slug: "superstate-ustb",
51594
+ group: "Superstate Short Duration US Government Securities Fund::USTB"
51595
+ },
51596
+ {
51597
+ slug: "superstate-uscc",
51598
+ group: "Superstate Crypto Carry Fund::USCC"
51599
+ },
51600
+ {
51601
+ slug: "apollo-acrdx",
51602
+ group: "Anemoy Tokenized Apollo Diversified Credit Fund::ACRDX"
51603
+ },
51604
+ {
51605
+ slug: "blackstone-srln",
51606
+ group: "Dinari SRLN::SRLN.D"
51607
+ }
51608
+ ];
51609
+ var pickApy = (apy) => {
51610
+ if (!apy) return void 0;
51611
+ if (typeof apy.rolling30d === "number" && apy.rolling30d > 0)
51612
+ return apy.rolling30d;
51613
+ if (typeof apy.rolling7d === "number" && apy.rolling7d > 0)
51614
+ return apy.rolling7d;
51615
+ return void 0;
51616
+ };
51617
+ var toApr = (apy) => apyToAprPercent(apy * 100);
51618
+ var nestFetcher = {
51619
+ label: "NEST",
51620
+ fetch: async () => {
51621
+ const [unified, ...rwa] = await Promise.all([
51622
+ fetch(`${NEST_API_URL}/vaults/apy`).then(
51623
+ (r) => r.json()
51624
+ ),
51625
+ ...NEST_RWA_SLUGS.map(
51626
+ ({ slug }) => fetch(`${NEST_API_URL}/assets/${slug}/apy`).then(
51627
+ (r) => r.json()
51628
+ )
51629
+ )
51630
+ ]);
51631
+ const result = {};
51632
+ for (const v of unified?.data ?? []) {
51633
+ const group = NEST_VAULT_GROUPS[v.vaultAddress.toLowerCase()];
51634
+ if (!group) continue;
51635
+ const apy = pickApy(v.navApy);
51636
+ if (apy === void 0) continue;
51637
+ result[group] = toApr(apy);
51638
+ for (const alias of NEST_GROUP_ALIASES[group] ?? [])
51639
+ result[alias] = result[group];
51640
+ }
51641
+ for (let i = 0; i < NEST_RWA_SLUGS.length; i++) {
51642
+ const apy = pickApy(rwa[i]?.data?.tokens?.[0]?.apy);
51643
+ if (apy === void 0) continue;
51644
+ result[NEST_RWA_SLUGS[i].group] = toApr(apy);
51645
+ }
51646
+ return result;
51647
+ }
51648
+ };
51649
+
51650
+ // src/vaults/savings/registryNest.ts
51651
+ var EXIT = "Deposits go through Nest\u2019s compliance-screened proxy. Exit instantly for a fee, up to the USDC held idle on this chain, or request a redemption Nest fulfils (hours to days; longer for credit) and claim it. The price is an operator-published NAV.";
51652
+ var NEST_VAULT_PROSE = {
51653
+ nOPAL: {
51654
+ yieldKey: "Nest BlackOpal LiquidStone II Vault::nOPAL",
51655
+ description: "Nest\u2019s largest vault: BlackOpal\u2019s LiquidStone II \u2014 short-term receivables financing \u2014 with a Treasury and basis sleeve."
51656
+ },
51657
+ nPRIME: {
51658
+ yieldKey: "Prime Vault::nPRIME",
51659
+ description: "A single-strategy vault holding Hastra PRIME, a tokenized home-equity credit fund; almost all of it sits on Ethereum with a handful of holders."
51660
+ },
51661
+ nFALCON: {
51662
+ yieldKey: "Nest FalconX CLO::nFALCON",
51663
+ description: "A single-strategy vault holding OpenTrade\u2019s XDLF, a FalconX-linked credit facility; concentrated among few holders."
51664
+ },
51665
+ nALPHA: {
51666
+ yieldKey: "Nest Alpha Vault::nALPHA",
51667
+ description: "A fund of Nest vaults \u2014 receivables, Treasuries, private credit and CLOs \u2014 allocated by Cicada."
51668
+ },
51669
+ FACTOR: {
51670
+ yieldKey: "Plume Factor Vault::FACTOR",
51671
+ description: "Plume\u2019s asset-backed-finance vault: residential solar loans, private credit deals and Hastra PRIME, with a Treasury sleeve. Its fees are the highest here \u2014 2 % to exit instantly, 0.5 % on a queued redemption."
51672
+ },
51673
+ nAXI: {
51674
+ yieldKey: "Nest AXI Vault::nAXI",
51675
+ description: "A single-strategy vault lending USDC to Axiym\u2019s cross-border payment (PayFi) book; concentrated among few holders."
51676
+ },
51677
+ nTBILL: {
51678
+ yieldKey: "Nest Treasuries Vault::nTBILL",
51679
+ description: "Short-dated US Treasuries through Janus Henderson\u2019s Anemoy fund (JTRSY) and Superstate\u2019s USTB."
51680
+ },
51681
+ nCLOA: {
51682
+ yieldKey: "Nest BlackRock iShares AAA CLO Active ETF Vault::nCLOA",
51683
+ description: "AAA CLO tranches through a tokenized BlackRock iShares AAA CLO ETF and OpenTrade\u2019s xUSCLO."
51684
+ },
51685
+ nLCRD: {
51686
+ yieldKey: "Nest Liquid Credit Vault::nLCRD",
51687
+ description: "A liquid private-credit strategy with a Treasury sleeve; concentrated among few holders."
51688
+ }
51689
+ };
51690
+ var NEST_ENTRIES = (() => {
51691
+ const out = {};
51692
+ for (const v of NEST_SAVINGS_VAULTS) {
51693
+ const prose = NEST_VAULT_PROSE[v.symbol];
51694
+ if (!prose) continue;
51695
+ for (const chainId of v.chains) {
51696
+ (out[chainId] ??= []).push({
51697
+ reader: "nest-vault",
51698
+ address: v.share,
51699
+ underlying: NEST_USDC[chainId],
51700
+ symbol: v.symbol,
51701
+ brand: "Nest",
51702
+ description: `${prose.description} ${EXIT}`,
51703
+ decimals: 6,
51704
+ underlyingDecimals: 6,
51705
+ isRebasing: false,
51706
+ isMintable: true,
51707
+ mintContract: NEST_PREDICATE_PROXY,
51708
+ withdrawQueue: v.nestVault,
51709
+ withdrawalMode: "fee-or-queued",
51710
+ solvency: "nav-attested",
51711
+ yieldFetcher: nestFetcher,
51712
+ yieldKey: prose.yieldKey
51713
+ });
51714
+ }
51715
+ }
51716
+ return out;
51717
+ })();
51718
+
51561
51719
  // src/vaults/savings/registry.ts
51562
51720
  var stUsdGroup = {
51563
51721
  base: {
@@ -53617,6 +53775,10 @@ var SAVINGS_REGISTRY = (() => {
53617
53775
  if (!out[chainId]) out[chainId] = [];
53618
53776
  out[chainId].push(...entries);
53619
53777
  }
53778
+ for (const [chainId, entries] of Object.entries(NEST_ENTRIES)) {
53779
+ if (!out[chainId]) out[chainId] = [];
53780
+ out[chainId].push(...entries);
53781
+ }
53620
53782
  return out;
53621
53783
  })();
53622
53784
  var savingsBalanceKind = (chainId, address) => {
@@ -55805,18 +55967,13 @@ var pendleFetcher = {
55805
55967
  };
55806
55968
 
55807
55969
  // src/yields/intrinsic/fetchers/usdai.ts
55808
- var USDAI_APY_URL = "https://api.usd.ai/usdai/dashboard/current-apy";
55970
+ var USDAI_DEFILLAMA_POOL = "712ce948-bd9e-4f4a-8916-b72c447f7578";
55809
55971
  var usdai = "sUSDai::SUSDAI";
55810
55972
  var usdaiFetcher = {
55811
55973
  label: "USDai",
55812
55974
  fetch: async () => {
55813
- const res = await fetch(USDAI_APY_URL, {
55814
- headers: {
55815
- origin: "https://app.usd.ai",
55816
- referer: "https://app.usd.ai/"
55817
- }
55818
- }).then((r) => r.json());
55819
- return { [usdai]: apyToAprPercent(Number(res.result)) };
55975
+ const apy = await fetchDefiLlamaApy(USDAI_DEFILLAMA_POOL);
55976
+ return { [usdai]: apyToAprPercent(apy) };
55820
55977
  }
55821
55978
  };
55822
55979
 
@@ -55935,82 +56092,6 @@ var midasFetcher = {
55935
56092
  return result;
55936
56093
  }
55937
56094
  };
55938
-
55939
- // src/yields/intrinsic/fetchers/nest.ts
55940
- var NEST_API_URL = "https://api.nest.credit/v1";
55941
- var NEST_VAULT_GROUPS = {
55942
- "0x119dd7daff816f29d7ee47596ae5e4bdc4299165": "Nest BlackOpal LiquidStone II Vault::nOPAL",
55943
- "0x2a3e301dbd45c143dfbb7b1ce1c55bf0bbf161cb": "Nest Apollo ACRDX Vault::nACRDX",
55944
- "0xe72fe64840f4ef80e3ec73a1c749491b5c938cb9": "Nest Treasuries Vault::nTBILL",
55945
- "0x29bf22381a5811dec89dc7b46a5ce57ad02c0240": "Nest WisdomTree Vault::nWISDOM",
55946
- "0x593ccca4c4bf58b7526a4c164ceef4003c6388db": "Nest Alpha Vault::nALPHA",
55947
- "0x11113ff3a60c2450f4b22515cb760417259ee94b": "Nest Basis Vault::nBASIS",
55948
- "0xa5f78b2a0ab85429d2dfbf8b60abc70f4cec066c": "Nest Credit Vault::nCREDIT",
55949
- "0x7488b23f4c26b44eef2e0766896be47443e86d79": "Nest USDC PayFi Lending Vault::nAXI",
55950
- "0xd99076fcfd61b3695c5a00740364a84ac8c46cba": "Nest Perena Vault::nPERENA",
55951
- "0xdf45b8322ea4ce898331602e2d1f3d1a67ae0ee8": "Nest Liquid Credit Vault::nLCRD",
55952
- "0x770c2d6b16c8f8ab5535ae719a5475411c120f6e": "Nest Hamilton Lane SCOPE Vault::nSCOPE"
55953
- };
55954
- var NEST_RWA_SLUGS = [
55955
- {
55956
- slug: "janus-henderson-fund",
55957
- group: "Janus Henderson Anemoy Treasury Fund::JTRSY"
55958
- },
55959
- {
55960
- slug: "superstate-ustb",
55961
- group: "Superstate Short Duration US Government Securities Fund::USTB"
55962
- },
55963
- {
55964
- slug: "superstate-uscc",
55965
- group: "Superstate Crypto Carry Fund::USCC"
55966
- },
55967
- {
55968
- slug: "apollo-acrdx",
55969
- group: "Anemoy Tokenized Apollo Diversified Credit Fund::ACRDX"
55970
- },
55971
- {
55972
- slug: "blackstone-srln",
55973
- group: "Dinari SRLN::SRLN.D"
55974
- }
55975
- ];
55976
- var pickApy = (apy) => {
55977
- if (!apy) return void 0;
55978
- if (typeof apy.rolling30d === "number" && apy.rolling30d > 0)
55979
- return apy.rolling30d;
55980
- if (typeof apy.rolling7d === "number" && apy.rolling7d > 0)
55981
- return apy.rolling7d;
55982
- return void 0;
55983
- };
55984
- var toApr = (apy) => apyToAprPercent(apy * 100);
55985
- var nestFetcher = {
55986
- label: "NEST",
55987
- fetch: async () => {
55988
- const [unified, ...rwa] = await Promise.all([
55989
- fetch(`${NEST_API_URL}/vaults/apy`).then(
55990
- (r) => r.json()
55991
- ),
55992
- ...NEST_RWA_SLUGS.map(
55993
- ({ slug }) => fetch(`${NEST_API_URL}/assets/${slug}/apy`).then(
55994
- (r) => r.json()
55995
- )
55996
- )
55997
- ]);
55998
- const result = {};
55999
- for (const v of unified?.data ?? []) {
56000
- const group = NEST_VAULT_GROUPS[v.vaultAddress.toLowerCase()];
56001
- if (!group) continue;
56002
- const apy = pickApy(v.navApy);
56003
- if (apy === void 0) continue;
56004
- result[group] = toApr(apy);
56005
- }
56006
- for (let i = 0; i < NEST_RWA_SLUGS.length; i++) {
56007
- const apy = pickApy(rwa[i]?.data?.tokens?.[0]?.apy);
56008
- if (apy === void 0) continue;
56009
- result[NEST_RWA_SLUGS[i].group] = toApr(apy);
56010
- }
56011
- return result;
56012
- }
56013
- };
56014
56095
  var ACCOUNTABLE_LIST_URL = "https://yield.accountable.capital/api/loan";
56015
56096
  async function symbolToAssetGroup(chainId) {
56016
56097
  const list = await fetchTokenList(chainId);
@@ -67310,7 +67391,7 @@ var deriveProtocolExitRoutes = (i) => {
67310
67391
  // term-sheet rules call out for `fees: []`.
67311
67392
  ...i.withdrawFeeBps == null ? { feeUnknown: true, label: "Instant (fee)" } : {}
67312
67393
  },
67313
- { ...queuedRoute(i), feeBps: 0 }
67394
+ { ...queuedRoute(i), feeBps: i.queuedFeeBps ?? 0 }
67314
67395
  ];
67315
67396
  // Same split with no fee on either leg — the instant leg is bounded by
67316
67397
  // inventory instead.
@@ -68282,7 +68363,7 @@ var Erc7540Abi = [
68282
68363
  // src/vaults/lst/withdrawals/readers/erc7540.ts
68283
68364
  var readerErc7540 = {
68284
68365
  fetch: async (user, multicallRetry, chainId, entry) => {
68285
- const requestContract = entry.lst;
68366
+ const requestContract = entry.withdrawalContract ?? entry.lst;
68286
68367
  const stage1 = await multicallRetry({
68287
68368
  chain: chainId,
68288
68369
  calls: [
@@ -70268,8 +70349,6 @@ var buildWithdrawalReader = (entry) => {
70268
70349
  return readerEmpty;
70269
70350
  }
70270
70351
  };
70271
-
70272
- // src/vaults/lst/withdrawals/registry.ts
70273
70352
  var LST_WITHDRAWAL_REGISTRY = {
70274
70353
  "1": [
70275
70354
  {
@@ -71031,8 +71110,24 @@ var LST_WITHDRAWAL_REGISTRY = {
71031
71110
  }
71032
71111
  ]
71033
71112
  };
71113
+ var NEST_WITHDRAWAL_ENTRIES = (() => {
71114
+ const out = {};
71115
+ for (const v of NEST_SAVINGS_VAULTS)
71116
+ for (const chainId of v.chains)
71117
+ (out[chainId] ??= []).push({
71118
+ lst: v.share,
71119
+ brand: "Nest",
71120
+ symbol: v.symbol,
71121
+ reader: "erc7540",
71122
+ withdrawalContract: v.nestVault
71123
+ });
71124
+ return out;
71125
+ })();
71034
71126
  var getLstWithdrawalRegistry = (chainId, extraEntries) => {
71035
- const base = LST_WITHDRAWAL_REGISTRY[chainId] ?? [];
71127
+ const base = [
71128
+ ...LST_WITHDRAWAL_REGISTRY[chainId] ?? [],
71129
+ ...NEST_WITHDRAWAL_ENTRIES[chainId] ?? []
71130
+ ];
71036
71131
  if (!extraEntries || extraEntries.length === 0) return base;
71037
71132
  const seen = new Set(base.map((e) => e.lst.toLowerCase()));
71038
71133
  const extra = extraEntries.filter((e) => !seen.has(e.lst.toLowerCase()));
@@ -71891,6 +71986,46 @@ var SaturnPreviewDepositAbi = [
71891
71986
  }
71892
71987
  ];
71893
71988
 
71989
+ // src/vaults/savings/abis/nest.ts
71990
+ var NestVaultReadAbi = [
71991
+ {
71992
+ inputs: [],
71993
+ name: "totalAssets",
71994
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
71995
+ stateMutability: "view",
71996
+ type: "function"
71997
+ },
71998
+ {
71999
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
72000
+ name: "convertToAssets",
72001
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
72002
+ stateMutability: "view",
72003
+ type: "function"
72004
+ },
72005
+ {
72006
+ inputs: [{ internalType: "uint8", name: "_f", type: "uint8" }],
72007
+ name: "fees",
72008
+ outputs: [
72009
+ { internalType: "uint32", name: "_rate", type: "uint32" },
72010
+ { internalType: "uint256", name: "_flat", type: "uint256" }
72011
+ ],
72012
+ stateMutability: "view",
72013
+ type: "function"
72014
+ }
72015
+ ];
72016
+ var NestPredicateProxyReadAbi = [
72017
+ {
72018
+ inputs: [],
72019
+ name: "paused",
72020
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
72021
+ stateMutability: "view",
72022
+ type: "function"
72023
+ }
72024
+ ];
72025
+ var NEST_FEE_INSTANT_REDEMPTION = 0;
72026
+ var NEST_FEE_DEPOSIT = 1;
72027
+ var NEST_FEE_REDEMPTION = 2;
72028
+
71894
72029
  // src/vaults/savings/readers/erc4626Idle.ts
71895
72030
  var readerErc4626Idle = (entry) => {
71896
72031
  const shareUnit = 10n ** BigInt(entry.decimals);
@@ -72274,6 +72409,81 @@ var readerNavOracle = (entry) => {
72274
72409
  };
72275
72410
  };
72276
72411
 
72412
+ // src/vaults/savings/readers/nestVault.ts
72413
+ var ppmToBps = (v) => {
72414
+ if (!Array.isArray(v)) return void 0;
72415
+ const rate = toBigInt16(v[0]);
72416
+ const flat = toBigInt16(v[1]);
72417
+ if (rate === void 0 || flat === void 0 || flat !== 0n) return void 0;
72418
+ return Number(rate) / 100;
72419
+ };
72420
+ var readerNestVault = (entry) => {
72421
+ const { address, underlying, withdrawQueue, mintContract } = entry;
72422
+ const nestVault = withdrawQueue ?? address;
72423
+ const shareUnit = 10n ** BigInt(entry.decimals);
72424
+ const underlyingUnit = 10n ** BigInt(entry.underlyingDecimals ?? entry.decimals);
72425
+ const calls = [
72426
+ { address: nestVault, name: "totalAssets", params: [] },
72427
+ { address, name: "totalSupply", params: [] },
72428
+ { address: nestVault, name: "convertToAssets", params: [shareUnit] },
72429
+ {
72430
+ address: nestVault,
72431
+ name: "fees",
72432
+ params: [NEST_FEE_INSTANT_REDEMPTION]
72433
+ },
72434
+ { address: nestVault, name: "fees", params: [NEST_FEE_DEPOSIT] },
72435
+ { address: nestVault, name: "fees", params: [NEST_FEE_REDEMPTION] },
72436
+ {
72437
+ address: underlying,
72438
+ name: "balanceOf",
72439
+ params: [entry.inventoryContract ?? address]
72440
+ },
72441
+ { address: mintContract ?? nestVault, name: "paused", params: [] }
72442
+ ];
72443
+ return {
72444
+ calls,
72445
+ abis: [
72446
+ NestVaultReadAbi,
72447
+ TotalSupplyAbi2,
72448
+ NestVaultReadAbi,
72449
+ NestVaultReadAbi,
72450
+ NestVaultReadAbi,
72451
+ NestVaultReadAbi,
72452
+ BalanceOfAbi,
72453
+ NestPredicateProxyReadAbi
72454
+ ],
72455
+ parse: ([
72456
+ assets,
72457
+ supply,
72458
+ perShare,
72459
+ instFee,
72460
+ depFee,
72461
+ redFee,
72462
+ idle,
72463
+ paused
72464
+ ]) => {
72465
+ const totalAssets = toBigInt16(assets);
72466
+ const totalSupply = toBigInt16(supply);
72467
+ const conv = toBigInt16(perShare);
72468
+ if (totalAssets === void 0 || totalSupply === void 0 || conv === void 0 || conv === 0n)
72469
+ return void 0;
72470
+ return {
72471
+ totalAssets,
72472
+ totalSupply,
72473
+ exchangeRate: conv * ONE_E1815 / underlyingUnit,
72474
+ withdrawFeeBps: ppmToBps(instFee),
72475
+ depositFeeBps: ppmToBps(depFee),
72476
+ queuedFeeBps: ppmToBps(redFee),
72477
+ instantRedeemCapacity: toBigInt16(idle),
72478
+ withdrawQueue: nestVault.toLowerCase(),
72479
+ // A paused proxy refuses every deposit — the row says so as a full
72480
+ // vault rather than by flipping a permission it does not change.
72481
+ ...paused === true ? { depositCapacity: 0n } : {}
72482
+ };
72483
+ }
72484
+ };
72485
+ };
72486
+
72277
72487
  // src/vaults/savings/readers/nativeWnlp.ts
72278
72488
  var readerNativeWnlp = (entry) => {
72279
72489
  const { address, underlying, inventoryContract, withdrawQueue } = entry;
@@ -72670,6 +72880,8 @@ var buildReader2 = (entry) => {
72670
72880
  return readerVenusHub(entry);
72671
72881
  case "saturn-vault":
72672
72882
  return readerSaturnVault(entry);
72883
+ case "nest-vault":
72884
+ return readerNestVault(entry);
72673
72885
  case "erc4626-cooldown":
72674
72886
  return readerErc4626Cooldown(entry);
72675
72887
  case "erc4626-idle":
@@ -72866,6 +73078,7 @@ var fetchSavingsVaults = async (chainId, multicallRetry, prices = {}, tokenList
72866
73078
  ) ?? deriveExitRoutes({
72867
73079
  withdrawalMode: entry.withdrawalMode,
72868
73080
  withdrawFeeBps: state.withdrawFeeBps,
73081
+ queuedFeeBps: state.queuedFeeBps,
72869
73082
  withdrawalCooldownSeconds: state.withdrawalCooldownSeconds ?? entry.withdrawalCooldownSeconds,
72870
73083
  liquidity: liquidityRaw,
72871
73084
  liquidityFormatted,
@@ -78674,7 +78887,8 @@ var GATING_LABELS = {
78674
78887
  paused: "Paused",
78675
78888
  frozen: "Frozen",
78676
78889
  "collateral-only": "No yield",
78677
- matured: "Matured"
78890
+ matured: "Matured",
78891
+ unsupported: "Not available here"
78678
78892
  };
78679
78893
  var RATE_KIND_LABELS = {
78680
78894
  "variable-curve": "Variable (utilization)",
@@ -83848,6 +84062,65 @@ var applyEarnSanity = (rows, opts = {}) => {
83848
84062
  }
83849
84063
  return { items, unrealizable, unearnable, repricedTvl };
83850
84064
  };
84065
+ var LENDING = {
84066
+ verbs: ["deposit", "withdraw"],
84067
+ payAsset: true,
84068
+ receiveAsset: true,
84069
+ nativeDeposit: true,
84070
+ nativeWithdraw: true
84071
+ };
84072
+ var SVM_EARN_VAULT_BUILDERS = {
84073
+ // jl tokens: a pay-asset conversion on deposit, none on withdraw
84074
+ "jupiter-lend": {
84075
+ verbs: ["deposit", "withdraw"],
84076
+ payAsset: true,
84077
+ nativeDeposit: true
84078
+ },
84079
+ // Kamino's hosted kvault builder: the vault's own token in, shares out
84080
+ "kamino-kvault": { verbs: ["deposit", "withdraw"] },
84081
+ // queued exit: a request by shares, then a claim
84082
+ "savings:Solstice": { verbs: ["deposit", "request-withdraw", "claim"] },
84083
+ // queued exit; a request can be cancelled by its id, there is no claim leg
84084
+ "savings:Huma": {
84085
+ verbs: ["deposit", "request-withdraw", "cancel"],
84086
+ requires: { cancel: ["requestId"] }
84087
+ },
84088
+ // JLP: the pool's own mint / burn from / into any custody token
84089
+ "savings:Jupiter": {
84090
+ verbs: ["deposit", "withdraw"],
84091
+ payAsset: true,
84092
+ receiveAsset: true,
84093
+ nativeDeposit: true,
84094
+ nativeWithdraw: true
84095
+ },
84096
+ // USDC in over CCTP, a request out — settled by Nest, nothing to claim
84097
+ "savings:Nest": { verbs: ["deposit", "request-withdraw"] }
84098
+ };
84099
+ var UNBUILT_REASONS = {
84100
+ exponent: "Exponent PTs are not tradable through this API yet",
84101
+ lst: "Solana LST staking is not built in this API yet",
84102
+ loopscale: "Loopscale vaults are not built in this API yet"
84103
+ };
84104
+ var LOOPSCALE_LENDING_REASON = "Loopscale lends only inside loops \u2014 there is no plain deposit here";
84105
+ function svmEarnBuildability(venue, brand) {
84106
+ if (!venue.startsWith("vault.")) {
84107
+ if (isLoopscale(venue))
84108
+ return { ok: false, reason: LOOPSCALE_LENDING_REASON };
84109
+ if (isKamino(venue) || isJupiterLend(venue) || isSave(venue) || isProject0(venue))
84110
+ return { ok: true, builder: LENDING };
84111
+ return { ok: false, reason: "No Solana builder for this lender yet" };
84112
+ }
84113
+ const provider = venue.slice("vault.".length);
84114
+ const key3 = provider === "savings" ? `savings:${brand ?? ""}` : provider;
84115
+ const builder = SVM_EARN_VAULT_BUILDERS[key3];
84116
+ if (builder) return { ok: true, builder };
84117
+ return {
84118
+ ok: false,
84119
+ reason: UNBUILT_REASONS[provider] ?? "Deposits into this vault are not built in this API yet"
84120
+ };
84121
+ }
84122
+
84123
+ // src/earn/capabilities.ts
83851
84124
  var ASYNC_EXIT_MODES = /* @__PURE__ */ new Set([
83852
84125
  "fixed-cooldown",
83853
84126
  "request-based",
@@ -83862,9 +84135,46 @@ var ASYNC_PROVIDERS = /* @__PURE__ */ new Set([
83862
84135
  // keeper-executed tickets
83863
84136
  ]);
83864
84137
  function stampCapabilities(row) {
83865
- row.capabilities = row.venueKind === "lending" ? lendingCapabilities(row) : vaultCapabilities(row);
84138
+ row.capabilities = isSvmChainId(String(row.chainId)) ? svmCapabilities(row) : row.venueKind === "lending" ? lendingCapabilities(row) : vaultCapabilities(row);
83866
84139
  return row;
83867
84140
  }
84141
+ var WSOL = "So11111111111111111111111111111111111111112";
84142
+ function svmCapabilities(row) {
84143
+ const b = svmEarnBuildability(row.venue, row.brand);
84144
+ if (!b.ok) {
84145
+ if (row.availability.canDeposit) {
84146
+ row.availability.canDeposit = false;
84147
+ row.availability.gating = "unsupported";
84148
+ row.availability.reason = b.reason;
84149
+ }
84150
+ return [];
84151
+ }
84152
+ const { builder } = b;
84153
+ const wsol = row.asset?.address === WSOL;
84154
+ const caps = [];
84155
+ for (const action of builder.verbs) {
84156
+ const open = action === "deposit" ? row.availability.canDeposit : row.availability.canWithdraw;
84157
+ if (!open) continue;
84158
+ const cap = { action };
84159
+ if (action === "deposit") {
84160
+ cap.acceptsPayAsset = !!builder.payAsset;
84161
+ cap.acceptsNative = wsol && !!builder.nativeDeposit;
84162
+ } else if (action === "withdraw") {
84163
+ cap.acceptsReceiveAsset = !!builder.receiveAsset;
84164
+ cap.acceptsNative = wsol && !!builder.nativeWithdraw;
84165
+ } else if (action === "request-withdraw") cap.async = true;
84166
+ else if (action === "claim") cap.async = false;
84167
+ const requires = builder.requires?.[action];
84168
+ if (requires?.length) cap.requires = [...requires];
84169
+ caps.push(cap);
84170
+ }
84171
+ if (!builder.verbs.includes("deposit") && row.availability.canDeposit) {
84172
+ row.availability.canDeposit = false;
84173
+ row.availability.gating = "unsupported";
84174
+ row.availability.reason = "Deposits are not built in this API yet";
84175
+ }
84176
+ return caps;
84177
+ }
83868
84178
  function nativeStandsIn(row) {
83869
84179
  const wrapped = getWrappedNativeAddressSafe(row.chainId);
83870
84180
  return !!wrapped && wrapped.toLowerCase() === String(row.asset?.address ?? "").toLowerCase() && isNativeWrapOneToOne(row.chainId);
@@ -83909,7 +84219,10 @@ var NON_4626_DEPOSIT_KINDS = /* @__PURE__ */ new Set([
83909
84219
  "vesper",
83910
84220
  "hyperbeat",
83911
84221
  "native-wnlp",
83912
- "bitway"
84222
+ "bitway",
84223
+ // Nest — the NestVault's own `deposit` is role-gated; entry is the predicate
84224
+ // proxy with an attestation bound to the sender, which a composer zap is not.
84225
+ "nest"
83913
84226
  ]);
83914
84227
  function acceptsVaultZap(row, provider) {
83915
84228
  if (ZAP_EXCLUDED_PROVIDERS.has(provider)) return false;
@@ -84327,6 +84640,6 @@ function earnPositionTotals(items) {
84327
84640
  };
84328
84641
  }
84329
84642
 
84330
- export { ApiBookSource, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_PROFILE_ID, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, DEFAULT_TERM_ORDER_STORE, DOLOMITE_ISO_ID_PREFIX, EARN_DESCRIPTIONS, EARN_LABELS, EARN_RATE_SOURCE_BY_PROVIDER, EMPTY_BALANCE, EXACTLY_LENDER_KEY, FLYING_TULIP_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, NON_EVM_VAULT_PROVIDERS, PASSTHROUGH_RATE_EPSILON, PENDLE_ASSETS_URL, PENDLE_CHAIN_IDS, PENDLE_MARKETS_URL, PREFIX_LENDERS, SDK_FRACTION_RATE_PROVIDERS, SPECTRA_NETWORKS, SPECTRA_RATE_MAX_PERCENT, SPECTRA_RATE_MIN_PERCENT, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, TELLER_CALLS_PER_BID, DECIMAL_BASE as TERMMAX_DECIMAL_BASE, TERMMAX_LIQUIDATION_PENALTY, TERMMAX_LIQUIDATION_WINDOW_SECS, TERMMAX_LIQUIDATOR_BONUS, TERMMAX_MARKETS_PER_CALL, 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, applyEarnSanity, applyPositionDelta, attachImplications, attachPricesToFlashLiquidity, blockNumberFromTag, borrowDescription, borrowFindings, borrowHeadline, buildExposures2 as buildExposures, buildFluidFTokensCall, buildLendingPositionUid, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildQueriesFromMeta, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildTermMaxUserCall, buildTermSheet, buildTermSheetsForGroup, buildVaultEarnUid, buildVaultLookup, buildVaultTermSheet, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, clearPendleMarketsCache, clearSpectraMarketsCache, 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, convertCoolerMarketsToResponse, convertDssMarketsToResponse, convertExactlyMarketsToResponse, convertFlyingTulipMarketsToResponse, convertFrankencoinMarketsToResponse, convertFraxlendPairsToResponse, convertInverseMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertLlamaLendMarketsToResponse, convertResupplyMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, convertTermMaxMarketsToResponse, convertUsddMarketsToResponse, createMarketUid, createMidnightBookSource, createMultiAccountTypeUserState, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, deriveBorrowTags, deriveSupplyTags, detectInterfaceKinds, dexResolverFor, disambiguateEarnNames, dolomiteVaultAddress, dssIlkBytes32, dssKeyParts, dssLenderKey, duration, earnDescription, earnLabel, earnMarketFromPool, earnMarketFromVault, earnMarketLabel, earnPositionFromLenderEntry, earnPositionFromVaultBalance, earnPositionTotals, earnRateAtMaturity, earnRowSubtitle, earnUidFromMarketUid, earnVaultTerms, earnVenueKind, emitterCoverage, encodeBalanceFetcherCalldata, enrichTermSheet, enrichmentIndexFromRows, enumerateEmitters, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feePhrase, feedKeyOf, feedStatKey, fetchCoolerMarkets, fetchDolomiteAccountNumbers, fetchDolomiteSubAccounts, fetchDssMarkets, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidDexState, fetchFluidFTokens, fetchFlyingTulipMarkets, 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, fetchSpectraApiMarkets, fetchSpectraPtMarkets, fetchTellerMarkets, fetchTermMarkets, fetchTermMaxMarkets, fetchTermStoreOrders, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchUsddMarkets, fetchYearnApiVaults, fetchYearnVaults, fillableRemaining, filterActiveLenders, filterLenderMeta, 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, getResolvedDolomiteSubAccounts, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getTermProfile, getVaultPublicDataAll, getVaultWithdrawalRequests, hasCritical, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasPendleMarkets, hasSpectraMarkets, hasUpshiftVaults, hasYearnVaults, ilkToKeySegment, implausibleRatePercent, injectLenderInfoIntoEntries, inverseKeyParts, inverseLenderKey, isBoundNeed, isFailedCall, isIlliquid, isLenderVenueKey, isLendingPosition, isLiveMarket as isLivePendleMarket, isLiveSpectraMarket, isMaturedTerm, isSecondaryMarketOnly, isStablecoinSymbol, isUnearnableEarnRate, isUnrealizableEarnRate, isVaultPosition, isVaultVenue, isYearnV3, keySegmentToIlk, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, llamaLendKeyParts, llamaLendLenderKey, marketKeysOf, meetsLiquidityFloor, mergeDeep, multicall3Abi2 as multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, organizeUserQueries, parseBalanceFetcherResult, parseDolomiteSubAccountId, parseEarnUid, parseLenderKey, parseMergedResult, parseMulticallRpcResponses, parseExpirySeconds as parsePendleExpirySeconds, parseRawRpcBatchResponses, parseRawRpcResponses, parseCurveFee as parseSpectraCurveFee, parsePtRate as parseSpectraPtRate, parseTermMaxLtv, parseTokenBalanceResult, pct, assetKey as pendleAssetKey, pickPool as pickSpectraPool, positivePart2 as positivePart, predictInverseEscrow, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, rankFindings, ratePercent, readUserPositions, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, repairImpossibleTvl, resolveAdapter, resolveDerivation, resolveDolomiteRowIdentity, resolveEarnIdentity, resolveModeConfig, resolveStCeloDepositGroup, resolveVaultProfileId, resupplyKeyParts, resupplyLenderKey, resupplyMarketLabel, riverKeyParts, riverLenderKey, sanePercent as saneSpectraPercent, savingsAddresses, savingsBalanceKind, secondaryMarketVault, selectAssetGroupPrices, setMysticApiKey, shortDate, spectraAddress, spectraNetwork, spectraPoolsUrl, splitChainScopedAddress as splitPendleChainScopedAddress, stampCapabilities, stampEarnSubtitles, stampVaultClassification, stampVaultTermSheets, stripLeadingBrand, subAccountsOf, supplyDescription, supplyFindings, supplyHeadline, swapRoutedProvidersArePriceConsistent, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termApiBaseUrl, 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, termOfferRateToAprPct, termOrderStoreBaseUrl, tickToAprNumber, tickToPrice, toDigest, toDolomiteSubAccountId, toTermFillNow, toTermSheetInput, toVaultTermInput, trancheFromCounterparty, tryParseEarnUid, unflattenLenderData, updateFeedStats, usdValue, usddIlkBytes32, usddKeyParts, usddLenderKey, validateTermSheet, validateTermSheets, validateUserData, vaultSharesToAssets, vaultTermInputFromEarnMarket, vaultTermInputFromSourceRow, vaultTraits, vaultVenue, venueBrand, venueBrandKey, withMaturityLabel, withTrancheLabel };
84643
+ export { ApiBookSource, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_PROFILE_ID, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, DEFAULT_TERM_ORDER_STORE, DOLOMITE_ISO_ID_PREFIX, EARN_DESCRIPTIONS, EARN_LABELS, EARN_RATE_SOURCE_BY_PROVIDER, EMPTY_BALANCE, EXACTLY_LENDER_KEY, FLYING_TULIP_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, NON_EVM_VAULT_PROVIDERS, PASSTHROUGH_RATE_EPSILON, PENDLE_ASSETS_URL, PENDLE_CHAIN_IDS, PENDLE_MARKETS_URL, PREFIX_LENDERS, SDK_FRACTION_RATE_PROVIDERS, SPECTRA_NETWORKS, SPECTRA_RATE_MAX_PERCENT, SPECTRA_RATE_MIN_PERCENT, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, SVM_EARN_VAULT_BUILDERS, TELLER_CALLS_PER_BID, DECIMAL_BASE as TERMMAX_DECIMAL_BASE, TERMMAX_LIQUIDATION_PENALTY, TERMMAX_LIQUIDATION_WINDOW_SECS, TERMMAX_LIQUIDATOR_BONUS, TERMMAX_MARKETS_PER_CALL, 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, applyEarnSanity, applyPositionDelta, attachImplications, attachPricesToFlashLiquidity, blockNumberFromTag, borrowDescription, borrowFindings, borrowHeadline, buildExposures2 as buildExposures, buildFluidFTokensCall, buildLendingPositionUid, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildQueriesFromMeta, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildTermMaxUserCall, buildTermSheet, buildTermSheetsForGroup, buildVaultEarnUid, buildVaultLookup, buildVaultTermSheet, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, clearPendleMarketsCache, clearSpectraMarketsCache, 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, convertCoolerMarketsToResponse, convertDssMarketsToResponse, convertExactlyMarketsToResponse, convertFlyingTulipMarketsToResponse, convertFrankencoinMarketsToResponse, convertFraxlendPairsToResponse, convertInverseMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertLlamaLendMarketsToResponse, convertResupplyMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, convertTermMaxMarketsToResponse, convertUsddMarketsToResponse, createMarketUid, createMidnightBookSource, createMultiAccountTypeUserState, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, deriveBorrowTags, deriveSupplyTags, detectInterfaceKinds, dexResolverFor, disambiguateEarnNames, dolomiteVaultAddress, dssIlkBytes32, dssKeyParts, dssLenderKey, duration, earnDescription, earnLabel, earnMarketFromPool, earnMarketFromVault, earnMarketLabel, earnPositionFromLenderEntry, earnPositionFromVaultBalance, earnPositionTotals, earnRateAtMaturity, earnRowSubtitle, earnUidFromMarketUid, earnVaultTerms, earnVenueKind, emitterCoverage, encodeBalanceFetcherCalldata, enrichTermSheet, enrichmentIndexFromRows, enumerateEmitters, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feePhrase, feedKeyOf, feedStatKey, fetchCoolerMarkets, fetchDolomiteAccountNumbers, fetchDolomiteSubAccounts, fetchDssMarkets, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidDexState, fetchFluidFTokens, fetchFlyingTulipMarkets, 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, fetchSpectraApiMarkets, fetchSpectraPtMarkets, fetchTellerMarkets, fetchTermMarkets, fetchTermMaxMarkets, fetchTermStoreOrders, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchUsddMarkets, fetchYearnApiVaults, fetchYearnVaults, fillableRemaining, filterActiveLenders, filterLenderMeta, 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, getResolvedDolomiteSubAccounts, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getTermProfile, getVaultPublicDataAll, getVaultWithdrawalRequests, hasCritical, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasPendleMarkets, hasSpectraMarkets, hasUpshiftVaults, hasYearnVaults, ilkToKeySegment, implausibleRatePercent, injectLenderInfoIntoEntries, inverseKeyParts, inverseLenderKey, isBoundNeed, isFailedCall, isIlliquid, isLenderVenueKey, isLendingPosition, isLiveMarket as isLivePendleMarket, isLiveSpectraMarket, isMaturedTerm, isSecondaryMarketOnly, isStablecoinSymbol, isUnearnableEarnRate, isUnrealizableEarnRate, isVaultPosition, isVaultVenue, isYearnV3, keySegmentToIlk, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, llamaLendKeyParts, llamaLendLenderKey, marketKeysOf, meetsLiquidityFloor, mergeDeep, multicall3Abi2 as multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, organizeUserQueries, parseBalanceFetcherResult, parseDolomiteSubAccountId, parseEarnUid, parseLenderKey, parseMergedResult, parseMulticallRpcResponses, parseExpirySeconds as parsePendleExpirySeconds, parseRawRpcBatchResponses, parseRawRpcResponses, parseCurveFee as parseSpectraCurveFee, parsePtRate as parseSpectraPtRate, parseTermMaxLtv, parseTokenBalanceResult, pct, assetKey as pendleAssetKey, pickPool as pickSpectraPool, positivePart2 as positivePart, predictInverseEscrow, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, rankFindings, ratePercent, readUserPositions, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, repairImpossibleTvl, resolveAdapter, resolveDerivation, resolveDolomiteRowIdentity, resolveEarnIdentity, resolveModeConfig, resolveStCeloDepositGroup, resolveVaultProfileId, resupplyKeyParts, resupplyLenderKey, resupplyMarketLabel, riverKeyParts, riverLenderKey, sanePercent as saneSpectraPercent, savingsAddresses, savingsBalanceKind, secondaryMarketVault, selectAssetGroupPrices, setMysticApiKey, shortDate, spectraAddress, spectraNetwork, spectraPoolsUrl, splitChainScopedAddress as splitPendleChainScopedAddress, stampCapabilities, stampEarnSubtitles, stampVaultClassification, stampVaultTermSheets, stripLeadingBrand, subAccountsOf, supplyDescription, supplyFindings, supplyHeadline, svmEarnBuildability, swapRoutedProvidersArePriceConsistent, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termApiBaseUrl, 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, termOfferRateToAprPct, termOrderStoreBaseUrl, tickToAprNumber, tickToPrice, toDigest, toDolomiteSubAccountId, toTermFillNow, toTermSheetInput, toVaultTermInput, trancheFromCounterparty, tryParseEarnUid, unflattenLenderData, updateFeedStats, usdValue, usddIlkBytes32, usddKeyParts, usddLenderKey, validateTermSheet, validateTermSheets, validateUserData, vaultSharesToAssets, vaultTermInputFromEarnMarket, vaultTermInputFromSourceRow, vaultTraits, vaultVenue, venueBrand, venueBrandKey, withMaturityLabel, withTrancheLabel };
84331
84644
  //# sourceMappingURL=index.js.map
84332
84645
  //# sourceMappingURL=index.js.map