@@ -34,7 +34,7 @@ import {PosmTestSetup} from "../shared/PosmTestSetup.sol";
3434import {Planner, Plan} from "../shared/Planner.sol " ;
3535import {PositionConfig} from "../shared/PositionConfig.sol " ;
3636
37- contract PositionManagerTest is Test , PosmTestSetup , LiquidityFuzzers {
37+ contract NativeTokenPoolManagerTest is Test , PosmTestSetup , LiquidityFuzzers {
3838 using FixedPointMathLib for uint256 ;
3939 using CurrencyLibrary for Currency;
4040 using Planner for Plan;
@@ -66,8 +66,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
6666 }
6767
6868 function test_fuzz_mint_native (IPoolManager.ModifyLiquidityParams memory params ) public {
69+ // two-sided liquidity
70+ params.tickLower =
71+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
72+ params.tickUpper =
73+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
6974 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
70- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
7175
7276 uint256 liquidityToAdd =
7377 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -99,8 +103,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
99103
100104 // minting with excess native tokens are returned to caller
101105 function test_fuzz_mint_native_excess_withClose (IPoolManager.ModifyLiquidityParams memory params ) public {
106+ // two-sided liquidity
107+ params.tickLower =
108+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
109+ params.tickUpper =
110+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
102111 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
103- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
104112
105113 uint256 liquidityToAdd =
106114 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -154,8 +162,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
154162 }
155163
156164 function test_fuzz_mint_native_excess_withSettlePair (IPoolManager.ModifyLiquidityParams memory params ) public {
165+ // two-sided liquidity
166+ params.tickLower =
167+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
168+ params.tickUpper =
169+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
157170 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
158- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
159171
160172 uint256 liquidityToAdd =
161173 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -211,8 +223,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
211223 uint256 balance0Start = address (this ).balance;
212224 uint256 balance1Start = currency1.balanceOfSelf ();
213225
226+ // two-sided liquidity
227+ params.tickLower =
228+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
229+ params.tickUpper =
230+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
214231 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
215- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
216232
217233 uint256 liquidityToAdd =
218234 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -264,8 +280,11 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
264280 uint256 balance0Start = address (this ).balance;
265281 uint256 balance1Start = currency1.balanceOfSelf ();
266282
283+ params.tickLower =
284+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
285+ params.tickUpper =
286+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
267287 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
268- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
269288
270289 uint256 liquidityToAdd =
271290 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -322,8 +341,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
322341 uint256 balance0Start = address (this ).balance;
323342 uint256 balance1Start = currency1.balanceOfSelf ();
324343
344+ // two-sided liquidity
345+ params.tickLower =
346+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
347+ params.tickUpper =
348+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
325349 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
326- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
327350
328351 uint256 liquidityToAdd =
329352 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -370,8 +393,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
370393 uint256 balance0Start = address (this ).balance;
371394 uint256 balance1Start = currency1.balanceOfSelf ();
372395
396+ // two-sided liquidity
397+ params.tickLower =
398+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
399+ params.tickUpper =
400+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
373401 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
374- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
375402
376403 uint256 liquidityToAdd =
377404 params.liquidityDelta < 0 ? uint256 (- params.liquidityDelta) : uint256 (params.liquidityDelta);
@@ -461,8 +488,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
461488 public
462489 {
463490 // fuzz for the range
491+ // two-sided liquidity
492+ params.tickLower =
493+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
494+ params.tickUpper =
495+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
464496 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
465- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
466497
467498 // TODO: figure out if we can fuzz the increase liquidity delta. we're annoyingly getting TickLiquidityOverflow
468499 uint256 liquidityToAdd = 1e18 ;
@@ -512,8 +543,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
512543 public
513544 {
514545 // fuzz for the range
546+ // two-sided liquidity
547+ params.tickLower =
548+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
549+ params.tickUpper =
550+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
515551 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
516- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
517552
518553 // TODO: figure out if we can fuzz the increase liquidity delta. we're annoyingly getting TickLiquidityOverflow
519554 uint256 liquidityToAdd = 1e18 ;
@@ -562,8 +597,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
562597 IPoolManager.ModifyLiquidityParams memory params ,
563598 uint256 decreaseLiquidityDelta
564599 ) public {
600+ // two-sided liquidity
601+ params.tickLower =
602+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
603+ params.tickUpper =
604+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
565605 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
566- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
567606 decreaseLiquidityDelta = bound (decreaseLiquidityDelta, 1 , uint256 (params.liquidityDelta));
568607
569608 PositionConfig memory config =
@@ -599,8 +638,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
599638 IPoolManager.ModifyLiquidityParams memory params ,
600639 uint256 decreaseLiquidityDelta
601640 ) public {
641+ // two-sided liquidity
642+ params.tickLower =
643+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
644+ params.tickUpper =
645+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
602646 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
603- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
604647 decreaseLiquidityDelta = bound (decreaseLiquidityDelta, 1 , uint256 (params.liquidityDelta));
605648
606649 PositionConfig memory config =
@@ -639,8 +682,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
639682 }
640683
641684 function test_fuzz_collect_native_withClose (IPoolManager.ModifyLiquidityParams memory params ) public {
685+ // two-sided liquidity
686+ params.tickLower =
687+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
688+ params.tickUpper =
689+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
642690 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
643- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
644691
645692 PositionConfig memory config =
646693 PositionConfig ({poolKey: nativeKey, tickLower: params.tickLower, tickUpper: params.tickUpper});
@@ -665,8 +712,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
665712 }
666713
667714 function test_fuzz_collect_native_withTakePair (IPoolManager.ModifyLiquidityParams memory params ) public {
715+ // two-sided liquidity
716+ params.tickLower =
717+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
718+ params.tickUpper =
719+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
668720 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
669- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
670721
671722 PositionConfig memory config =
672723 PositionConfig ({poolKey: nativeKey, tickLower: params.tickLower, tickUpper: params.tickUpper});
@@ -698,8 +749,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
698749 function test_fuzz_collect_native_withTakePair_addressRecipient (IPoolManager.ModifyLiquidityParams memory params )
699750 public
700751 {
752+ // two-sided liquidity
753+ params.tickLower =
754+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
755+ params.tickUpper =
756+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
701757 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
702- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
703758
704759 PositionConfig memory config =
705760 PositionConfig ({poolKey: nativeKey, tickLower: params.tickLower, tickUpper: params.tickUpper});
@@ -741,8 +796,12 @@ contract PositionManagerTest is Test, PosmTestSetup, LiquidityFuzzers {
741796 function test_fuzz_collect_native_withTakePair_msgSenderRecipient (IPoolManager.ModifyLiquidityParams memory params )
742797 public
743798 {
799+ // two-sided liquidity
800+ params.tickLower =
801+ int24 (bound (params.tickLower, TickMath.minUsableTick (nativeKey.tickSpacing), - nativeKey.tickSpacing));
802+ params.tickUpper =
803+ int24 (bound (params.tickUpper, nativeKey.tickSpacing, TickMath.maxUsableTick (nativeKey.tickSpacing)));
744804 params = createFuzzyLiquidityParams (nativeKey, params, SQRT_PRICE_1_1);
745- vm.assume (params.tickLower < 0 && 0 < params.tickUpper); // two-sided liquidity
746805
747806 PositionConfig memory config =
748807 PositionConfig ({poolKey: nativeKey, tickLower: params.tickLower, tickUpper: params.tickUpper});
0 commit comments