ethereum - 尝试为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
);
}
}
解决方案
推荐阅读
- angular - 如何停止
从外部按钮点击触发 - ssl - 告诉 nginx 静默忽略丢失的文件
- python - Python - 列表索引
- postgresql - 在 Postgres sql 中将没有时区的时间的默认值插入为 hh:mm:ss 格式
- python - Scrapy / crawling - 检测蜘蛛陷阱或无限网站
- redirect - IIS 重写 - 仅重定向主页 URL - 不是深度链接
- php - 如果 SESSION 用户被“禁止”不返回 true,PHP 检查数据库?
- swift - 枚举关联值和泛型
- json - 如何使用空手道放置逻辑和断言动态数据
- php - Vagrant 没有加载正确的版本