合约自身为什么不能接收自己本合约代币的转入

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) 最后执行的时候一直是执行失败的  所以为什么合约地址不能接收自己本身代币的转入?
请先 登录 后评论

最佳答案 2天前

pair 合约中有限制,to不能是交易对的两个合约地址: require(to != _token0 && to != _token1, 'Pancake: INVALID_TO');

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,130 浏览
  • 李俊阳 提出于 2天前