Fee mismatch between contracts can make strategies unusable
In CoW Swap strategies, fee is set in the strategy contracts and then passed to `initiateSwap()`. It is built in _buildInitiateSwapExecutable():\\n```\\n  // Generate executable to initiate swap on DCACoWAutomation return Types.Executable({\\n        callType: Types.CallType.DELEGATECALL, target: dcaCoWAutomation,\\n     value: 0,\\n  data: abi.encodeCall( DCACoWAutomation.initiateSwap,\\n        (params.tokenIn, params.tokenOut, swapRecipient, amountIn, minAmountOut, swapFee)\\n       )\\n    });\\n```\\n\\nThere is a mismatch between the constraints around fees between the strategy contracts and the `initiateSwap()` function:\\n```\\n    function setSwapFee(uint256 _swapFee) external {\\n        _onlyGov();\\n    if (_swapFee > 10_000) { revert InvalidSlippage();\\n       }\\n    swapFee = _swapFee;\\n      }\\n    if (feeBps > 0) {\\n    if (feeBps > 1_000) revert FeeTooHigh();\\n      amountIn = amountToSwap * (MAX_BPS - feeBps) / MAX_BPS;\\n```\\n
Enforce the same constraints on the fee percentage in both contracts, or remove the check from one of them as part of a simplified security model.
```\\n  // Generate executable to initiate swap on DCACoWAutomation return Types.Executable({\\n        callType: Types.CallType.DELEGATECALL, target: dcaCoWAutomation,\\n     value: 0,\\n  data: abi.encodeCall( DCACoWAutomation.initiateSwap,\\n        (params.tokenIn, params.tokenOut, swapRecipient, amountIn, minAmountOut, swapFee)\\n       )\\n    });\\n```\\n