I'm trying to swap tokens on uniswap unsing hardhat's mainnet fork but I'm getting this error: Error: Transaction reverted without a reason string
. And I don't really know why.
Here is my swap function:
function swap(address router, address _tokenIn, address _tokenOut, uint _amount) public {
IERC20(router).approve(router, _amount);
address[] memory path;
path = new address[](2);
path[0] = _tokenIn;
path[1] = _tokenOut;
uint deadline = block.timestamp + 300;
IUniswapV2Router(router).swapExactTokensForTokens(_amount, 1, path, address(this), deadline);
}
It is a simple function and it should work. This is how I'm calling it:
await arb.swap(
uniAddress,
wethAddress,
daiAddress,
ethers.utils.parseEther('0.5')
);
Thanks for answers!
Also here are the addresses I'm calling just to verify if they are the right ones but I'm pretty sure they are:
const wethAddress = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
const daiAddress = '0x6B175474E89094C44Da98b954EedeAC495271d0F';
const uniAddress = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D';