@steerprotocol/sdk 3.4.2 → 3.5.0

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.
@@ -9256,7 +9256,7 @@ const steerSubgraphConfig = {
9256
9256
  [Chain.Zircuit]: offlineSubgraphUrl("zircuit"),
9257
9257
  [Chain.Moonbeam]: offlineSubgraphUrl("moonbeam"),
9258
9258
  [Chain.Sei]: offlineSubgraphUrl("sei"),
9259
- [Chain.Sonic]: offlineSubgraphUrl("sonic"),
9259
+ [Chain.Sonic]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-sonic/prod/gn",
9260
9260
  [Chain.Zeta]: offlineSubgraphUrl("zeta"),
9261
9261
  [Chain.Mainnet]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mainnet/prod/gn",
9262
9262
  [Chain.Soneium]: offlineSubgraphUrl("soneium"),
@@ -24414,7 +24414,7 @@ const PROVENANCE_BY_VARIANT = Object.freeze({
24414
24414
  "integral-v1": provenance$1(SDK_CONFIG_URL, "https://github.com/cryptoalgebra/Algebra/blob/3eae63f432a889fca5b000e9bd61078c6f923995/src/core/contracts/interfaces/IAlgebraFactory.sol"),
24415
24415
  "integral-v2": provenance$1(SDK_CONFIG_URL, "https://github.com/cryptoalgebra/Algebra/blob/62f01348af24b96d7d16f6b56fbaa61e512ba1c5/src/core/contracts/interfaces/IAlgebraFactory.sol", "https://github.com/cryptoalgebra/Algebra/blob/62f01348af24b96d7d16f6b56fbaa61e512ba1c5/src/periphery/contracts/interfaces/IAlgebraCustomPoolEntryPoint.sol")
24416
24416
  });
24417
- function deployment$1(input) {
24417
+ function deployment$2(input) {
24418
24418
  const shape = input.variant === "directional" ? {
24419
24419
  adapter: "algebra-directional-pair-v1",
24420
24420
  version: 1,
@@ -24456,179 +24456,179 @@ function deployment$1(input) {
24456
24456
  * a runtime fallback.
24457
24457
  */
24458
24458
  const ALGEBRA_LIFECYCLE_DEPLOYMENTS = Object.freeze([
24459
- deployment$1({
24459
+ deployment$2({
24460
24460
  chainId: ChainId.Polygon,
24461
24461
  protocol: Protocol.QuickSwap,
24462
24462
  variant: "legacy",
24463
24463
  factory: "0x411b0fAcC3489691f28ad58c47006AF5E3Ab3A28"
24464
24464
  }),
24465
- deployment$1({
24465
+ deployment$2({
24466
24466
  chainId: ChainId.PolygonzkEVM,
24467
24467
  protocol: Protocol.QuickSwap,
24468
24468
  variant: "legacy",
24469
24469
  factory: "0x4B9f4d2435Ef65559567e5DbFC1BbB37abC43B57"
24470
24470
  }),
24471
- deployment$1({
24471
+ deployment$2({
24472
24472
  chainId: ChainId.Zircuit,
24473
24473
  protocol: Protocol.Ocelex,
24474
24474
  variant: "legacy",
24475
24475
  factory: "0x03057ae6294292b299a1863420edD65e0197AFEf"
24476
24476
  }),
24477
- deployment$1({
24477
+ deployment$2({
24478
24478
  chainId: ChainId.Arbitrum,
24479
24479
  protocol: Protocol.Camelot,
24480
24480
  variant: "directional",
24481
24481
  factory: "0x1a3c9B1d2F0529D97f2afC5136Cc23e58f1FD35B"
24482
24482
  }),
24483
- deployment$1({
24483
+ deployment$2({
24484
24484
  chainId: ChainId.Apechain,
24485
24485
  protocol: Protocol.Camelot,
24486
24486
  variant: "directional",
24487
24487
  factory: "0x1a3c9B1d2F0529D97f2afC5136Cc23e58f1FD35B"
24488
24488
  }),
24489
- deployment$1({
24489
+ deployment$2({
24490
24490
  chainId: ChainId.Linea,
24491
24491
  protocol: Protocol.Lynex,
24492
24492
  variant: "legacy",
24493
24493
  factory: "0x622b2c98123D303ae067DB4925CD6282B3A08D0F"
24494
24494
  }),
24495
- deployment$1({
24495
+ deployment$2({
24496
24496
  chainId: ChainId.BSC,
24497
24497
  protocol: Protocol.Thena,
24498
24498
  variant: "legacy",
24499
24499
  factory: "0x306F06C147f064A010530292A1EB6737c3e378e4"
24500
24500
  }),
24501
- deployment$1({
24501
+ deployment$2({
24502
24502
  chainId: ChainId.Metis,
24503
24503
  protocol: Protocol.Hercules,
24504
24504
  variant: "directional",
24505
24505
  factory: "0xC5BfA92f27dF36d268422EE314a1387bB5ffB06A"
24506
24506
  }),
24507
- deployment$1({
24507
+ deployment$2({
24508
24508
  chainId: ChainId.XLayer,
24509
24509
  protocol: Protocol.QuickSwapAlgebra,
24510
24510
  variant: "legacy",
24511
24511
  factory: "0xd2480162Aa7F02Ead7BF4C127465446150D58452"
24512
24512
  }),
24513
- deployment$1({
24513
+ deployment$2({
24514
24514
  chainId: ChainId.Moonbeam,
24515
24515
  protocol: Protocol.StellaSwap,
24516
24516
  variant: "legacy",
24517
24517
  factory: "0xabE1655110112D0E45EF91e94f8d757e4ddBA59C"
24518
24518
  }),
24519
- deployment$1({
24519
+ deployment$2({
24520
24520
  chainId: ChainId.Mode,
24521
24521
  protocol: Protocol.Kim,
24522
24522
  variant: "integral-v1",
24523
24523
  factory: "0xB5F00c2C5f8821155D8ed27E31932CFD9DB3C5D5"
24524
24524
  }),
24525
- deployment$1({
24525
+ deployment$2({
24526
24526
  chainId: ChainId.Base,
24527
24527
  protocol: Protocol.Kim,
24528
24528
  variant: "integral-v1",
24529
24529
  factory: "0x2F0d41f94d5D1550b79A83D2fe85C82d68c5a3ca"
24530
24530
  }),
24531
- deployment$1({
24531
+ deployment$2({
24532
24532
  chainId: ChainId.Telos,
24533
24533
  protocol: Protocol.Swapsicle,
24534
24534
  variant: "integral-v1",
24535
24535
  factory: "0xA09BAbf9A48003ae9b9333966a8Bda94d820D0d9"
24536
24536
  }),
24537
- deployment$1({
24537
+ deployment$2({
24538
24538
  chainId: ChainId.Blast,
24539
24539
  protocol: Protocol.Fenix,
24540
24540
  variant: "integral-v1",
24541
24541
  factory: "0x7a44CD060afC1B6F4c80A2B9b37f4473E74E25Df"
24542
24542
  }),
24543
- deployment$1({
24543
+ deployment$2({
24544
24544
  chainId: ChainId.Taiko,
24545
24545
  protocol: Protocol.Henjin,
24546
24546
  variant: "integral-v1",
24547
24547
  factory: "0x42B08e7a9211482d3643a126a7dF1895448d3509",
24548
24548
  customPoolEntryPoint: "0x441013A52DDedc8D02eB9B90F7A555F6848188b5"
24549
24549
  }),
24550
- deployment$1({
24550
+ deployment$2({
24551
24551
  chainId: ChainId.Sonic,
24552
24552
  protocol: Protocol.SilverSwap,
24553
24553
  variant: "integral-v1",
24554
24554
  factory: "0xb860200BD68dc39cEAfd6ebb82883f189f4CdA76"
24555
24555
  }),
24556
- deployment$1({
24556
+ deployment$2({
24557
24557
  chainId: ChainId.Nibiru,
24558
24558
  protocol: Protocol.SilverSwap,
24559
24559
  variant: "integral-v1",
24560
24560
  factory: "0xb860200BD68dc39cEAfd6ebb82883f189f4CdA76"
24561
24561
  }),
24562
- deployment$1({
24562
+ deployment$2({
24563
24563
  chainId: ChainId.Zeta,
24564
24564
  protocol: Protocol.Beam,
24565
24565
  variant: "integral-v1",
24566
24566
  factory: "0x28b5244B6CA7Cb07f2f7F40edE944c07C2395603"
24567
24567
  }),
24568
- deployment$1({
24568
+ deployment$2({
24569
24569
  chainId: ChainId.Core,
24570
24570
  protocol: Protocol.Glyph,
24571
24571
  variant: "integral-v1",
24572
24572
  factory: "0x74EfE55beA4988e7D92D03EFd8ddB8BF8b7bD597"
24573
24573
  }),
24574
- deployment$1({
24574
+ deployment$2({
24575
24575
  chainId: ChainId.Hyperevm,
24576
24576
  protocol: Protocol.Nest,
24577
24577
  variant: "integral-v1",
24578
24578
  factory: "0xF77Bd082c627aA54591cF2f2EaA811fd1AB3b1F3"
24579
24579
  }),
24580
- deployment$1({
24580
+ deployment$2({
24581
24581
  chainId: ChainId.Soneium,
24582
24582
  protocol: Protocol.QuickSwapIntegral,
24583
24583
  variant: "integral-v2",
24584
24584
  factory: "0x8Ff309F68F6Caf77a78E9C20d2Af7Ed4bE2D7093"
24585
24585
  }),
24586
- deployment$1({
24586
+ deployment$2({
24587
24587
  chainId: ChainId.Base,
24588
24588
  protocol: Protocol.QuickSwapIntegral,
24589
24589
  variant: "integral-v2",
24590
24590
  factory: "0xC5396866754799B9720125B104AE01d935Ab9C7b",
24591
24591
  customPoolEntryPoint: "0xb9ce7698cE3dCf21cc88bf7dCc1fE20C85E4226E"
24592
24592
  }),
24593
- deployment$1({
24593
+ deployment$2({
24594
24594
  chainId: ChainId.Polygon,
24595
24595
  protocol: Protocol.QuickSwapIntegral,
24596
24596
  variant: "integral-v2",
24597
24597
  factory: "0x134c1dBE4860A9cAaf89002574fFe814772D9904",
24598
24598
  customPoolEntryPoint: "0xfcfE065bc131Fa8Bb31A227b2fF4F0EC47D3F1a2"
24599
24599
  }),
24600
- deployment$1({
24600
+ deployment$2({
24601
24601
  chainId: ChainId.Bera,
24602
24602
  protocol: Protocol.Wasabee,
24603
24603
  variant: "integral-v2",
24604
24604
  factory: "0x7d53327D78EFD0b463bd8d7dc938C52402323b95"
24605
24605
  }),
24606
- deployment$1({
24606
+ deployment$2({
24607
24607
  chainId: ChainId.Ronin,
24608
24608
  protocol: Protocol.KatanaIntegral,
24609
24609
  variant: "integral-v2",
24610
24610
  factory: "0x7ecaf729C6FFb04448aA89A722cA370724BF70De"
24611
24611
  }),
24612
- deployment$1({
24612
+ deployment$2({
24613
24613
  chainId: ChainId.Avalanche,
24614
24614
  protocol: Protocol.Blackhole,
24615
24615
  variant: "integral-v2",
24616
24616
  factory: "0x512eb749541B7cf294be882D636218c84a5e9E5F"
24617
24617
  }),
24618
- deployment$1({
24618
+ deployment$2({
24619
24619
  chainId: ChainId.Mainnet,
24620
24620
  protocol: Protocol.Cypher,
24621
24621
  variant: "integral-v2",
24622
24622
  factory: "0xfb8Ed3485EfA29a0e4bed93351dD51B59fC4b0f0",
24623
24623
  customPoolEntryPoint: "0x79616564DB0294ecBa5912f1cE985FD1c11eeF51"
24624
24624
  }),
24625
- deployment$1({
24625
+ deployment$2({
24626
24626
  chainId: ChainId.Flare,
24627
24627
  protocol: Protocol.SparkIntegral,
24628
24628
  variant: "integral-v2",
24629
24629
  factory: "0x805488DaA81c1b9e7C5cE3f1DCeA28F21448EC6A"
24630
24630
  }),
24631
- deployment$1({
24631
+ deployment$2({
24632
24632
  chainId: ChainId.Base,
24633
24633
  protocol: Protocol.Hydrex,
24634
24634
  variant: "integral-v2",
@@ -24661,6 +24661,164 @@ function validateAlgebraLifecycleDeployment(value) {
24661
24661
  return configured;
24662
24662
  }
24663
24663
  //#endregion
24664
+ //#region src/pool-lifecycle/capabilities/aerodrome-slipstream.ts
24665
+ const factoryRegistry = getAddress("0x5C3F18F06CC09CA1910767A34a20F771039E37C0");
24666
+ const voter = getAddress("0x16613524e02aD97edfef371Bc883F2f5D6c480A5");
24667
+ const originalFactory = getAddress("0x5e7BB104d84c7CB9B682AaC2F3d509f5F406809A");
24668
+ function deployment$1(input) {
24669
+ return Object.freeze({
24670
+ supported: true,
24671
+ schemaVersion: 1,
24672
+ family: "aerodrome-slipstream",
24673
+ adapter: "aerodrome-slipstream-factory-v1",
24674
+ version: 1,
24675
+ ...input
24676
+ });
24677
+ }
24678
+ const AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS = Object.freeze([
24679
+ deployment$1({
24680
+ chainId: ChainId.Base,
24681
+ protocol: Protocol.Aerodrome,
24682
+ generation: 1,
24683
+ latest: false,
24684
+ factory: originalFactory,
24685
+ factoryRuntimeCodeHash: "0x7340cf80843bd721bcaefbfc050e38304cb4174c239e6e914e3056f27f39b11c",
24686
+ poolImplementation: getAddress("0xeC8E5342B19977B4eF8892e02D8DAEcfa1315831"),
24687
+ poolImplementationRuntimeCodeHash: "0x772fb5c610b40a122036f544e5b9b5bce6becb19db9524331289d1aaed2d5888",
24688
+ poolProxyRuntimeCodeHash: "0xacd6710f7037ad095b1e4d5f8ee5b2681069cb4dd316e77e4e0cb8f85716a2a1",
24689
+ factoryRegistry,
24690
+ voter,
24691
+ legacyCLFactory: null,
24692
+ sourceVerification: Object.freeze({
24693
+ sourceRevision: "0x4ef07edcf5aaac5c22bcef6718c77e0416e7e472",
24694
+ compilerVersion: "0.7.6+commit.7338295f",
24695
+ optimizer: Object.freeze({
24696
+ enabled: true,
24697
+ runs: 200
24698
+ }),
24699
+ executableRuntimeMatch: true,
24700
+ immutableAnchors: Object.freeze({
24701
+ factoryRegistry,
24702
+ voter,
24703
+ poolImplementation: getAddress("0xeC8E5342B19977B4eF8892e02D8DAEcfa1315831"),
24704
+ legacyCLFactory: null
24705
+ })
24706
+ }),
24707
+ provenance: Object.freeze({
24708
+ source: "official-deployment",
24709
+ urls: Object.freeze([
24710
+ "https://github.com/aerodrome-finance/slipstream/commit/37eead2c7e5302a204dec78bfa0775bbb8ff48a2",
24711
+ "https://github.com/aerodrome-finance/slipstream/blob/4ef07edcf5aaac5c22bcef6718c77e0416e7e472/contracts/core/CLFactory.sol",
24712
+ "https://github.com/aerodrome-finance/slipstream/blob/4ef07edcf5aaac5c22bcef6718c77e0416e7e472/contracts/core/CLPool.sol",
24713
+ "https://basescan.org/address/0x5e7BB104d84c7CB9B682AaC2F3d509f5F406809A#code"
24714
+ ])
24715
+ })
24716
+ }),
24717
+ deployment$1({
24718
+ chainId: ChainId.Base,
24719
+ protocol: Protocol.AerodromeV2,
24720
+ generation: 2,
24721
+ latest: false,
24722
+ factory: getAddress("0xaDe65c38CD4849aDBA595a4323a8C7DdfE89716a"),
24723
+ factoryRuntimeCodeHash: "0x0e72100f63ce8e32c95370fa9636d38c8cf434a820f2a7a69985e50930d2cb85",
24724
+ poolImplementation: getAddress("0x942e97a4c6FdC38B4CD1c0298D37d81fDD8E5A16"),
24725
+ poolImplementationRuntimeCodeHash: "0x916bc5496cc07ea86289bc3a08a90f93dcae34686be6634f6e89ef260c3df4fa",
24726
+ poolProxyRuntimeCodeHash: "0x18308290b554b22918ea53c7e4e49eb871181d182749bf9e3a65ef949d3be808",
24727
+ factoryRegistry,
24728
+ voter,
24729
+ legacyCLFactory: originalFactory,
24730
+ sourceVerification: Object.freeze({
24731
+ sourceRevision: "0xaa539f4cdb59212aaf846cce60f6ac5e9470c157",
24732
+ compilerVersion: "0.7.6+commit.7338295f",
24733
+ optimizer: Object.freeze({
24734
+ enabled: true,
24735
+ runs: 200
24736
+ }),
24737
+ executableRuntimeMatch: true,
24738
+ immutableAnchors: Object.freeze({
24739
+ factoryRegistry,
24740
+ voter,
24741
+ poolImplementation: getAddress("0x942e97a4c6FdC38B4CD1c0298D37d81fDD8E5A16"),
24742
+ legacyCLFactory: originalFactory
24743
+ })
24744
+ }),
24745
+ provenance: Object.freeze({
24746
+ source: "official-deployment",
24747
+ urls: Object.freeze([
24748
+ "https://github.com/aerodrome-finance/slipstream/commit/aa539f4cdb59212aaf846cce60f6ac5e9470c157",
24749
+ "https://github.com/aerodrome-finance/slipstream/blob/aa539f4cdb59212aaf846cce60f6ac5e9470c157/contracts/core/CLFactory.sol",
24750
+ "https://github.com/aerodrome-finance/slipstream/blob/aa539f4cdb59212aaf846cce60f6ac5e9470c157/contracts/core/CLPool.sol",
24751
+ "https://github.com/aerodrome-finance/slipstream/blob/aa539f4cdb59212aaf846cce60f6ac5e9470c157/script/constants/output/DeployCL-Base-Gauge-Caps.json",
24752
+ "https://basescan.org/address/0xaDe65c38CD4849aDBA595a4323a8C7DdfE89716a#code"
24753
+ ])
24754
+ })
24755
+ }),
24756
+ deployment$1({
24757
+ chainId: ChainId.Base,
24758
+ protocol: Protocol.AerodromeV3,
24759
+ generation: 3,
24760
+ latest: true,
24761
+ factory: getAddress("0xf8f2eB4940CFE7d13603DDDD87f123820Fc061Ef"),
24762
+ factoryRuntimeCodeHash: "0x4961963494e47f363617ab9a0f3999a28b33c519e51392952db06350cce700bd",
24763
+ poolImplementation: getAddress("0xc770898522D2A9c8Da7A10D63989b6b58305B665"),
24764
+ poolImplementationRuntimeCodeHash: "0xe63484f408c701770737a3c40e435c8183c66b1663f3a8777ce44dd73aff339b",
24765
+ poolProxyRuntimeCodeHash: "0xad8972486d67a48db1f32f254a4c2f4be28df0b5f399559d1e7cd8fbcfbedc96",
24766
+ factoryRegistry,
24767
+ voter,
24768
+ legacyCLFactory: originalFactory,
24769
+ sourceVerification: Object.freeze({
24770
+ sourceRevision: "0x618c88df58f1fa271e9b3bc6bc476a4c37d068dd",
24771
+ compilerVersion: "0.7.6+commit.7338295f",
24772
+ optimizer: Object.freeze({
24773
+ enabled: true,
24774
+ runs: 200
24775
+ }),
24776
+ executableRuntimeMatch: true,
24777
+ immutableAnchors: Object.freeze({
24778
+ factoryRegistry,
24779
+ voter,
24780
+ poolImplementation: getAddress("0xc770898522D2A9c8Da7A10D63989b6b58305B665"),
24781
+ legacyCLFactory: originalFactory
24782
+ })
24783
+ }),
24784
+ provenance: Object.freeze({
24785
+ source: "official-deployment",
24786
+ urls: Object.freeze([
24787
+ "https://github.com/aerodrome-finance/slipstream/commit/618c88df58f1fa271e9b3bc6bc476a4c37d068dd",
24788
+ "https://github.com/aerodrome-finance/slipstream/blob/618c88df58f1fa271e9b3bc6bc476a4c37d068dd/contracts/core/CLFactory.sol",
24789
+ "https://github.com/aerodrome-finance/slipstream/blob/618c88df58f1fa271e9b3bc6bc476a4c37d068dd/contracts/core/CLPool.sol",
24790
+ "https://github.com/aerodrome-finance/slipstream/blob/618c88df58f1fa271e9b3bc6bc476a4c37d068dd/script/constants/output/DeployCL-Base-MinUnstake.json",
24791
+ "https://basescan.org/address/0xf8f2eB4940CFE7d13603DDDD87f123820Fc061Ef#code"
24792
+ ])
24793
+ })
24794
+ })
24795
+ ]);
24796
+ const registry = buildCheckedRegistry(AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS, (item) => `${item.chainId}:${item.protocol}`, "Aerodrome Slipstream lifecycle deployment");
24797
+ function resolveAerodromeSlipstreamLifecycleDeployment(params) {
24798
+ return registry[`${params.chainId}:${params.protocol}`];
24799
+ }
24800
+ /** Resolve the only factory generation that is eligible for a new pool deployment. */
24801
+ function resolveLatestAerodromeSlipstreamLifecycleDeployment(chainId) {
24802
+ return AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS.find((item) => item.chainId === chainId && item.latest);
24803
+ }
24804
+ function assertLatestAerodromeSlipstreamLifecycleDeployment(value) {
24805
+ const configured = validateAerodromeSlipstreamLifecycleDeployment(value);
24806
+ if (!configured.latest) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `Aerodrome Slipstream generation ${configured.generation} is read/verification-only; new pools must use the latest generation.`);
24807
+ return configured;
24808
+ }
24809
+ /** Reject mutable or forged deployment metadata at every public boundary. */
24810
+ function validateAerodromeSlipstreamLifecycleDeployment(value) {
24811
+ const candidate = value;
24812
+ const configured = typeof candidate?.chainId === "number" && typeof candidate.protocol === "string" ? resolveAerodromeSlipstreamLifecycleDeployment({
24813
+ chainId: candidate.chainId,
24814
+ protocol: candidate.protocol
24815
+ }) : void 0;
24816
+ try {
24817
+ if (configured && candidate.supported === true && candidate.schemaVersion === configured.schemaVersion && candidate.family === configured.family && candidate.adapter === configured.adapter && candidate.version === configured.version && candidate.generation === configured.generation && candidate.latest === configured.latest && getAddress(candidate.factory) === configured.factory && candidate.factoryRuntimeCodeHash === configured.factoryRuntimeCodeHash && getAddress(candidate.poolImplementation) === configured.poolImplementation && candidate.poolImplementationRuntimeCodeHash === configured.poolImplementationRuntimeCodeHash && candidate.poolProxyRuntimeCodeHash === configured.poolProxyRuntimeCodeHash && getAddress(candidate.factoryRegistry) === configured.factoryRegistry && getAddress(candidate.voter) === configured.voter && (configured.legacyCLFactory === null ? candidate.legacyCLFactory === null : getAddress(candidate.legacyCLFactory) === configured.legacyCLFactory)) return configured;
24818
+ } catch {}
24819
+ throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `Aerodrome Slipstream lifecycle deployment is not configured for chain ${String(candidate?.chainId)} and protocol ${String(candidate?.protocol)}.`);
24820
+ }
24821
+ //#endregion
24664
24822
  //#region src/pool-lifecycle/capabilities/v3.ts
24665
24823
  const STANDARD_V3_POOL_INIT_CODE_HASH = "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";
24666
24824
  const SDK_CONFIG_ROOT = "https://github.com/SteerProtocol/sdk/blob/2dfaa0ee00bb80be684206f73e67b8d35f8ce9ff/src/const/amm/configs/protocols";
@@ -25340,7 +25498,8 @@ function buildLifecycleRegistry() {
25340
25498
  return buildCheckedRegistry([
25341
25499
  ...Object.values(V3_LIFECYCLE_DEPLOYMENTS).filter((deployment) => deployment !== void 0),
25342
25500
  ...CURRENT_V4_LIFECYCLE_DEPLOYMENTS,
25343
- ...ALGEBRA_LIFECYCLE_DEPLOYMENTS
25501
+ ...ALGEBRA_LIFECYCLE_DEPLOYMENTS,
25502
+ ...AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS
25344
25503
  ], deploymentKey, "pool lifecycle deployment");
25345
25504
  }
25346
25505
  /**
@@ -25409,6 +25568,29 @@ const algebraIntegralPoolStateAbi = parseAbi(["function globalState() view retur
25409
25568
  */
25410
25569
  const algebraCustomPoolEntryPointAbi = parseAbi(["function factory() view returns (address)", "function createCustomPool(address deployer,address creator,address tokenA,address tokenB,bytes data) returns (address customPool)"]);
25411
25570
  //#endregion
25571
+ //#region src/pool-lifecycle/abis/aerodrome-slipstream.ts
25572
+ /** Exact Base Aerodrome Slipstream CLFactory lifecycle surface. */
25573
+ const aerodromeSlipstreamFactoryAbi = parseAbi([
25574
+ "event PoolCreated(address indexed token0,address indexed token1,int24 indexed tickSpacing,address pool)",
25575
+ "function getPool(address tokenA,address tokenB,int24 tickSpacing) view returns (address pool)",
25576
+ "function tickSpacingToFee(int24 tickSpacing) view returns (uint24 fee)",
25577
+ "function poolImplementation() view returns (address)",
25578
+ "function factoryRegistry() view returns (address)",
25579
+ "function voter() view returns (address)",
25580
+ "function legacyCLFactory() view returns (address)",
25581
+ "function isPool(address pool) view returns (bool)",
25582
+ "function createPool(address tokenA,address tokenB,int24 tickSpacing,uint160 sqrtPriceX96) returns (address pool)"
25583
+ ]);
25584
+ /** Exact Aerodrome Slipstream CLPool lifecycle read and event surface. */
25585
+ const aerodromeSlipstreamPoolAbi = parseAbi([
25586
+ "event Initialize(uint160 sqrtPriceX96,int24 tick)",
25587
+ "function factory() view returns (address)",
25588
+ "function token0() view returns (address)",
25589
+ "function token1() view returns (address)",
25590
+ "function tickSpacing() view returns (int24)",
25591
+ "function slot0() view returns (uint160 sqrtPriceX96,int24 tick,uint16 observationIndex,uint16 observationCardinality,uint16 observationCardinalityNext,bool unlocked)"
25592
+ ]);
25593
+ //#endregion
25412
25594
  //#region src/pool-lifecycle/abis/v3.ts
25413
25595
  /** Minimal canonical Uniswap V3-compatible factory ABI used by pool lifecycle flows. */
25414
25596
  const v3FactoryAbi = [
@@ -25682,8 +25864,8 @@ function assertAlgebraInitialPrice(key, price) {
25682
25864
  }
25683
25865
  //#endregion
25684
25866
  //#region src/pool-lifecycle/algebra/inspect.ts
25685
- const ZERO = getAddress("0x0000000000000000000000000000000000000000");
25686
- async function requireCode(client, address, label, blockNumber) {
25867
+ const ZERO$2 = getAddress("0x0000000000000000000000000000000000000000");
25868
+ async function requireCode$1(client, address, label, blockNumber) {
25687
25869
  const code = await client.getCode({
25688
25870
  address,
25689
25871
  blockNumber
@@ -25699,7 +25881,7 @@ async function inspectAlgebraCustomPoolEntryPoint(params) {
25699
25881
  const blockNumber = params.blockNumber ?? await params.publicClient.getBlockNumber();
25700
25882
  const entryPoint = deployment.customPoolEntryPoint;
25701
25883
  const factory = deployment.factory;
25702
- await requireCode(params.publicClient, entryPoint, "Algebra custom pool entry point", blockNumber);
25884
+ await requireCode$1(params.publicClient, entryPoint, "Algebra custom pool entry point", blockNumber);
25703
25885
  const entryFactory = getAddress(await params.publicClient.readContract({
25704
25886
  address: entryPoint,
25705
25887
  abi: algebraCustomPoolEntryPointAbi,
@@ -25722,9 +25904,9 @@ async function inspectAlgebraPool(params) {
25722
25904
  const blockNumber = params.blockNumber ?? await publicClient.getBlockNumber();
25723
25905
  const factory = getAddress(deployment.factory);
25724
25906
  await Promise.all([
25725
- requireCode(publicClient, factory, "Algebra factory", blockNumber),
25726
- requireCode(publicClient, key.token0, "token0", blockNumber),
25727
- requireCode(publicClient, key.token1, "token1", blockNumber)
25907
+ requireCode$1(publicClient, factory, "Algebra factory", blockNumber),
25908
+ requireCode$1(publicClient, key.token0, "token0", blockNumber),
25909
+ requireCode$1(publicClient, key.token1, "token1", blockNumber)
25728
25910
  ]);
25729
25911
  const factoryAbi = deployment.createPool === "pair-with-plugin-data" ? algebraIntegralPluginDataFactoryAbi : deployment.variant === "integral-v1" ? algebraIntegralPairFactoryAbi : algebraPairFactoryAbi;
25730
25912
  const [poolRaw, poolDeployerRaw] = await Promise.all([publicClient.readContract({
@@ -25740,8 +25922,8 @@ async function inspectAlgebraPool(params) {
25740
25922
  blockNumber
25741
25923
  })]);
25742
25924
  const poolDeployer = getAddress(poolDeployerRaw);
25743
- if (poolDeployer === ZERO) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Algebra factory ${factory} reports a zero pool deployer.`);
25744
- await requireCode(publicClient, poolDeployer, "Algebra pool deployer", blockNumber);
25925
+ if (poolDeployer === ZERO$2) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Algebra factory ${factory} reports a zero pool deployer.`);
25926
+ await requireCode$1(publicClient, poolDeployer, "Algebra pool deployer", blockNumber);
25745
25927
  let defaultTickSpacing = null;
25746
25928
  let defaultFee = null;
25747
25929
  if (deployment.variant === "integral-v1") {
@@ -25770,7 +25952,7 @@ async function inspectAlgebraPool(params) {
25770
25952
  }
25771
25953
  if (defaultTickSpacing !== null && (!Number.isInteger(defaultTickSpacing) || defaultTickSpacing <= 0)) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Algebra factory ${factory} reports invalid default tick spacing.`);
25772
25954
  const poolAddress = getAddress(poolRaw);
25773
- if (poolAddress === ZERO) return {
25955
+ if (poolAddress === ZERO$2) return {
25774
25956
  schemaVersion: 1,
25775
25957
  blockNumber,
25776
25958
  deployment,
@@ -25786,7 +25968,7 @@ async function inspectAlgebraPool(params) {
25786
25968
  pluginConfig: null,
25787
25969
  unlocked: null
25788
25970
  };
25789
- await requireCode(publicClient, poolAddress, "Algebra pool", blockNumber);
25971
+ await requireCode$1(publicClient, poolAddress, "Algebra pool", blockNumber);
25790
25972
  const [actualFactoryRaw, token0Raw, token1Raw, tickSpacingRaw] = await Promise.all([
25791
25973
  publicClient.readContract({
25792
25974
  address: poolAddress,
@@ -25854,7 +26036,7 @@ async function inspectAlgebraPool(params) {
25854
26036
  pluginConfig = Number(state[3]);
25855
26037
  unlocked = state[5];
25856
26038
  const pluginAddress = getAddress(pluginRaw);
25857
- plugin = pluginAddress === ZERO ? null : pluginAddress;
26039
+ plugin = pluginAddress === ZERO$2 ? null : pluginAddress;
25858
26040
  } else {
25859
26041
  const state = await publicClient.readContract({
25860
26042
  address: poolAddress,
@@ -26028,29 +26210,29 @@ async function prepareAlgebraPool(params) {
26028
26210
  }
26029
26211
  //#endregion
26030
26212
  //#region src/pool-lifecycle/algebra/types.ts
26031
- function invalid$1(message) {
26213
+ function invalid$2(message) {
26032
26214
  throw new PoolLifecycleError("INVALID_INPUT", message);
26033
26215
  }
26034
- function record$1(value, label) {
26035
- if (!value || typeof value !== "object" || Array.isArray(value)) return invalid$1(`${label} must be an object.`);
26216
+ function record$2(value, label) {
26217
+ if (!value || typeof value !== "object" || Array.isArray(value)) return invalid$2(`${label} must be an object.`);
26036
26218
  return value;
26037
26219
  }
26038
26220
  function address$1(value, label, nullable = false) {
26039
26221
  if (nullable && value === null) return null;
26040
- if (typeof value !== "string" || !isAddress(value, { strict: true })) return invalid$1(`${label} must be a valid address.`);
26222
+ if (typeof value !== "string" || !isAddress(value, { strict: true })) return invalid$2(`${label} must be a valid address.`);
26041
26223
  const result = getAddress(value);
26042
- if (result === "0x0000000000000000000000000000000000000000") return invalid$1(`${label} must not be zero.`);
26224
+ if (result === "0x0000000000000000000000000000000000000000") return invalid$2(`${label} must not be zero.`);
26043
26225
  return result;
26044
26226
  }
26045
- function hex(value, label) {
26046
- if (typeof value !== "string" || !/^0x(?:[0-9a-fA-F]{2})*$/.test(value)) return invalid$1(`${label} must be hex bytes.`);
26227
+ function hex$1(value, label) {
26228
+ if (typeof value !== "string" || !/^0x(?:[0-9a-fA-F]{2})*$/.test(value)) return invalid$2(`${label} must be hex bytes.`);
26047
26229
  return value;
26048
26230
  }
26049
26231
  function key(value) {
26050
- const item = record$1(value, "Algebra key");
26232
+ const item = record$2(value, "Algebra key");
26051
26233
  const token0 = address$1(item.token0, "Algebra token0");
26052
26234
  const token1 = address$1(item.token1, "Algebra token1");
26053
- if (BigInt(token0) >= BigInt(token1)) return invalid$1("Algebra tokens must be canonically ordered and distinct.");
26235
+ if (BigInt(token0) >= BigInt(token1)) return invalid$2("Algebra tokens must be canonically ordered and distinct.");
26054
26236
  return {
26055
26237
  token0,
26056
26238
  token1
@@ -26058,30 +26240,30 @@ function key(value) {
26058
26240
  }
26059
26241
  /** Re-derive target and calldata after a plan crosses a UI/CLI/JSON boundary. */
26060
26242
  function validatePreparedAlgebraPoolAction(value) {
26061
- const action = record$1(value, "Prepared Algebra action");
26062
- if (action.schemaVersion !== 1 || action.kind !== "algebra-create" && action.kind !== "algebra-initialize") return invalid$1("Prepared Algebra action kind or schema version is unsupported.");
26063
- if (typeof action.protocol !== "string") return invalid$1("Algebra action protocol must be a string.");
26064
- const tx = record$1(action.transaction, "Algebra transaction");
26065
- if (!Number.isSafeInteger(tx.chainId) || Number(tx.chainId) <= 0) return invalid$1("Algebra chainId must be a positive safe integer.");
26066
- if (tx.value !== 0n) return invalid$1("Algebra lifecycle transactions must have zero value.");
26243
+ const action = record$2(value, "Prepared Algebra action");
26244
+ if (action.schemaVersion !== 1 || action.kind !== "algebra-create" && action.kind !== "algebra-initialize") return invalid$2("Prepared Algebra action kind or schema version is unsupported.");
26245
+ if (typeof action.protocol !== "string") return invalid$2("Algebra action protocol must be a string.");
26246
+ const tx = record$2(action.transaction, "Algebra transaction");
26247
+ if (!Number.isSafeInteger(tx.chainId) || Number(tx.chainId) <= 0) return invalid$2("Algebra chainId must be a positive safe integer.");
26248
+ if (tx.value !== 0n) return invalid$2("Algebra lifecycle transactions must have zero value.");
26067
26249
  const to = address$1(tx.to, "Algebra transaction target");
26068
- const data = hex(tx.data, "Algebra calldata");
26250
+ const data = hex$1(tx.data, "Algebra calldata");
26069
26251
  const deployment = resolveAlgebraLifecycleDeployment({
26070
26252
  chainId: Number(tx.chainId),
26071
26253
  protocol: action.protocol
26072
26254
  });
26073
26255
  if (!deployment) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `No Algebra lifecycle deployment is configured for chain ${tx.chainId} and protocol ${action.protocol}.`);
26074
- const identity = record$1(action.identity, "Algebra identity");
26256
+ const identity = record$2(action.identity, "Algebra identity");
26075
26257
  const poolKey = key(identity.key);
26076
- if (identity.family !== "algebra" || identity.adapter !== deployment.adapter || identity.version !== deployment.version || identity.variant !== deployment.variant || identity.chainId !== deployment.chainId || address$1(identity.factory, "Algebra identity factory") !== getAddress(deployment.factory)) return invalid$1("Algebra identity does not match the configured deployment.");
26077
- const expected = record$1(action.expected, "Algebra expectation");
26078
- const preflight = record$1(action.preflight, "Algebra preflight");
26079
- if (typeof preflight.blockNumber !== "bigint" || preflight.blockNumber < 0n) return invalid$1("Algebra preflight blockNumber must be a non-negative bigint.");
26258
+ if (identity.family !== "algebra" || identity.adapter !== deployment.adapter || identity.version !== deployment.version || identity.variant !== deployment.variant || identity.chainId !== deployment.chainId || address$1(identity.factory, "Algebra identity factory") !== getAddress(deployment.factory)) return invalid$2("Algebra identity does not match the configured deployment.");
26259
+ const expected = record$2(action.expected, "Algebra expectation");
26260
+ const preflight = record$2(action.preflight, "Algebra preflight");
26261
+ if (typeof preflight.blockNumber !== "bigint" || preflight.blockNumber < 0n) return invalid$2("Algebra preflight blockNumber must be a non-negative bigint.");
26080
26262
  let expectedTo;
26081
26263
  let expectedData;
26082
26264
  if (action.kind === "algebra-create") {
26083
- if (identity.poolAddress !== null || expected.sqrtPriceX96 !== null || preflight.status !== "absent" || preflight.poolAddress !== null || preflight.sqrtPriceX96 !== 0n) return invalid$1("Algebra create cannot bind an existing pool or price.");
26084
- const pluginData = hex(expected.pluginData, "Algebra plugin data");
26265
+ if (identity.poolAddress !== null || expected.sqrtPriceX96 !== null || preflight.status !== "absent" || preflight.poolAddress !== null || preflight.sqrtPriceX96 !== 0n) return invalid$2("Algebra create cannot bind an existing pool or price.");
26266
+ const pluginData = hex$1(expected.pluginData, "Algebra plugin data");
26085
26267
  expectedTo = getAddress(deployment.factory);
26086
26268
  expectedData = deployment.createPool === "pair-with-plugin-data" ? encodeFunctionData({
26087
26269
  abi: algebraIntegralPluginDataFactoryAbi,
@@ -26098,11 +26280,11 @@ function validatePreparedAlgebraPoolAction(value) {
26098
26280
  });
26099
26281
  } else {
26100
26282
  const pool = address$1(identity.poolAddress, "Algebra pool address");
26101
- if (expected.pluginData !== null || typeof expected.sqrtPriceX96 !== "bigint" || preflight.status !== "uninitialized" || address$1(preflight.poolAddress, "Algebra preflight pool") !== pool || preflight.sqrtPriceX96 !== 0n) return invalid$1("Algebra initialize expectation is invalid.");
26283
+ if (expected.pluginData !== null || typeof expected.sqrtPriceX96 !== "bigint" || preflight.status !== "uninitialized" || address$1(preflight.poolAddress, "Algebra preflight pool") !== pool || preflight.sqrtPriceX96 !== 0n) return invalid$2("Algebra initialize expectation is invalid.");
26102
26284
  try {
26103
26285
  validateSqrtPriceX96(expected.sqrtPriceX96);
26104
26286
  } catch (error) {
26105
- return invalid$1(error instanceof Error ? error.message : "Invalid Algebra price.");
26287
+ return invalid$2(error instanceof Error ? error.message : "Invalid Algebra price.");
26106
26288
  }
26107
26289
  expectedTo = pool;
26108
26290
  expectedData = encodeFunctionData({
@@ -26111,7 +26293,7 @@ function validatePreparedAlgebraPoolAction(value) {
26111
26293
  args: [expected.sqrtPriceX96]
26112
26294
  });
26113
26295
  }
26114
- if (to !== expectedTo || data.toLowerCase() !== expectedData.toLowerCase()) return invalid$1("Algebra transaction does not match its trusted deployment and expectation.");
26296
+ if (to !== expectedTo || data.toLowerCase() !== expectedData.toLowerCase()) return invalid$2("Algebra transaction does not match its trusted deployment and expectation.");
26115
26297
  return deployment;
26116
26298
  }
26117
26299
  function deserializePreparedAlgebraPoolAction(serialized) {
@@ -26389,6 +26571,528 @@ async function verifyAlgebraPoolAction(params) {
26389
26571
  }
26390
26572
  }
26391
26573
  //#endregion
26574
+ //#region src/pool-lifecycle/aerodrome-slipstream/key.ts
26575
+ function canonicalizeAerodromeSlipstreamPoolKey(key) {
26576
+ let tokenA;
26577
+ let tokenB;
26578
+ try {
26579
+ tokenA = getAddress(key.tokenA);
26580
+ tokenB = getAddress(key.tokenB);
26581
+ } catch {
26582
+ throw new PoolLifecycleError("INVALID_INPUT", "Slipstream pool tokens must be valid addresses.");
26583
+ }
26584
+ if (tokenA === tokenB || tokenA === "0x0000000000000000000000000000000000000000" || tokenB === "0x0000000000000000000000000000000000000000") throw new PoolLifecycleError("INVALID_INPUT", "Slipstream pool tokens must be distinct non-zero addresses.");
26585
+ if (!Number.isSafeInteger(key.tickSpacing) || key.tickSpacing <= 0 || key.tickSpacing >= 16384) throw new PoolLifecycleError("INVALID_INPUT", "Slipstream tick spacing must be an int24 between 1 and 16383.");
26586
+ return BigInt(tokenA) < BigInt(tokenB) ? {
26587
+ token0: tokenA,
26588
+ token1: tokenB,
26589
+ tickSpacing: key.tickSpacing
26590
+ } : {
26591
+ token0: tokenB,
26592
+ token1: tokenA,
26593
+ tickSpacing: key.tickSpacing
26594
+ };
26595
+ }
26596
+ function assertAerodromeSlipstreamInitialPrice(value) {
26597
+ if (typeof value !== "bigint" || value <= 0n || value >= 1n << 160n) throw new PoolLifecycleError("INVALID_INPUT", "Slipstream sqrtPriceX96 must be a non-zero uint160.");
26598
+ return value;
26599
+ }
26600
+ //#endregion
26601
+ //#region src/pool-lifecycle/aerodrome-slipstream/types.ts
26602
+ function invalid$1(message) {
26603
+ throw new PoolLifecycleError("INVALID_INPUT", message);
26604
+ }
26605
+ function record$1(value, label) {
26606
+ if (!value || typeof value !== "object" || Array.isArray(value)) return invalid$1(`${label} must be an object.`);
26607
+ return value;
26608
+ }
26609
+ function nonZeroAddress(value, label) {
26610
+ if (typeof value !== "string" || !isAddress(value, { strict: true })) return invalid$1(`${label} must be a valid address.`);
26611
+ const address = getAddress(value);
26612
+ if (address === "0x0000000000000000000000000000000000000000") return invalid$1(`${label} must not be zero.`);
26613
+ return address;
26614
+ }
26615
+ function hex(value, label) {
26616
+ if (typeof value !== "string" || !/^0x(?:[0-9a-fA-F]{2})*$/.test(value)) return invalid$1(`${label} must be hex bytes.`);
26617
+ return value;
26618
+ }
26619
+ /** Re-derive all trusted calldata after a plan crosses a JSON boundary. */
26620
+ function validatePreparedAerodromeSlipstreamPoolAction(value) {
26621
+ const action = record$1(value, "Prepared Slipstream action");
26622
+ if (action.schemaVersion !== 1 || action.kind !== "aerodrome-slipstream-create-and-initialize" || typeof action.protocol !== "string") return invalid$1("Slipstream action kind, protocol, or schema version is unsupported.");
26623
+ const transaction = record$1(action.transaction, "Slipstream transaction");
26624
+ if (!Number.isSafeInteger(transaction.chainId) || Number(transaction.chainId) <= 0 || transaction.value !== 0n) return invalid$1("Slipstream transaction chainId or value is invalid.");
26625
+ const deployment = resolveAerodromeSlipstreamLifecycleDeployment({
26626
+ chainId: Number(transaction.chainId),
26627
+ protocol: action.protocol
26628
+ });
26629
+ if (!deployment) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", "No Slipstream lifecycle deployment is configured for this action.");
26630
+ const identity = record$1(action.identity, "Slipstream identity");
26631
+ const key = canonicalizeAerodromeSlipstreamPoolKey({
26632
+ tokenA: nonZeroAddress(record$1(identity.key, "Slipstream key").token0, "Slipstream token0"),
26633
+ tokenB: nonZeroAddress(record$1(identity.key, "Slipstream key").token1, "Slipstream token1"),
26634
+ tickSpacing: Number(record$1(identity.key, "Slipstream key").tickSpacing)
26635
+ });
26636
+ if (identity.family !== deployment.family || identity.adapter !== deployment.adapter || identity.version !== deployment.version || identity.chainId !== deployment.chainId || nonZeroAddress(identity.factory, "Slipstream factory") !== deployment.factory || identity.poolAddress !== null) return invalid$1("Slipstream identity does not match the configured deployment.");
26637
+ const sqrtPriceX96 = assertAerodromeSlipstreamInitialPrice(record$1(action.expected, "Slipstream expectation").sqrtPriceX96);
26638
+ const preflight = record$1(action.preflight, "Slipstream preflight");
26639
+ if (typeof preflight.blockNumber !== "bigint" || preflight.blockNumber < 0n || preflight.status !== "absent" || preflight.poolAddress !== null) return invalid$1("Slipstream action must be bound to an absent pool preflight.");
26640
+ const expectedData = encodeFunctionData({
26641
+ abi: aerodromeSlipstreamFactoryAbi,
26642
+ functionName: "createPool",
26643
+ args: [
26644
+ key.token0,
26645
+ key.token1,
26646
+ key.tickSpacing,
26647
+ sqrtPriceX96
26648
+ ]
26649
+ });
26650
+ if (nonZeroAddress(transaction.to, "Slipstream transaction target") !== deployment.factory || hex(transaction.data, "Slipstream transaction calldata").toLowerCase() !== expectedData.toLowerCase()) return invalid$1("Slipstream transaction does not match its trusted deployment and expectation.");
26651
+ return deployment;
26652
+ }
26653
+ function deserializePreparedAerodromeSlipstreamPoolAction(serialized) {
26654
+ const action = deserializePreparedPoolAction(serialized);
26655
+ validatePreparedAerodromeSlipstreamPoolAction(action);
26656
+ return action;
26657
+ }
26658
+ //#endregion
26659
+ //#region src/pool-lifecycle/aerodrome-slipstream/inspect.ts
26660
+ const ZERO$1 = getAddress("0x0000000000000000000000000000000000000000");
26661
+ async function requireRuntimeHash(client, address, expected, label, blockNumber) {
26662
+ const code = await client.getCode({
26663
+ address,
26664
+ blockNumber
26665
+ });
26666
+ if (!code || code === "0x") throw new PoolLifecycleError("CONTRACT_NOT_DEPLOYED", `${label} ${address} has no bytecode at block ${blockNumber}.`);
26667
+ if (keccak256(code) !== expected) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `${label} ${address} runtime hash does not match the configured deployment.`);
26668
+ }
26669
+ async function requireCode(client, address, label, blockNumber) {
26670
+ const code = await client.getCode({
26671
+ address,
26672
+ blockNumber
26673
+ });
26674
+ if (!code || code === "0x") throw new PoolLifecycleError("CONTRACT_NOT_DEPLOYED", `${label} ${address} has no bytecode at block ${blockNumber}.`);
26675
+ }
26676
+ async function inspectAerodromeSlipstreamPool(params) {
26677
+ const deployment = validateAerodromeSlipstreamLifecycleDeployment(params.deployment);
26678
+ const key = canonicalizeAerodromeSlipstreamPoolKey(params.key);
26679
+ if (await params.publicClient.getChainId() !== deployment.chainId) throw new PoolLifecycleError("CHAIN_MISMATCH", `Public client chain does not match Slipstream deployment chain ${deployment.chainId}.`);
26680
+ const blockNumber = params.blockNumber ?? await params.publicClient.getBlockNumber();
26681
+ await Promise.all([
26682
+ requireRuntimeHash(params.publicClient, deployment.factory, deployment.factoryRuntimeCodeHash, "Slipstream factory", blockNumber),
26683
+ requireRuntimeHash(params.publicClient, deployment.poolImplementation, deployment.poolImplementationRuntimeCodeHash, "Slipstream pool implementation", blockNumber),
26684
+ requireCode(params.publicClient, key.token0, "token0", blockNumber),
26685
+ requireCode(params.publicClient, key.token1, "token1", blockNumber)
26686
+ ]);
26687
+ const [implementation, factoryRegistry, voter, enabledFee, pool, legacyCLFactory] = await Promise.all([
26688
+ params.publicClient.readContract({
26689
+ address: deployment.factory,
26690
+ abi: aerodromeSlipstreamFactoryAbi,
26691
+ functionName: "poolImplementation",
26692
+ blockNumber
26693
+ }),
26694
+ params.publicClient.readContract({
26695
+ address: deployment.factory,
26696
+ abi: aerodromeSlipstreamFactoryAbi,
26697
+ functionName: "factoryRegistry",
26698
+ blockNumber
26699
+ }),
26700
+ params.publicClient.readContract({
26701
+ address: deployment.factory,
26702
+ abi: aerodromeSlipstreamFactoryAbi,
26703
+ functionName: "voter",
26704
+ blockNumber
26705
+ }),
26706
+ params.publicClient.readContract({
26707
+ address: deployment.factory,
26708
+ abi: aerodromeSlipstreamFactoryAbi,
26709
+ functionName: "tickSpacingToFee",
26710
+ args: [key.tickSpacing],
26711
+ blockNumber
26712
+ }),
26713
+ params.publicClient.readContract({
26714
+ address: deployment.factory,
26715
+ abi: aerodromeSlipstreamFactoryAbi,
26716
+ functionName: "getPool",
26717
+ args: [
26718
+ key.token0,
26719
+ key.token1,
26720
+ key.tickSpacing
26721
+ ],
26722
+ blockNumber
26723
+ }),
26724
+ deployment.legacyCLFactory === null ? Promise.resolve(null) : params.publicClient.readContract({
26725
+ address: deployment.factory,
26726
+ abi: aerodromeSlipstreamFactoryAbi,
26727
+ functionName: "legacyCLFactory",
26728
+ blockNumber
26729
+ })
26730
+ ]);
26731
+ if (getAddress(implementation) !== deployment.poolImplementation || getAddress(factoryRegistry) !== deployment.factoryRegistry || getAddress(voter) !== deployment.voter || deployment.legacyCLFactory !== null && getAddress(legacyCLFactory) !== deployment.legacyCLFactory) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", "Slipstream factory immutable deployment references do not match configuration.");
26732
+ const fee = Number(enabledFee);
26733
+ if (!Number.isSafeInteger(fee) || fee <= 0) throw new PoolLifecycleError("INVALID_INPUT", `Slipstream tick spacing ${key.tickSpacing} is not enabled.`);
26734
+ const poolAddress = getAddress(pool);
26735
+ if (poolAddress === ZERO$1) return {
26736
+ schemaVersion: 1,
26737
+ blockNumber,
26738
+ deployment,
26739
+ key,
26740
+ enabledFee: fee,
26741
+ status: "absent",
26742
+ poolAddress: null,
26743
+ sqrtPriceX96: 0n,
26744
+ tick: null
26745
+ };
26746
+ const [isPool, actualFactory, token0, token1, tickSpacing, slot0] = await Promise.all([
26747
+ params.publicClient.readContract({
26748
+ address: deployment.factory,
26749
+ abi: aerodromeSlipstreamFactoryAbi,
26750
+ functionName: "isPool",
26751
+ args: [poolAddress],
26752
+ blockNumber
26753
+ }),
26754
+ params.publicClient.readContract({
26755
+ address: poolAddress,
26756
+ abi: aerodromeSlipstreamPoolAbi,
26757
+ functionName: "factory",
26758
+ blockNumber
26759
+ }),
26760
+ params.publicClient.readContract({
26761
+ address: poolAddress,
26762
+ abi: aerodromeSlipstreamPoolAbi,
26763
+ functionName: "token0",
26764
+ blockNumber
26765
+ }),
26766
+ params.publicClient.readContract({
26767
+ address: poolAddress,
26768
+ abi: aerodromeSlipstreamPoolAbi,
26769
+ functionName: "token1",
26770
+ blockNumber
26771
+ }),
26772
+ params.publicClient.readContract({
26773
+ address: poolAddress,
26774
+ abi: aerodromeSlipstreamPoolAbi,
26775
+ functionName: "tickSpacing",
26776
+ blockNumber
26777
+ }),
26778
+ params.publicClient.readContract({
26779
+ address: poolAddress,
26780
+ abi: aerodromeSlipstreamPoolAbi,
26781
+ functionName: "slot0",
26782
+ blockNumber
26783
+ })
26784
+ ]);
26785
+ await requireRuntimeHash(params.publicClient, poolAddress, deployment.poolProxyRuntimeCodeHash, "Slipstream pool proxy", blockNumber);
26786
+ if (!isPool || getAddress(actualFactory) !== deployment.factory || getAddress(token0) !== key.token0 || getAddress(token1) !== key.token1 || Number(tickSpacing) !== key.tickSpacing || slot0[0] === 0n) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Slipstream pool ${poolAddress} does not match the configured factory, key, or initialized state.`);
26787
+ return {
26788
+ schemaVersion: 1,
26789
+ blockNumber,
26790
+ deployment,
26791
+ key,
26792
+ enabledFee: fee,
26793
+ status: "initialized",
26794
+ poolAddress,
26795
+ sqrtPriceX96: slot0[0],
26796
+ tick: Number(slot0[1])
26797
+ };
26798
+ }
26799
+ //#endregion
26800
+ //#region src/pool-lifecycle/aerodrome-slipstream/actions.ts
26801
+ function assertAbsentPreflight(deployment, key, preflight) {
26802
+ if (preflight.schemaVersion !== 1 || preflight.deployment !== deployment || preflight.key.token0 !== key.token0 || preflight.key.token1 !== key.token1 || preflight.key.tickSpacing !== key.tickSpacing || preflight.status !== "absent" || preflight.poolAddress !== null || preflight.sqrtPriceX96 !== 0n || preflight.tick !== null) throw new PoolLifecycleError("INVALID_INPUT", "Slipstream preflight does not prove this pool key is absent.");
26803
+ }
26804
+ function buildAerodromeSlipstreamCreateAndInitializeTransaction(params) {
26805
+ const deployment = assertLatestAerodromeSlipstreamLifecycleDeployment(params.deployment);
26806
+ const key = canonicalizeAerodromeSlipstreamPoolKey(params.key);
26807
+ const sqrtPriceX96 = assertAerodromeSlipstreamInitialPrice(params.initialPrice);
26808
+ assertAbsentPreflight(deployment, key, params.preflight);
26809
+ return {
26810
+ schemaVersion: 1,
26811
+ kind: "aerodrome-slipstream-create-and-initialize",
26812
+ protocol: deployment.protocol,
26813
+ transaction: {
26814
+ chainId: deployment.chainId,
26815
+ to: deployment.factory,
26816
+ data: encodeFunctionData({
26817
+ abi: aerodromeSlipstreamFactoryAbi,
26818
+ functionName: "createPool",
26819
+ args: [
26820
+ key.token0,
26821
+ key.token1,
26822
+ key.tickSpacing,
26823
+ sqrtPriceX96
26824
+ ]
26825
+ }),
26826
+ value: 0n
26827
+ },
26828
+ identity: {
26829
+ family: deployment.family,
26830
+ adapter: deployment.adapter,
26831
+ version: deployment.version,
26832
+ chainId: deployment.chainId,
26833
+ factory: getAddress(deployment.factory),
26834
+ key,
26835
+ poolAddress: null
26836
+ },
26837
+ expected: { sqrtPriceX96 },
26838
+ preflight: {
26839
+ blockNumber: params.preflight.blockNumber,
26840
+ status: "absent",
26841
+ poolAddress: null
26842
+ }
26843
+ };
26844
+ }
26845
+ async function prepareAerodromeSlipstreamPool(params) {
26846
+ const deployment = assertLatestAerodromeSlipstreamLifecycleDeployment(params.deployment);
26847
+ const snapshot = await inspectAerodromeSlipstreamPool({
26848
+ ...params,
26849
+ deployment
26850
+ });
26851
+ const sqrtPriceX96 = assertAerodromeSlipstreamInitialPrice(params.initialPrice);
26852
+ if (snapshot.status === "absent") return {
26853
+ status: "ready",
26854
+ snapshot,
26855
+ action: buildAerodromeSlipstreamCreateAndInitializeTransaction({
26856
+ deployment: snapshot.deployment,
26857
+ key: params.key,
26858
+ initialPrice: sqrtPriceX96,
26859
+ preflight: snapshot
26860
+ })
26861
+ };
26862
+ if (snapshot.sqrtPriceX96 !== sqrtPriceX96) throw new PoolLifecycleError("POOL_STATE_MISMATCH", `Slipstream pool ${snapshot.poolAddress} is already initialized at a different price.`);
26863
+ return {
26864
+ status: "already-initialized-matching",
26865
+ snapshot,
26866
+ action: null
26867
+ };
26868
+ }
26869
+ /** Prepare a new pool only through the newest verified factory in this family. */
26870
+ async function prepareLatestAerodromeSlipstreamPool(params) {
26871
+ const deployment = resolveLatestAerodromeSlipstreamLifecycleDeployment(params.chainId);
26872
+ if (!deployment) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `No latest Aerodrome Slipstream lifecycle deployment is configured for chain ${params.chainId}.`);
26873
+ return prepareAerodromeSlipstreamPool({
26874
+ ...params,
26875
+ deployment
26876
+ });
26877
+ }
26878
+ //#endregion
26879
+ //#region src/pool-lifecycle/aerodrome-slipstream/simulate.ts
26880
+ const ZERO = getAddress("0x0000000000000000000000000000000000000000");
26881
+ async function simulateAerodromeSlipstreamPoolAction(params) {
26882
+ if (!isAddress(params.account, { strict: true }) || getAddress(params.account) === ZERO) throw new PoolLifecycleError("INVALID_INPUT", "Simulation account must be a non-zero EVM address.");
26883
+ const deployment = validatePreparedAerodromeSlipstreamPoolAction(params.action);
26884
+ const blockNumber = params.blockNumber ?? await params.publicClient.getBlockNumber();
26885
+ const snapshot = await inspectAerodromeSlipstreamPool({
26886
+ publicClient: params.publicClient,
26887
+ deployment,
26888
+ key: {
26889
+ tokenA: params.action.identity.key.token0,
26890
+ tokenB: params.action.identity.key.token1,
26891
+ tickSpacing: params.action.identity.key.tickSpacing
26892
+ },
26893
+ blockNumber
26894
+ });
26895
+ if (snapshot.status !== "absent") throw new PoolLifecycleError("POOL_STATE_MISMATCH", `Slipstream pool already exists at ${snapshot.poolAddress}; refresh the action.`);
26896
+ try {
26897
+ const request = {
26898
+ account: getAddress(params.account),
26899
+ to: params.action.transaction.to,
26900
+ data: params.action.transaction.data,
26901
+ value: 0n,
26902
+ blockNumber
26903
+ };
26904
+ const [call, gasEstimate] = await Promise.all([params.publicClient.call({
26905
+ ...request,
26906
+ batch: false
26907
+ }), params.publicClient.estimateGas(request)]);
26908
+ if (!call.data || call.data === "0x") throw new PoolLifecycleError("SIMULATION_FAILED", "Slipstream create simulation returned no pool address.");
26909
+ return {
26910
+ transaction: params.action.transaction,
26911
+ blockNumber,
26912
+ returnData: call.data,
26913
+ returnedPoolAddress: getAddress(decodeFunctionResult({
26914
+ abi: aerodromeSlipstreamFactoryAbi,
26915
+ functionName: "createPool",
26916
+ data: call.data
26917
+ })),
26918
+ gasEstimate
26919
+ };
26920
+ } catch (error) {
26921
+ if (error instanceof PoolLifecycleError) throw error;
26922
+ throw new PoolLifecycleError("SIMULATION_FAILED", error instanceof Error ? error.message : "Slipstream action simulation failed.", error);
26923
+ }
26924
+ }
26925
+ //#endregion
26926
+ //#region src/pool-lifecycle/aerodrome-slipstream/verify.ts
26927
+ function assertCanonicalLog(log, receipt) {
26928
+ if (log.transactionHash !== receipt.transactionHash || log.blockHash !== receipt.blockHash || log.blockNumber !== receipt.blockNumber || log.transactionIndex !== receipt.transactionIndex || log.removed !== false) throw new PoolLifecycleError("POOL_STATE_MISMATCH", "Slipstream lifecycle log does not belong to the canonical receipt.");
26929
+ }
26930
+ function decodeAerodromeSlipstreamPoolActionReceipt(action, receipt) {
26931
+ validatePreparedAerodromeSlipstreamPoolAction(action);
26932
+ const created = [];
26933
+ const initialized = [];
26934
+ for (const log of receipt.logs) {
26935
+ if (getAddress(log.address) === action.identity.factory) try {
26936
+ const event = decodeEventLog({
26937
+ abi: aerodromeSlipstreamFactoryAbi,
26938
+ eventName: "PoolCreated",
26939
+ data: log.data,
26940
+ topics: log.topics
26941
+ });
26942
+ if (getAddress(event.args.token0) === action.identity.key.token0 && getAddress(event.args.token1) === action.identity.key.token1 && Number(event.args.tickSpacing) === action.identity.key.tickSpacing) {
26943
+ assertCanonicalLog(log, receipt);
26944
+ created.push({
26945
+ poolAddress: getAddress(event.args.pool),
26946
+ logIndex: log.logIndex
26947
+ });
26948
+ }
26949
+ } catch (error) {
26950
+ if (error instanceof PoolLifecycleError) throw error;
26951
+ }
26952
+ try {
26953
+ const event = decodeEventLog({
26954
+ abi: aerodromeSlipstreamPoolAbi,
26955
+ eventName: "Initialize",
26956
+ data: log.data,
26957
+ topics: log.topics
26958
+ });
26959
+ assertCanonicalLog(log, receipt);
26960
+ initialized.push({
26961
+ poolAddress: getAddress(log.address),
26962
+ sqrtPriceX96: event.args.sqrtPriceX96,
26963
+ tick: Number(event.args.tick),
26964
+ logIndex: log.logIndex
26965
+ });
26966
+ } catch (error) {
26967
+ if (error instanceof PoolLifecycleError) throw error;
26968
+ }
26969
+ }
26970
+ if (created.length > 1 || initialized.length > 1) throw new PoolLifecycleError("POOL_STATE_MISMATCH", "Receipt contains duplicate matching Slipstream lifecycle events.");
26971
+ return {
26972
+ receiptStatus: receipt.status,
26973
+ poolCreated: created[0] ?? null,
26974
+ initialization: initialized[0] ?? null
26975
+ };
26976
+ }
26977
+ async function verifyAerodromeSlipstreamPoolAction(params) {
26978
+ const deployment = validatePreparedAerodromeSlipstreamPoolAction(params.action);
26979
+ let receipt;
26980
+ try {
26981
+ const [chainId, transaction, canonical] = await Promise.all([
26982
+ params.publicClient.getChainId(),
26983
+ params.publicClient.getTransaction({ hash: params.receipt.transactionHash }),
26984
+ params.publicClient.getTransactionReceipt({ hash: params.receipt.transactionHash })
26985
+ ]);
26986
+ if (chainId !== deployment.chainId || canonical.transactionHash !== params.receipt.transactionHash || canonical.blockHash !== params.receipt.blockHash || transaction.to === null || transaction.value !== 0n || getAddress(transaction.to) !== params.action.transaction.to || transaction.input.toLowerCase() !== params.action.transaction.data.toLowerCase()) return {
26987
+ verified: false,
26988
+ outcome: "wrong-deployment",
26989
+ blockNumber: params.receipt.blockNumber,
26990
+ identity: params.action.identity,
26991
+ state: null,
26992
+ evidence: {
26993
+ receiptStatus: params.receipt.status,
26994
+ poolCreated: null,
26995
+ initialization: null
26996
+ },
26997
+ warnings: ["Canonical transaction does not match the prepared Slipstream action."]
26998
+ };
26999
+ receipt = canonical;
27000
+ } catch (error) {
27001
+ return {
27002
+ verified: false,
27003
+ outcome: "verification-unavailable",
27004
+ blockNumber: params.receipt.blockNumber,
27005
+ identity: params.action.identity,
27006
+ state: null,
27007
+ evidence: {
27008
+ receiptStatus: params.receipt.status,
27009
+ poolCreated: null,
27010
+ initialization: null
27011
+ },
27012
+ warnings: [error instanceof Error ? error.message : "Could not load canonical transaction evidence."]
27013
+ };
27014
+ }
27015
+ let evidence;
27016
+ try {
27017
+ evidence = decodeAerodromeSlipstreamPoolActionReceipt(params.action, receipt);
27018
+ } catch (error) {
27019
+ return {
27020
+ verified: false,
27021
+ outcome: "wrong-deployment",
27022
+ blockNumber: receipt.blockNumber,
27023
+ identity: params.action.identity,
27024
+ state: null,
27025
+ evidence: {
27026
+ receiptStatus: receipt.status,
27027
+ poolCreated: null,
27028
+ initialization: null
27029
+ },
27030
+ warnings: [error instanceof Error ? error.message : "Invalid receipt evidence."]
27031
+ };
27032
+ }
27033
+ if (receipt.status === "reverted") return {
27034
+ verified: false,
27035
+ outcome: "reverted",
27036
+ blockNumber: receipt.blockNumber,
27037
+ identity: params.action.identity,
27038
+ state: null,
27039
+ evidence,
27040
+ warnings: []
27041
+ };
27042
+ try {
27043
+ const snapshot = await inspectAerodromeSlipstreamPool({
27044
+ publicClient: params.publicClient,
27045
+ deployment,
27046
+ key: {
27047
+ tokenA: params.action.identity.key.token0,
27048
+ tokenB: params.action.identity.key.token1,
27049
+ tickSpacing: params.action.identity.key.tickSpacing
27050
+ },
27051
+ blockNumber: receipt.blockNumber
27052
+ });
27053
+ const identity = {
27054
+ ...params.action.identity,
27055
+ poolAddress: snapshot.poolAddress
27056
+ };
27057
+ if (!evidence.poolCreated || !evidence.initialization || snapshot.status !== "initialized" || evidence.poolCreated.poolAddress !== snapshot.poolAddress || evidence.initialization.poolAddress !== snapshot.poolAddress || evidence.initialization.sqrtPriceX96 !== params.action.expected.sqrtPriceX96) return {
27058
+ verified: false,
27059
+ outcome: "wrong-deployment",
27060
+ blockNumber: receipt.blockNumber,
27061
+ identity,
27062
+ state: snapshot,
27063
+ evidence,
27064
+ warnings: ["Receipt evidence does not prove the expected atomic Slipstream lifecycle."]
27065
+ };
27066
+ return snapshot.sqrtPriceX96 === params.action.expected.sqrtPriceX96 ? {
27067
+ verified: true,
27068
+ outcome: "created-and-initialized",
27069
+ blockNumber: receipt.blockNumber,
27070
+ identity,
27071
+ state: snapshot,
27072
+ evidence,
27073
+ warnings: []
27074
+ } : {
27075
+ verified: true,
27076
+ outcome: "initialized-then-price-moved",
27077
+ blockNumber: receipt.blockNumber,
27078
+ identity,
27079
+ state: snapshot,
27080
+ evidence,
27081
+ warnings: ["Pool price moved after initialization in the receipt block."]
27082
+ };
27083
+ } catch (error) {
27084
+ return {
27085
+ verified: false,
27086
+ outcome: "wrong-deployment",
27087
+ blockNumber: receipt.blockNumber,
27088
+ identity: params.action.identity,
27089
+ state: null,
27090
+ evidence,
27091
+ warnings: [error instanceof Error ? error.message : "Slipstream state verification failed."]
27092
+ };
27093
+ }
27094
+ }
27095
+ //#endregion
26392
27096
  //#region src/pool-lifecycle/v3/types.ts
26393
27097
  function invalidPreparedAction(message) {
26394
27098
  throw new PoolLifecycleError("INVALID_INPUT", message);
@@ -28034,6 +28738,6 @@ async function verifyV4PoolAction(params) {
28034
28738
  * See {@link SmartRewards} for detailed API documentation.
28035
28739
  */
28036
28740
  //#endregion
28037
- export { AERODROME_PROTOCOLS, ALGEBRA_INTEGRAL_PROTOCOLS, ALGEBRA_INTEGRAL_V_2_0_PROTOCOLS, ALGEBRA_LIFECYCLE_DEPLOYMENTS, ALGEBRA_PROTOCOLS, AMMType, API_URLS, AlgebgraHookBeacons, CURRENT_V4_LIFECYCLE_DEPLOYMENTS, Chain, ChainId, DIRECTIONAL_ALGEBRA_PROTOCOLS, FEE_MANAGER_ABI, FeeManagerClient, MAX_SQRT_RATIO, MIN_SQRT_RATIO, MultiPositionManagers, POOLSHARK_PROTOCOLS, POOL_LIFECYCLE_DEPLOYMENTS, PREPARED_POOL_ACTION_SERIALIZATION_VERSION, PoolClient, PoolLifecycleError, Protocol, QuickSwapQuoterV2, QuoterV2AlgebgraIntegral, QuoterV2AlgebgraIntegral21, QuoterV2Factory, QuoterV2Shadow, QuoterV2Thick, SHADOW_PROTOCOLS, SingleAssetDepositClient, SmartRewards, StakingClient, StakingProtocol, SteerClient, StrykePositionManagers, SubgraphClient, SubgraphVaultClient, TEST_UNISWAP_JIT_HOOK_BEACON, UNISWAP_V4_BEACON_NAMES, UNISWAP_V4_HOOK_BEACON_NAMES, UNISWAP_V4_NO_ORACLE_BEACON, UniswapHookBeacons, UniswapV3PoolABI, UniswapV3QuoterABI, UniswapV4Beacons, V3_CONFIG_PROTOCOLS, V3_LIFECYCLE_DEPLOYMENTS, V4_ALL_HOOK_MASK, V4_DYNAMIC_FEE_FLAG, V4_LIFECYCLE_DEPLOYMENTS, V4_LIFECYCLE_DEPLOYMENTS_BY_ID, V4_MAX_STATIC_FEE, V4_MAX_TICK_SPACING, V4_ZERO_ADDRESS, VAULT_FEES_ABI, VaultClient, abis, algebraCustomPoolEntryPointAbi, algebraDirectionalPoolStateAbi, algebraIntegralPairFactoryAbi, algebraIntegralPluginDataFactoryAbi, algebraIntegralPoolStateAbi, algebraLegacyPoolStateAbi, algebraPairFactoryAbi, algebraPoolBaseAbi, apechainAddresses, arbitrumAddresses, arbitrumgoerliAddresses, arthswapConfig, assertAlgebraInitialPrice, assertPreparedV3PoolAction, assertPreparedV4PoolAction, assertV3InitialPrice, assertV4InitialPrice, astarAddresses, astarzkevmAddresses, avalancheAddresses, bartiotestAddresses, baseAddresses, baseSwapConfig, basexConfig, beraAddresses, bittensorAddresses, bittensorUniV3Config, blastAddresses, bscAddresses, buildAlgebraCreatePoolTransaction, buildAlgebraInitializePoolTransaction, buildV3CreateAndInitializeTransaction, buildV3CreatePoolTransaction, buildV3InitializePoolTransaction, buildV4InitializePoolTransaction, calculateLimitPrice, calculateSwapAmount, camelotConfig, canonicalizeAlgebraPoolKey, canonicalizeV3PoolKey, canonicalizeV4PoolKey, celoAddresses, chainIdToName, chainNameToId, crustConfig, decodeAlgebraPoolActionReceipt, decodeV3PoolActionReceipt, decodeV4PoolActionReceipt, deprecatedBundlesURL, deserializePreparedAlgebraPoolAction, deserializePreparedPoolAction, deserializePreparedV3PoolAction, deserializePreparedV4PoolAction, determineSwapDirection, encodeCurrencyInitialSqrtPriceX96, encodeInitialSqrtPriceX96, encodeSqrtRatioX96, equilibreConfig, erc1155Abi, erc20Abi, erc721Abi, estimateLpTokens, ethAddresses, evmosAddresses, fantomAddresses, fenixConfig, filecoinAddresses, flareAddresses, forgeConfig, fusionxConfig, getAmmConfig, getAmmConfigByChainId, getApiUrl, getBeaconNameByProtocol, getContractAddressByChainIdAndContractName, getExpectedParamType, getFactoryAddress, getInitCodeHash, getNFTManagerAddress, getNetworkByChainId, getPoolHelperByChainId, getPoolSlot0, getProtcolTypeByAmmType, getProtocolBySubgraph, getProtocolConfigByBeacon, getProtocolContractAddresses, getProtocolInfoByChainId, getProtocolInfoByName, getProtocolSubgraphURL, getProtocolTypeByBeacon, getProtocolsForChainId, getQuoterV2Address, getStabilityVaultsPeripheryAddress, getStabilityVaultsSubgraphUrl, getSubgraphUrlByChainId, getSupportedChainByChainId, getSupportedChainIds, getSupportedChains, getSwapRouterAddress, getTheGraphResolverUrl, getTickLensAddress, getUniswapV4BeaconSupportedChains, getV4LifecycleDeploymentId, getV4PoolId, getVaultExecutionContext, getVaultReserves, glyphConfig, goerliAddresses, hemiAddresses, henjinConfig, herculesConfig, horizaConfig, inspectAlgebraCustomPoolEntryPoint, inspectAlgebraPool, inspectV3Pool, inspectV4Pool, integerSqrt, isAerodromeVault, isAlgebraDirectionProtocol, isAlgebraIntegral21QuoteParams, isAlgebraIntegralProtocol, isAlgebraIntegralV2Protocol, isAlgebraProtocol, isAlgebraProtocolBySubgraph, isAlgebraQuoteParams, isPoolSharkProtocol, isShadowProtocol, isShadowQuoteParams, isSingleAssetDepositSupported, isThickQuoteParams, isThickV2Protocol, isUniswapQuoteParams, isUniswapV4Beacon, isUniswapV4BeaconAvailableOnChain, isUniswapV4HookBeacon, isValidStakingProtocol, katanaAddresses, katanaConfig, kavaAddresses, kimConfig, kinetixConfig, lineaAddresses, linehubConfig, localhostAddresses, lynexConfig, maiaConfig, mantaAddresses, mantleAddresses, metaVaultConfig, metisAddresses, modeAddresses, moonbeamAddresses, mumbaiAddresses, nestVaultConfig, networks, normalizeProtocol, novaswapConfig, okxtestnetAddresses, optimismAddresses, optimismgoerliAddresses, pancakeSwapConfig, parseExactDecimal, polygonAddresses, polyzkevmAddresses, poolsharkConfig, prepareAlgebraPool, prepareV3CreateAndInitialize, prepareV3CreatePool, prepareV3InitializePool, prepareV4Initialize, quickSwapAlgebraConfig, quickSwapConfig, quickSwapIntegralConfig, quickSwapUniv3Config, resolveAlgebraLifecycleDeployment, resolveCurrentV4LifecycleDeployment, resolvePoolLifecycleDeployment, resolveV3LifecycleDeployment, resolveV4LifecycleDeployment, resolveV4LifecycleDeploymentById, retroConfig, robinhoodAddresses, rootstockAddresses, sagaAddresses, scrollAddresses, seiAddresses, serializePreparedPoolAction, shadowConfig, shouldValidateUniswapV4VaultHook, simulateAlgebraPoolAction, simulateSwap, simulateV3PoolAction, simulateV4PoolAction, singleTokenDepositAbi, soneiumAddresses, sonicAddresses, sortErc20Pair, sortEvmCurrencyPair, spark32Config, sparkConfig, stabilityVaultsConfig, steerSubgraphConfig, supswapConfig, sushiConfig, swapmodeConfig, swapsicleConfig, taikoAddresses, telosAddresses, thenaConfig, thickConfig, thrusterConfig, thundercoreAddresses, uniAddresses, uniswapConfig, v3FactoryAbi, v3PoolAbi, v3PoolInitializerAbi, v4PoolKeysEqual, v4PoolManagerAbi, v4StateViewAbi, validateAlgebraLifecycleDeployment, validatePreparedAlgebraPoolAction, validatePreparedV3PoolAction, validatePreparedV4PoolAction, validateQuoteParams, validateSqrtPriceX96, validateSwapParams, validateV4LifecycleDeployment, validateV4PoolKey, verifyAlgebraPoolAction, verifyV3PoolAction, verifyV4PoolAction, xlayerAddresses, zetaAddresses, zircuitAddresses };
28741
+ export { AERODROME_PROTOCOLS, AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS, ALGEBRA_INTEGRAL_PROTOCOLS, ALGEBRA_INTEGRAL_V_2_0_PROTOCOLS, ALGEBRA_LIFECYCLE_DEPLOYMENTS, ALGEBRA_PROTOCOLS, AMMType, API_URLS, AlgebgraHookBeacons, CURRENT_V4_LIFECYCLE_DEPLOYMENTS, Chain, ChainId, DIRECTIONAL_ALGEBRA_PROTOCOLS, FEE_MANAGER_ABI, FeeManagerClient, MAX_SQRT_RATIO, MIN_SQRT_RATIO, MultiPositionManagers, POOLSHARK_PROTOCOLS, POOL_LIFECYCLE_DEPLOYMENTS, PREPARED_POOL_ACTION_SERIALIZATION_VERSION, PoolClient, PoolLifecycleError, Protocol, QuickSwapQuoterV2, QuoterV2AlgebgraIntegral, QuoterV2AlgebgraIntegral21, QuoterV2Factory, QuoterV2Shadow, QuoterV2Thick, SHADOW_PROTOCOLS, SingleAssetDepositClient, SmartRewards, StakingClient, StakingProtocol, SteerClient, StrykePositionManagers, SubgraphClient, SubgraphVaultClient, TEST_UNISWAP_JIT_HOOK_BEACON, UNISWAP_V4_BEACON_NAMES, UNISWAP_V4_HOOK_BEACON_NAMES, UNISWAP_V4_NO_ORACLE_BEACON, UniswapHookBeacons, UniswapV3PoolABI, UniswapV3QuoterABI, UniswapV4Beacons, V3_CONFIG_PROTOCOLS, V3_LIFECYCLE_DEPLOYMENTS, V4_ALL_HOOK_MASK, V4_DYNAMIC_FEE_FLAG, V4_LIFECYCLE_DEPLOYMENTS, V4_LIFECYCLE_DEPLOYMENTS_BY_ID, V4_MAX_STATIC_FEE, V4_MAX_TICK_SPACING, V4_ZERO_ADDRESS, VAULT_FEES_ABI, VaultClient, abis, aerodromeSlipstreamFactoryAbi, aerodromeSlipstreamPoolAbi, algebraCustomPoolEntryPointAbi, algebraDirectionalPoolStateAbi, algebraIntegralPairFactoryAbi, algebraIntegralPluginDataFactoryAbi, algebraIntegralPoolStateAbi, algebraLegacyPoolStateAbi, algebraPairFactoryAbi, algebraPoolBaseAbi, apechainAddresses, arbitrumAddresses, arbitrumgoerliAddresses, arthswapConfig, assertAerodromeSlipstreamInitialPrice, assertAlgebraInitialPrice, assertLatestAerodromeSlipstreamLifecycleDeployment, assertPreparedV3PoolAction, assertPreparedV4PoolAction, assertV3InitialPrice, assertV4InitialPrice, astarAddresses, astarzkevmAddresses, avalancheAddresses, bartiotestAddresses, baseAddresses, baseSwapConfig, basexConfig, beraAddresses, bittensorAddresses, bittensorUniV3Config, blastAddresses, bscAddresses, buildAerodromeSlipstreamCreateAndInitializeTransaction, buildAlgebraCreatePoolTransaction, buildAlgebraInitializePoolTransaction, buildV3CreateAndInitializeTransaction, buildV3CreatePoolTransaction, buildV3InitializePoolTransaction, buildV4InitializePoolTransaction, calculateLimitPrice, calculateSwapAmount, camelotConfig, canonicalizeAerodromeSlipstreamPoolKey, canonicalizeAlgebraPoolKey, canonicalizeV3PoolKey, canonicalizeV4PoolKey, celoAddresses, chainIdToName, chainNameToId, crustConfig, decodeAerodromeSlipstreamPoolActionReceipt, decodeAlgebraPoolActionReceipt, decodeV3PoolActionReceipt, decodeV4PoolActionReceipt, deprecatedBundlesURL, deserializePreparedAerodromeSlipstreamPoolAction, deserializePreparedAlgebraPoolAction, deserializePreparedPoolAction, deserializePreparedV3PoolAction, deserializePreparedV4PoolAction, determineSwapDirection, encodeCurrencyInitialSqrtPriceX96, encodeInitialSqrtPriceX96, encodeSqrtRatioX96, equilibreConfig, erc1155Abi, erc20Abi, erc721Abi, estimateLpTokens, ethAddresses, evmosAddresses, fantomAddresses, fenixConfig, filecoinAddresses, flareAddresses, forgeConfig, fusionxConfig, getAmmConfig, getAmmConfigByChainId, getApiUrl, getBeaconNameByProtocol, getContractAddressByChainIdAndContractName, getExpectedParamType, getFactoryAddress, getInitCodeHash, getNFTManagerAddress, getNetworkByChainId, getPoolHelperByChainId, getPoolSlot0, getProtcolTypeByAmmType, getProtocolBySubgraph, getProtocolConfigByBeacon, getProtocolContractAddresses, getProtocolInfoByChainId, getProtocolInfoByName, getProtocolSubgraphURL, getProtocolTypeByBeacon, getProtocolsForChainId, getQuoterV2Address, getStabilityVaultsPeripheryAddress, getStabilityVaultsSubgraphUrl, getSubgraphUrlByChainId, getSupportedChainByChainId, getSupportedChainIds, getSupportedChains, getSwapRouterAddress, getTheGraphResolverUrl, getTickLensAddress, getUniswapV4BeaconSupportedChains, getV4LifecycleDeploymentId, getV4PoolId, getVaultExecutionContext, getVaultReserves, glyphConfig, goerliAddresses, hemiAddresses, henjinConfig, herculesConfig, horizaConfig, inspectAerodromeSlipstreamPool, inspectAlgebraCustomPoolEntryPoint, inspectAlgebraPool, inspectV3Pool, inspectV4Pool, integerSqrt, isAerodromeVault, isAlgebraDirectionProtocol, isAlgebraIntegral21QuoteParams, isAlgebraIntegralProtocol, isAlgebraIntegralV2Protocol, isAlgebraProtocol, isAlgebraProtocolBySubgraph, isAlgebraQuoteParams, isPoolSharkProtocol, isShadowProtocol, isShadowQuoteParams, isSingleAssetDepositSupported, isThickQuoteParams, isThickV2Protocol, isUniswapQuoteParams, isUniswapV4Beacon, isUniswapV4BeaconAvailableOnChain, isUniswapV4HookBeacon, isValidStakingProtocol, katanaAddresses, katanaConfig, kavaAddresses, kimConfig, kinetixConfig, lineaAddresses, linehubConfig, localhostAddresses, lynexConfig, maiaConfig, mantaAddresses, mantleAddresses, metaVaultConfig, metisAddresses, modeAddresses, moonbeamAddresses, mumbaiAddresses, nestVaultConfig, networks, normalizeProtocol, novaswapConfig, okxtestnetAddresses, optimismAddresses, optimismgoerliAddresses, pancakeSwapConfig, parseExactDecimal, polygonAddresses, polyzkevmAddresses, poolsharkConfig, prepareAerodromeSlipstreamPool, prepareAlgebraPool, prepareLatestAerodromeSlipstreamPool, prepareV3CreateAndInitialize, prepareV3CreatePool, prepareV3InitializePool, prepareV4Initialize, quickSwapAlgebraConfig, quickSwapConfig, quickSwapIntegralConfig, quickSwapUniv3Config, resolveAerodromeSlipstreamLifecycleDeployment, resolveAlgebraLifecycleDeployment, resolveCurrentV4LifecycleDeployment, resolveLatestAerodromeSlipstreamLifecycleDeployment, resolvePoolLifecycleDeployment, resolveV3LifecycleDeployment, resolveV4LifecycleDeployment, resolveV4LifecycleDeploymentById, retroConfig, robinhoodAddresses, rootstockAddresses, sagaAddresses, scrollAddresses, seiAddresses, serializePreparedPoolAction, shadowConfig, shouldValidateUniswapV4VaultHook, simulateAerodromeSlipstreamPoolAction, simulateAlgebraPoolAction, simulateSwap, simulateV3PoolAction, simulateV4PoolAction, singleTokenDepositAbi, soneiumAddresses, sonicAddresses, sortErc20Pair, sortEvmCurrencyPair, spark32Config, sparkConfig, stabilityVaultsConfig, steerSubgraphConfig, supswapConfig, sushiConfig, swapmodeConfig, swapsicleConfig, taikoAddresses, telosAddresses, thenaConfig, thickConfig, thrusterConfig, thundercoreAddresses, uniAddresses, uniswapConfig, v3FactoryAbi, v3PoolAbi, v3PoolInitializerAbi, v4PoolKeysEqual, v4PoolManagerAbi, v4StateViewAbi, validateAerodromeSlipstreamLifecycleDeployment, validateAlgebraLifecycleDeployment, validatePreparedAerodromeSlipstreamPoolAction, validatePreparedAlgebraPoolAction, validatePreparedV3PoolAction, validatePreparedV4PoolAction, validateQuoteParams, validateSqrtPriceX96, validateSwapParams, validateV4LifecycleDeployment, validateV4PoolKey, verifyAerodromeSlipstreamPoolAction, verifyAlgebraPoolAction, verifyV3PoolAction, verifyV4PoolAction, xlayerAddresses, zetaAddresses, zircuitAddresses };
28038
28742
 
28039
28743
  //# sourceMappingURL=index.browser.mjs.map