@panoptic-eng/sdk 1.0.60 → 1.0.62

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.
Files changed (34) hide show
  1. package/dist/{chainDeployments-CmDzAmZ3.js → chainDeployments-BhXMBZ4B.js} +50 -12
  2. package/dist/cow/index.js +1207 -484
  3. package/dist/cow/index.js.map +1 -1
  4. package/dist/{cow-CHb343la.js → cow-DTi3GjQz.js} +1 -1
  5. package/dist/deployments.d.ts +9 -1
  6. package/dist/deployments.d.ts.map +1 -1
  7. package/dist/deployments.js +50 -12
  8. package/dist/deployments.js.map +1 -1
  9. package/dist/index.d.ts +587 -75
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +577 -357
  12. package/dist/index.js.map +1 -1
  13. package/dist/{irm-BIaLQ-0n.js → irm-BDlcUNgJ.js} +2 -2
  14. package/dist/panoptic/v2/index.d.ts +169 -3
  15. package/dist/panoptic/v2/index.d.ts.map +1 -1
  16. package/dist/panoptic/v2/index.js +658 -107
  17. package/dist/panoptic/v2/index.js.map +1 -1
  18. package/dist/panoptic/v2/react-public.d.ts +177 -3
  19. package/dist/panoptic/v2/react-public.d.ts.map +1 -1
  20. package/dist/panoptic/v2/react-public.js +674 -113
  21. package/dist/panoptic/v2/react-public.js.map +1 -1
  22. package/dist/{rates-COAJpKRd.js → rates-BwZnK0tG.js} +498 -482
  23. package/dist/{router-B2fj4_X7.js → router-Y1OxL9Nt.js} +2 -2
  24. package/dist/{router-DliBF9FK.js → router-jMP7fVno.js} +2 -2
  25. package/dist/{transactionFees-CNbjAigT.js → transactionFees-aXQlx-lq.js} +11 -6
  26. package/dist/uniswap/index.js +724 -1
  27. package/dist/uniswap/index.js.map +1 -1
  28. package/dist/{v2-C3n8n1_i.js → v2-B27ILZl4.js} +518 -202
  29. package/dist/vault-transaction-fees.d.ts +1 -0
  30. package/dist/vault-transaction-fees.d.ts.map +1 -1
  31. package/dist/vault-transaction-fees.js +59 -16
  32. package/dist/vault-transaction-fees.js.map +1 -1
  33. package/dist/{writes-BTkqc_rn.js → writes-B8NGXzUG.js} +219 -38
  34. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -24608,15 +24608,29 @@ var _4663 = {
24608
24608
  "panoptic": {
24609
24609
  "pool": {
24610
24610
  "version": "v4",
24611
- "panopticPool": "0x00000000989bcb6f24af4a1Ab2A6d6a31c98A58E",
24612
- "collateralTracker0": "0x49eaAC32A7CD4B8fB2209a12859a95E0b20aB0e5",
24613
- "collateralTracker1": "0x670C44a0FC35dbC410498e47A6290a1C3196d191"
24611
+ "panopticPool": "0x000000000c21b38c54AcA7c7145Df01ff09d69Bb",
24612
+ "collateralTracker0": "0xDc508622CD7e3850c8240e88c10361Cf493465b6",
24613
+ "collateralTracker1": "0x9212d804953bAf89C24ceFa6545aA293bA08a876"
24614
+ },
24615
+ "additionalPools": {
24616
+ "spyUsdg30bpsV4": {
24617
+ "version": "v4",
24618
+ "panopticPool": "0x00000000989bcb6f24af4a1Ab2A6d6a31c98A58E",
24619
+ "collateralTracker0": "0x49eaAC32A7CD4B8fB2209a12859a95E0b20aB0e5",
24620
+ "collateralTracker1": "0x670C44a0FC35dbC410498e47A6290a1C3196d191"
24621
+ },
24622
+ "spyUsdg5bpsV4": {
24623
+ "version": "v4",
24624
+ "panopticPool": "0x000000000c21b38c54AcA7c7145Df01ff09d69Bb",
24625
+ "collateralTracker0": "0xDc508622CD7e3850c8240e88c10361Cf493465b6",
24626
+ "collateralTracker1": "0x9212d804953bAf89C24ceFa6545aA293bA08a876"
24627
+ }
24614
24628
  },
24615
24629
  "v2": {
24616
24630
  "semiFungiblePositionManagerV4": "0x00000000000005C3287f136Ef5AF56c68Ea6849f",
24617
24631
  "semiFungiblePositionManagerV3": "0x00000000000005E4693aDc8Ec0f12D686f728198",
24618
24632
  "builderFactory": "0x0000000000000a3D22E158417AA639D7F71b0FF7",
24619
- "riskEngine": "0x000000000000075e29cdaa9cb640a69e148ca7da",
24633
+ "riskEngine": "0x0000000000000fE1E261f66ce2F44def4F5Ae0CB",
24620
24634
  "panopticPoolImplementation": "0x000000000000135429F0DaCaB61639Bf6a63EbbC",
24621
24635
  "collateralTrackerImplementation": "0x0000000000001d9c38CA405A2e04420865A08A33",
24622
24636
  "panopticFactoryV4": "0x0000000000000c51d0f8cf4bd9adE7191372a625",
@@ -24632,13 +24646,29 @@ var _4663 = {
24632
24646
  "0x0000000000000fe1e261f66ce2f44def4f5ae0cb",
24633
24647
  "0x0000000000000f3fb82469581A74776178E76Ca4"
24634
24648
  ],
24635
- "markets": { "spyUsdg": {
24636
- "currency0": "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C",
24637
- "currency1": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
24638
- "fee": 3e3,
24639
- "tickSpacing": 60,
24640
- "poolId": "0xfe2a80bb5618fd14984b92ca6d45bf5ba67443ddb1435e28b2e48df2fc1526cd"
24641
- } },
24649
+ "markets": {
24650
+ "spyUsdg": {
24651
+ "currency0": "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C",
24652
+ "currency1": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
24653
+ "fee": 500,
24654
+ "tickSpacing": 5,
24655
+ "poolId": "0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907"
24656
+ },
24657
+ "spyUsdg30bps": {
24658
+ "currency0": "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C",
24659
+ "currency1": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
24660
+ "fee": 3e3,
24661
+ "tickSpacing": 60,
24662
+ "poolId": "0xfe2a80bb5618fd14984b92ca6d45bf5ba67443ddb1435e28b2e48df2fc1526cd"
24663
+ },
24664
+ "spyUsdg5bps": {
24665
+ "currency0": "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C",
24666
+ "currency1": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
24667
+ "fee": 500,
24668
+ "tickSpacing": 5,
24669
+ "poolId": "0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907"
24670
+ }
24671
+ },
24642
24672
  "subgraphs": {
24643
24673
  "hypovault": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-robinhood/prod/gn",
24644
24674
  "panoptic": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-robinhood/v2_prod/gn"
@@ -24789,23 +24819,27 @@ function getChainDeployment(chainId) {
24789
24819
  return CHAIN_DEPLOYMENTS[chainId];
24790
24820
  }
24791
24821
  function requireChainDeployment(chainId) {
24792
- const deployment$2 = getChainDeployment(chainId);
24793
- if (deployment$2 === void 0) throw new Error(`Unsupported chain deployment for chainId ${chainId}`);
24794
- return deployment$2;
24822
+ const deployment$3 = getChainDeployment(chainId);
24823
+ if (deployment$3 === void 0) throw new Error(`Unsupported chain deployment for chainId ${chainId}`);
24824
+ return deployment$3;
24795
24825
  }
24796
24826
  function isSupportedChain(chainId) {
24797
24827
  return getChainDeployment(chainId) !== void 0;
24798
24828
  }
24799
- function getEthUsdcMarket(deployment$2) {
24800
- const market = deployment$2.markets.ethUsdc5bps ?? deployment$2.markets.ethUsdc30bps;
24801
- if (market === void 0) throw new Error(`Missing ETH/USDC market for chainId ${deployment$2.chainId}`);
24829
+ function getEthUsdcMarket(deployment$3) {
24830
+ const market = deployment$3.markets.ethUsdc5bps ?? deployment$3.markets.ethUsdc30bps;
24831
+ if (market === void 0) throw new Error(`Missing ETH/USDC market for chainId ${deployment$3.chainId}`);
24802
24832
  return market;
24803
24833
  }
24804
- function getSpyUsdgMarket(deployment$2) {
24805
- const market = deployment$2.markets.spyUsdg;
24806
- if (market === void 0) throw new Error(`Missing SPY/USDG market for chainId ${deployment$2.chainId}`);
24834
+ function getSpyUsdgMarket(deployment$3) {
24835
+ const market = deployment$3.markets.spyUsdg;
24836
+ if (market === void 0) throw new Error(`Missing SPY/USDG market for chainId ${deployment$3.chainId}`);
24807
24837
  return market;
24808
24838
  }
24839
+ function requireDeploymentValue(value, label) {
24840
+ if (value === void 0) throw new Error(`Missing deployment value: ${label}`);
24841
+ return value;
24842
+ }
24809
24843
  const MAINNET_DEPLOYMENT = CHAIN_DEPLOYMENTS[MAINNET_CHAIN_ID];
24810
24844
  const MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES = MAINNET_DEPLOYMENT.panoptic.additionalPools?.ethUsdc5bpsV3;
24811
24845
  const MAINNET_PANOPTIC_V2_ADDRESSES = MAINNET_DEPLOYMENT.panoptic.v2;
@@ -24834,9 +24868,13 @@ const ROBINHOOD_HYPOVAULT_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.vaults;
24834
24868
  const ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.managers;
24835
24869
  const ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = ROBINHOOD_DEPLOYMENT.hypovault.turnkeySigners;
24836
24870
  const ROBINHOOD_PANOPTIC_POOL_ADDRESSES = ROBINHOOD_DEPLOYMENT.panoptic.pool;
24871
+ const ROBINHOOD_SPY_USDG_30BPS_PANOPTIC_POOL_ADDRESSES = requireDeploymentValue(ROBINHOOD_DEPLOYMENT.panoptic.additionalPools?.spyUsdg30bpsV4, "Robinhood SPY/USDG 30bps Panoptic pool");
24872
+ const ROBINHOOD_SPY_USDG_5BPS_PANOPTIC_POOL_ADDRESSES = requireDeploymentValue(ROBINHOOD_DEPLOYMENT.panoptic.additionalPools?.spyUsdg5bpsV4, "Robinhood SPY/USDG 5bps Panoptic pool");
24837
24873
  const ROBINHOOD_PANOPTIC_V2_ADDRESSES = ROBINHOOD_DEPLOYMENT.panoptic.v2;
24838
24874
  const ROBINHOOD_RISK_ENGINES = ROBINHOOD_DEPLOYMENT.riskEngines;
24839
24875
  const ROBINHOOD_SPY_USDG_MARKET = getSpyUsdgMarket(ROBINHOOD_DEPLOYMENT);
24876
+ const ROBINHOOD_SPY_USDG_30BPS_MARKET = requireDeploymentValue(ROBINHOOD_DEPLOYMENT.markets.spyUsdg30bps, "Robinhood SPY/USDG 30bps market");
24877
+ const ROBINHOOD_SPY_USDG_5BPS_MARKET = requireDeploymentValue(ROBINHOOD_DEPLOYMENT.markets.spyUsdg5bps, "Robinhood SPY/USDG 5bps market");
24840
24878
 
24841
24879
  //#endregion
24842
24880
  //#region ../deployments/src/vaultDisplayNames.js
@@ -24887,8 +24925,8 @@ const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN = {
24887
24925
  },
24888
24926
  [ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: () => "0DTE +67∆ Vault" }
24889
24927
  };
24890
- function resolveVaultDisplayName({ chainId, vaultAddress: vaultAddress$1, underlyingSymbol, fallbackName }) {
24891
- const vaultAddressLower = vaultAddress$1.toLowerCase();
24928
+ function resolveVaultDisplayName({ chainId, vaultAddress: vaultAddress$3, underlyingSymbol, fallbackName }) {
24929
+ const vaultAddressLower = vaultAddress$3.toLowerCase();
24892
24930
  const resolver = VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN[chainId]?.[vaultAddressLower];
24893
24931
  if (resolver !== void 0) return resolver({
24894
24932
  chainId,
@@ -25078,7 +25116,6 @@ function createStrategistLeavesArtifact(metadata, definitions) {
25078
25116
  const SEPOLIA_DEPLOYMENT$5 = requireChainDeployment(SEPOLIA_CHAIN_ID);
25079
25117
  const BASE_DEPLOYMENT$2 = requireChainDeployment(BASE_CHAIN_ID);
25080
25118
  const MAINNET_DEPLOYMENT$6 = requireChainDeployment(MAINNET_CHAIN_ID);
25081
- const ROBINHOOD_DEPLOYMENT$1 = requireChainDeployment(ROBINHOOD_CHAIN_ID);
25082
25119
  const MAX_PRICE_DEVIATION = 100;
25083
25120
  const WSPCXX_USDC_MAX_PRICE_DEVIATION = 1e4;
25084
25121
  const DEFAULT_TRIGGER_TICK = 150;
@@ -25121,14 +25158,24 @@ const MAINNET_WSPCXX_USDC_POOL_INFO = {
25121
25158
  token1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
25122
25159
  positionScanFromBlock: 25302077n
25123
25160
  };
25124
- const ROBINHOOD_SPY_USDG_POOL_DEPLOYMENT_BLOCK = 62901925n;
25125
- const ROBINHOOD_SPY_USDG_POOL_INFO = {
25161
+ const ROBINHOOD_SPY_USDG_30BPS_POOL_DEPLOYMENT_BLOCK = 62901925n;
25162
+ const ROBINHOOD_SPY_USDG_30BPS_POOL_INFO = {
25126
25163
  maxPriceDeviation: MAX_PRICE_DEVIATION,
25127
- pool: ROBINHOOD_DEPLOYMENT$1.panoptic.pool.panopticPool,
25128
- token0: getSpyUsdgMarket(ROBINHOOD_DEPLOYMENT$1).currency0,
25129
- token1: getSpyUsdgMarket(ROBINHOOD_DEPLOYMENT$1).currency1,
25130
- positionScanFromBlock: ROBINHOOD_SPY_USDG_POOL_DEPLOYMENT_BLOCK
25164
+ pool: "0x00000000989bcb6f24af4a1Ab2A6d6a31c98A58E",
25165
+ token0: "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C",
25166
+ token1: "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
25167
+ positionScanFromBlock: ROBINHOOD_SPY_USDG_30BPS_POOL_DEPLOYMENT_BLOCK
25131
25168
  };
25169
+ const ROBINHOOD_SPY_USDG_5BPS_POOL_DEPLOYMENT_BLOCK = 72457529n;
25170
+ const ROBINHOOD_SPY_USDG_5BPS_POOL_INFO = {
25171
+ maxPriceDeviation: MAX_PRICE_DEVIATION,
25172
+ pool: "0x000000000c21b38c54AcA7c7145Df01ff09d69Bb",
25173
+ token0: ROBINHOOD_SPY_USDG_30BPS_POOL_INFO.token0,
25174
+ token1: ROBINHOOD_SPY_USDG_30BPS_POOL_INFO.token1,
25175
+ positionScanFromBlock: ROBINHOOD_SPY_USDG_5BPS_POOL_DEPLOYMENT_BLOCK
25176
+ };
25177
+ const ROBINHOOD_SPY_USDG_POOL_DEPLOYMENT_BLOCK = ROBINHOOD_SPY_USDG_5BPS_POOL_DEPLOYMENT_BLOCK;
25178
+ const ROBINHOOD_SPY_USDG_POOL_INFO = ROBINHOOD_SPY_USDG_5BPS_POOL_INFO;
25132
25179
  /** Accountant order used by the v3-authorization release. */
25133
25180
  const MAINNET_DEFAULT_POOL_INFOS = [MAINNET_ETH_USDC_V4_POOL_INFO, MAINNET_USDC_WETH_5BPS_V3_POOL_INFO];
25134
25181
  const MAINNET_USDC_PLP_POOL_INFOS = [
@@ -25565,130 +25612,159 @@ const UsdcPlpVaultSepoliaProdConfig = {
25565
25612
 
25566
25613
  //#endregion
25567
25614
  //#region src/hypoVault/hypoVaultManagerArtifacts/RobinhoodUSDGPLPStrategistLeaves.ts
25568
- const deployment$1 = requireChainDeployment(ROBINHOOD_CHAIN_ID);
25569
- const vault$1 = deployment$1.hypovault.vaults.usdgPlpVault;
25570
- const manager$1 = deployment$1.hypovault.managers.usdgPlpVaultManager;
25571
- if (vault$1 === void 0 || manager$1 === void 0) throw new Error("Missing Robinhood USDG PLP vault deployment addresses");
25572
- const pool = deployment$1.panoptic.pool.panopticPool;
25573
- const poSpy = deployment$1.panoptic.pool.collateralTracker0;
25574
- const poUsdg = deployment$1.panoptic.pool.collateralTracker1;
25575
- const spy = ROBINHOOD_SPY_USDG_POOL_INFO.token0;
25576
- const usdg = ROBINHOOD_SPY_USDG_POOL_INFO.token1;
25615
+ const deployment$2 = requireChainDeployment(ROBINHOOD_CHAIN_ID);
25616
+ const vault$1 = deployment$2.hypovault.vaults.usdgPlpVault;
25617
+ const manager$1 = deployment$2.hypovault.managers.usdgPlpVaultManager;
25618
+ const oldPool = deployment$2.panoptic.additionalPools?.spyUsdg30bpsV4;
25619
+ const newPool = deployment$2.panoptic.additionalPools?.spyUsdg5bpsV4;
25620
+ if (vault$1 === void 0 || manager$1 === void 0 || oldPool === void 0 || newPool === void 0) throw new Error("Missing Robinhood USDG PLP dual-generation deployment addresses");
25621
+ const vaultAddress$2 = vault$1;
25622
+ const managerAddress$1 = manager$1;
25623
+ const oldPoolAddresses = oldPool;
25624
+ const newPoolAddresses = newPool;
25577
25625
  const dispatchSignature = "dispatch(uint256[],uint256[],uint128[],int24[3][],bool,uint256)";
25578
- const trackerLeaves = [
25579
- {
25580
- description: "Approve poSPY to spend SPY",
25581
- target: spy,
25582
- functionSignature: "approve(address,uint256)",
25583
- addressArguments: [poSpy],
25584
- canSendValue: false
25585
- },
25586
- {
25587
- description: "Deposit SPY for poSPY",
25588
- target: poSpy,
25589
- functionSignature: "deposit(uint256,address)",
25590
- addressArguments: [vault$1],
25591
- canSendValue: false
25592
- },
25593
- {
25594
- description: "Withdraw SPY from poSPY",
25595
- target: poSpy,
25596
- functionSignature: "withdraw(uint256,address,address)",
25597
- addressArguments: [vault$1, vault$1],
25598
- canSendValue: false
25599
- },
25600
- {
25601
- description: "Withdraw SPY from poSPY (with open positions)",
25602
- target: poSpy,
25603
- functionSignature: "withdraw(uint256,address,address,uint256[],bool)",
25604
- addressArguments: [vault$1, vault$1],
25605
- canSendValue: false
25606
- },
25607
- {
25608
- description: "Mint poSPY using SPY",
25609
- target: poSpy,
25610
- functionSignature: "mint(uint256,address)",
25611
- addressArguments: [vault$1],
25612
- canSendValue: false
25613
- },
25614
- {
25615
- description: "Redeem poSPY for SPY",
25616
- target: poSpy,
25617
- functionSignature: "redeem(uint256,address,address)",
25618
- addressArguments: [vault$1, vault$1],
25619
- canSendValue: false
25620
- },
25621
- {
25622
- description: "Approve poUSDG to spend USDG",
25623
- target: usdg,
25624
- functionSignature: "approve(address,uint256)",
25625
- addressArguments: [poUsdg],
25626
- canSendValue: false
25627
- },
25628
- {
25629
- description: "Deposit USDG for poUSDG",
25630
- target: poUsdg,
25631
- functionSignature: "deposit(uint256,address)",
25632
- addressArguments: [vault$1],
25633
- canSendValue: false
25634
- },
25635
- {
25636
- description: "Withdraw USDG from poUSDG",
25637
- target: poUsdg,
25638
- functionSignature: "withdraw(uint256,address,address)",
25639
- addressArguments: [vault$1, vault$1],
25640
- canSendValue: false
25641
- },
25642
- {
25643
- description: "Withdraw USDG from poUSDG (with open positions)",
25644
- target: poUsdg,
25645
- functionSignature: "withdraw(uint256,address,address,uint256[],bool)",
25646
- addressArguments: [vault$1, vault$1],
25647
- canSendValue: false
25648
- },
25649
- {
25650
- description: "Mint poUSDG using USDG",
25651
- target: poUsdg,
25652
- functionSignature: "mint(uint256,address)",
25653
- addressArguments: [vault$1],
25654
- canSendValue: false
25655
- },
25656
- {
25657
- description: "Redeem poUSDG for USDG",
25658
- target: poUsdg,
25659
- functionSignature: "redeem(uint256,address,address)",
25660
- addressArguments: [vault$1, vault$1],
25626
+ function createPolicy({ id, poolInfo, collateralTracker0, collateralTracker1 }) {
25627
+ const trackerLeaves = [
25628
+ {
25629
+ description: "Approve poSPY to spend SPY",
25630
+ target: poolInfo.token0,
25631
+ functionSignature: "approve(address,uint256)",
25632
+ addressArguments: [collateralTracker0],
25633
+ canSendValue: false
25634
+ },
25635
+ {
25636
+ description: "Deposit SPY for poSPY",
25637
+ target: collateralTracker0,
25638
+ functionSignature: "deposit(uint256,address)",
25639
+ addressArguments: [vaultAddress$2],
25640
+ canSendValue: false
25641
+ },
25642
+ {
25643
+ description: "Withdraw SPY from poSPY",
25644
+ target: collateralTracker0,
25645
+ functionSignature: "withdraw(uint256,address,address)",
25646
+ addressArguments: [vaultAddress$2, vaultAddress$2],
25647
+ canSendValue: false
25648
+ },
25649
+ {
25650
+ description: "Withdraw SPY from poSPY (with open positions)",
25651
+ target: collateralTracker0,
25652
+ functionSignature: "withdraw(uint256,address,address,uint256[],bool)",
25653
+ addressArguments: [vaultAddress$2, vaultAddress$2],
25654
+ canSendValue: false
25655
+ },
25656
+ {
25657
+ description: "Mint poSPY using SPY",
25658
+ target: collateralTracker0,
25659
+ functionSignature: "mint(uint256,address)",
25660
+ addressArguments: [vaultAddress$2],
25661
+ canSendValue: false
25662
+ },
25663
+ {
25664
+ description: "Redeem poSPY for SPY",
25665
+ target: collateralTracker0,
25666
+ functionSignature: "redeem(uint256,address,address)",
25667
+ addressArguments: [vaultAddress$2, vaultAddress$2],
25668
+ canSendValue: false
25669
+ },
25670
+ {
25671
+ description: "Approve poUSDG to spend USDG",
25672
+ target: poolInfo.token1,
25673
+ functionSignature: "approve(address,uint256)",
25674
+ addressArguments: [collateralTracker1],
25675
+ canSendValue: false
25676
+ },
25677
+ {
25678
+ description: "Deposit USDG for poUSDG",
25679
+ target: collateralTracker1,
25680
+ functionSignature: "deposit(uint256,address)",
25681
+ addressArguments: [vaultAddress$2],
25682
+ canSendValue: false
25683
+ },
25684
+ {
25685
+ description: "Withdraw USDG from poUSDG",
25686
+ target: collateralTracker1,
25687
+ functionSignature: "withdraw(uint256,address,address)",
25688
+ addressArguments: [vaultAddress$2, vaultAddress$2],
25689
+ canSendValue: false
25690
+ },
25691
+ {
25692
+ description: "Withdraw USDG from poUSDG (with open positions)",
25693
+ target: collateralTracker1,
25694
+ functionSignature: "withdraw(uint256,address,address,uint256[],bool)",
25695
+ addressArguments: [vaultAddress$2, vaultAddress$2],
25696
+ canSendValue: false
25697
+ },
25698
+ {
25699
+ description: "Mint poUSDG using USDG",
25700
+ target: collateralTracker1,
25701
+ functionSignature: "mint(uint256,address)",
25702
+ addressArguments: [vaultAddress$2],
25703
+ canSendValue: false
25704
+ },
25705
+ {
25706
+ description: "Redeem poUSDG for USDG",
25707
+ target: collateralTracker1,
25708
+ functionSignature: "redeem(uint256,address,address)",
25709
+ addressArguments: [vaultAddress$2, vaultAddress$2],
25710
+ canSendValue: false
25711
+ }
25712
+ ];
25713
+ const dispatchLeaf = {
25714
+ description: "Dispatch mint/burn options on PanopticPool",
25715
+ target: poolInfo.pool,
25716
+ functionSignature: dispatchSignature,
25717
+ addressArguments: [],
25661
25718
  canSendValue: false
25662
- }
25663
- ];
25664
- const dispatchLeaf = {
25665
- description: "Dispatch mint/burn options on PanopticPool",
25666
- target: pool,
25667
- functionSignature: dispatchSignature,
25668
- addressArguments: [],
25669
- canSendValue: false
25670
- };
25671
- const windDownLeaves = trackerLeaves.filter(({ functionSignature }) => functionSignature.startsWith("withdraw(") || functionSignature.startsWith("redeem("));
25672
- const ROBINHOOD_USDG_PLP_POOL_POLICY = [{
25673
- id: "spy-usdg-v4",
25674
- mode: "primary",
25675
- poolInfo: ROBINHOOD_SPY_USDG_POOL_INFO,
25676
- fullLeafDefinitions: [...trackerLeaves, dispatchLeaf],
25677
- windDownLeafDefinitions: [...windDownLeaves, dispatchLeaf]
25678
- }];
25679
- const ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY = compileVaultPoolPolicy({ pools: ROBINHOOD_USDG_PLP_POOL_POLICY });
25680
- const RobinhoodUSDGPLPStrategistLeaves = createStrategistLeavesArtifact({
25681
- accountantAddress: deployment$1.hypovault.core.accountant,
25682
- boringVaultAddress: vault$1,
25683
- decoderAndSanitizerAddress: deployment$1.hypovault.core.collateralTrackerDecoderAndSanitizer,
25684
- managerAddress: manager$1
25685
- }, ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY.strategistLeafDefinitions);
25719
+ };
25720
+ const windDownLeaves = trackerLeaves.filter(({ functionSignature }) => functionSignature.startsWith("withdraw(") || functionSignature.startsWith("redeem("));
25721
+ return [{
25722
+ id,
25723
+ mode: "primary",
25724
+ poolInfo,
25725
+ fullLeafDefinitions: [...trackerLeaves, dispatchLeaf],
25726
+ windDownLeafDefinitions: [...windDownLeaves, dispatchLeaf]
25727
+ }];
25728
+ }
25729
+ function createArtifact(policy) {
25730
+ const compiled = compileVaultPoolPolicy({ pools: policy });
25731
+ return {
25732
+ compiled,
25733
+ artifact: createStrategistLeavesArtifact({
25734
+ accountantAddress: deployment$2.hypovault.core.accountant,
25735
+ boringVaultAddress: vaultAddress$2,
25736
+ decoderAndSanitizerAddress: deployment$2.hypovault.core.collateralTrackerDecoderAndSanitizer,
25737
+ managerAddress: managerAddress$1
25738
+ }, compiled.strategistLeafDefinitions)
25739
+ };
25740
+ }
25741
+ const ROBINHOOD_USDG_PLP_30BPS_POOL_POLICY = createPolicy({
25742
+ id: "spy-usdg-30bps-v4",
25743
+ poolInfo: ROBINHOOD_SPY_USDG_30BPS_POOL_INFO,
25744
+ collateralTracker0: oldPoolAddresses.collateralTracker0,
25745
+ collateralTracker1: oldPoolAddresses.collateralTracker1
25746
+ });
25747
+ const ROBINHOOD_USDG_PLP_5BPS_POOL_POLICY = createPolicy({
25748
+ id: "spy-usdg-5bps-v4",
25749
+ poolInfo: ROBINHOOD_SPY_USDG_5BPS_POOL_INFO,
25750
+ collateralTracker0: newPoolAddresses.collateralTracker0,
25751
+ collateralTracker1: newPoolAddresses.collateralTracker1
25752
+ });
25753
+ const previous = createArtifact(ROBINHOOD_USDG_PLP_30BPS_POOL_POLICY);
25754
+ const next = createArtifact(ROBINHOOD_USDG_PLP_5BPS_POOL_POLICY);
25755
+ const ROBINHOOD_USDG_PLP_30BPS_COMPILED_POOL_POLICY = previous.compiled;
25756
+ const ROBINHOOD_USDG_PLP_5BPS_COMPILED_POOL_POLICY = next.compiled;
25757
+ const RobinhoodUSDGPLP30bpsStrategistLeaves = previous.artifact;
25758
+ const RobinhoodUSDGPLP5bpsStrategistLeaves = next.artifact;
25759
+ const ROBINHOOD_USDG_PLP_POOL_POLICY = ROBINHOOD_USDG_PLP_5BPS_POOL_POLICY;
25760
+ const ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY = ROBINHOOD_USDG_PLP_5BPS_COMPILED_POOL_POLICY;
25761
+ const RobinhoodUSDGPLPStrategistLeaves = RobinhoodUSDGPLP5bpsStrategistLeaves;
25686
25762
 
25687
25763
  //#endregion
25688
25764
  //#region src/hypoVault/hypoVaultManagerConfigs/usdgPlpVaultRobinhoodProdConfig.ts
25689
- const deployment = requireChainDeployment(ROBINHOOD_CHAIN_ID);
25690
- const vault = deployment.hypovault.vaults.usdgPlpVault;
25691
- const manager = deployment.hypovault.managers.usdgPlpVaultManager;
25765
+ const deployment$1 = requireChainDeployment(ROBINHOOD_CHAIN_ID);
25766
+ const vault = deployment$1.hypovault.vaults.usdgPlpVault;
25767
+ const manager = deployment$1.hypovault.managers.usdgPlpVaultManager;
25692
25768
  if (vault === void 0 || manager === void 0) throw new Error("Missing Robinhood USDG PLP vault deployment addresses");
25693
25769
  const UsdgPlpVaultRobinhoodProdConfig = {
25694
25770
  deployment: "prod",
@@ -25703,19 +25779,19 @@ const UsdgPlpVaultRobinhoodProdConfig = {
25703
25779
  chainId: ROBINHOOD_CHAIN_ID,
25704
25780
  hypoVaultAddress: vault,
25705
25781
  addresses: {
25706
- ethUsdc500bpsV4Collateral0: deployment.panoptic.pool.collateralTracker0,
25707
- ethUsdc500bpsV4Collateral1: deployment.panoptic.pool.collateralTracker1,
25708
- ethUsdc500bpsV4PanopticPool: deployment.panoptic.pool.panopticPool,
25782
+ ethUsdc500bpsV4Collateral0: deployment$1.panoptic.pool.collateralTracker0,
25783
+ ethUsdc500bpsV4Collateral1: deployment$1.panoptic.pool.collateralTracker1,
25784
+ ethUsdc500bpsV4PanopticPool: deployment$1.panoptic.pool.panopticPool,
25709
25785
  hypoVaultManagerWithMerkleVerification: manager,
25710
25786
  hypoVault: vault,
25711
- underlyingToken: getSpyUsdgMarket(deployment).currency1
25787
+ underlyingToken: getSpyUsdgMarket(deployment$1).currency1
25712
25788
  },
25713
25789
  automation: {
25714
25790
  primaryPool: ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY.automation.primaryPool,
25715
25791
  windDownPools: [...ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY.automation.windDownPools]
25716
25792
  },
25717
25793
  manualTxDefaults: { collateralAllocations: [{
25718
- trackerAddress: deployment.panoptic.pool.collateralTracker1,
25794
+ trackerAddress: deployment$1.panoptic.pool.collateralTracker1,
25719
25795
  allocationBps: 1e4
25720
25796
  }] },
25721
25797
  deltaHedge: {
@@ -26170,8 +26246,8 @@ const ALL_HYPO_VAULT_CONFIGS = [
26170
26246
  UsdcPlpVaultMainnetLegacyConfig,
26171
26247
  UsdgPlpVaultRobinhoodProdConfig
26172
26248
  ];
26173
- function getHypoVaultConfigForVault(vaultAddress$1, chainId, options) {
26174
- const vaultLower = vaultAddress$1.toLowerCase();
26249
+ function getHypoVaultConfigForVault(vaultAddress$3, chainId, options) {
26250
+ const vaultLower = vaultAddress$3.toLowerCase();
26175
26251
  const matchingConfigs = ALL_HYPO_VAULT_CONFIGS.filter((c) => c.hypoVaultAddress?.toLowerCase() === vaultLower && c.chainId === chainId);
26176
26252
  if (matchingConfigs.length === 0) return void 0;
26177
26253
  const preferredDeployment = options?.preferredDeployment;
@@ -26493,7 +26569,7 @@ function isSnapshotCandidateEvent(event) {
26493
26569
  return event.transactionHash !== null && event.blockNumber !== null && event.logIndex !== null;
26494
26570
  }
26495
26571
  function decodeSnapshotTransaction(params) {
26496
- const { account, pool: pool$1, rolesContext } = params;
26572
+ const { account, pool, rolesContext } = params;
26497
26573
  let dispatchInput = params.input;
26498
26574
  let dispatchSender = params.from;
26499
26575
  if (rolesContext) {
@@ -26504,14 +26580,14 @@ function decodeSnapshotTransaction(params) {
26504
26580
  data: params.input
26505
26581
  });
26506
26582
  const [target, value, data, operation, roleKey, shouldRevert] = decodedRoleCall.args;
26507
- if (!pool$1 || getAddress(target) !== getAddress(pool$1) || value !== 0n || operation !== 0 || roleKey.toLowerCase() !== rolesContext.roleKey.toLowerCase() || !shouldRevert) return null;
26583
+ if (!pool || getAddress(target) !== getAddress(pool) || value !== 0n || operation !== 0 || roleKey.toLowerCase() !== rolesContext.roleKey.toLowerCase() || !shouldRevert) return null;
26508
26584
  dispatchInput = data;
26509
26585
  if (!account) return null;
26510
26586
  dispatchSender = account;
26511
26587
  } catch {
26512
26588
  return null;
26513
26589
  }
26514
- } else if (pool$1 && (params.to === null || getAddress(params.to) !== getAddress(pool$1))) return null;
26590
+ } else if (pool && (params.to === null || getAddress(params.to) !== getAddress(pool))) return null;
26515
26591
  const candidates = decodeAllDispatchCalldata(dispatchInput);
26516
26592
  if (candidates.length === 0) return null;
26517
26593
  return account ? selectDispatchForAccount(candidates, account, dispatchSender) : candidates[candidates.length - 1];
@@ -26539,7 +26615,7 @@ function decodeSnapshotTransaction(params) {
26539
26615
  * ```
26540
26616
  */
26541
26617
  async function recoverSnapshotFromTx(params) {
26542
- const { client, transactionHash, account, pool: pool$1, rolesContext } = params;
26618
+ const { client, transactionHash, account, pool, rolesContext } = params;
26543
26619
  const tx = await client.getTransaction({ hash: transactionHash });
26544
26620
  if (tx.blockNumber == null) return null;
26545
26621
  const decoded = decodeSnapshotTransaction({
@@ -26547,7 +26623,7 @@ async function recoverSnapshotFromTx(params) {
26547
26623
  from: tx.from,
26548
26624
  to: tx.to,
26549
26625
  account,
26550
- pool: pool$1,
26626
+ pool,
26551
26627
  rolesContext
26552
26628
  });
26553
26629
  if (!decoded) return null;
@@ -26837,12 +26913,18 @@ const MainnetWETHPLPLegacyVaultPoolInfos = {
26837
26913
 
26838
26914
  //#endregion
26839
26915
  //#region src/hypoVault/hypoVaultManagerArtifacts/RobinhoodUSDGPLPVaultPoolInfos.ts
26840
- const vaultAddress = requireChainDeployment(ROBINHOOD_CHAIN_ID).hypovault.vaults.usdgPlpVault;
26841
- if (vaultAddress === void 0) throw new Error("Missing Robinhood USDG PLP vault address");
26842
- const RobinhoodUSDGPLPVaultPoolInfos = {
26843
- vaultAddress,
26844
- poolInfos: ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY.poolInfos.map((poolInfo) => ({ ...poolInfo }))
26845
- };
26916
+ const vaultAddress$1 = requireChainDeployment(ROBINHOOD_CHAIN_ID).hypovault.vaults.usdgPlpVault;
26917
+ if (vaultAddress$1 === void 0) throw new Error("Missing Robinhood USDG PLP vault address");
26918
+ const resolvedVaultAddress$1 = vaultAddress$1;
26919
+ function createVaultPoolInfos(poolInfos) {
26920
+ return {
26921
+ vaultAddress: resolvedVaultAddress$1,
26922
+ poolInfos: poolInfos.map((poolInfo) => ({ ...poolInfo }))
26923
+ };
26924
+ }
26925
+ const RobinhoodUSDGPLP30bpsVaultPoolInfos = createVaultPoolInfos(ROBINHOOD_USDG_PLP_30BPS_COMPILED_POOL_POLICY.poolInfos);
26926
+ const RobinhoodUSDGPLP5bpsVaultPoolInfos = createVaultPoolInfos(ROBINHOOD_USDG_PLP_5BPS_COMPILED_POOL_POLICY.poolInfos);
26927
+ const RobinhoodUSDGPLPVaultPoolInfos = RobinhoodUSDGPLP5bpsVaultPoolInfos;
26846
26928
 
26847
26929
  //#endregion
26848
26930
  //#region src/hypoVault/hypoVaultManagerArtifacts/SepoliaUSDCPLPVaultPoolInfos.ts
@@ -26869,7 +26951,7 @@ const SepoliaWETHPLPVaultPoolInfos = {
26869
26951
  const MAINNET_DEPLOYMENT$2 = requireChainDeployment(MAINNET_CHAIN_ID);
26870
26952
  /** Block containing the successful V3 accountant-hash and manager-root update. */
26871
26953
  const MAINNET_V3_AUTHORIZATION_BLOCK = 25704951n;
26872
- const POOL_INFO_ARRAY_ABI$1 = {
26954
+ const POOL_INFO_ARRAY_ABI$2 = {
26873
26955
  type: "tuple[]",
26874
26956
  components: [
26875
26957
  {
@@ -26910,7 +26992,7 @@ function createVaultTransition(transition) {
26910
26992
  };
26911
26993
  }
26912
26994
  function hashPoolInfos$1(poolInfos) {
26913
- return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI$1], [poolInfos.map((poolInfo) => ({
26995
+ return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI$2], [poolInfos.map((poolInfo) => ({
26914
26996
  pool: getAddress(poolInfo.pool),
26915
26997
  token0: getAddress(poolInfo.token0),
26916
26998
  token1: getAddress(poolInfo.token1),
@@ -26943,14 +27025,14 @@ const MAINNET_V3_AUTHORIZATION_TRANSITIONS = [createVaultTransition({
26943
27025
  current: generation(MainnetUSDCPLPVaultPoolInfos.poolInfos, MainnetUSDCPLPStrategistLeaves)
26944
27026
  })];
26945
27027
  const authorizationCacheByClient = new WeakMap();
26946
- function findTransition(chainId, vaultAddress$1) {
27028
+ function findTransition(chainId, vaultAddress$3) {
26947
27029
  if (chainId !== MAINNET_CHAIN_ID) return null;
26948
- const normalizedVault = vaultAddress$1.toLowerCase();
27030
+ const normalizedVault = vaultAddress$3.toLowerCase();
26949
27031
  return MAINNET_V3_AUTHORIZATION_TRANSITIONS.find((transition) => transition.vaultAddress.toLowerCase() === normalizedVault) ?? null;
26950
27032
  }
26951
27033
  /** Returns both known generations without reading chain state. */
26952
- function getMainnetV3AuthorizationGenerations({ chainId, vaultAddress: vaultAddress$1 }) {
26953
- const transition = findTransition(chainId, vaultAddress$1);
27034
+ function getMainnetV3AuthorizationGenerations({ chainId, vaultAddress: vaultAddress$3 }) {
27035
+ const transition = findTransition(chainId, vaultAddress$3);
26954
27036
  return transition === null ? null : {
26955
27037
  previous: transition.previous,
26956
27038
  next: transition.next,
@@ -26962,8 +27044,8 @@ function getMainnetV3AuthorizationGenerations({ chainId, vaultAddress: vaultAddr
26962
27044
  * Live callers should use the compiled current artifacts directly; this selector exists for
26963
27045
  * block-pinned NAV and manager-input reconstruction across the V3 authorization boundary.
26964
27046
  */
26965
- function getMainnetV3AuthorizationArtifactsAtBlock({ chainId, vaultAddress: vaultAddress$1, blockNumber }) {
26966
- const transition = findTransition(chainId, vaultAddress$1);
27047
+ function getMainnetV3AuthorizationArtifactsAtBlock({ chainId, vaultAddress: vaultAddress$3, blockNumber }) {
27048
+ const transition = findTransition(chainId, vaultAddress$3);
26967
27049
  if (transition === null) return null;
26968
27050
  const version = blockNumber < transition.activationBlockNumber ? "previous" : "next";
26969
27051
  return {
@@ -26979,11 +27061,11 @@ function getMainnetV3AuthorizationArtifactsAtBlock({ chainId, vaultAddress: vaul
26979
27061
  * Every authorization release must add its generation to this transition table before
26980
27062
  * the on-chain hashes change, so startup and release verification keeps recognizing it.
26981
27063
  */
26982
- async function resolveMainnetV3AuthorizationArtifacts({ viemClient, chainId, vaultAddress: vaultAddress$1, blockNumber }) {
26983
- const transition = findTransition(chainId, vaultAddress$1);
27064
+ async function resolveMainnetV3AuthorizationArtifacts({ viemClient, chainId, vaultAddress: vaultAddress$3, blockNumber }) {
27065
+ const transition = findTransition(chainId, vaultAddress$3);
26984
27066
  if (transition === null) return null;
26985
27067
  const resolvedBlockNumber = blockNumber ?? await getBlockNumber(viemClient);
26986
- const cacheKey = `${chainId}:${vaultAddress$1.toLowerCase()}:${resolvedBlockNumber.toString()}`;
27068
+ const cacheKey = `${chainId}:${vaultAddress$3.toLowerCase()}:${resolvedBlockNumber.toString()}`;
26987
27069
  const clientCache = authorizationCacheByClient.get(viemClient);
26988
27070
  const cached = clientCache?.get(cacheKey);
26989
27071
  if (cached !== void 0) return cached;
@@ -27020,7 +27102,7 @@ const MAINNET_POOL_RETIREMENT_BLOCK = 25898997n;
27020
27102
  const MAINNET_POOL_RETIREMENT_TRANSACTION = "0xfca6a6dd0f081649dd6f50496175a58e6a119d574b594390beab23618b05ba2c";
27021
27103
  const ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK = 63972776n;
27022
27104
  const ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION = "0x738c8a6d30a45f9b71d2d6260aa1c04aff558489631b3a9c6ccd5f49e0f57df4";
27023
- const POOL_INFO_ARRAY_ABI = {
27105
+ const POOL_INFO_ARRAY_ABI$1 = {
27024
27106
  type: "tuple[]",
27025
27107
  components: [
27026
27108
  {
@@ -27042,7 +27124,7 @@ const POOL_INFO_ARRAY_ABI = {
27042
27124
  ]
27043
27125
  };
27044
27126
  function hashPoolInfos(poolInfos) {
27045
- return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI], [poolInfos.map((poolInfo) => ({
27127
+ return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI$1], [poolInfos.map((poolInfo) => ({
27046
27128
  pool: getAddress(poolInfo.pool),
27047
27129
  token0: getAddress(poolInfo.token0),
27048
27130
  token1: getAddress(poolInfo.token1),
@@ -27139,8 +27221,8 @@ const MAINNET_VAULT_HISTORIES = [{
27139
27221
  ]
27140
27222
  }];
27141
27223
  const ROBINHOOD_VAULT_HISTORIES = [{
27142
- vaultAddress: RobinhoodUSDGPLPVaultPoolInfos.vaultAddress,
27143
- poolConfigurations: [poolConfiguration(ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK, ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION, RobinhoodUSDGPLPVaultPoolInfos.poolInfos)],
27224
+ vaultAddress: RobinhoodUSDGPLP30bpsVaultPoolInfos.vaultAddress,
27225
+ poolConfigurations: [poolConfiguration(ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK, ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION, RobinhoodUSDGPLP30bpsVaultPoolInfos.poolInfos)],
27144
27226
  managerRootTransitions: [{
27145
27227
  activationBlockNumber: ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK,
27146
27228
  transactionHash: ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION,
@@ -27163,10 +27245,10 @@ function copyHistory(history) {
27163
27245
  managerRootTransitions: history.managerRootTransitions.map(copyManagerRootTransition)
27164
27246
  };
27165
27247
  }
27166
- function findHistory(chainId, vaultAddress$1) {
27248
+ function findHistory(chainId, vaultAddress$3) {
27167
27249
  const histories = chainId === MAINNET_CHAIN_ID ? MAINNET_VAULT_HISTORIES : chainId === ROBINHOOD_CHAIN_ID ? ROBINHOOD_VAULT_HISTORIES : null;
27168
27250
  if (histories === null) return null;
27169
- const normalizedVault = vaultAddress$1.toLowerCase();
27251
+ const normalizedVault = vaultAddress$3.toLowerCase();
27170
27252
  const history = histories.find((candidate) => candidate.vaultAddress.toLowerCase() === normalizedVault);
27171
27253
  return history === void 0 ? null : copyHistory(history);
27172
27254
  }
@@ -27177,19 +27259,117 @@ function latestAtBlock(values, blockNumber) {
27177
27259
  }
27178
27260
  return null;
27179
27261
  }
27180
- function getMainnetVaultPoolConfigurationAtBlock({ chainId, vaultAddress: vaultAddress$1, blockNumber }) {
27181
- const history = findHistory(chainId, vaultAddress$1);
27262
+ function getVaultPoolConfigurationAtBlock({ chainId, vaultAddress: vaultAddress$3, blockNumber }) {
27263
+ const history = findHistory(chainId, vaultAddress$3);
27182
27264
  return history === null ? null : latestAtBlock(history.poolConfigurations, blockNumber);
27183
27265
  }
27184
- function getMainnetVaultManagerRootAtBlock({ chainId, vaultAddress: vaultAddress$1, blockNumber }) {
27185
- const history = findHistory(chainId, vaultAddress$1);
27266
+ function getVaultManagerRootAtBlock({ chainId, vaultAddress: vaultAddress$3, blockNumber }) {
27267
+ const history = findHistory(chainId, vaultAddress$3);
27186
27268
  return history === null ? null : latestAtBlock(history.managerRootTransitions, blockNumber);
27187
27269
  }
27188
- function getMainnetVaultPoolConfigurationHistory({ chainId, vaultAddress: vaultAddress$1 }) {
27189
- return findHistory(chainId, vaultAddress$1)?.poolConfigurations ?? null;
27270
+ function getVaultPoolConfigurationHistory({ chainId, vaultAddress: vaultAddress$3 }) {
27271
+ return findHistory(chainId, vaultAddress$3)?.poolConfigurations ?? null;
27272
+ }
27273
+ function getVaultManagerRootHistory({ chainId, vaultAddress: vaultAddress$3 }) {
27274
+ return findHistory(chainId, vaultAddress$3)?.managerRootTransitions ?? null;
27275
+ }
27276
+ const getMainnetVaultPoolConfigurationAtBlock = getVaultPoolConfigurationAtBlock;
27277
+ const getMainnetVaultManagerRootAtBlock = getVaultManagerRootAtBlock;
27278
+ const getMainnetVaultPoolConfigurationHistory = getVaultPoolConfigurationHistory;
27279
+ const getMainnetVaultManagerRootHistory = getVaultManagerRootHistory;
27280
+
27281
+ //#endregion
27282
+ //#region src/hypoVault/robinhoodSpyUsdgAuthorization.ts
27283
+ const deployment = requireChainDeployment(ROBINHOOD_CHAIN_ID);
27284
+ const vaultAddress = deployment.hypovault.vaults.usdgPlpVault;
27285
+ const managerAddress = deployment.hypovault.managers.usdgPlpVaultManager;
27286
+ const strategistAddress = deployment.hypovault.turnkeySigners.usdgPlpVaultManager;
27287
+ if (vaultAddress === void 0 || managerAddress === void 0 || strategistAddress === void 0) throw new Error("Missing Robinhood USDG authorization addresses");
27288
+ const resolvedVaultAddress = vaultAddress;
27289
+ const resolvedManagerAddress = managerAddress;
27290
+ const resolvedStrategistAddress = strategistAddress;
27291
+ const POOL_INFO_ARRAY_ABI = {
27292
+ type: "tuple[]",
27293
+ components: [
27294
+ {
27295
+ name: "pool",
27296
+ type: "address"
27297
+ },
27298
+ {
27299
+ name: "token0",
27300
+ type: "address"
27301
+ },
27302
+ {
27303
+ name: "token1",
27304
+ type: "address"
27305
+ },
27306
+ {
27307
+ name: "maxPriceDeviation",
27308
+ type: "int24"
27309
+ }
27310
+ ]
27311
+ };
27312
+ const ROBINHOOD_USDG_30BPS_MANAGE_ROOT = "0x5ef821042a85fea05901e4612e8a8d60efd2468ca08f0810d5691e23ea98967f";
27313
+ const ROBINHOOD_USDG_30BPS_POOL_HASH = "0x12b0d7232a6250eb3cf61040edbf4015717756c4819926aedc3670a4217e56cc";
27314
+ const ROBINHOOD_USDG_5BPS_POOL_HASH = "0xc5dcfa7ae982f641493c9f848bb93cb138a1ad5b3bc13c309b7625850af8562b";
27315
+ function hashRobinhoodSpyUsdgPoolInfos(poolInfos) {
27316
+ return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI], [poolInfos.map((poolInfo) => ({
27317
+ pool: getAddress(poolInfo.pool),
27318
+ token0: getAddress(poolInfo.token0),
27319
+ token1: getAddress(poolInfo.token1),
27320
+ maxPriceDeviation: poolInfo.maxPriceDeviation
27321
+ }))]));
27322
+ }
27323
+ const generations = [{
27324
+ version: "30bps",
27325
+ poolInfos: RobinhoodUSDGPLP30bpsVaultPoolInfos.poolInfos,
27326
+ strategistLeaves: RobinhoodUSDGPLP30bpsStrategistLeaves,
27327
+ poolHash: ROBINHOOD_USDG_30BPS_POOL_HASH,
27328
+ manageRoot: ROBINHOOD_USDG_30BPS_MANAGE_ROOT
27329
+ }, {
27330
+ version: "5bps",
27331
+ poolInfos: RobinhoodUSDGPLP5bpsVaultPoolInfos.poolInfos,
27332
+ strategistLeaves: RobinhoodUSDGPLP5bpsStrategistLeaves,
27333
+ poolHash: ROBINHOOD_USDG_5BPS_POOL_HASH,
27334
+ manageRoot: RobinhoodUSDGPLP5bpsStrategistLeaves.metadata.ManageRoot
27335
+ }];
27336
+ for (const generation$1 of generations) {
27337
+ const computedPoolHash = hashRobinhoodSpyUsdgPoolInfos(generation$1.poolInfos);
27338
+ if (computedPoolHash !== generation$1.poolHash) throw new Error(`Robinhood ${generation$1.version} pool hash mismatch: expected ${generation$1.poolHash}, computed ${computedPoolHash}`);
27339
+ }
27340
+ if (RobinhoodUSDGPLP30bpsStrategistLeaves.metadata.ManageRoot !== ROBINHOOD_USDG_30BPS_MANAGE_ROOT) throw new Error("Robinhood 30bps strategist artifact no longer reproduces the live manage root");
27341
+ function getRobinhoodSpyUsdgAuthorizationGenerations() {
27342
+ return generations;
27190
27343
  }
27191
- function getMainnetVaultManagerRootHistory({ chainId, vaultAddress: vaultAddress$1 }) {
27192
- return findHistory(chainId, vaultAddress$1)?.managerRootTransitions ?? null;
27344
+ function resolveRobinhoodSpyUsdgAuthorizationState({ blockNumber, poolHash, manageRoot }) {
27345
+ const generation$1 = generations.find((candidate) => candidate.poolHash === poolHash && candidate.manageRoot === manageRoot);
27346
+ if (generation$1 === void 0) throw new Error(`Unsupported or inconsistent Robinhood SPY/USDG authorization state: accountant pool hash ${poolHash}, manager root ${manageRoot}`);
27347
+ return {
27348
+ blockNumber,
27349
+ ...generation$1
27350
+ };
27351
+ }
27352
+ async function resolveRobinhoodSpyUsdgAuthorizationArtifacts({ viemClient, chainId, vault: vault$2, blockNumber }) {
27353
+ if (chainId !== ROBINHOOD_CHAIN_ID || vault$2.toLowerCase() !== resolvedVaultAddress.toLowerCase()) return null;
27354
+ const resolvedBlockNumber = blockNumber ?? await getBlockNumber(viemClient);
27355
+ const [poolHash, manageRoot] = await Promise.all([readContract(viemClient, {
27356
+ address: deployment.hypovault.core.accountant,
27357
+ abi: PanopticVaultAccountantAbi,
27358
+ functionName: "vaultHashes",
27359
+ args: [resolvedVaultAddress, 0n],
27360
+ blockNumber: resolvedBlockNumber
27361
+ }), readContract(viemClient, {
27362
+ address: resolvedManagerAddress,
27363
+ abi: HypoVaultManagerWithMerkleVerificationAbi,
27364
+ functionName: "manageRoot",
27365
+ args: [resolvedStrategistAddress],
27366
+ blockNumber: resolvedBlockNumber
27367
+ })]);
27368
+ return resolveRobinhoodSpyUsdgAuthorizationState({
27369
+ blockNumber: resolvedBlockNumber,
27370
+ poolHash,
27371
+ manageRoot
27372
+ });
27193
27373
  }
27194
27374
 
27195
27375
  //#endregion
@@ -27320,7 +27500,7 @@ const VAULT_POOL_INFOS_BY_CHAIN = {
27320
27500
  ],
27321
27501
  [SEPOLIA_CHAIN_ID]: [SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPVaultPoolInfos],
27322
27502
  [BASE_CHAIN_ID]: [BaseUSDCPLPVaultPoolInfos, BaseWETHPLPVaultPoolInfos],
27323
- [ROBINHOOD_CHAIN_ID]: [RobinhoodUSDGPLPVaultPoolInfos]
27503
+ [ROBINHOOD_CHAIN_ID]: [RobinhoodUSDGPLP5bpsVaultPoolInfos, RobinhoodUSDGPLP30bpsVaultPoolInfos]
27324
27504
  };
27325
27505
  const GET_POOL_ACCOUNT_BALANCE_CANDIDATES = `
27326
27506
  query PoolAccountBalanceCandidates(
@@ -27418,7 +27598,7 @@ async function postGraphQL({ endpoint, query, variables, fetchFn }) {
27418
27598
  if (json.data === void 0) throw new Error("GraphQL response did not include data");
27419
27599
  return json.data;
27420
27600
  }
27421
- async function collectPoolAccountBalanceCandidates({ endpoint, poolIds, vaultAddress: vaultAddress$1, candidatesByPool, fetchFn }) {
27601
+ async function collectPoolAccountBalanceCandidates({ endpoint, poolIds, vaultAddress: vaultAddress$3, candidatesByPool, fetchFn }) {
27422
27602
  for (let skip = 0;; skip += PAGE_SIZE) {
27423
27603
  const page = await postGraphQL({
27424
27604
  endpoint,
@@ -27427,7 +27607,7 @@ async function collectPoolAccountBalanceCandidates({ endpoint, poolIds, vaultAdd
27427
27607
  first: PAGE_SIZE,
27428
27608
  skip,
27429
27609
  poolIds,
27430
- vault: vaultAddress$1
27610
+ vault: vaultAddress$3
27431
27611
  },
27432
27612
  fetchFn
27433
27613
  });
@@ -27527,8 +27707,8 @@ async function filterOpenTokenIdsAtBlock({ viemClient, poolAddress, account, can
27527
27707
  const openTokenIds = await collectOpen(candidates);
27528
27708
  return sortBigintsAscending(openTokenIds);
27529
27709
  }
27530
- function getVaultPoolInfos(vaultAddress$1, chainId) {
27531
- const vaultAddressLower = toLowerAddress$1(vaultAddress$1);
27710
+ function getVaultPoolInfos(vaultAddress$3, chainId) {
27711
+ const vaultAddressLower = toLowerAddress$1(vaultAddress$3);
27532
27712
  const artifacts = chainId === void 0 ? Object.values(VAULT_POOL_INFOS_BY_CHAIN).flat() : VAULT_POOL_INFOS_BY_CHAIN[chainId] ?? [];
27533
27713
  const artifact = artifacts.find((candidate) => toLowerAddress$1(candidate.vaultAddress) === vaultAddressLower);
27534
27714
  return artifact?.poolInfos ?? [];
@@ -27537,15 +27717,24 @@ function getVaultPoolInfos(vaultAddress$1, chainId) {
27537
27717
  * Returns every pool that can contribute historical position candidates for a vault.
27538
27718
  * The live accountant generation is selected separately when encoding manager input.
27539
27719
  */
27540
- function getVaultCandidatePoolInfos(vaultAddress$1, chainId) {
27541
- const generations = getMainnetV3AuthorizationGenerations({
27720
+ function getVaultCandidatePoolInfos(vaultAddress$3, chainId) {
27721
+ const generations$1 = getMainnetV3AuthorizationGenerations({
27542
27722
  chainId,
27543
- vaultAddress: vaultAddress$1
27723
+ vaultAddress: vaultAddress$3
27544
27724
  });
27545
- const candidates = generations === null ? getVaultPoolInfos(vaultAddress$1, chainId) : [
27546
- ...generations.previous.poolInfos,
27547
- ...generations.next.poolInfos,
27548
- ...generations.current.poolInfos
27725
+ const robinhoodGenerations = chainId === ROBINHOOD_CHAIN_ID ? getRobinhoodSpyUsdgAuthorizationGenerations() : [];
27726
+ const history = getVaultPoolConfigurationHistory({
27727
+ chainId,
27728
+ vaultAddress: vaultAddress$3
27729
+ }) ?? [];
27730
+ const candidates = [
27731
+ ...history.flatMap(({ poolInfos }) => poolInfos),
27732
+ ...generations$1 === null ? getVaultPoolInfos(vaultAddress$3, chainId) : [
27733
+ ...generations$1.previous.poolInfos,
27734
+ ...generations$1.next.poolInfos,
27735
+ ...generations$1.current.poolInfos
27736
+ ],
27737
+ ...robinhoodGenerations.flatMap((generation$1) => generation$1.poolInfos)
27549
27738
  ];
27550
27739
  const byPoolAddress = new Map();
27551
27740
  for (const candidate of candidates) {
@@ -27555,21 +27744,30 @@ function getVaultCandidatePoolInfos(vaultAddress$1, chainId) {
27555
27744
  return [...byPoolAddress.values()];
27556
27745
  }
27557
27746
  /** Selects the pool tuple authorized at an exact block before encoding manager input. */
27558
- async function resolveVaultPoolInfosAtBlock({ viemClient, chainId, vaultAddress: vaultAddress$1, blockNumber }) {
27747
+ async function resolveVaultPoolInfosAtBlock({ viemClient, chainId, vaultAddress: vaultAddress$3, blockNumber }) {
27748
+ if (chainId === ROBINHOOD_CHAIN_ID && blockNumber >= ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK) {
27749
+ const authorization = await resolveRobinhoodSpyUsdgAuthorizationArtifacts({
27750
+ viemClient,
27751
+ chainId,
27752
+ vault: vaultAddress$3,
27753
+ blockNumber
27754
+ });
27755
+ if (authorization !== null) return authorization.poolInfos;
27756
+ }
27559
27757
  if (chainId === MAINNET_CHAIN_ID && blockNumber >= MAINNET_V3_AUTHORIZATION_BLOCK) {
27560
27758
  const authorization = await resolveMainnetV3AuthorizationArtifacts({
27561
27759
  viemClient,
27562
27760
  chainId,
27563
- vaultAddress: vaultAddress$1,
27761
+ vaultAddress: vaultAddress$3,
27564
27762
  blockNumber
27565
27763
  });
27566
27764
  if (authorization !== null) return authorization.poolInfos;
27567
27765
  }
27568
- return getMainnetVaultPoolConfigurationAtBlock({
27766
+ return getVaultPoolConfigurationAtBlock({
27569
27767
  chainId,
27570
- vaultAddress: vaultAddress$1,
27768
+ vaultAddress: vaultAddress$3,
27571
27769
  blockNumber
27572
- })?.poolInfos ?? getVaultPoolInfos(vaultAddress$1, chainId);
27770
+ })?.poolInfos ?? getVaultPoolInfos(vaultAddress$3, chainId);
27573
27771
  }
27574
27772
  /**
27575
27773
  * Enrich a cached subgraph candidate superset with the authoritative position
@@ -27581,7 +27779,7 @@ async function resolveVaultPoolInfosAtBlock({ viemClient, chainId, vaultAddress:
27581
27779
  * all-time candidate cache; closed IDs remain harmless because the normal
27582
27780
  * per-block verifier filters them out.
27583
27781
  */
27584
- async function recoverVaultCandidateTokenIdsByPool({ viemClient, chainId, vaultAddress: vaultAddress$1, candidatesByPool, poolInfos, blockNumber, fromBlock }) {
27782
+ async function recoverVaultCandidateTokenIdsByPool({ viemClient, chainId, vaultAddress: vaultAddress$3, candidatesByPool, poolInfos, blockNumber, fromBlock }) {
27585
27783
  return Promise.all(poolInfos.map(async (poolInfo) => {
27586
27784
  const cached = candidatesByPool.find((candidate) => candidate.poolAddress.toLowerCase() === poolInfo.pool.toLowerCase());
27587
27785
  const cachedIds = cached?.candidates ?? [];
@@ -27595,11 +27793,11 @@ async function recoverVaultCandidateTokenIdsByPool({ viemClient, chainId, vaultA
27595
27793
  client: viemClient,
27596
27794
  chainId: BigInt(chainId),
27597
27795
  poolAddress: poolInfo.pool,
27598
- account: vaultAddress$1,
27796
+ account: vaultAddress$3,
27599
27797
  fromBlock: scanFromBlock,
27600
27798
  toBlock: blockNumber
27601
27799
  });
27602
- if (recoveredIds === null) throw new Error(`Could not recover an authoritative position list for vault ${vaultAddress$1} in pool ${poolInfo.pool} between blocks ${scanFromBlock} and ${blockNumber}`);
27800
+ if (recoveredIds === null) throw new Error(`Could not recover an authoritative position list for vault ${vaultAddress$3} in pool ${poolInfo.pool} between blocks ${scanFromBlock} and ${blockNumber}`);
27603
27801
  const candidates = sortBigintsAscending(new Set([...cachedIds, ...recoveredIds]));
27604
27802
  return {
27605
27803
  poolAddress: poolInfo.pool,
@@ -27615,16 +27813,16 @@ async function recoverVaultCandidateTokenIdsByPool({ viemClient, chainId, vaultA
27615
27813
  * vault instead of re-running the subgraph paging for every anchor block. The
27616
27814
  * combined {@link resolveVaultTokenIdsByPool} remains for one-shot callers.
27617
27815
  */
27618
- async function resolveVaultHistoricalCandidatesByPool({ chainId, vaultAddress: vaultAddress$1, managerAddress, poolInfos, panopticSubgraphUrl, fetchFn = fetch }) {
27619
- const resolvedPoolInfos = poolInfos ?? getVaultPoolInfos(vaultAddress$1, chainId);
27816
+ async function resolveVaultHistoricalCandidatesByPool({ chainId, vaultAddress: vaultAddress$3, managerAddress: managerAddress$2, poolInfos, panopticSubgraphUrl, fetchFn = fetch }) {
27817
+ const resolvedPoolInfos = poolInfos ?? getVaultPoolInfos(vaultAddress$3, chainId);
27620
27818
  if (resolvedPoolInfos.length === 0) return [];
27621
27819
  const configuredEndpoint = panopticSubgraphUrl ?? requireChainDeployment(chainId).subgraphs.panoptic;
27622
27820
  if (configuredEndpoint === void 0) return resolvedPoolInfos.map((poolInfo) => ({
27623
27821
  poolAddress: poolInfo.pool,
27624
27822
  candidates: []
27625
27823
  }));
27626
- const vaultAddressLower = toLowerAddress$1(vaultAddress$1);
27627
- const recipientAddresses = Array.from(new Set([vaultAddressLower, managerAddress?.toLowerCase()].filter((value) => value !== void 0 && value.length > 0).map((value) => value.toLowerCase())));
27824
+ const vaultAddressLower = toLowerAddress$1(vaultAddress$3);
27825
+ const recipientAddresses = Array.from(new Set([vaultAddressLower, managerAddress$2?.toLowerCase()].filter((value) => value !== void 0 && value.length > 0).map((value) => value.toLowerCase())));
27628
27826
  const poolIds = Array.from(new Set(resolvedPoolInfos.map((poolInfo) => toLowerAddress$1(poolInfo.pool))));
27629
27827
  const balanceCandidatesByPool = new Map();
27630
27828
  const eventCandidatesByPool = new Map();
@@ -27658,13 +27856,13 @@ async function resolveVaultHistoricalCandidatesByPool({ chainId, vaultAddress: v
27658
27856
  * open at `blockNumber`, per pool, via on-chain `getFullPositionsData` (bisecting
27659
27857
  * on stale candidates). This is the per-block half of the candidate/verify split.
27660
27858
  */
27661
- async function verifyVaultOpenTokenIdsAtBlock({ viemClient, vaultAddress: vaultAddress$1, candidatesByPool, blockNumber }) {
27859
+ async function verifyVaultOpenTokenIdsAtBlock({ viemClient, vaultAddress: vaultAddress$3, candidatesByPool, blockNumber }) {
27662
27860
  const tokenIdsByPool = [];
27663
27861
  for (const { poolAddress, candidates } of candidatesByPool) {
27664
27862
  const openTokenIds = await filterOpenTokenIdsAtBlock({
27665
27863
  viemClient,
27666
27864
  poolAddress,
27667
- account: vaultAddress$1,
27865
+ account: vaultAddress$3,
27668
27866
  candidates,
27669
27867
  blockNumber
27670
27868
  });
@@ -27672,13 +27870,13 @@ async function verifyVaultOpenTokenIdsAtBlock({ viemClient, vaultAddress: vaultA
27672
27870
  }
27673
27871
  return tokenIdsByPool;
27674
27872
  }
27675
- async function resolveVaultTokenIdsByPool({ viemClient, chainId, vaultAddress: vaultAddress$1, managerAddress, poolInfos, panopticSubgraphUrl, verificationBlockNumber, fetchFn = fetch }) {
27676
- const resolvedPoolInfos = poolInfos ?? getVaultPoolInfos(vaultAddress$1, chainId);
27873
+ async function resolveVaultTokenIdsByPool({ viemClient, chainId, vaultAddress: vaultAddress$3, managerAddress: managerAddress$2, poolInfos, panopticSubgraphUrl, verificationBlockNumber, fetchFn = fetch }) {
27874
+ const resolvedPoolInfos = poolInfos ?? getVaultPoolInfos(vaultAddress$3, chainId);
27677
27875
  if (resolvedPoolInfos.length === 0) return [];
27678
27876
  const configuredEndpoint = panopticSubgraphUrl ?? requireChainDeployment(chainId).subgraphs.panoptic;
27679
27877
  if (configuredEndpoint === void 0) return resolvedPoolInfos.map(() => []);
27680
- const vaultAddressLower = toLowerAddress$1(vaultAddress$1);
27681
- const recipientAddresses = Array.from(new Set([vaultAddressLower, managerAddress?.toLowerCase()].filter((value) => value !== void 0 && value.length > 0).map((value) => value.toLowerCase())));
27878
+ const vaultAddressLower = toLowerAddress$1(vaultAddress$3);
27879
+ const recipientAddresses = Array.from(new Set([vaultAddressLower, managerAddress$2?.toLowerCase()].filter((value) => value !== void 0 && value.length > 0).map((value) => value.toLowerCase())));
27682
27880
  const poolIds = Array.from(new Set(resolvedPoolInfos.map((poolInfo) => toLowerAddress$1(poolInfo.pool))));
27683
27881
  const balanceCandidatesByPool = new Map();
27684
27882
  const eventCandidatesByPool = new Map();
@@ -27706,7 +27904,7 @@ async function resolveVaultTokenIdsByPool({ viemClient, chainId, vaultAddress: v
27706
27904
  const historicalOpenTokenIds = await filterOpenTokenIdsAtBlock({
27707
27905
  viemClient,
27708
27906
  poolAddress: poolInfo.pool,
27709
- account: vaultAddress$1,
27907
+ account: vaultAddress$3,
27710
27908
  candidates: historicalCandidates,
27711
27909
  blockNumber: verificationBlockNumber
27712
27910
  });
@@ -27728,7 +27926,7 @@ async function resolveVaultTokenIdsByPool({ viemClient, chainId, vaultAddress: v
27728
27926
  abi: panopticPoolV2Abi$1,
27729
27927
  functionName: "getFullPositionsData",
27730
27928
  args: [
27731
- vaultAddress$1,
27929
+ vaultAddress$3,
27732
27930
  false,
27733
27931
  eventCandidates
27734
27932
  ],
@@ -27754,32 +27952,32 @@ async function resolveVaultTokenIdsByPool({ viemClient, chainId, vaultAddress: v
27754
27952
  }
27755
27953
  return tokenIdsByPool;
27756
27954
  }
27757
- async function buildVaultManagerInput({ viemClient, chainId, vaultAddress: vaultAddress$1, underlyingToken, managerAddress, panopticSubgraphUrl, fetchFn }) {
27955
+ async function buildVaultManagerInput({ viemClient, chainId, vaultAddress: vaultAddress$3, underlyingToken, managerAddress: managerAddress$2, panopticSubgraphUrl, fetchFn }) {
27758
27956
  const blockNumber = await getBlockNumber(viemClient);
27759
27957
  return buildVaultManagerInputAtBlock({
27760
27958
  viemClient,
27761
27959
  chainId,
27762
- vaultAddress: vaultAddress$1,
27960
+ vaultAddress: vaultAddress$3,
27763
27961
  underlyingToken,
27764
27962
  blockNumber,
27765
- managerAddress,
27963
+ managerAddress: managerAddress$2,
27766
27964
  panopticSubgraphUrl,
27767
27965
  fetchFn
27768
27966
  });
27769
27967
  }
27770
- async function buildVaultManagerInputAtBlock({ viemClient, chainId, vaultAddress: vaultAddress$1, underlyingToken, blockNumber, managerAddress, panopticSubgraphUrl, fetchFn }) {
27968
+ async function buildVaultManagerInputAtBlock({ viemClient, chainId, vaultAddress: vaultAddress$3, underlyingToken, blockNumber, managerAddress: managerAddress$2, panopticSubgraphUrl, fetchFn }) {
27771
27969
  const poolInfos = await resolveVaultPoolInfosAtBlock({
27772
27970
  viemClient,
27773
27971
  chainId,
27774
- vaultAddress: vaultAddress$1,
27972
+ vaultAddress: vaultAddress$3,
27775
27973
  blockNumber
27776
27974
  });
27777
27975
  if (poolInfos.length === 0) return DEFAULT_MANAGER_INPUT$1;
27778
27976
  const tokenIds = await resolveVaultTokenIdsByPool({
27779
27977
  viemClient,
27780
27978
  chainId,
27781
- vaultAddress: vaultAddress$1,
27782
- managerAddress,
27979
+ vaultAddress: vaultAddress$3,
27980
+ managerAddress: managerAddress$2,
27783
27981
  poolInfos,
27784
27982
  panopticSubgraphUrl,
27785
27983
  verificationBlockNumber: blockNumber,
@@ -27812,10 +28010,10 @@ const erc20BalanceOfAbi = [{
27812
28010
  function toLowerAddress(address) {
27813
28011
  return address.toLowerCase();
27814
28012
  }
27815
- function discoverPoolAddresses$1({ chainId, vaultAddress: vaultAddress$1 }) {
28013
+ function discoverPoolAddresses$1({ chainId, vaultAddress: vaultAddress$3 }) {
27816
28014
  const discoveredAddresses = [];
27817
28015
  const seen = new Set();
27818
- const config = getHypoVaultConfigForVault(vaultAddress$1, chainId);
28016
+ const config = getHypoVaultConfigForVault(vaultAddress$3, chainId);
27819
28017
  const poolFromConfig = config?.addresses?.ethUsdc500bpsV4PanopticPool;
27820
28018
  if (poolFromConfig !== void 0) {
27821
28019
  const key = toLowerAddress(poolFromConfig);
@@ -27824,7 +28022,7 @@ function discoverPoolAddresses$1({ chainId, vaultAddress: vaultAddress$1 }) {
27824
28022
  discoveredAddresses.push(poolFromConfig);
27825
28023
  }
27826
28024
  }
27827
- const artifactPoolInfos = getVaultPoolInfos(vaultAddress$1, chainId);
28025
+ const artifactPoolInfos = getVaultPoolInfos(vaultAddress$3, chainId);
27828
28026
  for (const poolInfo of artifactPoolInfos) {
27829
28027
  const key = toLowerAddress(poolInfo.pool);
27830
28028
  if (!seen.has(key)) {
@@ -27840,10 +28038,10 @@ function getUnderlyingIndex({ underlyingTokenAddress, token0Asset, token1Asset }
27840
28038
  if (toLowerAddress(token1Asset) === underlyingLower) return 1;
27841
28039
  return null;
27842
28040
  }
27843
- async function getLendingAllocationRows({ client, chainId, vaultAddress: vaultAddress$1, underlyingTokenAddress, blockNumber }) {
28041
+ async function getLendingAllocationRows({ client, chainId, vaultAddress: vaultAddress$3, underlyingTokenAddress, blockNumber }) {
27844
28042
  const poolAddresses = discoverPoolAddresses$1({
27845
28043
  chainId,
27846
- vaultAddress: vaultAddress$1
28044
+ vaultAddress: vaultAddress$3
27847
28045
  });
27848
28046
  const poolRows = await Promise.all(poolAddresses.map(async (poolAddress) => {
27849
28047
  const metadata = await getPoolMetadata({
@@ -27864,7 +28062,7 @@ async function getLendingAllocationRows({ client, chainId, vaultAddress: vaultAd
27864
28062
  }), getAccountCollateral({
27865
28063
  client,
27866
28064
  poolAddress,
27867
- account: vaultAddress$1,
28065
+ account: vaultAddress$3,
27868
28066
  blockNumber
27869
28067
  })]);
27870
28068
  const allocationUnderlying = underlyingIndex === 0 ? accountCollateral.token0.assets : accountCollateral.token1.assets;
@@ -27885,7 +28083,7 @@ async function getLendingAllocationRows({ client, chainId, vaultAddress: vaultAd
27885
28083
  address: underlyingTokenAddress,
27886
28084
  abi: erc20BalanceOfAbi,
27887
28085
  functionName: "balanceOf",
27888
- args: [vaultAddress$1],
28086
+ args: [vaultAddress$3],
27889
28087
  blockNumber
27890
28088
  });
27891
28089
  const idleRow = {
@@ -27979,10 +28177,10 @@ function isNativeToken(tokenAddress) {
27979
28177
  function addressesEqual(a, b) {
27980
28178
  return a.toLowerCase() === b.toLowerCase();
27981
28179
  }
27982
- function discoverPoolAddresses({ chainId, vaultAddress: vaultAddress$1 }) {
28180
+ function discoverPoolAddresses({ chainId, vaultAddress: vaultAddress$3 }) {
27983
28181
  const seen = new Set();
27984
28182
  const addresses = [];
27985
- const config = getHypoVaultConfigForVault(vaultAddress$1, chainId);
28183
+ const config = getHypoVaultConfigForVault(vaultAddress$3, chainId);
27986
28184
  const configuredPool = config?.addresses?.ethUsdc500bpsV4PanopticPool;
27987
28185
  if (configuredPool !== void 0) {
27988
28186
  const key = configuredPool.toLowerCase();
@@ -27991,7 +28189,7 @@ function discoverPoolAddresses({ chainId, vaultAddress: vaultAddress$1 }) {
27991
28189
  addresses.push(configuredPool);
27992
28190
  }
27993
28191
  }
27994
- const artifactInfos = getVaultPoolInfos(vaultAddress$1, chainId);
28192
+ const artifactInfos = getVaultPoolInfos(vaultAddress$3, chainId);
27995
28193
  for (const info of artifactInfos) {
27996
28194
  const key = info.pool.toLowerCase();
27997
28195
  if (!seen.has(key)) {
@@ -28151,10 +28349,10 @@ function calculateVaultNetLendingYieldUnderlyingFromTrackerInputs({ inputs, inte
28151
28349
  }
28152
28350
  return sawAssets ? totalNetYieldUnderlying : null;
28153
28351
  }
28154
- async function fetchVaultNetLendingApyPct({ client, chainId, vaultAddress: vaultAddress$1, underlyingTokenAddress, blockNumber }) {
28352
+ async function fetchVaultNetLendingApyPct({ client, chainId, vaultAddress: vaultAddress$3, underlyingTokenAddress, blockNumber }) {
28155
28353
  const poolAddresses = discoverPoolAddresses({
28156
28354
  chainId,
28157
- vaultAddress: vaultAddress$1
28355
+ vaultAddress: vaultAddress$3
28158
28356
  });
28159
28357
  if (poolAddresses.length === 0) return null;
28160
28358
  const poolContexts = await Promise.all(poolAddresses.map(async (poolAddress) => {
@@ -28214,14 +28412,14 @@ async function fetchVaultNetLendingApyPct({ client, chainId, vaultAddress: vault
28214
28412
  address: trackerAddress,
28215
28413
  abi: collateralTrackerV2Abi,
28216
28414
  functionName: "assetsOf",
28217
- args: [vaultAddress$1],
28415
+ args: [vaultAddress$3],
28218
28416
  ...blockNumber === void 0 ? {} : { blockNumber }
28219
28417
  }),
28220
28418
  client.readContract({
28221
28419
  address: trackerAddress,
28222
28420
  abi: collateralTrackerV2Abi,
28223
28421
  functionName: "interestState",
28224
- args: [vaultAddress$1],
28422
+ args: [vaultAddress$3],
28225
28423
  ...blockNumber === void 0 ? {} : { blockNumber }
28226
28424
  }),
28227
28425
  client.readContract({
@@ -28246,10 +28444,10 @@ async function fetchVaultNetLendingApyPct({ client, chainId, vaultAddress: vault
28246
28444
  })));
28247
28445
  return calculateVaultNetLendingApyPctFromTrackerInputs(trackerInputs.filter((input) => input !== null));
28248
28446
  }
28249
- async function fetchVaultNetLendingYieldUnderlying({ client, chainId, vaultAddress: vaultAddress$1, underlyingTokenAddress, blockNumber, intervalSeconds }) {
28447
+ async function fetchVaultNetLendingYieldUnderlying({ client, chainId, vaultAddress: vaultAddress$3, underlyingTokenAddress, blockNumber, intervalSeconds }) {
28250
28448
  const poolAddresses = discoverPoolAddresses({
28251
28449
  chainId,
28252
- vaultAddress: vaultAddress$1
28450
+ vaultAddress: vaultAddress$3
28253
28451
  });
28254
28452
  if (poolAddresses.length === 0) return null;
28255
28453
  const poolContexts = await Promise.all(poolAddresses.map(async (poolAddress) => {
@@ -28309,14 +28507,14 @@ async function fetchVaultNetLendingYieldUnderlying({ client, chainId, vaultAddre
28309
28507
  address: trackerAddress,
28310
28508
  abi: collateralTrackerV2Abi,
28311
28509
  functionName: "assetsOf",
28312
- args: [vaultAddress$1],
28510
+ args: [vaultAddress$3],
28313
28511
  blockNumber
28314
28512
  }),
28315
28513
  client.readContract({
28316
28514
  address: trackerAddress,
28317
28515
  abi: collateralTrackerV2Abi,
28318
28516
  functionName: "interestState",
28319
- args: [vaultAddress$1],
28517
+ args: [vaultAddress$3],
28320
28518
  blockNumber
28321
28519
  }),
28322
28520
  client.readContract({
@@ -28344,14 +28542,14 @@ async function fetchVaultNetLendingYieldUnderlying({ client, chainId, vaultAddre
28344
28542
  intervalSeconds
28345
28543
  });
28346
28544
  }
28347
- async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaultAddress$1, underlyingTokenAddress, blockNumber }) {
28545
+ async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaultAddress$3, underlyingTokenAddress, blockNumber }) {
28348
28546
  const [reservedWithdrawalAssetsRaw, depositEpochRaw] = await Promise.all([client.readContract({
28349
- address: vaultAddress$1,
28547
+ address: vaultAddress$3,
28350
28548
  abi: HypoVaultAbi,
28351
28549
  functionName: "reservedWithdrawalAssets",
28352
28550
  ...blockNumber === void 0 ? {} : { blockNumber }
28353
28551
  }), client.readContract({
28354
- address: vaultAddress$1,
28552
+ address: vaultAddress$3,
28355
28553
  abi: HypoVaultAbi,
28356
28554
  functionName: "depositEpoch",
28357
28555
  ...blockNumber === void 0 ? {} : { blockNumber }
@@ -28359,7 +28557,7 @@ async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaul
28359
28557
  const reservedWithdrawalAssets = toBigInt$1(reservedWithdrawalAssetsRaw) ?? 0n;
28360
28558
  const depositEpoch = toBigInt$1(depositEpochRaw);
28361
28559
  const depositEpochStateRaw = depositEpoch === null ? null : await client.readContract({
28362
- address: vaultAddress$1,
28560
+ address: vaultAddress$3,
28363
28561
  abi: HypoVaultAbi,
28364
28562
  functionName: "depositEpochState",
28365
28563
  args: [depositEpoch],
@@ -28368,7 +28566,7 @@ async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaul
28368
28566
  const unfulfilledDepositAssets = depositEpochStateRaw === null ? 0n : getAssetsDepositedFromDepositEpochState$1(depositEpochStateRaw);
28369
28567
  const poolAddresses = discoverPoolAddresses({
28370
28568
  chainId,
28371
- vaultAddress: vaultAddress$1
28569
+ vaultAddress: vaultAddress$3
28372
28570
  });
28373
28571
  const poolContexts = await Promise.all(poolAddresses.map(async (poolAddress) => {
28374
28572
  const [collateral0Address, collateral1Address] = await Promise.all([client.readContract({
@@ -28449,7 +28647,7 @@ async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaul
28449
28647
  address: trackerAddress,
28450
28648
  abi: collateralTrackerV2Abi,
28451
28649
  functionName: "assetsOf",
28452
- args: [vaultAddress$1],
28650
+ args: [vaultAddress$3],
28453
28651
  ...blockNumber === void 0 ? {} : { blockNumber }
28454
28652
  }),
28455
28653
  client.readContract({
@@ -28524,7 +28722,7 @@ async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaul
28524
28722
  const balance = await readTokenBalance({
28525
28723
  client,
28526
28724
  tokenAddress: address,
28527
- owner: vaultAddress$1,
28725
+ owner: vaultAddress$3,
28528
28726
  blockNumber
28529
28727
  });
28530
28728
  const adjustedBalance = addressesEqual(address, underlyingTokenAddress) ? adjustUnderlyingIdleBalance({
@@ -28614,8 +28812,8 @@ async function fetchVaultLendingAllocation({ client, chainId, vaultAddress: vaul
28614
28812
 
28615
28813
  //#endregion
28616
28814
  //#region src/hypoVault/cancelDeposit/cancelDeposit.ts
28617
- const getCancelDepositContractConfig = ({ vaultAddress: vaultAddress$1 }) => ({
28618
- address: vaultAddress$1,
28815
+ const getCancelDepositContractConfig = ({ vaultAddress: vaultAddress$3 }) => ({
28816
+ address: vaultAddress$3,
28619
28817
  abi: HypoVaultAbi,
28620
28818
  functionName: "cancelDeposit",
28621
28819
  args: []
@@ -28627,15 +28825,15 @@ function encodeCancelDepositFunctionData() {
28627
28825
  args: []
28628
28826
  });
28629
28827
  }
28630
- function simulateCancelDeposit({ viemClient, vaultAddress: vaultAddress$1, account }) {
28828
+ function simulateCancelDeposit({ viemClient, vaultAddress: vaultAddress$3, account }) {
28631
28829
  return simulateContract(viemClient, {
28632
- ...getCancelDepositContractConfig({ vaultAddress: vaultAddress$1 }),
28830
+ ...getCancelDepositContractConfig({ vaultAddress: vaultAddress$3 }),
28633
28831
  account
28634
28832
  });
28635
28833
  }
28636
- function cancelDeposit({ walletClient, vaultAddress: vaultAddress$1, account }) {
28834
+ function cancelDeposit({ walletClient, vaultAddress: vaultAddress$3, account }) {
28637
28835
  return writeContract(walletClient, {
28638
- ...getCancelDepositContractConfig({ vaultAddress: vaultAddress$1 }),
28836
+ ...getCancelDepositContractConfig({ vaultAddress: vaultAddress$3 }),
28639
28837
  account
28640
28838
  });
28641
28839
  }
@@ -28672,12 +28870,12 @@ const isErrorUserRejection = (errorMessage) => errorMessage.includes("User rejec
28672
28870
 
28673
28871
  //#endregion
28674
28872
  //#region src/hypoVault/cancelDeposit/hooks/use-cancel-deposit.ts
28675
- const useCancelDeposit = ({ chainId, vaultAddress: vaultAddress$1, onWaitSuccess }) => {
28873
+ const useCancelDeposit = ({ chainId, vaultAddress: vaultAddress$3, onWaitSuccess }) => {
28676
28874
  const { address: account } = useAccount();
28677
- const canSimulate = vaultAddress$1 !== zeroAddress && account != null && account !== zeroAddress;
28875
+ const canSimulate = vaultAddress$3 !== zeroAddress && account != null && account !== zeroAddress;
28678
28876
  const simulate = useSimulateContract({
28679
28877
  chainId,
28680
- ...getCancelDepositContractConfig({ vaultAddress: vaultAddress$1 }),
28878
+ ...getCancelDepositContractConfig({ vaultAddress: vaultAddress$3 }),
28681
28879
  account,
28682
28880
  query: {
28683
28881
  enabled: canSimulate,
@@ -28753,51 +28951,51 @@ function encodeExecuteWithdrawalMulticallFunctionData({ multicallCalldatas }) {
28753
28951
  args: [multicallCalldatas]
28754
28952
  });
28755
28953
  }
28756
- const getExecuteWithdrawalContractConfig = ({ vaultAddress: vaultAddress$1, user, epoch }) => ({
28757
- address: vaultAddress$1,
28954
+ const getExecuteWithdrawalContractConfig = ({ vaultAddress: vaultAddress$3, user, epoch }) => ({
28955
+ address: vaultAddress$3,
28758
28956
  abi: HypoVaultAbi,
28759
28957
  functionName: "executeWithdrawal",
28760
28958
  args: [user, epoch]
28761
28959
  });
28762
- const getExecuteWithdrawalMulticallContractConfig = ({ vaultAddress: vaultAddress$1, multicallCalldatas }) => ({
28763
- address: vaultAddress$1,
28960
+ const getExecuteWithdrawalMulticallContractConfig = ({ vaultAddress: vaultAddress$3, multicallCalldatas }) => ({
28961
+ address: vaultAddress$3,
28764
28962
  abi: HypoVaultAbi,
28765
28963
  functionName: "multicall",
28766
28964
  args: [multicallCalldatas]
28767
28965
  });
28768
- function simulateExecuteWithdrawal({ viemClient, vaultAddress: vaultAddress$1, user, epoch, account }) {
28966
+ function simulateExecuteWithdrawal({ viemClient, vaultAddress: vaultAddress$3, user, epoch, account }) {
28769
28967
  return simulateContract(viemClient, {
28770
28968
  ...getExecuteWithdrawalContractConfig({
28771
- vaultAddress: vaultAddress$1,
28969
+ vaultAddress: vaultAddress$3,
28772
28970
  user,
28773
28971
  epoch
28774
28972
  }),
28775
28973
  account
28776
28974
  });
28777
28975
  }
28778
- function executeWithdrawal({ walletClient, vaultAddress: vaultAddress$1, user, epoch, account }) {
28976
+ function executeWithdrawal({ walletClient, vaultAddress: vaultAddress$3, user, epoch, account }) {
28779
28977
  return writeContract(walletClient, {
28780
28978
  ...getExecuteWithdrawalContractConfig({
28781
- vaultAddress: vaultAddress$1,
28979
+ vaultAddress: vaultAddress$3,
28782
28980
  user,
28783
28981
  epoch
28784
28982
  }),
28785
28983
  account
28786
28984
  });
28787
28985
  }
28788
- function simulateExecuteWithdrawalMulticall({ viemClient, vaultAddress: vaultAddress$1, multicallCalldatas, account }) {
28986
+ function simulateExecuteWithdrawalMulticall({ viemClient, vaultAddress: vaultAddress$3, multicallCalldatas, account }) {
28789
28987
  return simulateContract(viemClient, {
28790
28988
  ...getExecuteWithdrawalMulticallContractConfig({
28791
- vaultAddress: vaultAddress$1,
28989
+ vaultAddress: vaultAddress$3,
28792
28990
  multicallCalldatas
28793
28991
  }),
28794
28992
  account
28795
28993
  });
28796
28994
  }
28797
- function executeWithdrawalMulticall({ walletClient, vaultAddress: vaultAddress$1, multicallCalldatas, account }) {
28995
+ function executeWithdrawalMulticall({ walletClient, vaultAddress: vaultAddress$3, multicallCalldatas, account }) {
28798
28996
  return writeContract(walletClient, {
28799
28997
  ...getExecuteWithdrawalMulticallContractConfig({
28800
- vaultAddress: vaultAddress$1,
28998
+ vaultAddress: vaultAddress$3,
28801
28999
  multicallCalldatas
28802
29000
  }),
28803
29001
  account
@@ -28877,7 +29075,7 @@ const selectExecutableWithdrawalEpochs = ({ desiredAssets, maxAssetsToExecute, c
28877
29075
  assetsToExecute: accumulatedAssets
28878
29076
  };
28879
29077
  };
28880
- const useExecuteWithdrawal = ({ chainId, vaultAddress: vaultAddress$1, desiredAssets, maxAssetsToExecute, queuedWithdrawals, withdrawalEpochStates, currentWithdrawalEpoch, simulationAccount, onWaitSuccess }) => {
29078
+ const useExecuteWithdrawal = ({ chainId, vaultAddress: vaultAddress$3, desiredAssets, maxAssetsToExecute, queuedWithdrawals, withdrawalEpochStates, currentWithdrawalEpoch, simulationAccount, onWaitSuccess }) => {
28881
29079
  const { address: account } = useAccount();
28882
29080
  const simulatedAccount = simulationAccount ?? account;
28883
29081
  const user = simulatedAccount ?? zeroAddress;
@@ -28921,11 +29119,11 @@ const useExecuteWithdrawal = ({ chainId, vaultAddress: vaultAddress$1, desiredAs
28921
29119
  assetsToExecute,
28922
29120
  claimableAssets: claimableWithdrawals.totalAssets
28923
29121
  });
28924
- const canSimulate = multicallCalldatas.length > 0 && vaultAddress$1 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress;
29122
+ const canSimulate = multicallCalldatas.length > 0 && vaultAddress$3 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress;
28925
29123
  const simulate = useSimulateContract({
28926
29124
  chainId,
28927
29125
  ...getExecuteWithdrawalMulticallContractConfig({
28928
- vaultAddress: vaultAddress$1,
29126
+ vaultAddress: vaultAddress$3,
28929
29127
  multicallCalldatas
28930
29128
  }),
28931
29129
  account: simulatedAccount,
@@ -28992,6 +29190,23 @@ const useExecuteWithdrawal = ({ chainId, vaultAddress: vaultAddress$1, desiredAs
28992
29190
  };
28993
29191
  };
28994
29192
 
29193
+ //#endregion
29194
+ //#region src/hypoVault/hooks/use-erc20-balance.ts
29195
+ function useErc20Balance({ chainId, token, account, enabled = true, staleTime }) {
29196
+ return useReadContract({
29197
+ chainId,
29198
+ address: token,
29199
+ abi: Erc20Abi,
29200
+ functionName: "balanceOf",
29201
+ args: [account],
29202
+ query: {
29203
+ enabled,
29204
+ staleTime,
29205
+ refetchOnWindowFocus: false
29206
+ }
29207
+ });
29208
+ }
29209
+
28995
29210
  //#endregion
28996
29211
  //#region src/hypoVault/hypoVaultManagerArtifacts/BaseUSDCPLPStrategistLeaves.ts
28997
29212
  const BaseUSDCPLPStrategistLeaves = {
@@ -30076,8 +30291,8 @@ function encodeFulfillWithdrawalsFunctionData({ sharesToFulfill, maxAssetsReceiv
30076
30291
 
30077
30292
  //#endregion
30078
30293
  //#region src/hypoVault/requestDeposit/requestDeposit.ts
30079
- const getRequestDepositContractConfig = ({ vaultAddress: vaultAddress$1, assets }) => ({
30080
- address: vaultAddress$1,
30294
+ const getRequestDepositContractConfig = ({ vaultAddress: vaultAddress$3, assets }) => ({
30295
+ address: vaultAddress$3,
30081
30296
  abi: HypoVaultAbi,
30082
30297
  functionName: "requestDeposit",
30083
30298
  args: [assets]
@@ -30089,19 +30304,19 @@ function encodeRequestDepositFunctionData({ assets }) {
30089
30304
  args: [assets]
30090
30305
  });
30091
30306
  }
30092
- function simulateRequestDeposit({ viemClient, vaultAddress: vaultAddress$1, assets, account }) {
30307
+ function simulateRequestDeposit({ viemClient, vaultAddress: vaultAddress$3, assets, account }) {
30093
30308
  return simulateContract(viemClient, {
30094
30309
  ...getRequestDepositContractConfig({
30095
- vaultAddress: vaultAddress$1,
30310
+ vaultAddress: vaultAddress$3,
30096
30311
  assets
30097
30312
  }),
30098
30313
  account
30099
30314
  });
30100
30315
  }
30101
- function requestDeposit({ walletClient, vaultAddress: vaultAddress$1, assets, account }) {
30316
+ function requestDeposit({ walletClient, vaultAddress: vaultAddress$3, assets, account }) {
30102
30317
  return writeContract(walletClient, {
30103
30318
  ...getRequestDepositContractConfig({
30104
- vaultAddress: vaultAddress$1,
30319
+ vaultAddress: vaultAddress$3,
30105
30320
  assets
30106
30321
  }),
30107
30322
  account
@@ -30112,16 +30327,16 @@ function requestDeposit({ walletClient, vaultAddress: vaultAddress$1, assets, ac
30112
30327
  //#region src/hypoVault/requestDeposit/hooks/use-request-deposit.ts
30113
30328
  const APPROVAL_SYNC_POLL_INTERVAL_MS = 1200;
30114
30329
  const APPROVAL_SYNC_MAX_ATTEMPTS = 20;
30115
- const useRequestDeposit = ({ chainId, vaultAddress: vaultAddress$1, assets, tokenAddress, simulationAccount, onWaitSuccess }) => {
30330
+ const useRequestDeposit = ({ chainId, vaultAddress: vaultAddress$3, assets, tokenAddress, simulationAccount, onWaitSuccess }) => {
30116
30331
  const { address: account } = useAccount();
30117
30332
  const simulatedAccount = simulationAccount ?? account;
30118
- const canReadAllowance = simulatedAccount != null && simulatedAccount !== zeroAddress && tokenAddress !== zeroAddress && vaultAddress$1 !== zeroAddress;
30333
+ const canReadAllowance = simulatedAccount != null && simulatedAccount !== zeroAddress && tokenAddress !== zeroAddress && vaultAddress$3 !== zeroAddress;
30119
30334
  const allowanceRead = useReadContract({
30120
30335
  chainId,
30121
30336
  address: canReadAllowance ? tokenAddress : void 0,
30122
30337
  abi: Erc20Abi,
30123
30338
  functionName: "allowance",
30124
- args: canReadAllowance ? [simulatedAccount, vaultAddress$1] : void 0,
30339
+ args: canReadAllowance ? [simulatedAccount, vaultAddress$3] : void 0,
30125
30340
  query: { enabled: canReadAllowance }
30126
30341
  });
30127
30342
  const allowanceKnown = allowanceRead.data !== void 0;
@@ -30135,7 +30350,7 @@ const useRequestDeposit = ({ chainId, vaultAddress: vaultAddress$1, assets, toke
30135
30350
  address: tokenAddress,
30136
30351
  abi: Erc20Abi,
30137
30352
  functionName: "approve",
30138
- args: [vaultAddress$1, maxUint256],
30353
+ args: [vaultAddress$3, maxUint256],
30139
30354
  account,
30140
30355
  query: {
30141
30356
  enabled: allowanceKnown && tokenNeedsApproval && assets > 0n && account != null && canApproveForSimulatedAccount,
@@ -30154,12 +30369,12 @@ const useRequestDeposit = ({ chainId, vaultAddress: vaultAddress$1, assets, toke
30154
30369
  const simulate = useSimulateContract({
30155
30370
  chainId,
30156
30371
  ...getRequestDepositContractConfig({
30157
- vaultAddress: vaultAddress$1,
30372
+ vaultAddress: vaultAddress$3,
30158
30373
  assets
30159
30374
  }),
30160
30375
  account: simulatedAccount,
30161
30376
  query: {
30162
- enabled: allowanceKnown && !tokenNeedsApproval && assets > 0n && vaultAddress$1 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress,
30377
+ enabled: allowanceKnown && !tokenNeedsApproval && assets > 0n && vaultAddress$3 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress,
30163
30378
  retry: false
30164
30379
  }
30165
30380
  });
@@ -30418,49 +30633,49 @@ function encodeRequestWithdrawalMulticallFunctionData({ multicallCalldatas }) {
30418
30633
  args: [multicallCalldatas]
30419
30634
  });
30420
30635
  }
30421
- const getRequestWithdrawalContractConfig = ({ vaultAddress: vaultAddress$1, shares }) => ({
30422
- address: vaultAddress$1,
30636
+ const getRequestWithdrawalContractConfig = ({ vaultAddress: vaultAddress$3, shares }) => ({
30637
+ address: vaultAddress$3,
30423
30638
  abi: HypoVaultAbi,
30424
30639
  functionName: "requestWithdrawal",
30425
30640
  args: [shares]
30426
30641
  });
30427
- const getRequestWithdrawalMulticallContractConfig = ({ vaultAddress: vaultAddress$1, multicallCalldatas }) => ({
30428
- address: vaultAddress$1,
30642
+ const getRequestWithdrawalMulticallContractConfig = ({ vaultAddress: vaultAddress$3, multicallCalldatas }) => ({
30643
+ address: vaultAddress$3,
30429
30644
  abi: HypoVaultAbi,
30430
30645
  functionName: "multicall",
30431
30646
  args: [multicallCalldatas]
30432
30647
  });
30433
- function simulateRequestWithdrawal({ viemClient, vaultAddress: vaultAddress$1, shares, account }) {
30648
+ function simulateRequestWithdrawal({ viemClient, vaultAddress: vaultAddress$3, shares, account }) {
30434
30649
  return simulateContract(viemClient, {
30435
30650
  ...getRequestWithdrawalContractConfig({
30436
- vaultAddress: vaultAddress$1,
30651
+ vaultAddress: vaultAddress$3,
30437
30652
  shares
30438
30653
  }),
30439
30654
  account
30440
30655
  });
30441
30656
  }
30442
- function requestWithdrawal({ walletClient, vaultAddress: vaultAddress$1, shares, account }) {
30657
+ function requestWithdrawal({ walletClient, vaultAddress: vaultAddress$3, shares, account }) {
30443
30658
  return writeContract(walletClient, {
30444
30659
  ...getRequestWithdrawalContractConfig({
30445
- vaultAddress: vaultAddress$1,
30660
+ vaultAddress: vaultAddress$3,
30446
30661
  shares
30447
30662
  }),
30448
30663
  account
30449
30664
  });
30450
30665
  }
30451
- function simulateRequestWithdrawalMulticall({ viemClient, vaultAddress: vaultAddress$1, multicallCalldatas, account }) {
30666
+ function simulateRequestWithdrawalMulticall({ viemClient, vaultAddress: vaultAddress$3, multicallCalldatas, account }) {
30452
30667
  return simulateContract(viemClient, {
30453
30668
  ...getRequestWithdrawalMulticallContractConfig({
30454
- vaultAddress: vaultAddress$1,
30669
+ vaultAddress: vaultAddress$3,
30455
30670
  multicallCalldatas
30456
30671
  }),
30457
30672
  account
30458
30673
  });
30459
30674
  }
30460
- function requestWithdrawalMulticall({ walletClient, vaultAddress: vaultAddress$1, multicallCalldatas, account }) {
30675
+ function requestWithdrawalMulticall({ walletClient, vaultAddress: vaultAddress$3, multicallCalldatas, account }) {
30461
30676
  return writeContract(walletClient, {
30462
30677
  ...getRequestWithdrawalMulticallContractConfig({
30463
- vaultAddress: vaultAddress$1,
30678
+ vaultAddress: vaultAddress$3,
30464
30679
  multicallCalldatas
30465
30680
  }),
30466
30681
  account
@@ -30531,7 +30746,7 @@ function buildRequestWithdrawalCalldatas({ user, desiredAssets, requestAllAvaila
30531
30746
 
30532
30747
  //#endregion
30533
30748
  //#region src/hypoVault/requestWithdrawal/hooks/use-claim-vault-shares.ts
30534
- const useClaimVaultShares = ({ chainId, vaultAddress: vaultAddress$1, queuedDeposits, depositEpochStates, currentDepositEpoch, simulationAccount, onWaitSuccess }) => {
30749
+ const useClaimVaultShares = ({ chainId, vaultAddress: vaultAddress$3, queuedDeposits, depositEpochStates, currentDepositEpoch, simulationAccount, onWaitSuccess }) => {
30535
30750
  const { address: account } = useAccount();
30536
30751
  const simulatedAccount = simulationAccount ?? account;
30537
30752
  const user = simulatedAccount ?? zeroAddress;
@@ -30546,11 +30761,11 @@ const useClaimVaultShares = ({ chainId, vaultAddress: vaultAddress$1, queuedDepo
30546
30761
  depositEpochStates,
30547
30762
  currentDepositEpoch
30548
30763
  ]);
30549
- const canSimulate = multicallCalldatas.length > 0 && vaultAddress$1 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress;
30764
+ const canSimulate = multicallCalldatas.length > 0 && vaultAddress$3 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress;
30550
30765
  const simulate = useSimulateContract({
30551
30766
  chainId,
30552
30767
  ...getRequestWithdrawalMulticallContractConfig({
30553
- vaultAddress: vaultAddress$1,
30768
+ vaultAddress: vaultAddress$3,
30554
30769
  multicallCalldatas
30555
30770
  }),
30556
30771
  account: simulatedAccount,
@@ -30623,7 +30838,7 @@ const useClaimVaultShares = ({ chainId, vaultAddress: vaultAddress$1, queuedDepo
30623
30838
 
30624
30839
  //#endregion
30625
30840
  //#region src/hypoVault/requestWithdrawal/hooks/use-request-withdrawal.ts
30626
- const useRequestWithdrawal = ({ chainId, vaultAddress: vaultAddress$1, desiredAssets, requestAllAvailableShares = false, sharePrice, walletShares, queuedDeposits, depositEpochStates, currentDepositEpoch, simulationAccount, onWaitSuccess }) => {
30841
+ const useRequestWithdrawal = ({ chainId, vaultAddress: vaultAddress$3, desiredAssets, requestAllAvailableShares = false, sharePrice, walletShares, queuedDeposits, depositEpochStates, currentDepositEpoch, simulationAccount, onWaitSuccess }) => {
30627
30842
  const { address: account } = useAccount();
30628
30843
  const simulatedAccount = simulationAccount ?? account;
30629
30844
  const user = simulatedAccount ?? zeroAddress;
@@ -30646,11 +30861,11 @@ const useRequestWithdrawal = ({ chainId, vaultAddress: vaultAddress$1, desiredAs
30646
30861
  depositEpochStates,
30647
30862
  currentDepositEpoch
30648
30863
  ]);
30649
- const canSimulate = multicallCalldatas.length > 0 && vaultAddress$1 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress;
30864
+ const canSimulate = multicallCalldatas.length > 0 && vaultAddress$3 !== zeroAddress && simulatedAccount != null && simulatedAccount !== zeroAddress;
30650
30865
  const simulate = useSimulateContract({
30651
30866
  chainId,
30652
30867
  ...getRequestWithdrawalMulticallContractConfig({
30653
- vaultAddress: vaultAddress$1,
30868
+ vaultAddress: vaultAddress$3,
30654
30869
  multicallCalldatas
30655
30870
  }),
30656
30871
  account: simulatedAccount,
@@ -31174,7 +31389,7 @@ function getSdk(client, withWrapper = defaultWrapper) {
31174
31389
  //#endregion
31175
31390
  //#region src/graphqlClient.ts
31176
31391
  const chainToHypoVaultGraphQlAPI = {};
31177
- for (const deployment$2 of Object.values(CHAIN_DEPLOYMENTS)) chainToHypoVaultGraphQlAPI[deployment$2.chainId] = deployment$2.subgraphs.hypovault;
31392
+ for (const deployment$3 of Object.values(CHAIN_DEPLOYMENTS)) chainToHypoVaultGraphQlAPI[deployment$3.chainId] = deployment$3.subgraphs.hypovault;
31178
31393
  function getHypoVaultGraphQLClient(chainId) {
31179
31394
  const apiUrl = chainToHypoVaultGraphQlAPI[chainId];
31180
31395
  if (apiUrl === void 0) throw new Error(`Unsupported HypoVault subgraph chainId: ${chainId}`);
@@ -31188,7 +31403,7 @@ function parseTimestampSec(value) {
31188
31403
  const parsed = Number(value);
31189
31404
  return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
31190
31405
  }
31191
- async function fetchFirstDepositTimestampForVault({ graphClient, vaultAddress: vaultAddress$1 }) {
31406
+ async function fetchFirstDepositTimestampForVault({ graphClient, vaultAddress: vaultAddress$3 }) {
31192
31407
  const response = await graphClient.request(`
31193
31408
  query FirstVaultDepositTimestamp($hypoVault: String!) {
31194
31409
  depositExecuteds(
@@ -31222,7 +31437,7 @@ async function fetchFirstDepositTimestampForVault({ graphClient, vaultAddress: v
31222
31437
  }
31223
31438
  }
31224
31439
  }
31225
- `, { hypoVault: vaultAddress$1.toLowerCase() });
31440
+ `, { hypoVault: vaultAddress$3.toLowerCase() });
31226
31441
  const timestamps = [...response.depositExecuteds, ...response.depositsFulfilleds].map((event) => parseTimestampSec(event.blockTimestamp)).filter((timestamp) => timestamp !== null);
31227
31442
  if (timestamps.length === 0) return null;
31228
31443
  return Math.min(...timestamps);
@@ -31231,8 +31446,8 @@ async function fetchFirstDepositTimestampByVaultId({ chainId, vaultAddresses })
31231
31446
  const endpoint = chainToHypoVaultGraphQlAPI[chainId];
31232
31447
  if (endpoint === void 0 || vaultAddresses.length === 0) return {};
31233
31448
  const graphClient = new GraphQLClient(endpoint);
31234
- const entries = await Promise.all(vaultAddresses.map(async (vaultAddress$1) => {
31235
- const vaultAddressLower = vaultAddress$1.toLowerCase();
31449
+ const entries = await Promise.all(vaultAddresses.map(async (vaultAddress$3) => {
31450
+ const vaultAddressLower = vaultAddress$3.toLowerCase();
31236
31451
  const timestamp = await fetchFirstDepositTimestampForVault({
31237
31452
  graphClient,
31238
31453
  vaultAddress: vaultAddressLower
@@ -31354,27 +31569,27 @@ function getStaleOracleStateOverrideForAccountant(accountantAddress) {
31354
31569
  //#endregion
31355
31570
  //#region src/hypoVault/sharePrice/strategies.ts
31356
31571
  const DEFAULT_MANAGER_INPUT = "0x";
31357
- function buildVaultStrategyKey(chainId, vaultAddress$1) {
31358
- return `${chainId}:${vaultAddress$1.toLowerCase()}`;
31572
+ function buildVaultStrategyKey(chainId, vaultAddress$3) {
31573
+ return `${chainId}:${vaultAddress$3.toLowerCase()}`;
31359
31574
  }
31360
31575
  function resolveChainWethAddress(chainId) {
31361
- let deployment$2;
31576
+ let deployment$3;
31362
31577
  try {
31363
- deployment$2 = requireChainDeployment(chainId);
31578
+ deployment$3 = requireChainDeployment(chainId);
31364
31579
  } catch {
31365
31580
  return void 0;
31366
31581
  }
31367
- const wethVaultAddress = deployment$2.hypovault.vaults.wethPlpVault;
31582
+ const wethVaultAddress = deployment$3.hypovault.vaults.wethPlpVault;
31368
31583
  return getHypoVaultConfigForVault(wethVaultAddress, chainId)?.addresses?.underlyingToken;
31369
31584
  }
31370
- function getPlpManagerAddress(chainId, vaultAddress$1) {
31371
- return getHypoVaultConfigForVault(vaultAddress$1, chainId)?.addresses?.hypoVaultManagerWithMerkleVerification ?? null;
31585
+ function getPlpManagerAddress(chainId, vaultAddress$3) {
31586
+ return getHypoVaultConfigForVault(vaultAddress$3, chainId)?.addresses?.hypoVaultManagerWithMerkleVerification ?? null;
31372
31587
  }
31373
- async function getPlpPoolInfosAtBlock({ chainId, client, vaultAddress: vaultAddress$1, blockNumber }) {
31588
+ async function getPlpPoolInfosAtBlock({ chainId, client, vaultAddress: vaultAddress$3, blockNumber }) {
31374
31589
  return resolveVaultPoolInfosAtBlock({
31375
31590
  viemClient: client,
31376
31591
  chainId,
31377
- vaultAddress: vaultAddress$1,
31592
+ vaultAddress: vaultAddress$3,
31378
31593
  blockNumber
31379
31594
  });
31380
31595
  }
@@ -31382,27 +31597,27 @@ function createPlpManagerInputStrategy(minBlock) {
31382
31597
  return {
31383
31598
  enabledMetrics: ["nav"],
31384
31599
  resolveCandidates: async ({ chainId, vault: vault$2 }) => {
31385
- const vaultAddress$1 = vault$2.id;
31386
- const poolInfos = getVaultCandidatePoolInfos(vaultAddress$1, chainId);
31600
+ const vaultAddress$3 = vault$2.id;
31601
+ const poolInfos = getVaultCandidatePoolInfos(vaultAddress$3, chainId);
31387
31602
  if (poolInfos.length === 0) return [];
31388
31603
  return resolveVaultHistoricalCandidatesByPool({
31389
31604
  chainId,
31390
- vaultAddress: vaultAddress$1,
31391
- managerAddress: getPlpManagerAddress(chainId, vaultAddress$1),
31605
+ vaultAddress: vaultAddress$3,
31606
+ managerAddress: getPlpManagerAddress(chainId, vaultAddress$3),
31392
31607
  poolInfos
31393
31608
  });
31394
31609
  },
31395
31610
  recoverCandidates: async ({ chainId, client, vault: vault$2, blockNumber, fromBlock, candidates }) => {
31396
- const vaultAddress$1 = vault$2.id;
31611
+ const vaultAddress$3 = vault$2.id;
31397
31612
  return recoverVaultCandidateTokenIdsByPool({
31398
31613
  viemClient: client,
31399
31614
  chainId,
31400
- vaultAddress: vaultAddress$1,
31615
+ vaultAddress: vaultAddress$3,
31401
31616
  candidatesByPool: candidates,
31402
31617
  poolInfos: await getPlpPoolInfosAtBlock({
31403
31618
  chainId,
31404
31619
  client,
31405
- vaultAddress: vaultAddress$1,
31620
+ vaultAddress: vaultAddress$3,
31406
31621
  blockNumber
31407
31622
  }),
31408
31623
  blockNumber,
@@ -31410,7 +31625,7 @@ function createPlpManagerInputStrategy(minBlock) {
31410
31625
  });
31411
31626
  },
31412
31627
  managerInputProvider: async ({ chainId, client, vault: vault$2, blockNumber, candidates }) => {
31413
- const vaultAddress$1 = vault$2.id;
31628
+ const vaultAddress$3 = vault$2.id;
31414
31629
  if (minBlock !== void 0 && blockNumber < minBlock) throw new VaultApyPreInceptionBlockError({
31415
31630
  blockNumber,
31416
31631
  minBlockNumber: minBlock,
@@ -31419,20 +31634,20 @@ function createPlpManagerInputStrategy(minBlock) {
31419
31634
  const poolInfos = await getPlpPoolInfosAtBlock({
31420
31635
  chainId,
31421
31636
  client,
31422
- vaultAddress: vaultAddress$1,
31637
+ vaultAddress: vaultAddress$3,
31423
31638
  blockNumber
31424
31639
  });
31425
31640
  if (poolInfos.length === 0) return DEFAULT_MANAGER_INPUT;
31426
31641
  const tokenIds = candidates === void 0 ? await resolveVaultTokenIdsByPool({
31427
31642
  viemClient: client,
31428
31643
  chainId,
31429
- vaultAddress: vaultAddress$1,
31430
- managerAddress: getPlpManagerAddress(chainId, vaultAddress$1),
31644
+ vaultAddress: vaultAddress$3,
31645
+ managerAddress: getPlpManagerAddress(chainId, vaultAddress$3),
31431
31646
  poolInfos,
31432
31647
  verificationBlockNumber: blockNumber
31433
31648
  }) : await verifyVaultOpenTokenIdsAtBlock({
31434
31649
  viemClient: client,
31435
- vaultAddress: vaultAddress$1,
31650
+ vaultAddress: vaultAddress$3,
31436
31651
  candidatesByPool: poolInfos.map((poolInfo) => {
31437
31652
  const candidate = candidates.find((item) => item.poolAddress.toLowerCase() === poolInfo.pool.toLowerCase());
31438
31653
  if (candidate === void 0) throw new Error(`Missing token-id candidates for authorized pool ${poolInfo.pool}`);
@@ -31476,16 +31691,16 @@ const strategyOverridesByVaultKey = {
31476
31691
  [buildVaultStrategyKey(SEPOLIA_CHAIN_ID, SepoliaUSDCPLPVaultPoolInfos.vaultAddress)]: createPlpManagerInputStrategy(SEPOLIA_PLP_POOL_MIN_BLOCK),
31477
31692
  [buildVaultStrategyKey(SEPOLIA_CHAIN_ID, SepoliaWETHPLPVaultPoolInfos.vaultAddress)]: createPlpManagerInputStrategy(SEPOLIA_PLP_POOL_MIN_BLOCK)
31478
31693
  };
31479
- function getVaultApyStrategy({ chainId, vaultAddress: vaultAddress$1 }) {
31480
- const key = buildVaultStrategyKey(chainId, vaultAddress$1);
31694
+ function getVaultApyStrategy({ chainId, vaultAddress: vaultAddress$3 }) {
31695
+ const key = buildVaultStrategyKey(chainId, vaultAddress$3);
31481
31696
  return strategyOverridesByVaultKey[key] ?? defaultStrategy;
31482
31697
  }
31483
- function setVaultApyStrategyOverride({ chainId, vaultAddress: vaultAddress$1, strategy }) {
31484
- const key = buildVaultStrategyKey(chainId, vaultAddress$1);
31698
+ function setVaultApyStrategyOverride({ chainId, vaultAddress: vaultAddress$3, strategy }) {
31699
+ const key = buildVaultStrategyKey(chainId, vaultAddress$3);
31485
31700
  strategyOverridesByVaultKey[key] = strategy;
31486
31701
  }
31487
- function clearVaultApyStrategyOverride({ chainId, vaultAddress: vaultAddress$1 }) {
31488
- const key = buildVaultStrategyKey(chainId, vaultAddress$1);
31702
+ function clearVaultApyStrategyOverride({ chainId, vaultAddress: vaultAddress$3 }) {
31703
+ const key = buildVaultStrategyKey(chainId, vaultAddress$3);
31489
31704
  delete strategyOverridesByVaultKey[key];
31490
31705
  }
31491
31706
 
@@ -31505,12 +31720,12 @@ function getAssetsDepositedFromDepositEpochState(value) {
31505
31720
  return null;
31506
31721
  }
31507
31722
  async function fetchVaultSharePriceSnapshot({ client, vault: vault$2, chainId, windowLabel, blockNumber, readContractFn, candidates, includeTokenIdsInDiagnostics = false }) {
31508
- const vaultAddress$1 = vault$2.id;
31723
+ const vaultAddress$3 = vault$2.id;
31509
31724
  const accountantAddress = vault$2.accountant;
31510
31725
  const underlyingTokenAddress = vault$2.underlyingToken.id;
31511
31726
  const strategy = getVaultApyStrategy({
31512
31727
  chainId,
31513
- vaultAddress: vaultAddress$1
31728
+ vaultAddress: vaultAddress$3
31514
31729
  });
31515
31730
  const managerInputProviderResult = await strategy.managerInputProvider({
31516
31731
  chainId,
@@ -31542,7 +31757,7 @@ async function fetchVaultSharePriceSnapshot({ client, vault: vault$2, chainId, w
31542
31757
  readWithContext({
31543
31758
  callName: "depositEpoch",
31544
31759
  request: {
31545
- address: vaultAddress$1,
31760
+ address: vaultAddress$3,
31546
31761
  abi: HypoVaultAbi,
31547
31762
  functionName: "depositEpoch",
31548
31763
  blockNumber
@@ -31551,7 +31766,7 @@ async function fetchVaultSharePriceSnapshot({ client, vault: vault$2, chainId, w
31551
31766
  readWithContext({
31552
31767
  callName: "reservedWithdrawalAssets",
31553
31768
  request: {
31554
- address: vaultAddress$1,
31769
+ address: vaultAddress$3,
31555
31770
  abi: HypoVaultAbi,
31556
31771
  functionName: "reservedWithdrawalAssets",
31557
31772
  blockNumber
@@ -31560,7 +31775,7 @@ async function fetchVaultSharePriceSnapshot({ client, vault: vault$2, chainId, w
31560
31775
  readWithContext({
31561
31776
  callName: "totalSupply",
31562
31777
  request: {
31563
- address: vaultAddress$1,
31778
+ address: vaultAddress$3,
31564
31779
  abi: HypoVaultAbi,
31565
31780
  functionName: "totalSupply",
31566
31781
  blockNumber
@@ -31572,7 +31787,7 @@ async function fetchVaultSharePriceSnapshot({ client, vault: vault$2, chainId, w
31572
31787
  const depositEpochStateRaw = await readWithContext({
31573
31788
  callName: "depositEpochState",
31574
31789
  request: {
31575
- address: vaultAddress$1,
31790
+ address: vaultAddress$3,
31576
31791
  abi: HypoVaultAbi,
31577
31792
  functionName: "depositEpochState",
31578
31793
  args: [depositEpoch],
@@ -31591,7 +31806,7 @@ async function fetchVaultSharePriceSnapshot({ client, vault: vault$2, chainId, w
31591
31806
  abi: PanopticVaultAccountantAbi,
31592
31807
  functionName: "computeNAV",
31593
31808
  args: [
31594
- vaultAddress$1,
31809
+ vaultAddress$3,
31595
31810
  underlyingTokenAddress,
31596
31811
  managerInput
31597
31812
  ],
@@ -31749,12 +31964,12 @@ function deriveVaultApyTimeseriesFromSharePrices(sharePricePoints) {
31749
31964
  const sorted = [...sharePricePoints].sort((a, b) => a.timestampSec - b.timestampSec);
31750
31965
  const points = [];
31751
31966
  for (let i = 1; i < sorted.length; i += 1) {
31752
- const previous = sorted[i - 1];
31967
+ const previous$1 = sorted[i - 1];
31753
31968
  const current = sorted[i];
31754
- const days = (current.timestampSec - previous.timestampSec) / SECONDS_PER_DAY$1;
31969
+ const days = (current.timestampSec - previous$1.timestampSec) / SECONDS_PER_DAY$1;
31755
31970
  const apyPct = calculateAnnualizedApyPct({
31756
31971
  currentSharePrice: new Decimal(current.sharePrice),
31757
- previousSharePrice: new Decimal(previous.sharePrice),
31972
+ previousSharePrice: new Decimal(previous$1.sharePrice),
31758
31973
  days
31759
31974
  });
31760
31975
  if (apyPct === null || !Number.isFinite(apyPct)) continue;
@@ -31854,6 +32069,7 @@ function resolveFeeHistoryQuote({ baseFeePerGas, reward, minimumPriorityFeePerGa
31854
32069
  const maxPriorityFeePerGas = clampPriorityFee(sampledPriorityFee, effectivePriorityFeeFloor);
31855
32070
  const bufferedBaseFee = ceilMultiplyFraction(baseFeePerGas[latestBaseFeeIndex], BASE_FEE_BUFFER_NUMERATOR, BASE_FEE_BUFFER_DENOMINATOR);
31856
32071
  return {
32072
+ currentBaseFeePerGas: baseFeePerGas[latestBaseFeeIndex],
31857
32073
  maxFeePerGas: bufferedBaseFee + maxPriorityFeePerGas,
31858
32074
  maxPriorityFeePerGas,
31859
32075
  minimumMaxFeePerGas: bufferedBaseFee + effectivePriorityFeeFloor,
@@ -31988,11 +32204,15 @@ function validateVaultSignedTransactionFeeCaps(feeCaps, quote) {
31988
32204
  code: "GasCostTooHigh",
31989
32205
  reason: `Signed transaction maximum gas cost (${(gasLimit * maxFeePerGas).toString()} wei) must not exceed ${MAX_VAULT_TRANSACTION_GAS_COST.toString()} wei (0.015 ETH).`
31990
32206
  };
31991
- if (quote !== void 0 && maxFeePerGas < quote.minimumMaxFeePerGas) return {
31992
- valid: false,
31993
- code: "MaxFeeTooLow",
31994
- reason: `Signed transaction maxFeePerGas (${maxFeePerGas.toString()} wei) must be at least ${quote.minimumMaxFeePerGas.toString()} wei for the buffered next-block base fee and configured minimum priority fee.`
31995
- };
32207
+ if (quote !== void 0) {
32208
+ const feeRequirementDescription = quote.currentBaseFeePerGas === void 0 ? "buffered next-block base fee" : "current base fee";
32209
+ const minimumBroadcastMaxFeePerGas = quote.currentBaseFeePerGas === void 0 ? quote.minimumMaxFeePerGas : quote.currentBaseFeePerGas + minimumPriorityFeePerGas;
32210
+ if (maxFeePerGas < minimumBroadcastMaxFeePerGas) return {
32211
+ valid: false,
32212
+ code: "MaxFeeTooLow",
32213
+ reason: `Signed transaction maxFeePerGas (${maxFeePerGas.toString()} wei) must be at least ${minimumBroadcastMaxFeePerGas.toString()} wei for the ${feeRequirementDescription} and configured minimum priority fee.`
32214
+ };
32215
+ }
31996
32216
  return { valid: true };
31997
32217
  }
31998
32218
  async function resolveVaultTransactionFeeQuote({ readFeeHistory, readFallbackEstimate, minimumPriorityFeePerGas }) {
@@ -32571,5 +32791,5 @@ async function getIrmCurve(params) {
32571
32791
  }
32572
32792
 
32573
32793
  //#endregion
32574
- 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_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, MAINNET_USDC_PLP_COMPILED_POOL_POLICY, MAINNET_USDC_PLP_POOL_POLICY, MAINNET_V3_AUTHORIZATION_BLOCK, MAINNET_WETH_PLP_COMPILED_POOL_POLICY, MAINNET_WETH_PLP_POOL_POLICY, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MAX_STALE_DELTA_HEDGE_PRIORITY_FEE_PER_GAS, MAX_VAULT_PRIORITY_FEE_PER_GAS, MAX_VAULT_TRANSACTION_GAS_COST, MIN_VAULT_PRIORITY_FEE_PER_GAS, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPPreviousStrategistLeaves, MainnetUSDCPLPPreviousVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPV3AuthorizedStrategistLeaves, MainnetUSDCPLPV3AuthorizedVaultPoolInfos, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPPreviousStrategistLeaves, MainnetWETHPLPPreviousVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPV3AuthorizedStrategistLeaves, MainnetWETHPLPV3AuthorizedVaultPoolInfos, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, ROBINHOOD_CHAIN_ID, ROBINHOOD_DEPLOYMENT, ROBINHOOD_HYPOVAULT_ADDRESSES, ROBINHOOD_HYPOVAULT_CORE_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, ROBINHOOD_PANOPTIC_POOL_ADDRESSES, ROBINHOOD_PANOPTIC_V2_ADDRESSES, ROBINHOOD_RISK_ENGINES, ROBINHOOD_SPY_USDG_MARKET, ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY, ROBINHOOD_USDG_PLP_POOL_POLICY, RescueDistributorAbi, RobinhoodUSDGPLPStrategistLeaves, RobinhoodUSDGPLPVaultPoolInfos, 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, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, UsdgPlpVaultRobinhoodProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, VaultApyPreInceptionBlockError, VaultTransactionFeeEstimationError, VaultTransactionGasCostLimitError, VaultTransactionReplacementLimitError, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, adjustUnderlyingIdleBalance, annualizePerSecondRateWad, applyVaultTransactionGasCostLimit, bufferVaultTransactionGasEstimate, buildClaimVaultShareCalldatas, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAnnualizedApyPct, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, calculateVaultNetLendingApyPctFromTrackerInputs, calculateVaultNetLendingYieldUnderlyingFromTrackerInputs, cancelDeposit, chainToHypoVaultGraphQlAPI, clearVaultApyStrategyOverride, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, computeSharePriceFromNavSnapshot, convertJsonTreeToArray, createVaultSharePriceProcessor, deriveSupplyRatePerSecWad, deriveVaultApyTimeseriesFromSharePrices, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, fetchFirstDepositTimestampByVaultId, fetchVaultLendingAllocation, fetchVaultNetLendingApyPct, fetchVaultNetLendingYieldUnderlying, fetchVaultSharePriceSnapshot, fetchVaultSharePriceSnapshotWithCandidateRecovery, findLeaf, findLeafForTarget, findLeafForTargetAndSignature, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAaveHoldings, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getMorphoHoldings, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getSpyUsdgMarket, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getStkAaveHoldings, getVaultApyErrorMessage, getVaultApyStrategy, getVaultCandidatePoolInfos, getVaultDeltaHedgeHistoricalFeeQuote, getVaultDeltaHedgeInitialFeeQuote, getVaultPoolInfos, getVaultTransactionFeeQuote, getVaultTransactionReplacementFeeQuote, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticLiquidatorAbi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, recoverVaultCandidateTokenIdsByPool, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolvePositionScanFromBlock, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultPoolInfosAtBlock, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, statusForVaultSharePriceSnapshot, useCancelDeposit, useClaimVaultShares, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, validateVaultSignedTransactionFeeCaps, verifyVaultOpenTokenIdsAtBlock };
32794
+ 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_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, MAINNET_USDC_PLP_COMPILED_POOL_POLICY, MAINNET_USDC_PLP_POOL_POLICY, MAINNET_V3_AUTHORIZATION_BLOCK, MAINNET_WETH_PLP_COMPILED_POOL_POLICY, MAINNET_WETH_PLP_POOL_POLICY, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MAX_STALE_DELTA_HEDGE_PRIORITY_FEE_PER_GAS, MAX_VAULT_PRIORITY_FEE_PER_GAS, MAX_VAULT_TRANSACTION_GAS_COST, MIN_VAULT_PRIORITY_FEE_PER_GAS, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPPreviousStrategistLeaves, MainnetUSDCPLPPreviousVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPV3AuthorizedStrategistLeaves, MainnetUSDCPLPV3AuthorizedVaultPoolInfos, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPPreviousStrategistLeaves, MainnetWETHPLPPreviousVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPV3AuthorizedStrategistLeaves, MainnetWETHPLPV3AuthorizedVaultPoolInfos, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, ROBINHOOD_CHAIN_ID, ROBINHOOD_DEPLOYMENT, ROBINHOOD_HYPOVAULT_ADDRESSES, ROBINHOOD_HYPOVAULT_CORE_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, ROBINHOOD_PANOPTIC_POOL_ADDRESSES, ROBINHOOD_PANOPTIC_V2_ADDRESSES, ROBINHOOD_RISK_ENGINES, ROBINHOOD_SPY_USDG_30BPS_MARKET, ROBINHOOD_SPY_USDG_30BPS_PANOPTIC_POOL_ADDRESSES, ROBINHOOD_SPY_USDG_30BPS_POOL_DEPLOYMENT_BLOCK, ROBINHOOD_SPY_USDG_30BPS_POOL_INFO, ROBINHOOD_SPY_USDG_5BPS_MARKET, ROBINHOOD_SPY_USDG_5BPS_PANOPTIC_POOL_ADDRESSES, ROBINHOOD_SPY_USDG_5BPS_POOL_DEPLOYMENT_BLOCK, ROBINHOOD_SPY_USDG_5BPS_POOL_INFO, ROBINHOOD_SPY_USDG_MARKET, ROBINHOOD_SPY_USDG_POOL_DEPLOYMENT_BLOCK, ROBINHOOD_SPY_USDG_POOL_INFO, ROBINHOOD_USDG_30BPS_MANAGE_ROOT, ROBINHOOD_USDG_30BPS_POOL_HASH, ROBINHOOD_USDG_5BPS_POOL_HASH, ROBINHOOD_USDG_PLP_30BPS_COMPILED_POOL_POLICY, ROBINHOOD_USDG_PLP_30BPS_POOL_POLICY, ROBINHOOD_USDG_PLP_5BPS_COMPILED_POOL_POLICY, ROBINHOOD_USDG_PLP_5BPS_POOL_POLICY, ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY, ROBINHOOD_USDG_PLP_POOL_POLICY, ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK, RescueDistributorAbi, RobinhoodUSDGPLP30bpsStrategistLeaves, RobinhoodUSDGPLP30bpsVaultPoolInfos, RobinhoodUSDGPLP5bpsStrategistLeaves, RobinhoodUSDGPLP5bpsVaultPoolInfos, RobinhoodUSDGPLPStrategistLeaves, RobinhoodUSDGPLPVaultPoolInfos, 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, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, UsdgPlpVaultRobinhoodProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, VaultApyPreInceptionBlockError, VaultTransactionFeeEstimationError, VaultTransactionGasCostLimitError, VaultTransactionReplacementLimitError, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, adjustUnderlyingIdleBalance, annualizePerSecondRateWad, applyVaultTransactionGasCostLimit, bufferVaultTransactionGasEstimate, buildClaimVaultShareCalldatas, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAnnualizedApyPct, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, calculateVaultNetLendingApyPctFromTrackerInputs, calculateVaultNetLendingYieldUnderlyingFromTrackerInputs, cancelDeposit, chainToHypoVaultGraphQlAPI, clearVaultApyStrategyOverride, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, computeSharePriceFromNavSnapshot, convertJsonTreeToArray, createVaultSharePriceProcessor, deriveSupplyRatePerSecWad, deriveVaultApyTimeseriesFromSharePrices, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, fetchFirstDepositTimestampByVaultId, fetchVaultLendingAllocation, fetchVaultNetLendingApyPct, fetchVaultNetLendingYieldUnderlying, fetchVaultSharePriceSnapshot, fetchVaultSharePriceSnapshotWithCandidateRecovery, findLeaf, findLeafForTarget, findLeafForTargetAndSignature, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAaveHoldings, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getMorphoHoldings, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getRobinhoodSpyUsdgAuthorizationGenerations, getSpyUsdgMarket, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getStkAaveHoldings, getVaultApyErrorMessage, getVaultApyStrategy, getVaultCandidatePoolInfos, getVaultDeltaHedgeHistoricalFeeQuote, getVaultDeltaHedgeInitialFeeQuote, getVaultManagerRootAtBlock, getVaultManagerRootHistory, getVaultPoolConfigurationAtBlock, getVaultPoolConfigurationHistory, getVaultPoolInfos, getVaultTransactionFeeQuote, getVaultTransactionReplacementFeeQuote, hashRobinhoodSpyUsdgPoolInfos, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticLiquidatorAbi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, recoverVaultCandidateTokenIdsByPool, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolvePositionScanFromBlock, resolveRobinhoodSpyUsdgAuthorizationArtifacts, resolveRobinhoodSpyUsdgAuthorizationState, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultPoolInfosAtBlock, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, statusForVaultSharePriceSnapshot, useCancelDeposit, useClaimVaultShares, useErc20Balance, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, validateVaultSignedTransactionFeeCaps, verifyVaultOpenTokenIdsAtBlock };
32575
32795
  //# sourceMappingURL=index.js.map