chore: rename _computePairAddress to _verifyPairAddress, add fake v2 pool in v2 test file

This commit is contained in:
royvardhan
2025-02-22 00:26:15 +05:30
parent 40bd37a1a4
commit 4b77128df2
5 changed files with 60 additions and 71 deletions

View File

@@ -14,6 +14,8 @@ error UniswapV3Executor__InvalidTarget();
contract UniswapV3Executor is IExecutor, ICallback {
using SafeERC20 for IERC20;
bytes32 internal constant POOL_INIT_CODE_HASH =
0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;
uint160 private constant MIN_SQRT_RATIO = 4295128739;
uint160 private constant MAX_SQRT_RATIO =
1461446703485210103287273052203988822378723970342;
@@ -44,9 +46,7 @@ contract UniswapV3Executor is IExecutor, ICallback {
bool zeroForOne
) = _decodeData(data);
if (target != _computePairAddress(tokenIn, tokenOut, fee)) {
revert UniswapV3Executor__InvalidTarget();
}
_verifyPairAddress(tokenIn, tokenOut, fee, target);
int256 amount0;
int256 amount1;
@@ -153,14 +153,15 @@ contract UniswapV3Executor is IExecutor, ICallback {
);
}
function _computePairAddress(address tokenA, address tokenB, uint24 fee)
internal
view
returns (address pool)
{
function _verifyPairAddress(
address tokenA,
address tokenB,
uint24 fee,
address target
) internal view {
(address token0, address token1) =
tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
pool = address(
address pool = address(
uint160(
uint256(
keccak256(
@@ -168,11 +169,14 @@ contract UniswapV3Executor is IExecutor, ICallback {
hex"ff",
factory,
keccak256(abi.encode(token0, token1, fee)),
hex"e34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54"
POOL_INIT_CODE_HASH
)
)
)
)
);
if (pool != target) {
revert UniswapV3Executor__InvalidTarget();
}
}
}