Settlement slippage is not implemented correctly which may lead to some vaults being impossible to settle
The contract is supposed to implement a different max slippage value depending on the settlement type, but these values have no impact because they are never actually applied. Instead, regardless of settlement type or function inputs, max slippage will always be limited to the value of balancerPoolSlippageLimitPercent. This can be problematic because the default value allows only 1% slippage. If settlement slippage goes outside of 1% then settlement of any kind will become impossible.\\nBoosted3TokenAuraHelper.sol#L95-L99\\n```\\n    params.minPrimary = poolContext._getTimeWeightedPrimaryBalance(\\n        oracleContext, strategyContext, bptToSettle\\n    );\\n\\n    params.minPrimary = params.minPrimary * strategyContext.vaultSettings.balancerPoolSlippageLimitPercent / \\n        uint256(BalancerConstants.VAULT_PERCENT_BASIS);\\n```\\n\\nBoosted3TokenAuraHelper#_executeSettlement first sets params.minPrimary overwriting any value from function input. Next it adjusts minPrimary by balancerPoolSlippageLimitPercent, which is a constant set at pool creation; however it doesn't ever adjust it by Params.DynamicTradeParams.oracleSlippagePercent. This means that the max possible slippage regardless of settlement type is limited to the slippage allowed by balancerPoolSlippageLimitPercent. If the max slippage ever goes outside of this range, then settlement of any kind will become impossible.
Params.DynamicTradeParams.oracleSlippagePercent is validated in every scenario before Boosted3TokenAuraHelper#_executeSettlement is called, so we can apply these values directly when calculating minPrimary:\\n```\\n    params.minPrimary = poolContext._getTimeWeightedPrimaryBalance(\\n        oracleContext, strategyContext, bptToSettle\\n    );\\n\\n+   DynamicTradeParams memory callbackData = abi.decode(\\n+       params.secondaryTradeParams, (DynamicTradeParams)\\n+   );\\n\\n-   params.minPrimary = params.minPrimary * strategyContext.vaultSettings.balancerPoolSlippageLimitPercent / \\n+   params.minPrimary = params.minPrimary * \\n+      (strategyContext.vaultSettings.balancerPoolSlippageLimitPercent - callbackData.oracleSlippagePercent) / \\n       uint256(BalancerConstants.VAULT_PERCENT_BASIS);\\n```\\n
Settlement may become impossible
```\\n    params.minPrimary = poolContext._getTimeWeightedPrimaryBalance(\\n        oracleContext, strategyContext, bptToSettle\\n    );\\n\\n    params.minPrimary = params.minPrimary * strategyContext.vaultSettings.balancerPoolSlippageLimitPercent / \\n        uint256(BalancerConstants.VAULT_PERCENT_BASIS);\\n```\\n