首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"TransferHelper: TRANSFER_FROM_FAILED“( UniswapV2 )

"TransferHelper: TRANSFER_FROM_FAILED“( UniswapV2 )
EN

Stack Overflow用户
提问于 2022-11-04 15:40:37
回答 1查看 35关注 0票数 0

我在使用UniswapV2Router.sol时遇到了问题。我使用UniswapV2Router接口编写了一个契约,并创建了一个使用swapExactTokenForETH的函数。

这是密码。

代码语言:javascript
复制
function swapForETH(
        uint amountInMax,
        uint amountOut,
        address[] calldata path,
        address to
    )external{
        IUniswapV2Router02(ROUTER).swapExactTokensForETH(
            amountInMax,
            amountOut,
            path,
            to,
            block.timestamp
        );
    }

现在我写了一个测试,首先我批准了路由器,然后我尝试在ETH中交换一些沙子标记。

以下是代码:

代码语言:javascript
复制
it("should swap exact tokens for ETH", async()=>{

        let ownerSandBalance  = await SAND_TOKEN.balanceOf(owner.address);
        console.log("Owner Sand Balance: ", (ownerSandBalance).toString());


        let tx = await SAND_TOKEN.connect(owner).approve(ROUTER, ownerSandBalance);
        await tx.wait();


        let approvance = await SAND_TOKEN.allowance(owner.address, ROUTER);
        console.log("Approval from owner to contract: ", (approvance).toString());


        let result = await contract.connect(owner).swapForETH(
            ownerSandBalance,
            "100000000000000000",
            [SAND, WETH],
            owner.address,
        );

        console.log("", (result[0] / decimals).toString());
        console.log("", (result[1] / decimals).toString());
        console.log(result);
    });

现在我不明白为什么会出现"TransferHelper: TRANSFER_FROM_FAILED“这个错误。ownerSandBalance是18576609770834064884363。有人能解释一下我为什么会得到它吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-05 11:40:04

"100000000000000000“似乎不算什么问题。你试过web3.utils.toWei("0,1")了吗?

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

https://stackoverflow.com/questions/74319515

复制
相关文章

相似问题

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