Lack of support for the 0.01% fee tier for swaps in MorphoVaultStrategy
Description
MorphoVaultStrategy performs token swaps on Uniswap for backgroundSwap
and _autoCompoundRewards
. Prior to a swap, the validateFeeTier
function in the UniswapV3HelperV1 library checks the pool fee:
function validateFeeTier(uint24 fee) public pure {
if (fee != 500 && fee != 3000 && fee != 10000) {
revert InvalidFeeTier();
}
}
The validateFeeTier
function accepts only a 0.05%, 0.3%, or 1% pool fee for Uniswap swaps. However, Uniswap V3 includes a 0.01% fee tier↗ (100 basis points), particularly beneficial for stablecoin trading.
Consequently, swaps that use the 0.01% fee tier are incompatible with MorphoVaultStrategy.
Impact
MorphoVaultStrategy cannot execute swaps on Uniswap pools with the 0.01% fee tier, potentially missing optimal trading routes for stablecoin pairs.
Recommendations
We recommend updating the validateFeeTier
function to support the 0.01% (100) fee tier:
function validateFeeTier(uint24 fee) public pure {
- if (fee != 500 && fee != 3000 && fee != 10000) {
+ if (fee != 100 && fee != 500 && fee != 3000 && fee != 10000) {
revert InvalidFeeTier();
}
}
Remediation
This issue has been acknowledged by Blueprint Finance, and fixes were implemented in the following commits: