我想使用swapExactETHForTokens在我的智能契约,总是失败的事务与错误,即"execution reverted: UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT"。
这是我的密码。
pragma solidity ^0.6.2;
interface IUniswap {
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function WETH() external pure returns (address);
}
contract MyDefi{
IUniswap uniswap;
constructor(address _uniswap) public {
uniswap = IUniswap(_uniswap);
}
function tastSwapExactETHForTokens(
uint amountOut,
address token,
uint deadline
) external payable {
address[] memory path = new address[](2);
path[0] = uniswap.WETH();
path[1] = token;
uniswap.swapExactETHForTokens(
amountOut,
path,
msg.sender,
deadline
);
}
}我试图在rinkeby网络中交换DAI令牌,并从以太扫描网站获得了一个amountOut参数。https://rinkeby.etherscan.io/address/0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D#readContract
有人帮我解决问题吗?
发布于 2021-06-21 05:43:11
https://uniswap.org/docs/v2/smart-contracts/router02/在路径所决定的路由上,将确切数量的ETH替换为尽可能多的输出令牌。路径的第一个元素必须是WETH,最后一个元素是输出令牌,任何中间元素都表示要交换的中间对(例如,如果不存在直接对)。
发布于 2020-12-07 01:36:49
在调用使用{value: msg.value}的函数之前,我们必须键入msg.value。
uniswap.swapExactETHForTokens{value: msg.value}(
amountOut,
path,
msg.sender,
deadline
);https://ethereum.stackexchange.com/questions/90825
复制相似问题