- Move encoding integration tests to integration test folder (in the rust project) - Move protocol integration tests be inside the protocol file. This way we can change the block without any problems and it is easier for integrators Took 6 minutes Took 6 minutes Took 17 minutes
31 lines
864 B
Solidity
31 lines
864 B
Solidity
// SPDX-License-Identifier: BUSL-1.1
|
|
pragma solidity ^0.8.26;
|
|
|
|
import "@src/executors/UniswapV4Executor.sol";
|
|
|
|
library UniswapV4Utils {
|
|
function encodeExactInput(
|
|
address tokenIn,
|
|
address tokenOut,
|
|
bool zeroForOne,
|
|
RestrictTransferFrom.TransferType transferType,
|
|
address receiver,
|
|
UniswapV4Executor.UniswapV4Pool[] memory pools
|
|
) public pure returns (bytes memory) {
|
|
bytes memory encodedPools;
|
|
|
|
for (uint256 i = 0; i < pools.length; i++) {
|
|
encodedPools = abi.encodePacked(
|
|
encodedPools,
|
|
pools[i].intermediaryToken,
|
|
bytes3(pools[i].fee),
|
|
pools[i].tickSpacing
|
|
);
|
|
}
|
|
|
|
return abi.encodePacked(
|
|
tokenIn, tokenOut, zeroForOne, transferType, receiver, encodedPools
|
|
);
|
|
}
|
|
}
|