@panoptic-eng/sdk 1.0.7 → 1.0.9

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
@@ -1,5 +1,5 @@
1
- import { BORROW_INDEX_BITS, BPS_SCALE, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, Multicall3Abi, RATE_AT_TARGET_BITS, SECONDS_PER_YEAR, UNREALIZED_INTEREST_BITS, WAD, annualizePerSecondRateWad, deriveSupplyRatePerSecWad, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, getAccountCollateral, getCollateralData, getIrmCurrent, getIrmCurve, packMarketState, ratePerSecWadToAprPct, utilizationBpsToWad, utilizationPctToWad } from "./irm-CBrX8bjH.js";
2
- import { collateralTrackerV2Abi, getPoolMetadata$1 as getPoolMetadata, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, panopticQueryAbi$1 as panopticQueryAbi, riskEngineAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi } from "./position-FxaZi608.js";
1
+ import { BORROW_INDEX_BITS, BPS_SCALE, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, Multicall3Abi, RATE_AT_TARGET_BITS, SECONDS_PER_YEAR, UNREALIZED_INTEREST_BITS, WAD$1 as WAD, annualizePerSecondRateWad, deriveSupplyRatePerSecWad, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, getAccountCollateral, getCollateralData, getIrmCurrent, getIrmCurve, packMarketState, ratePerSecWadToAprPct, utilizationBpsToWad, utilizationPctToWad } from "./irm-BTK_DhAz.js";
2
+ import { collateralTrackerV2Abi, getPoolMetadata$1 as getPoolMetadata, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, panopticQueryAbi, riskEngineAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi } from "./position-BVhvYRm8.js";
3
3
  import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, encodeAbiParameters, encodeFunctionData, encodePacked, keccak256, maxUint256, parseAbi, zeroAddress } from "viem";
4
4
  import { readContract, simulateContract, writeContract } from "viem/actions";
5
5
  import { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, CHAIN_DEPLOYMENTS, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_PANOPTIC_V2_ADDRESSES, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, getChainDeployment, getEthUsdcMarket, isSupportedChain, requireChainDeployment, resolveVaultDisplayName } from "@panoptic-eng/deployments";
@@ -15796,6 +15796,7 @@ const SEPOLIA_DEPLOYMENT$1 = requireChainDeployment(SEPOLIA_CHAIN_ID);
15796
15796
  const BASE_DEPLOYMENT$1 = requireChainDeployment(BASE_CHAIN_ID);
15797
15797
  const MAINNET_DEPLOYMENT$1 = requireChainDeployment(MAINNET_CHAIN_ID);
15798
15798
  const MAX_PRICE_DEVIATION = 100;
15799
+ const WSPCXX_USDC_MAX_PRICE_DEVIATION = 1e4;
15799
15800
  const DEFAULT_TRIGGER_TICK = 150;
15800
15801
  const SEPOLIA_DEFAULT_POOL_INFOS = [{
15801
15802
  maxPriceDeviation: MAX_PRICE_DEVIATION,
@@ -15817,6 +15818,12 @@ const MAINNET_DEFAULT_POOL_INFOS = [{
15817
15818
  token0: getEthUsdcMarket(MAINNET_DEPLOYMENT$1).currency0,
15818
15819
  token1: getEthUsdcMarket(MAINNET_DEPLOYMENT$1).currency1
15819
15820
  }];
15821
+ const MAINNET_USDC_PLP_POOL_INFOS = [...MAINNET_DEFAULT_POOL_INFOS, {
15822
+ maxPriceDeviation: WSPCXX_USDC_MAX_PRICE_DEVIATION,
15823
+ pool: "0x0f34e6fCda264349Db10d445BD95f529cbe88090",
15824
+ token0: "0x8e2eeD8b8B5E13Ea7BF38e50d7821d2C57309072",
15825
+ token1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
15826
+ }];
15820
15827
  const MAINNET_LEGACY_DEFAULT_POOL_INFOS = [{
15821
15828
  maxPriceDeviation: MAX_PRICE_DEVIATION,
15822
15829
  pool: "0x000000007588B488d180899cDEa2080a886D2441",
@@ -15853,7 +15860,7 @@ const BaseWETHPLPVaultPoolInfos = {
15853
15860
  //#region src/hypoVault/hypoVaultManagerArtifacts/MainnetUSDCPLPVaultPoolInfos.ts
15854
15861
  const MainnetUSDCPLPVaultPoolInfos = {
15855
15862
  vaultAddress: MAINNET_VAULT_ADDRESSES.usdcPlpVault,
15856
- poolInfos: MAINNET_DEFAULT_POOL_INFOS.map((poolInfo) => ({
15863
+ poolInfos: MAINNET_USDC_PLP_POOL_INFOS.map((poolInfo) => ({
15857
15864
  ...poolInfo,
15858
15865
  triggerTick: DEFAULT_TRIGGER_TICK
15859
15866
  }))
@@ -16239,6 +16246,71 @@ function getVaultPoolInfos(vaultAddress, chainId) {
16239
16246
  const artifact = artifacts.find((candidate) => toLowerAddress$1(candidate.vaultAddress) === vaultAddressLower);
16240
16247
  return artifact?.poolInfos ?? [];
16241
16248
  }
16249
+ /**
16250
+ * Resolve the block-INDEPENDENT candidate tokenIds per pool for a vault — i.e. the
16251
+ * two subgraph paging queries only, with no on-chain verification. Pair with
16252
+ * {@link verifyVaultOpenTokenIdsAtBlock} to narrow to positions open at a given
16253
+ * block. Splitting these out lets a timeseries fetch the candidate set ONCE per
16254
+ * vault instead of re-running the subgraph paging for every anchor block. The
16255
+ * combined {@link resolveVaultTokenIdsByPool} remains for one-shot callers.
16256
+ */
16257
+ async function resolveVaultHistoricalCandidatesByPool({ chainId, vaultAddress, managerAddress, poolInfos, panopticSubgraphUrl, fetchFn = fetch }) {
16258
+ const resolvedPoolInfos = poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
16259
+ if (resolvedPoolInfos.length === 0) return [];
16260
+ const configuredEndpoint = panopticSubgraphUrl ?? requireChainDeployment(chainId).subgraphs.panoptic;
16261
+ if (configuredEndpoint === void 0) return resolvedPoolInfos.map((poolInfo) => ({
16262
+ poolAddress: poolInfo.pool,
16263
+ candidates: []
16264
+ }));
16265
+ const vaultAddressLower = toLowerAddress$1(vaultAddress);
16266
+ const recipientAddresses = Array.from(new Set([vaultAddressLower, managerAddress?.toLowerCase()].filter((value) => value !== void 0 && value.length > 0).map((value) => value.toLowerCase())));
16267
+ const poolIds = Array.from(new Set(resolvedPoolInfos.map((poolInfo) => toLowerAddress$1(poolInfo.pool))));
16268
+ const balanceCandidatesByPool = new Map();
16269
+ const eventCandidatesByPool = new Map();
16270
+ await collectPoolAccountBalanceCandidates({
16271
+ endpoint: configuredEndpoint,
16272
+ poolIds,
16273
+ vaultAddress: vaultAddressLower,
16274
+ candidatesByPool: balanceCandidatesByPool,
16275
+ fetchFn
16276
+ });
16277
+ await collectOptionEventCandidates({
16278
+ endpoint: configuredEndpoint,
16279
+ poolIds,
16280
+ recipientAddresses,
16281
+ candidatesByPool: eventCandidatesByPool,
16282
+ fetchFn
16283
+ });
16284
+ return resolvedPoolInfos.map((poolInfo) => {
16285
+ const poolAddressLower = toLowerAddress$1(poolInfo.pool);
16286
+ const openBalances = balanceCandidatesByPool.get(poolAddressLower) ?? new Set();
16287
+ const eventCandidates = eventCandidatesByPool.get(poolAddressLower) ?? new Set();
16288
+ const candidates = sortBigintsAscending(new Set([...openBalances, ...eventCandidates]));
16289
+ return {
16290
+ poolAddress: poolInfo.pool,
16291
+ candidates
16292
+ };
16293
+ });
16294
+ }
16295
+ /**
16296
+ * Narrow pre-resolved {@link VaultPoolCandidateTokenIds} to the tokenIds actually
16297
+ * open at `blockNumber`, per pool, via on-chain `getFullPositionsData` (bisecting
16298
+ * on stale candidates). This is the per-block half of the candidate/verify split.
16299
+ */
16300
+ async function verifyVaultOpenTokenIdsAtBlock({ viemClient, vaultAddress, candidatesByPool, blockNumber }) {
16301
+ const tokenIdsByPool = [];
16302
+ for (const { poolAddress, candidates } of candidatesByPool) {
16303
+ const openTokenIds = await filterOpenTokenIdsAtBlock({
16304
+ viemClient,
16305
+ poolAddress,
16306
+ account: vaultAddress,
16307
+ candidates,
16308
+ blockNumber
16309
+ });
16310
+ tokenIdsByPool.push(openTokenIds);
16311
+ }
16312
+ return tokenIdsByPool;
16313
+ }
16242
16314
  async function resolveVaultTokenIdsByPool({ viemClient, chainId, vaultAddress, managerAddress, poolInfos, panopticSubgraphUrl, verificationBlockNumber, fetchFn = fetch }) {
16243
16315
  const resolvedPoolInfos = poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
16244
16316
  if (resolvedPoolInfos.length === 0) return [];
@@ -17612,8 +17684,8 @@ const MainnetUSDCPLPStrategistLeaves = {
17612
17684
  "Bytes4(TARGET_FUNCTION_SELECTOR)",
17613
17685
  "Bytes{N*20}(ADDRESS_ARGUMENT_0,...,ADDRESS_ARGUMENT_N)"
17614
17686
  ],
17615
- LeafCount: 9,
17616
- ManageRoot: "0x215542d18c9cf442c62bc3a06dbe8d8d9bc893e5d97e70b675e5c8b1721c6e29",
17687
+ LeafCount: 12,
17688
+ ManageRoot: "0xed7d4ae055fd62c6edc93bd676456748f52fe4f4b78f60ab3ef6394bacc31b5d",
17617
17689
  ManagerAddress: "0x2ce65016366ef7320078e0758D58Cf1038bc7C4e",
17618
17690
  TreeCapacity: 16
17619
17691
  },
@@ -17718,37 +17790,37 @@ const MainnetUSDCPLPStrategistLeaves = {
17718
17790
  TargetAddress: "0x1e46b0289B7E0F710E2Db8Ab87800dd782D624f7"
17719
17791
  },
17720
17792
  {
17721
- AddressArguments: [],
17793
+ AddressArguments: ["0x141cc517a6276542B59732Fd85C1A2C536eF7aCA"],
17722
17794
  CanSendValue: false,
17723
- DecoderAndSanitizerAddress: "0x0000000000000000000000000000000000000000",
17724
- Description: "",
17725
- FunctionSelector: "0xc5d24601",
17726
- FunctionSignature: "",
17727
- LeafDigest: "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17728
- PackedArgumentAddresses: "0x",
17729
- TargetAddress: "0x0000000000000000000000000000000000000000"
17795
+ DecoderAndSanitizerAddress: "0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6",
17796
+ Description: "Approve wSPCXx poUSDC to spend USDC",
17797
+ FunctionSelector: "0x095ea7b3",
17798
+ FunctionSignature: "approve(address,uint256)",
17799
+ LeafDigest: "0x51f664e3fbdd3e6780eebf725f83871971fedbc1344987982349ae6d636e04df",
17800
+ PackedArgumentAddresses: "0x141cc517a6276542b59732fd85c1a2c536ef7aca",
17801
+ TargetAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
17730
17802
  },
17731
17803
  {
17732
- AddressArguments: [],
17804
+ AddressArguments: ["0x236d0558f06cd60780b232d4Ec4c92d2cb7e4D18"],
17733
17805
  CanSendValue: false,
17734
- DecoderAndSanitizerAddress: "0x0000000000000000000000000000000000000000",
17735
- Description: "",
17736
- FunctionSelector: "0xc5d24601",
17737
- FunctionSignature: "",
17738
- LeafDigest: "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17739
- PackedArgumentAddresses: "0x",
17740
- TargetAddress: "0x0000000000000000000000000000000000000000"
17806
+ DecoderAndSanitizerAddress: "0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6",
17807
+ Description: "Deposit USDC for wSPCXx poUSDC",
17808
+ FunctionSelector: "0x6e553f65",
17809
+ FunctionSignature: "deposit(uint256,address)",
17810
+ LeafDigest: "0xb8baaad70acd2686ec36c69277ae1e53e2e5f515a3a6087187cfb6c00ec9f322",
17811
+ PackedArgumentAddresses: "0x236d0558f06cd60780b232d4ec4c92d2cb7e4d18",
17812
+ TargetAddress: "0x141cc517a6276542B59732Fd85C1A2C536eF7aCA"
17741
17813
  },
17742
17814
  {
17743
- AddressArguments: [],
17815
+ AddressArguments: ["0x236d0558f06cd60780b232d4Ec4c92d2cb7e4D18", "0x236d0558f06cd60780b232d4Ec4c92d2cb7e4D18"],
17744
17816
  CanSendValue: false,
17745
- DecoderAndSanitizerAddress: "0x0000000000000000000000000000000000000000",
17746
- Description: "",
17747
- FunctionSelector: "0xc5d24601",
17748
- FunctionSignature: "",
17749
- LeafDigest: "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17750
- PackedArgumentAddresses: "0x",
17751
- TargetAddress: "0x0000000000000000000000000000000000000000"
17817
+ DecoderAndSanitizerAddress: "0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6",
17818
+ Description: "Withdraw USDC from wSPCXx poUSDC",
17819
+ FunctionSelector: "0xb460af94",
17820
+ FunctionSignature: "withdraw(uint256,address,address)",
17821
+ LeafDigest: "0x4ede52d99a5e4722726abc80a939e2f94268cfb2a0584a184bcae79a1c6c82c2",
17822
+ PackedArgumentAddresses: "0x236d0558f06cd60780b232d4ec4c92d2cb7e4d18236d0558f06cd60780b232d4ec4c92d2cb7e4d18",
17823
+ TargetAddress: "0x141cc517a6276542B59732Fd85C1A2C536eF7aCA"
17752
17824
  },
17753
17825
  {
17754
17826
  AddressArguments: [],
@@ -17796,12 +17868,12 @@ const MainnetUSDCPLPStrategistLeaves = {
17796
17868
  }
17797
17869
  ],
17798
17870
  MerkleTree: {
17799
- "0": ["0x215542d18c9cf442c62bc3a06dbe8d8d9bc893e5d97e70b675e5c8b1721c6e29"],
17800
- "1": ["0xfdd68e4155c3f0143529939165390a7717848d745d5848b5de5dcbabc28e5bbb", "0x153e94cb5785054402d188bf49e3bfd27d2aa336384d23055faa969d8fa8bd77"],
17871
+ "0": ["0xed7d4ae055fd62c6edc93bd676456748f52fe4f4b78f60ab3ef6394bacc31b5d"],
17872
+ "1": ["0xfdd68e4155c3f0143529939165390a7717848d745d5848b5de5dcbabc28e5bbb", "0x559d6a628cef4d55eabf143e84c270be2c3f61e236c2c36115fc29ebadc30bfa"],
17801
17873
  "2": [
17802
17874
  "0x03ddbd298d0afd4b181cc56a653fcd6c4cc6124edba7ffcea1cf9abc1396b34a",
17803
17875
  "0x5a78f5fea4886abf9b990cb11d6c97d8d90fa3aef528289cd2c7da07f7188d15",
17804
- "0x62bc115420860e0f111c62fb6dab141f690afdc12f9b4a1d362c15096ac8d606",
17876
+ "0x67b572f27c64d564c387cf62d05e228ee073dedf11cfad4f95ca78d2673354ce",
17805
17877
  "0x849eda7a295b642e5ddaf49a30eec4470cf507efa83b4104c0752d069c7638fe"
17806
17878
  ],
17807
17879
  "3": [
@@ -17809,8 +17881,8 @@ const MainnetUSDCPLPStrategistLeaves = {
17809
17881
  "0x9604e6ac6ac45ac3ec61d6ab2b52d96aeb9025c8e90cf93f7411b9c9a9dda29b",
17810
17882
  "0xa22cac1a8d963fd80eecce587c5833c77d944bc1dfaace739c66421431823263",
17811
17883
  "0x6bab63ba855d0ba1ef5fc9c8058253f278aec18f88be21d95b7cb11097d11e8a",
17812
- "0x1f1e162b1891921acaa6f790667ffa6051dcf6fac3df0399e74574359d6d0bfa",
17813
- "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba",
17884
+ "0x20b3b7048a0735825b5cb83b931b60eb4bbbd1c68c8466d86df5ae72361d5da4",
17885
+ "0xa0e8444c994231a2893a69086326624b42ad2973144580795d00406bb36b0b3f",
17814
17886
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba",
17815
17887
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba"
17816
17888
  ],
@@ -17824,9 +17896,9 @@ const MainnetUSDCPLPStrategistLeaves = {
17824
17896
  "0xf5cc741985c1ce6b1af02be04696bd5944097198abf5ce09945a956143b14e6d",
17825
17897
  "0xb5731bb52d9dccf49773020a8ddc59afbf937d6e203ef104e085f94f18b50e9b",
17826
17898
  "0xa600a5aea3b025f316a4cc99e16c188953aeca6e1bf347d6b2ea8f549b859689",
17827
- "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17828
- "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17829
- "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17899
+ "0x51f664e3fbdd3e6780eebf725f83871971fedbc1344987982349ae6d636e04df",
17900
+ "0xb8baaad70acd2686ec36c69277ae1e53e2e5f515a3a6087187cfb6c00ec9f322",
17901
+ "0x4ede52d99a5e4722726abc80a939e2f94268cfb2a0584a184bcae79a1c6c82c2",
17830
17902
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17831
17903
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17832
17904
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
@@ -18436,19 +18508,23 @@ function requestDeposit({ walletClient, vaultAddress, assets, account }) {
18436
18508
  //#region src/hypoVault/requestDeposit/hooks/use-request-deposit.ts
18437
18509
  const APPROVAL_SYNC_POLL_INTERVAL_MS = 1200;
18438
18510
  const APPROVAL_SYNC_MAX_ATTEMPTS = 20;
18439
- const useRequestDeposit = ({ chainId, vaultAddress, assets, tokenAddress, onWaitSuccess }) => {
18511
+ const useRequestDeposit = ({ chainId, vaultAddress, assets, tokenAddress, simulationAccount, onWaitSuccess }) => {
18440
18512
  const { address: account } = useAccount();
18441
- const canReadAllowance = account != null && account !== zeroAddress && tokenAddress !== zeroAddress && vaultAddress !== zeroAddress;
18513
+ const simulatedAccount = simulationAccount ?? account;
18514
+ const canReadAllowance = simulatedAccount != null && simulatedAccount !== zeroAddress && tokenAddress !== zeroAddress && vaultAddress !== zeroAddress;
18442
18515
  const allowanceRead = useReadContract({
18443
18516
  chainId,
18444
18517
  address: canReadAllowance ? tokenAddress : void 0,
18445
18518
  abi: Erc20Abi,
18446
18519
  functionName: "allowance",
18447
- args: canReadAllowance ? [account, vaultAddress] : void 0,
18520
+ args: canReadAllowance ? [simulatedAccount, vaultAddress] : void 0,
18448
18521
  query: { enabled: canReadAllowance }
18449
18522
  });
18450
18523
  const allowanceKnown = allowanceRead.data !== void 0;
18451
18524
  const tokenNeedsApproval = canReadAllowance && allowanceKnown && allowanceRead.data < assets;
18525
+ const normalizedAccount = account?.toLowerCase();
18526
+ const normalizedSimulationAccount = simulationAccount?.toLowerCase();
18527
+ const canApproveForSimulatedAccount = normalizedAccount != null && normalizedAccount !== zeroAddress && (normalizedSimulationAccount === void 0 || normalizedSimulationAccount === normalizedAccount);
18452
18528
  const refetchAllowance = allowanceRead.refetch;
18453
18529
  const approveSimulate = useSimulateContract({
18454
18530
  chainId,
@@ -18458,7 +18534,7 @@ const useRequestDeposit = ({ chainId, vaultAddress, assets, tokenAddress, onWait
18458
18534
  args: [vaultAddress, maxUint256],
18459
18535
  account,
18460
18536
  query: {
18461
- enabled: allowanceKnown && tokenNeedsApproval && assets > 0n && account != null,
18537
+ enabled: allowanceKnown && tokenNeedsApproval && assets > 0n && account != null && canApproveForSimulatedAccount,
18462
18538
  retry: false
18463
18539
  }
18464
18540
  });
@@ -18477,9 +18553,9 @@ const useRequestDeposit = ({ chainId, vaultAddress, assets, tokenAddress, onWait
18477
18553
  vaultAddress,
18478
18554
  assets
18479
18555
  }),
18480
- account,
18556
+ account: simulatedAccount,
18481
18557
  query: {
18482
- enabled: allowanceKnown && !tokenNeedsApproval && assets > 0n && vaultAddress !== zeroAddress && account != null && account !== zeroAddress,
18558
+ enabled: allowanceKnown && !tokenNeedsApproval && assets > 0n && vaultAddress !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress,
18483
18559
  retry: false
18484
18560
  }
18485
18561
  });
@@ -18561,6 +18637,7 @@ const useRequestDeposit = ({ chainId, vaultAddress, assets, tokenAddress, onWait
18561
18637
  const actionLabel = useMemo(() => {
18562
18638
  if (isApprovalSyncing) return "Approval confirmed. Syncing allowance...";
18563
18639
  if (tokenNeedsApproval) {
18640
+ if (!canApproveForSimulatedAccount) return "Approval Required";
18564
18641
  if (approveSimulate.isLoading) return "Simulating approval...";
18565
18642
  if (approveWrite.isPending || approveWait.isLoading) return "Approving...";
18566
18643
  return "Approve Token";
@@ -18571,6 +18648,7 @@ const useRequestDeposit = ({ chainId, vaultAddress, assets, tokenAddress, onWait
18571
18648
  }, [
18572
18649
  isApprovalSyncing,
18573
18650
  tokenNeedsApproval,
18651
+ canApproveForSimulatedAccount,
18574
18652
  approveSimulate.isLoading,
18575
18653
  approveWrite.isPending,
18576
18654
  approveWait.isLoading,
@@ -19607,5 +19685,5 @@ function getHypoVaultGraphQLClient(chainId) {
19607
19685
  }
19608
19686
 
19609
19687
  //#endregion
19610
- export { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, BORROW_INDEX_BITS, BPS_SCALE, BaseUSDCPLPStrategistLeaves, BaseUSDCPLPVaultPoolInfos, BaseWETHPLPStrategistLeaves, BaseWETHPLPVaultPoolInfos, CHAIN_DEPLOYMENTS, CollateralTrackerAbi, CollateralTrackerV1_1Abi, Erc1155Abi, Erc20Abi, HypoVaultAbi, HypoVaultManagerConfigSchema, HypoVaultManagerWithMerkleVerificationAbi, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_PANOPTIC_V2_ADDRESSES, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, RescueDistributorAbi, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, annualizePerSecondRateWad, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, cancelDeposit, chainToHypoVaultGraphQlAPI, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, convertJsonTreeToArray, deriveSupplyRatePerSecWad, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, findLeaf, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultPoolInfos, isSupportedChain, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveVaultDisplayName, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, useCancelDeposit, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad };
19688
+ export { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, BORROW_INDEX_BITS, BPS_SCALE, BaseUSDCPLPStrategistLeaves, BaseUSDCPLPVaultPoolInfos, BaseWETHPLPStrategistLeaves, BaseWETHPLPVaultPoolInfos, CHAIN_DEPLOYMENTS, CollateralTrackerAbi, CollateralTrackerV1_1Abi, Erc1155Abi, Erc20Abi, HypoVaultAbi, HypoVaultManagerConfigSchema, HypoVaultManagerWithMerkleVerificationAbi, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_PANOPTIC_V2_ADDRESSES, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, RescueDistributorAbi, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, annualizePerSecondRateWad, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, cancelDeposit, chainToHypoVaultGraphQlAPI, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, convertJsonTreeToArray, deriveSupplyRatePerSecWad, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, findLeaf, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultPoolInfos, isSupportedChain, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, useCancelDeposit, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, verifyVaultOpenTokenIdsAtBlock };
19611
19689
  //# sourceMappingURL=index.js.map