@panoptic-eng/sdk 1.0.47 → 1.0.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -25777,8 +25777,10 @@ const SepoliaWETHPLPVaultPoolInfos = {
25777
25777
  };
25778
25778
 
25779
25779
  //#endregion
25780
- //#region src/hypoVault/mainnetVaultPoolHistory.ts
25780
+ //#region src/hypoVault/mainnetV3Authorization.ts
25781
25781
  const MAINNET_DEPLOYMENT$2 = requireChainDeployment(MAINNET_CHAIN_ID);
25782
+ /** Block containing the successful V3 accountant-hash and manager-root update. */
25783
+ const MAINNET_V3_AUTHORIZATION_BLOCK = 25704951n;
25782
25784
  const POOL_INFO_ARRAY_ABI$1 = {
25783
25785
  type: "tuple[]",
25784
25786
  components: [
@@ -25800,6 +25802,25 @@ const POOL_INFO_ARRAY_ABI$1 = {
25800
25802
  }
25801
25803
  ]
25802
25804
  };
25805
+ function createVaultTransition(transition) {
25806
+ return {
25807
+ ...transition,
25808
+ generations: [
25809
+ {
25810
+ version: "previous",
25811
+ ...transition.previous
25812
+ },
25813
+ {
25814
+ version: "next",
25815
+ ...transition.next
25816
+ },
25817
+ {
25818
+ version: "v3-only",
25819
+ ...transition.current
25820
+ }
25821
+ ]
25822
+ };
25823
+ }
25803
25824
  function hashPoolInfos$1(poolInfos) {
25804
25825
  return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI$1], [poolInfos.map((poolInfo) => ({
25805
25826
  pool: getAddress(poolInfo.pool),
@@ -25808,12 +25829,140 @@ function hashPoolInfos$1(poolInfos) {
25808
25829
  maxPriceDeviation: poolInfo.maxPriceDeviation
25809
25830
  }))]));
25810
25831
  }
25832
+ function generation(poolInfos, strategistLeaves) {
25833
+ return {
25834
+ poolInfos,
25835
+ strategistLeaves,
25836
+ poolHash: hashPoolInfos$1(poolInfos),
25837
+ manageRoot: strategistLeaves.metadata.ManageRoot
25838
+ };
25839
+ }
25840
+ const MAINNET_V3_AUTHORIZATION_TRANSITIONS = [createVaultTransition({
25841
+ vaultAddress: MAINNET_DEPLOYMENT$2.hypovault.vaults.wethPlpVault,
25842
+ managerAddress: MAINNET_DEPLOYMENT$2.hypovault.managers.wethPlpVaultManager,
25843
+ strategistAddress: MAINNET_DEPLOYMENT$2.hypovault.turnkeySigners.wethPlpVaultManager,
25844
+ activationBlockNumber: MAINNET_V3_AUTHORIZATION_BLOCK,
25845
+ previous: generation(MainnetWETHPLPPreviousVaultPoolInfos.poolInfos, MainnetWETHPLPPreviousStrategistLeaves),
25846
+ next: generation(MainnetWETHPLPV3AuthorizedVaultPoolInfos.poolInfos, MainnetWETHPLPV3AuthorizedStrategistLeaves),
25847
+ current: generation(MainnetWETHPLPVaultPoolInfos.poolInfos, MainnetWETHPLPStrategistLeaves)
25848
+ }), createVaultTransition({
25849
+ vaultAddress: MAINNET_DEPLOYMENT$2.hypovault.vaults.usdcPlpVault,
25850
+ managerAddress: MAINNET_DEPLOYMENT$2.hypovault.managers.usdcPlpVaultManager,
25851
+ strategistAddress: MAINNET_DEPLOYMENT$2.hypovault.turnkeySigners.usdcPlpVaultManager,
25852
+ activationBlockNumber: MAINNET_V3_AUTHORIZATION_BLOCK,
25853
+ previous: generation(MainnetUSDCPLPPreviousVaultPoolInfos.poolInfos, MainnetUSDCPLPPreviousStrategistLeaves),
25854
+ next: generation(MainnetUSDCPLPV3AuthorizedVaultPoolInfos.poolInfos, MainnetUSDCPLPV3AuthorizedStrategistLeaves),
25855
+ current: generation(MainnetUSDCPLPVaultPoolInfos.poolInfos, MainnetUSDCPLPStrategistLeaves)
25856
+ })];
25857
+ const authorizationCacheByClient = new WeakMap();
25858
+ function findTransition(chainId, vaultAddress) {
25859
+ if (chainId !== MAINNET_CHAIN_ID) return null;
25860
+ const normalizedVault = vaultAddress.toLowerCase();
25861
+ return MAINNET_V3_AUTHORIZATION_TRANSITIONS.find((transition) => transition.vaultAddress.toLowerCase() === normalizedVault) ?? null;
25862
+ }
25863
+ /** Returns both known generations without reading chain state. */
25864
+ function getMainnetV3AuthorizationGenerations({ chainId, vaultAddress }) {
25865
+ const transition = findTransition(chainId, vaultAddress);
25866
+ return transition === null ? null : {
25867
+ previous: transition.previous,
25868
+ next: transition.next,
25869
+ current: transition.current
25870
+ };
25871
+ }
25872
+ /**
25873
+ * Selects the mainnet authorization artifacts active at a historical block without RPC reads.
25874
+ * Live callers should use the compiled current artifacts directly; this selector exists for
25875
+ * block-pinned NAV and manager-input reconstruction across the V3 authorization boundary.
25876
+ */
25877
+ function getMainnetV3AuthorizationArtifactsAtBlock({ chainId, vaultAddress, blockNumber }) {
25878
+ const transition = findTransition(chainId, vaultAddress);
25879
+ if (transition === null) return null;
25880
+ const version = blockNumber < transition.activationBlockNumber ? "previous" : "next";
25881
+ return {
25882
+ blockNumber,
25883
+ version,
25884
+ ...transition[version]
25885
+ };
25886
+ }
25887
+ /**
25888
+ * Selects the exact artifact generation authorized by both the accountant and manager.
25889
+ * A mixed or unknown state is rejected: using only one side of the transition would
25890
+ * make either NAV calculation or strategist proof verification fail.
25891
+ * Every authorization release must add its generation to this transition table before
25892
+ * the on-chain hashes change, so startup and release verification keeps recognizing it.
25893
+ */
25894
+ async function resolveMainnetV3AuthorizationArtifacts({ viemClient, chainId, vaultAddress, blockNumber }) {
25895
+ const transition = findTransition(chainId, vaultAddress);
25896
+ if (transition === null) return null;
25897
+ const resolvedBlockNumber = blockNumber ?? await getBlockNumber(viemClient);
25898
+ const cacheKey = `${chainId}:${vaultAddress.toLowerCase()}:${resolvedBlockNumber.toString()}`;
25899
+ const clientCache = authorizationCacheByClient.get(viemClient);
25900
+ const cached = clientCache?.get(cacheKey);
25901
+ if (cached !== void 0) return cached;
25902
+ const [poolHash, manageRoot] = await Promise.all([readContract(viemClient, {
25903
+ address: MAINNET_DEPLOYMENT$2.hypovault.core.accountant,
25904
+ abi: PanopticVaultAccountantAbi,
25905
+ functionName: "vaultHashes",
25906
+ args: [transition.vaultAddress, 0n],
25907
+ blockNumber: resolvedBlockNumber
25908
+ }), readContract(viemClient, {
25909
+ address: transition.managerAddress,
25910
+ abi: HypoVaultManagerWithMerkleVerificationAbi,
25911
+ functionName: "manageRoot",
25912
+ args: [transition.strategistAddress],
25913
+ blockNumber: resolvedBlockNumber
25914
+ })]);
25915
+ for (const candidate of [...transition.generations].reverse()) if (poolHash === candidate.poolHash && manageRoot === candidate.manageRoot) {
25916
+ const resolved = {
25917
+ blockNumber: resolvedBlockNumber,
25918
+ ...candidate
25919
+ };
25920
+ const resolvedClientCache = clientCache ?? new Map();
25921
+ resolvedClientCache.set(cacheKey, resolved);
25922
+ if (clientCache === void 0) authorizationCacheByClient.set(viemClient, resolvedClientCache);
25923
+ return resolved;
25924
+ }
25925
+ throw new Error(`Unsupported or inconsistent mainnet v3 authorization state for vault ${transition.vaultAddress}: accountant pool hash ${poolHash}, manager root ${manageRoot}`);
25926
+ }
25927
+
25928
+ //#endregion
25929
+ //#region src/hypoVault/mainnetVaultPoolHistory.ts
25930
+ const MAINNET_DEPLOYMENT$1 = requireChainDeployment(MAINNET_CHAIN_ID);
25931
+ const POOL_INFO_ARRAY_ABI = {
25932
+ type: "tuple[]",
25933
+ components: [
25934
+ {
25935
+ name: "pool",
25936
+ type: "address"
25937
+ },
25938
+ {
25939
+ name: "token0",
25940
+ type: "address"
25941
+ },
25942
+ {
25943
+ name: "token1",
25944
+ type: "address"
25945
+ },
25946
+ {
25947
+ name: "maxPriceDeviation",
25948
+ type: "int24"
25949
+ }
25950
+ ]
25951
+ };
25952
+ function hashPoolInfos(poolInfos) {
25953
+ return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI], [poolInfos.map((poolInfo) => ({
25954
+ pool: getAddress(poolInfo.pool),
25955
+ token0: getAddress(poolInfo.token0),
25956
+ token1: getAddress(poolInfo.token1),
25957
+ maxPriceDeviation: poolInfo.maxPriceDeviation
25958
+ }))]));
25959
+ }
25811
25960
  function poolConfiguration(activationBlockNumber, transactionHash, poolInfos) {
25812
25961
  return {
25813
25962
  activationBlockNumber,
25814
25963
  transactionHash,
25815
25964
  poolInfos,
25816
- poolHash: hashPoolInfos$1(poolInfos)
25965
+ poolHash: hashPoolInfos(poolInfos)
25817
25966
  };
25818
25967
  }
25819
25968
  const wethInitialPoolInfos = MainnetWETHPLPPreviousVaultPoolInfos.poolInfos;
@@ -25832,7 +25981,7 @@ const usdcTwoPoolInitialDeviation = MainnetUSDCPLPPreviousVaultPoolInfos.poolInf
25832
25981
  * does not require historical Merkle leaves.
25833
25982
  */
25834
25983
  const MAINNET_VAULT_HISTORIES = [{
25835
- vaultAddress: MAINNET_DEPLOYMENT$2.hypovault.vaults.wethPlpVault,
25984
+ vaultAddress: MAINNET_DEPLOYMENT$1.hypovault.vaults.wethPlpVault,
25836
25985
  poolConfigurations: [poolConfiguration(25296753n, "0xdb7ed1d63d3f3b158fca070bdbf8d0268ed8e5c398cae772a1facb40987a838e", wethInitialPoolInfos), poolConfiguration(25704951n, "0xb6d62abb10728655c4c9b612abcd82af9e93c5906357eb6be41cabb224b32118", MainnetWETHPLPV3AuthorizedVaultPoolInfos.poolInfos)],
25837
25986
  managerRootTransitions: [
25838
25987
  {
@@ -25852,7 +26001,7 @@ const MAINNET_VAULT_HISTORIES = [{
25852
26001
  }
25853
26002
  ]
25854
26003
  }, {
25855
- vaultAddress: MAINNET_DEPLOYMENT$2.hypovault.vaults.usdcPlpVault,
26004
+ vaultAddress: MAINNET_DEPLOYMENT$1.hypovault.vaults.usdcPlpVault,
25856
26005
  poolConfigurations: [
25857
26006
  poolConfiguration(25296798n, "0x37f7ea4ec78c071b6301576745b22f411ac729363fab4202213c7191d89f48c6", usdcInitialPoolInfos),
25858
26007
  poolConfiguration(25332015n, "0xbe29b782e3aab5cb28476248ff4f5ea67cb6adc16bb5488ec7a1a27f07e59752", usdcTwoPoolInitialDeviation),
@@ -26267,6 +26416,44 @@ function getVaultPoolInfos(vaultAddress, chainId) {
26267
26416
  return artifact?.poolInfos ?? [];
26268
26417
  }
26269
26418
  /**
26419
+ * Returns every pool that can contribute historical position candidates for a vault.
26420
+ * The live accountant generation is selected separately when encoding manager input.
26421
+ */
26422
+ function getVaultCandidatePoolInfos(vaultAddress, chainId) {
26423
+ const generations = getMainnetV3AuthorizationGenerations({
26424
+ chainId,
26425
+ vaultAddress
26426
+ });
26427
+ const candidates = generations === null ? getVaultPoolInfos(vaultAddress, chainId) : [
26428
+ ...generations.previous.poolInfos,
26429
+ ...generations.next.poolInfos,
26430
+ ...generations.current.poolInfos
26431
+ ];
26432
+ const byPoolAddress = new Map();
26433
+ for (const candidate of candidates) {
26434
+ const key = candidate.pool.toLowerCase();
26435
+ if (!byPoolAddress.has(key)) byPoolAddress.set(key, candidate);
26436
+ }
26437
+ return [...byPoolAddress.values()];
26438
+ }
26439
+ /** Selects the pool tuple authorized at an exact block before encoding manager input. */
26440
+ async function resolveVaultPoolInfosAtBlock({ viemClient, chainId, vaultAddress, blockNumber }) {
26441
+ if (chainId === MAINNET_CHAIN_ID && blockNumber >= MAINNET_V3_AUTHORIZATION_BLOCK) {
26442
+ const authorization = await resolveMainnetV3AuthorizationArtifacts({
26443
+ viemClient,
26444
+ chainId,
26445
+ vaultAddress,
26446
+ blockNumber
26447
+ });
26448
+ if (authorization !== null) return authorization.poolInfos;
26449
+ }
26450
+ return getMainnetVaultPoolConfigurationAtBlock({
26451
+ chainId,
26452
+ vaultAddress,
26453
+ blockNumber
26454
+ })?.poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
26455
+ }
26456
+ /**
26270
26457
  * Enrich a cached subgraph candidate superset with the authoritative position
26271
26458
  * list recovered from Panoptic dispatch history at `blockNumber`.
26272
26459
  *
@@ -26463,12 +26650,12 @@ async function buildVaultManagerInput({ viemClient, chainId, vaultAddress, under
26463
26650
  });
26464
26651
  }
26465
26652
  async function buildVaultManagerInputAtBlock({ viemClient, chainId, vaultAddress, underlyingToken, blockNumber, managerAddress, panopticSubgraphUrl, fetchFn }) {
26466
- const historicalPoolConfiguration = getMainnetVaultPoolConfigurationAtBlock({
26653
+ const poolInfos = await resolveVaultPoolInfosAtBlock({
26654
+ viemClient,
26467
26655
  chainId,
26468
26656
  vaultAddress,
26469
26657
  blockNumber
26470
26658
  });
26471
- const poolInfos = historicalPoolConfiguration?.poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
26472
26659
  if (poolInfos.length === 0) return DEFAULT_MANAGER_INPUT$1;
26473
26660
  const tokenIds = await resolveVaultTokenIdsByPool({
26474
26661
  viemClient,
@@ -28763,155 +28950,6 @@ function encodeFulfillWithdrawalsFunctionData({ sharesToFulfill, maxAssetsReceiv
28763
28950
  });
28764
28951
  }
28765
28952
 
28766
- //#endregion
28767
- //#region src/hypoVault/mainnetV3Authorization.ts
28768
- const MAINNET_DEPLOYMENT$1 = requireChainDeployment(MAINNET_CHAIN_ID);
28769
- /** Block containing the successful V3 accountant-hash and manager-root update. */
28770
- const MAINNET_V3_AUTHORIZATION_BLOCK = 25704951n;
28771
- const POOL_INFO_ARRAY_ABI = {
28772
- type: "tuple[]",
28773
- components: [
28774
- {
28775
- name: "pool",
28776
- type: "address"
28777
- },
28778
- {
28779
- name: "token0",
28780
- type: "address"
28781
- },
28782
- {
28783
- name: "token1",
28784
- type: "address"
28785
- },
28786
- {
28787
- name: "maxPriceDeviation",
28788
- type: "int24"
28789
- }
28790
- ]
28791
- };
28792
- function createVaultTransition(transition) {
28793
- return {
28794
- ...transition,
28795
- generations: [
28796
- {
28797
- version: "previous",
28798
- ...transition.previous
28799
- },
28800
- {
28801
- version: "next",
28802
- ...transition.next
28803
- },
28804
- {
28805
- version: "v3-only",
28806
- ...transition.current
28807
- }
28808
- ]
28809
- };
28810
- }
28811
- function hashPoolInfos(poolInfos) {
28812
- return keccak256(encodeAbiParameters([POOL_INFO_ARRAY_ABI], [poolInfos.map((poolInfo) => ({
28813
- pool: getAddress(poolInfo.pool),
28814
- token0: getAddress(poolInfo.token0),
28815
- token1: getAddress(poolInfo.token1),
28816
- maxPriceDeviation: poolInfo.maxPriceDeviation
28817
- }))]));
28818
- }
28819
- function generation(poolInfos, strategistLeaves) {
28820
- return {
28821
- poolInfos,
28822
- strategistLeaves,
28823
- poolHash: hashPoolInfos(poolInfos),
28824
- manageRoot: strategistLeaves.metadata.ManageRoot
28825
- };
28826
- }
28827
- const MAINNET_V3_AUTHORIZATION_TRANSITIONS = [createVaultTransition({
28828
- vaultAddress: MAINNET_DEPLOYMENT$1.hypovault.vaults.wethPlpVault,
28829
- managerAddress: MAINNET_DEPLOYMENT$1.hypovault.managers.wethPlpVaultManager,
28830
- strategistAddress: MAINNET_DEPLOYMENT$1.hypovault.turnkeySigners.wethPlpVaultManager,
28831
- activationBlockNumber: MAINNET_V3_AUTHORIZATION_BLOCK,
28832
- previous: generation(MainnetWETHPLPPreviousVaultPoolInfos.poolInfos, MainnetWETHPLPPreviousStrategistLeaves),
28833
- next: generation(MainnetWETHPLPV3AuthorizedVaultPoolInfos.poolInfos, MainnetWETHPLPV3AuthorizedStrategistLeaves),
28834
- current: generation(MainnetWETHPLPVaultPoolInfos.poolInfos, MainnetWETHPLPStrategistLeaves)
28835
- }), createVaultTransition({
28836
- vaultAddress: MAINNET_DEPLOYMENT$1.hypovault.vaults.usdcPlpVault,
28837
- managerAddress: MAINNET_DEPLOYMENT$1.hypovault.managers.usdcPlpVaultManager,
28838
- strategistAddress: MAINNET_DEPLOYMENT$1.hypovault.turnkeySigners.usdcPlpVaultManager,
28839
- activationBlockNumber: MAINNET_V3_AUTHORIZATION_BLOCK,
28840
- previous: generation(MainnetUSDCPLPPreviousVaultPoolInfos.poolInfos, MainnetUSDCPLPPreviousStrategistLeaves),
28841
- next: generation(MainnetUSDCPLPV3AuthorizedVaultPoolInfos.poolInfos, MainnetUSDCPLPV3AuthorizedStrategistLeaves),
28842
- current: generation(MainnetUSDCPLPVaultPoolInfos.poolInfos, MainnetUSDCPLPStrategistLeaves)
28843
- })];
28844
- const authorizationCacheByClient = new WeakMap();
28845
- function findTransition(chainId, vaultAddress) {
28846
- if (chainId !== MAINNET_CHAIN_ID) return null;
28847
- const normalizedVault = vaultAddress.toLowerCase();
28848
- return MAINNET_V3_AUTHORIZATION_TRANSITIONS.find((transition) => transition.vaultAddress.toLowerCase() === normalizedVault) ?? null;
28849
- }
28850
- /** Returns both known generations without reading chain state. */
28851
- function getMainnetV3AuthorizationGenerations({ chainId, vaultAddress }) {
28852
- const transition = findTransition(chainId, vaultAddress);
28853
- return transition === null ? null : {
28854
- previous: transition.previous,
28855
- next: transition.next,
28856
- current: transition.current
28857
- };
28858
- }
28859
- /**
28860
- * Selects the mainnet authorization artifacts active at a historical block without RPC reads.
28861
- * Live callers should use the compiled current artifacts directly; this selector exists for
28862
- * block-pinned NAV and manager-input reconstruction across the V3 authorization boundary.
28863
- */
28864
- function getMainnetV3AuthorizationArtifactsAtBlock({ chainId, vaultAddress, blockNumber }) {
28865
- const transition = findTransition(chainId, vaultAddress);
28866
- if (transition === null) return null;
28867
- const version = blockNumber < transition.activationBlockNumber ? "previous" : "next";
28868
- return {
28869
- blockNumber,
28870
- version,
28871
- ...transition[version]
28872
- };
28873
- }
28874
- /**
28875
- * Selects the exact artifact generation authorized by both the accountant and manager.
28876
- * A mixed or unknown state is rejected: using only one side of the transition would
28877
- * make either NAV calculation or strategist proof verification fail.
28878
- * Every authorization release must add its generation to this transition table before
28879
- * the on-chain hashes change, so startup and release verification keeps recognizing it.
28880
- */
28881
- async function resolveMainnetV3AuthorizationArtifacts({ viemClient, chainId, vaultAddress, blockNumber }) {
28882
- const transition = findTransition(chainId, vaultAddress);
28883
- if (transition === null) return null;
28884
- const resolvedBlockNumber = blockNumber ?? await getBlockNumber(viemClient);
28885
- const cacheKey = `${chainId}:${vaultAddress.toLowerCase()}:${resolvedBlockNumber.toString()}`;
28886
- const clientCache = authorizationCacheByClient.get(viemClient);
28887
- const cached = clientCache?.get(cacheKey);
28888
- if (cached !== void 0) return cached;
28889
- const [poolHash, manageRoot] = await Promise.all([readContract(viemClient, {
28890
- address: MAINNET_DEPLOYMENT$1.hypovault.core.accountant,
28891
- abi: PanopticVaultAccountantAbi,
28892
- functionName: "vaultHashes",
28893
- args: [transition.vaultAddress, 0n],
28894
- blockNumber: resolvedBlockNumber
28895
- }), readContract(viemClient, {
28896
- address: transition.managerAddress,
28897
- abi: HypoVaultManagerWithMerkleVerificationAbi,
28898
- functionName: "manageRoot",
28899
- args: [transition.strategistAddress],
28900
- blockNumber: resolvedBlockNumber
28901
- })]);
28902
- for (const candidate of [...transition.generations].reverse()) if (poolHash === candidate.poolHash && manageRoot === candidate.manageRoot) {
28903
- const resolved = {
28904
- blockNumber: resolvedBlockNumber,
28905
- ...candidate
28906
- };
28907
- const resolvedClientCache = clientCache ?? new Map();
28908
- resolvedClientCache.set(cacheKey, resolved);
28909
- if (clientCache === void 0) authorizationCacheByClient.set(viemClient, resolvedClientCache);
28910
- return resolved;
28911
- }
28912
- throw new Error(`Unsupported or inconsistent mainnet v3 authorization state for vault ${transition.vaultAddress}: accountant pool hash ${poolHash}, manager root ${manageRoot}`);
28913
- }
28914
-
28915
28953
  //#endregion
28916
28954
  //#region src/hypoVault/requestDeposit/requestDeposit.ts
28917
28955
  const getRequestDepositContractConfig = ({ vaultAddress, assets }) => ({
@@ -30200,19 +30238,20 @@ function resolveChainWethAddress(chainId) {
30200
30238
  function getPlpManagerAddress(chainId, vaultAddress) {
30201
30239
  return getHypoVaultConfigForVault(vaultAddress, chainId)?.addresses?.hypoVaultManagerWithMerkleVerification ?? null;
30202
30240
  }
30203
- function getPlpPoolInfosAtBlock({ chainId, vaultAddress, blockNumber }) {
30204
- return getMainnetVaultPoolConfigurationAtBlock({
30241
+ async function getPlpPoolInfosAtBlock({ chainId, client, vaultAddress, blockNumber }) {
30242
+ return resolveVaultPoolInfosAtBlock({
30243
+ viemClient: client,
30205
30244
  chainId,
30206
30245
  vaultAddress,
30207
30246
  blockNumber
30208
- })?.poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
30247
+ });
30209
30248
  }
30210
30249
  function createPlpManagerInputStrategy(minBlock) {
30211
30250
  return {
30212
30251
  enabledMetrics: ["nav"],
30213
30252
  resolveCandidates: async ({ chainId, vault }) => {
30214
30253
  const vaultAddress = vault.id;
30215
- const poolInfos = getVaultPoolInfos(vaultAddress, chainId);
30254
+ const poolInfos = getVaultCandidatePoolInfos(vaultAddress, chainId);
30216
30255
  if (poolInfos.length === 0) return [];
30217
30256
  return resolveVaultHistoricalCandidatesByPool({
30218
30257
  chainId,
@@ -30228,8 +30267,9 @@ function createPlpManagerInputStrategy(minBlock) {
30228
30267
  chainId,
30229
30268
  vaultAddress,
30230
30269
  candidatesByPool: candidates,
30231
- poolInfos: getPlpPoolInfosAtBlock({
30270
+ poolInfos: await getPlpPoolInfosAtBlock({
30232
30271
  chainId,
30272
+ client,
30233
30273
  vaultAddress,
30234
30274
  blockNumber
30235
30275
  }),
@@ -30244,8 +30284,9 @@ function createPlpManagerInputStrategy(minBlock) {
30244
30284
  minBlockNumber: minBlock,
30245
30285
  context: `PLP manager input for vault ${vault.id}`
30246
30286
  });
30247
- const poolInfos = getPlpPoolInfosAtBlock({
30287
+ const poolInfos = await getPlpPoolInfosAtBlock({
30248
30288
  chainId,
30289
+ client,
30249
30290
  vaultAddress,
30250
30291
  blockNumber
30251
30292
  });
@@ -31355,5 +31396,5 @@ async function getIrmCurve(params) {
31355
31396
  }
31356
31397
 
31357
31398
  //#endregion
31358
- 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_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, RescueDistributorAbi, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, 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, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultApyErrorMessage, getVaultApyStrategy, getVaultDeltaHedgeHistoricalFeeQuote, getVaultDeltaHedgeInitialFeeQuote, getVaultPoolInfos, getVaultTransactionFeeQuote, getVaultTransactionReplacementFeeQuote, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, recoverVaultCandidateTokenIdsByPool, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolvePositionScanFromBlock, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, statusForVaultSharePriceSnapshot, useCancelDeposit, useClaimVaultShares, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, validateVaultSignedTransactionFeeCaps, verifyVaultOpenTokenIdsAtBlock };
31399
+ 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_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, RescueDistributorAbi, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, 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, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultApyErrorMessage, getVaultApyStrategy, getVaultCandidatePoolInfos, getVaultDeltaHedgeHistoricalFeeQuote, getVaultDeltaHedgeInitialFeeQuote, getVaultPoolInfos, getVaultTransactionFeeQuote, getVaultTransactionReplacementFeeQuote, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, 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 };
31359
31400
  //# sourceMappingURL=index.js.map