Velocore supports a Uniswap-compatible interface. The difference is that Velocore doesn't use WETH internally. Use address(0) in place of ETH.
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline)
external
payable
returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(uint256 amountOut, address[] calldata path, address to, uint256 deadline)
external
payable
returns (uint256[] memory amounts);
function getAmountsOut(uint256 amountIn, address[] calldata path) external returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path) external returns (uint256[] memory amounts);
function getPair(address t0, address t1) external view returns (address);
function allPairs(uint256 i) external view returns (address);
function allPairsLength() external view returns (uint256);
```