@panoptic-eng/sdk 1.0.55 → 1.0.57

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 (33) hide show
  1. package/dist/chainDeployments-D_bvyWEm.js +408 -0
  2. package/dist/{cow-BahYFov0.js → cow-45nsAaEr.js} +1 -1
  3. package/dist/deployments.js +2 -2
  4. package/dist/deployments.js.map +1 -1
  5. package/dist/index.d.ts +83 -41
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +323 -78
  8. package/dist/index.js.map +1 -1
  9. package/dist/{irm-BsRdsXMS.js → irm-DsM35dGO.js} +2 -409
  10. package/dist/panoptic/v2/index.d.ts +147 -1
  11. package/dist/panoptic/v2/index.d.ts.map +1 -1
  12. package/dist/panoptic/v2/index.js +266 -22
  13. package/dist/panoptic/v2/index.js.map +1 -1
  14. package/dist/panoptic/v2/react-public.d.ts +147 -1
  15. package/dist/panoptic/v2/react-public.d.ts.map +1 -1
  16. package/dist/panoptic/v2/react-public.js +266 -22
  17. package/dist/panoptic/v2/react-public.js.map +1 -1
  18. package/dist/{rates-B0uPUed1.js → rates-CEJz8fjw.js} +1 -1
  19. package/dist/{router-BhJqStSJ.js → router-DOUAKfn6.js} +2 -2
  20. package/dist/{router-kAllFA4i.js → router-DUOHNdYZ.js} +21 -12
  21. package/dist/{transactionFees-DE-Whxab.js → transactionFees-qweht4Rd.js} +54 -28
  22. package/dist/uniswap/index.d.ts +6 -1
  23. package/dist/uniswap/index.d.ts.map +1 -1
  24. package/dist/uniswap/index.js +19 -10
  25. package/dist/uniswap/index.js.map +1 -1
  26. package/dist/{v2-bpvC_P3W.js → v2-B3MqHVHt.js} +247 -12
  27. package/dist/vault-transaction-fees.d.ts +5 -3
  28. package/dist/vault-transaction-fees.d.ts.map +1 -1
  29. package/dist/vault-transaction-fees.js +443 -28
  30. package/dist/vault-transaction-fees.js.map +1 -1
  31. package/dist/{writes-B4nGIi6h.js → writes-CQrevcCu.js} +2 -2
  32. package/dist/zodiac/index.d.ts.map +1 -1
  33. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,12 +1,210 @@
1
- import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, concat, decodeAbiParameters, decodeFunctionData, encodeAbiParameters, encodeFunctionData, encodePacked, getAddress, hexToBigInt, keccak256, maxUint256, parseAbi, toBytes, toFunctionSelector, zeroAddress } from "viem";
1
+ import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, concat, decodeAbiParameters, decodeFunctionData, encodeAbiParameters, encodeFunctionData, encodePacked, erc20Abi, getAddress, hexToBigInt, keccak256, maxUint256, parseAbi, toBytes, toFunctionSelector, zeroAddress } from "viem";
2
+ import { z } from "zod";
2
3
  import { estimateFeesPerGas, getBlock, getBlockNumber, getFeeHistory, readContract, simulateContract, writeContract } from "viem/actions";
3
4
  import Decimal from "decimal.js";
4
5
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
6
  import { useAccount, useReadContract, useSimulateContract, useWaitForTransactionReceipt, useWriteContract } from "wagmi";
6
- import { z } from "zod";
7
7
  import { GraphQLClient } from "graphql-request";
8
8
  import gql from "graphql-tag";
9
9
 
10
+ //#region src/lending/normalize.ts
11
+ function normalizeUnsignedBigInt(value) {
12
+ let normalized;
13
+ if (typeof value === "bigint") normalized = value;
14
+ else if (typeof value === "string" && /^\d+$/.test(value)) normalized = BigInt(value);
15
+ else if (typeof value === "number" && Number.isSafeInteger(value)) normalized = BigInt(value);
16
+ else throw new TypeError("Expected an unsigned bigint-compatible value");
17
+ if (normalized < 0n) throw new RangeError("Expected a nonnegative value");
18
+ return normalized;
19
+ }
20
+ function normalizeTokenDecimals(value) {
21
+ const normalized = typeof value === "string" && /^\d+$/.test(value) ? Number(value) : value;
22
+ if (typeof normalized !== "number" || !Number.isSafeInteger(normalized) || normalized < 0 || normalized > 255) throw new RangeError("Expected token decimals between 0 and 255");
23
+ return normalized;
24
+ }
25
+
26
+ //#endregion
27
+ //#region src/lending/aave.ts
28
+ const providerAbi = parseAbi(["function getPoolDataProvider() view returns (address)", "function getPriceOracle() view returns (address)"]);
29
+ const dataAbi = parseAbi([
30
+ "function getAllReservesTokens() view returns ((string symbol, address tokenAddress)[])",
31
+ "function getAllATokens() view returns ((string symbol, address tokenAddress)[])",
32
+ "function getUserReserveData(address asset, address user) view returns (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint40,bool)"
33
+ ]);
34
+ const oracleAbi = parseAbi(["function BASE_CURRENCY_UNIT() view returns (uint256)", "function getAssetPrice(address asset) view returns (uint256)"]);
35
+ /** Reads accrued Aave V3 balances and oracle prices at a single block. */
36
+ async function getAaveHoldings({ client, provider, account }) {
37
+ const blockNumber = normalizeUnsignedBigInt(await client.getBlockNumber());
38
+ const [dataProvider, oracle] = await client.multicall({
39
+ blockNumber,
40
+ allowFailure: false,
41
+ contracts: [{
42
+ address: provider,
43
+ abi: providerAbi,
44
+ functionName: "getPoolDataProvider"
45
+ }, {
46
+ address: provider,
47
+ abi: providerAbi,
48
+ functionName: "getPriceOracle"
49
+ }]
50
+ });
51
+ const [reserves, receipts, rawPriceUnit] = await Promise.all([
52
+ client.readContract({
53
+ address: dataProvider,
54
+ abi: dataAbi,
55
+ functionName: "getAllReservesTokens",
56
+ blockNumber
57
+ }),
58
+ client.readContract({
59
+ address: dataProvider,
60
+ abi: dataAbi,
61
+ functionName: "getAllATokens",
62
+ blockNumber
63
+ }),
64
+ client.readContract({
65
+ address: oracle,
66
+ abi: oracleAbi,
67
+ functionName: "BASE_CURRENCY_UNIT",
68
+ blockNumber
69
+ })
70
+ ]);
71
+ const priceUnit = normalizeUnsignedBigInt(rawPriceUnit);
72
+ const rawBalances = await client.multicall({
73
+ blockNumber,
74
+ allowFailure: false,
75
+ contracts: reserves.map((reserve) => ({
76
+ address: dataProvider,
77
+ abi: dataAbi,
78
+ functionName: "getUserReserveData",
79
+ args: [reserve.tokenAddress, account]
80
+ }))
81
+ });
82
+ const balances = rawBalances.map(([supplied, stableDebt, variableDebt]) => [
83
+ normalizeUnsignedBigInt(supplied),
84
+ normalizeUnsignedBigInt(stableDebt),
85
+ normalizeUnsignedBigInt(variableDebt)
86
+ ]);
87
+ const holdings = await Promise.all(reserves.flatMap((reserve, i) => {
88
+ const [supplied, stableDebt, variableDebt] = balances[i];
89
+ const debt = stableDebt + variableDebt;
90
+ if (supplied === 0n && debt === 0n) return [];
91
+ return [(async () => {
92
+ const [rawDecimals, rawPrice] = await Promise.all([client.readContract({
93
+ address: reserve.tokenAddress,
94
+ abi: erc20Abi,
95
+ functionName: "decimals",
96
+ blockNumber
97
+ }), client.readContract({
98
+ address: oracle,
99
+ abi: oracleAbi,
100
+ functionName: "getAssetPrice",
101
+ args: [reserve.tokenAddress],
102
+ blockNumber
103
+ })]);
104
+ const decimals = normalizeTokenDecimals(rawDecimals);
105
+ const price = normalizeUnsignedBigInt(rawPrice);
106
+ return {
107
+ address: reserve.tokenAddress,
108
+ symbol: reserve.symbol,
109
+ decimals,
110
+ supplied,
111
+ debt,
112
+ price,
113
+ priceUnit
114
+ };
115
+ })()];
116
+ }));
117
+ return {
118
+ holdings,
119
+ receiptTokens: receipts.map((token) => token.tokenAddress),
120
+ blockNumber
121
+ };
122
+ }
123
+
124
+ //#endregion
125
+ //#region src/lending/morpho.ts
126
+ const amount = z.union([z.string().regex(/^\d+$/), z.number().int().nonnegative().safe().transform((value) => value.toString())]).transform(normalizeUnsignedBigInt);
127
+ const asset = z.object({
128
+ address: z.string().transform((value) => getAddress(value)),
129
+ symbol: z.string(),
130
+ decimals: z.union([z.number(), z.string()]).transform(normalizeTokenDecimals),
131
+ price: z.object({ usd: z.number().finite().nonnegative().nullable() }).nullable()
132
+ });
133
+ const responseSchema = z.object({ data: z.object({ marketPositions: z.object({ items: z.array(z.object({
134
+ market: z.object({
135
+ marketId: z.string(),
136
+ loanAsset: asset,
137
+ collateralAsset: asset.nullable()
138
+ }),
139
+ state: z.object({
140
+ supplyAssets: amount,
141
+ borrowAssets: amount,
142
+ collateral: amount
143
+ })
144
+ })) }) }) });
145
+ /** Indexed Morpho Blue balances; amounts include the indexer's accrued interest. */
146
+ async function getMorphoHoldings(account, chainId) {
147
+ const holdings = [];
148
+ for (let skip = 0; skip < 1e4; skip += 100) {
149
+ const response = await fetch("https://api.morpho.org/graphql", {
150
+ method: "POST",
151
+ headers: { "Content-Type": "application/json" },
152
+ signal: AbortSignal.timeout(15e3),
153
+ body: JSON.stringify({
154
+ query: `query Positions($account: [String!], $chains: [Int!], $skip: Int!) {
155
+ marketPositions(first: 100, skip: $skip, where: {userAddress_in: $account, chainId_in: $chains}) {
156
+ items { market { marketId loanAsset { address symbol decimals price { usd } }
157
+ collateralAsset { address symbol decimals price { usd } } }
158
+ state { supplyAssets borrowAssets collateral } }
159
+ }
160
+ }`,
161
+ variables: {
162
+ account: [account],
163
+ chains: [chainId],
164
+ skip
165
+ }
166
+ })
167
+ });
168
+ if (!response.ok) throw new Error("Morpho positions unavailable");
169
+ const body = await response.json();
170
+ if (typeof body === "object" && body !== null && "errors" in body) throw new Error("Morpho query failed");
171
+ const items = responseSchema.parse(body).data.marketPositions.items;
172
+ for (const { market, state } of items) {
173
+ const legs = [
174
+ {
175
+ token: market.loanAsset,
176
+ amount: state.supplyAssets,
177
+ kind: "supply"
178
+ },
179
+ {
180
+ token: market.loanAsset,
181
+ amount: -state.borrowAssets,
182
+ kind: "debt"
183
+ },
184
+ {
185
+ token: market.collateralAsset,
186
+ amount: state.collateral,
187
+ kind: "collateral"
188
+ }
189
+ ];
190
+ for (const leg of legs) {
191
+ if (leg.amount === 0n) continue;
192
+ if (leg.token === null) throw new Error("Missing Morpho collateral asset");
193
+ holdings.push({
194
+ ...leg.token,
195
+ amount: leg.amount,
196
+ kind: leg.kind,
197
+ marketId: market.marketId,
198
+ priceUsd: leg.token.price?.usd?.toString() ?? null
199
+ });
200
+ }
201
+ }
202
+ if (items.length < 100) return holdings;
203
+ }
204
+ throw new Error("Morpho position pagination limit exceeded");
205
+ }
206
+
207
+ //#endregion
10
208
  //#region src/abis/CollateralTracker.ts
11
209
  const CollateralTrackerAbi = [
12
210
  {
@@ -23652,7 +23850,7 @@ const UINT24_MASK = (1n << 24n) - 1n;
23652
23850
 
23653
23851
  //#endregion
23654
23852
  //#region src/panoptic/v2/reads/pool.ts
23655
- const erc20Abi$2 = [
23853
+ const erc20Abi$3 = [
23656
23854
  {
23657
23855
  type: "function",
23658
23856
  name: "symbol",
@@ -23746,33 +23944,33 @@ async function getPoolMetadata(params) {
23746
23944
  const erc20Contracts = [...isToken0Native ? [] : [
23747
23945
  {
23748
23946
  address: token0Asset,
23749
- abi: erc20Abi$2,
23947
+ abi: erc20Abi$3,
23750
23948
  functionName: "symbol"
23751
23949
  },
23752
23950
  {
23753
23951
  address: token0Asset,
23754
- abi: erc20Abi$2,
23952
+ abi: erc20Abi$3,
23755
23953
  functionName: "decimals"
23756
23954
  },
23757
23955
  {
23758
23956
  address: token0Asset,
23759
- abi: erc20Abi$2,
23957
+ abi: erc20Abi$3,
23760
23958
  functionName: "name"
23761
23959
  }
23762
23960
  ], ...isToken1Native ? [] : [
23763
23961
  {
23764
23962
  address: token1Asset,
23765
- abi: erc20Abi$2,
23963
+ abi: erc20Abi$3,
23766
23964
  functionName: "symbol"
23767
23965
  },
23768
23966
  {
23769
23967
  address: token1Asset,
23770
- abi: erc20Abi$2,
23968
+ abi: erc20Abi$3,
23771
23969
  functionName: "decimals"
23772
23970
  },
23773
23971
  {
23774
23972
  address: token1Asset,
23775
- abi: erc20Abi$2,
23973
+ abi: erc20Abi$3,
23776
23974
  functionName: "name"
23777
23975
  }
23778
23976
  ]];
@@ -24074,7 +24272,7 @@ async function getAccountCollateral(params) {
24074
24272
  //#endregion
24075
24273
  //#region src/panoptic/v2/reads/collateral.ts
24076
24274
  const SECONDS_PER_YEAR$3 = 31536000n;
24077
- const erc20Abi$1 = [{
24275
+ const erc20Abi$2 = [{
24078
24276
  type: "function",
24079
24277
  name: "symbol",
24080
24278
  inputs: [],
@@ -24183,11 +24381,11 @@ async function getCollateralData(params) {
24183
24381
  const [symbol, decimals] = await client.multicall({
24184
24382
  contracts: [{
24185
24383
  address: assetAddress,
24186
- abi: erc20Abi$1,
24384
+ abi: erc20Abi$2,
24187
24385
  functionName: "symbol"
24188
24386
  }, {
24189
24387
  address: assetAddress,
24190
- abi: erc20Abi$1,
24388
+ abi: erc20Abi$2,
24191
24389
  functionName: "decimals"
24192
24390
  }],
24193
24391
  allowFailure: false
@@ -24585,7 +24783,7 @@ const VAULT_DISPLAY_NAMES_PER_CHAIN = {
24585
24783
  [sepoliaVaults.wethPlpVault.toLowerCase()]: "PLP Vault",
24586
24784
  [sepoliaVaults.usdcPlpVault.toLowerCase()]: "Unicorn Vault"
24587
24785
  },
24588
- [ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: "USDG PLP Vault" }
24786
+ [ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: "0DTE +67∆ Vault" }
24589
24787
  };
24590
24788
  const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN = {
24591
24789
  [MAINNET_CHAIN_ID]: {
@@ -24602,7 +24800,7 @@ const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN = {
24602
24800
  [sepoliaVaults.wethPlpVault.toLowerCase()]: () => "PLP Vault",
24603
24801
  [sepoliaVaults.usdcPlpVault.toLowerCase()]: () => "Unicorn Vault"
24604
24802
  },
24605
- [ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: () => "USDG PLP Vault" }
24803
+ [ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: () => "0DTE +67∆ Vault" }
24606
24804
  };
24607
24805
  function resolveVaultDisplayName({ chainId, vaultAddress: vaultAddress$1, underlyingSymbol, fallbackName }) {
24608
24806
  const vaultAddressLower = vaultAddress$1.toLowerCase();
@@ -25379,7 +25577,7 @@ const trackerLeaves = [
25379
25577
  }
25380
25578
  ];
25381
25579
  const dispatchLeaf = {
25382
- description: "Dispatch mint/burn options on SPY/USDG PanopticPool",
25580
+ description: "Dispatch mint/burn options on PanopticPool",
25383
25581
  target: pool,
25384
25582
  functionSignature: dispatchSignature,
25385
25583
  addressArguments: [],
@@ -25412,8 +25610,8 @@ const UsdgPlpVaultRobinhoodProdConfig = {
25412
25610
  artifactSet: "robinhood-prod",
25413
25611
  vaultAssetIndex: 1n,
25414
25612
  manageCycleIntervalMs: 6e5,
25415
- vaultCapInUnderlying: 100000000000n,
25416
- vaultCapInShares: 100000000000000000n,
25613
+ vaultCapInUnderlying: 100000000n,
25614
+ vaultCapInShares: 100000000000000n,
25417
25615
  allowUnlimitedDepositRequestIfCapNotReached: true,
25418
25616
  maxBuyingPowerUsageBps: 6600,
25419
25617
  poolDeploymentBlock: Number(ROBINHOOD_SPY_USDG_POOL_DEPLOYMENT_BLOCK),
@@ -25436,13 +25634,14 @@ const UsdgPlpVaultRobinhoodProdConfig = {
25436
25634
  allocationBps: 1e4
25437
25635
  }] },
25438
25636
  deltaHedge: {
25637
+ targetDeltaBps: 6700n,
25439
25638
  deltaThresholdBps: 200n,
25440
25639
  maxHedgeSlots: 3
25441
25640
  },
25442
25641
  alerts: { outOfRangeEnabled: true },
25443
25642
  reporting: {
25444
25643
  assetSymbol: "USDG",
25445
- vaultLabel: "USDG PLP"
25644
+ vaultLabel: "0DTE +67∆ Vault"
25446
25645
  }
25447
25646
  };
25448
25647
 
@@ -26734,6 +26933,8 @@ async function resolveMainnetV3AuthorizationArtifacts({ viemClient, chainId, vau
26734
26933
  const MAINNET_DEPLOYMENT$1 = requireChainDeployment(MAINNET_CHAIN_ID);
26735
26934
  const MAINNET_POOL_RETIREMENT_BLOCK = 25898997n;
26736
26935
  const MAINNET_POOL_RETIREMENT_TRANSACTION = "0xfca6a6dd0f081649dd6f50496175a58e6a119d574b594390beab23618b05ba2c";
26936
+ const ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK = 63972776n;
26937
+ const ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION = "0x738c8a6d30a45f9b71d2d6260aa1c04aff558489631b3a9c6ccd5f49e0f57df4";
26737
26938
  const POOL_INFO_ARRAY_ABI = {
26738
26939
  type: "tuple[]",
26739
26940
  components: [
@@ -26852,6 +27053,15 @@ const MAINNET_VAULT_HISTORIES = [{
26852
27053
  }
26853
27054
  ]
26854
27055
  }];
27056
+ const ROBINHOOD_VAULT_HISTORIES = [{
27057
+ vaultAddress: RobinhoodUSDGPLPVaultPoolInfos.vaultAddress,
27058
+ poolConfigurations: [poolConfiguration(ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK, ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION, RobinhoodUSDGPLPVaultPoolInfos.poolInfos)],
27059
+ managerRootTransitions: [{
27060
+ activationBlockNumber: ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK,
27061
+ transactionHash: ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION,
27062
+ manageRoot: "0x5ef821042a85fea05901e4612e8a8d60efd2468ca08f0810d5691e23ea98967f"
27063
+ }]
27064
+ }];
26855
27065
  function copyPoolConfiguration(configuration) {
26856
27066
  return {
26857
27067
  ...configuration,
@@ -26869,9 +27079,10 @@ function copyHistory(history) {
26869
27079
  };
26870
27080
  }
26871
27081
  function findHistory(chainId, vaultAddress$1) {
26872
- if (chainId !== MAINNET_CHAIN_ID) return null;
27082
+ const histories = chainId === MAINNET_CHAIN_ID ? MAINNET_VAULT_HISTORIES : chainId === ROBINHOOD_CHAIN_ID ? ROBINHOOD_VAULT_HISTORIES : null;
27083
+ if (histories === null) return null;
26873
27084
  const normalizedVault = vaultAddress$1.toLowerCase();
26874
- const history = MAINNET_VAULT_HISTORIES.find((candidate) => candidate.vaultAddress.toLowerCase() === normalizedVault);
27085
+ const history = histories.find((candidate) => candidate.vaultAddress.toLowerCase() === normalizedVault);
26875
27086
  return history === void 0 ? null : copyHistory(history);
26876
27087
  }
26877
27088
  function latestAtBlock(values, blockNumber) {
@@ -27620,7 +27831,7 @@ async function getLendingAllocationRows({ client, chainId, vaultAddress: vaultAd
27620
27831
 
27621
27832
  //#endregion
27622
27833
  //#region src/hypoVault/analytics/vaultLendingAllocation.ts
27623
- const erc20Abi = [
27834
+ const erc20Abi$1 = [
27624
27835
  {
27625
27836
  type: "function",
27626
27837
  name: "balanceOf",
@@ -27663,15 +27874,15 @@ const Q128 = 2n ** 128n;
27663
27874
  * semantics (same as `~/utils/panopticMath` in the UI app, without the
27664
27875
  * `@uniswap/v3-sdk` dependency).
27665
27876
  */
27666
- function convert0to1(amount, sqrtPriceX96) {
27667
- if (sqrtPriceX96 < Q128) return amount * sqrtPriceX96 * sqrtPriceX96 >> 192n;
27877
+ function convert0to1(amount$1, sqrtPriceX96) {
27878
+ if (sqrtPriceX96 < Q128) return amount$1 * sqrtPriceX96 * sqrtPriceX96 >> 192n;
27668
27879
  const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
27669
- return amount * sp2Hi >> 128n;
27880
+ return amount$1 * sp2Hi >> 128n;
27670
27881
  }
27671
- function convert1to0(amount, sqrtPriceX96) {
27672
- if (sqrtPriceX96 < Q128) return amount * 2n ** 192n / (sqrtPriceX96 * sqrtPriceX96);
27882
+ function convert1to0(amount$1, sqrtPriceX96) {
27883
+ if (sqrtPriceX96 < Q128) return amount$1 * 2n ** 192n / (sqrtPriceX96 * sqrtPriceX96);
27673
27884
  const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
27674
- return amount * 2n ** 128n / sp2Hi;
27885
+ return amount$1 * 2n ** 128n / sp2Hi;
27675
27886
  }
27676
27887
  function adjustUnderlyingIdleBalance({ rawUnderlyingBalance, unfulfilledDepositAssets, reservedWithdrawalAssets: _reservedWithdrawalAssets }) {
27677
27888
  const nonIdleUnderlying = unfulfilledDepositAssets;
@@ -27726,7 +27937,7 @@ async function readTokenSymbol({ client, tokenAddress, blockNumber }) {
27726
27937
  if (isNativeToken(tokenAddress)) return "ETH";
27727
27938
  return client.readContract({
27728
27939
  address: tokenAddress,
27729
- abi: erc20Abi,
27940
+ abi: erc20Abi$1,
27730
27941
  functionName: "symbol",
27731
27942
  ...blockNumber === void 0 ? {} : { blockNumber }
27732
27943
  });
@@ -27736,7 +27947,7 @@ async function readTokenDecimals({ client, tokenAddress, blockNumber }) {
27736
27947
  try {
27737
27948
  const decimals = await client.readContract({
27738
27949
  address: tokenAddress,
27739
- abi: erc20Abi,
27950
+ abi: erc20Abi$1,
27740
27951
  functionName: "decimals",
27741
27952
  ...blockNumber === void 0 ? {} : { blockNumber }
27742
27953
  });
@@ -27753,7 +27964,7 @@ async function readTokenBalance({ client, tokenAddress, owner, blockNumber }) {
27753
27964
  });
27754
27965
  return client.readContract({
27755
27966
  address: tokenAddress,
27756
- abi: erc20Abi,
27967
+ abi: erc20Abi$1,
27757
27968
  functionName: "balanceOf",
27758
27969
  args: [owner],
27759
27970
  ...blockNumber === void 0 ? {} : { blockNumber }
@@ -27764,22 +27975,22 @@ function resolveUnderlyingPoolToken({ underlyingTokenAddress, token0Address, tok
27764
27975
  if (isNativeToken(token0Address)) return token0Address;
27765
27976
  return null;
27766
27977
  }
27767
- function convertToUnderlying({ amount, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
27768
- if (amount === 0n) return 0n;
27769
- if (addressesEqual(sourceTokenAddress, underlyingPoolTokenAddress)) return amount;
27978
+ function convertToUnderlying({ amount: amount$1, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
27979
+ if (amount$1 === 0n) return 0n;
27980
+ if (addressesEqual(sourceTokenAddress, underlyingPoolTokenAddress)) return amount$1;
27770
27981
  const sourceIsToken0 = addressesEqual(sourceTokenAddress, token0Address);
27771
27982
  const sourceIsToken1 = addressesEqual(sourceTokenAddress, token1Address);
27772
27983
  const underlyingIsToken0 = addressesEqual(underlyingPoolTokenAddress, token0Address);
27773
27984
  const underlyingIsToken1 = addressesEqual(underlyingPoolTokenAddress, token1Address);
27774
27985
  if (!sourceIsToken0 && !sourceIsToken1 || !underlyingIsToken0 && !underlyingIsToken1) return 0n;
27775
27986
  const sqrtPriceX96 = tickToSqrtPriceX96(BigInt(twapTick));
27776
- if (sourceIsToken0 && underlyingIsToken1) return convert0to1(amount, sqrtPriceX96);
27777
- if (sourceIsToken1 && underlyingIsToken0) return convert1to0(amount, sqrtPriceX96);
27987
+ if (sourceIsToken0 && underlyingIsToken1) return convert0to1(amount$1, sqrtPriceX96);
27988
+ if (sourceIsToken1 && underlyingIsToken0) return convert1to0(amount$1, sqrtPriceX96);
27778
27989
  return 0n;
27779
27990
  }
27780
- function convertSignedToUnderlying({ amount, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
27781
- if (amount >= 0n) return convertToUnderlying({
27782
- amount,
27991
+ function convertSignedToUnderlying({ amount: amount$1, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
27992
+ if (amount$1 >= 0n) return convertToUnderlying({
27993
+ amount: amount$1,
27783
27994
  sourceTokenAddress,
27784
27995
  token0Address,
27785
27996
  token1Address,
@@ -27787,7 +27998,7 @@ function convertSignedToUnderlying({ amount, sourceTokenAddress, token0Address,
27787
27998
  twapTick
27788
27999
  });
27789
28000
  return -convertToUnderlying({
27790
- amount: -amount,
28001
+ amount: -amount$1,
27791
28002
  sourceTokenAddress,
27792
28003
  token0Address,
27793
28004
  token1Address,
@@ -29742,6 +29953,7 @@ const HypoVaultManagerConfigSchema = z.object({
29742
29953
  allocationBps: z.number().int().positive().max(1e4)
29743
29954
  })).optional() }).optional(),
29744
29955
  deltaHedge: z.object({
29956
+ targetDeltaBps: z.bigint().nonnegative().max(10000n).optional(),
29745
29957
  deltaThresholdBps: z.bigint().positive().optional(),
29746
29958
  maxHedgeSlots: z.number().int().positive().optional(),
29747
29959
  timedRehedge: timedRehedgeSchema.optional()
@@ -30964,32 +31176,39 @@ function calculateAnnualizedApyPct({ currentSharePrice, previousSharePrice, days
30964
31176
  return Decimal.pow(growthFactor, annualizationExponent).minus(1).times(100).toNumber();
30965
31177
  }
30966
31178
 
31179
+ //#endregion
31180
+ //#region src/hypoVault/robinhoodAccountantRuntime.ts
31181
+ const ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = "0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80638da5cb5b116100635780638da5cb5b14610135578063995cac6d14610145578063a519c19814610158578063d597b7361461016b578063f2fde38b1461017e575f5ffd5b8063016ff32e1461009457806328d6ae4a146100cb5780634f0e0ef3146100ec578063715018a61461012b575b5f5ffd5b6100b66100a236600461279a565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100de6100d93660046127b5565b610191565b6040519081526020016100c2565b6101137f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b6040516001600160a01b0390911681526020016100c2565b6101336101b3565b005b5f546001600160a01b0316610113565b61013361015336600461281f565b6101c6565b61013361016636600461279a565b610598565b6100de6101793660046128d0565b6105c3565b61013361018c36600461279a565b6118b4565b6001602052815f5260405f2081600281106101aa575f80fd5b01549150829050565b6101bb6118f6565b6101c45f611922565b565b6101ce6118f6565b6001600160a01b0385165f9081526002602052604090205460ff1615610207576040516372b89e9760e11b815260040160405180910390fd5b5f5b838110156102ac575f5b818110156102a35785858281811061022d5761022d61295c565b610243926020608090920201908101915061279a565b6001600160a01b031686868481811061025e5761025e61295c565b610274926020608090920201908101915061279a565b6001600160a01b03160361029b57604051635c1523a360e11b815260040160405180910390fd5b600101610213565b50600101610209565b505f5b8181101561050a575f5b81811015610347578383828181106102d3576102d361295c565b90506020020160208101906102e8919061279a565b6001600160a01b03168484848181106103035761030361295c565b9050602002016020810190610318919061279a565b6001600160a01b03160361033f57604051637542915f60e11b815260040160405180910390fd5b6001016102b9565b505f5b84811015610501578585828181106103645761036461295c565b61037a926020608090920201908101915061279a565b6001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190612970565b6001600160a01b03168484848181106103f4576103f461295c565b9050602002016020810190610409919061279a565b6001600160a01b031614806104db575085858281811061042b5761042b61295c565b610441926020608090920201908101915061279a565b6001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a09190612970565b6001600160a01b03168484848181106104bb576104bb61295c565b90506020020160208101906104d0919061279a565b6001600160a01b0316145b156104f957604051637542915f60e11b815260040160405180910390fd5b60010161034a565b506001016102af565b50838360405160200161051e929190612999565b60408051808303601f1901815282825280516020918201206001600160a01b0389165f90815260018352929092209190915561055e918491849101612a33565b60408051808303601f1901815291815281516020928301206001600160a01b03979097165f90815260019283905220019490945550505050565b6105a06118f6565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f8080806105d385870187612d21565b506001600160a01b038b165f90815260016020526040812093965091945092500154826040516020016106069190612e78565b604051602081830303815290604052805190602001201461063a576040516395241ae360e01b815260040160405180910390fd5b5f825160026106499190612f07565b6001600160401b0381111561066057610660612a75565b604051908082528060200260200182016040528015610689578160200160208202803683370190505b509050885f5b8451811015611586575f5f5f8784815181106106ad576106ad61295c565b60200260200101515f01516001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107179190612f1e565b905087848151811061072b5761072b61295c565b60200260200101516060015160020b61076d828b87815181106107505761075061295c565b60200260200101515f01516107659190612f39565b60020b611971565b131561078c57604051631510fe5b60e31b815260040160405180910390fd5b60605f5f8a87815181106107a2576107a261295c565b60200260200101515f01516001600160a01b031663011492288960018d8b815181106107d0576107d061295c565b60200260200101516040518463ffffffff1660e01b81526004016107f693929190612f5e565b5f60405180830381865afa158015610810573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108379190810190613019565b50909550919350915061085890506001600160801b03808316908416613111565b95506108648160801c90565b6001600160801b03166108778360801c90565b6001600160801b031661088a9190613111565b945050505f8986815181106108a1576108a161295c565b60200260200101515f01516001600160a01b03166353aad1d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090b9190612f1e565b905089868151811061091f5761091f61295c565b60200260200101516060015160020b61093d84836107659190612f39565b131561095c57604051631510fe5b60e31b815260040160405180910390fd5b5f805b8a88815181106109715761097161295c565b602002602001015151811015610af7575f8482815181106109945761099461295c565b60200260200101519050806001600160801b03165f036109c757604051632276762d60e11b815260040160405180910390fd5b5f8c8a815181106109da576109da61295c565b602002602001015183815181106109f3576109f361295c565b602002602001015190505f610a078261198f565b90505f5b81811015610a7357610a1d83826119c9565b60020b15610a6b575f5f610a3b89610a3687868a6119e0565b611a49565b9092509050610a4a8584611ac8565b5f03610a5d579b81019b9a8b019a610a68565b818d039c50808c039b505b50505b600101610a0b565b505f5f610a8284866001611ada565b91509150610a8d8190565b600f0b82600f0b610a9e9190613111565b610aa8908d613137565b9b50610ab48160801d90565b600f0b610ac18360801d90565b600f0b610ace9190613111565b610ad8908c613137565b9a50610ae4838861315e565b9650506001909401935061095f92505050565b508a8781518110610b0a57610b0a61295c565b60209081029190910101515160405163c79ee60d60e01b81526001600160a01b038a811660048301529091169063c79ee60d90602401602060405180830381865afa158015610b5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7f9190613171565b8114610b9e57604051632276762d60e11b815260040160405180910390fd5b5050505f6001600160a01b0316888581518110610bbd57610bbd61295c565b6020026020010151602001516001600160a01b031603610c195773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee888581518110610bfe57610bfe61295c565b6020908102919091018101516001600160a01b039092169101525b5f808080805b8a51811015610dd5578c8981518110610c3a57610c3a61295c565b6020026020010151602001516001600160a01b03168b8281518110610c6157610c6161295c565b60200260200101516001600160a01b031603610c7c57600192505b8c8981518110610c8e57610c8e61295c565b6020026020010151604001516001600160a01b03168b8281518110610cb557610cb561295c565b60200260200101516001600160a01b031603610cd057600191505b5f6001600160a01b03168b8281518110610cec57610cec61295c565b60200260200101516001600160a01b031603610dcd5782610d58578c8981518110610d1957610d1961295c565b6020026020010151602001518b8281518110610d3757610d3761295c565b60200260200101906001600160a01b031690816001600160a01b0316815250505b81610dc8578c8981518110610d6f57610d6f61295c565b6020026020010151604001518b84610d88576001610d8a565b5f5b610d979060ff168461315e565b81518110610da757610da761295c565b60200260200101906001600160a01b031690816001600160a01b0316815250505b610dd5565b600101610c1f565b5081610ec25773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168c8981518110610e0b57610e0b61295c565b6020026020010151602001516001600160a01b031614610eb3578b8881518110610e3757610e3761295c565b60209081029190910181015101516040516370a0823160e01b81526001600160a01b038b81166004830152909116906370a0823190602401602060405180830381865afa158015610e8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eae9190613171565b610ebf565b886001600160a01b0316315b93505b80610f61578b8881518110610ed957610ed961295c565b6020026020010151604001516001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610f1f91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610f3a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5e9190613171565b92505b5f8c8981518110610f7457610f7461295c565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fde9190612970565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015611024573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110489190613171565b90508c898151811061105c5761105c61295c565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c69190612970565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016110f391815260200190565b602060405180830381865afa15801561110e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111329190613171565b61113c9089613137565b97508c89815181106111505761115061295c565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa158015611196573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ba9190612970565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015611200573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112249190613171565b90508c89815181106112385761123861295c565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561127e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a29190612970565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016112cf91815260200190565b602060405180830381865afa1580156112ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130e9190613171565b6113189088613137565b96505050508e6001600160a01b03168a87815181106113395761133961295c565b6020026020010151602001516001600160a01b0316146114735773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168a87815181106113835761138361295c565b6020026020010151602001516001600160a01b03161480156113d657507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03168f6001600160a01b0316145b611473578986815181106113ec576113ec61295c565b60200260200101516060015160020b6114278c88815181106114105761141061295c565b602002602001015160200151856107659190612f39565b131561144657604051631510fe5b60e31b815260040160405180910390fd5b5f61145084611b33565b905061145c8682611e4e565b955082156114715761146e8382611e4e565b92505b505b8e6001600160a01b03168a878151811061148f5761148f61295c565b6020026020010151604001516001600160a01b031614611542578986815181106114bb576114bb61295c565b60200260200101516060015160020b6114f68c88815181106114df576114df61295c565b602002602001015160400151856107659190612f39565b131561151557604051631510fe5b60e31b815260040160405180910390fd5b5f61151f84611b33565b905061152b8582611ed1565b945081156115405761153d8282611ed1565b91505b505b61155561154f8587613137565b5f611f3e565b61155f828461315e565b611569919061315e565b611573908d61315e565b9b50506001909401935061068f92505050565b505f611594888a018a612d21565b6001600160a01b0386165f90815260016020819052604090912091955090935091506115bd9050565b0154816040516020016115d09190613188565b604051602081830303815290604052805190602001201461160457604051637560978b60e11b815260040160405180910390fd5b5f5b81518110156117dd578a6001600160a01b031682828151811061162b5761162b61295c565b60200260200101516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116929190612970565b6001600160a01b0316146116b957604051635de194d760e01b815260040160405180910390fd5b5f8282815181106116cc576116cc61295c565b60209081029190910101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa15801561171c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117409190613171565b90508282815181106117545761175461295c565b60200260200101516001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161178991815260200190565b602060405180830381865afa1580156117a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c89190613171565b6117d2908a61315e565b985050600101611606565b505f9050805b835181101561182b578a6001600160a01b03168482815181106118085761180861295c565b60200260200101516001600160a01b03160361182357600191505b6001016117e3565b50806118a6576040516370a0823160e01b81526001600160a01b0383811660048301528b16906370a0823190602401602060405180830381865afa158015611875573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118999190613171565b6118a3908861315e565b96505b505050505050949350505050565b6118bc6118f6565b6001600160a01b0381166118ea57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6118f381611922565b50565b5f546001600160a01b031633146101c45760405163118cdaa760e01b81523360048201526024016118e1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f821361198757611982826131c8565b611989565b815b92915050565b5f72fe0000000000fe0000000000fe0000000000fe604083901c165b6001603083021b81106119c3578160010191506119ab565b50919050565b5f6110006064603084020184901c5b069392505050565b5f80806119ed8686611f53565b90925090505f6119fd8787611f8a565b611a10906001600160801b038716612f07565b9050611a1c8787611f9c565b5f03611a3757611a2d838383611fae565b9350505050611a42565b611a2d838383612057565b9392505050565b5f5f611a558360e81c90565b60020b8460020b1215611a7257611a6b8361208b565b9150611ac1565b611a7c8360d01c90565b60020b8460020b12611a9857611a91836120fd565b9050611ac1565b611aaa611aa58486612144565b61208b565b9150611abe611ab98486612164565b6120fd565b90505b9250929050565b5f60026048603084020184901c6119d8565b5f5f5f611ae68661198f565b90505f5b818114611b29575f5f611aff8989858a612182565b9092509050611b0e8683612228565b9550611b1a8582612228565b94508260010192505050611aea565b5050935093915050565b5f5f5f8360020b12611b48578260020b611b4f565b8260020b5f035b9050620d89e8811115611b75576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f03611b8a57600160801b611b9c565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611bd0576ffff97272373d413259a46990580e213a0260801c5b6004821615611bef576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611c0e576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611c2d576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611c4c576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611c6b576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611c8a576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611caa576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611cca576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611cea576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611d0a576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611d2a576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611d4a576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611d6a576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611d8a576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611dab576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611dcb576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611dea576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611e07576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611e2657805f1981611e2257611e226131e2565b0490505b640100000000810615611e3a576001611e3c565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b0383161015611ea9575f611e8e611e89611e77866122ae565b6002866001600160a01b03160a6122be565b61231c565b90505f8412611e9d5780611ea1565b805f035b915050611989565b5f611e8e611e89611eb9866122ae565b611ecc6001600160a01b03871680612345565b6123a3565b5f6001600160801b036001600160a01b0383161015611f11575f611e8e611e89611efa866122ae565b600160c01b6002876001600160a01b03160a612401565b5f611e8e611e89611f21866122ae565b600160801b611f396001600160a01b03881680612345565b612401565b5f818313611f4c5781611a42565b5090919050565b5f80611f7f611f678585603002604c011c90565b611f7186866119c9565b603087901c61ffff166124ab565b909590945092505050565b5f60806041603084020184901c6119d8565b5f60026040603084020184901c6119d8565b5f5f611fb985611b33565b90505f611fc585611b33565b90505f611ff985611fe8846001600160a01b0316866001600160a01b03166124c9565b8585036001600160a01b0316612401565b90506001600160801b038111156120235760405163528073f560e11b815260040160405180910390fd5b6001600160801b03811660d087901b62ffffff60d01b1660e889901b6001600160e81b03191601015b979650505050505050565b5f5f61206285611b33565b90505f61206e85611b33565b90505f611ff985600160601b8585036001600160a01b0316612401565b5f5f61209f61209a8460e81c90565b611b33565b90505f6120af61209a8560d01c90565b90506001600160a01b0382166120e76060866001600160801b0316901b8484036001600160a01b0316846001600160a01b0316612401565b816120f4576120f46131e2565b04949350505050565b5f5f61210c61209a8460e81c90565b90505f61211c61209a8560d01c90565b905061213c846001600160801b03168383036001600160a01b03166124c9565b949350505050565b5f611a426001600160e81b0384168360e81b6001600160e81b0319160190565b5f611a4262ffffff60d01b1984168360d01b62ffffff60d01b160190565b5f5f5f61219187878787612527565b90505f61219e8887611ac8565b1590506121ab88876125fa565b5f036121ee5780156121db576121d46121c88361260c565b61260c565b6001600160801b031690565b925061221d565b6121e76121c88361260c565b935061221d565b801561220a576121d46122046121c38460801c90565b60801b90565b61221a6122046121c38460801c90565b93505b505094509492505050565b5f5f6122348360801d90565b600f0b6122418560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b14158061226d57508181600f0b14155b1561228b57604051633486405d60e21b815260040160405180910390fd5b608083901b6001600160801b03828701166001600160801b03198716010161204c565b5f5f821361198757815f03611989565b5f80805f19848609848602925082811083820303915050805f036122e7575060c01c9050611989565b80600160c01b116122f6575f5ffd5b5f600160c01b85870980840360c01c9310909103600160401b0291909117949350505050565b5f6001600160ff1b038211156119875760405163b668004560e01b815260040160405180910390fd5b5f80805f19848609848602925082811083820303915050805f0361236e575060401c9050611989565b80600160401b1161237d575f5ffd5b5f600160401b85870980840360401c9310909103600160c01b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f036123cc575060801c9050611989565b80600160801b116123db575f5ffd5b5f600160801b85870980840360801c9310909103600160801b0291909117949350505050565b5f80805f19858709858702925082811083820303915050805f03612435575f841161242a575f5ffd5b508290049050611a42565b808411612440575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f5f5f6124b98686612637565b9088039897019695505050505050565b5f80805f19848609848602925082811083820303915050805f036124f2575060601c9050611989565b80600160601b11612501575f5ffd5b5f600160601b85870980840360601c9310909103600160a01b0291909117949350505050565b5f80808061253588876119c9565b60020b1515905080612550576002606460308802011b880197505b5f61255c89888a6119e0565b90506125688988611ac8565b1580156125725750855b8061258e57506125828988611ac8565b1580159061258e575085155b80612597575081155b156125b7576125a581612679565b93506125b0816126da565b92506125ce565b6125c08161208b565b93506125cb816120fd565b92505b6125ed6001600160801b0385168460801b6001600160801b0319160190565b9998505050505050505050565b5f60026049603084020184901c6119d8565b805f600f82900b12156126325760405163b668004560e01b815260040160405180910390fd5b919050565b5f80600261264584866131f6565b61264f9190613215565b61266e61265c8587613259565b62ffffff166002808204910615150190565b915091509250929050565b5f5f61268861209a8460e81c90565b90505f61269861209a8560d01c90565b905061213c6126c96060866001600160801b0316901b8484036001600160a01b0316846001600160a01b0316612719565b6001846001600160a01b0316612719565b5f5f6126e961209a8460e81c90565b90505f6126f961209a8560d01c90565b905061213c846001600160801b03168383036001600160a01b0316612755565b5f612725848484612401565b90505f8280612736576127366131e2565b8486091115611a42575f19811061274b575f5ffd5b6001019392505050565b5f61276083836124c9565b90505f600160601b8385091115611989575f19811061277d575f5ffd5b60010192915050565b6001600160a01b03811681146118f3575f5ffd5b5f602082840312156127aa575f5ffd5b8135611a4281612786565b5f5f604083850312156127c6575f5ffd5b82356127d181612786565b946020939093013593505050565b5f5f83601f8401126127ef575f5ffd5b5081356001600160401b03811115612805575f5ffd5b6020830191508360208260051b8501011115611ac1575f5ffd5b5f5f5f5f5f60608688031215612833575f5ffd5b853561283e81612786565b945060208601356001600160401b03811115612858575f5ffd5b8601601f81018813612868575f5ffd5b80356001600160401b0381111561287d575f5ffd5b8860208260071b8401011115612891575f5ffd5b6020919091019450925060408601356001600160401b038111156128b3575f5ffd5b6128bf888289016127df565b969995985093965092949392505050565b5f5f5f5f606085870312156128e3575f5ffd5b84356128ee81612786565b935060208501356128fe81612786565b925060408501356001600160401b03811115612918575f5ffd5b8501601f81018713612928575f5ffd5b80356001600160401b0381111561293d575f5ffd5b87602082840101111561294e575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612980575f5ffd5b8151611a4281612786565b8060020b81146118f3575f5ffd5b602080825281018290525f8360408301825b85811015612a295782356129be81612786565b6001600160a01b0316825260208301356129d781612786565b6001600160a01b0316602083015260408301356129f381612786565b6001600160a01b031660408301526060830135612a0f8161298b565b60020b6060830152608092830192909101906001016129ab565b5095945050505050565b602080825281018290525f8360408301825b85811015612a29578235612a5881612786565b6001600160a01b0316825260209283019290910190600101612a45565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715612aab57612aab612a75565b60405290565b604051606081016001600160401b0381118282101715612aab57612aab612a75565b604051601f8201601f191681016001600160401b0381118282101715612afb57612afb612a75565b604052919050565b5f6001600160401b03821115612b1b57612b1b612a75565b5060051b60200190565b5f82601f830112612b34575f5ffd5b8135612b47612b4282612b03565b612ad3565b8082825260208201915060208360071b860101925085831115612b68575f5ffd5b602085015b83811015612a295760808188031215612b84575f5ffd5b612b8c612a89565b8135612b9781612786565b81526020820135612ba781612786565b60208201526040820135612bba81612786565b60408201526060820135612bcd8161298b565b60608201528352602090920191608001612b6d565b5f82601f830112612bf1575f5ffd5b8135612bff612b4282612b03565b8082825260208201915060208360051b860101925085831115612c20575f5ffd5b602085015b83811015612a295780356001600160401b03811115612c42575f5ffd5b8601603f81018813612c52575f5ffd5b6020810135612c63612b4282612b03565b808282526020820191506020808460051b8601010192508a831115612c86575f5ffd5b6040840193505b82841015612ca8578335825260209384019390910190612c8d565b86525050602093840193919091019050612c25565b5f82601f830112612ccc575f5ffd5b8135612cda612b4282612b03565b8082825260208201915060208360051b860101925085831115612cfb575f5ffd5b602085015b83811015612a29578035612d1381612786565b835260209283019201612d00565b5f5f5f5f60808587031215612d34575f5ffd5b84356001600160401b03811115612d49575f5ffd5b8501601f81018713612d59575f5ffd5b8035612d67612b4282612b03565b80828252602082019150602060608402850101925089831115612d88575f5ffd5b6020840193505b82841015612df5576060848b031215612da6575f5ffd5b612dae612ab1565b8435612db98161298b565b81526020850135612dc98161298b565b60208201526040850135612ddc8161298b565b6040820152825260609390930192602090910190612d8f565b965050505060208501356001600160401b03811115612e12575f5ffd5b612e1e87828801612b25565b93505060408501356001600160401b03811115612e39575f5ffd5b612e4587828801612be2565b92505060608501356001600160401b03811115612e60575f5ffd5b612e6c87828801612cbd565b91505092959194509250565b602080825282518282018190525f918401906040840190835b81811015612ee857835180516001600160a01b0390811685526020808301518216818701526040808401519092169186019190915260609182015160020b9185019190915290930192608090920191600101612e91565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761198957611989612ef3565b5f60208284031215612f2e575f5ffd5b8151611a428161298b565b600282810b9082900b03627fffff198112627fffff8213171561198957611989612ef3565b6001600160a01b038416815282151560208083019190915260606040830181905283519083018190525f918401906080840190835b81811015612fb1578351835260209384019390920191600101612f93565b5090979650505050505050565b5f82601f830112612fcd575f5ffd5b8151612fdb612b4282612b03565b8082825260208201915060208360051b860101925085831115612ffc575f5ffd5b602085015b83811015612a29578051835260209283019201613001565b5f5f5f5f5f60a0868803121561302d575f5ffd5b85516020870151604088015191965094506001600160401b03811115613051575f5ffd5b8601601f81018813613061575f5ffd5b805161306f612b4282612b03565b8082825260208201915060208360051b85010192508a831115613090575f5ffd5b6020840193505b828410156130b2578351825260209384019390910190613097565b8096505050505060608601516001600160401b038111156130d1575f5ffd5b6130dd88828901612fbe565b92505060808601516001600160401b038111156130f8575f5ffd5b61310488828901612fbe565b9150509295509295909350565b8181035f83128015838313168383128216171561313057613130612ef3565b5092915050565b8082018281125f83128015821682158216171561315657613156612ef3565b505092915050565b8082018082111561198957611989612ef3565b5f60208284031215613181575f5ffd5b5051919050565b602080825282518282018190525f918401906040840190835b81811015612ee85783516001600160a01b03168352602093840193909201916001016131a1565b5f600160ff1b82016131dc576131dc612ef3565b505f0390565b634e487b7160e01b5f52601260045260245ffd5b5f8260020b8260020b028060020b915080821461313057613130612ef3565b5f8160020b8360020b8061323757634e487b7160e01b5f52601260045260245ffd5b627fffff1982145f198214161561325057613250612ef3565b90059392505050565b62ffffff818116838216029081169081811461313057613130612ef356";
31182
+
30967
31183
  //#endregion
30968
31184
  //#region src/hypoVault/staleOracleOverride.ts
30969
31185
  const PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = "0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80638da5cb5b116100635780638da5cb5b14610135578063995cac6d14610145578063a519c19814610158578063d597b7361461016b578063f2fde38b1461017e575f5ffd5b8063016ff32e1461009457806328d6ae4a146100cb5780634f0e0ef3146100ec578063715018a61461012b575b5f5ffd5b6100b66100a236600461274b565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100de6100d9366004612766565b610191565b6040519081526020016100c2565b6101137f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c2565b6101336101b3565b005b5f546001600160a01b0316610113565b6101336101533660046127d0565b6101c6565b61013361016636600461274b565b610598565b6100de610179366004612881565b6105c3565b61013361018c36600461274b565b611865565b6001602052815f5260405f2081600281106101aa575f80fd5b01549150829050565b6101bb6118a7565b6101c45f6118d3565b565b6101ce6118a7565b6001600160a01b0385165f9081526002602052604090205460ff1615610207576040516372b89e9760e11b815260040160405180910390fd5b5f5b838110156102ac575f5b818110156102a35785858281811061022d5761022d61290d565b610243926020608090920201908101915061274b565b6001600160a01b031686868481811061025e5761025e61290d565b610274926020608090920201908101915061274b565b6001600160a01b03160361029b57604051635c1523a360e11b815260040160405180910390fd5b600101610213565b50600101610209565b505f5b8181101561050a575f5b81811015610347578383828181106102d3576102d361290d565b90506020020160208101906102e8919061274b565b6001600160a01b03168484848181106103035761030361290d565b9050602002016020810190610318919061274b565b6001600160a01b03160361033f57604051637542915f60e11b815260040160405180910390fd5b6001016102b9565b505f5b84811015610501578585828181106103645761036461290d565b61037a926020608090920201908101915061274b565b6001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190612921565b6001600160a01b03168484848181106103f4576103f461290d565b9050602002016020810190610409919061274b565b6001600160a01b031614806104db575085858281811061042b5761042b61290d565b610441926020608090920201908101915061274b565b6001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a09190612921565b6001600160a01b03168484848181106104bb576104bb61290d565b90506020020160208101906104d0919061274b565b6001600160a01b0316145b156104f957604051637542915f60e11b815260040160405180910390fd5b60010161034a565b506001016102af565b50838360405160200161051e92919061294a565b60408051808303601f1901815282825280516020918201206001600160a01b0389165f90815260018352929092209190915561055e9184918491016129e4565b60408051808303601f1901815291815281516020928301206001600160a01b03979097165f90815260019283905220019490945550505050565b6105a06118a7565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f8080806105d385870187612cd2565b506001600160a01b038b165f90815260016020526040812093965091945092500154826040516020016106069190612e29565b604051602081830303815290604052805190602001201461063a576040516395241ae360e01b815260040160405180910390fd5b5f825160026106499190612eb8565b6001600160401b0381111561066057610660612a26565b604051908082528060200260200182016040528015610689578160200160208202803683370190505b509050885f5b8451811015611537575f5f5f8784815181106106ad576106ad61290d565b60200260200101515f01516001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107179190612ecf565b905087848151811061072b5761072b61290d565b60200260200101516060015160020b61076d828b87815181106107505761075061290d565b60200260200101515f01516107659190612eea565b60020b611922565b131561078c57604051631510fe5b60e31b815260040160405180910390fd5b60605f5f8a87815181106107a2576107a261290d565b60200260200101515f01516001600160a01b031663011492288960018d8b815181106107d0576107d061290d565b60200260200101516040518463ffffffff1660e01b81526004016107f693929190612f0f565b5f60405180830381865afa158015610810573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108379190810190612fca565b50909550919350915061085890506001600160801b038083169084166130c2565b95506108648160801c90565b6001600160801b03166108778360801c90565b6001600160801b031661088a91906130c2565b945050505f8986815181106108a1576108a161290d565b60200260200101515f01516001600160a01b03166353aad1d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090b9190612ecf565b90505f805b8a88815181106109225761092261290d565b602002602001015151811015610aa8575f8482815181106109455761094561290d565b60200260200101519050806001600160801b03165f0361097857604051632276762d60e11b815260040160405180910390fd5b5f8c8a8151811061098b5761098b61290d565b602002602001015183815181106109a4576109a461290d565b602002602001015190505f6109b882611940565b90505f5b81811015610a24576109ce838261197a565b60020b15610a1c575f5f6109ec896109e787868a611991565b6119fa565b90925090506109fb8584611a79565b5f03610a0e579b81019b9a8b019a610a19565b818d039c50808c039b505b50505b6001016109bc565b505f5f610a3384866001611a8b565b91509150610a3e8190565b600f0b82600f0b610a4f91906130c2565b610a59908d6130e8565b9b50610a658160801d90565b600f0b610a728360801d90565b600f0b610a7f91906130c2565b610a89908c6130e8565b9a50610a95838861310f565b9650506001909401935061091092505050565b508a8781518110610abb57610abb61290d565b60209081029190910101515160405163c79ee60d60e01b81526001600160a01b038a811660048301529091169063c79ee60d90602401602060405180830381865afa158015610b0c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b309190613122565b8114610b4f57604051632276762d60e11b815260040160405180910390fd5b5050505f6001600160a01b0316888581518110610b6e57610b6e61290d565b6020026020010151602001516001600160a01b031603610bca5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee888581518110610baf57610baf61290d565b6020908102919091018101516001600160a01b039092169101525b5f808080805b8a51811015610d86578c8981518110610beb57610beb61290d565b6020026020010151602001516001600160a01b03168b8281518110610c1257610c1261290d565b60200260200101516001600160a01b031603610c2d57600192505b8c8981518110610c3f57610c3f61290d565b6020026020010151604001516001600160a01b03168b8281518110610c6657610c6661290d565b60200260200101516001600160a01b031603610c8157600191505b5f6001600160a01b03168b8281518110610c9d57610c9d61290d565b60200260200101516001600160a01b031603610d7e5782610d09578c8981518110610cca57610cca61290d565b6020026020010151602001518b8281518110610ce857610ce861290d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b81610d79578c8981518110610d2057610d2061290d565b6020026020010151604001518b84610d39576001610d3b565b5f5b610d489060ff168461310f565b81518110610d5857610d5861290d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b610d86565b600101610bd0565b5081610e735773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168c8981518110610dbc57610dbc61290d565b6020026020010151602001516001600160a01b031614610e64578b8881518110610de857610de861290d565b60209081029190910181015101516040516370a0823160e01b81526001600160a01b038b81166004830152909116906370a0823190602401602060405180830381865afa158015610e3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f9190613122565b610e70565b886001600160a01b0316315b93505b80610f12578b8881518110610e8a57610e8a61290d565b6020026020010151604001516001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610ed091906001600160a01b0391909116815260200190565b602060405180830381865afa158015610eeb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0f9190613122565b92505b5f8c8981518110610f2557610f2561290d565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612921565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015610fd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff99190613122565b90508c898151811061100d5761100d61290d565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611053573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110779190612921565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016110a491815260200190565b602060405180830381865afa1580156110bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e39190613122565b6110ed90896130e8565b97508c89815181106111015761110161290d565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116b9190612921565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa1580156111b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d59190613122565b90508c89815181106111e9576111e961290d565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112539190612921565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161128091815260200190565b602060405180830381865afa15801561129b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190613122565b6112c990886130e8565b96505050508e6001600160a01b03168a87815181106112ea576112ea61290d565b6020026020010151602001516001600160a01b0316146114245773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168a87815181106113345761133461290d565b6020026020010151602001516001600160a01b031614801561138757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f6001600160a01b0316145b6114245789868151811061139d5761139d61290d565b60200260200101516060015160020b6113d88c88815181106113c1576113c161290d565b602002602001015160200151856107659190612eea565b13156113f757604051631510fe5b60e31b815260040160405180910390fd5b5f61140184611ae4565b905061140d8682611dff565b955082156114225761141f8382611dff565b92505b505b8e6001600160a01b03168a87815181106114405761144061290d565b6020026020010151604001516001600160a01b0316146114f35789868151811061146c5761146c61290d565b60200260200101516060015160020b6114a78c88815181106114905761149061290d565b602002602001015160400151856107659190612eea565b13156114c657604051631510fe5b60e31b815260040160405180910390fd5b5f6114d084611ae4565b90506114dc8582611e82565b945081156114f1576114ee8282611e82565b91505b505b61150661150085876130e8565b5f611eef565b611510828461310f565b61151a919061310f565b611524908d61310f565b9b50506001909401935061068f92505050565b505f611545888a018a612cd2565b6001600160a01b0386165f908152600160208190526040909120919550909350915061156e9050565b0154816040516020016115819190613139565b60405160208183030381529060405280519060200120146115b557604051637560978b60e11b815260040160405180910390fd5b5f5b815181101561178e578a6001600160a01b03168282815181106115dc576115dc61290d565b60200260200101516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116439190612921565b6001600160a01b03161461166a57604051635de194d760e01b815260040160405180910390fd5b5f82828151811061167d5761167d61290d565b60209081029190910101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f19190613122565b90508282815181106117055761170561290d565b60200260200101516001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865afa158015611755573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117799190613122565b611783908a61310f565b9850506001016115b7565b505f9050805b83518110156117dc578a6001600160a01b03168482815181106117b9576117b961290d565b60200260200101516001600160a01b0316036117d457600191505b600101611794565b5080611857576040516370a0823160e01b81526001600160a01b0383811660048301528b16906370a0823190602401602060405180830381865afa158015611826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184a9190613122565b611854908861310f565b96505b505050505050949350505050565b61186d6118a7565b6001600160a01b03811661189b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6118a4816118d3565b50565b5f546001600160a01b031633146101c45760405163118cdaa760e01b8152336004820152602401611892565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f82136119385761193382613179565b61193a565b815b92915050565b5f72fe0000000000fe0000000000fe0000000000fe604083901c165b6001603083021b81106119745781600101915061195c565b50919050565b5f6110006064603084020184901c5b069392505050565b5f808061199e8686611f04565b90925090505f6119ae8787611f3b565b6119c1906001600160801b038716612eb8565b90506119cd8787611f4d565b5f036119e8576119de838383611f5f565b93505050506119f3565b6119de838383612008565b9392505050565b5f5f611a068360e81c90565b60020b8460020b1215611a2357611a1c8361203c565b9150611a72565b611a2d8360d01c90565b60020b8460020b12611a4957611a42836120ae565b9050611a72565b611a5b611a5684866120f5565b61203c565b9150611a6f611a6a8486612115565b6120ae565b90505b9250929050565b5f60026048603084020184901c611989565b5f5f5f611a9786611940565b90505f5b818114611ada575f5f611ab08989858a612133565b9092509050611abf86836121d9565b9550611acb85826121d9565b94508260010192505050611a9b565b5050935093915050565b5f5f5f8360020b12611af9578260020b611b00565b8260020b5f035b9050620d89e8811115611b26576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f03611b3b57600160801b611b4d565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611b81576ffff97272373d413259a46990580e213a0260801c5b6004821615611ba0576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611bbf576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611bde576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611bfd576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611c1c576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611c3b576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611c5b576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611c7b576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611c9b576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611cbb576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611cdb576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611cfb576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611d1b576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611d3b576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611d5c576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611d7c576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611d9b576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611db8576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611dd757805f1981611dd357611dd3613193565b0490505b640100000000810615611deb576001611ded565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b0383161015611e5a575f611e3f611e3a611e288661225f565b6002866001600160a01b03160a61226f565b6122cd565b90505f8412611e4e5780611e52565b805f035b91505061193a565b5f611e3f611e3a611e6a8661225f565b611e7d6001600160a01b038716806122f6565b612354565b5f6001600160801b036001600160a01b0383161015611ec2575f611e3f611e3a611eab8661225f565b600160c01b6002876001600160a01b03160a6123b2565b5f611e3f611e3a611ed28661225f565b600160801b611eea6001600160a01b038816806122f6565b6123b2565b5f818313611efd57816119f3565b5090919050565b5f80611f30611f188585603002604c011c90565b611f22868661197a565b603087901c61ffff1661245c565b909590945092505050565b5f60806041603084020184901c611989565b5f60026040603084020184901c611989565b5f5f611f6a85611ae4565b90505f611f7685611ae4565b90505f611faa85611f99846001600160a01b0316866001600160a01b031661247a565b8585036001600160a01b03166123b2565b90506001600160801b03811115611fd45760405163528073f560e11b815260040160405180910390fd5b6001600160801b03811660d087901b62ffffff60d01b1660e889901b6001600160e81b03191601015b979650505050505050565b5f5f61201385611ae4565b90505f61201f85611ae4565b90505f611faa85600160601b8585036001600160a01b03166123b2565b5f5f61205061204b8460e81c90565b611ae4565b90505f61206061204b8560d01c90565b90506001600160a01b0382166120986060866001600160801b0316901b8484036001600160a01b0316846001600160a01b03166123b2565b816120a5576120a5613193565b04949350505050565b5f5f6120bd61204b8460e81c90565b90505f6120cd61204b8560d01c90565b90506120ed846001600160801b03168383036001600160a01b031661247a565b949350505050565b5f6119f36001600160e81b0384168360e81b6001600160e81b0319160190565b5f6119f362ffffff60d01b1984168360d01b62ffffff60d01b160190565b5f5f5f612142878787876124d8565b90505f61214f8887611a79565b15905061215c88876125ab565b5f0361219f57801561218c57612185612179836125bd565b6125bd565b6001600160801b031690565b92506121ce565b612198612179836125bd565b93506121ce565b80156121bb576121856121b56121748460801c90565b60801b90565b6121cb6121b56121748460801c90565b93505b505094509492505050565b5f5f6121e58360801d90565b600f0b6121f28560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b14158061221e57508181600f0b14155b1561223c57604051633486405d60e21b815260040160405180910390fd5b608083901b6001600160801b03828701166001600160801b031987160101611ffd565b5f5f821361193857815f0361193a565b5f80805f19848609848602925082811083820303915050805f03612298575060c01c905061193a565b80600160c01b116122a7575f5ffd5b5f600160c01b85870980840360c01c9310909103600160401b0291909117949350505050565b5f6001600160ff1b038211156119385760405163b668004560e01b815260040160405180910390fd5b5f80805f19848609848602925082811083820303915050805f0361231f575060401c905061193a565b80600160401b1161232e575f5ffd5b5f600160401b85870980840360401c9310909103600160c01b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f0361237d575060801c905061193a565b80600160801b1161238c575f5ffd5b5f600160801b85870980840360801c9310909103600160801b0291909117949350505050565b5f80805f19858709858702925082811083820303915050805f036123e6575f84116123db575f5ffd5b5082900490506119f3565b8084116123f1575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f5f5f61246a86866125e8565b9088039897019695505050505050565b5f80805f19848609848602925082811083820303915050805f036124a3575060601c905061193a565b80600160601b116124b2575f5ffd5b5f600160601b85870980840360601c9310909103600160a01b0291909117949350505050565b5f8080806124e6888761197a565b60020b1515905080612501576002606460308802011b880197505b5f61250d89888a611991565b90506125198988611a79565b1580156125235750855b8061253f57506125338988611a79565b1580159061253f575085155b80612548575081155b15612568576125568161262a565b93506125618161268b565b925061257f565b6125718161203c565b935061257c816120ae565b92505b61259e6001600160801b0385168460801b6001600160801b0319160190565b9998505050505050505050565b5f60026049603084020184901c611989565b805f600f82900b12156125e35760405163b668004560e01b815260040160405180910390fd5b919050565b5f8060026125f684866131a7565b61260091906131c6565b61261f61260d858761320a565b62ffffff166002808204910615150190565b915091509250929050565b5f5f61263961204b8460e81c90565b90505f61264961204b8560d01c90565b90506120ed61267a6060866001600160801b0316901b8484036001600160a01b0316846001600160a01b03166126ca565b6001846001600160a01b03166126ca565b5f5f61269a61204b8460e81c90565b90505f6126aa61204b8560d01c90565b90506120ed846001600160801b03168383036001600160a01b0316612706565b5f6126d68484846123b2565b90505f82806126e7576126e7613193565b84860911156119f3575f1981106126fc575f5ffd5b6001019392505050565b5f612711838361247a565b90505f600160601b838509111561193a575f19811061272e575f5ffd5b60010192915050565b6001600160a01b03811681146118a4575f5ffd5b5f6020828403121561275b575f5ffd5b81356119f381612737565b5f5f60408385031215612777575f5ffd5b823561278281612737565b946020939093013593505050565b5f5f83601f8401126127a0575f5ffd5b5081356001600160401b038111156127b6575f5ffd5b6020830191508360208260051b8501011115611a72575f5ffd5b5f5f5f5f5f606086880312156127e4575f5ffd5b85356127ef81612737565b945060208601356001600160401b03811115612809575f5ffd5b8601601f81018813612819575f5ffd5b80356001600160401b0381111561282e575f5ffd5b8860208260071b8401011115612842575f5ffd5b6020919091019450925060408601356001600160401b03811115612864575f5ffd5b61287088828901612790565b969995985093965092949392505050565b5f5f5f5f60608587031215612894575f5ffd5b843561289f81612737565b935060208501356128af81612737565b925060408501356001600160401b038111156128c9575f5ffd5b8501601f810187136128d9575f5ffd5b80356001600160401b038111156128ee575f5ffd5b8760208284010111156128ff575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612931575f5ffd5b81516119f381612737565b8060020b81146118a4575f5ffd5b602080825281018290525f8360408301825b858110156129da57823561296f81612737565b6001600160a01b03168252602083013561298881612737565b6001600160a01b0316602083015260408301356129a481612737565b6001600160a01b0316604083015260608301356129c08161293c565b60020b60608301526080928301929091019060010161295c565b5095945050505050565b602080825281018290525f8360408301825b858110156129da578235612a0981612737565b6001600160a01b03168252602092830192909101906001016129f6565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715612a5c57612a5c612a26565b60405290565b604051606081016001600160401b0381118282101715612a5c57612a5c612a26565b604051601f8201601f191681016001600160401b0381118282101715612aac57612aac612a26565b604052919050565b5f6001600160401b03821115612acc57612acc612a26565b5060051b60200190565b5f82601f830112612ae5575f5ffd5b8135612af8612af382612ab4565b612a84565b8082825260208201915060208360071b860101925085831115612b19575f5ffd5b602085015b838110156129da5760808188031215612b35575f5ffd5b612b3d612a3a565b8135612b4881612737565b81526020820135612b5881612737565b60208201526040820135612b6b81612737565b60408201526060820135612b7e8161293c565b60608201528352602090920191608001612b1e565b5f82601f830112612ba2575f5ffd5b8135612bb0612af382612ab4565b8082825260208201915060208360051b860101925085831115612bd1575f5ffd5b602085015b838110156129da5780356001600160401b03811115612bf3575f5ffd5b8601603f81018813612c03575f5ffd5b6020810135612c14612af382612ab4565b808282526020820191506020808460051b8601010192508a831115612c37575f5ffd5b6040840193505b82841015612c59578335825260209384019390910190612c3e565b86525050602093840193919091019050612bd6565b5f82601f830112612c7d575f5ffd5b8135612c8b612af382612ab4565b8082825260208201915060208360051b860101925085831115612cac575f5ffd5b602085015b838110156129da578035612cc481612737565b835260209283019201612cb1565b5f5f5f5f60808587031215612ce5575f5ffd5b84356001600160401b03811115612cfa575f5ffd5b8501601f81018713612d0a575f5ffd5b8035612d18612af382612ab4565b80828252602082019150602060608402850101925089831115612d39575f5ffd5b6020840193505b82841015612da6576060848b031215612d57575f5ffd5b612d5f612a62565b8435612d6a8161293c565b81526020850135612d7a8161293c565b60208201526040850135612d8d8161293c565b6040820152825260609390930192602090910190612d40565b965050505060208501356001600160401b03811115612dc3575f5ffd5b612dcf87828801612ad6565b93505060408501356001600160401b03811115612dea575f5ffd5b612df687828801612b93565b92505060608501356001600160401b03811115612e11575f5ffd5b612e1d87828801612c6e565b91505092959194509250565b602080825282518282018190525f918401906040840190835b81811015612e9957835180516001600160a01b0390811685526020808301518216818701526040808401519092169186019190915260609182015160020b9185019190915290930192608090920191600101612e42565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761193a5761193a612ea4565b5f60208284031215612edf575f5ffd5b81516119f38161293c565b600282810b9082900b03627fffff198112627fffff8213171561193a5761193a612ea4565b6001600160a01b038416815282151560208083019190915260606040830181905283519083018190525f918401906080840190835b81811015612f62578351835260209384019390920191600101612f44565b5090979650505050505050565b5f82601f830112612f7e575f5ffd5b8151612f8c612af382612ab4565b8082825260208201915060208360051b860101925085831115612fad575f5ffd5b602085015b838110156129da578051835260209283019201612fb2565b5f5f5f5f5f60a08688031215612fde575f5ffd5b85516020870151604088015191965094506001600160401b03811115613002575f5ffd5b8601601f81018813613012575f5ffd5b8051613020612af382612ab4565b8082825260208201915060208360051b85010192508a831115613041575f5ffd5b6020840193505b82841015613063578351825260209384019390910190613048565b8096505050505060608601516001600160401b03811115613082575f5ffd5b61308e88828901612f6f565b92505060808601516001600160401b038111156130a9575f5ffd5b6130b588828901612f6f565b9150509295509295909350565b8181035f8312801583831316838312821617156130e1576130e1612ea4565b5092915050565b8082018281125f83128015821682158216171561310757613107612ea4565b505092915050565b8082018082111561193a5761193a612ea4565b5f60208284031215613132575f5ffd5b5051919050565b602080825282518282018190525f918401906040840190835b81811015612e995783516001600160a01b0316835260209384019390920191600101613152565b5f600160ff1b820161318d5761318d612ea4565b505f0390565b634e487b7160e01b5f52601260045260245ffd5b5f8260020b8260020b028060020b91508082146130e1576130e1612ea4565b5f8160020b8360020b806131e857634e487b7160e01b5f52601260045260245ffd5b627fffff1982145f198214161561320157613201612ea4565b90059392505050565b62ffffff81811683821602908116908181146130e1576130e1612ea456";
30970
31186
  const STALE_ORACLE_GUARD_PATTERN = /131561([0-9a-f]{4})57604051631510fe5b60e31b/g;
30971
- const STALE_ORACLE_GUARD_COUNT = 3;
31187
+ const LEGACY_STALE_ORACLE_GUARD_COUNT = 3;
31188
+ const ROBINHOOD_STALE_ORACLE_GUARD_COUNT = 4;
30972
31189
  /**
30973
31190
  * Builds a read-only accountant runtime that preserves NAV calculation and all
30974
31191
  * structural checks while bypassing the three manager-price freshness guards.
30975
31192
  * The stale manager prices are validation inputs only; NAV continues to use
30976
31193
  * the pools' current TWAP/current tick values.
30977
31194
  */
30978
- function bypassStaleOraclePriceGuards(bytecode) {
31195
+ function bypassStaleOraclePriceGuards(bytecode, expectedGuardCount) {
30979
31196
  let replacements = 0;
30980
31197
  const patchedBytecode = bytecode.replace(STALE_ORACLE_GUARD_PATTERN, (_match, jumpDestination) => {
30981
31198
  replacements += 1;
30982
31199
  return `135061${jumpDestination}56604051631510fe5b60e31b`;
30983
31200
  });
30984
- if (replacements !== STALE_ORACLE_GUARD_COUNT) throw new Error(`Unexpected PanopticVaultAccountant runtime: found ${replacements} stale-oracle guards.`);
31201
+ if (replacements !== expectedGuardCount) throw new Error(`Unexpected PanopticVaultAccountant runtime: found ${replacements} stale-oracle guards.`);
30985
31202
  return patchedBytecode;
30986
31203
  }
30987
- const READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE);
31204
+ const READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE, LEGACY_STALE_ORACLE_GUARD_COUNT);
31205
+ const READ_ONLY_ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE, ROBINHOOD_STALE_ORACLE_GUARD_COUNT);
30988
31206
  const BASE_ACCOUNTANT_ADDRESS = "0x345cA3407942f9d175c9eA8B90e83A36F570f852";
30989
31207
  const MAINNET_ACCOUNTANT_ADDRESS = "0x65aA902AE3135658587FFC36ED51B61c927114e1";
30990
31208
  const LEGACY_MAINNET_ACCOUNTANT_ADDRESS = "0xCCAA8adC2776786Fd0A14Fb1f22D6089E0637a49";
30991
31209
  const SEPOLIA_ACCOUNTANT_ADDRESS = "0x25BBef1DF262c24aa1AACD1F7eCeEcc1a7AD08ab";
30992
31210
  const TEST_ACCOUNTANT_ADDRESS = "0x3fE074e8131bE6D8B94700860E1D9E8ece97AA54";
31211
+ const ROBINHOOD_ACCOUNTANT_ADDRESS = "0x9e345d862c41010F87D8E5A279e8D320D2831D36";
30993
31212
  const BASE_WETH_ADDRESS = "0x4200000000000000000000000000000000000006";
30994
31213
  const MAINNET_WETH_ADDRESS = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
30995
31214
  const SEPOLIA_WETH_ADDRESS = "0xfff9976782d46cc05630d1f6ebab18b2324d6b14";
@@ -31032,7 +31251,8 @@ const STALE_ORACLE_OVERRIDE_BYTECODE_BY_ACCOUNTANT = {
31032
31251
  [normalizeAddressLower(TEST_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
31033
31252
  bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
31034
31253
  wethAddress: SEPOLIA_WETH_ADDRESS
31035
- })
31254
+ }),
31255
+ [normalizeAddressLower(ROBINHOOD_ACCOUNTANT_ADDRESS)]: READ_ONLY_ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE
31036
31256
  };
31037
31257
  function getStaleOracleOverrideBytecodeForAccountant(accountantAddress) {
31038
31258
  return STALE_ORACLE_OVERRIDE_BYTECODE_BY_ACCOUNTANT[normalizeAddressLower(accountantAddress)];
@@ -31528,12 +31748,15 @@ function medianBigInt(values) {
31528
31748
  const lowerMiddle = sorted[upperMiddleIndex - 1];
31529
31749
  return lowerMiddle === void 0 ? void 0 : (lowerMiddle + upperMiddle) / 2n;
31530
31750
  }
31531
- function clampPriorityFee(priorityFee) {
31532
- if (priorityFee < MIN_VAULT_PRIORITY_FEE_PER_GAS) return MIN_VAULT_PRIORITY_FEE_PER_GAS;
31751
+ function getChainPriorityFeeFloor(chainId) {
31752
+ return chainId === ROBINHOOD_CHAIN_ID ? 0n : void 0;
31753
+ }
31754
+ function clampPriorityFee(priorityFee, minimumPriorityFeePerGas = MIN_VAULT_PRIORITY_FEE_PER_GAS) {
31755
+ if (priorityFee < minimumPriorityFeePerGas) return minimumPriorityFeePerGas;
31533
31756
  if (priorityFee > MAX_VAULT_PRIORITY_FEE_PER_GAS) return MAX_VAULT_PRIORITY_FEE_PER_GAS;
31534
31757
  return priorityFee;
31535
31758
  }
31536
- function resolveFeeHistoryQuote({ baseFeePerGas, reward }) {
31759
+ function resolveFeeHistoryQuote({ baseFeePerGas, reward, minimumPriorityFeePerGas }) {
31537
31760
  const latestBaseFeeIndex = baseFeePerGas.length - 2;
31538
31761
  if (latestBaseFeeIndex < 0 || reward === void 0 || reward.length === 0) return null;
31539
31762
  const p90Rewards = reward.flatMap((blockRewards) => {
@@ -31542,16 +31765,18 @@ function resolveFeeHistoryQuote({ baseFeePerGas, reward }) {
31542
31765
  });
31543
31766
  const sampledPriorityFee = medianBigInt(p90Rewards);
31544
31767
  if (sampledPriorityFee === void 0) return null;
31545
- const maxPriorityFeePerGas = clampPriorityFee(sampledPriorityFee);
31768
+ const effectivePriorityFeeFloor = minimumPriorityFeePerGas ?? MIN_VAULT_PRIORITY_FEE_PER_GAS;
31769
+ const maxPriorityFeePerGas = clampPriorityFee(sampledPriorityFee, effectivePriorityFeeFloor);
31546
31770
  const bufferedBaseFee = ceilMultiplyFraction(baseFeePerGas[latestBaseFeeIndex], BASE_FEE_BUFFER_NUMERATOR, BASE_FEE_BUFFER_DENOMINATOR);
31547
31771
  return {
31548
31772
  maxFeePerGas: bufferedBaseFee + maxPriorityFeePerGas,
31549
31773
  maxPriorityFeePerGas,
31550
- minimumMaxFeePerGas: bufferedBaseFee + MIN_VAULT_PRIORITY_FEE_PER_GAS,
31774
+ minimumMaxFeePerGas: bufferedBaseFee + effectivePriorityFeeFloor,
31775
+ ...minimumPriorityFeePerGas === void 0 ? {} : { minimumPriorityFeePerGas },
31551
31776
  source: "fee_history"
31552
31777
  };
31553
31778
  }
31554
- function resolveDeltaHedgeFeeHistoryQuote({ baseFeePerGas, reward }) {
31779
+ function resolveDeltaHedgeFeeHistoryQuote({ baseFeePerGas, reward, minimumPriorityFeePerGas }) {
31555
31780
  const latestBaseFeeIndex = baseFeePerGas.length - 2;
31556
31781
  if (latestBaseFeeIndex < 0 || reward === void 0 || reward.length === 0) return null;
31557
31782
  const p25Rewards = reward.flatMap((blockRewards) => {
@@ -31560,22 +31785,25 @@ function resolveDeltaHedgeFeeHistoryQuote({ baseFeePerGas, reward }) {
31560
31785
  });
31561
31786
  const rawPriorityFeePerGas = medianBigInt(p25Rewards);
31562
31787
  if (rawPriorityFeePerGas === void 0) return null;
31563
- const maxPriorityFeePerGas = clampPriorityFee(rawPriorityFeePerGas);
31788
+ const effectivePriorityFeeFloor = minimumPriorityFeePerGas ?? MIN_VAULT_PRIORITY_FEE_PER_GAS;
31789
+ const maxPriorityFeePerGas = clampPriorityFee(rawPriorityFeePerGas, effectivePriorityFeeFloor);
31564
31790
  const bufferedBaseFee = ceilMultiplyFraction(baseFeePerGas[latestBaseFeeIndex], BASE_FEE_BUFFER_NUMERATOR, BASE_FEE_BUFFER_DENOMINATOR);
31565
31791
  return {
31566
31792
  maxFeePerGas: bufferedBaseFee + maxPriorityFeePerGas,
31567
31793
  maxPriorityFeePerGas,
31568
- minimumMaxFeePerGas: bufferedBaseFee + MIN_VAULT_PRIORITY_FEE_PER_GAS,
31794
+ minimumMaxFeePerGas: bufferedBaseFee + effectivePriorityFeeFloor,
31795
+ ...minimumPriorityFeePerGas === void 0 ? {} : { minimumPriorityFeePerGas },
31569
31796
  rawPriorityFeePerGas,
31570
31797
  source: "fee_history_p25"
31571
31798
  };
31572
31799
  }
31573
- function resolveRpcPriorityFeeQuote({ baseFeePerGas, rawPriorityFeePerGas }) {
31800
+ function resolveRpcPriorityFeeQuote({ baseFeePerGas, rawPriorityFeePerGas, minimumPriorityFeePerGas }) {
31574
31801
  const bufferedBaseFee = ceilMultiplyFraction(baseFeePerGas, BASE_FEE_BUFFER_NUMERATOR, BASE_FEE_BUFFER_DENOMINATOR);
31575
31802
  return {
31576
31803
  maxFeePerGas: bufferedBaseFee + rawPriorityFeePerGas,
31577
31804
  maxPriorityFeePerGas: rawPriorityFeePerGas,
31578
- minimumMaxFeePerGas: bufferedBaseFee + rawPriorityFeePerGas,
31805
+ minimumMaxFeePerGas: bufferedBaseFee + (minimumPriorityFeePerGas ?? rawPriorityFeePerGas),
31806
+ ...minimumPriorityFeePerGas === void 0 ? {} : { minimumPriorityFeePerGas },
31579
31807
  rawPriorityFeePerGas,
31580
31808
  source: "rpc_priority_fee"
31581
31809
  };
@@ -31596,7 +31824,7 @@ function getVaultTransactionReplacementFeeQuote({ originalQuote, historicalQuote
31596
31824
  requiredMaxPriorityFeePerGas: requiredReplacementPriorityFee,
31597
31825
  maximumAffordableFeePerGas: MAX_VAULT_TRANSACTION_GAS_COST / gasLimit
31598
31826
  });
31599
- const bufferedBaseFee = historicalQuote.minimumMaxFeePerGas - MIN_VAULT_PRIORITY_FEE_PER_GAS;
31827
+ const bufferedBaseFee = historicalQuote.minimumMaxFeePerGas - (historicalQuote.minimumPriorityFeePerGas ?? MIN_VAULT_PRIORITY_FEE_PER_GAS);
31600
31828
  const currentMarketMaxFee = bufferedBaseFee + requiredMaxPriorityFeePerGas;
31601
31829
  const desiredMaxFeePerGas = currentMarketMaxFee > bumpedMaxFee ? currentMarketMaxFee : bumpedMaxFee;
31602
31830
  const maximumAffordableFeePerGas = MAX_VAULT_TRANSACTION_GAS_COST / gasLimit;
@@ -31614,13 +31842,15 @@ function getVaultTransactionReplacementFeeQuote({ originalQuote, historicalQuote
31614
31842
  maxPriorityFeePerGas: requiredMaxPriorityFeePerGas
31615
31843
  };
31616
31844
  }
31617
- function resolveFallbackQuote({ maxFeePerGas: estimatedMaxFeePerGas, maxPriorityFeePerGas: estimatedPriorityFeePerGas }) {
31618
- const maxPriorityFeePerGas = clampPriorityFee(estimatedPriorityFeePerGas);
31845
+ function resolveFallbackQuote({ maxFeePerGas: estimatedMaxFeePerGas, maxPriorityFeePerGas: estimatedPriorityFeePerGas, minimumPriorityFeePerGas }) {
31846
+ const effectivePriorityFeeFloor = minimumPriorityFeePerGas ?? MIN_VAULT_PRIORITY_FEE_PER_GAS;
31847
+ const maxPriorityFeePerGas = clampPriorityFee(estimatedPriorityFeePerGas, effectivePriorityFeeFloor);
31619
31848
  const estimatedBaseFeeAllowance = estimatedMaxFeePerGas > estimatedPriorityFeePerGas ? estimatedMaxFeePerGas - estimatedPriorityFeePerGas : 0n;
31620
31849
  return {
31621
31850
  maxFeePerGas: estimatedBaseFeeAllowance + maxPriorityFeePerGas,
31622
31851
  maxPriorityFeePerGas,
31623
- minimumMaxFeePerGas: estimatedBaseFeeAllowance + MIN_VAULT_PRIORITY_FEE_PER_GAS,
31852
+ minimumMaxFeePerGas: estimatedBaseFeeAllowance + effectivePriorityFeeFloor,
31853
+ ...minimumPriorityFeePerGas === void 0 ? {} : { minimumPriorityFeePerGas },
31624
31854
  source: "viem_fallback"
31625
31855
  };
31626
31856
  }
@@ -31633,7 +31863,7 @@ function applyVaultTransactionGasCostLimit(quote, gasLimit) {
31633
31863
  minimumRequiredFeePerGas: quote.minimumMaxFeePerGas
31634
31864
  });
31635
31865
  if (quote.maxFeePerGas <= maximumAffordableFeePerGas) return quote;
31636
- const bufferedBaseFee = quote.minimumMaxFeePerGas - MIN_VAULT_PRIORITY_FEE_PER_GAS;
31866
+ const bufferedBaseFee = quote.minimumMaxFeePerGas - (quote.minimumPriorityFeePerGas ?? MIN_VAULT_PRIORITY_FEE_PER_GAS);
31637
31867
  const affordablePriorityFee = maximumAffordableFeePerGas - bufferedBaseFee;
31638
31868
  return {
31639
31869
  ...quote,
@@ -31646,7 +31876,8 @@ function bufferVaultTransactionGasEstimate(gasEstimate) {
31646
31876
  return ceilMultiplyFraction(gasEstimate, GAS_ESTIMATE_BUFFER_NUMERATOR, GAS_ESTIMATE_BUFFER_DENOMINATOR);
31647
31877
  }
31648
31878
  function validateVaultSignedTransactionFeeCaps(feeCaps, quote) {
31649
- const { gasLimit, maxFeePerGas, maxPriorityFeePerGas } = feeCaps;
31879
+ const { chainId, gasLimit, maxFeePerGas, maxPriorityFeePerGas } = feeCaps;
31880
+ const minimumPriorityFeePerGas = quote?.minimumPriorityFeePerGas ?? getChainPriorityFeeFloor(chainId) ?? MIN_VAULT_PRIORITY_FEE_PER_GAS;
31650
31881
  if (maxFeePerGas === null || maxPriorityFeePerGas === null) return {
31651
31882
  valid: false,
31652
31883
  code: "MissingEip1559Fees",
@@ -31657,10 +31888,10 @@ function validateVaultSignedTransactionFeeCaps(feeCaps, quote) {
31657
31888
  code: "InvalidFeeCaps",
31658
31889
  reason: `Signed transaction maxPriorityFeePerGas (${maxPriorityFeePerGas.toString()} wei) cannot exceed maxFeePerGas (${maxFeePerGas.toString()} wei).`
31659
31890
  };
31660
- if (maxPriorityFeePerGas < MIN_VAULT_PRIORITY_FEE_PER_GAS) return {
31891
+ if (maxPriorityFeePerGas < minimumPriorityFeePerGas) return {
31661
31892
  valid: false,
31662
31893
  code: "PriorityFeeTooLow",
31663
- reason: `Signed transaction maxPriorityFeePerGas (${maxPriorityFeePerGas.toString()} wei) must be at least ${MIN_VAULT_PRIORITY_FEE_PER_GAS.toString()} wei (0.1 gwei).`
31894
+ reason: `Signed transaction maxPriorityFeePerGas (${maxPriorityFeePerGas.toString()} wei) must be at least ${minimumPriorityFeePerGas.toString()} wei.`
31664
31895
  };
31665
31896
  if (maxPriorityFeePerGas > MAX_VAULT_PRIORITY_FEE_PER_GAS) return {
31666
31897
  valid: false,
@@ -31675,21 +31906,27 @@ function validateVaultSignedTransactionFeeCaps(feeCaps, quote) {
31675
31906
  if (quote !== void 0 && maxFeePerGas < quote.minimumMaxFeePerGas) return {
31676
31907
  valid: false,
31677
31908
  code: "MaxFeeTooLow",
31678
- reason: `Signed transaction maxFeePerGas (${maxFeePerGas.toString()} wei) must be at least ${quote.minimumMaxFeePerGas.toString()} wei for the buffered next-block base fee and 0.1 gwei minimum priority fee.`
31909
+ 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.`
31679
31910
  };
31680
31911
  return { valid: true };
31681
31912
  }
31682
- async function resolveVaultTransactionFeeQuote({ readFeeHistory, readFallbackEstimate }) {
31913
+ async function resolveVaultTransactionFeeQuote({ readFeeHistory, readFallbackEstimate, minimumPriorityFeePerGas }) {
31683
31914
  let feeHistoryError;
31684
31915
  try {
31685
- const quote = resolveFeeHistoryQuote(await readFeeHistory());
31916
+ const quote = resolveFeeHistoryQuote({
31917
+ ...await readFeeHistory(),
31918
+ minimumPriorityFeePerGas
31919
+ });
31686
31920
  if (quote !== null) return quote;
31687
31921
  feeHistoryError = new Error("eth_feeHistory returned incomplete base fee or reward data");
31688
31922
  } catch (error) {
31689
31923
  feeHistoryError = error;
31690
31924
  }
31691
31925
  try {
31692
- return resolveFallbackQuote(await readFallbackEstimate());
31926
+ return resolveFallbackQuote({
31927
+ ...await readFallbackEstimate(),
31928
+ minimumPriorityFeePerGas
31929
+ });
31693
31930
  } catch (fallbackError) {
31694
31931
  throw new VaultTransactionFeeEstimationError({
31695
31932
  feeHistoryError,
@@ -31701,12 +31938,13 @@ async function resolveVaultTransactionFeeQuote({ readFeeHistory, readFallbackEst
31701
31938
  * Resolve explicit EIP-1559 fees for operator-controlled vault transactions.
31702
31939
  *
31703
31940
  * The normal path follows the median p90 priority fee from the last 20 blocks,
31704
- * with a 0.1 gwei floor and 3 gwei ceiling. If fee history is unavailable,
31705
- * Viem's estimate is used while preserving those bounds and its original
31706
- * base-fee allowance.
31941
+ * with a 3 gwei ceiling and a 0.1 gwei floor except on chains that do not use
31942
+ * tips for ordering. If fee history is unavailable, Viem's estimate is used
31943
+ * while preserving those bounds and its original base-fee allowance.
31707
31944
  */
31708
31945
  async function getVaultTransactionFeeQuote(client) {
31709
31946
  return resolveVaultTransactionFeeQuote({
31947
+ minimumPriorityFeePerGas: getChainPriorityFeeFloor(client.chain?.id),
31710
31948
  readFeeHistory: () => getFeeHistory(client, {
31711
31949
  blockCount: FEE_HISTORY_BLOCK_COUNT,
31712
31950
  blockTag: "latest",
@@ -31721,13 +31959,19 @@ async function getVaultDeltaHedgeHistoricalFeeQuote(client) {
31721
31959
  blockTag: "latest",
31722
31960
  rewardPercentiles: DELTA_HEDGE_FEE_HISTORY_REWARD_PERCENTILES
31723
31961
  });
31724
- const quote = resolveDeltaHedgeFeeHistoryQuote(feeHistory);
31962
+ const quote = resolveDeltaHedgeFeeHistoryQuote({
31963
+ ...feeHistory,
31964
+ minimumPriorityFeePerGas: getChainPriorityFeeFloor(client.chain?.id)
31965
+ });
31725
31966
  if (quote === null) throw new Error("eth_feeHistory returned incomplete p25 base fee or reward data");
31726
31967
  return quote;
31727
31968
  }
31728
- async function resolveVaultDeltaHedgeInitialFeeQuote({ readRpcQuote, readHistoricalQuote }) {
31969
+ async function resolveVaultDeltaHedgeInitialFeeQuote({ readRpcQuote, readHistoricalQuote, minimumPriorityFeePerGas }) {
31729
31970
  try {
31730
- return resolveRpcPriorityFeeQuote(await readRpcQuote());
31971
+ return resolveRpcPriorityFeeQuote({
31972
+ ...await readRpcQuote(),
31973
+ minimumPriorityFeePerGas
31974
+ });
31731
31975
  } catch {
31732
31976
  return readHistoricalQuote();
31733
31977
  }
@@ -31739,6 +31983,7 @@ async function resolveVaultDeltaHedgeInitialFeeQuote({ readRpcQuote, readHistori
31739
31983
  */
31740
31984
  async function getVaultDeltaHedgeInitialFeeQuote(client) {
31741
31985
  return resolveVaultDeltaHedgeInitialFeeQuote({
31986
+ minimumPriorityFeePerGas: getChainPriorityFeeFloor(client.chain?.id),
31742
31987
  readRpcQuote: async () => {
31743
31988
  const [rawPriorityFee, latestBlock] = await Promise.all([client.request({ method: "eth_maxPriorityFeePerGas" }), getBlock(client, { blockTag: "latest" })]);
31744
31989
  if (latestBlock.baseFeePerGas === null) throw new Error("Latest block does not include an EIP-1559 base fee");
@@ -31963,11 +32208,11 @@ function encodeWithdrawFunctionData({ assets, receiver, owner }) {
31963
32208
 
31964
32209
  //#endregion
31965
32210
  //#region src/token/erc20/approve.ts
31966
- function encodeApproveFunctionData({ spender, amount }) {
32211
+ function encodeApproveFunctionData({ spender, amount: amount$1 }) {
31967
32212
  return encodeFunctionData({
31968
32213
  abi: Erc20Abi,
31969
32214
  functionName: "approve",
31970
- args: [spender, amount]
32215
+ args: [spender, amount$1]
31971
32216
  });
31972
32217
  }
31973
32218
 
@@ -32010,9 +32255,9 @@ function getAlchemyWsRpcUrl(chainId, alchemyApiKey) {
32010
32255
  * formatTokenAmount(-500000000000000000n, 18n, 4n) // "-0.5000"
32011
32256
  * ```
32012
32257
  */
32013
- function formatTokenAmount(amount, decimals, precision) {
32014
- const isNegative = amount < 0n;
32015
- const absAmount = isNegative ? -amount : amount;
32258
+ function formatTokenAmount(amount$1, decimals, precision) {
32259
+ const isNegative = amount$1 < 0n;
32260
+ const absAmount = isNegative ? -amount$1 : amount$1;
32016
32261
  const divisor = 10n ** decimals;
32017
32262
  const integerPart = absAmount / divisor;
32018
32263
  const fractionalPart = absAmount % divisor;
@@ -32241,5 +32486,5 @@ async function getIrmCurve(params) {
32241
32486
  }
32242
32487
 
32243
32488
  //#endregion
32244
- 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, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getSpyUsdgMarket, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, 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 };
32489
+ 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, 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 };
32245
32490
  //# sourceMappingURL=index.js.map