@panoptic-eng/sdk 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,8 +1,7 @@
1
- import { BORROW_INDEX_BITS, BPS_SCALE, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, Multicall3Abi, RATE_AT_TARGET_BITS, SECONDS_PER_YEAR, UNREALIZED_INTEREST_BITS, WAD$1 as WAD, annualizePerSecondRateWad, deriveSupplyRatePerSecWad, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, getAccountCollateral, getCollateralData, getIrmCurrent, getIrmCurve, packMarketState, ratePerSecWadToAprPct, utilizationBpsToWad, utilizationPctToWad } from "./irm-BTK_DhAz.js";
2
- import { collateralTrackerV2Abi, getPoolMetadata$1 as getPoolMetadata, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, panopticQueryAbi, riskEngineAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi } from "./position-BVhvYRm8.js";
1
+ import { BORROW_INDEX_BITS, BPS_SCALE, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, Multicall3Abi, RATE_AT_TARGET_BITS, SECONDS_PER_YEAR, UNREALIZED_INTEREST_BITS, WAD, annualizePerSecondRateWad, deriveSupplyRatePerSecWad, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, getAccountCollateral, getCollateralData, getIrmCurrent, getIrmCurve, packMarketState, ratePerSecWadToAprPct, utilizationBpsToWad, utilizationPctToWad } from "./irm-psiA-OZ-.js";
2
+ import { collateralTrackerV2Abi, getPoolMetadata$1 as getPoolMetadata, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, panopticQueryAbi$1 as panopticQueryAbi, riskEngineAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi } from "./position-C3Ca4itE.js";
3
3
  import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, encodeAbiParameters, encodeFunctionData, encodePacked, keccak256, maxUint256, parseAbi, zeroAddress } from "viem";
4
4
  import { readContract, simulateContract, writeContract } from "viem/actions";
5
- import { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, CHAIN_DEPLOYMENTS, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_PANOPTIC_V2_ADDRESSES, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, getChainDeployment, getEthUsdcMarket, isSupportedChain, requireChainDeployment, resolveVaultDisplayName } from "@panoptic-eng/deployments";
6
5
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
7
6
  import { useAccount, useReadContract, useSimulateContract, useWaitForTransactionReceipt, useWriteContract } from "wagmi";
8
7
  import { z } from "zod";
@@ -15469,6 +15468,304 @@ const panopticPoolV2Abi$1 = [
15469
15468
  }
15470
15469
  ];
15471
15470
 
15471
+ //#endregion
15472
+ //#region ../deployments/src/chainDeployments.data.json
15473
+ var _1 = {
15474
+ "chainId": 1,
15475
+ "infrastructure": {
15476
+ "uniswapV3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
15477
+ "poolManager": "0x000000000004444c5dc75cB358380D2e3dE08A90",
15478
+ "stateView": "0x7ffe42c4a5deea5b0fec41c94c136cf115597227"
15479
+ },
15480
+ "hypovault": {
15481
+ "core": {
15482
+ "hypoVaultImplementation": "0xF16714665955DBd0361D997eFc50fe391D96E8D0",
15483
+ "factory": "0xd5049B2647de57141dE7F65E5124707B99A452A3",
15484
+ "accountant": "0x65aA902AE3135658587FFC36ED51B61c927114e1",
15485
+ "rolesAuthority": "0xb952D345c413Ddb7850173422bAe4968e0330598",
15486
+ "collateralTrackerDecoderAndSanitizer": "0xC87c45d2dbE5acb56013e2591427ECC84Fa251E6"
15487
+ },
15488
+ "vaults": {
15489
+ "wethPlpVault": "0xd4e2c720a760049cc4151bcf61e3a9348db9cd92",
15490
+ "usdcPlpVault": "0x236d0558f06cd60780b232d4Ec4c92d2cb7e4D18"
15491
+ },
15492
+ "managers": {
15493
+ "wethPlpVaultManager": "0xB6Fc48e658C9B1a7dbdFA51A5E153ab60BB2e04d",
15494
+ "usdcPlpVaultManager": "0x2ce65016366ef7320078e0758D58Cf1038bc7C4e"
15495
+ },
15496
+ "turnkeySigners": {
15497
+ "wethPlpVaultManager": "0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F",
15498
+ "usdcPlpVaultManager": "0x3c1c79d0cfc316Ba959194c89696a8382d7d283b"
15499
+ }
15500
+ },
15501
+ "panoptic": {
15502
+ "pool": {
15503
+ "panopticPool": "0x00000000563b70d704f4c6675a5f6ac989fbae13",
15504
+ "collateralTracker0": "0x1e46b0289B7E0F710E2Db8Ab87800dd782D624f7",
15505
+ "collateralTracker1": "0x12bF31955522BAC337D93e1bC0a39F68D8BDa216"
15506
+ },
15507
+ "v2": {
15508
+ "semiFungiblePositionManagerV4": "0x000000000000047534b9E1D528ED997169865a64",
15509
+ "semiFungiblePositionManagerV3": "0x000000000000031d296bBA22f188472157eEb01f",
15510
+ "builderFactory": "0x00000000000008D41F2cd5bF144F61cEB3661F98",
15511
+ "riskEngine": "0x0000000000000e673aECBDB5f5fE5DFAf4a8e9Ac",
15512
+ "panopticPoolImplementation": "0x00000000000010bb6695dAAC60D0515c0A01a948",
15513
+ "collateralTrackerImplementation": "0x0000000000002038055dB8f2B2Fd356598935C51",
15514
+ "panopticFactoryV4": "0x0000000000000c51d0f8cf4bd9adE7191372a625",
15515
+ "panopticFactoryV3": "0x0000000000000aDC9A108591e718F2aee963a2a7",
15516
+ "panopticHelper": "0x0000000000000000000000000000000000000000",
15517
+ "panopticMath": "0x000000000000301F5BC0171C75967b8e78a92b10",
15518
+ "panopticQuery": "0x0000000000000e1aE9c66C1c3B0A547D23389C93",
15519
+ "interactionHelper": "0x00000000000040ae7CD505F4E0e3F34195D8c08C"
15520
+ }
15521
+ },
15522
+ "riskEngines": [
15523
+ "0x000000000000075e29cdaa9cb640a69e148ca7da",
15524
+ "0x0000000000000fe1e261f66ce2f44def4f5ae0cb",
15525
+ "0x0000000000000e673aECBDB5f5fE5DFAf4a8e9Ac"
15526
+ ],
15527
+ "markets": { "ethUsdc30bps": {
15528
+ "currency0": "0x0000000000000000000000000000000000000000",
15529
+ "currency1": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
15530
+ "fee": 3e3,
15531
+ "tickSpacing": 60,
15532
+ "poolId": "0x3C08AE4977F78D"
15533
+ } },
15534
+ "subgraphs": {
15535
+ "hypovault": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-mainnet/prod/gn",
15536
+ "panoptic": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-mainnet/v2_prod/gn"
15537
+ }
15538
+ };
15539
+ var _8453 = {
15540
+ "chainId": 8453,
15541
+ "infrastructure": {
15542
+ "uniswapV3Factory": "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
15543
+ "poolManager": "0x498581fF718922c3f8e6A244956aF099B2652b2b",
15544
+ "stateView": "0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71"
15545
+ },
15546
+ "hypovault": {
15547
+ "core": {
15548
+ "hypoVaultImplementation": "0xec311aE06486ad44Ba782133b502A34aCE0f479E",
15549
+ "factory": "0x9bE53b169a41030f1710A9B82e9eA6413f14D12E",
15550
+ "accountant": "0x345cA3407942f9d175c9eA8B90e83A36F570f852",
15551
+ "rolesAuthority": "0x278D37CaBFFB4B72D2866E30fEFE08aef773E0B6",
15552
+ "collateralTrackerDecoderAndSanitizer": "0x4A290b3EC46cF320421Bb2aaee96d445de31CF0b"
15553
+ },
15554
+ "vaults": {
15555
+ "wethPlpVault": "0x41b7D0515d709A4Fd2CF27f9d141D0c2F8713D04",
15556
+ "usdcPlpVault": "0xb452af299c565D04B05E601efF2840e000C922f1"
15557
+ },
15558
+ "managers": {
15559
+ "wethPlpVaultManager": "0x2a4923456c79E9ebD10F5Bf5305a5C742bBc1D7C",
15560
+ "usdcPlpVaultManager": "0xdd6E2406a044582463CFE9F0C774870eAf4A310B"
15561
+ },
15562
+ "turnkeySigners": {
15563
+ "wethPlpVaultManager": "0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F",
15564
+ "usdcPlpVaultManager": "0x3c1c79d0cfc316Ba959194c89696a8382d7d283b"
15565
+ }
15566
+ },
15567
+ "panoptic": {
15568
+ "pool": {
15569
+ "panopticPool": "0xB50e8bb68f5855DA742f4579274902a20454174a",
15570
+ "collateralTracker0": "0x0d82b189c96EbB1f44A7207e6A9cfB1e490f2869",
15571
+ "collateralTracker1": "0x9ba1082Ab3cb9edEA988697A14BBe543A3dABEd2"
15572
+ },
15573
+ "v2": {
15574
+ "semiFungiblePositionManagerV4": "0x8dcAa08cF298F8b4830FAf56d47930981AdE33af",
15575
+ "semiFungiblePositionManagerV3": "0xFB1c06B491305d618bb8a7a368C6e50c001C153A",
15576
+ "builderFactory": "0x6d26E916a18d522f7DdA2a26d9E1645564ccDcA5",
15577
+ "riskEngine": "0x8bbce8b1eb64118cfe6c1eab0afe13b80ea41481",
15578
+ "panopticPoolImplementation": "0x5BA68a018fF149c38ec52D181Dd24aBabE9a07DB",
15579
+ "collateralTrackerImplementation": "0x34B3a4e4F14f292575ECe3EF67886C4598af459f",
15580
+ "panopticFactoryV4": "0x9ac0317fcd124aff0b5429beb8de17020bc45f9a",
15581
+ "panopticFactoryV3": "0x687f616d68c483a7223e6922f59aef7452e26c1d",
15582
+ "panopticHelper": "0x0000000000000000000000000000000000000000",
15583
+ "panopticMath": "0x6d21699192f5aF112C87e53b32ff846782afF407",
15584
+ "panopticQuery": "0xd2586E1bbdd1169F597F3A370117EdF7372A7350",
15585
+ "interactionHelper": "0x643d8DD5372FD6c71f8fAbCce4Eb8857704F3E15"
15586
+ }
15587
+ },
15588
+ "riskEngines": ["0x8bbce8b1eb64118cfe6c1eab0afe13b80ea41481"],
15589
+ "markets": { "ethUsdc5bps": {
15590
+ "currency0": "0x0000000000000000000000000000000000000000",
15591
+ "currency1": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
15592
+ "fee": 500,
15593
+ "tickSpacing": 10,
15594
+ "poolId": "0x96d4b53a38337a5733179751781178a2613306063c511b78cd02684739288c0a"
15595
+ } },
15596
+ "subgraphs": {
15597
+ "hypovault": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-base/prod/gn",
15598
+ "panoptic": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-base/v2_prod/gn"
15599
+ }
15600
+ };
15601
+ var _11155111 = {
15602
+ "chainId": 11155111,
15603
+ "infrastructure": {
15604
+ "uniswapV3Factory": "0x0227628f3F023bb0B980b67D528571c95c6DaC1c",
15605
+ "poolManager": "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543",
15606
+ "stateView": "0xE1Dd9c3fA50EDB962E442f60DfBc432e24537E4C"
15607
+ },
15608
+ "hypovault": {
15609
+ "core": {
15610
+ "hypoVaultImplementation": "0xC5b415Db4087228Af817893769DC3a205160160B",
15611
+ "factory": "0x363a9d605ca45cBfF3b597350DeADb53cdC292c7",
15612
+ "accountant": "0x25BBef1DF262c24aa1AACD1F7eCeEcc1a7AD08ab",
15613
+ "rolesAuthority": "0x673BfafB4e2712215B422347c1571421B83E8A3d",
15614
+ "collateralTrackerDecoderAndSanitizer": "0xb899BE50BAF25BBB3A3ca3403256B3c703E5AB5d"
15615
+ },
15616
+ "vaults": {
15617
+ "wethPlpVault": "0xD58C4F9AEe5bBfcf28dC9a8d3D57b323fA6521b1",
15618
+ "usdcPlpVault": "0xdd7a8d6c6975488e801129bC84302d74e2361208"
15619
+ },
15620
+ "managers": {
15621
+ "wethPlpVaultManager": "0x95eC124FAAB70D7aE147c3BE0336E01a828AE2d5",
15622
+ "usdcPlpVaultManager": "0xFB5aa3e0b46F3859D90B14b52ffd287013b5Ec53"
15623
+ },
15624
+ "turnkeySigners": {
15625
+ "wethPlpVaultManager": "0x8FfA6DAB99f8afc64F61BeF83F0966eD6362f24F",
15626
+ "usdcPlpVaultManager": "0x3c1c79d0cfc316Ba959194c89696a8382d7d283b"
15627
+ }
15628
+ },
15629
+ "panoptic": {
15630
+ "pool": {
15631
+ "panopticPool": "0x872b98C46b2062F663BEb2CC9D4cE046Da2a2918",
15632
+ "collateralTracker0": "0x09a60b78d06a03e5148faedd3bfee6f58b22012f",
15633
+ "collateralTracker1": "0x7365664c8101ff7e9422ae2b203822253c31e69c"
15634
+ },
15635
+ "v2": {
15636
+ "semiFungiblePositionManagerV3": "0x9DaD2C40107Db4B29a5450401BB7A28e6eA00e43",
15637
+ "semiFungiblePositionManagerV4": "0xD2615995A71644E122cC2FD7FeC2392b971220DE",
15638
+ "builderFactory": "0x55f3D2d9D065AA5Fcc11D94c55a6085849e8b6C3",
15639
+ "riskEngine": "0x1376aF5ca426B6B9fad6a712c21f6Cf58a94b93c",
15640
+ "panopticPoolImplementation": "0x969235B5830f13b58BB699305d9c70A8Cd3BD97C",
15641
+ "collateralTrackerImplementation": "0xafcd5F651Ae0403Ff668bb2dAc38BEa907a35Dba",
15642
+ "panopticFactoryV3": "0xd9FFCa53C0A6155001Ce8cbcAEfe89DB204690F1",
15643
+ "panopticFactoryV4": "0x8FCBb59b05779818D9BAD2686cc44B705603ce03",
15644
+ "panopticHelper": "0xfFEbB3A4ab793cB244209d4dA0Cb3e6B07133bd0",
15645
+ "panopticMath": "0x6d21699192f5aF112C87e53b32ff846782afF407",
15646
+ "panopticQuery": "0x74057945467Fb4eAE9193B46A60ae66a53f06A5b",
15647
+ "interactionHelper": "0x643d8DD5372FD6c71f8fAbCce4Eb8857704F3E15"
15648
+ }
15649
+ },
15650
+ "riskEngines": ["0x1376aF5ca426B6B9fad6a712c21f6Cf58a94b93c"],
15651
+ "markets": { "ethUsdc5bps": {
15652
+ "currency0": "0x0000000000000000000000000000000000000000",
15653
+ "currency1": "0xFFFeD8254566B7F800f6D8CDb843ec75AE49B07A",
15654
+ "fee": 500,
15655
+ "tickSpacing": 10,
15656
+ "poolId": "0xba6673bcb27568a73a93dd23b20c8174fa16193cd90905be859144e8f13097a5"
15657
+ } },
15658
+ "subgraphs": {
15659
+ "hypovault": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/hypovault-subgraph-sepolia/prod/gn",
15660
+ "panoptic": "https://api.goldsky.com/api/public/project_cl9gc21q105380hxuh8ks53k3/subgraphs/panoptic-subgraph-sepolia/v2_prod/gn"
15661
+ }
15662
+ };
15663
+ var chainDeployments_data_default = {
15664
+ "1": _1,
15665
+ "8453": _8453,
15666
+ "11155111": _11155111
15667
+ };
15668
+
15669
+ //#endregion
15670
+ //#region ../deployments/src/chainDeployments.js
15671
+ const MAINNET_CHAIN_ID = 1;
15672
+ const SEPOLIA_CHAIN_ID = 11155111;
15673
+ const BASE_CHAIN_ID = 8453;
15674
+ const CHAIN_DEPLOYMENTS = chainDeployments_data_default;
15675
+ function getChainDeployment(chainId) {
15676
+ return CHAIN_DEPLOYMENTS[chainId];
15677
+ }
15678
+ function requireChainDeployment(chainId) {
15679
+ const deployment = getChainDeployment(chainId);
15680
+ if (deployment === void 0) throw new Error(`Unsupported chain deployment for chainId ${chainId}`);
15681
+ return deployment;
15682
+ }
15683
+ function isSupportedChain(chainId) {
15684
+ return getChainDeployment(chainId) !== void 0;
15685
+ }
15686
+ function getEthUsdcMarket(deployment) {
15687
+ const market = deployment.markets.ethUsdc5bps ?? deployment.markets.ethUsdc30bps;
15688
+ if (market === void 0) throw new Error(`Missing ETH/USDC market for chainId ${deployment.chainId}`);
15689
+ return market;
15690
+ }
15691
+ const MAINNET_DEPLOYMENT = CHAIN_DEPLOYMENTS[MAINNET_CHAIN_ID];
15692
+ const MAINNET_PANOPTIC_V2_ADDRESSES = MAINNET_DEPLOYMENT.panoptic.v2;
15693
+ const SEPOLIA_DEPLOYMENT = CHAIN_DEPLOYMENTS[SEPOLIA_CHAIN_ID];
15694
+ const SEPOLIA_HYPOVAULT_CORE_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.core;
15695
+ const SEPOLIA_HYPOVAULT_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.vaults;
15696
+ const SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES = SEPOLIA_DEPLOYMENT.hypovault.managers;
15697
+ const SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = SEPOLIA_DEPLOYMENT.hypovault.turnkeySigners;
15698
+ const SEPOLIA_PANOPTIC_POOL_ADDRESSES = SEPOLIA_DEPLOYMENT.panoptic.pool;
15699
+ const SEPOLIA_PANOPTIC_V2_ADDRESSES = SEPOLIA_DEPLOYMENT.panoptic.v2;
15700
+ const BASE_DEPLOYMENT = CHAIN_DEPLOYMENTS[BASE_CHAIN_ID];
15701
+ const BASE_HYPOVAULT_CORE_ADDRESSES = BASE_DEPLOYMENT.hypovault.core;
15702
+ const BASE_HYPOVAULT_ADDRESSES = BASE_DEPLOYMENT.hypovault.vaults;
15703
+ const BASE_HYPOVAULT_MANAGER_ADDRESSES = BASE_DEPLOYMENT.hypovault.managers;
15704
+ const BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS = BASE_DEPLOYMENT.hypovault.turnkeySigners;
15705
+ const BASE_PANOPTIC_POOL_ADDRESSES = BASE_DEPLOYMENT.panoptic.pool;
15706
+ const BASE_PANOPTIC_V2_ADDRESSES = BASE_DEPLOYMENT.panoptic.v2;
15707
+ const BASE_ETH_USDC_5BPS_MARKET = getEthUsdcMarket(BASE_DEPLOYMENT);
15708
+ const SEPOLIA_ETH_USDC_5BPS_MARKET = getEthUsdcMarket(SEPOLIA_DEPLOYMENT);
15709
+
15710
+ //#endregion
15711
+ //#region ../deployments/src/vaultDisplayNames.js
15712
+ const mainnetDeployment = requireChainDeployment(MAINNET_CHAIN_ID);
15713
+ const mainnetVaults = mainnetDeployment.hypovault.vaults;
15714
+ const legacyMainnetVaults = {
15715
+ wethPlpVault: "0x779a2aa634A004b3a3f3b322083744869BBC6D66",
15716
+ usdcPlpVault: "0x963Fe9c93bc353602656ee4051A75114bA74d6c5"
15717
+ };
15718
+ const sepoliaDeployment = requireChainDeployment(SEPOLIA_CHAIN_ID);
15719
+ const sepoliaVaults = sepoliaDeployment.hypovault.vaults;
15720
+ const baseDeployment = requireChainDeployment(BASE_CHAIN_ID);
15721
+ const baseVaults = baseDeployment.hypovault.vaults;
15722
+ const VAULT_DISPLAY_NAMES_PER_CHAIN = {
15723
+ [MAINNET_CHAIN_ID]: {
15724
+ [mainnetVaults.wethPlpVault.toLowerCase()]: "PLP Vault",
15725
+ [mainnetVaults.usdcPlpVault.toLowerCase()]: "Unicorn Vault",
15726
+ [legacyMainnetVaults.wethPlpVault.toLowerCase()]: "PLP Vault",
15727
+ [legacyMainnetVaults.usdcPlpVault.toLowerCase()]: "Unicorn Vault"
15728
+ },
15729
+ [BASE_CHAIN_ID]: {
15730
+ [baseVaults.wethPlpVault.toLowerCase()]: "PLP Vault",
15731
+ [baseVaults.usdcPlpVault.toLowerCase()]: "Unicorn Vault"
15732
+ },
15733
+ [SEPOLIA_CHAIN_ID]: {
15734
+ [sepoliaVaults.wethPlpVault.toLowerCase()]: "PLP Vault",
15735
+ [sepoliaVaults.usdcPlpVault.toLowerCase()]: "Unicorn Vault"
15736
+ }
15737
+ };
15738
+ const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN = {
15739
+ [MAINNET_CHAIN_ID]: {
15740
+ [mainnetVaults.wethPlpVault.toLowerCase()]: () => "PLP Vault",
15741
+ [mainnetVaults.usdcPlpVault.toLowerCase()]: () => "Unicorn Vault",
15742
+ [legacyMainnetVaults.wethPlpVault.toLowerCase()]: () => "PLP Vault",
15743
+ [legacyMainnetVaults.usdcPlpVault.toLowerCase()]: () => "Unicorn Vault"
15744
+ },
15745
+ [BASE_CHAIN_ID]: {
15746
+ [baseVaults.wethPlpVault.toLowerCase()]: () => "PLP Vault",
15747
+ [baseVaults.usdcPlpVault.toLowerCase()]: () => "Unicorn Vault"
15748
+ },
15749
+ [SEPOLIA_CHAIN_ID]: {
15750
+ [sepoliaVaults.wethPlpVault.toLowerCase()]: () => "PLP Vault",
15751
+ [sepoliaVaults.usdcPlpVault.toLowerCase()]: () => "Unicorn Vault"
15752
+ }
15753
+ };
15754
+ function resolveVaultDisplayName({ chainId, vaultAddress, underlyingSymbol, fallbackName }) {
15755
+ const vaultAddressLower = vaultAddress.toLowerCase();
15756
+ const resolver = VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN[chainId]?.[vaultAddressLower];
15757
+ if (resolver !== void 0) return resolver({
15758
+ chainId,
15759
+ vaultAddress: vaultAddressLower,
15760
+ underlyingSymbol,
15761
+ fallbackName
15762
+ });
15763
+ const staticName = VAULT_DISPLAY_NAMES_PER_CHAIN[chainId]?.[vaultAddressLower];
15764
+ if (staticName !== void 0) return staticName;
15765
+ if (fallbackName !== void 0 && fallbackName !== null) return fallbackName;
15766
+ return "Vault";
15767
+ }
15768
+
15472
15769
  //#endregion
15473
15770
  //#region src/hypoVault/hypoVaultManagerConfigs/usdcPlpVaultBaseProdConfig.ts
15474
15771
  const BASE_DEPLOYMENT$3 = requireChainDeployment(BASE_CHAIN_ID);
@@ -15514,6 +15811,7 @@ const MAINNET_HYPOVAULT_MANAGER_ADDRESSES$1 = MAINNET_DEPLOYMENT$3.hypovault.man
15514
15811
  const MAINNET_PANOPTIC_POOL_ADDRESSES$1 = MAINNET_DEPLOYMENT$3.panoptic.pool;
15515
15812
  const MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1 = {
15516
15813
  panopticPool: "0x000000007588B488d180899cDEa2080a886D2441",
15814
+ collateralTracker0: "0x6cd0186Fb4c32B6fD23279bBE0022506958216f9",
15517
15815
  collateralTracker1: "0x6778d652A0BCe658C9a0E27D506eA20D179140e5"
15518
15816
  };
15519
15817
  const UsdcPlpVaultMainnetProdConfig = {
@@ -15551,13 +15849,14 @@ const UsdcPlpVaultMainnetLegacyConfig = {
15551
15849
  hypoVaultAddress: "0x963Fe9c93bc353602656ee4051A75114bA74d6c5",
15552
15850
  addresses: {
15553
15851
  ...UsdcPlpVaultMainnetProdConfig.addresses,
15852
+ ethUsdc500bpsV4Collateral0: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.collateralTracker0,
15554
15853
  ethUsdc500bpsV4Collateral1: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.collateralTracker1,
15555
15854
  ethUsdc500bpsV4PanopticPool: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.panopticPool,
15556
15855
  hypoVaultManagerWithMerkleVerification: "0xf42EED8F0d3326ad59fc1f5d4c4009B5F6B4D87c",
15557
15856
  hypoVault: "0x963Fe9c93bc353602656ee4051A75114bA74d6c5"
15558
15857
  },
15559
15858
  manualTxDefaults: { collateralAllocations: [{
15560
- trackerAddress: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.collateralTracker1,
15859
+ trackerAddress: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.collateralTracker0,
15561
15860
  allocationBps: 1e4
15562
15861
  }] }
15563
15862
  };
@@ -15662,7 +15961,8 @@ const MAINNET_HYPOVAULT_MANAGER_ADDRESSES = MAINNET_DEPLOYMENT$2.hypovault.manag
15662
15961
  const MAINNET_PANOPTIC_POOL_ADDRESSES = MAINNET_DEPLOYMENT$2.panoptic.pool;
15663
15962
  const MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES = {
15664
15963
  panopticPool: "0x000000007588B488d180899cDEa2080a886D2441",
15665
- collateralTracker0: "0x6cd0186Fb4c32B6fD23279bBE0022506958216f9"
15964
+ collateralTracker0: "0x6cd0186Fb4c32B6fD23279bBE0022506958216f9",
15965
+ collateralTracker1: "0x6778d652A0BCe658C9a0E27D506eA20D179140e5"
15666
15966
  };
15667
15967
  const WethPlpVaultMainnetProdConfig = {
15668
15968
  deployment: "prod",
@@ -15700,12 +16000,13 @@ const WethPlpVaultMainnetLegacyConfig = {
15700
16000
  addresses: {
15701
16001
  ...WethPlpVaultMainnetProdConfig.addresses,
15702
16002
  ethUsdc500bpsV4Collateral0: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.collateralTracker0,
16003
+ ethUsdc500bpsV4Collateral1: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.collateralTracker1,
15703
16004
  ethUsdc500bpsV4PanopticPool: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.panopticPool,
15704
16005
  hypoVaultManagerWithMerkleVerification: "0xcc80f113298DdF9D399323D5288aE5Eeaed20D44",
15705
16006
  hypoVault: "0x779a2aa634A004b3a3f3b322083744869BBC6D66"
15706
16007
  },
15707
16008
  manualTxDefaults: { collateralAllocations: [{
15708
- trackerAddress: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.collateralTracker0,
16009
+ trackerAddress: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.collateralTracker1,
15709
16010
  allocationBps: 1e4
15710
16011
  }] }
15711
16012
  };
@@ -17218,8 +17519,8 @@ const MainnetLegacyUSDCPLPStrategistLeaves = {
17218
17519
  "Bytes4(TARGET_FUNCTION_SELECTOR)",
17219
17520
  "Bytes{N*20}(ADDRESS_ARGUMENT_0,...,ADDRESS_ARGUMENT_N)"
17220
17521
  ],
17221
- LeafCount: 9,
17222
- ManageRoot: "0xe4daaf6390188a7f4d786ef65148e555eb95f9b92a6e08990487519916135cd9",
17522
+ LeafCount: 10,
17523
+ ManageRoot: "0x4df5c1b82729c2e070ab0923230e57bb0d0ee3a0f29159178c1315b4cb47d735",
17223
17524
  ManagerAddress: "0xf42EED8F0d3326ad59fc1f5d4c4009B5F6B4D87c",
17224
17525
  TreeCapacity: 16
17225
17526
  },
@@ -17301,6 +17602,17 @@ const MainnetLegacyUSDCPLPStrategistLeaves = {
17301
17602
  PackedArgumentAddresses: "0x",
17302
17603
  TargetAddress: "0x000000007588B488d180899cDEa2080a886D2441"
17303
17604
  },
17605
+ {
17606
+ AddressArguments: ["0x963Fe9c93bc353602656ee4051A75114bA74d6c5"],
17607
+ CanSendValue: true,
17608
+ DecoderAndSanitizerAddress: "0x1c8620AC42c1F69eE493B953165FCd1864DEB439",
17609
+ Description: "Deposit ETH for poETH (payable)",
17610
+ FunctionSelector: "0x6e553f65",
17611
+ FunctionSignature: "deposit(uint256,address)",
17612
+ LeafDigest: "0xca0ff0331ca1493aa7c0a7c06e1ad55cb2dc63a4b854474a628b520fe45f480e",
17613
+ PackedArgumentAddresses: "0x963fe9c93bc353602656ee4051a75114ba74d6c5",
17614
+ TargetAddress: "0x6cd0186Fb4c32B6fD23279bBE0022506958216f9"
17615
+ },
17304
17616
  {
17305
17617
  AddressArguments: ["0x963Fe9c93bc353602656ee4051A75114bA74d6c5", "0x963Fe9c93bc353602656ee4051A75114bA74d6c5"],
17306
17618
  CanSendValue: false,
@@ -17378,17 +17690,6 @@ const MainnetLegacyUSDCPLPStrategistLeaves = {
17378
17690
  PackedArgumentAddresses: "0x",
17379
17691
  TargetAddress: "0x0000000000000000000000000000000000000000"
17380
17692
  },
17381
- {
17382
- AddressArguments: [],
17383
- CanSendValue: false,
17384
- DecoderAndSanitizerAddress: "0x0000000000000000000000000000000000000000",
17385
- Description: "",
17386
- FunctionSelector: "0xc5d24601",
17387
- FunctionSignature: "",
17388
- LeafDigest: "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17389
- PackedArgumentAddresses: "0x",
17390
- TargetAddress: "0x0000000000000000000000000000000000000000"
17391
- },
17392
17693
  {
17393
17694
  AddressArguments: [],
17394
17695
  CanSendValue: false,
@@ -17402,20 +17703,20 @@ const MainnetLegacyUSDCPLPStrategistLeaves = {
17402
17703
  }
17403
17704
  ],
17404
17705
  MerkleTree: {
17405
- "0": ["0xe4daaf6390188a7f4d786ef65148e555eb95f9b92a6e08990487519916135cd9"],
17406
- "1": ["0x3c58f1f0c688f0aa171f19333e2d8179ce1ad6bb2ac48365caecd305ec69ef6d", "0x048a501ab9465e4398ecbffb347212ddd58e4127e30654a1699da95658aca2fc"],
17706
+ "0": ["0x4df5c1b82729c2e070ab0923230e57bb0d0ee3a0f29159178c1315b4cb47d735"],
17707
+ "1": ["0xbac4becc6803fad3b5048929ab579b3bcb2d3b5d746b8b0cbe83ffab3bd02af3", "0x114252b1f2edd8a0cd246246732ee3e293e423ff6de8631e42db3d1994c0b628"],
17407
17708
  "2": [
17408
17709
  "0xdc61bb3a67e08f65ae5fb69d313d6145340a5b2d58ab80b22ce3eb9271444917",
17409
- "0x69a2109c7389ae13bc08eae2484f900b973a1604970c45b74820f39e6ccc6893",
17410
- "0x61a92f41ce9b34cbcda01f5738c2a0d86eac8a1eac595f2184dec606a5d1d102",
17710
+ "0x1b07cee6fe14ac13400398311846511425edc4858a1179d1f0d8ad648544f98a",
17711
+ "0x7c66b4febed550fbb3f11d6b2814491f9423466cc7ef4e16325bac47e4a6bbd6",
17411
17712
  "0x849eda7a295b642e5ddaf49a30eec4470cf507efa83b4104c0752d069c7638fe"
17412
17713
  ],
17413
17714
  "3": [
17414
17715
  "0x032280a8f6377dba443a56ec7d00b3c6d2942fe090d3aeb30613a19fdc90569f",
17415
17716
  "0x8a117d51d3bd6ac0a55e9f6a574beed72c865f741ef824ae9784f3d721fc086d",
17416
17717
  "0x925bc995a913d6722560d46f4e0c1560a916430387ec44c1505c487ce7f2ee03",
17417
- "0x7667fb57767cb0ffd4a26b4e351c0f5968971028b907e1e1d978ed443fa85d50",
17418
- "0x3593c31b63c777c3dc8b9ec205f54aae17a7533b2997819e764ce307cc6fefb5",
17718
+ "0xeab476d6a326a74d5a1297a40d1a6af5cf0b37320e41f3b342b379cd6b5d6a65",
17719
+ "0xbf5201e2b1c88fbe98051b963eb82aaa2433395760c9816b8a7c502039792074",
17419
17720
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba",
17420
17721
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba",
17421
17722
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba"
@@ -17428,6 +17729,7 @@ const MainnetLegacyUSDCPLPStrategistLeaves = {
17428
17729
  "0x0282b6e97c1a52b881c9480ea44fc4a2cdd46abbd0703b0c40388c6acefa715a",
17429
17730
  "0xf4c92c489022aae42690da9bbae84e23acb28b7495aa8a58965fd0173f0c16ad",
17430
17731
  "0x82a883bd80ac38a61ce761a509a6e6ce10659099fc872db39cbb940abd356e29",
17732
+ "0xca0ff0331ca1493aa7c0a7c06e1ad55cb2dc63a4b854474a628b520fe45f480e",
17431
17733
  "0xcf5f157610c7f41c82d5ab9fe7cfa154d399b9b374ead620b95df9bfe1150caf",
17432
17734
  "0x0b5e6f71c235d36249a399400fa6741c4d6a56f3b458d85aeacd206e61aafeed",
17433
17735
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
@@ -17435,7 +17737,6 @@ const MainnetLegacyUSDCPLPStrategistLeaves = {
17435
17737
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17436
17738
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17437
17739
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17438
- "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17439
17740
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400"
17440
17741
  ]
17441
17742
  }
@@ -17455,8 +17756,8 @@ const MainnetLegacyWETHPLPStrategistLeaves = {
17455
17756
  "Bytes4(TARGET_FUNCTION_SELECTOR)",
17456
17757
  "Bytes{N*20}(ADDRESS_ARGUMENT_0,...,ADDRESS_ARGUMENT_N)"
17457
17758
  ],
17458
- LeafCount: 10,
17459
- ManageRoot: "0xcb3f5429a543b40755e0b93c8d0bd9741a8ebe81c7ee537a03fc8a842c10592f",
17759
+ LeafCount: 12,
17760
+ ManageRoot: "0xd097509d7b1fc6f899a47b8d06f8a5e2b3337ee8b98e77ef612a1c54a79370c8",
17460
17761
  ManagerAddress: "0xcc80f113298DdF9D399323D5288aE5Eeaed20D44",
17461
17762
  TreeCapacity: 16
17462
17763
  },
@@ -17549,6 +17850,28 @@ const MainnetLegacyWETHPLPStrategistLeaves = {
17549
17850
  PackedArgumentAddresses: "0x",
17550
17851
  TargetAddress: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
17551
17852
  },
17853
+ {
17854
+ AddressArguments: ["0x6778d652A0BCe658C9a0E27D506eA20D179140e5"],
17855
+ CanSendValue: false,
17856
+ DecoderAndSanitizerAddress: "0x1c8620AC42c1F69eE493B953165FCd1864DEB439",
17857
+ Description: "Approve poUSDC to spend USDC",
17858
+ FunctionSelector: "0x095ea7b3",
17859
+ FunctionSignature: "approve(address,uint256)",
17860
+ LeafDigest: "0x346f207a137fe0706e1762800b928a9a5b77a1413a33ba8f204cf44d680ea7b4",
17861
+ PackedArgumentAddresses: "0x6778d652a0bce658c9a0e27d506ea20d179140e5",
17862
+ TargetAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
17863
+ },
17864
+ {
17865
+ AddressArguments: ["0x779a2aa634A004b3a3f3b322083744869BBC6D66"],
17866
+ CanSendValue: false,
17867
+ DecoderAndSanitizerAddress: "0x1c8620AC42c1F69eE493B953165FCd1864DEB439",
17868
+ Description: "Deposit USDC for poUSDC",
17869
+ FunctionSelector: "0x6e553f65",
17870
+ FunctionSignature: "deposit(uint256,address)",
17871
+ LeafDigest: "0xf805e4d58110bd4d25a6d6af8935f12e79f157146f0c329466a3db4a4753bd21",
17872
+ PackedArgumentAddresses: "0x779a2aa634a004b3a3f3b322083744869bbc6d66",
17873
+ TargetAddress: "0x6778d652A0BCe658C9a0E27D506eA20D179140e5"
17874
+ },
17552
17875
  {
17553
17876
  AddressArguments: ["0x779a2aa634A004b3a3f3b322083744869BBC6D66", "0x779a2aa634A004b3a3f3b322083744869BBC6D66"],
17554
17877
  CanSendValue: false,
@@ -17604,28 +17927,6 @@ const MainnetLegacyWETHPLPStrategistLeaves = {
17604
17927
  PackedArgumentAddresses: "0x",
17605
17928
  TargetAddress: "0x0000000000000000000000000000000000000000"
17606
17929
  },
17607
- {
17608
- AddressArguments: [],
17609
- CanSendValue: false,
17610
- DecoderAndSanitizerAddress: "0x0000000000000000000000000000000000000000",
17611
- Description: "",
17612
- FunctionSelector: "0xc5d24601",
17613
- FunctionSignature: "",
17614
- LeafDigest: "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17615
- PackedArgumentAddresses: "0x",
17616
- TargetAddress: "0x0000000000000000000000000000000000000000"
17617
- },
17618
- {
17619
- AddressArguments: [],
17620
- CanSendValue: false,
17621
- DecoderAndSanitizerAddress: "0x0000000000000000000000000000000000000000",
17622
- Description: "",
17623
- FunctionSelector: "0xc5d24601",
17624
- FunctionSignature: "",
17625
- LeafDigest: "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17626
- PackedArgumentAddresses: "0x",
17627
- TargetAddress: "0x0000000000000000000000000000000000000000"
17628
- },
17629
17930
  {
17630
17931
  AddressArguments: [],
17631
17932
  CanSendValue: false,
@@ -17639,12 +17940,12 @@ const MainnetLegacyWETHPLPStrategistLeaves = {
17639
17940
  }
17640
17941
  ],
17641
17942
  MerkleTree: {
17642
- "0": ["0xcb3f5429a543b40755e0b93c8d0bd9741a8ebe81c7ee537a03fc8a842c10592f"],
17643
- "1": ["0xecc8eceb557095ac1ec73d22b889587cb4b62a247f71eaa240f5d15ae53b0442", "0x2394e5d27a7006baf589859a937353f332147810326a175133a2fbf3e41cef1b"],
17943
+ "0": ["0xd097509d7b1fc6f899a47b8d06f8a5e2b3337ee8b98e77ef612a1c54a79370c8"],
17944
+ "1": ["0xecc8eceb557095ac1ec73d22b889587cb4b62a247f71eaa240f5d15ae53b0442", "0xa3c80589d0591fa84692dd6fb1545db7d2a9bc83d5cb90d79b0a0c84cfb5877c"],
17644
17945
  "2": [
17645
17946
  "0xbdefa4834d99bf83b5723a84a7936801f7b1a6c9f6d26c5728fc60b225707520",
17646
17947
  "0xafb4b8b386986170cc6c4c21e313ee1f62e232b040751016a66bcba8cf2f3ae4",
17647
- "0xa78f12f8d31f83cce6893e7de89f26951319b4c55f80427df7935c76596b46be",
17948
+ "0x3c19856f0ddfa56b8146248d45b503d6ae2a7fd77f88f07b6feba55c963b2415",
17648
17949
  "0x849eda7a295b642e5ddaf49a30eec4470cf507efa83b4104c0752d069c7638fe"
17649
17950
  ],
17650
17951
  "3": [
@@ -17652,9 +17953,9 @@ const MainnetLegacyWETHPLPStrategistLeaves = {
17652
17953
  "0x6264743f8a226c88339ed52ad0a7abd546822c3dba83aab0c5fb12526b5f91d3",
17653
17954
  "0xdb2209c5b9952579d2b01f9410a8b6bd21db999cc7b9b88aa93b4322df84f2c7",
17654
17955
  "0x7e48b787e4c7cc699a80b9e8cee4d897b7641fce92237fdb1a7051549162f2dd",
17956
+ "0xf3f55d959a163add55810d3fc9b3fee19effbe69efe5f0fc9f0d0af1937803fa",
17655
17957
  "0xfabe01305db6cc9d463124975d40fade6e3b605795a318ce075352a750b3f494",
17656
17958
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba",
17657
- "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba",
17658
17959
  "0xc5a36f3b7b955966d5ed3135dcc612f978306d73bce3697e230afae57fbaeeba"
17659
17960
  ],
17660
17961
  "4": [
@@ -17666,13 +17967,13 @@ const MainnetLegacyWETHPLPStrategistLeaves = {
17666
17967
  "0x82a883bd80ac38a61ce761a509a6e6ce10659099fc872db39cbb940abd356e29",
17667
17968
  "0x5f912d61b50a583c1384f1c66b6f082e2ad815da3c9c9e5c93171189e427b1f4",
17668
17969
  "0xdabf1f63a2737d544f0cb9d20b19b6da1a83e0f1998382f93e90d610e59cdca2",
17970
+ "0x346f207a137fe0706e1762800b928a9a5b77a1413a33ba8f204cf44d680ea7b4",
17971
+ "0xf805e4d58110bd4d25a6d6af8935f12e79f157146f0c329466a3db4a4753bd21",
17669
17972
  "0xc8c0f1a15ffe7ec0a97142e6415fa45dfd28a23025e4a59677a5c50ba375d719",
17670
17973
  "0x59a5d4cb31e1fd7832969e599f02275bca7cacd43ed93f1b1058d7347d4f70f7",
17671
17974
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17672
17975
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17673
17976
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17674
- "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17675
- "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400",
17676
17977
  "0xa7a0fd846665d92e66be6155c6221b3acd7145ca7c4e4b67a594e4c516969400"
17677
17978
  ]
17678
17979
  }