function swapTokens(uint256 _amt) internal {
address[] memory path = new address[](2);
path[0] = uniswapV2Router.WETH();
path[1] = address(this);
IERC20(path[0]).balanceOf(address(this)))
try uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
_amt,
0,
path,
address(this),
block.timestamp
) {
emit Debug("Swap success");
} catch Error(string memory reason) {
emit Debug(reason);
} catch {
emit Debug("Swap failed: unknown reason");
}
}
这个函数里面的接收的address(this) 要兑换的币也是address(this) 最后执行的时候一直是执行失败的 所以为什么合约地址不能接收自己本身代币的转入?