From a8cc84ddce7c90aa40d69090577ef15cc95d8edf Mon Sep 17 00:00:00 2001 From: royvardhan Date: Tue, 11 Feb 2025 21:52:18 +0530 Subject: [PATCH] fix: git submodules and strict equality check in v4 executor --- .gitmodules | 3 +++ foundry/src/executors/UniswapV4Executor.sol | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) 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; }