test: add target verification tests for usv2, usv3
This commit is contained in:
@@ -15,10 +15,11 @@ contract UniswapV2Executor is IExecutor {
|
||||
0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
|
||||
|
||||
// slither-disable-next-line locked-ether
|
||||
function swap(
|
||||
uint256 givenAmount,
|
||||
bytes calldata data
|
||||
) external payable returns (uint256 calculatedAmount) {
|
||||
function swap(uint256 givenAmount, bytes calldata data)
|
||||
external
|
||||
payable
|
||||
returns (uint256 calculatedAmount)
|
||||
{
|
||||
address target;
|
||||
address receiver;
|
||||
bool zeroForOne;
|
||||
@@ -40,9 +41,7 @@ contract UniswapV2Executor is IExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
function _decodeData(
|
||||
bytes calldata data
|
||||
)
|
||||
function _decodeData(bytes calldata data)
|
||||
internal
|
||||
pure
|
||||
returns (
|
||||
@@ -61,20 +60,20 @@ contract UniswapV2Executor is IExecutor {
|
||||
zeroForOne = uint8(data[60]) > 0;
|
||||
}
|
||||
|
||||
function _getAmountOut(
|
||||
address target,
|
||||
uint256 amountIn,
|
||||
bool zeroForOne
|
||||
) internal view returns (uint256 amount) {
|
||||
function _getAmountOut(address target, uint256 amountIn, bool zeroForOne)
|
||||
internal
|
||||
view
|
||||
returns (uint256 amount)
|
||||
{
|
||||
IUniswapV2Pair pair = IUniswapV2Pair(target);
|
||||
uint112 reserveIn;
|
||||
uint112 reserveOut;
|
||||
if (zeroForOne) {
|
||||
// slither-disable-next-line unused-return
|
||||
(reserveIn, reserveOut, ) = pair.getReserves();
|
||||
(reserveIn, reserveOut,) = pair.getReserves();
|
||||
} else {
|
||||
// slither-disable-next-line unused-return
|
||||
(reserveOut, reserveIn, ) = pair.getReserves();
|
||||
(reserveOut, reserveIn,) = pair.getReserves();
|
||||
}
|
||||
|
||||
require(reserveIn > 0 && reserveOut > 0, "L");
|
||||
@@ -84,9 +83,11 @@ contract UniswapV2Executor is IExecutor {
|
||||
amount = numerator / denominator;
|
||||
}
|
||||
|
||||
function _computePairAddress(
|
||||
address target
|
||||
) internal view returns (address pair) {
|
||||
function _computePairAddress(address target)
|
||||
internal
|
||||
view
|
||||
returns (address pair)
|
||||
{
|
||||
address token0 = IUniswapV2Pair(target).token0();
|
||||
address token1 = IUniswapV2Pair(target).token1();
|
||||
bytes32 salt = keccak256(abi.encodePacked(token0, token1));
|
||||
|
||||
Reference in New Issue
Block a user