首页 > 解决方案 > 尝试为pancakeswap做一个简单的swap合约,每次gas估计都会出错

问题描述

我正在尝试构建一个非常基本的智能合约,用于在 pancakeswap 上交换代币。我就是搞不定。我尝试在 remix 上进行的每一次传输都会产生 Gas 估计错误。如果我强制发送它就会失败(警告!在合同执行期间遇到错误 [执行恢复])。我已经在主网上部署了合约。一些方向非常感谢!

// 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
        );
    }
}

标签: ethereumsoliditysmartcontractsremix

解决方案


推荐阅读