@@ -1017,33 +1017,35 @@ contract MainnetController_UniswapV4_USDC_USDT_Tests is UniswapV4TestBase {
10171017 });
10181018 }
10191019
1020- function test_mintPositionUniswapV4_revertsWhenAmount0MaxSurpassedBoundary () external {
1020+ function test_mintPositionUniswapV4_revertsWhenAmount0MaxTooLargeForPermit2Boundary () external {
10211021 vm.startPrank(SPARK_PROXY);
10221022 mainnetController.setUniswapV4TickLimits(_POOL_ID, -60, 60, 20);
10231023 rateLimits.setRateLimitData(_DEPOSIT_LIMIT_KEY, 2_000_000e18, 0);
10241024 vm.stopPrank();
10251025
1026- ( uint256 amount0Forecasted, uint256 amount1Forecasted ) = _quoteLiquidity(_POOL_ID, -10, 0, 1_000_000e6);
1027-
1028- amount0Forecasted += 1; // Quote is off by 1
1029- amount1Forecasted += 1; // Quote is off by 1
1030-
1031- deal(address(usdc), address(almProxy), amount0Forecasted);
1032- deal(address(usdt), address(almProxy), amount1Forecasted);
1026+ deal(address(usdc), address(almProxy), 1_000_000e6);
1027+ deal(address(usdt), address(almProxy), 1_000_000e6);
10331028
10341029 vm.prank(relayer);
1030+ vm.expectRevert("MC/amount-too-large-for-permit2");
1031+ mainnetController.mintPositionUniswapV4({
1032+ poolId : _POOL_ID,
1033+ tickLower : -10,
1034+ tickUpper : 0,
1035+ liquidity : 1_000_000e6,
1036+ amount0Max : uint256(type(uint160).max) + 1,
1037+ amount1Max : uint256(type(uint160).max)
1038+ });
10351039
1036- vm.expectRevert(
1037- abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
1038- );
1039-
1040+ vm.prank(relayer);
1041+ vm.expectRevert("MC/amount-too-large-for-permit2");
10401042 mainnetController.mintPositionUniswapV4({
10411043 poolId : _POOL_ID,
10421044 tickLower : -10,
10431045 tickUpper : 0,
10441046 liquidity : 1_000_000e6,
1045- amount0Max : amount0Forecasted - 1 ,
1046- amount1Max : amount1Forecasted
1047+ amount0Max : uint256(type(uint160).max) ,
1048+ amount0Max : uint256(type(uint160).max) + 1
10471049 });
10481050
10491051 vm.prank(relayer);
@@ -1052,12 +1054,12 @@ contract MainnetController_UniswapV4_USDC_USDT_Tests is UniswapV4TestBase {
10521054 tickLower : -10,
10531055 tickUpper : 0,
10541056 liquidity : 1_000_000e6,
1055- amount0Max : amount0Forecasted ,
1056- amount1Max : amount1Forecasted
1057+ amount0Max : uint256(type(uint160).max) ,
1058+ amount1Max : uint256(type(uint160).max)
10571059 });
10581060 }
10591061
1060- function test_mintPositionUniswapV4_revertsWhenAmount1MaxSurpassedBoundary () external {
1062+ function test_mintPositionUniswapV4_revertsWhenMaxAmountsSurpassedBoundary () external {
10611063 vm.startPrank(SPARK_PROXY);
10621064 mainnetController.setUniswapV4TickLimits(_POOL_ID, -60, 60, 20);
10631065 rateLimits.setRateLimitData(_DEPOSIT_LIMIT_KEY, 2_000_000e18, 0);
@@ -1073,6 +1075,21 @@ contract MainnetController_UniswapV4_USDC_USDT_Tests is UniswapV4TestBase {
10731075
10741076 vm.prank(relayer);
10751077
1078+ vm.expectRevert(
1079+ abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
1080+ );
1081+
1082+ mainnetController.mintPositionUniswapV4({
1083+ poolId : _POOL_ID,
1084+ tickLower : -10,
1085+ tickUpper : 0,
1086+ liquidity : 1_000_000e6,
1087+ amount0Max : amount0Forecasted - 1,
1088+ amount1Max : amount1Forecasted
1089+ });
1090+
1091+ vm.prank(relayer);
1092+
10761093 vm.expectRevert(
10771094 abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount1Forecasted - 1, amount1Forecasted)
10781095 );
@@ -1300,52 +1317,48 @@ contract MainnetController_UniswapV4_USDC_USDT_Tests is UniswapV4TestBase {
13001317 });
13011318 }
13021319
1303- function test_increaseLiquidityUniswapV4_revertsWhenAmount0MaxSurpassedBoundary () external {
1320+ function test_increaseLiquidityUniswapV4_revertsWhenAmountsTooLargeForPermit2Boundary () external {
13041321 IncreasePositionResult memory minted = _setupLiquidity(_POOL_ID, -10, 0, 1_000_000e6);
13051322
13061323 vm.startPrank(SPARK_PROXY);
13071324 mainnetController.setUniswapV4TickLimits(_POOL_ID, -10, 0, 10);
13081325 rateLimits.setRateLimitData(_DEPOSIT_LIMIT_KEY, 2_000_000e18, 0);
13091326 vm.stopPrank();
13101327
1311- ( uint256 amount0Forecasted, uint256 amount1Forecasted ) = _quoteLiquidity(
1312- _POOL_ID,
1313- minted.tickLower,
1314- minted.tickUpper,
1315- 1_000_000e6
1316- );
1317-
1318- amount0Forecasted += 1; // Quote is off by 1
1319- amount1Forecasted += 1; // Quote is off by 1
1320-
1321- deal(address(usdc), address(almProxy), amount0Forecasted);
1322- deal(address(usdt), address(almProxy), amount1Forecasted);
1328+ deal(address(usdc), address(almProxy), 1_000_000e6);
1329+ deal(address(usdt), address(almProxy), 1_000_000e6);
13231330
13241331 vm.prank(relayer);
1332+ vm.expectRevert("MC/amount-too-large-for-permit2");
1333+ mainnetController.increaseLiquidityUniswapV4({
1334+ poolId : _POOL_ID,
1335+ tokenId : minted.tokenId,
1336+ liquidityIncrease : 1_000_000e6,
1337+ amount0Max : uint256(type(uint160).max) + 1,
1338+ amount1Max : uint256(type(uint160).max)
1339+ });
13251340
1326- vm.expectRevert(
1327- abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
1328- );
1329-
1341+ vm.prank(relayer);
1342+ vm.expectRevert("MC/amount-too-large-for-permit2");
13301343 mainnetController.increaseLiquidityUniswapV4({
13311344 poolId : _POOL_ID,
13321345 tokenId : minted.tokenId,
13331346 liquidityIncrease : 1_000_000e6,
1334- amount0Max : amount0Forecasted - 1 ,
1335- amount1Max : amount1Forecasted
1347+ amount0Max : uint256(type(uint160).max) ,
1348+ amount1Max : uint256(type(uint160).max) + 1
13361349 });
13371350
13381351 vm.prank(relayer);
13391352 mainnetController.increaseLiquidityUniswapV4({
13401353 poolId : _POOL_ID,
13411354 tokenId : minted.tokenId,
13421355 liquidityIncrease : 1_000_000e6,
1343- amount0Max : amount0Forecasted ,
1344- amount1Max : amount1Forecasted
1356+ amount0Max : uint256(type(uint160).max) ,
1357+ amount1Max : uint256(type(uint160).max)
13451358 });
13461359 }
13471360
1348- function test_increaseLiquidityUniswapV4_revertsWhenAmount1MaxSurpassedBoundary () external {
1361+ function test_increaseLiquidityUniswapV4_revertsWhenMaxAmountsSurpassedBoundary () external {
13491362 IncreasePositionResult memory minted = _setupLiquidity(_POOL_ID, -10, 0, 1_000_000e6);
13501363
13511364 vm.startPrank(SPARK_PROXY);
@@ -1368,6 +1381,20 @@ contract MainnetController_UniswapV4_USDC_USDT_Tests is UniswapV4TestBase {
13681381
13691382 vm.prank(relayer);
13701383
1384+ vm.expectRevert(
1385+ abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
1386+ );
1387+
1388+ mainnetController.increaseLiquidityUniswapV4({
1389+ poolId : _POOL_ID,
1390+ tokenId : minted.tokenId,
1391+ liquidityIncrease : 1_000_000e6,
1392+ amount0Max : amount0Forecasted - 1,
1393+ amount1Max : amount1Forecasted
1394+ });
1395+
1396+ vm.prank(relayer);
1397+
13711398 vm.expectRevert(
13721399 abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount1Forecasted - 1, amount1Forecasted)
13731400 );
@@ -2840,33 +2867,35 @@ contract MainnetController_UniswapV4_USDT_USDS_Tests is UniswapV4TestBase {
28402867 });
28412868 }
28422869
2843- function test_mintPositionUniswapV4_revertsWhenAmount0MaxSurpassedBoundary () external {
2870+ function test_mintPositionUniswapV4_revertsWhenMaxAmountsTooLargeForPermit2Boundary () external {
28442871 vm.startPrank(SPARK_PROXY);
28452872 mainnetController.setUniswapV4TickLimits(_POOL_ID, 270_000, 280_000, 1_000);
28462873 rateLimits.setRateLimitData(_DEPOSIT_LIMIT_KEY, 2_000_000e18, 0);
28472874 vm.stopPrank();
28482875
2849- ( uint256 amount0Forecasted, uint256 amount1Forecasted ) = _quoteLiquidity(_POOL_ID, 276_300, 276_400, 1_000_000e12);
2850-
2851- amount0Forecasted += 1; // Quote is off by 1
2852- amount1Forecasted += 1; // Quote is off by 1
2853-
2854- deal(address(usdt), address(almProxy), amount0Forecasted);
2855- deal(address(usds), address(almProxy), amount1Forecasted);
2876+ deal(address(usdt), address(almProxy), 1_000_000e6);
2877+ deal(address(usds), address(almProxy), 1_000_000e18);
28562878
28572879 vm.prank(relayer);
2880+ vm.expectRevert("MC/amount-too-large-for-permit2");
2881+ mainnetController.mintPositionUniswapV4({
2882+ poolId : _POOL_ID,
2883+ tickLower : 276_300,
2884+ tickUpper : 276_400,
2885+ liquidity : 1_000_000e12,
2886+ amount0Max : uint256(type(uint160).max) + 1,
2887+ amount1Max : uint256(type(uint160).max)
2888+ });
28582889
2859- vm.expectRevert(
2860- abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
2861- );
2862-
2890+ vm.prank(relayer);
2891+ vm.expectRevert("MC/amount-too-large-for-permit2");
28632892 mainnetController.mintPositionUniswapV4({
28642893 poolId : _POOL_ID,
28652894 tickLower : 276_300,
28662895 tickUpper : 276_400,
28672896 liquidity : 1_000_000e12,
2868- amount0Max : amount0Forecasted - 1 ,
2869- amount1Max : amount1Forecasted
2897+ amount0Max : uint256(type(uint160).max) ,
2898+ amount1Max : uint256(type(uint160).max) + 1
28702899 });
28712900
28722901 vm.prank(relayer);
@@ -2875,12 +2904,12 @@ contract MainnetController_UniswapV4_USDT_USDS_Tests is UniswapV4TestBase {
28752904 tickLower : 276_300,
28762905 tickUpper : 276_400,
28772906 liquidity : 1_000_000e12,
2878- amount0Max : amount0Forecasted ,
2879- amount1Max : amount1Forecasted
2907+ amount0Max : uint256(type(uint160).max) ,
2908+ amount1Max : uint256(type(uint160).max)
28802909 });
28812910 }
28822911
2883- function test_mintPositionUniswapV4_revertsWhenAmount1MaxSurpassedBoundary () external {
2912+ function test_mintPositionUniswapV4_revertsWhenMaxAmountsSurpassedBoundary () external {
28842913 vm.startPrank(SPARK_PROXY);
28852914 mainnetController.setUniswapV4TickLimits(_POOL_ID, 270_000, 280_000, 1_000);
28862915 rateLimits.setRateLimitData(_DEPOSIT_LIMIT_KEY, 2_000_000e18, 0);
@@ -2896,6 +2925,21 @@ contract MainnetController_UniswapV4_USDT_USDS_Tests is UniswapV4TestBase {
28962925
28972926 vm.prank(relayer);
28982927
2928+ vm.expectRevert(
2929+ abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
2930+ );
2931+
2932+ mainnetController.mintPositionUniswapV4({
2933+ poolId : _POOL_ID,
2934+ tickLower : 276_300,
2935+ tickUpper : 276_400,
2936+ liquidity : 1_000_000e12,
2937+ amount0Max : amount0Forecasted - 1,
2938+ amount1Max : amount1Forecasted
2939+ });
2940+
2941+ vm.prank(relayer);
2942+
28992943 vm.expectRevert(
29002944 abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount1Forecasted - 1, amount1Forecasted)
29012945 );
@@ -3153,52 +3197,48 @@ contract MainnetController_UniswapV4_USDT_USDS_Tests is UniswapV4TestBase {
31533197 });
31543198 }
31553199
3156- function test_increaseLiquidityUniswapV4_revertsWhenAmount0MaxSurpassedBoundary () external {
3200+ function test_increaseLiquidityUniswapV4_revertsWhenMaxAmountsTooLargeForPermit2Boundary () external {
31573201 IncreasePositionResult memory minted = _setupLiquidity(_POOL_ID, 276_000, 276_600, 1_000_000e12);
31583202
31593203 vm.startPrank(SPARK_PROXY);
31603204 mainnetController.setUniswapV4TickLimits(_POOL_ID, 276_000, 276_600, 1_000);
31613205 rateLimits.setRateLimitData(_DEPOSIT_LIMIT_KEY, 2_000_000e18, 0);
31623206 vm.stopPrank();
31633207
3164- ( uint256 amount0Forecasted, uint256 amount1Forecasted ) = _quoteLiquidity(
3165- _POOL_ID,
3166- minted.tickLower,
3167- minted.tickUpper,
3168- 1_000_000e12
3169- );
3170-
3171- amount0Forecasted += 1; // Quote is off by 1
3172- amount1Forecasted += 1; // Quote is off by 1
3173-
3174- deal(address(usdt), address(almProxy), amount0Forecasted);
3175- deal(address(usds), address(almProxy), amount1Forecasted);
3208+ deal(address(usdt), address(almProxy), 1_000_000e6);
3209+ deal(address(usds), address(almProxy), 1_000_000e18);
31763210
31773211 vm.prank(relayer);
3212+ vm.expectRevert("MC/amount-too-large-for-permit2");
3213+ mainnetController.increaseLiquidityUniswapV4({
3214+ poolId : _POOL_ID,
3215+ tokenId : minted.tokenId,
3216+ liquidityIncrease : 1_000_000e12,
3217+ amount0Max : uint256(type(uint160).max) + 1,
3218+ amount1Max : uint256(type(uint160).max)
3219+ });
31783220
3179- vm.expectRevert(
3180- abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
3181- );
3182-
3221+ vm.prank(relayer);
3222+ vm.expectRevert("MC/amount-too-large-for-permit2");
31833223 mainnetController.increaseLiquidityUniswapV4({
31843224 poolId : _POOL_ID,
31853225 tokenId : minted.tokenId,
31863226 liquidityIncrease : 1_000_000e12,
3187- amount0Max : amount0Forecasted - 1 ,
3188- amount1Max : amount1Forecasted
3227+ amount0Max : uint256(type(uint160).max) ,
3228+ amount1Max : uint256(type(uint160).max) + 1
31893229 });
31903230
31913231 vm.prank(relayer);
31923232 mainnetController.increaseLiquidityUniswapV4({
31933233 poolId : _POOL_ID,
31943234 tokenId : minted.tokenId,
31953235 liquidityIncrease : 1_000_000e12,
3196- amount0Max : amount0Forecasted ,
3197- amount1Max : amount1Forecasted
3236+ amount0Max : uint256(type(uint160).max) ,
3237+ amount1Max : uint256(type(uint160).max)
31983238 });
31993239 }
32003240
3201- function test_increaseLiquidityUniswapV4_revertsWhenAmount1MaxSurpassedBoundary () external {
3241+ function test_increaseLiquidityUniswapV4_revertsWhenMaxAmountsMaxSurpassedBoundary () external {
32023242 IncreasePositionResult memory minted = _setupLiquidity(_POOL_ID, 276_000, 276_600, 1_000_000e12);
32033243
32043244 vm.startPrank(SPARK_PROXY);
@@ -3221,6 +3261,20 @@ contract MainnetController_UniswapV4_USDT_USDS_Tests is UniswapV4TestBase {
32213261
32223262 vm.prank(relayer);
32233263
3264+ vm.expectRevert(
3265+ abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount0Forecasted - 1, amount0Forecasted)
3266+ );
3267+
3268+ mainnetController.increaseLiquidityUniswapV4({
3269+ poolId : _POOL_ID,
3270+ tokenId : minted.tokenId,
3271+ liquidityIncrease : 1_000_000e12,
3272+ amount0Max : amount0Forecasted - 1,
3273+ amount1Max : amount1Forecasted
3274+ });
3275+
3276+ vm.prank(relayer);
3277+
32243278 vm.expectRevert(
32253279 abi.encodeWithSelector(SlippageCheck.MaximumAmountExceeded.selector, amount1Forecasted - 1, amount1Forecasted)
32263280 );
0 commit comments