`oracleSlippagePercentOrLimit` can exceed the `Constants.SLIPPAGE_LIMIT_PRECISION`
Trade might be settled with a large slippage causing a loss of assets as the `oracleSlippagePercentOrLimit` limit is not bounded and can exceed the `Constants.SLIPPAGE_LIMIT_PRECISION` threshold.\\nThe code at Line 73-75 only checks if the `oracleSlippagePercentOrLimit` is within the `Constants.SLIPPAGE_LIMIT_PRECISION` if `useDynamicSlippage` is `true`. If the trade is performed without dynamic slippage, the trade can be executed with an arbitrary limit.\\n```\\nFile: StrategyUtils.sol\\n    function _executeTradeExactIn(\\n        TradeParams memory params,\\n        ITradingModule tradingModule,\\n        address sellToken,\\n        address buyToken,\\n        uint256 amount,\\n        bool useDynamicSlippage\\n    ) internal returns (uint256 amountSold, uint256 amountBought) {\\n        require(\\n            params.tradeType == TradeType.EXACT_IN_SINGLE || params.tradeType == TradeType.EXACT_IN_BATCH\\n        );\\n        if (useDynamicSlippage) {\\n            require(params.oracleSlippagePercentOrLimit <= Constants.SLIPPAGE_LIMIT_PRECISION);\\n        }\\n\\n        // Sell residual secondary balance\\n        Trade memory trade = Trade(\\n            params.tradeType,\\n            sellToken,\\n            buyToken,\\n            amount,\\n            useDynamicSlippage ? 0 : params.oracleSlippagePercentOrLimit,\\n            block.timestamp, // deadline\\n            params.exchangeData\\n        );\\n```\\n\\nThe `StrategyUtils._executeTradeExactIn` function is utilized by the Curve Vault.
Consider restricting the slippage limit when a trade is executed without dynamic slippage.\\n```\\n    function _executeTradeExactIn(\\n        TradeParams memory params,\\n        ITradingModule tradingModule,\\n        address sellToken,\\n        address buyToken,\\n        uint256 amount,\\n        bool useDynamicSlippage\\n    ) internal returns (uint256 amountSold, uint256 amountBought) {\\n        require(\\n            params.tradeType == TradeType.EXACT_IN_SINGLE || params.tradeType == TradeType.EXACT_IN_BATCH\\n        );\\n        if (useDynamicSlippage) {\\n            require(params.oracleSlippagePercentOrLimit <= Constants.SLIPPAGE_LIMIT_PRECISION);\\n// Remove the line below\\n       }\\n// Add the line below\\n  } else {\\n// Add the line below\\n    require(params.oracleSlippagePercentOrLimit != 0 && params.oracleSlippagePercentOrLimit <= Constants.SLIPPAGE_LIMIT_PRECISION_FOR_NON_DYNAMIC_TRADE);\\n// Add the line below\\n   }     \\n```\\n
Trade might be settled with a large slippage causing a loss of assets.
```\\nFile: StrategyUtils.sol\\n    function _executeTradeExactIn(\\n        TradeParams memory params,\\n        ITradingModule tradingModule,\\n        address sellToken,\\n        address buyToken,\\n        uint256 amount,\\n        bool useDynamicSlippage\\n    ) internal returns (uint256 amountSold, uint256 amountBought) {\\n        require(\\n            params.tradeType == TradeType.EXACT_IN_SINGLE || params.tradeType == TradeType.EXACT_IN_BATCH\\n        );\\n        if (useDynamicSlippage) {\\n            require(params.oracleSlippagePercentOrLimit <= Constants.SLIPPAGE_LIMIT_PRECISION);\\n        }\\n\\n        // Sell residual secondary balance\\n        Trade memory trade = Trade(\\n            params.tradeType,\\n            sellToken,\\n            buyToken,\\n            amount,\\n            useDynamicSlippage ? 0 : params.oracleSlippagePercentOrLimit,\\n            block.timestamp, // deadline\\n            params.exchangeData\\n        );\\n```\\n