我面临错误,在使用swapExactTokensForETHSupportingFeeOnTransfer Tokens时,执行恢复:uniswapv2library:invalidient_input_amount。
tokenAmount是18位小数。(8072364872364293879238745(池中有足够的流动性,我已经多次使用uniswap应用程序毫无问题地交换了这个确切的金额。
function swapTokensForEth(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
请帮忙!
您的代码看起来不错,所以我假设您还有另一个问题,即传递给合约的tokenAmount为零。
只有当输入为零时才会出现此错误。https://github.com/Uniswap/v2-periphery/blob/dda62473e2da448bc9cb8f4514dadda4aeede5f4/contracts/libraries/UniswapV2Library.sol