@panoptic-eng/sdk 1.0.67 → 1.0.69

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 (42) hide show
  1. package/dist/{chainDeployments-CwnYHCg7.js → chainDeployments-BGvEeQSH.js} +24 -6
  2. package/dist/cow/index.d.ts.map +1 -1
  3. package/dist/cow/index.js +47 -2
  4. package/dist/cow/index.js.map +1 -1
  5. package/dist/{cow-CGgPXhY6.js → cow-BBPknr5W.js} +1 -1
  6. package/dist/deployments.d.ts +2 -0
  7. package/dist/deployments.d.ts.map +1 -1
  8. package/dist/deployments.js +24 -6
  9. package/dist/deployments.js.map +1 -1
  10. package/dist/{greeks-CGtgLUyh.js → greeks-DNPP24KL.js} +115 -9
  11. package/dist/index.d.ts +197 -46
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2359 -2180
  14. package/dist/index.js.map +1 -1
  15. package/dist/{irm-BDxwCFDm.js → irm-DurYJ0ht.js} +3 -3
  16. package/dist/panoptic/v2/greeks/index.d.ts +7 -4
  17. package/dist/panoptic/v2/greeks/index.d.ts.map +1 -1
  18. package/dist/panoptic/v2/greeks/index.js +74 -7
  19. package/dist/panoptic/v2/greeks/index.js.map +1 -1
  20. package/dist/panoptic/v2/index.d.ts +89 -5
  21. package/dist/panoptic/v2/index.d.ts.map +1 -1
  22. package/dist/panoptic/v2/index.js +699 -55
  23. package/dist/panoptic/v2/index.js.map +1 -1
  24. package/dist/panoptic/v2/react-public.d.ts +80 -6
  25. package/dist/panoptic/v2/react-public.d.ts.map +1 -1
  26. package/dist/panoptic/v2/react-public.js +2717 -2463
  27. package/dist/panoptic/v2/react-public.js.map +1 -1
  28. package/dist/{rates-BHS-Qiu7.js → rates-B-eRYOTS.js} +39 -3
  29. package/dist/{router-BW6TqwOO.js → router-ChMhfTqT.js} +969 -39
  30. package/dist/rpc/index.d.ts +3 -0
  31. package/dist/rpc/index.d.ts.map +1 -1
  32. package/dist/rpc/index.js +31 -3
  33. package/dist/rpc/index.js.map +1 -1
  34. package/dist/{transactionFees-B4jz-v7d.js → transactionFees-BGfyq3Jo.js} +1 -1
  35. package/dist/uniswap/index.js +53 -13
  36. package/dist/uniswap/index.js.map +1 -1
  37. package/dist/{v2-Dgh6JxG_.js → v2-Bo1vZXvR.js} +150 -10
  38. package/dist/vault-transaction-fees.js +24 -6
  39. package/dist/vault-transaction-fees.js.map +1 -1
  40. package/dist/{writes-CG612Vuk.js → writes-D53wWDT-.js} +2 -2
  41. package/package.json +1 -1
  42. package/dist/router-IDtCENST.js +0 -942
@@ -1,4 +1,4 @@
1
- import { PanopticError, submitWrite } from "./rates-BHS-Qiu7.js";
1
+ import { PanopticError, submitWrite } from "./rates-B-eRYOTS.js";
2
2
  import { erc20Abi, getAddress, keccak256, maxUint256, stringToHex, zeroAddress } from "viem";
3
3
 
4
4
  //#region src/cow/addresses.ts
@@ -25,6 +25,8 @@ type HypoVaultManagerTurnkeySigners = {
25
25
  };
26
26
  type PanopticPoolAddresses = {
27
27
  version: 'v3' | 'v4';
28
+ riskEngine?: Address;
29
+ deploymentBlock?: string;
28
30
  panopticPool: Address;
29
31
  collateralTracker0: Address;
30
32
  collateralTracker1: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"deployments.d.ts","names":["Address","Hex","HypoVaultCoreAddresses","HypoVaultVaultAddresses","HypoVaultManagerAddresses","HypoVaultManagerTurnkeySigners","PanopticPoolAddresses","PanopticV2Addresses","EthUsdc5BpsMarket","SpyUsdgMarket","InfrastructureAddresses","SfpmSwapMarket","ChainDeployment","Record","Readonly","MAINNET_CHAIN_ID","SEPOLIA_CHAIN_ID","BASE_CHAIN_ID","ROBINHOOD_CHAIN_ID","CHAIN_DEPLOYMENTS","getChainDeployment","requireChainDeployment","isSupportedChain","getEthUsdcMarket","getSpyUsdgMarket","getSfpmSwapMarket","MAINNET_DEPLOYMENT","MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES","MAINNET_PANOPTIC_V2_ADDRESSES","SEPOLIA_DEPLOYMENT","SEPOLIA_HYPOVAULT_CORE_ADDRESSES","SEPOLIA_HYPOVAULT_ADDRESSES","SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES","SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS","SEPOLIA_PANOPTIC_POOL_ADDRESSES","SEPOLIA_PANOPTIC_V2_ADDRESSES","BASE_DEPLOYMENT","BASE_HYPOVAULT_CORE_ADDRESSES","BASE_HYPOVAULT_ADDRESSES","BASE_HYPOVAULT_MANAGER_ADDRESSES","BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS","BASE_PANOPTIC_POOL_ADDRESSES","BASE_PANOPTIC_V2_ADDRESSES","BASE_ETH_USDC_5BPS_MARKET","SEPOLIA_ETH_USDC_5BPS_MARKET","MAINNET_RISK_ENGINES","BASE_RISK_ENGINES","SEPOLIA_RISK_ENGINES","ROBINHOOD_DEPLOYMENT","ROBINHOOD_HYPOVAULT_CORE_ADDRESSES","ROBINHOOD_HYPOVAULT_ADDRESSES","ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES","ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS","ROBINHOOD_PANOPTIC_POOL_ADDRESSES","ROBINHOOD_SPY_USDG_30BPS_PANOPTIC_POOL_ADDRESSES","ROBINHOOD_SPY_USDG_5BPS_PANOPTIC_POOL_ADDRESSES","ROBINHOOD_PANOPTIC_V2_ADDRESSES","ROBINHOOD_RISK_ENGINES","ROBINHOOD_SPY_USDG_MARKET","ROBINHOOD_SPY_USDG_30BPS_MARKET","ROBINHOOD_SPY_USDG_5BPS_MARKET","Address","VaultDisplayNameResolverInput","VaultDisplayNameResolver","VAULT_DISPLAY_NAMES_PER_CHAIN","Record","VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN","resolveVaultDisplayName","chainId","vaultAddress","underlyingSymbol","fallbackName"],"sources":["../../deployments/src/chainDeployments.d.ts","../../deployments/src/vaultDisplayNames.d.ts"],"sourcesContent":null,"mappings":"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"}
1
+ {"version":3,"file":"deployments.d.ts","names":["Address","Hex","HypoVaultCoreAddresses","HypoVaultVaultAddresses","HypoVaultManagerAddresses","HypoVaultManagerTurnkeySigners","PanopticPoolAddresses","PanopticV2Addresses","EthUsdc5BpsMarket","SpyUsdgMarket","InfrastructureAddresses","SfpmSwapMarket","ChainDeployment","Record","Readonly","MAINNET_CHAIN_ID","SEPOLIA_CHAIN_ID","BASE_CHAIN_ID","ROBINHOOD_CHAIN_ID","CHAIN_DEPLOYMENTS","getChainDeployment","requireChainDeployment","isSupportedChain","getEthUsdcMarket","getSpyUsdgMarket","getSfpmSwapMarket","MAINNET_DEPLOYMENT","MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES","MAINNET_PANOPTIC_V2_ADDRESSES","SEPOLIA_DEPLOYMENT","SEPOLIA_HYPOVAULT_CORE_ADDRESSES","SEPOLIA_HYPOVAULT_ADDRESSES","SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES","SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS","SEPOLIA_PANOPTIC_POOL_ADDRESSES","SEPOLIA_PANOPTIC_V2_ADDRESSES","BASE_DEPLOYMENT","BASE_HYPOVAULT_CORE_ADDRESSES","BASE_HYPOVAULT_ADDRESSES","BASE_HYPOVAULT_MANAGER_ADDRESSES","BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS","BASE_PANOPTIC_POOL_ADDRESSES","BASE_PANOPTIC_V2_ADDRESSES","BASE_ETH_USDC_5BPS_MARKET","SEPOLIA_ETH_USDC_5BPS_MARKET","MAINNET_RISK_ENGINES","BASE_RISK_ENGINES","SEPOLIA_RISK_ENGINES","ROBINHOOD_DEPLOYMENT","ROBINHOOD_HYPOVAULT_CORE_ADDRESSES","ROBINHOOD_HYPOVAULT_ADDRESSES","ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES","ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS","ROBINHOOD_PANOPTIC_POOL_ADDRESSES","ROBINHOOD_SPY_USDG_30BPS_PANOPTIC_POOL_ADDRESSES","ROBINHOOD_SPY_USDG_5BPS_PANOPTIC_POOL_ADDRESSES","ROBINHOOD_PANOPTIC_V2_ADDRESSES","ROBINHOOD_RISK_ENGINES","ROBINHOOD_SPY_USDG_MARKET","ROBINHOOD_SPY_USDG_30BPS_MARKET","ROBINHOOD_SPY_USDG_5BPS_MARKET","Address","VaultDisplayNameResolverInput","VaultDisplayNameResolver","VAULT_DISPLAY_NAMES_PER_CHAIN","Record","VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN","resolveVaultDisplayName","chainId","vaultAddress","underlyingSymbol","fallbackName"],"sources":["../../deployments/src/chainDeployments.d.ts","../../deployments/src/vaultDisplayNames.d.ts"],"sourcesContent":null,"mappings":"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"}
@@ -34,12 +34,22 @@ var _1 = {
34
34
  "collateralTracker0": "0x1e46b0289B7E0F710E2Db8Ab87800dd782D624f7",
35
35
  "collateralTracker1": "0x12bF31955522BAC337D93e1bC0a39F68D8BDa216"
36
36
  },
37
- "additionalPools": { "ethUsdc5bpsV3": {
38
- "version": "v3",
39
- "panopticPool": "0x00000000009C7B687e833559e34503f64d7ed7c4",
40
- "collateralTracker0": "0x3CCdA7d5E841d6543D90BcEc20b36a724C184DE9",
41
- "collateralTracker1": "0x69E9f9e44E5F52237493b980dd7306198C64A4E4"
42
- } },
37
+ "additionalPools": {
38
+ "ethUsdc5bpsV3": {
39
+ "version": "v3",
40
+ "panopticPool": "0x00000000009C7B687e833559e34503f64d7ed7c4",
41
+ "collateralTracker0": "0x3CCdA7d5E841d6543D90BcEc20b36a724C184DE9",
42
+ "collateralTracker1": "0x69E9f9e44E5F52237493b980dd7306198C64A4E4"
43
+ },
44
+ "ethUsdc5bpsV3Replacement": {
45
+ "version": "v3",
46
+ "panopticPool": "0x00000000000E98f6c5aE16835bAdF2f7cC0d49D7",
47
+ "collateralTracker0": "0x3E24E4Ab1e097F35C910eb9242a8C1530ee9C482",
48
+ "collateralTracker1": "0xE1e01ac7E6b2671b82Aea4Db812a5c444523a039",
49
+ "riskEngine": "0x000000000000ffE5eFdB5AE76b9200263C58b4c0",
50
+ "deploymentBlock": "26173664"
51
+ }
52
+ },
43
53
  "v2": {
44
54
  "semiFungiblePositionManagerV4": "0x00000000000005C3287f136Ef5AF56c68Ea6849f",
45
55
  "semiFungiblePositionManagerV3": "0x00000000000005E4693aDc8Ec0f12D686f728198",
@@ -132,6 +142,14 @@ var _4663 = {
132
142
  "panopticPool": "0x000000000c21b38c54AcA7c7145Df01ff09d69Bb",
133
143
  "collateralTracker0": "0xDc508622CD7e3850c8240e88c10361Cf493465b6",
134
144
  "collateralTracker1": "0x9212d804953bAf89C24ceFa6545aA293bA08a876"
145
+ },
146
+ "spyUsdg5bpsV4Replacement": {
147
+ "version": "v4",
148
+ "panopticPool": "0x000000000056475506823b2BedBD89f55232DA40",
149
+ "collateralTracker0": "0xAd345C2088BF0B6140aa78ABB7fE8336e328686a",
150
+ "collateralTracker1": "0xC9c3802aF99A6E9B9c3E7F5F8c5093e048Fac1Ca",
151
+ "riskEngine": "0x000000000000FfADa7c641E2aD6B13b51b50Cc94",
152
+ "deploymentBlock": "86379946"
135
153
  }
136
154
  },
137
155
  "v2": {
@@ -1 +1 @@
1
- {"version":3,"file":"deployments.js","names":["chainDeploymentsData","chainId: number","deployment: ChainDeployment","value: T | undefined","label: string","VAULT_DISPLAY_NAMES_PER_CHAIN: Record<number, Record<Address, string>>","VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN: Record<\n number,\n Record<Address, VaultDisplayNameResolver>\n>"],"sources":["../../deployments/src/chainDeployments.data.json","../../deployments/src/chainDeployments.ts","../../deployments/src/vaultDisplayNames.ts"],"sourcesContent":["{\n \"1\": {\n \"chainId\": 1,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n \"poolManager\": \"0x000000000004444c5dc75cB358380D2e3dE08A90\",\n \"stateView\": \"0x7ffe42c4a5deea5b0fec41c94c136cf115597227\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xF16714665955DBd0361D997eFc50fe391D96E8D0\",\n \"factory\": \"0xd5049B2647de57141dE7F65E5124707B99A452A3\",\n \"accountant\": \"0x65aA902AE3135658587FFC36ED51B61c927114e1\",\n \"rolesAuthority\": \"0xb952D345c413Ddb7850173422bAe4968e0330598\",\n \"collateralTrackerDecoderAndSanitizer\": \"0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0xd4e2c720a760049cc4151bcf61e3a9348db9cd92\",\n \"usdcPlpVault\": \"0x236d0558f06cd60780b232d4Ec4c92d2cb7e4D18\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0xB6Fc48e658C9B1a7dbdFA51A5E153ab60BB2e04d\",\n \"usdcPlpVaultManager\": \"0x2ce65016366ef7320078e0758D58Cf1038bc7C4e\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\",\n \"usdcPlpVaultManager\": \"0x3c1c79d0cfc316Ba959194c89696a8382d7d283b\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x00000000563b70d704f4c6675a5f6ac989fbae13\",\n \"collateralTracker0\": \"0x1e46b0289B7E0F710E2Db8Ab87800dd782D624f7\",\n \"collateralTracker1\": \"0x12bF31955522BAC337D93e1bC0a39F68D8BDa216\"\n },\n \"additionalPools\": {\n \"ethUsdc5bpsV3\": {\n \"version\": \"v3\",\n \"panopticPool\": \"0x00000000009C7B687e833559e34503f64d7ed7c4\",\n \"collateralTracker0\": \"0x3CCdA7d5E841d6543D90BcEc20b36a724C184DE9\",\n \"collateralTracker1\": \"0x69E9f9e44E5F52237493b980dd7306198C64A4E4\"\n }\n },\n \"v2\": {\n \"semiFungiblePositionManagerV4\": \"0x00000000000005C3287f136Ef5AF56c68Ea6849f\",\n \"semiFungiblePositionManagerV3\": \"0x00000000000005E4693aDc8Ec0f12D686f728198\",\n \"builderFactory\": \"0x0000000000000a3D22E158417AA639D7F71b0FF7\",\n \"riskEngine\": \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"panopticPoolImplementation\": \"0x000000000000135429F0DaCaB61639Bf6a63EbbC\",\n \"collateralTrackerImplementation\": \"0x0000000000001d9c38CA405A2e04420865A08A33\",\n \"panopticFactoryV4\": \"0x0000000000000c51d0f8cf4bd9adE7191372a625\",\n \"panopticFactoryV3\": \"0x0000000000000aDC9A108591e718F2aee963a2a7\",\n \"panopticHelper\": \"0x0000000000000000000000000000000000000000\",\n \"panopticMath\": \"0x000000000000334bbd65C195581cf59ECf315932\",\n \"panopticQuery\": \"0x0000000000000e1aE9c66C1c3B0A547D23389C93\",\n \"interactionHelper\": \"0x00000000000041fe14Ce3c2392337CE501aE8328\"\n }\n },\n \"riskEngines\": [\n \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\"\n ],\n \"markets\": {\n \"ethUsdc30bps\": {\n \"currency0\": \"0x0000000000000000000000000000000000000000\",\n \"currency1\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"fee\": 3000,\n \"tickSpacing\": 60,\n \"poolId\": \"0x3C08AE4977F78D\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-mainnet/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-mainnet/v2_prod/gn\"\n },\n \"sfpmSwap\": {\n \"version\": \"v3\",\n \"sfpm\": \"0x00000000000005E4693aDc8Ec0f12D686f728198\",\n \"poolAddress\": \"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640\",\n \"poolId\": \"2824133844976349\",\n \"fee\": 500,\n \"weth\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\"\n },\n \"deprecatedRiskEngines\": [\n \"0x0000000000000e673aECBDB5f5fE5DFAf4a8e9Ac\",\n \"0x0000000000000E65545005B26207D7edFd031260\",\n \"0x000000000000075e29cdaa9cb640a69e148ca7da\",\n \"0x0000000000000fe1e261f66ce2f44def4f5ae0cb\"\n ]\n },\n \"4663\": {\n \"chainId\": 4663,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x1f7d7550b1b028f7571e69a784071f0205fd2efa\",\n \"poolManager\": \"0x8366a39cc670b4001a1121b8f6a443a643e40951\",\n \"stateView\": \"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xF16714665955DBd0361D997eFc50fe391D96E8D0\",\n \"factory\": \"0xd5049B2647de57141dE7F65E5124707B99A452A3\",\n \"accountant\": \"0x9e345d862c41010F87D8E5A279e8D320D2831D36\",\n \"rolesAuthority\": \"0xb952D345c413Ddb7850173422bAe4968e0330598\",\n \"collateralTrackerDecoderAndSanitizer\": \"0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0x0000000000000000000000000000000000000000\",\n \"usdcPlpVault\": \"0x0000000000000000000000000000000000000000\",\n \"usdgPlpVault\": \"0x08B24123252Bd9c4DD473b6573D4cF67196FFC4B\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdcPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdgPlpVaultManager\": \"0x67Edb096585efe88a9A1ee16c5857AB74Fc8EA87\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdcPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdgPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x000000000c21b38c54AcA7c7145Df01ff09d69Bb\",\n \"collateralTracker0\": \"0xDc508622CD7e3850c8240e88c10361Cf493465b6\",\n \"collateralTracker1\": \"0x9212d804953bAf89C24ceFa6545aA293bA08a876\"\n },\n \"additionalPools\": {\n \"spyUsdg30bpsV4\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x00000000989bcb6f24af4a1Ab2A6d6a31c98A58E\",\n \"collateralTracker0\": \"0x49eaAC32A7CD4B8fB2209a12859a95E0b20aB0e5\",\n \"collateralTracker1\": \"0x670C44a0FC35dbC410498e47A6290a1C3196d191\"\n },\n \"spyUsdg5bpsV4\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x000000000c21b38c54AcA7c7145Df01ff09d69Bb\",\n \"collateralTracker0\": \"0xDc508622CD7e3850c8240e88c10361Cf493465b6\",\n \"collateralTracker1\": \"0x9212d804953bAf89C24ceFa6545aA293bA08a876\"\n }\n },\n \"v2\": {\n \"semiFungiblePositionManagerV4\": \"0x00000000000005C3287f136Ef5AF56c68Ea6849f\",\n \"semiFungiblePositionManagerV3\": \"0x00000000000005E4693aDc8Ec0f12D686f728198\",\n \"builderFactory\": \"0x0000000000000a3D22E158417AA639D7F71b0FF7\",\n \"riskEngine\": \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\",\n \"panopticPoolImplementation\": \"0x000000000000135429F0DaCaB61639Bf6a63EbbC\",\n \"collateralTrackerImplementation\": \"0x0000000000001d9c38CA405A2e04420865A08A33\",\n \"panopticFactoryV4\": \"0x0000000000000c51d0f8cf4bd9adE7191372a625\",\n \"panopticFactoryV3\": \"0x0000000000000aDC9A108591e718F2aee963a2a7\",\n \"panopticHelper\": \"0x0000000000000000000000000000000000000000\",\n \"panopticMath\": \"0x000000000000334bbd65C195581cf59ECf315932\",\n \"panopticQuery\": \"0x0000000000000e1aE9c66C1c3B0A547D23389C93\",\n \"interactionHelper\": \"0x00000000000041fe14Ce3c2392337CE501aE8328\"\n }\n },\n \"riskEngines\": [\n \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\"\n ],\n \"markets\": {\n \"spyUsdg\": {\n \"currency0\": \"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C\",\n \"currency1\": \"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168\",\n \"fee\": 500,\n \"tickSpacing\": 5,\n \"poolId\": \"0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907\"\n },\n \"spyUsdg30bps\": {\n \"currency0\": \"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C\",\n \"currency1\": \"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168\",\n \"fee\": 3000,\n \"tickSpacing\": 60,\n \"poolId\": \"0xfe2a80bb5618fd14984b92ca6d45bf5ba67443ddb1435e28b2e48df2fc1526cd\"\n },\n \"spyUsdg5bps\": {\n \"currency0\": \"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C\",\n \"currency1\": \"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168\",\n \"fee\": 500,\n \"tickSpacing\": 5,\n \"poolId\": \"0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-robinhood/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-robinhood/v2_prod/gn\"\n },\n \"deprecatedRiskEngines\": [\n \"0x0000000000000E65545005B26207D7edFd031260\",\n \"0x000000000000075e29cdaa9cb640a69e148ca7da\",\n \"0x0000000000000fe1e261f66ce2f44def4f5ae0cb\",\n \"0x0000000000000f3fb82469581A74776178E76Ca4\"\n ]\n },\n \"8453\": {\n \"chainId\": 8453,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x33128a8fC17869897dcE68Ed026d694621f6FDfD\",\n \"poolManager\": \"0x498581fF718922c3f8e6A244956aF099B2652b2b\",\n \"stateView\": \"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xec311aE06486ad44Ba782133b502A34aCE0f479E\",\n \"factory\": \"0x9bE53b169a41030f1710A9B82e9eA6413f14D12E\",\n \"accountant\": \"0x345cA3407942f9d175c9eA8B90e83A36F570f852\",\n \"rolesAuthority\": \"0x278D37CaBFFB4B72D2866E30fEFE08aef773E0B6\",\n \"collateralTrackerDecoderAndSanitizer\": \"0x4A290b3EC46cF320421Bb2aaee96d445de31CF0b\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0x41b7D0515d709A4Fd2CF27f9d141D0c2F8713D04\",\n \"usdcPlpVault\": \"0xb452af299c565D04B05E601efF2840e000C922f1\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0x2a4923456c79E9ebD10F5Bf5305a5C742bBc1D7C\",\n \"usdcPlpVaultManager\": \"0xdd6E2406a044582463CFE9F0C774870eAf4A310B\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\",\n \"usdcPlpVaultManager\": \"0x3c1c79d0cfc316Ba959194c89696a8382d7d283b\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0xB50e8bb68f5855DA742f4579274902a20454174a\",\n \"collateralTracker0\": \"0x0d82b189c96EbB1f44A7207e6A9cfB1e490f2869\",\n \"collateralTracker1\": \"0x9ba1082Ab3cb9edEA988697A14BBe543A3dABEd2\"\n },\n \"v2\": {\n \"semiFungiblePositionManagerV4\": \"0x8dcAa08cF298F8b4830FAf56d47930981AdE33af\",\n \"semiFungiblePositionManagerV3\": \"0xFB1c06B491305d618bb8a7a368C6e50c001C153A\",\n \"builderFactory\": \"0x6d26E916a18d522f7DdA2a26d9E1645564ccDcA5\",\n \"riskEngine\": \"0x8bbce8b1eb64118cfe6c1eab0afe13b80ea41481\",\n \"panopticPoolImplementation\": \"0x5BA68a018fF149c38ec52D181Dd24aBabE9a07DB\",\n \"collateralTrackerImplementation\": \"0x34B3a4e4F14f292575ECe3EF67886C4598af459f\",\n \"panopticFactoryV4\": \"0x9ac0317fcd124aff0b5429beb8de17020bc45f9a\",\n \"panopticFactoryV3\": \"0x687f616d68c483a7223e6922f59aef7452e26c1d\",\n \"panopticHelper\": \"0x0000000000000000000000000000000000000000\",\n \"panopticMath\": \"0x6d21699192f5aF112C87e53b32ff846782afF407\",\n \"panopticQuery\": \"0xd2586E1bbdd1169F597F3A370117EdF7372A7350\",\n \"interactionHelper\": \"0x643d8DD5372FD6c71f8fAbCce4Eb8857704F3E15\"\n }\n },\n \"riskEngines\": [\n \"0x8bbce8b1eb64118cfe6c1eab0afe13b80ea41481\"\n ],\n \"markets\": {\n \"ethUsdc5bps\": {\n \"currency0\": \"0x0000000000000000000000000000000000000000\",\n \"currency1\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"fee\": 500,\n \"tickSpacing\": 10,\n \"poolId\": \"0x96d4b53a38337a5733179751781178a2613306063c511b78cd02684739288c0a\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-base/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-base/v2_prod/gn\"\n }\n },\n \"11155111\": {\n \"chainId\": 11155111,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x0227628f3F023bb0B980b67D528571c95c6DaC1c\",\n \"poolManager\": \"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543\",\n \"stateView\": \"0xE1Dd9c3fA50EDB962E442f60DfBc432e24537E4C\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xC5b415Db4087228Af817893769DC3a205160160B\",\n \"factory\": \"0x363a9d605ca45cBfF3b597350DeADb53cdC292c7\",\n \"accountant\": \"0x25BBef1DF262c24aa1AACD1F7eCeEcc1a7AD08ab\",\n \"rolesAuthority\": \"0x673BfafB4e2712215B422347c1571421B83E8A3d\",\n \"collateralTrackerDecoderAndSanitizer\": \"0xb899BE50BAF25BBB3A3ca3403256B3c703E5AB5d\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0xD58C4F9AEe5bBfcf28dC9a8d3D57b323fA6521b1\",\n \"usdcPlpVault\": \"0xdd7a8d6c6975488e801129bC84302d74e2361208\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0x95eC124FAAB70D7aE147c3BE0336E01a828AE2d5\",\n \"usdcPlpVaultManager\": \"0xFB5aa3e0b46F3859D90B14b52ffd287013b5Ec53\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\",\n \"usdcPlpVaultManager\": \"0x3c1c79d0cfc316Ba959194c89696a8382d7d283b\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x872b98C46b2062F663BEb2CC9D4cE046Da2a2918\",\n \"collateralTracker0\": \"0x09a60b78d06a03e5148faedd3bfee6f58b22012f\",\n \"collateralTracker1\": \"0x7365664c8101ff7e9422ae2b203822253c31e69c\"\n },\n \"v2\": {\n \"semiFungiblePositionManagerV3\": \"0x9DaD2C40107Db4B29a5450401BB7A28e6eA00e43\",\n \"semiFungiblePositionManagerV4\": \"0xD2615995A71644E122cC2FD7FeC2392b971220DE\",\n \"builderFactory\": \"0x55f3D2d9D065AA5Fcc11D94c55a6085849e8b6C3\",\n \"riskEngine\": \"0x1376aF5ca426B6B9fad6a712c21f6Cf58a94b93c\",\n \"panopticPoolImplementation\": \"0x969235B5830f13b58BB699305d9c70A8Cd3BD97C\",\n \"collateralTrackerImplementation\": \"0xafcd5F651Ae0403Ff668bb2dAc38BEa907a35Dba\",\n \"panopticFactoryV3\": \"0xd9FFCa53C0A6155001Ce8cbcAEfe89DB204690F1\",\n \"panopticFactoryV4\": \"0x8FCBb59b05779818D9BAD2686cc44B705603ce03\",\n \"panopticHelper\": \"0xfFEbB3A4ab793cB244209d4dA0Cb3e6B07133bd0\",\n \"panopticMath\": \"0x6d21699192f5aF112C87e53b32ff846782afF407\",\n \"panopticQuery\": \"0x74057945467Fb4eAE9193B46A60ae66a53f06A5b\",\n \"interactionHelper\": \"0x643d8DD5372FD6c71f8fAbCce4Eb8857704F3E15\"\n }\n },\n \"riskEngines\": [\n \"0x1376aF5ca426B6B9fad6a712c21f6Cf58a94b93c\"\n ],\n \"markets\": {\n \"ethUsdc5bps\": {\n \"currency0\": \"0x0000000000000000000000000000000000000000\",\n \"currency1\": \"0xFFFeD8254566B7F800f6D8CDb843ec75AE49B07A\",\n \"fee\": 500,\n \"tickSpacing\": 10,\n \"poolId\": \"0xba6673bcb27568a73a93dd23b20c8174fa16193cd90905be859144e8f13097a5\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-sepolia/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-sepolia/v2_prod/gn\"\n }\n }\n}\n","import type { Address, Hex } from 'viem'\n\nimport chainDeploymentsData from './chainDeployments.data.json'\n\nexport type HypoVaultCoreAddresses = {\n hypoVaultImplementation: Address\n factory: Address\n accountant: Address\n rolesAuthority: Address\n collateralTrackerDecoderAndSanitizer: Address\n}\n\nexport type HypoVaultVaultAddresses = {\n wethPlpVault: Address\n usdcPlpVault: Address\n usdgPlpVault?: Address\n}\n\nexport type HypoVaultManagerAddresses = {\n wethPlpVaultManager: Address\n usdcPlpVaultManager: Address\n usdgPlpVaultManager?: Address\n}\n\nexport type HypoVaultManagerTurnkeySigners = {\n wethPlpVaultManager: Address\n usdcPlpVaultManager: Address\n usdgPlpVaultManager?: Address\n}\n\nexport type PanopticPoolAddresses = {\n version: 'v3' | 'v4'\n panopticPool: Address\n collateralTracker0: Address\n collateralTracker1: Address\n}\n\nexport type PanopticV2Addresses = {\n semiFungiblePositionManagerV3: Address\n semiFungiblePositionManagerV4: Address\n builderFactory: Address\n riskEngine: Address\n panopticPoolImplementation: Address\n collateralTrackerImplementation: Address\n panopticFactoryV3: Address\n panopticFactoryV4: Address\n panopticHelper: Address\n panopticMath: Address\n panopticQuery: Address\n interactionHelper: Address\n}\n\nexport type EthUsdc5BpsMarket = {\n currency0: Address\n currency1: Address\n fee: number\n tickSpacing: number\n poolId: Hex\n}\n\nexport type SpyUsdgMarket = EthUsdc5BpsMarket\n\nexport type InfrastructureAddresses = {\n uniswapV3Factory: Address\n poolManager: Address\n stateView: Address\n}\n\n/**\n * The off-venue swap venue: a cheaper Uniswap pool the hedger routes its\n * hedge-netting swap through via the SemiFungiblePositionManager, instead of the\n * options pool's own (pricier) pool. `sfpm` is the SFPM the pool is registered on\n * and `poolId` is its registered uint64 id. `weth` bridges native-ETH collateral\n * (the v3 pool trades WETH).\n */\nexport type SfpmSwapMarket = {\n version: 'v3' | 'v4'\n sfpm: Address\n poolAddress: Address\n poolId: string\n fee: number\n weth: Address\n}\n\nexport type ChainDeployment = {\n chainId: number\n infrastructure: InfrastructureAddresses\n hypovault: {\n core: HypoVaultCoreAddresses\n vaults: HypoVaultVaultAddresses\n managers: HypoVaultManagerAddresses\n turnkeySigners: HypoVaultManagerTurnkeySigners\n }\n panoptic: {\n pool: PanopticPoolAddresses\n additionalPools?: Readonly<\n Record<string, PanopticPoolAddresses> & {\n ethUsdc5bpsV3?: PanopticPoolAddresses\n spyUsdg30bpsV4?: PanopticPoolAddresses\n spyUsdg5bpsV4?: PanopticPoolAddresses\n }\n >\n v2: PanopticV2Addresses\n }\n // Keep this whitelist current as new RiskEngines are deployed, otherwise UI subgraph queries\n // that filter by risk engine will stop surfacing markets for the new deployments.\n riskEngines: Address[]\n /** Retained for historical analytics and account discovery, excluded from active markets. */\n deprecatedRiskEngines?: Address[]\n markets: {\n ethUsdc5bps?: EthUsdc5BpsMarket\n ethUsdc30bps?: EthUsdc5BpsMarket\n spyUsdg?: SpyUsdgMarket\n spyUsdg30bps?: SpyUsdgMarket\n spyUsdg5bps?: SpyUsdgMarket\n }\n /** Off-venue SFPM swap venue for the hedger (optional; absent = feature unavailable). */\n sfpmSwap?: SfpmSwapMarket\n subgraphs: {\n hypovault: string\n panoptic?: string\n }\n}\n\nexport const MAINNET_CHAIN_ID = 1\nexport const SEPOLIA_CHAIN_ID = 11155111\nexport const BASE_CHAIN_ID = 8453\nexport const ROBINHOOD_CHAIN_ID = 4663\n\nexport const CHAIN_DEPLOYMENTS = chainDeploymentsData as Readonly<Record<number, ChainDeployment>>\n\nexport function getChainDeployment(chainId: number): ChainDeployment | undefined {\n return CHAIN_DEPLOYMENTS[chainId]\n}\n\nexport function requireChainDeployment(chainId: number): ChainDeployment {\n const deployment = getChainDeployment(chainId)\n if (deployment === undefined) {\n throw new Error(`Unsupported chain deployment for chainId ${chainId}`)\n }\n return deployment\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return getChainDeployment(chainId) !== undefined\n}\n\nexport function getEthUsdcMarket(deployment: ChainDeployment): EthUsdc5BpsMarket {\n const market = deployment.markets.ethUsdc5bps ?? deployment.markets.ethUsdc30bps\n if (market === undefined) {\n throw new Error(`Missing ETH/USDC market for chainId ${deployment.chainId}`)\n }\n return market\n}\n\nexport function getSpyUsdgMarket(deployment: ChainDeployment): SpyUsdgMarket {\n const market = deployment.markets.spyUsdg\n if (market === undefined) {\n throw new Error(`Missing SPY/USDG market for chainId ${deployment.chainId}`)\n }\n return market\n}\n\nfunction requireDeploymentValue<T>(value: T | undefined, label: string): T {\n if (value === undefined) {\n throw new Error(`Missing deployment value: ${label}`)\n }\n return value\n}\n\n\n/** The off-venue SFPM swap venue for a chain, or undefined if not configured. */\nexport function getSfpmSwapMarket(deployment: ChainDeployment): SfpmSwapMarket | undefined {\n return deployment.sfpmSwap\n}\n\nexport const MAINNET_DEPLOYMENT = CHAIN_DEPLOYMENTS[MAINNET_CHAIN_ID]\nexport const MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES =\n MAINNET_DEPLOYMENT.panoptic.additionalPools?.ethUsdc5bpsV3\nexport const MAINNET_PANOPTIC_V2_ADDRESSES = MAINNET_DEPLOYMENT.panoptic.v2\nexport const SEPOLIA_DEPLOYMENT = CHAIN_DEPLOYMENTS[SEPOLIA_CHAIN_ID]\nexport const SEPOLIA_HYPOVAULT_CORE_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.core\nexport const SEPOLIA_HYPOVAULT_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.vaults\nexport const SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.managers\nexport const SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = SEPOLIA_DEPLOYMENT.hypovault.turnkeySigners\nexport const SEPOLIA_PANOPTIC_POOL_ADDRESSES = SEPOLIA_DEPLOYMENT.panoptic.pool\nexport const SEPOLIA_PANOPTIC_V2_ADDRESSES = SEPOLIA_DEPLOYMENT.panoptic.v2\nexport const BASE_DEPLOYMENT = CHAIN_DEPLOYMENTS[BASE_CHAIN_ID]\nexport const BASE_HYPOVAULT_CORE_ADDRESSES = BASE_DEPLOYMENT.hypovault.core\nexport const BASE_HYPOVAULT_ADDRESSES = BASE_DEPLOYMENT.hypovault.vaults\nexport const BASE_HYPOVAULT_MANAGER_ADDRESSES = BASE_DEPLOYMENT.hypovault.managers\nexport const BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = BASE_DEPLOYMENT.hypovault.turnkeySigners\nexport const BASE_PANOPTIC_POOL_ADDRESSES = BASE_DEPLOYMENT.panoptic.pool\nexport const BASE_PANOPTIC_V2_ADDRESSES = BASE_DEPLOYMENT.panoptic.v2\nexport const BASE_ETH_USDC_5BPS_MARKET = getEthUsdcMarket(BASE_DEPLOYMENT)\nexport const SEPOLIA_ETH_USDC_5BPS_MARKET = getEthUsdcMarket(SEPOLIA_DEPLOYMENT)\n\nexport const MAINNET_RISK_ENGINES = MAINNET_DEPLOYMENT.riskEngines\nexport const BASE_RISK_ENGINES = BASE_DEPLOYMENT.riskEngines\nexport const SEPOLIA_RISK_ENGINES = SEPOLIA_DEPLOYMENT.riskEngines\n\nexport const ROBINHOOD_DEPLOYMENT = CHAIN_DEPLOYMENTS[ROBINHOOD_CHAIN_ID]\nexport const ROBINHOOD_HYPOVAULT_CORE_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.core\nexport const ROBINHOOD_HYPOVAULT_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.vaults\nexport const ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.managers\nexport const ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = ROBINHOOD_DEPLOYMENT.hypovault.turnkeySigners\nexport const ROBINHOOD_PANOPTIC_POOL_ADDRESSES = ROBINHOOD_DEPLOYMENT.panoptic.pool\nexport const ROBINHOOD_SPY_USDG_30BPS_PANOPTIC_POOL_ADDRESSES =\n requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.panoptic.additionalPools?.spyUsdg30bpsV4,\n 'Robinhood SPY/USDG 30bps Panoptic pool',\n )\nexport const ROBINHOOD_SPY_USDG_5BPS_PANOPTIC_POOL_ADDRESSES =\n requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.panoptic.additionalPools?.spyUsdg5bpsV4,\n 'Robinhood SPY/USDG 5bps Panoptic pool',\n )\nexport const ROBINHOOD_PANOPTIC_V2_ADDRESSES = ROBINHOOD_DEPLOYMENT.panoptic.v2\nexport const ROBINHOOD_RISK_ENGINES = ROBINHOOD_DEPLOYMENT.riskEngines\nexport const ROBINHOOD_SPY_USDG_MARKET = getSpyUsdgMarket(ROBINHOOD_DEPLOYMENT)\nexport const ROBINHOOD_SPY_USDG_30BPS_MARKET = requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.markets.spyUsdg30bps,\n 'Robinhood SPY/USDG 30bps market',\n)\nexport const ROBINHOOD_SPY_USDG_5BPS_MARKET = requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.markets.spyUsdg5bps,\n 'Robinhood SPY/USDG 5bps market',\n)\n","import type { Address } from 'viem'\n\nimport {\n BASE_CHAIN_ID,\n MAINNET_CHAIN_ID,\n requireChainDeployment,\n ROBINHOOD_CHAIN_ID,\n SEPOLIA_CHAIN_ID,\n} from './chainDeployments'\n\nconst mainnetDeployment = requireChainDeployment(MAINNET_CHAIN_ID)\nconst mainnetVaults = mainnetDeployment.hypovault.vaults\nconst legacyMainnetVaults = {\n wethPlpVault: '0x779a2aa634A004b3a3f3b322083744869BBC6D66',\n usdcPlpVault: '0x963Fe9c93bc353602656ee4051A75114bA74d6c5',\n} as const satisfies Record<string, Address>\nconst sepoliaDeployment = requireChainDeployment(SEPOLIA_CHAIN_ID)\nconst sepoliaVaults = sepoliaDeployment.hypovault.vaults\nconst baseDeployment = requireChainDeployment(BASE_CHAIN_ID)\nconst baseVaults = baseDeployment.hypovault.vaults\nconst robinhoodDeployment = requireChainDeployment(ROBINHOOD_CHAIN_ID)\nconst robinhoodUsdgVault = robinhoodDeployment.hypovault.vaults.usdgPlpVault\n\nif (robinhoodUsdgVault === undefined) {\n throw new Error('Missing Robinhood USDG PLP vault address')\n}\n\nexport type VaultDisplayNameResolverInput = {\n chainId: number\n vaultAddress: string\n underlyingSymbol?: string | null\n fallbackName?: string | null\n}\n\nexport type VaultDisplayNameResolver = (input: VaultDisplayNameResolverInput) => string\n\nexport const VAULT_DISPLAY_NAMES_PER_CHAIN: Record<number, Record<Address, string>> = {\n [MAINNET_CHAIN_ID]: {\n [mainnetVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [mainnetVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n [legacyMainnetVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [legacyMainnetVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n },\n [BASE_CHAIN_ID]: {\n [baseVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [baseVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n },\n [SEPOLIA_CHAIN_ID]: {\n [sepoliaVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [sepoliaVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n },\n [ROBINHOOD_CHAIN_ID]: {\n [robinhoodUsdgVault.toLowerCase() as Address]: '0DTE +67∆ Vault',\n },\n}\n\nexport const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN: Record<\n number,\n Record<Address, VaultDisplayNameResolver>\n> = {\n [MAINNET_CHAIN_ID]: {\n [mainnetVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [mainnetVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n [legacyMainnetVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [legacyMainnetVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n },\n [BASE_CHAIN_ID]: {\n [baseVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [baseVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n },\n [SEPOLIA_CHAIN_ID]: {\n [sepoliaVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [sepoliaVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n },\n [ROBINHOOD_CHAIN_ID]: {\n [robinhoodUsdgVault.toLowerCase() as Address]: () => '0DTE +67∆ Vault',\n },\n}\n\nexport function resolveVaultDisplayName({\n chainId,\n vaultAddress,\n underlyingSymbol,\n fallbackName,\n}: VaultDisplayNameResolverInput): string {\n const vaultAddressLower = vaultAddress.toLowerCase() as Address\n const resolver = VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN[chainId]?.[vaultAddressLower]\n if (resolver !== undefined) {\n return resolver({\n chainId,\n vaultAddress: vaultAddressLower,\n underlyingSymbol,\n fallbackName,\n })\n }\n\n const staticName = VAULT_DISPLAY_NAMES_PER_CHAIN[chainId]?.[vaultAddressLower]\n if (staticName !== undefined) {\n return staticName\n }\n\n if (fallbackName !== undefined && fallbackName !== null) {\n return fallbackName\n }\n\n return 'Vault'\n}\n"],"mappings":";SACO;CACH,WAAW;CACX,kBAAkB;EAChB,oBAAoB;EACpB,eAAe;EACf,aAAa;CACd;CACD,aAAa;EACX,QAAQ;GACN,2BAA2B;GAC3B,WAAW;GACX,cAAc;GACd,kBAAkB;GAClB,wCAAwC;EACzC;EACD,UAAU;GACR,gBAAgB;GAChB,gBAAgB;EACjB;EACD,YAAY;GACV,uBAAuB;GACvB,uBAAuB;EACxB;EACD,kBAAkB;GAChB,uBAAuB;GACvB,uBAAuB;EACxB;CACF;CACD,YAAY;EACV,QAAQ;GACN,WAAW;GACX,gBAAgB;GAChB,sBAAsB;GACtB,sBAAsB;EACvB;EACD,mBAAmB,EACjB,iBAAiB;GACf,WAAW;GACX,gBAAgB;GAChB,sBAAsB;GACtB,sBAAsB;EACvB,EACF;EACD,MAAM;GACJ,iCAAiC;GACjC,iCAAiC;GACjC,kBAAkB;GAClB,cAAc;GACd,8BAA8B;GAC9B,mCAAmC;GACnC,qBAAqB;GACrB,qBAAqB;GACrB,kBAAkB;GAClB,gBAAgB;GAChB,iBAAiB;GACjB,qBAAqB;EACtB;CACF;CACD,eAAe,CACb,8CACA,4CACD;CACD,WAAW,EACT,gBAAgB;EACd,aAAa;EACb,aAAa;EACb,OAAO;EACP,eAAe;EACf,UAAU;CACX,EACF;CACD,aAAa;EACX,aAAa;EACb,YAAY;CACb;CACD,YAAY;EACV,WAAW;EACX,QAAQ;EACR,eAAe;EACf,UAAU;EACV,OAAO;EACP,QAAQ;CACT;CACD,yBAAyB;EACvB;EACA;EACA;EACA;CACD;AACF;YACO;CACN,WAAW;CACX,kBAAkB;EAChB,oBAAoB;EACpB,eAAe;EACf,aAAa;CACd;CACD,aAAa;EACX,QAAQ;GACN,2BAA2B;GAC3B,WAAW;GACX,cAAc;GACd,kBAAkB;GAClB,wCAAwC;EACzC;EACD,UAAU;GACR,gBAAgB;GAChB,gBAAgB;GAChB,gBAAgB;EACjB;EACD,YAAY;GACV,uBAAuB;GACvB,uBAAuB;GACvB,uBAAuB;EACxB;EACD,kBAAkB;GAChB,uBAAuB;GACvB,uBAAuB;GACvB,uBAAuB;EACxB;CACF;CACD,YAAY;EACV,QAAQ;GACN,WAAW;GACX,gBAAgB;GAChB,sBAAsB;GACtB,sBAAsB;EACvB;EACD,mBAAmB;GACjB,kBAAkB;IAChB,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;GACvB;GACD,iBAAiB;IACf,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;GACvB;EACF;EACD,MAAM;GACJ,iCAAiC;GACjC,iCAAiC;GACjC,kBAAkB;GAClB,cAAc;GACd,8BAA8B;GAC9B,mCAAmC;GACnC,qBAAqB;GACrB,qBAAqB;GACrB,kBAAkB;GAClB,gBAAgB;GAChB,iBAAiB;GACjB,qBAAqB;EACtB;CACF;CACD,eAAe,CACb,8CACA,4CACD;CACD,WAAW;EACT,WAAW;GACT,aAAa;GACb,aAAa;GACb,OAAO;GACP,eAAe;GACf,UAAU;EACX;EACD,gBAAgB;GACd,aAAa;GACb,aAAa;GACb,OAAO;GACP,eAAe;GACf,UAAU;EACX;EACD,eAAe;GACb,aAAa;GACb,aAAa;GACb,OAAO;GACP,eAAe;GACf,UAAU;EACX;CACF;CACD,aAAa;EACX,aAAa;EACb,YAAY;CACb;CACD,yBAAyB;EACvB;EACA;EACA;EACA;CACD;AACF;YACO;CACN,WAAW;CACX,kBAAkB;EAChB,oBAAoB;EACpB,eAAe;EACf,aAAa;CACd;CACD,aAAa;EACX,QAAQ;GACN,2BAA2B;GAC3B,WAAW;GACX,cAAc;GACd,kBAAkB;GAClB,wCAAwC;EACzC;EACD,UAAU;GACR,gBAAgB;GAChB,gBAAgB;EACjB;EACD,YAAY;GACV,uBAAuB;GACvB,uBAAuB;EACxB;EACD,kBAAkB;GAChB,uBAAuB;GACvB,uBAAuB;EACxB;CACF;CACD,YAAY;EACV,QAAQ;GACN,WAAW;GACX,gBAAgB;GAChB,sBAAsB;GACtB,sBAAsB;EACvB;EACD,MAAM;GACJ,iCAAiC;GACjC,iCAAiC;GACjC,kBAAkB;GAClB,cAAc;GACd,8BAA8B;GAC9B,mCAAmC;GACnC,qBAAqB;GACrB,qBAAqB;GACrB,kBAAkB;GAClB,gBAAgB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"}
1
+ {"version":3,"file":"deployments.js","names":["chainDeploymentsData","chainId: number","deployment: ChainDeployment","value: T | undefined","label: string","VAULT_DISPLAY_NAMES_PER_CHAIN: Record<number, Record<Address, string>>","VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN: Record<\n number,\n Record<Address, VaultDisplayNameResolver>\n>"],"sources":["../../deployments/src/chainDeployments.data.json","../../deployments/src/chainDeployments.ts","../../deployments/src/vaultDisplayNames.ts"],"sourcesContent":["{\n \"1\": {\n \"chainId\": 1,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n \"poolManager\": \"0x000000000004444c5dc75cB358380D2e3dE08A90\",\n \"stateView\": \"0x7ffe42c4a5deea5b0fec41c94c136cf115597227\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xF16714665955DBd0361D997eFc50fe391D96E8D0\",\n \"factory\": \"0xd5049B2647de57141dE7F65E5124707B99A452A3\",\n \"accountant\": \"0x65aA902AE3135658587FFC36ED51B61c927114e1\",\n \"rolesAuthority\": \"0xb952D345c413Ddb7850173422bAe4968e0330598\",\n \"collateralTrackerDecoderAndSanitizer\": \"0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0xd4e2c720a760049cc4151bcf61e3a9348db9cd92\",\n \"usdcPlpVault\": \"0x236d0558f06cd60780b232d4Ec4c92d2cb7e4D18\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0xB6Fc48e658C9B1a7dbdFA51A5E153ab60BB2e04d\",\n \"usdcPlpVaultManager\": \"0x2ce65016366ef7320078e0758D58Cf1038bc7C4e\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\",\n \"usdcPlpVaultManager\": \"0x3c1c79d0cfc316Ba959194c89696a8382d7d283b\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x00000000563b70d704f4c6675a5f6ac989fbae13\",\n \"collateralTracker0\": \"0x1e46b0289B7E0F710E2Db8Ab87800dd782D624f7\",\n \"collateralTracker1\": \"0x12bF31955522BAC337D93e1bC0a39F68D8BDa216\"\n },\n \"additionalPools\": {\n \"ethUsdc5bpsV3\": {\n \"version\": \"v3\",\n \"panopticPool\": \"0x00000000009C7B687e833559e34503f64d7ed7c4\",\n \"collateralTracker0\": \"0x3CCdA7d5E841d6543D90BcEc20b36a724C184DE9\",\n \"collateralTracker1\": \"0x69E9f9e44E5F52237493b980dd7306198C64A4E4\"\n },\n \"ethUsdc5bpsV3Replacement\": {\n \"version\": \"v3\",\n \"panopticPool\": \"0x00000000000E98f6c5aE16835bAdF2f7cC0d49D7\",\n \"collateralTracker0\": \"0x3E24E4Ab1e097F35C910eb9242a8C1530ee9C482\",\n \"collateralTracker1\": \"0xE1e01ac7E6b2671b82Aea4Db812a5c444523a039\",\n \"riskEngine\": \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"deploymentBlock\": \"26173664\"\n }\n },\n \"v2\": {\n \"semiFungiblePositionManagerV4\": \"0x00000000000005C3287f136Ef5AF56c68Ea6849f\",\n \"semiFungiblePositionManagerV3\": \"0x00000000000005E4693aDc8Ec0f12D686f728198\",\n \"builderFactory\": \"0x0000000000000a3D22E158417AA639D7F71b0FF7\",\n \"riskEngine\": \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"panopticPoolImplementation\": \"0x000000000000135429F0DaCaB61639Bf6a63EbbC\",\n \"collateralTrackerImplementation\": \"0x0000000000001d9c38CA405A2e04420865A08A33\",\n \"panopticFactoryV4\": \"0x0000000000000c51d0f8cf4bd9adE7191372a625\",\n \"panopticFactoryV3\": \"0x0000000000000aDC9A108591e718F2aee963a2a7\",\n \"panopticHelper\": \"0x0000000000000000000000000000000000000000\",\n \"panopticMath\": \"0x000000000000334bbd65C195581cf59ECf315932\",\n \"panopticQuery\": \"0x0000000000000e1aE9c66C1c3B0A547D23389C93\",\n \"interactionHelper\": \"0x00000000000041fe14Ce3c2392337CE501aE8328\"\n }\n },\n \"riskEngines\": [\n \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\"\n ],\n \"markets\": {\n \"ethUsdc30bps\": {\n \"currency0\": \"0x0000000000000000000000000000000000000000\",\n \"currency1\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"fee\": 3000,\n \"tickSpacing\": 60,\n \"poolId\": \"0x3C08AE4977F78D\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-mainnet/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-mainnet/v2_prod/gn\"\n },\n \"sfpmSwap\": {\n \"version\": \"v3\",\n \"sfpm\": \"0x00000000000005E4693aDc8Ec0f12D686f728198\",\n \"poolAddress\": \"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640\",\n \"poolId\": \"2824133844976349\",\n \"fee\": 500,\n \"weth\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\"\n },\n \"deprecatedRiskEngines\": [\n \"0x0000000000000e673aECBDB5f5fE5DFAf4a8e9Ac\",\n \"0x0000000000000E65545005B26207D7edFd031260\",\n \"0x000000000000075e29cdaa9cb640a69e148ca7da\",\n \"0x0000000000000fe1e261f66ce2f44def4f5ae0cb\"\n ]\n },\n \"4663\": {\n \"chainId\": 4663,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x1f7d7550b1b028f7571e69a784071f0205fd2efa\",\n \"poolManager\": \"0x8366a39cc670b4001a1121b8f6a443a643e40951\",\n \"stateView\": \"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xF16714665955DBd0361D997eFc50fe391D96E8D0\",\n \"factory\": \"0xd5049B2647de57141dE7F65E5124707B99A452A3\",\n \"accountant\": \"0x9e345d862c41010F87D8E5A279e8D320D2831D36\",\n \"rolesAuthority\": \"0xb952D345c413Ddb7850173422bAe4968e0330598\",\n \"collateralTrackerDecoderAndSanitizer\": \"0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0x0000000000000000000000000000000000000000\",\n \"usdcPlpVault\": \"0x0000000000000000000000000000000000000000\",\n \"usdgPlpVault\": \"0x08B24123252Bd9c4DD473b6573D4cF67196FFC4B\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdcPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdgPlpVaultManager\": \"0x67Edb096585efe88a9A1ee16c5857AB74Fc8EA87\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdcPlpVaultManager\": \"0x0000000000000000000000000000000000000000\",\n \"usdgPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x000000000c21b38c54AcA7c7145Df01ff09d69Bb\",\n \"collateralTracker0\": \"0xDc508622CD7e3850c8240e88c10361Cf493465b6\",\n \"collateralTracker1\": \"0x9212d804953bAf89C24ceFa6545aA293bA08a876\"\n },\n \"additionalPools\": {\n \"spyUsdg30bpsV4\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x00000000989bcb6f24af4a1Ab2A6d6a31c98A58E\",\n \"collateralTracker0\": \"0x49eaAC32A7CD4B8fB2209a12859a95E0b20aB0e5\",\n \"collateralTracker1\": \"0x670C44a0FC35dbC410498e47A6290a1C3196d191\"\n },\n \"spyUsdg5bpsV4\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x000000000c21b38c54AcA7c7145Df01ff09d69Bb\",\n \"collateralTracker0\": \"0xDc508622CD7e3850c8240e88c10361Cf493465b6\",\n \"collateralTracker1\": \"0x9212d804953bAf89C24ceFa6545aA293bA08a876\"\n },\n \"spyUsdg5bpsV4Replacement\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x000000000056475506823b2BedBD89f55232DA40\",\n \"collateralTracker0\": \"0xAd345C2088BF0B6140aa78ABB7fE8336e328686a\",\n \"collateralTracker1\": \"0xC9c3802aF99A6E9B9c3E7F5F8c5093e048Fac1Ca\",\n \"riskEngine\": \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\",\n \"deploymentBlock\": \"86379946\"\n }\n },\n \"v2\": {\n \"semiFungiblePositionManagerV4\": \"0x00000000000005C3287f136Ef5AF56c68Ea6849f\",\n \"semiFungiblePositionManagerV3\": \"0x00000000000005E4693aDc8Ec0f12D686f728198\",\n \"builderFactory\": \"0x0000000000000a3D22E158417AA639D7F71b0FF7\",\n \"riskEngine\": \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\",\n \"panopticPoolImplementation\": \"0x000000000000135429F0DaCaB61639Bf6a63EbbC\",\n \"collateralTrackerImplementation\": \"0x0000000000001d9c38CA405A2e04420865A08A33\",\n \"panopticFactoryV4\": \"0x0000000000000c51d0f8cf4bd9adE7191372a625\",\n \"panopticFactoryV3\": \"0x0000000000000aDC9A108591e718F2aee963a2a7\",\n \"panopticHelper\": \"0x0000000000000000000000000000000000000000\",\n \"panopticMath\": \"0x000000000000334bbd65C195581cf59ECf315932\",\n \"panopticQuery\": \"0x0000000000000e1aE9c66C1c3B0A547D23389C93\",\n \"interactionHelper\": \"0x00000000000041fe14Ce3c2392337CE501aE8328\"\n }\n },\n \"riskEngines\": [\n \"0x000000000000ffE5eFdB5AE76b9200263C58b4c0\",\n \"0x000000000000FfADa7c641E2aD6B13b51b50Cc94\"\n ],\n \"markets\": {\n \"spyUsdg\": {\n \"currency0\": \"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C\",\n \"currency1\": \"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168\",\n \"fee\": 500,\n \"tickSpacing\": 5,\n \"poolId\": \"0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907\"\n },\n \"spyUsdg30bps\": {\n \"currency0\": \"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C\",\n \"currency1\": \"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168\",\n \"fee\": 3000,\n \"tickSpacing\": 60,\n \"poolId\": \"0xfe2a80bb5618fd14984b92ca6d45bf5ba67443ddb1435e28b2e48df2fc1526cd\"\n },\n \"spyUsdg5bps\": {\n \"currency0\": \"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C\",\n \"currency1\": \"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168\",\n \"fee\": 500,\n \"tickSpacing\": 5,\n \"poolId\": \"0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-robinhood/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-robinhood/v2_prod/gn\"\n },\n \"deprecatedRiskEngines\": [\n \"0x0000000000000E65545005B26207D7edFd031260\",\n \"0x000000000000075e29cdaa9cb640a69e148ca7da\",\n \"0x0000000000000fe1e261f66ce2f44def4f5ae0cb\",\n \"0x0000000000000f3fb82469581A74776178E76Ca4\"\n ]\n },\n \"8453\": {\n \"chainId\": 8453,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x33128a8fC17869897dcE68Ed026d694621f6FDfD\",\n \"poolManager\": \"0x498581fF718922c3f8e6A244956aF099B2652b2b\",\n \"stateView\": \"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xec311aE06486ad44Ba782133b502A34aCE0f479E\",\n \"factory\": \"0x9bE53b169a41030f1710A9B82e9eA6413f14D12E\",\n \"accountant\": \"0x345cA3407942f9d175c9eA8B90e83A36F570f852\",\n \"rolesAuthority\": \"0x278D37CaBFFB4B72D2866E30fEFE08aef773E0B6\",\n \"collateralTrackerDecoderAndSanitizer\": \"0x4A290b3EC46cF320421Bb2aaee96d445de31CF0b\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0x41b7D0515d709A4Fd2CF27f9d141D0c2F8713D04\",\n \"usdcPlpVault\": \"0xb452af299c565D04B05E601efF2840e000C922f1\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0x2a4923456c79E9ebD10F5Bf5305a5C742bBc1D7C\",\n \"usdcPlpVaultManager\": \"0xdd6E2406a044582463CFE9F0C774870eAf4A310B\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\",\n \"usdcPlpVaultManager\": \"0x3c1c79d0cfc316Ba959194c89696a8382d7d283b\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0xB50e8bb68f5855DA742f4579274902a20454174a\",\n \"collateralTracker0\": \"0x0d82b189c96EbB1f44A7207e6A9cfB1e490f2869\",\n \"collateralTracker1\": \"0x9ba1082Ab3cb9edEA988697A14BBe543A3dABEd2\"\n },\n \"v2\": {\n \"semiFungiblePositionManagerV4\": \"0x8dcAa08cF298F8b4830FAf56d47930981AdE33af\",\n \"semiFungiblePositionManagerV3\": \"0xFB1c06B491305d618bb8a7a368C6e50c001C153A\",\n \"builderFactory\": \"0x6d26E916a18d522f7DdA2a26d9E1645564ccDcA5\",\n \"riskEngine\": \"0x8bbce8b1eb64118cfe6c1eab0afe13b80ea41481\",\n \"panopticPoolImplementation\": \"0x5BA68a018fF149c38ec52D181Dd24aBabE9a07DB\",\n \"collateralTrackerImplementation\": \"0x34B3a4e4F14f292575ECe3EF67886C4598af459f\",\n \"panopticFactoryV4\": \"0x9ac0317fcd124aff0b5429beb8de17020bc45f9a\",\n \"panopticFactoryV3\": \"0x687f616d68c483a7223e6922f59aef7452e26c1d\",\n \"panopticHelper\": \"0x0000000000000000000000000000000000000000\",\n \"panopticMath\": \"0x6d21699192f5aF112C87e53b32ff846782afF407\",\n \"panopticQuery\": \"0xd2586E1bbdd1169F597F3A370117EdF7372A7350\",\n \"interactionHelper\": \"0x643d8DD5372FD6c71f8fAbCce4Eb8857704F3E15\"\n }\n },\n \"riskEngines\": [\n \"0x8bbce8b1eb64118cfe6c1eab0afe13b80ea41481\"\n ],\n \"markets\": {\n \"ethUsdc5bps\": {\n \"currency0\": \"0x0000000000000000000000000000000000000000\",\n \"currency1\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"fee\": 500,\n \"tickSpacing\": 10,\n \"poolId\": \"0x96d4b53a38337a5733179751781178a2613306063c511b78cd02684739288c0a\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-base/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-base/v2_prod/gn\"\n }\n },\n \"11155111\": {\n \"chainId\": 11155111,\n \"infrastructure\": {\n \"uniswapV3Factory\": \"0x0227628f3F023bb0B980b67D528571c95c6DaC1c\",\n \"poolManager\": \"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543\",\n \"stateView\": \"0xE1Dd9c3fA50EDB962E442f60DfBc432e24537E4C\"\n },\n \"hypovault\": {\n \"core\": {\n \"hypoVaultImplementation\": \"0xC5b415Db4087228Af817893769DC3a205160160B\",\n \"factory\": \"0x363a9d605ca45cBfF3b597350DeADb53cdC292c7\",\n \"accountant\": \"0x25BBef1DF262c24aa1AACD1F7eCeEcc1a7AD08ab\",\n \"rolesAuthority\": \"0x673BfafB4e2712215B422347c1571421B83E8A3d\",\n \"collateralTrackerDecoderAndSanitizer\": \"0xb899BE50BAF25BBB3A3ca3403256B3c703E5AB5d\"\n },\n \"vaults\": {\n \"wethPlpVault\": \"0xD58C4F9AEe5bBfcf28dC9a8d3D57b323fA6521b1\",\n \"usdcPlpVault\": \"0xdd7a8d6c6975488e801129bC84302d74e2361208\"\n },\n \"managers\": {\n \"wethPlpVaultManager\": \"0x95eC124FAAB70D7aE147c3BE0336E01a828AE2d5\",\n \"usdcPlpVaultManager\": \"0xFB5aa3e0b46F3859D90B14b52ffd287013b5Ec53\"\n },\n \"turnkeySigners\": {\n \"wethPlpVaultManager\": \"0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F\",\n \"usdcPlpVaultManager\": \"0x3c1c79d0cfc316Ba959194c89696a8382d7d283b\"\n }\n },\n \"panoptic\": {\n \"pool\": {\n \"version\": \"v4\",\n \"panopticPool\": \"0x872b98C46b2062F663BEb2CC9D4cE046Da2a2918\",\n \"collateralTracker0\": \"0x09a60b78d06a03e5148faedd3bfee6f58b22012f\",\n \"collateralTracker1\": \"0x7365664c8101ff7e9422ae2b203822253c31e69c\"\n },\n \"v2\": {\n \"semiFungiblePositionManagerV3\": \"0x9DaD2C40107Db4B29a5450401BB7A28e6eA00e43\",\n \"semiFungiblePositionManagerV4\": \"0xD2615995A71644E122cC2FD7FeC2392b971220DE\",\n \"builderFactory\": \"0x55f3D2d9D065AA5Fcc11D94c55a6085849e8b6C3\",\n \"riskEngine\": \"0x1376aF5ca426B6B9fad6a712c21f6Cf58a94b93c\",\n \"panopticPoolImplementation\": \"0x969235B5830f13b58BB699305d9c70A8Cd3BD97C\",\n \"collateralTrackerImplementation\": \"0xafcd5F651Ae0403Ff668bb2dAc38BEa907a35Dba\",\n \"panopticFactoryV3\": \"0xd9FFCa53C0A6155001Ce8cbcAEfe89DB204690F1\",\n \"panopticFactoryV4\": \"0x8FCBb59b05779818D9BAD2686cc44B705603ce03\",\n \"panopticHelper\": \"0xfFEbB3A4ab793cB244209d4dA0Cb3e6B07133bd0\",\n \"panopticMath\": \"0x6d21699192f5aF112C87e53b32ff846782afF407\",\n \"panopticQuery\": \"0x74057945467Fb4eAE9193B46A60ae66a53f06A5b\",\n \"interactionHelper\": \"0x643d8DD5372FD6c71f8fAbCce4Eb8857704F3E15\"\n }\n },\n \"riskEngines\": [\n \"0x1376aF5ca426B6B9fad6a712c21f6Cf58a94b93c\"\n ],\n \"markets\": {\n \"ethUsdc5bps\": {\n \"currency0\": \"0x0000000000000000000000000000000000000000\",\n \"currency1\": \"0xFFFeD8254566B7F800f6D8CDb843ec75AE49B07A\",\n \"fee\": 500,\n \"tickSpacing\": 10,\n \"poolId\": \"0xba6673bcb27568a73a93dd23b20c8174fa16193cd90905be859144e8f13097a5\"\n }\n },\n \"subgraphs\": {\n \"hypovault\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-sepolia/prod/gn\",\n \"panoptic\": \"https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-sepolia/v2_prod/gn\"\n }\n }\n}\n","import type { Address, Hex } from 'viem'\n\nimport chainDeploymentsData from './chainDeployments.data.json'\n\nexport type HypoVaultCoreAddresses = {\n hypoVaultImplementation: Address\n factory: Address\n accountant: Address\n rolesAuthority: Address\n collateralTrackerDecoderAndSanitizer: Address\n}\n\nexport type HypoVaultVaultAddresses = {\n wethPlpVault: Address\n usdcPlpVault: Address\n usdgPlpVault?: Address\n}\n\nexport type HypoVaultManagerAddresses = {\n wethPlpVaultManager: Address\n usdcPlpVaultManager: Address\n usdgPlpVaultManager?: Address\n}\n\nexport type HypoVaultManagerTurnkeySigners = {\n wethPlpVaultManager: Address\n usdcPlpVaultManager: Address\n usdgPlpVaultManager?: Address\n}\n\nexport type PanopticPoolAddresses = {\n version: 'v3' | 'v4'\n riskEngine?: Address\n deploymentBlock?: string\n panopticPool: Address\n collateralTracker0: Address\n collateralTracker1: Address\n}\n\nexport type PanopticV2Addresses = {\n semiFungiblePositionManagerV3: Address\n semiFungiblePositionManagerV4: Address\n builderFactory: Address\n riskEngine: Address\n panopticPoolImplementation: Address\n collateralTrackerImplementation: Address\n panopticFactoryV3: Address\n panopticFactoryV4: Address\n panopticHelper: Address\n panopticMath: Address\n panopticQuery: Address\n interactionHelper: Address\n}\n\nexport type EthUsdc5BpsMarket = {\n currency0: Address\n currency1: Address\n fee: number\n tickSpacing: number\n poolId: Hex\n}\n\nexport type SpyUsdgMarket = EthUsdc5BpsMarket\n\nexport type InfrastructureAddresses = {\n uniswapV3Factory: Address\n poolManager: Address\n stateView: Address\n}\n\n/**\n * The off-venue swap venue: a cheaper Uniswap pool the hedger routes its\n * hedge-netting swap through via the SemiFungiblePositionManager, instead of the\n * options pool's own (pricier) pool. `sfpm` is the SFPM the pool is registered on\n * and `poolId` is its registered uint64 id. `weth` bridges native-ETH collateral\n * (the v3 pool trades WETH).\n */\nexport type SfpmSwapMarket = {\n version: 'v3' | 'v4'\n sfpm: Address\n poolAddress: Address\n poolId: string\n fee: number\n weth: Address\n}\n\nexport type ChainDeployment = {\n chainId: number\n infrastructure: InfrastructureAddresses\n hypovault: {\n core: HypoVaultCoreAddresses\n vaults: HypoVaultVaultAddresses\n managers: HypoVaultManagerAddresses\n turnkeySigners: HypoVaultManagerTurnkeySigners\n }\n panoptic: {\n pool: PanopticPoolAddresses\n additionalPools?: Readonly<\n Record<string, PanopticPoolAddresses> & {\n ethUsdc5bpsV3?: PanopticPoolAddresses\n spyUsdg30bpsV4?: PanopticPoolAddresses\n spyUsdg5bpsV4?: PanopticPoolAddresses\n }\n >\n v2: PanopticV2Addresses\n }\n // Keep this whitelist current as new RiskEngines are deployed, otherwise UI subgraph queries\n // that filter by risk engine will stop surfacing markets for the new deployments.\n riskEngines: Address[]\n /** Retained for historical analytics and account discovery, excluded from active markets. */\n deprecatedRiskEngines?: Address[]\n markets: {\n ethUsdc5bps?: EthUsdc5BpsMarket\n ethUsdc30bps?: EthUsdc5BpsMarket\n spyUsdg?: SpyUsdgMarket\n spyUsdg30bps?: SpyUsdgMarket\n spyUsdg5bps?: SpyUsdgMarket\n }\n /** Off-venue SFPM swap venue for the hedger (optional; absent = feature unavailable). */\n sfpmSwap?: SfpmSwapMarket\n subgraphs: {\n hypovault: string\n panoptic?: string\n }\n}\n\nexport const MAINNET_CHAIN_ID = 1\nexport const SEPOLIA_CHAIN_ID = 11155111\nexport const BASE_CHAIN_ID = 8453\nexport const ROBINHOOD_CHAIN_ID = 4663\n\nexport const CHAIN_DEPLOYMENTS = chainDeploymentsData as Readonly<Record<number, ChainDeployment>>\n\nexport function getChainDeployment(chainId: number): ChainDeployment | undefined {\n return CHAIN_DEPLOYMENTS[chainId]\n}\n\nexport function requireChainDeployment(chainId: number): ChainDeployment {\n const deployment = getChainDeployment(chainId)\n if (deployment === undefined) {\n throw new Error(`Unsupported chain deployment for chainId ${chainId}`)\n }\n return deployment\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return getChainDeployment(chainId) !== undefined\n}\n\nexport function getEthUsdcMarket(deployment: ChainDeployment): EthUsdc5BpsMarket {\n const market = deployment.markets.ethUsdc5bps ?? deployment.markets.ethUsdc30bps\n if (market === undefined) {\n throw new Error(`Missing ETH/USDC market for chainId ${deployment.chainId}`)\n }\n return market\n}\n\nexport function getSpyUsdgMarket(deployment: ChainDeployment): SpyUsdgMarket {\n const market = deployment.markets.spyUsdg\n if (market === undefined) {\n throw new Error(`Missing SPY/USDG market for chainId ${deployment.chainId}`)\n }\n return market\n}\n\nfunction requireDeploymentValue<T>(value: T | undefined, label: string): T {\n if (value === undefined) {\n throw new Error(`Missing deployment value: ${label}`)\n }\n return value\n}\n\n/** The off-venue SFPM swap venue for a chain, or undefined if not configured. */\nexport function getSfpmSwapMarket(deployment: ChainDeployment): SfpmSwapMarket | undefined {\n return deployment.sfpmSwap\n}\n\nexport const MAINNET_DEPLOYMENT = CHAIN_DEPLOYMENTS[MAINNET_CHAIN_ID]\nexport const MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES =\n MAINNET_DEPLOYMENT.panoptic.additionalPools?.ethUsdc5bpsV3\nexport const MAINNET_PANOPTIC_V2_ADDRESSES = MAINNET_DEPLOYMENT.panoptic.v2\nexport const SEPOLIA_DEPLOYMENT = CHAIN_DEPLOYMENTS[SEPOLIA_CHAIN_ID]\nexport const SEPOLIA_HYPOVAULT_CORE_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.core\nexport const SEPOLIA_HYPOVAULT_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.vaults\nexport const SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.managers\nexport const SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = SEPOLIA_DEPLOYMENT.hypovault.turnkeySigners\nexport const SEPOLIA_PANOPTIC_POOL_ADDRESSES = SEPOLIA_DEPLOYMENT.panoptic.pool\nexport const SEPOLIA_PANOPTIC_V2_ADDRESSES = SEPOLIA_DEPLOYMENT.panoptic.v2\nexport const BASE_DEPLOYMENT = CHAIN_DEPLOYMENTS[BASE_CHAIN_ID]\nexport const BASE_HYPOVAULT_CORE_ADDRESSES = BASE_DEPLOYMENT.hypovault.core\nexport const BASE_HYPOVAULT_ADDRESSES = BASE_DEPLOYMENT.hypovault.vaults\nexport const BASE_HYPOVAULT_MANAGER_ADDRESSES = BASE_DEPLOYMENT.hypovault.managers\nexport const BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = BASE_DEPLOYMENT.hypovault.turnkeySigners\nexport const BASE_PANOPTIC_POOL_ADDRESSES = BASE_DEPLOYMENT.panoptic.pool\nexport const BASE_PANOPTIC_V2_ADDRESSES = BASE_DEPLOYMENT.panoptic.v2\nexport const BASE_ETH_USDC_5BPS_MARKET = getEthUsdcMarket(BASE_DEPLOYMENT)\nexport const SEPOLIA_ETH_USDC_5BPS_MARKET = getEthUsdcMarket(SEPOLIA_DEPLOYMENT)\n\nexport const MAINNET_RISK_ENGINES = MAINNET_DEPLOYMENT.riskEngines\nexport const BASE_RISK_ENGINES = BASE_DEPLOYMENT.riskEngines\nexport const SEPOLIA_RISK_ENGINES = SEPOLIA_DEPLOYMENT.riskEngines\n\nexport const ROBINHOOD_DEPLOYMENT = CHAIN_DEPLOYMENTS[ROBINHOOD_CHAIN_ID]\nexport const ROBINHOOD_HYPOVAULT_CORE_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.core\nexport const ROBINHOOD_HYPOVAULT_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.vaults\nexport const ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES = ROBINHOOD_DEPLOYMENT.hypovault.managers\nexport const ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS =\n ROBINHOOD_DEPLOYMENT.hypovault.turnkeySigners\nexport const ROBINHOOD_PANOPTIC_POOL_ADDRESSES = ROBINHOOD_DEPLOYMENT.panoptic.pool\nexport const ROBINHOOD_SPY_USDG_30BPS_PANOPTIC_POOL_ADDRESSES = requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.panoptic.additionalPools?.spyUsdg30bpsV4,\n 'Robinhood SPY/USDG 30bps Panoptic pool',\n)\nexport const ROBINHOOD_SPY_USDG_5BPS_PANOPTIC_POOL_ADDRESSES = requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.panoptic.additionalPools?.spyUsdg5bpsV4,\n 'Robinhood SPY/USDG 5bps Panoptic pool',\n)\nexport const ROBINHOOD_PANOPTIC_V2_ADDRESSES = ROBINHOOD_DEPLOYMENT.panoptic.v2\nexport const ROBINHOOD_RISK_ENGINES = ROBINHOOD_DEPLOYMENT.riskEngines\nexport const ROBINHOOD_SPY_USDG_MARKET = getSpyUsdgMarket(ROBINHOOD_DEPLOYMENT)\nexport const ROBINHOOD_SPY_USDG_30BPS_MARKET = requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.markets.spyUsdg30bps,\n 'Robinhood SPY/USDG 30bps market',\n)\nexport const ROBINHOOD_SPY_USDG_5BPS_MARKET = requireDeploymentValue(\n ROBINHOOD_DEPLOYMENT.markets.spyUsdg5bps,\n 'Robinhood SPY/USDG 5bps market',\n)\n","import type { Address } from 'viem'\n\nimport {\n BASE_CHAIN_ID,\n MAINNET_CHAIN_ID,\n requireChainDeployment,\n ROBINHOOD_CHAIN_ID,\n SEPOLIA_CHAIN_ID,\n} from './chainDeployments'\n\nconst mainnetDeployment = requireChainDeployment(MAINNET_CHAIN_ID)\nconst mainnetVaults = mainnetDeployment.hypovault.vaults\nconst legacyMainnetVaults = {\n wethPlpVault: '0x779a2aa634A004b3a3f3b322083744869BBC6D66',\n usdcPlpVault: '0x963Fe9c93bc353602656ee4051A75114bA74d6c5',\n} as const satisfies Record<string, Address>\nconst sepoliaDeployment = requireChainDeployment(SEPOLIA_CHAIN_ID)\nconst sepoliaVaults = sepoliaDeployment.hypovault.vaults\nconst baseDeployment = requireChainDeployment(BASE_CHAIN_ID)\nconst baseVaults = baseDeployment.hypovault.vaults\nconst robinhoodDeployment = requireChainDeployment(ROBINHOOD_CHAIN_ID)\nconst robinhoodUsdgVault = robinhoodDeployment.hypovault.vaults.usdgPlpVault\n\nif (robinhoodUsdgVault === undefined) {\n throw new Error('Missing Robinhood USDG PLP vault address')\n}\n\nexport type VaultDisplayNameResolverInput = {\n chainId: number\n vaultAddress: string\n underlyingSymbol?: string | null\n fallbackName?: string | null\n}\n\nexport type VaultDisplayNameResolver = (input: VaultDisplayNameResolverInput) => string\n\nexport const VAULT_DISPLAY_NAMES_PER_CHAIN: Record<number, Record<Address, string>> = {\n [MAINNET_CHAIN_ID]: {\n [mainnetVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [mainnetVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n [legacyMainnetVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [legacyMainnetVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n },\n [BASE_CHAIN_ID]: {\n [baseVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [baseVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n },\n [SEPOLIA_CHAIN_ID]: {\n [sepoliaVaults.wethPlpVault.toLowerCase() as Address]: 'PLP Vault',\n [sepoliaVaults.usdcPlpVault.toLowerCase() as Address]: 'Unicorn Vault',\n },\n [ROBINHOOD_CHAIN_ID]: {\n [robinhoodUsdgVault.toLowerCase() as Address]: '0DTE +67∆ Vault',\n },\n}\n\nexport const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN: Record<\n number,\n Record<Address, VaultDisplayNameResolver>\n> = {\n [MAINNET_CHAIN_ID]: {\n [mainnetVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [mainnetVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n [legacyMainnetVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [legacyMainnetVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n },\n [BASE_CHAIN_ID]: {\n [baseVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [baseVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n },\n [SEPOLIA_CHAIN_ID]: {\n [sepoliaVaults.wethPlpVault.toLowerCase() as Address]: () => 'PLP Vault',\n [sepoliaVaults.usdcPlpVault.toLowerCase() as Address]: () => 'Unicorn Vault',\n },\n [ROBINHOOD_CHAIN_ID]: {\n [robinhoodUsdgVault.toLowerCase() as Address]: () => '0DTE +67∆ Vault',\n },\n}\n\nexport function resolveVaultDisplayName({\n chainId,\n vaultAddress,\n underlyingSymbol,\n fallbackName,\n}: VaultDisplayNameResolverInput): string {\n const vaultAddressLower = vaultAddress.toLowerCase() as Address\n const resolver = VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN[chainId]?.[vaultAddressLower]\n if (resolver !== undefined) {\n return resolver({\n chainId,\n vaultAddress: vaultAddressLower,\n underlyingSymbol,\n fallbackName,\n })\n }\n\n const staticName = VAULT_DISPLAY_NAMES_PER_CHAIN[chainId]?.[vaultAddressLower]\n if (staticName !== undefined) {\n return staticName\n }\n\n if (fallbackName !== undefined && fallbackName !== null) {\n return fallbackName\n }\n\n return 'Vault'\n}\n"],"mappings":";SACO;CACH,WAAW;CACX,kBAAkB;EAChB,oBAAoB;EACpB,eAAe;EACf,aAAa;CACd;CACD,aAAa;EACX,QAAQ;GACN,2BAA2B;GAC3B,WAAW;GACX,cAAc;GACd,kBAAkB;GAClB,wCAAwC;EACzC;EACD,UAAU;GACR,gBAAgB;GAChB,gBAAgB;EACjB;EACD,YAAY;GACV,uBAAuB;GACvB,uBAAuB;EACxB;EACD,kBAAkB;GAChB,uBAAuB;GACvB,uBAAuB;EACxB;CACF;CACD,YAAY;EACV,QAAQ;GACN,WAAW;GACX,gBAAgB;GAChB,sBAAsB;GACtB,sBAAsB;EACvB;EACD,mBAAmB;GACjB,iBAAiB;IACf,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;GACvB;GACD,4BAA4B;IAC1B,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,mBAAmB;GACpB;EACF;EACD,MAAM;GACJ,iCAAiC;GACjC,iCAAiC;GACjC,kBAAkB;GAClB,cAAc;GACd,8BAA8B;GAC9B,mCAAmC;GACnC,qBAAqB;GACrB,qBAAqB;GACrB,kBAAkB;GAClB,gBAAgB;GAChB,iBAAiB;GACjB,qBAAqB;EACtB;CACF;CACD,eAAe,CACb,8CACA,4CACD;CACD,WAAW,EACT,gBAAgB;EACd,aAAa;EACb,aAAa;EACb,OAAO;EACP,eAAe;EACf,UAAU;CACX,EACF;CACD,aAAa;EACX,aAAa;EACb,YAAY;CACb;CACD,YAAY;EACV,WAAW;EACX,QAAQ;EACR,eAAe;EACf,UAAU;EACV,OAAO;EACP,QAAQ;CACT;CACD,yBAAyB;EACvB;EACA;EACA;EACA;CACD;AACF;YACO;CACN,WAAW;CACX,kBAAkB;EAChB,oBAAoB;EACpB,eAAe;EACf,aAAa;CACd;CACD,aAAa;EACX,QAAQ;GACN,2BAA2B;GAC3B,WAAW;GACX,cAAc;GACd,kBAAkB;GAClB,wCAAwC;EACzC;EACD,UAAU;GACR,gBAAgB;GAChB,gBAAgB;GAChB,gBAAgB;EACjB;EACD,YAAY;GACV,uBAAuB;GACvB,uBAAuB;GACvB,uBAAuB;EACxB;EACD,kBAAkB;GAChB,uBAAuB;GACvB,uBAAuB;GACvB,uBAAuB;EACxB;CACF;CACD,YAAY;EACV,QAAQ;GACN,WAAW;GACX,gBAAgB;GAChB,sBAAsB;GACtB,sBAAsB;EACvB;EACD,mBAAmB;GACjB,kBAAkB;IAChB,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;GACvB;GACD,iBAAiB;IACf,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;GACvB;GACD,4BAA4B;IAC1B,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,mBAAmB;GACpB;EACF;EACD,MAAM;GACJ,iCAAiC;GACjC,iCAAiC;GACjC,kBAAkB;GAClB,cAAc;GACd,8BAA8B;GAC9B,mCAAmC;GACnC,qBAAqB;GACrB,qBAAqB;GACrB,kBAAkB;GAClB,gBAAgB;GAChB,iBAAiB;GACjB,qBAAqB;EACtB;CACF;CACD,eAAe,CACb,8CACA,4CACD;CACD,WAAW;EACT,WAAW;GACT,aAAa;GACb,aAAa;GACb,OAAO;GACP,eAAe;GACf,UAAU;EACX;EACD,gBAAgB;GACd,aAAa;GACb,aAAa;GACb,OAAO;GACP,eAAe;GACf,UAAU;EACX;EACD,eAAe;GACb,aAAa;GACb,aAAa;GACb,OAAO;GACP,eAAe;GACf,UAAU;EACX;CACF;CACD,aAAa;EACX,aAAa;EACb,YAAY;CACb;CACD,yBAAyB;EACvB;EACA;EACA;EACA;CACD;AACF;YACO;CACN,WAAW;CACX,kBAAkB;EAChB,oBAAoB;EACpB,eAAe;EACf,aAAa;CACd;CACD,aAAa;EACX,QAAQ;GACN,2BAA2B;GAC3B,WAAW;GACX,cAAc;GACd,kBAAkB;GAClB,wCAAwC;EACzC;EACD,UAAU;GACR,gBAAgB;GAChB,gBAAgB;EACjB;EACD,YAAY;GACV,uBAAuB;GACvB,uBAAuB;EACxB;EACD,kBAAkB;GAChB,uBAAuB;GACvB,uBAAuB;EACxB;CACF;CACD,YAAY;EACV,QAAQ;GACN,WAAW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"}
@@ -90,7 +90,7 @@ const UTILIZATION_DENOMINATOR = 10000n;
90
90
 
91
91
  //#endregion
92
92
  //#region src/panoptic/v2/formatters/tick.ts
93
- const Q192$1 = 1n << 192n;
93
+ const Q192$2 = 1n << 192n;
94
94
  const RAW_PRICE_PRECISION = 40n;
95
95
  function pow10(exponent) {
96
96
  if (exponent < 0n) throw new RangeError("Exponent must be non-negative");
@@ -180,7 +180,7 @@ const MAX_SQRT_PRICE_X96 = tickToSqrtPriceX96(MAX_TICK);
180
180
  function getPriceRatioFromSqrtPriceX96(sqrtPriceX96) {
181
181
  return {
182
182
  numerator: sqrtPriceX96 * sqrtPriceX96,
183
- denominator: Q192$1
183
+ denominator: Q192$2
184
184
  };
185
185
  }
186
186
  function getRawPriceRatio(tick) {
@@ -512,6 +512,110 @@ function tickLimits(currentTick, toleranceBps) {
512
512
  };
513
513
  }
514
514
 
515
+ //#endregion
516
+ //#region src/uniswap/lpGreeks.ts
517
+ const Q96$2 = 1n << 96n;
518
+ const Q192$1 = 1n << 192n;
519
+ /**
520
+ * Compute the token0/token1 amounts backing `liquidity` over `[sqrtA, sqrtB]`
521
+ * at the current price `sqrtP`, mirroring Uniswap's `LiquidityAmounts`
522
+ * (`getAmountsForLiquidity`). All sqrt prices are X96. The current price is
523
+ * clamped into the range, so out-of-range positions collapse to a single token.
524
+ */
525
+ function getAmountsForLiquidity(sqrtPriceX96, sqrtRatioAX96, sqrtRatioBX96, liquidity) {
526
+ const [sqrtA, sqrtB] = sqrtRatioAX96 <= sqrtRatioBX96 ? [sqrtRatioAX96, sqrtRatioBX96] : [sqrtRatioBX96, sqrtRatioAX96];
527
+ const sqrtC = sqrtPriceX96 < sqrtA ? sqrtA : sqrtPriceX96 > sqrtB ? sqrtB : sqrtPriceX96;
528
+ const amount0 = sqrtC < sqrtB ? liquidity * (sqrtB - sqrtC) * Q96$2 / (sqrtC * sqrtB) : 0n;
529
+ const amount1 = sqrtC > sqrtA ? liquidity * (sqrtC - sqrtA) / Q96$2 : 0n;
530
+ return {
531
+ amount0,
532
+ amount1
533
+ };
534
+ }
535
+ /**
536
+ * Greeks (value, delta, gamma) for a Uniswap LP position in the chosen asset
537
+ * frame. See the module docs for the unit conventions.
538
+ *
539
+ * Closed forms (in-range, numeraire = token1 / asset = token0):
540
+ * value = amount1 + amount0·P (P = sqrtP² / 2^192)
541
+ * delta = amount0 (= dV/dP)
542
+ * gamma = P²·d²V/dP² = -L·sqrt(P)/2 (short gamma)
543
+ * The `assetIndex = 1` frame is the symmetric inverse (numeraire = token0).
544
+ * Gamma is zero when the price is outside the range (no curvature there).
545
+ */
546
+ function getLpGreeks(input) {
547
+ const { liquidity, tickLower, tickUpper, currentTick, assetIndex } = input;
548
+ const sqrtP = input.sqrtPriceX96 ?? tickToSqrtPriceX96(currentTick);
549
+ if (sqrtP <= 0n) throw new RangeError("Invalid sqrt price");
550
+ const sqrtA = tickToSqrtPriceX96(tickLower);
551
+ const sqrtB = tickToSqrtPriceX96(tickUpper);
552
+ const { amount0, amount1 } = getAmountsForLiquidity(sqrtP, sqrtA, sqrtB, liquidity);
553
+ const sqrtP2 = sqrtP * sqrtP;
554
+ const inRange = sqrtP > sqrtA && sqrtP < sqrtB;
555
+ if (assetIndex === 0) {
556
+ const value$1 = amount1 + amount0 * sqrtP2 / Q192$1;
557
+ const delta$1 = amount0;
558
+ const gamma$1 = inRange ? -(liquidity * sqrtP) / (2n * Q96$2) : 0n;
559
+ return {
560
+ value: value$1,
561
+ delta: delta$1,
562
+ gamma: gamma$1
563
+ };
564
+ }
565
+ const value = amount0 + amount1 * Q192$1 / sqrtP2;
566
+ const delta = amount1;
567
+ const gamma = inRange ? -(liquidity * Q96$2) / (2n * sqrtP) : 0n;
568
+ return {
569
+ value,
570
+ delta,
571
+ gamma
572
+ };
573
+ }
574
+
575
+ //#endregion
576
+ //#region src/panoptic/v2/greeks/legLiquidity.ts
577
+ const Q96$1 = 1n << 96n;
578
+ function divCeil(numerator, denominator) {
579
+ return (numerator + denominator - 1n) / denominator;
580
+ }
581
+ /** The Uniswap range and liquidity backing one option leg, with the contract's rounding. */
582
+ function getLegLiquidityRange(leg, positionSize, tickSpacing) {
583
+ const width = leg.width * tickSpacing;
584
+ const lowerTick = leg.strike - width / 2n;
585
+ const upperTick = leg.strike + (width + 1n) / 2n;
586
+ if (lowerTick < -887272n || upperTick > 887272n || lowerTick >= upperTick) throw new RangeError("Invalid position range");
587
+ const sqrtLower = tickToSqrtPriceX96(lowerTick);
588
+ const sqrtUpper = tickToSqrtPriceX96(upperTick);
589
+ const amount = positionSize * leg.optionRatio;
590
+ const liquidity = leg.asset === 0n ? amount * (sqrtLower * sqrtUpper / Q96$1) / (sqrtUpper - sqrtLower) : amount * Q96$1 / (sqrtUpper - sqrtLower);
591
+ return {
592
+ lowerTick,
593
+ upperTick,
594
+ sqrtLower,
595
+ sqrtUpper,
596
+ liquidity
597
+ };
598
+ }
599
+ /**
600
+ * One option leg's signed holding of `tokenIndex` at `currentTick`: the amount
601
+ * its liquidity holds minus the amount the leg moved, positive for short legs.
602
+ */
603
+ function getLegTokenInventory(leg, currentTick, positionSize, tickSpacing, tokenIndex) {
604
+ const { sqrtLower, sqrtUpper, liquidity } = getLegLiquidityRange(leg, positionSize, tickSpacing);
605
+ const held = getAmountsForLiquidity(tickToSqrtPriceX96(currentTick), sqrtLower, sqrtUpper, liquidity);
606
+ const heldAmount = tokenIndex === 0n ? held.amount0 : held.amount1;
607
+ let movedAmount = 0n;
608
+ if (leg.tokenType === tokenIndex) {
609
+ const span = sqrtUpper - sqrtLower;
610
+ if (tokenIndex === 0n) {
611
+ const scaled = (liquidity << 96n) * span;
612
+ movedAmount = leg.isLong ? scaled / sqrtUpper / sqrtLower : divCeil(divCeil(scaled, sqrtUpper), sqrtLower);
613
+ } else movedAmount = leg.isLong ? liquidity * span / Q96$1 : divCeil(liquidity * span, Q96$1);
614
+ }
615
+ const net = heldAmount - movedAmount;
616
+ return leg.isLong ? -net : net;
617
+ }
618
+
515
619
  //#endregion
516
620
  //#region src/panoptic/v2/greeks/index.ts
517
621
  /** Fixed-point scale constants for sqrtPriceX96 arithmetic */
@@ -862,12 +966,14 @@ function toVaultFrameAtTick(delta, fromAsset, vaultAssetIndex, currentTick, flip
862
966
  * Calculate one leg's wallet-aware delta in the vault asset frame.
863
967
  *
864
968
  * Width-zero loans and credits must be evaluated directly in the vault frame.
865
- * Option legs remain in their natural leg frame until converted at the mark tick.
969
+ * An option leg is measured as its current holding of the vault token, so
970
+ * `mintTick` and `definedRisk` do not affect it. Tokens swapped at mint belong
971
+ * to the account's collateral balance, not to the position: a per-position
972
+ * display omits them by design, and a whole-account delta adds the balance.
866
973
  */
867
974
  function getLegDeltaInVaultFrame(leg, currentTick, positionSize, poolTickSpacing, mintTick, definedRisk, vaultAssetIndex) {
868
975
  if (leg.width === 0n) return getLegDelta(leg, currentTick, positionSize, poolTickSpacing, mintTick, definedRisk, vaultAssetIndex);
869
- const legDelta = getLegDelta(leg, currentTick, positionSize, poolTickSpacing, mintTick, definedRisk);
870
- return toVaultFrameAtTick(legDelta, leg.asset, vaultAssetIndex, currentTick, true);
976
+ return getLegTokenInventory(leg, currentTick, positionSize, poolTickSpacing, vaultAssetIndex);
871
977
  }
872
978
  /**
873
979
  * Calculate the gamma (dollar gamma) of a single leg.
@@ -966,9 +1072,9 @@ function calculatePositionDelta(input) {
966
1072
  /**
967
1073
  * Calculate debt-only position delta in a single target asset frame.
968
1074
  *
969
- * Option legs are first valued in their natural `leg.asset` frame, then
970
- * converted into `assetIndex` using the current pool price. Width-zero legs
971
- * are evaluated directly in the target frame.
1075
+ * Option legs contribute their current holding of the `assetIndex` token,
1076
+ * without any mint-time adjustment. Width-zero legs are evaluated directly in
1077
+ * the target frame.
972
1078
  *
973
1079
  * Width=0 loan/credit legs include only their debt obligation. The held-token
974
1080
  * side must be added separately from account collateral balances, preventing a
@@ -1101,4 +1207,4 @@ function calculatePositionDeltaWithSwap(input) {
1101
1207
  }
1102
1208
 
1103
1209
  //#endregion
1104
- export { BPS_DENOMINATOR, MAX_TICK, MAX_TRACKED_CHUNKS, MIN_TICK, NO_LOWER_LIQUIDATION_TICK, NO_UPPER_LIQUIDATION_TICK, ORACLE_EPOCH_SECONDS, REORG_DEPTH, SCHEMA_VERSION, STORAGE_PREFIX, UTILIZATION_DENOMINATOR, WAD, ZERO_COLLATERAL, ZERO_VALUATION, calculatePortfolioDelta, calculatePortfolioGamma, calculatePortfolioGreeks, calculatePortfolioValue, calculatePositionDelta, calculatePositionDeltaDebtOnly, calculatePositionDeltaWithSwap, calculatePositionGamma, calculatePositionGreeks, calculatePositionValue, calculatePositionValues, formatPriceRange, formatTick, formatTickRange, getLegDelta, getLegDeltaInVaultFrame, getLegGamma, getLegNetValueWidth0, getLegValue, getLoanEffectiveDelta, getPositionDeltaMetrics, getPricesAtTick, getTickSpacing, isCall, isDefinedRisk, preparePositionValue, priceToTick, roundToTickSpacing, sqrtPriceX96ToPriceDecimalScaled, sqrtPriceX96ToTick, tickLimits, tickToPrice, tickToPriceDecimalScaled, tickToSqrtPriceX96, toVaultFrameAtTick };
1210
+ export { BPS_DENOMINATOR, MAX_TICK, MAX_TRACKED_CHUNKS, MIN_TICK, NO_LOWER_LIQUIDATION_TICK, NO_UPPER_LIQUIDATION_TICK, ORACLE_EPOCH_SECONDS, REORG_DEPTH, SCHEMA_VERSION, STORAGE_PREFIX, UTILIZATION_DENOMINATOR, WAD, ZERO_COLLATERAL, ZERO_VALUATION, calculatePortfolioDelta, calculatePortfolioGamma, calculatePortfolioGreeks, calculatePortfolioValue, calculatePositionDelta, calculatePositionDeltaDebtOnly, calculatePositionDeltaWithSwap, calculatePositionGamma, calculatePositionGreeks, calculatePositionValue, calculatePositionValues, formatPriceRange, formatTick, formatTickRange, getAmountsForLiquidity, getLegDelta, getLegDeltaInVaultFrame, getLegGamma, getLegLiquidityRange, getLegNetValueWidth0, getLegValue, getLoanEffectiveDelta, getLpGreeks, getPositionDeltaMetrics, getPricesAtTick, getTickSpacing, isCall, isDefinedRisk, preparePositionValue, priceToTick, roundToTickSpacing, sqrtPriceX96ToPriceDecimalScaled, sqrtPriceX96ToTick, tickLimits, tickToPrice, tickToPriceDecimalScaled, tickToSqrtPriceX96, toVaultFrameAtTick };