gpt4 book ai didi

ethereum - uniswap 低级交换调用

转载 作者:行者123 更新时间:2023-12-05 06:48:01 25 4
gpt4 key购买 nike

我可以使用 router02 函数在 uniswap 上交换代币:

route02.swapExactTokensForTokens(amtIn, amtOut,
[t1.address, t2.address], addr, deadline(), {gasLimit: 4000000});

但是如何直接调用uniswap的底层swap函数呢?这是我的代码,但没有用。在此函数调用之前,我已经将 token 发送到 uni_v2_address。

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});

最佳答案

像这样删除第四个参数“data”:

let tx = await uni.swap(amt0out, amt1out, addr, {gasLimit: 4000000});

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

Uniswap Flash Swaps Documentation

关于ethereum - uniswap 低级交换调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66939219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com