首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solidity交换被取消

Solidity交换被取消
EN

Stack Overflow用户
提问于 2022-08-26 13:50:27
回答 1查看 94关注 0票数 -1

我已经为sushiswap建立了自己的智能合同,当我试图从WETH换到DAI时,交易成功了,但我没有得到任何DAI,似乎只花了汽油。

这是我的智能合同代码:

代码语言:javascript
复制
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

contract Uniswap {
    address private constant UNISWAP_V2_ROUTER = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
    address private constant WETH = 0xd0A1E359811322d97991E03f863a0C30C2cF029C;

    function swap(
        address _tokenIn,
        address _tokenOut,
        uint256 _amountIn
    ) external {
        IERC20(_tokenIn).transferFrom(msg.sender, address(this), _amountIn);
        IERC20(_tokenIn).approve(UNISWAP_V2_ROUTER, _amountIn);

        address[] memory path = new address[](2);
        path[0] = _tokenIn;
        path[1] = _tokenOut;

        address recipient = address(this);

        IUniswapV2Router(UNISWAP_V2_ROUTER).swapExactTokensForTokens(
            _amountIn,
            0,
            path,
            recipient,
            block.timestamp
        );
    }
}

interface IUniswapV2Router {
    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);


}

我在两个不同的testnet上做了测试: Ropsten和Kovan,实际上,这是相同的错误发生。

在内部错误中,似乎有两个与WETH的交织,就像交换完成后被取消一样。

这里是TX:

以太扫描tx

EN

回答 1

Stack Overflow用户

发布于 2022-08-27 08:13:41

尝试增加最后期限,这是swapExactTokensForTokens的最后一个参数

为前5加5。试试这个。如果它不能工作,与我分享事务散列,以更好地分析。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73502069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档