diff --git a/.gitmodules b/.gitmodules index 5360e9e..eacb977 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "foundry/lib/v4-core"] path = foundry/lib/v4-core url = https://github.com/Uniswap/v4-core +[submodule "foundry/lib/v4-periphery"] + path = foundry/lib/v4-periphery + url = https://github.com/Uniswap/v4-periphery diff --git a/foundry/src/executors/UniswapV4Executor.sol b/foundry/src/executors/UniswapV4Executor.sol index 53196b9..b56c2ed 100644 --- a/foundry/src/executors/UniswapV4Executor.sol +++ b/foundry/src/executors/UniswapV4Executor.sol @@ -47,13 +47,19 @@ contract UniswapV4Executor is IExecutor, V4Router { this.executeActions(data); + uint256 balanceAfter = IERC20(tokenOut).balanceOf(receiver); + if (isExactInput) { - amountOut = IERC20(tokenOut).balanceOf(receiver) - balanceBefore; + amountOut = balanceAfter - balanceBefore; } else { amountOut = amount; } - if (amountOut == 0) revert UniswapV4Executor__SwapFailed(); + // Checks if the amountOut is not 0. + // Slither does not allow strict equality checks. + if (amountOut < 1) { + revert UniswapV4Executor__SwapFailed(); + } return amountOut; }