@steerprotocol/sdk 3.4.3 → 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.
package/dist/index.cjs CHANGED
@@ -24415,7 +24415,7 @@ const PROVENANCE_BY_VARIANT = Object.freeze({
24415
24415
  "integral-v1": provenance$1(SDK_CONFIG_URL, "https://github.com/cryptoalgebra/Algebra/blob/3eae63f432a889fca5b000e9bd61078c6f923995/src/core/contracts/interfaces/IAlgebraFactory.sol"),
24416
24416
  "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")
24417
24417
  });
24418
- function deployment$1(input) {
24418
+ function deployment$2(input) {
24419
24419
  const shape = input.variant === "directional" ? {
24420
24420
  adapter: "algebra-directional-pair-v1",
24421
24421
  version: 1,
@@ -24457,179 +24457,179 @@ function deployment$1(input) {
24457
24457
  * a runtime fallback.
24458
24458
  */
24459
24459
  const ALGEBRA_LIFECYCLE_DEPLOYMENTS = Object.freeze([
24460
- deployment$1({
24460
+ deployment$2({
24461
24461
  chainId: ChainId.Polygon,
24462
24462
  protocol: Protocol.QuickSwap,
24463
24463
  variant: "legacy",
24464
24464
  factory: "0x411b0fAcC3489691f28ad58c47006AF5E3Ab3A28"
24465
24465
  }),
24466
- deployment$1({
24466
+ deployment$2({
24467
24467
  chainId: ChainId.PolygonzkEVM,
24468
24468
  protocol: Protocol.QuickSwap,
24469
24469
  variant: "legacy",
24470
24470
  factory: "0x4B9f4d2435Ef65559567e5DbFC1BbB37abC43B57"
24471
24471
  }),
24472
- deployment$1({
24472
+ deployment$2({
24473
24473
  chainId: ChainId.Zircuit,
24474
24474
  protocol: Protocol.Ocelex,
24475
24475
  variant: "legacy",
24476
24476
  factory: "0x03057ae6294292b299a1863420edD65e0197AFEf"
24477
24477
  }),
24478
- deployment$1({
24478
+ deployment$2({
24479
24479
  chainId: ChainId.Arbitrum,
24480
24480
  protocol: Protocol.Camelot,
24481
24481
  variant: "directional",
24482
24482
  factory: "0x1a3c9B1d2F0529D97f2afC5136Cc23e58f1FD35B"
24483
24483
  }),
24484
- deployment$1({
24484
+ deployment$2({
24485
24485
  chainId: ChainId.Apechain,
24486
24486
  protocol: Protocol.Camelot,
24487
24487
  variant: "directional",
24488
24488
  factory: "0x1a3c9B1d2F0529D97f2afC5136Cc23e58f1FD35B"
24489
24489
  }),
24490
- deployment$1({
24490
+ deployment$2({
24491
24491
  chainId: ChainId.Linea,
24492
24492
  protocol: Protocol.Lynex,
24493
24493
  variant: "legacy",
24494
24494
  factory: "0x622b2c98123D303ae067DB4925CD6282B3A08D0F"
24495
24495
  }),
24496
- deployment$1({
24496
+ deployment$2({
24497
24497
  chainId: ChainId.BSC,
24498
24498
  protocol: Protocol.Thena,
24499
24499
  variant: "legacy",
24500
24500
  factory: "0x306F06C147f064A010530292A1EB6737c3e378e4"
24501
24501
  }),
24502
- deployment$1({
24502
+ deployment$2({
24503
24503
  chainId: ChainId.Metis,
24504
24504
  protocol: Protocol.Hercules,
24505
24505
  variant: "directional",
24506
24506
  factory: "0xC5BfA92f27dF36d268422EE314a1387bB5ffB06A"
24507
24507
  }),
24508
- deployment$1({
24508
+ deployment$2({
24509
24509
  chainId: ChainId.XLayer,
24510
24510
  protocol: Protocol.QuickSwapAlgebra,
24511
24511
  variant: "legacy",
24512
24512
  factory: "0xd2480162Aa7F02Ead7BF4C127465446150D58452"
24513
24513
  }),
24514
- deployment$1({
24514
+ deployment$2({
24515
24515
  chainId: ChainId.Moonbeam,
24516
24516
  protocol: Protocol.StellaSwap,
24517
24517
  variant: "legacy",
24518
24518
  factory: "0xabE1655110112D0E45EF91e94f8d757e4ddBA59C"
24519
24519
  }),
24520
- deployment$1({
24520
+ deployment$2({
24521
24521
  chainId: ChainId.Mode,
24522
24522
  protocol: Protocol.Kim,
24523
24523
  variant: "integral-v1",
24524
24524
  factory: "0xB5F00c2C5f8821155D8ed27E31932CFD9DB3C5D5"
24525
24525
  }),
24526
- deployment$1({
24526
+ deployment$2({
24527
24527
  chainId: ChainId.Base,
24528
24528
  protocol: Protocol.Kim,
24529
24529
  variant: "integral-v1",
24530
24530
  factory: "0x2F0d41f94d5D1550b79A83D2fe85C82d68c5a3ca"
24531
24531
  }),
24532
- deployment$1({
24532
+ deployment$2({
24533
24533
  chainId: ChainId.Telos,
24534
24534
  protocol: Protocol.Swapsicle,
24535
24535
  variant: "integral-v1",
24536
24536
  factory: "0xA09BAbf9A48003ae9b9333966a8Bda94d820D0d9"
24537
24537
  }),
24538
- deployment$1({
24538
+ deployment$2({
24539
24539
  chainId: ChainId.Blast,
24540
24540
  protocol: Protocol.Fenix,
24541
24541
  variant: "integral-v1",
24542
24542
  factory: "0x7a44CD060afC1B6F4c80A2B9b37f4473E74E25Df"
24543
24543
  }),
24544
- deployment$1({
24544
+ deployment$2({
24545
24545
  chainId: ChainId.Taiko,
24546
24546
  protocol: Protocol.Henjin,
24547
24547
  variant: "integral-v1",
24548
24548
  factory: "0x42B08e7a9211482d3643a126a7dF1895448d3509",
24549
24549
  customPoolEntryPoint: "0x441013A52DDedc8D02eB9B90F7A555F6848188b5"
24550
24550
  }),
24551
- deployment$1({
24551
+ deployment$2({
24552
24552
  chainId: ChainId.Sonic,
24553
24553
  protocol: Protocol.SilverSwap,
24554
24554
  variant: "integral-v1",
24555
24555
  factory: "0xb860200BD68dc39cEAfd6ebb82883f189f4CdA76"
24556
24556
  }),
24557
- deployment$1({
24557
+ deployment$2({
24558
24558
  chainId: ChainId.Nibiru,
24559
24559
  protocol: Protocol.SilverSwap,
24560
24560
  variant: "integral-v1",
24561
24561
  factory: "0xb860200BD68dc39cEAfd6ebb82883f189f4CdA76"
24562
24562
  }),
24563
- deployment$1({
24563
+ deployment$2({
24564
24564
  chainId: ChainId.Zeta,
24565
24565
  protocol: Protocol.Beam,
24566
24566
  variant: "integral-v1",
24567
24567
  factory: "0x28b5244B6CA7Cb07f2f7F40edE944c07C2395603"
24568
24568
  }),
24569
- deployment$1({
24569
+ deployment$2({
24570
24570
  chainId: ChainId.Core,
24571
24571
  protocol: Protocol.Glyph,
24572
24572
  variant: "integral-v1",
24573
24573
  factory: "0x74EfE55beA4988e7D92D03EFd8ddB8BF8b7bD597"
24574
24574
  }),
24575
- deployment$1({
24575
+ deployment$2({
24576
24576
  chainId: ChainId.Hyperevm,
24577
24577
  protocol: Protocol.Nest,
24578
24578
  variant: "integral-v1",
24579
24579
  factory: "0xF77Bd082c627aA54591cF2f2EaA811fd1AB3b1F3"
24580
24580
  }),
24581
- deployment$1({
24581
+ deployment$2({
24582
24582
  chainId: ChainId.Soneium,
24583
24583
  protocol: Protocol.QuickSwapIntegral,
24584
24584
  variant: "integral-v2",
24585
24585
  factory: "0x8Ff309F68F6Caf77a78E9C20d2Af7Ed4bE2D7093"
24586
24586
  }),
24587
- deployment$1({
24587
+ deployment$2({
24588
24588
  chainId: ChainId.Base,
24589
24589
  protocol: Protocol.QuickSwapIntegral,
24590
24590
  variant: "integral-v2",
24591
24591
  factory: "0xC5396866754799B9720125B104AE01d935Ab9C7b",
24592
24592
  customPoolEntryPoint: "0xb9ce7698cE3dCf21cc88bf7dCc1fE20C85E4226E"
24593
24593
  }),
24594
- deployment$1({
24594
+ deployment$2({
24595
24595
  chainId: ChainId.Polygon,
24596
24596
  protocol: Protocol.QuickSwapIntegral,
24597
24597
  variant: "integral-v2",
24598
24598
  factory: "0x134c1dBE4860A9cAaf89002574fFe814772D9904",
24599
24599
  customPoolEntryPoint: "0xfcfE065bc131Fa8Bb31A227b2fF4F0EC47D3F1a2"
24600
24600
  }),
24601
- deployment$1({
24601
+ deployment$2({
24602
24602
  chainId: ChainId.Bera,
24603
24603
  protocol: Protocol.Wasabee,
24604
24604
  variant: "integral-v2",
24605
24605
  factory: "0x7d53327D78EFD0b463bd8d7dc938C52402323b95"
24606
24606
  }),
24607
- deployment$1({
24607
+ deployment$2({
24608
24608
  chainId: ChainId.Ronin,
24609
24609
  protocol: Protocol.KatanaIntegral,
24610
24610
  variant: "integral-v2",
24611
24611
  factory: "0x7ecaf729C6FFb04448aA89A722cA370724BF70De"
24612
24612
  }),
24613
- deployment$1({
24613
+ deployment$2({
24614
24614
  chainId: ChainId.Avalanche,
24615
24615
  protocol: Protocol.Blackhole,
24616
24616
  variant: "integral-v2",
24617
24617
  factory: "0x512eb749541B7cf294be882D636218c84a5e9E5F"
24618
24618
  }),
24619
- deployment$1({
24619
+ deployment$2({
24620
24620
  chainId: ChainId.Mainnet,
24621
24621
  protocol: Protocol.Cypher,
24622
24622
  variant: "integral-v2",
24623
24623
  factory: "0xfb8Ed3485EfA29a0e4bed93351dD51B59fC4b0f0",
24624
24624
  customPoolEntryPoint: "0x79616564DB0294ecBa5912f1cE985FD1c11eeF51"
24625
24625
  }),
24626
- deployment$1({
24626
+ deployment$2({
24627
24627
  chainId: ChainId.Flare,
24628
24628
  protocol: Protocol.SparkIntegral,
24629
24629
  variant: "integral-v2",
24630
24630
  factory: "0x805488DaA81c1b9e7C5cE3f1DCeA28F21448EC6A"
24631
24631
  }),
24632
- deployment$1({
24632
+ deployment$2({
24633
24633
  chainId: ChainId.Base,
24634
24634
  protocol: Protocol.Hydrex,
24635
24635
  variant: "integral-v2",
@@ -24662,6 +24662,164 @@ function validateAlgebraLifecycleDeployment(value) {
24662
24662
  return configured;
24663
24663
  }
24664
24664
  //#endregion
24665
+ //#region src/pool-lifecycle/capabilities/aerodrome-slipstream.ts
24666
+ const factoryRegistry = (0, viem.getAddress)("0x5C3F18F06CC09CA1910767A34a20F771039E37C0");
24667
+ const voter = (0, viem.getAddress)("0x16613524e02aD97edfef371Bc883F2f5D6c480A5");
24668
+ const originalFactory = (0, viem.getAddress)("0x5e7BB104d84c7CB9B682AaC2F3d509f5F406809A");
24669
+ function deployment$1(input) {
24670
+ return Object.freeze({
24671
+ supported: true,
24672
+ schemaVersion: 1,
24673
+ family: "aerodrome-slipstream",
24674
+ adapter: "aerodrome-slipstream-factory-v1",
24675
+ version: 1,
24676
+ ...input
24677
+ });
24678
+ }
24679
+ const AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS = Object.freeze([
24680
+ deployment$1({
24681
+ chainId: ChainId.Base,
24682
+ protocol: Protocol.Aerodrome,
24683
+ generation: 1,
24684
+ latest: false,
24685
+ factory: originalFactory,
24686
+ factoryRuntimeCodeHash: "0x7340cf80843bd721bcaefbfc050e38304cb4174c239e6e914e3056f27f39b11c",
24687
+ poolImplementation: (0, viem.getAddress)("0xeC8E5342B19977B4eF8892e02D8DAEcfa1315831"),
24688
+ poolImplementationRuntimeCodeHash: "0x772fb5c610b40a122036f544e5b9b5bce6becb19db9524331289d1aaed2d5888",
24689
+ poolProxyRuntimeCodeHash: "0xacd6710f7037ad095b1e4d5f8ee5b2681069cb4dd316e77e4e0cb8f85716a2a1",
24690
+ factoryRegistry,
24691
+ voter,
24692
+ legacyCLFactory: null,
24693
+ sourceVerification: Object.freeze({
24694
+ sourceRevision: "0x4ef07edcf5aaac5c22bcef6718c77e0416e7e472",
24695
+ compilerVersion: "0.7.6+commit.7338295f",
24696
+ optimizer: Object.freeze({
24697
+ enabled: true,
24698
+ runs: 200
24699
+ }),
24700
+ executableRuntimeMatch: true,
24701
+ immutableAnchors: Object.freeze({
24702
+ factoryRegistry,
24703
+ voter,
24704
+ poolImplementation: (0, viem.getAddress)("0xeC8E5342B19977B4eF8892e02D8DAEcfa1315831"),
24705
+ legacyCLFactory: null
24706
+ })
24707
+ }),
24708
+ provenance: Object.freeze({
24709
+ source: "official-deployment",
24710
+ urls: Object.freeze([
24711
+ "https://github.com/aerodrome-finance/slipstream/commit/37eead2c7e5302a204dec78bfa0775bbb8ff48a2",
24712
+ "https://github.com/aerodrome-finance/slipstream/blob/4ef07edcf5aaac5c22bcef6718c77e0416e7e472/contracts/core/CLFactory.sol",
24713
+ "https://github.com/aerodrome-finance/slipstream/blob/4ef07edcf5aaac5c22bcef6718c77e0416e7e472/contracts/core/CLPool.sol",
24714
+ "https://basescan.org/address/0x5e7BB104d84c7CB9B682AaC2F3d509f5F406809A#code"
24715
+ ])
24716
+ })
24717
+ }),
24718
+ deployment$1({
24719
+ chainId: ChainId.Base,
24720
+ protocol: Protocol.AerodromeV2,
24721
+ generation: 2,
24722
+ latest: false,
24723
+ factory: (0, viem.getAddress)("0xaDe65c38CD4849aDBA595a4323a8C7DdfE89716a"),
24724
+ factoryRuntimeCodeHash: "0x0e72100f63ce8e32c95370fa9636d38c8cf434a820f2a7a69985e50930d2cb85",
24725
+ poolImplementation: (0, viem.getAddress)("0x942e97a4c6FdC38B4CD1c0298D37d81fDD8E5A16"),
24726
+ poolImplementationRuntimeCodeHash: "0x916bc5496cc07ea86289bc3a08a90f93dcae34686be6634f6e89ef260c3df4fa",
24727
+ poolProxyRuntimeCodeHash: "0x18308290b554b22918ea53c7e4e49eb871181d182749bf9e3a65ef949d3be808",
24728
+ factoryRegistry,
24729
+ voter,
24730
+ legacyCLFactory: originalFactory,
24731
+ sourceVerification: Object.freeze({
24732
+ sourceRevision: "0xaa539f4cdb59212aaf846cce60f6ac5e9470c157",
24733
+ compilerVersion: "0.7.6+commit.7338295f",
24734
+ optimizer: Object.freeze({
24735
+ enabled: true,
24736
+ runs: 200
24737
+ }),
24738
+ executableRuntimeMatch: true,
24739
+ immutableAnchors: Object.freeze({
24740
+ factoryRegistry,
24741
+ voter,
24742
+ poolImplementation: (0, viem.getAddress)("0x942e97a4c6FdC38B4CD1c0298D37d81fDD8E5A16"),
24743
+ legacyCLFactory: originalFactory
24744
+ })
24745
+ }),
24746
+ provenance: Object.freeze({
24747
+ source: "official-deployment",
24748
+ urls: Object.freeze([
24749
+ "https://github.com/aerodrome-finance/slipstream/commit/aa539f4cdb59212aaf846cce60f6ac5e9470c157",
24750
+ "https://github.com/aerodrome-finance/slipstream/blob/aa539f4cdb59212aaf846cce60f6ac5e9470c157/contracts/core/CLFactory.sol",
24751
+ "https://github.com/aerodrome-finance/slipstream/blob/aa539f4cdb59212aaf846cce60f6ac5e9470c157/contracts/core/CLPool.sol",
24752
+ "https://github.com/aerodrome-finance/slipstream/blob/aa539f4cdb59212aaf846cce60f6ac5e9470c157/script/constants/output/DeployCL-Base-Gauge-Caps.json",
24753
+ "https://basescan.org/address/0xaDe65c38CD4849aDBA595a4323a8C7DdfE89716a#code"
24754
+ ])
24755
+ })
24756
+ }),
24757
+ deployment$1({
24758
+ chainId: ChainId.Base,
24759
+ protocol: Protocol.AerodromeV3,
24760
+ generation: 3,
24761
+ latest: true,
24762
+ factory: (0, viem.getAddress)("0xf8f2eB4940CFE7d13603DDDD87f123820Fc061Ef"),
24763
+ factoryRuntimeCodeHash: "0x4961963494e47f363617ab9a0f3999a28b33c519e51392952db06350cce700bd",
24764
+ poolImplementation: (0, viem.getAddress)("0xc770898522D2A9c8Da7A10D63989b6b58305B665"),
24765
+ poolImplementationRuntimeCodeHash: "0xe63484f408c701770737a3c40e435c8183c66b1663f3a8777ce44dd73aff339b",
24766
+ poolProxyRuntimeCodeHash: "0xad8972486d67a48db1f32f254a4c2f4be28df0b5f399559d1e7cd8fbcfbedc96",
24767
+ factoryRegistry,
24768
+ voter,
24769
+ legacyCLFactory: originalFactory,
24770
+ sourceVerification: Object.freeze({
24771
+ sourceRevision: "0x618c88df58f1fa271e9b3bc6bc476a4c37d068dd",
24772
+ compilerVersion: "0.7.6+commit.7338295f",
24773
+ optimizer: Object.freeze({
24774
+ enabled: true,
24775
+ runs: 200
24776
+ }),
24777
+ executableRuntimeMatch: true,
24778
+ immutableAnchors: Object.freeze({
24779
+ factoryRegistry,
24780
+ voter,
24781
+ poolImplementation: (0, viem.getAddress)("0xc770898522D2A9c8Da7A10D63989b6b58305B665"),
24782
+ legacyCLFactory: originalFactory
24783
+ })
24784
+ }),
24785
+ provenance: Object.freeze({
24786
+ source: "official-deployment",
24787
+ urls: Object.freeze([
24788
+ "https://github.com/aerodrome-finance/slipstream/commit/618c88df58f1fa271e9b3bc6bc476a4c37d068dd",
24789
+ "https://github.com/aerodrome-finance/slipstream/blob/618c88df58f1fa271e9b3bc6bc476a4c37d068dd/contracts/core/CLFactory.sol",
24790
+ "https://github.com/aerodrome-finance/slipstream/blob/618c88df58f1fa271e9b3bc6bc476a4c37d068dd/contracts/core/CLPool.sol",
24791
+ "https://github.com/aerodrome-finance/slipstream/blob/618c88df58f1fa271e9b3bc6bc476a4c37d068dd/script/constants/output/DeployCL-Base-MinUnstake.json",
24792
+ "https://basescan.org/address/0xf8f2eB4940CFE7d13603DDDD87f123820Fc061Ef#code"
24793
+ ])
24794
+ })
24795
+ })
24796
+ ]);
24797
+ const registry = buildCheckedRegistry(AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS, (item) => `${item.chainId}:${item.protocol}`, "Aerodrome Slipstream lifecycle deployment");
24798
+ function resolveAerodromeSlipstreamLifecycleDeployment(params) {
24799
+ return registry[`${params.chainId}:${params.protocol}`];
24800
+ }
24801
+ /** Resolve the only factory generation that is eligible for a new pool deployment. */
24802
+ function resolveLatestAerodromeSlipstreamLifecycleDeployment(chainId) {
24803
+ return AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS.find((item) => item.chainId === chainId && item.latest);
24804
+ }
24805
+ function assertLatestAerodromeSlipstreamLifecycleDeployment(value) {
24806
+ const configured = validateAerodromeSlipstreamLifecycleDeployment(value);
24807
+ if (!configured.latest) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `Aerodrome Slipstream generation ${configured.generation} is read/verification-only; new pools must use the latest generation.`);
24808
+ return configured;
24809
+ }
24810
+ /** Reject mutable or forged deployment metadata at every public boundary. */
24811
+ function validateAerodromeSlipstreamLifecycleDeployment(value) {
24812
+ const candidate = value;
24813
+ const configured = typeof candidate?.chainId === "number" && typeof candidate.protocol === "string" ? resolveAerodromeSlipstreamLifecycleDeployment({
24814
+ chainId: candidate.chainId,
24815
+ protocol: candidate.protocol
24816
+ }) : void 0;
24817
+ try {
24818
+ 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 && (0, viem.getAddress)(candidate.factory) === configured.factory && candidate.factoryRuntimeCodeHash === configured.factoryRuntimeCodeHash && (0, viem.getAddress)(candidate.poolImplementation) === configured.poolImplementation && candidate.poolImplementationRuntimeCodeHash === configured.poolImplementationRuntimeCodeHash && candidate.poolProxyRuntimeCodeHash === configured.poolProxyRuntimeCodeHash && (0, viem.getAddress)(candidate.factoryRegistry) === configured.factoryRegistry && (0, viem.getAddress)(candidate.voter) === configured.voter && (configured.legacyCLFactory === null ? candidate.legacyCLFactory === null : (0, viem.getAddress)(candidate.legacyCLFactory) === configured.legacyCLFactory)) return configured;
24819
+ } catch {}
24820
+ throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `Aerodrome Slipstream lifecycle deployment is not configured for chain ${String(candidate?.chainId)} and protocol ${String(candidate?.protocol)}.`);
24821
+ }
24822
+ //#endregion
24665
24823
  //#region src/pool-lifecycle/capabilities/v3.ts
24666
24824
  const STANDARD_V3_POOL_INIT_CODE_HASH = "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";
24667
24825
  const SDK_CONFIG_ROOT = "https://github.com/SteerProtocol/sdk/blob/2dfaa0ee00bb80be684206f73e67b8d35f8ce9ff/src/const/amm/configs/protocols";
@@ -25341,7 +25499,8 @@ function buildLifecycleRegistry() {
25341
25499
  return buildCheckedRegistry([
25342
25500
  ...Object.values(V3_LIFECYCLE_DEPLOYMENTS).filter((deployment) => deployment !== void 0),
25343
25501
  ...CURRENT_V4_LIFECYCLE_DEPLOYMENTS,
25344
- ...ALGEBRA_LIFECYCLE_DEPLOYMENTS
25502
+ ...ALGEBRA_LIFECYCLE_DEPLOYMENTS,
25503
+ ...AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS
25345
25504
  ], deploymentKey, "pool lifecycle deployment");
25346
25505
  }
25347
25506
  /**
@@ -25410,6 +25569,29 @@ const algebraIntegralPoolStateAbi = (0, viem.parseAbi)(["function globalState()
25410
25569
  */
25411
25570
  const algebraCustomPoolEntryPointAbi = (0, viem.parseAbi)(["function factory() view returns (address)", "function createCustomPool(address deployer,address creator,address tokenA,address tokenB,bytes data) returns (address customPool)"]);
25412
25571
  //#endregion
25572
+ //#region src/pool-lifecycle/abis/aerodrome-slipstream.ts
25573
+ /** Exact Base Aerodrome Slipstream CLFactory lifecycle surface. */
25574
+ const aerodromeSlipstreamFactoryAbi = (0, viem.parseAbi)([
25575
+ "event PoolCreated(address indexed token0,address indexed token1,int24 indexed tickSpacing,address pool)",
25576
+ "function getPool(address tokenA,address tokenB,int24 tickSpacing) view returns (address pool)",
25577
+ "function tickSpacingToFee(int24 tickSpacing) view returns (uint24 fee)",
25578
+ "function poolImplementation() view returns (address)",
25579
+ "function factoryRegistry() view returns (address)",
25580
+ "function voter() view returns (address)",
25581
+ "function legacyCLFactory() view returns (address)",
25582
+ "function isPool(address pool) view returns (bool)",
25583
+ "function createPool(address tokenA,address tokenB,int24 tickSpacing,uint160 sqrtPriceX96) returns (address pool)"
25584
+ ]);
25585
+ /** Exact Aerodrome Slipstream CLPool lifecycle read and event surface. */
25586
+ const aerodromeSlipstreamPoolAbi = (0, viem.parseAbi)([
25587
+ "event Initialize(uint160 sqrtPriceX96,int24 tick)",
25588
+ "function factory() view returns (address)",
25589
+ "function token0() view returns (address)",
25590
+ "function token1() view returns (address)",
25591
+ "function tickSpacing() view returns (int24)",
25592
+ "function slot0() view returns (uint160 sqrtPriceX96,int24 tick,uint16 observationIndex,uint16 observationCardinality,uint16 observationCardinalityNext,bool unlocked)"
25593
+ ]);
25594
+ //#endregion
25413
25595
  //#region src/pool-lifecycle/abis/v3.ts
25414
25596
  /** Minimal canonical Uniswap V3-compatible factory ABI used by pool lifecycle flows. */
25415
25597
  const v3FactoryAbi = [
@@ -25683,8 +25865,8 @@ function assertAlgebraInitialPrice(key, price) {
25683
25865
  }
25684
25866
  //#endregion
25685
25867
  //#region src/pool-lifecycle/algebra/inspect.ts
25686
- const ZERO = (0, viem.getAddress)("0x0000000000000000000000000000000000000000");
25687
- async function requireCode(client, address, label, blockNumber) {
25868
+ const ZERO$2 = (0, viem.getAddress)("0x0000000000000000000000000000000000000000");
25869
+ async function requireCode$1(client, address, label, blockNumber) {
25688
25870
  const code = await client.getCode({
25689
25871
  address,
25690
25872
  blockNumber
@@ -25700,7 +25882,7 @@ async function inspectAlgebraCustomPoolEntryPoint(params) {
25700
25882
  const blockNumber = params.blockNumber ?? await params.publicClient.getBlockNumber();
25701
25883
  const entryPoint = deployment.customPoolEntryPoint;
25702
25884
  const factory = deployment.factory;
25703
- await requireCode(params.publicClient, entryPoint, "Algebra custom pool entry point", blockNumber);
25885
+ await requireCode$1(params.publicClient, entryPoint, "Algebra custom pool entry point", blockNumber);
25704
25886
  const entryFactory = (0, viem.getAddress)(await params.publicClient.readContract({
25705
25887
  address: entryPoint,
25706
25888
  abi: algebraCustomPoolEntryPointAbi,
@@ -25723,9 +25905,9 @@ async function inspectAlgebraPool(params) {
25723
25905
  const blockNumber = params.blockNumber ?? await publicClient.getBlockNumber();
25724
25906
  const factory = (0, viem.getAddress)(deployment.factory);
25725
25907
  await Promise.all([
25726
- requireCode(publicClient, factory, "Algebra factory", blockNumber),
25727
- requireCode(publicClient, key.token0, "token0", blockNumber),
25728
- requireCode(publicClient, key.token1, "token1", blockNumber)
25908
+ requireCode$1(publicClient, factory, "Algebra factory", blockNumber),
25909
+ requireCode$1(publicClient, key.token0, "token0", blockNumber),
25910
+ requireCode$1(publicClient, key.token1, "token1", blockNumber)
25729
25911
  ]);
25730
25912
  const factoryAbi = deployment.createPool === "pair-with-plugin-data" ? algebraIntegralPluginDataFactoryAbi : deployment.variant === "integral-v1" ? algebraIntegralPairFactoryAbi : algebraPairFactoryAbi;
25731
25913
  const [poolRaw, poolDeployerRaw] = await Promise.all([publicClient.readContract({
@@ -25741,8 +25923,8 @@ async function inspectAlgebraPool(params) {
25741
25923
  blockNumber
25742
25924
  })]);
25743
25925
  const poolDeployer = (0, viem.getAddress)(poolDeployerRaw);
25744
- if (poolDeployer === ZERO) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Algebra factory ${factory} reports a zero pool deployer.`);
25745
- await requireCode(publicClient, poolDeployer, "Algebra pool deployer", blockNumber);
25926
+ if (poolDeployer === ZERO$2) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Algebra factory ${factory} reports a zero pool deployer.`);
25927
+ await requireCode$1(publicClient, poolDeployer, "Algebra pool deployer", blockNumber);
25746
25928
  let defaultTickSpacing = null;
25747
25929
  let defaultFee = null;
25748
25930
  if (deployment.variant === "integral-v1") {
@@ -25771,7 +25953,7 @@ async function inspectAlgebraPool(params) {
25771
25953
  }
25772
25954
  if (defaultTickSpacing !== null && (!Number.isInteger(defaultTickSpacing) || defaultTickSpacing <= 0)) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `Algebra factory ${factory} reports invalid default tick spacing.`);
25773
25955
  const poolAddress = (0, viem.getAddress)(poolRaw);
25774
- if (poolAddress === ZERO) return {
25956
+ if (poolAddress === ZERO$2) return {
25775
25957
  schemaVersion: 1,
25776
25958
  blockNumber,
25777
25959
  deployment,
@@ -25787,7 +25969,7 @@ async function inspectAlgebraPool(params) {
25787
25969
  pluginConfig: null,
25788
25970
  unlocked: null
25789
25971
  };
25790
- await requireCode(publicClient, poolAddress, "Algebra pool", blockNumber);
25972
+ await requireCode$1(publicClient, poolAddress, "Algebra pool", blockNumber);
25791
25973
  const [actualFactoryRaw, token0Raw, token1Raw, tickSpacingRaw] = await Promise.all([
25792
25974
  publicClient.readContract({
25793
25975
  address: poolAddress,
@@ -25855,7 +26037,7 @@ async function inspectAlgebraPool(params) {
25855
26037
  pluginConfig = Number(state[3]);
25856
26038
  unlocked = state[5];
25857
26039
  const pluginAddress = (0, viem.getAddress)(pluginRaw);
25858
- plugin = pluginAddress === ZERO ? null : pluginAddress;
26040
+ plugin = pluginAddress === ZERO$2 ? null : pluginAddress;
25859
26041
  } else {
25860
26042
  const state = await publicClient.readContract({
25861
26043
  address: poolAddress,
@@ -26029,29 +26211,29 @@ async function prepareAlgebraPool(params) {
26029
26211
  }
26030
26212
  //#endregion
26031
26213
  //#region src/pool-lifecycle/algebra/types.ts
26032
- function invalid$1(message) {
26214
+ function invalid$2(message) {
26033
26215
  throw new PoolLifecycleError("INVALID_INPUT", message);
26034
26216
  }
26035
- function record$1(value, label) {
26036
- if (!value || typeof value !== "object" || Array.isArray(value)) return invalid$1(`${label} must be an object.`);
26217
+ function record$2(value, label) {
26218
+ if (!value || typeof value !== "object" || Array.isArray(value)) return invalid$2(`${label} must be an object.`);
26037
26219
  return value;
26038
26220
  }
26039
26221
  function address$1(value, label, nullable = false) {
26040
26222
  if (nullable && value === null) return null;
26041
- if (typeof value !== "string" || !(0, viem.isAddress)(value, { strict: true })) return invalid$1(`${label} must be a valid address.`);
26223
+ if (typeof value !== "string" || !(0, viem.isAddress)(value, { strict: true })) return invalid$2(`${label} must be a valid address.`);
26042
26224
  const result = (0, viem.getAddress)(value);
26043
- if (result === "0x0000000000000000000000000000000000000000") return invalid$1(`${label} must not be zero.`);
26225
+ if (result === "0x0000000000000000000000000000000000000000") return invalid$2(`${label} must not be zero.`);
26044
26226
  return result;
26045
26227
  }
26046
- function hex(value, label) {
26047
- if (typeof value !== "string" || !/^0x(?:[0-9a-fA-F]{2})*$/.test(value)) return invalid$1(`${label} must be hex bytes.`);
26228
+ function hex$1(value, label) {
26229
+ if (typeof value !== "string" || !/^0x(?:[0-9a-fA-F]{2})*$/.test(value)) return invalid$2(`${label} must be hex bytes.`);
26048
26230
  return value;
26049
26231
  }
26050
26232
  function key(value) {
26051
- const item = record$1(value, "Algebra key");
26233
+ const item = record$2(value, "Algebra key");
26052
26234
  const token0 = address$1(item.token0, "Algebra token0");
26053
26235
  const token1 = address$1(item.token1, "Algebra token1");
26054
- if (BigInt(token0) >= BigInt(token1)) return invalid$1("Algebra tokens must be canonically ordered and distinct.");
26236
+ if (BigInt(token0) >= BigInt(token1)) return invalid$2("Algebra tokens must be canonically ordered and distinct.");
26055
26237
  return {
26056
26238
  token0,
26057
26239
  token1
@@ -26059,30 +26241,30 @@ function key(value) {
26059
26241
  }
26060
26242
  /** Re-derive target and calldata after a plan crosses a UI/CLI/JSON boundary. */
26061
26243
  function validatePreparedAlgebraPoolAction(value) {
26062
- const action = record$1(value, "Prepared Algebra action");
26063
- if (action.schemaVersion !== 1 || action.kind !== "algebra-create" && action.kind !== "algebra-initialize") return invalid$1("Prepared Algebra action kind or schema version is unsupported.");
26064
- if (typeof action.protocol !== "string") return invalid$1("Algebra action protocol must be a string.");
26065
- const tx = record$1(action.transaction, "Algebra transaction");
26066
- if (!Number.isSafeInteger(tx.chainId) || Number(tx.chainId) <= 0) return invalid$1("Algebra chainId must be a positive safe integer.");
26067
- if (tx.value !== 0n) return invalid$1("Algebra lifecycle transactions must have zero value.");
26244
+ const action = record$2(value, "Prepared Algebra action");
26245
+ if (action.schemaVersion !== 1 || action.kind !== "algebra-create" && action.kind !== "algebra-initialize") return invalid$2("Prepared Algebra action kind or schema version is unsupported.");
26246
+ if (typeof action.protocol !== "string") return invalid$2("Algebra action protocol must be a string.");
26247
+ const tx = record$2(action.transaction, "Algebra transaction");
26248
+ if (!Number.isSafeInteger(tx.chainId) || Number(tx.chainId) <= 0) return invalid$2("Algebra chainId must be a positive safe integer.");
26249
+ if (tx.value !== 0n) return invalid$2("Algebra lifecycle transactions must have zero value.");
26068
26250
  const to = address$1(tx.to, "Algebra transaction target");
26069
- const data = hex(tx.data, "Algebra calldata");
26251
+ const data = hex$1(tx.data, "Algebra calldata");
26070
26252
  const deployment = resolveAlgebraLifecycleDeployment({
26071
26253
  chainId: Number(tx.chainId),
26072
26254
  protocol: action.protocol
26073
26255
  });
26074
26256
  if (!deployment) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `No Algebra lifecycle deployment is configured for chain ${tx.chainId} and protocol ${action.protocol}.`);
26075
- const identity = record$1(action.identity, "Algebra identity");
26257
+ const identity = record$2(action.identity, "Algebra identity");
26076
26258
  const poolKey = key(identity.key);
26077
- 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") !== (0, viem.getAddress)(deployment.factory)) return invalid$1("Algebra identity does not match the configured deployment.");
26078
- const expected = record$1(action.expected, "Algebra expectation");
26079
- const preflight = record$1(action.preflight, "Algebra preflight");
26080
- if (typeof preflight.blockNumber !== "bigint" || preflight.blockNumber < 0n) return invalid$1("Algebra preflight blockNumber must be a non-negative bigint.");
26259
+ 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") !== (0, viem.getAddress)(deployment.factory)) return invalid$2("Algebra identity does not match the configured deployment.");
26260
+ const expected = record$2(action.expected, "Algebra expectation");
26261
+ const preflight = record$2(action.preflight, "Algebra preflight");
26262
+ if (typeof preflight.blockNumber !== "bigint" || preflight.blockNumber < 0n) return invalid$2("Algebra preflight blockNumber must be a non-negative bigint.");
26081
26263
  let expectedTo;
26082
26264
  let expectedData;
26083
26265
  if (action.kind === "algebra-create") {
26084
- 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.");
26085
- const pluginData = hex(expected.pluginData, "Algebra plugin data");
26266
+ 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.");
26267
+ const pluginData = hex$1(expected.pluginData, "Algebra plugin data");
26086
26268
  expectedTo = (0, viem.getAddress)(deployment.factory);
26087
26269
  expectedData = deployment.createPool === "pair-with-plugin-data" ? (0, viem.encodeFunctionData)({
26088
26270
  abi: algebraIntegralPluginDataFactoryAbi,
@@ -26099,11 +26281,11 @@ function validatePreparedAlgebraPoolAction(value) {
26099
26281
  });
26100
26282
  } else {
26101
26283
  const pool = address$1(identity.poolAddress, "Algebra pool address");
26102
- 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.");
26284
+ 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.");
26103
26285
  try {
26104
26286
  validateSqrtPriceX96(expected.sqrtPriceX96);
26105
26287
  } catch (error) {
26106
- return invalid$1(error instanceof Error ? error.message : "Invalid Algebra price.");
26288
+ return invalid$2(error instanceof Error ? error.message : "Invalid Algebra price.");
26107
26289
  }
26108
26290
  expectedTo = pool;
26109
26291
  expectedData = (0, viem.encodeFunctionData)({
@@ -26112,7 +26294,7 @@ function validatePreparedAlgebraPoolAction(value) {
26112
26294
  args: [expected.sqrtPriceX96]
26113
26295
  });
26114
26296
  }
26115
- if (to !== expectedTo || data.toLowerCase() !== expectedData.toLowerCase()) return invalid$1("Algebra transaction does not match its trusted deployment and expectation.");
26297
+ if (to !== expectedTo || data.toLowerCase() !== expectedData.toLowerCase()) return invalid$2("Algebra transaction does not match its trusted deployment and expectation.");
26116
26298
  return deployment;
26117
26299
  }
26118
26300
  function deserializePreparedAlgebraPoolAction(serialized) {
@@ -26390,6 +26572,528 @@ async function verifyAlgebraPoolAction(params) {
26390
26572
  }
26391
26573
  }
26392
26574
  //#endregion
26575
+ //#region src/pool-lifecycle/aerodrome-slipstream/key.ts
26576
+ function canonicalizeAerodromeSlipstreamPoolKey(key) {
26577
+ let tokenA;
26578
+ let tokenB;
26579
+ try {
26580
+ tokenA = (0, viem.getAddress)(key.tokenA);
26581
+ tokenB = (0, viem.getAddress)(key.tokenB);
26582
+ } catch {
26583
+ throw new PoolLifecycleError("INVALID_INPUT", "Slipstream pool tokens must be valid addresses.");
26584
+ }
26585
+ if (tokenA === tokenB || tokenA === "0x0000000000000000000000000000000000000000" || tokenB === "0x0000000000000000000000000000000000000000") throw new PoolLifecycleError("INVALID_INPUT", "Slipstream pool tokens must be distinct non-zero addresses.");
26586
+ 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.");
26587
+ return BigInt(tokenA) < BigInt(tokenB) ? {
26588
+ token0: tokenA,
26589
+ token1: tokenB,
26590
+ tickSpacing: key.tickSpacing
26591
+ } : {
26592
+ token0: tokenB,
26593
+ token1: tokenA,
26594
+ tickSpacing: key.tickSpacing
26595
+ };
26596
+ }
26597
+ function assertAerodromeSlipstreamInitialPrice(value) {
26598
+ if (typeof value !== "bigint" || value <= 0n || value >= 1n << 160n) throw new PoolLifecycleError("INVALID_INPUT", "Slipstream sqrtPriceX96 must be a non-zero uint160.");
26599
+ return value;
26600
+ }
26601
+ //#endregion
26602
+ //#region src/pool-lifecycle/aerodrome-slipstream/types.ts
26603
+ function invalid$1(message) {
26604
+ throw new PoolLifecycleError("INVALID_INPUT", message);
26605
+ }
26606
+ function record$1(value, label) {
26607
+ if (!value || typeof value !== "object" || Array.isArray(value)) return invalid$1(`${label} must be an object.`);
26608
+ return value;
26609
+ }
26610
+ function nonZeroAddress(value, label) {
26611
+ if (typeof value !== "string" || !(0, viem.isAddress)(value, { strict: true })) return invalid$1(`${label} must be a valid address.`);
26612
+ const address = (0, viem.getAddress)(value);
26613
+ if (address === "0x0000000000000000000000000000000000000000") return invalid$1(`${label} must not be zero.`);
26614
+ return address;
26615
+ }
26616
+ function hex(value, label) {
26617
+ if (typeof value !== "string" || !/^0x(?:[0-9a-fA-F]{2})*$/.test(value)) return invalid$1(`${label} must be hex bytes.`);
26618
+ return value;
26619
+ }
26620
+ /** Re-derive all trusted calldata after a plan crosses a JSON boundary. */
26621
+ function validatePreparedAerodromeSlipstreamPoolAction(value) {
26622
+ const action = record$1(value, "Prepared Slipstream action");
26623
+ 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.");
26624
+ const transaction = record$1(action.transaction, "Slipstream transaction");
26625
+ if (!Number.isSafeInteger(transaction.chainId) || Number(transaction.chainId) <= 0 || transaction.value !== 0n) return invalid$1("Slipstream transaction chainId or value is invalid.");
26626
+ const deployment = resolveAerodromeSlipstreamLifecycleDeployment({
26627
+ chainId: Number(transaction.chainId),
26628
+ protocol: action.protocol
26629
+ });
26630
+ if (!deployment) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", "No Slipstream lifecycle deployment is configured for this action.");
26631
+ const identity = record$1(action.identity, "Slipstream identity");
26632
+ const key = canonicalizeAerodromeSlipstreamPoolKey({
26633
+ tokenA: nonZeroAddress(record$1(identity.key, "Slipstream key").token0, "Slipstream token0"),
26634
+ tokenB: nonZeroAddress(record$1(identity.key, "Slipstream key").token1, "Slipstream token1"),
26635
+ tickSpacing: Number(record$1(identity.key, "Slipstream key").tickSpacing)
26636
+ });
26637
+ 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.");
26638
+ const sqrtPriceX96 = assertAerodromeSlipstreamInitialPrice(record$1(action.expected, "Slipstream expectation").sqrtPriceX96);
26639
+ const preflight = record$1(action.preflight, "Slipstream preflight");
26640
+ 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.");
26641
+ const expectedData = (0, viem.encodeFunctionData)({
26642
+ abi: aerodromeSlipstreamFactoryAbi,
26643
+ functionName: "createPool",
26644
+ args: [
26645
+ key.token0,
26646
+ key.token1,
26647
+ key.tickSpacing,
26648
+ sqrtPriceX96
26649
+ ]
26650
+ });
26651
+ 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.");
26652
+ return deployment;
26653
+ }
26654
+ function deserializePreparedAerodromeSlipstreamPoolAction(serialized) {
26655
+ const action = deserializePreparedPoolAction(serialized);
26656
+ validatePreparedAerodromeSlipstreamPoolAction(action);
26657
+ return action;
26658
+ }
26659
+ //#endregion
26660
+ //#region src/pool-lifecycle/aerodrome-slipstream/inspect.ts
26661
+ const ZERO$1 = (0, viem.getAddress)("0x0000000000000000000000000000000000000000");
26662
+ async function requireRuntimeHash(client, address, expected, label, blockNumber) {
26663
+ const code = await client.getCode({
26664
+ address,
26665
+ blockNumber
26666
+ });
26667
+ if (!code || code === "0x") throw new PoolLifecycleError("CONTRACT_NOT_DEPLOYED", `${label} ${address} has no bytecode at block ${blockNumber}.`);
26668
+ if ((0, viem.keccak256)(code) !== expected) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", `${label} ${address} runtime hash does not match the configured deployment.`);
26669
+ }
26670
+ async function requireCode(client, address, label, blockNumber) {
26671
+ const code = await client.getCode({
26672
+ address,
26673
+ blockNumber
26674
+ });
26675
+ if (!code || code === "0x") throw new PoolLifecycleError("CONTRACT_NOT_DEPLOYED", `${label} ${address} has no bytecode at block ${blockNumber}.`);
26676
+ }
26677
+ async function inspectAerodromeSlipstreamPool(params) {
26678
+ const deployment = validateAerodromeSlipstreamLifecycleDeployment(params.deployment);
26679
+ const key = canonicalizeAerodromeSlipstreamPoolKey(params.key);
26680
+ if (await params.publicClient.getChainId() !== deployment.chainId) throw new PoolLifecycleError("CHAIN_MISMATCH", `Public client chain does not match Slipstream deployment chain ${deployment.chainId}.`);
26681
+ const blockNumber = params.blockNumber ?? await params.publicClient.getBlockNumber();
26682
+ await Promise.all([
26683
+ requireRuntimeHash(params.publicClient, deployment.factory, deployment.factoryRuntimeCodeHash, "Slipstream factory", blockNumber),
26684
+ requireRuntimeHash(params.publicClient, deployment.poolImplementation, deployment.poolImplementationRuntimeCodeHash, "Slipstream pool implementation", blockNumber),
26685
+ requireCode(params.publicClient, key.token0, "token0", blockNumber),
26686
+ requireCode(params.publicClient, key.token1, "token1", blockNumber)
26687
+ ]);
26688
+ const [implementation, factoryRegistry, voter, enabledFee, pool, legacyCLFactory] = await Promise.all([
26689
+ params.publicClient.readContract({
26690
+ address: deployment.factory,
26691
+ abi: aerodromeSlipstreamFactoryAbi,
26692
+ functionName: "poolImplementation",
26693
+ blockNumber
26694
+ }),
26695
+ params.publicClient.readContract({
26696
+ address: deployment.factory,
26697
+ abi: aerodromeSlipstreamFactoryAbi,
26698
+ functionName: "factoryRegistry",
26699
+ blockNumber
26700
+ }),
26701
+ params.publicClient.readContract({
26702
+ address: deployment.factory,
26703
+ abi: aerodromeSlipstreamFactoryAbi,
26704
+ functionName: "voter",
26705
+ blockNumber
26706
+ }),
26707
+ params.publicClient.readContract({
26708
+ address: deployment.factory,
26709
+ abi: aerodromeSlipstreamFactoryAbi,
26710
+ functionName: "tickSpacingToFee",
26711
+ args: [key.tickSpacing],
26712
+ blockNumber
26713
+ }),
26714
+ params.publicClient.readContract({
26715
+ address: deployment.factory,
26716
+ abi: aerodromeSlipstreamFactoryAbi,
26717
+ functionName: "getPool",
26718
+ args: [
26719
+ key.token0,
26720
+ key.token1,
26721
+ key.tickSpacing
26722
+ ],
26723
+ blockNumber
26724
+ }),
26725
+ deployment.legacyCLFactory === null ? Promise.resolve(null) : params.publicClient.readContract({
26726
+ address: deployment.factory,
26727
+ abi: aerodromeSlipstreamFactoryAbi,
26728
+ functionName: "legacyCLFactory",
26729
+ blockNumber
26730
+ })
26731
+ ]);
26732
+ if ((0, viem.getAddress)(implementation) !== deployment.poolImplementation || (0, viem.getAddress)(factoryRegistry) !== deployment.factoryRegistry || (0, viem.getAddress)(voter) !== deployment.voter || deployment.legacyCLFactory !== null && (0, viem.getAddress)(legacyCLFactory) !== deployment.legacyCLFactory) throw new PoolLifecycleError("DEPLOYMENT_MISMATCH", "Slipstream factory immutable deployment references do not match configuration.");
26733
+ const fee = Number(enabledFee);
26734
+ if (!Number.isSafeInteger(fee) || fee <= 0) throw new PoolLifecycleError("INVALID_INPUT", `Slipstream tick spacing ${key.tickSpacing} is not enabled.`);
26735
+ const poolAddress = (0, viem.getAddress)(pool);
26736
+ if (poolAddress === ZERO$1) return {
26737
+ schemaVersion: 1,
26738
+ blockNumber,
26739
+ deployment,
26740
+ key,
26741
+ enabledFee: fee,
26742
+ status: "absent",
26743
+ poolAddress: null,
26744
+ sqrtPriceX96: 0n,
26745
+ tick: null
26746
+ };
26747
+ const [isPool, actualFactory, token0, token1, tickSpacing, slot0] = await Promise.all([
26748
+ params.publicClient.readContract({
26749
+ address: deployment.factory,
26750
+ abi: aerodromeSlipstreamFactoryAbi,
26751
+ functionName: "isPool",
26752
+ args: [poolAddress],
26753
+ blockNumber
26754
+ }),
26755
+ params.publicClient.readContract({
26756
+ address: poolAddress,
26757
+ abi: aerodromeSlipstreamPoolAbi,
26758
+ functionName: "factory",
26759
+ blockNumber
26760
+ }),
26761
+ params.publicClient.readContract({
26762
+ address: poolAddress,
26763
+ abi: aerodromeSlipstreamPoolAbi,
26764
+ functionName: "token0",
26765
+ blockNumber
26766
+ }),
26767
+ params.publicClient.readContract({
26768
+ address: poolAddress,
26769
+ abi: aerodromeSlipstreamPoolAbi,
26770
+ functionName: "token1",
26771
+ blockNumber
26772
+ }),
26773
+ params.publicClient.readContract({
26774
+ address: poolAddress,
26775
+ abi: aerodromeSlipstreamPoolAbi,
26776
+ functionName: "tickSpacing",
26777
+ blockNumber
26778
+ }),
26779
+ params.publicClient.readContract({
26780
+ address: poolAddress,
26781
+ abi: aerodromeSlipstreamPoolAbi,
26782
+ functionName: "slot0",
26783
+ blockNumber
26784
+ })
26785
+ ]);
26786
+ await requireRuntimeHash(params.publicClient, poolAddress, deployment.poolProxyRuntimeCodeHash, "Slipstream pool proxy", blockNumber);
26787
+ if (!isPool || (0, viem.getAddress)(actualFactory) !== deployment.factory || (0, viem.getAddress)(token0) !== key.token0 || (0, viem.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.`);
26788
+ return {
26789
+ schemaVersion: 1,
26790
+ blockNumber,
26791
+ deployment,
26792
+ key,
26793
+ enabledFee: fee,
26794
+ status: "initialized",
26795
+ poolAddress,
26796
+ sqrtPriceX96: slot0[0],
26797
+ tick: Number(slot0[1])
26798
+ };
26799
+ }
26800
+ //#endregion
26801
+ //#region src/pool-lifecycle/aerodrome-slipstream/actions.ts
26802
+ function assertAbsentPreflight(deployment, key, preflight) {
26803
+ 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.");
26804
+ }
26805
+ function buildAerodromeSlipstreamCreateAndInitializeTransaction(params) {
26806
+ const deployment = assertLatestAerodromeSlipstreamLifecycleDeployment(params.deployment);
26807
+ const key = canonicalizeAerodromeSlipstreamPoolKey(params.key);
26808
+ const sqrtPriceX96 = assertAerodromeSlipstreamInitialPrice(params.initialPrice);
26809
+ assertAbsentPreflight(deployment, key, params.preflight);
26810
+ return {
26811
+ schemaVersion: 1,
26812
+ kind: "aerodrome-slipstream-create-and-initialize",
26813
+ protocol: deployment.protocol,
26814
+ transaction: {
26815
+ chainId: deployment.chainId,
26816
+ to: deployment.factory,
26817
+ data: (0, viem.encodeFunctionData)({
26818
+ abi: aerodromeSlipstreamFactoryAbi,
26819
+ functionName: "createPool",
26820
+ args: [
26821
+ key.token0,
26822
+ key.token1,
26823
+ key.tickSpacing,
26824
+ sqrtPriceX96
26825
+ ]
26826
+ }),
26827
+ value: 0n
26828
+ },
26829
+ identity: {
26830
+ family: deployment.family,
26831
+ adapter: deployment.adapter,
26832
+ version: deployment.version,
26833
+ chainId: deployment.chainId,
26834
+ factory: (0, viem.getAddress)(deployment.factory),
26835
+ key,
26836
+ poolAddress: null
26837
+ },
26838
+ expected: { sqrtPriceX96 },
26839
+ preflight: {
26840
+ blockNumber: params.preflight.blockNumber,
26841
+ status: "absent",
26842
+ poolAddress: null
26843
+ }
26844
+ };
26845
+ }
26846
+ async function prepareAerodromeSlipstreamPool(params) {
26847
+ const deployment = assertLatestAerodromeSlipstreamLifecycleDeployment(params.deployment);
26848
+ const snapshot = await inspectAerodromeSlipstreamPool({
26849
+ ...params,
26850
+ deployment
26851
+ });
26852
+ const sqrtPriceX96 = assertAerodromeSlipstreamInitialPrice(params.initialPrice);
26853
+ if (snapshot.status === "absent") return {
26854
+ status: "ready",
26855
+ snapshot,
26856
+ action: buildAerodromeSlipstreamCreateAndInitializeTransaction({
26857
+ deployment: snapshot.deployment,
26858
+ key: params.key,
26859
+ initialPrice: sqrtPriceX96,
26860
+ preflight: snapshot
26861
+ })
26862
+ };
26863
+ if (snapshot.sqrtPriceX96 !== sqrtPriceX96) throw new PoolLifecycleError("POOL_STATE_MISMATCH", `Slipstream pool ${snapshot.poolAddress} is already initialized at a different price.`);
26864
+ return {
26865
+ status: "already-initialized-matching",
26866
+ snapshot,
26867
+ action: null
26868
+ };
26869
+ }
26870
+ /** Prepare a new pool only through the newest verified factory in this family. */
26871
+ async function prepareLatestAerodromeSlipstreamPool(params) {
26872
+ const deployment = resolveLatestAerodromeSlipstreamLifecycleDeployment(params.chainId);
26873
+ if (!deployment) throw new PoolLifecycleError("UNSUPPORTED_DEPLOYMENT", `No latest Aerodrome Slipstream lifecycle deployment is configured for chain ${params.chainId}.`);
26874
+ return prepareAerodromeSlipstreamPool({
26875
+ ...params,
26876
+ deployment
26877
+ });
26878
+ }
26879
+ //#endregion
26880
+ //#region src/pool-lifecycle/aerodrome-slipstream/simulate.ts
26881
+ const ZERO = (0, viem.getAddress)("0x0000000000000000000000000000000000000000");
26882
+ async function simulateAerodromeSlipstreamPoolAction(params) {
26883
+ if (!(0, viem.isAddress)(params.account, { strict: true }) || (0, viem.getAddress)(params.account) === ZERO) throw new PoolLifecycleError("INVALID_INPUT", "Simulation account must be a non-zero EVM address.");
26884
+ const deployment = validatePreparedAerodromeSlipstreamPoolAction(params.action);
26885
+ const blockNumber = params.blockNumber ?? await params.publicClient.getBlockNumber();
26886
+ const snapshot = await inspectAerodromeSlipstreamPool({
26887
+ publicClient: params.publicClient,
26888
+ deployment,
26889
+ key: {
26890
+ tokenA: params.action.identity.key.token0,
26891
+ tokenB: params.action.identity.key.token1,
26892
+ tickSpacing: params.action.identity.key.tickSpacing
26893
+ },
26894
+ blockNumber
26895
+ });
26896
+ if (snapshot.status !== "absent") throw new PoolLifecycleError("POOL_STATE_MISMATCH", `Slipstream pool already exists at ${snapshot.poolAddress}; refresh the action.`);
26897
+ try {
26898
+ const request = {
26899
+ account: (0, viem.getAddress)(params.account),
26900
+ to: params.action.transaction.to,
26901
+ data: params.action.transaction.data,
26902
+ value: 0n,
26903
+ blockNumber
26904
+ };
26905
+ const [call, gasEstimate] = await Promise.all([params.publicClient.call({
26906
+ ...request,
26907
+ batch: false
26908
+ }), params.publicClient.estimateGas(request)]);
26909
+ if (!call.data || call.data === "0x") throw new PoolLifecycleError("SIMULATION_FAILED", "Slipstream create simulation returned no pool address.");
26910
+ return {
26911
+ transaction: params.action.transaction,
26912
+ blockNumber,
26913
+ returnData: call.data,
26914
+ returnedPoolAddress: (0, viem.getAddress)((0, viem.decodeFunctionResult)({
26915
+ abi: aerodromeSlipstreamFactoryAbi,
26916
+ functionName: "createPool",
26917
+ data: call.data
26918
+ })),
26919
+ gasEstimate
26920
+ };
26921
+ } catch (error) {
26922
+ if (error instanceof PoolLifecycleError) throw error;
26923
+ throw new PoolLifecycleError("SIMULATION_FAILED", error instanceof Error ? error.message : "Slipstream action simulation failed.", error);
26924
+ }
26925
+ }
26926
+ //#endregion
26927
+ //#region src/pool-lifecycle/aerodrome-slipstream/verify.ts
26928
+ function assertCanonicalLog(log, receipt) {
26929
+ 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.");
26930
+ }
26931
+ function decodeAerodromeSlipstreamPoolActionReceipt(action, receipt) {
26932
+ validatePreparedAerodromeSlipstreamPoolAction(action);
26933
+ const created = [];
26934
+ const initialized = [];
26935
+ for (const log of receipt.logs) {
26936
+ if ((0, viem.getAddress)(log.address) === action.identity.factory) try {
26937
+ const event = (0, viem.decodeEventLog)({
26938
+ abi: aerodromeSlipstreamFactoryAbi,
26939
+ eventName: "PoolCreated",
26940
+ data: log.data,
26941
+ topics: log.topics
26942
+ });
26943
+ if ((0, viem.getAddress)(event.args.token0) === action.identity.key.token0 && (0, viem.getAddress)(event.args.token1) === action.identity.key.token1 && Number(event.args.tickSpacing) === action.identity.key.tickSpacing) {
26944
+ assertCanonicalLog(log, receipt);
26945
+ created.push({
26946
+ poolAddress: (0, viem.getAddress)(event.args.pool),
26947
+ logIndex: log.logIndex
26948
+ });
26949
+ }
26950
+ } catch (error) {
26951
+ if (error instanceof PoolLifecycleError) throw error;
26952
+ }
26953
+ try {
26954
+ const event = (0, viem.decodeEventLog)({
26955
+ abi: aerodromeSlipstreamPoolAbi,
26956
+ eventName: "Initialize",
26957
+ data: log.data,
26958
+ topics: log.topics
26959
+ });
26960
+ assertCanonicalLog(log, receipt);
26961
+ initialized.push({
26962
+ poolAddress: (0, viem.getAddress)(log.address),
26963
+ sqrtPriceX96: event.args.sqrtPriceX96,
26964
+ tick: Number(event.args.tick),
26965
+ logIndex: log.logIndex
26966
+ });
26967
+ } catch (error) {
26968
+ if (error instanceof PoolLifecycleError) throw error;
26969
+ }
26970
+ }
26971
+ if (created.length > 1 || initialized.length > 1) throw new PoolLifecycleError("POOL_STATE_MISMATCH", "Receipt contains duplicate matching Slipstream lifecycle events.");
26972
+ return {
26973
+ receiptStatus: receipt.status,
26974
+ poolCreated: created[0] ?? null,
26975
+ initialization: initialized[0] ?? null
26976
+ };
26977
+ }
26978
+ async function verifyAerodromeSlipstreamPoolAction(params) {
26979
+ const deployment = validatePreparedAerodromeSlipstreamPoolAction(params.action);
26980
+ let receipt;
26981
+ try {
26982
+ const [chainId, transaction, canonical] = await Promise.all([
26983
+ params.publicClient.getChainId(),
26984
+ params.publicClient.getTransaction({ hash: params.receipt.transactionHash }),
26985
+ params.publicClient.getTransactionReceipt({ hash: params.receipt.transactionHash })
26986
+ ]);
26987
+ if (chainId !== deployment.chainId || canonical.transactionHash !== params.receipt.transactionHash || canonical.blockHash !== params.receipt.blockHash || transaction.to === null || transaction.value !== 0n || (0, viem.getAddress)(transaction.to) !== params.action.transaction.to || transaction.input.toLowerCase() !== params.action.transaction.data.toLowerCase()) return {
26988
+ verified: false,
26989
+ outcome: "wrong-deployment",
26990
+ blockNumber: params.receipt.blockNumber,
26991
+ identity: params.action.identity,
26992
+ state: null,
26993
+ evidence: {
26994
+ receiptStatus: params.receipt.status,
26995
+ poolCreated: null,
26996
+ initialization: null
26997
+ },
26998
+ warnings: ["Canonical transaction does not match the prepared Slipstream action."]
26999
+ };
27000
+ receipt = canonical;
27001
+ } catch (error) {
27002
+ return {
27003
+ verified: false,
27004
+ outcome: "verification-unavailable",
27005
+ blockNumber: params.receipt.blockNumber,
27006
+ identity: params.action.identity,
27007
+ state: null,
27008
+ evidence: {
27009
+ receiptStatus: params.receipt.status,
27010
+ poolCreated: null,
27011
+ initialization: null
27012
+ },
27013
+ warnings: [error instanceof Error ? error.message : "Could not load canonical transaction evidence."]
27014
+ };
27015
+ }
27016
+ let evidence;
27017
+ try {
27018
+ evidence = decodeAerodromeSlipstreamPoolActionReceipt(params.action, receipt);
27019
+ } catch (error) {
27020
+ return {
27021
+ verified: false,
27022
+ outcome: "wrong-deployment",
27023
+ blockNumber: receipt.blockNumber,
27024
+ identity: params.action.identity,
27025
+ state: null,
27026
+ evidence: {
27027
+ receiptStatus: receipt.status,
27028
+ poolCreated: null,
27029
+ initialization: null
27030
+ },
27031
+ warnings: [error instanceof Error ? error.message : "Invalid receipt evidence."]
27032
+ };
27033
+ }
27034
+ if (receipt.status === "reverted") return {
27035
+ verified: false,
27036
+ outcome: "reverted",
27037
+ blockNumber: receipt.blockNumber,
27038
+ identity: params.action.identity,
27039
+ state: null,
27040
+ evidence,
27041
+ warnings: []
27042
+ };
27043
+ try {
27044
+ const snapshot = await inspectAerodromeSlipstreamPool({
27045
+ publicClient: params.publicClient,
27046
+ deployment,
27047
+ key: {
27048
+ tokenA: params.action.identity.key.token0,
27049
+ tokenB: params.action.identity.key.token1,
27050
+ tickSpacing: params.action.identity.key.tickSpacing
27051
+ },
27052
+ blockNumber: receipt.blockNumber
27053
+ });
27054
+ const identity = {
27055
+ ...params.action.identity,
27056
+ poolAddress: snapshot.poolAddress
27057
+ };
27058
+ 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 {
27059
+ verified: false,
27060
+ outcome: "wrong-deployment",
27061
+ blockNumber: receipt.blockNumber,
27062
+ identity,
27063
+ state: snapshot,
27064
+ evidence,
27065
+ warnings: ["Receipt evidence does not prove the expected atomic Slipstream lifecycle."]
27066
+ };
27067
+ return snapshot.sqrtPriceX96 === params.action.expected.sqrtPriceX96 ? {
27068
+ verified: true,
27069
+ outcome: "created-and-initialized",
27070
+ blockNumber: receipt.blockNumber,
27071
+ identity,
27072
+ state: snapshot,
27073
+ evidence,
27074
+ warnings: []
27075
+ } : {
27076
+ verified: true,
27077
+ outcome: "initialized-then-price-moved",
27078
+ blockNumber: receipt.blockNumber,
27079
+ identity,
27080
+ state: snapshot,
27081
+ evidence,
27082
+ warnings: ["Pool price moved after initialization in the receipt block."]
27083
+ };
27084
+ } catch (error) {
27085
+ return {
27086
+ verified: false,
27087
+ outcome: "wrong-deployment",
27088
+ blockNumber: receipt.blockNumber,
27089
+ identity: params.action.identity,
27090
+ state: null,
27091
+ evidence,
27092
+ warnings: [error instanceof Error ? error.message : "Slipstream state verification failed."]
27093
+ };
27094
+ }
27095
+ }
27096
+ //#endregion
26393
27097
  //#region src/pool-lifecycle/v3/types.ts
26394
27098
  function invalidPreparedAction(message) {
26395
27099
  throw new PoolLifecycleError("INVALID_INPUT", message);
@@ -28036,6 +28740,7 @@ async function verifyV4PoolAction(params) {
28036
28740
  */
28037
28741
  //#endregion
28038
28742
  exports.AERODROME_PROTOCOLS = AERODROME_PROTOCOLS;
28743
+ exports.AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS = AERODROME_SLIPSTREAM_LIFECYCLE_DEPLOYMENTS;
28039
28744
  exports.ALGEBRA_INTEGRAL_PROTOCOLS = ALGEBRA_INTEGRAL_PROTOCOLS;
28040
28745
  exports.ALGEBRA_INTEGRAL_V_2_0_PROTOCOLS = ALGEBRA_INTEGRAL_V_2_0_PROTOCOLS;
28041
28746
  exports.ALGEBRA_LIFECYCLE_DEPLOYMENTS = ALGEBRA_LIFECYCLE_DEPLOYMENTS;
@@ -28093,6 +28798,8 @@ exports.V4_ZERO_ADDRESS = V4_ZERO_ADDRESS;
28093
28798
  exports.VAULT_FEES_ABI = VAULT_FEES_ABI;
28094
28799
  exports.VaultClient = VaultClient;
28095
28800
  exports.abis = abis;
28801
+ exports.aerodromeSlipstreamFactoryAbi = aerodromeSlipstreamFactoryAbi;
28802
+ exports.aerodromeSlipstreamPoolAbi = aerodromeSlipstreamPoolAbi;
28096
28803
  exports.algebraCustomPoolEntryPointAbi = algebraCustomPoolEntryPointAbi;
28097
28804
  exports.algebraDirectionalPoolStateAbi = algebraDirectionalPoolStateAbi;
28098
28805
  exports.algebraIntegralPairFactoryAbi = algebraIntegralPairFactoryAbi;
@@ -28105,7 +28812,9 @@ exports.apechainAddresses = apechainAddresses;
28105
28812
  exports.arbitrumAddresses = arbitrumAddresses;
28106
28813
  exports.arbitrumgoerliAddresses = arbitrumgoerliAddresses;
28107
28814
  exports.arthswapConfig = arthswapConfig;
28815
+ exports.assertAerodromeSlipstreamInitialPrice = assertAerodromeSlipstreamInitialPrice;
28108
28816
  exports.assertAlgebraInitialPrice = assertAlgebraInitialPrice;
28817
+ exports.assertLatestAerodromeSlipstreamLifecycleDeployment = assertLatestAerodromeSlipstreamLifecycleDeployment;
28109
28818
  exports.assertPreparedV3PoolAction = assertPreparedV3PoolAction;
28110
28819
  exports.assertPreparedV4PoolAction = assertPreparedV4PoolAction;
28111
28820
  exports.assertV3InitialPrice = assertV3InitialPrice;
@@ -28122,6 +28831,7 @@ exports.bittensorAddresses = bittensorAddresses;
28122
28831
  exports.bittensorUniV3Config = bittensorUniV3Config;
28123
28832
  exports.blastAddresses = blastAddresses;
28124
28833
  exports.bscAddresses = bscAddresses;
28834
+ exports.buildAerodromeSlipstreamCreateAndInitializeTransaction = buildAerodromeSlipstreamCreateAndInitializeTransaction;
28125
28835
  exports.buildAlgebraCreatePoolTransaction = buildAlgebraCreatePoolTransaction;
28126
28836
  exports.buildAlgebraInitializePoolTransaction = buildAlgebraInitializePoolTransaction;
28127
28837
  exports.buildV3CreateAndInitializeTransaction = buildV3CreateAndInitializeTransaction;
@@ -28131,6 +28841,7 @@ exports.buildV4InitializePoolTransaction = buildV4InitializePoolTransaction;
28131
28841
  exports.calculateLimitPrice = calculateLimitPrice;
28132
28842
  exports.calculateSwapAmount = calculateSwapAmount;
28133
28843
  exports.camelotConfig = camelotConfig;
28844
+ exports.canonicalizeAerodromeSlipstreamPoolKey = canonicalizeAerodromeSlipstreamPoolKey;
28134
28845
  exports.canonicalizeAlgebraPoolKey = canonicalizeAlgebraPoolKey;
28135
28846
  exports.canonicalizeV3PoolKey = canonicalizeV3PoolKey;
28136
28847
  exports.canonicalizeV4PoolKey = canonicalizeV4PoolKey;
@@ -28138,10 +28849,12 @@ exports.celoAddresses = celoAddresses;
28138
28849
  exports.chainIdToName = chainIdToName;
28139
28850
  exports.chainNameToId = chainNameToId;
28140
28851
  exports.crustConfig = crustConfig;
28852
+ exports.decodeAerodromeSlipstreamPoolActionReceipt = decodeAerodromeSlipstreamPoolActionReceipt;
28141
28853
  exports.decodeAlgebraPoolActionReceipt = decodeAlgebraPoolActionReceipt;
28142
28854
  exports.decodeV3PoolActionReceipt = decodeV3PoolActionReceipt;
28143
28855
  exports.decodeV4PoolActionReceipt = decodeV4PoolActionReceipt;
28144
28856
  exports.deprecatedBundlesURL = deprecatedBundlesURL;
28857
+ exports.deserializePreparedAerodromeSlipstreamPoolAction = deserializePreparedAerodromeSlipstreamPoolAction;
28145
28858
  exports.deserializePreparedAlgebraPoolAction = deserializePreparedAlgebraPoolAction;
28146
28859
  exports.deserializePreparedPoolAction = deserializePreparedPoolAction;
28147
28860
  exports.deserializePreparedV3PoolAction = deserializePreparedV3PoolAction;
@@ -28205,6 +28918,7 @@ exports.hemiAddresses = hemiAddresses;
28205
28918
  exports.henjinConfig = henjinConfig;
28206
28919
  exports.herculesConfig = herculesConfig;
28207
28920
  exports.horizaConfig = horizaConfig;
28921
+ exports.inspectAerodromeSlipstreamPool = inspectAerodromeSlipstreamPool;
28208
28922
  exports.inspectAlgebraCustomPoolEntryPoint = inspectAlgebraCustomPoolEntryPoint;
28209
28923
  exports.inspectAlgebraPool = inspectAlgebraPool;
28210
28924
  exports.inspectV3Pool = inspectV3Pool;
@@ -28258,7 +28972,9 @@ exports.parseExactDecimal = parseExactDecimal;
28258
28972
  exports.polygonAddresses = polygonAddresses;
28259
28973
  exports.polyzkevmAddresses = polyzkevmAddresses;
28260
28974
  exports.poolsharkConfig = poolsharkConfig;
28975
+ exports.prepareAerodromeSlipstreamPool = prepareAerodromeSlipstreamPool;
28261
28976
  exports.prepareAlgebraPool = prepareAlgebraPool;
28977
+ exports.prepareLatestAerodromeSlipstreamPool = prepareLatestAerodromeSlipstreamPool;
28262
28978
  exports.prepareV3CreateAndInitialize = prepareV3CreateAndInitialize;
28263
28979
  exports.prepareV3CreatePool = prepareV3CreatePool;
28264
28980
  exports.prepareV3InitializePool = prepareV3InitializePool;
@@ -28267,8 +28983,10 @@ exports.quickSwapAlgebraConfig = quickSwapAlgebraConfig;
28267
28983
  exports.quickSwapConfig = quickSwapConfig;
28268
28984
  exports.quickSwapIntegralConfig = quickSwapIntegralConfig;
28269
28985
  exports.quickSwapUniv3Config = quickSwapUniv3Config;
28986
+ exports.resolveAerodromeSlipstreamLifecycleDeployment = resolveAerodromeSlipstreamLifecycleDeployment;
28270
28987
  exports.resolveAlgebraLifecycleDeployment = resolveAlgebraLifecycleDeployment;
28271
28988
  exports.resolveCurrentV4LifecycleDeployment = resolveCurrentV4LifecycleDeployment;
28989
+ exports.resolveLatestAerodromeSlipstreamLifecycleDeployment = resolveLatestAerodromeSlipstreamLifecycleDeployment;
28272
28990
  exports.resolvePoolLifecycleDeployment = resolvePoolLifecycleDeployment;
28273
28991
  exports.resolveV3LifecycleDeployment = resolveV3LifecycleDeployment;
28274
28992
  exports.resolveV4LifecycleDeployment = resolveV4LifecycleDeployment;
@@ -28282,6 +29000,7 @@ exports.seiAddresses = seiAddresses;
28282
29000
  exports.serializePreparedPoolAction = serializePreparedPoolAction;
28283
29001
  exports.shadowConfig = shadowConfig;
28284
29002
  exports.shouldValidateUniswapV4VaultHook = shouldValidateUniswapV4VaultHook;
29003
+ exports.simulateAerodromeSlipstreamPoolAction = simulateAerodromeSlipstreamPoolAction;
28285
29004
  exports.simulateAlgebraPoolAction = simulateAlgebraPoolAction;
28286
29005
  exports.simulateSwap = simulateSwap;
28287
29006
  exports.simulateV3PoolAction = simulateV3PoolAction;
@@ -28313,7 +29032,9 @@ exports.v3PoolInitializerAbi = v3PoolInitializerAbi;
28313
29032
  exports.v4PoolKeysEqual = v4PoolKeysEqual;
28314
29033
  exports.v4PoolManagerAbi = v4PoolManagerAbi;
28315
29034
  exports.v4StateViewAbi = v4StateViewAbi;
29035
+ exports.validateAerodromeSlipstreamLifecycleDeployment = validateAerodromeSlipstreamLifecycleDeployment;
28316
29036
  exports.validateAlgebraLifecycleDeployment = validateAlgebraLifecycleDeployment;
29037
+ exports.validatePreparedAerodromeSlipstreamPoolAction = validatePreparedAerodromeSlipstreamPoolAction;
28317
29038
  exports.validatePreparedAlgebraPoolAction = validatePreparedAlgebraPoolAction;
28318
29039
  exports.validatePreparedV3PoolAction = validatePreparedV3PoolAction;
28319
29040
  exports.validatePreparedV4PoolAction = validatePreparedV4PoolAction;
@@ -28322,6 +29043,7 @@ exports.validateSqrtPriceX96 = validateSqrtPriceX96;
28322
29043
  exports.validateSwapParams = validateSwapParams;
28323
29044
  exports.validateV4LifecycleDeployment = validateV4LifecycleDeployment;
28324
29045
  exports.validateV4PoolKey = validateV4PoolKey;
29046
+ exports.verifyAerodromeSlipstreamPoolAction = verifyAerodromeSlipstreamPoolAction;
28325
29047
  exports.verifyAlgebraPoolAction = verifyAlgebraPoolAction;
28326
29048
  exports.verifyV3PoolAction = verifyV3PoolAction;
28327
29049
  exports.verifyV4PoolAction = verifyV4PoolAction;