Web3js
Uniswap V3 - 如何進行多路通話
我正在使用 Uniswap V3 並想進行 web3 呼叫
exactOutputSingle()
refundETH()
我希望他們進行一次交易,以便讓使用者在錢包上只確認一次。
我知道有從 SwapRouter 派生的 Multicall 契約。那麼如何在 web3 中進行多重呼叫以及如何對多重呼叫的功能進行編碼?
這是一個多呼叫 Uniswap V3 的工作範例:
var calls = []; const swap = swapRouter.methods.exactOutputSingle([token1, token0, fee, owner, deadline, amountOut, quotedAmountIn, 0]).encodeABI(); const refund = swapRouter.methods.refundETH().encodeABI(); calls.push(swap); calls.push(refund); try { await swapRouter.methods.multicall(calls).send({from: owner, gas: 1000000, value: quotedAmountIn}); } catch(err) { console.log(err); }