Ethereum 尝试为pancakeswap做一个简单的交换合同,每次都会出现气体估计错误

Ethereum 尝试为pancakeswap做一个简单的交换合同,每次都会出现气体估计错误,ethereum,solidity,smartcontracts,remix,Ethereum,Solidity,Smartcontracts,Remix,我正在尝试构建一个非常基本的智能合约,用于在pancakeswap上交换代币。我就是做不好。我尝试在混音上进行的每一次传输都会产生气体估计误差。如果我强制发送,它就会失败(警告!在合同执行期间遇到错误[执行已恢复])。我在mainnet上部署了合同。非常感谢您的指导 // SPDX-License-Identifier: MIT pragma solidity ^0.7.0; contract swapTest{ address private constant pancak

我正在尝试构建一个非常基本的智能合约,用于在pancakeswap上交换代币。我就是做不好。我尝试在混音上进行的每一次传输都会产生气体估计误差。如果我强制发送,它就会失败(警告!在合同执行期间遇到错误[执行已恢复])。我在mainnet上部署了合同。非常感谢您的指导

// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;

contract swapTest{
    
    address private constant pancakeRouter = 0x05fF2B0DB69458A0750badebc4f9e13aDd608C7F;
    address private constant WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
 

    function swap(
        uint amountOutMin,
        address token
        ) external payable {
            IERC20(WBNB).transferFrom(msg.sender, address(this), msg.value);
            IERC20(WBNB).approve(pancakeRouter, msg.value);
            address[] memory path = new address[](2);
            path[0] = WBNB;
            path[1] = token;
            IPancakeRouter02(pancakeRouter).swapExactETHForTokens{value: msg.value}(
                amountOutMin,
                path,
                msg.sender,
                block.timestamp
        );
    }
}