UniswapV3 sqrtRatioLimit doesn't provide slippage protection and will result in partial swaps
The sqrtRatioLimit for UniV3 doesn't cause the swap to revert upon reaching that value. Instead it just cause the swap to partially fill. This is a known issue with using sqrtRatioLimit as can be seen here where the swap ends prematurely when it has been reached. This is problematic as this is meant to provide the user with slippage protection but doesn't.\\n```\\n    if (amountToSwap > 0) {\\n        SWAP_POOL = IUniswapV3Pool(vault.pool());\\n        uint160 deltaSqrt = (param.sqrtRatioLimit *\\n            uint160(param.sellSlippage)) / uint160(Constants.DENOMINATOR);\\n        SWAP_POOL.swap(\\n            address(this),\\n            // if withdraw token is Token0, then swap token1 -> token0 (false)\\n            !isTokenA,\\n            amountToSwap.toInt256(),\\n            isTokenA\\n                ? param.sqrtRatioLimit + deltaSqrt\\n                : param.sqrtRatioLimit - deltaSqrt, // slippaged price cap\\n            abi.encode(address(this))\\n        );\\n    }\\n```\\n\\nsqrtRatioLimit is used as slippage protection for the user but is ineffective and depending on what tokens are being swapped, tokens may be left the in the contract which can be stolen by anyone.
Check the amount received from the swap and compare it against some user supplied minimum
Incorrect slippage application can result in partial swaps and loss of funds
```\\n    if (amountToSwap > 0) {\\n        SWAP_POOL = IUniswapV3Pool(vault.pool());\\n        uint160 deltaSqrt = (param.sqrtRatioLimit *\\n            uint160(param.sellSlippage)) / uint160(Constants.DENOMINATOR);\\n        SWAP_POOL.swap(\\n            address(this),\\n            // if withdraw token is Token0, then swap token1 -> token0 (false)\\n            !isTokenA,\\n            amountToSwap.toInt256(),\\n            isTokenA\\n                ? param.sqrtRatioLimit + deltaSqrt\\n                : param.sqrtRatioLimit - deltaSqrt, // slippaged price cap\\n            abi.encode(address(this))\\n        );\\n    }\\n```\\n