首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uniswap低级交换调用

uniswap低级交换调用
EN

Stack Overflow用户
提问于 2021-04-04 16:11:24
回答 1查看 202关注 0票数 2

我可以使用router02函数在uniswap上交换令牌:

代码语言:javascript
复制
route02.swapExactTokensForTokens(amtIn, amtOut,
         [t1.address, t2.address], addr, deadline(), {gasLimit: 4000000});

但是如何直接调用uniswap的低级交换函数呢?以下是我的代码,但它不起作用。在此函数调用之前,我已经向uni_v2_address发送了令牌。

代码语言:javascript
复制
const ethers = require('ethers');
const uni = new ethers.Contract(UNI_V2_ADDRESS, IUniswapV2Pair.abi, wallet);
let amt0out = BigInt(1) * BigInt(10**16);
let amt1out = BigInt(0);

//do swap
let tx = await uni.swap(amt0out, amt1out,
    addr, 0x0, {gasLimit: 4000000});
EN

回答 1

Stack Overflow用户

发布于 2021-07-19 07:17:28

删除第四个参数"data“,如下所示:

代码语言:javascript
复制
let tx = await uni.swap(amt0out, amt1out, addr, {gasLimit: 4000000});

在第四个"data“参数中传递任何内容都会启动闪存交换,乐观地将令牌传输到addr,并尝试在addr上调用名为"uniswapV2Call”的函数,如下所述:

Uniswap Flash Swaps Documentation

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

https://stackoverflow.com/questions/66939219

复制
相关文章

相似问题

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