簡體   English   中英

從 Uniswap V2 獲得合適的售價

[英]Get proper sell price from Uniswap V2

我能夠使用 Uniswap v2 SDK 獲取將 1 WETH 交換為 DAI 的正確交易結果。

現在我想獲取我需要提供多少 DAI 才能獲得 1 WETH。 要在 Uniswap 界面上觸發此操作,您只需創建交易 DAI -> WETH,然后在“to”輸入中輸入1 (然后您會在頂部獲得From (estimated) )。 不幸的是,它對我來說不起作用。 我收到的是我猜是賣 1 DAI 換 WETH 的結果。

我該如何解決?

export async function buySellUni() {
        const DAI = new Token(ChainId.MAINNET, '0x6B175474E89094C44Da98b954EedeAC495271d0F', 18)
        const WETH = new Token(ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18)
        const pair = await Fetcher.fetchPairData(DAI, WETH)
    
        const buyRoute = new Route([pair], WETH);
        const buyTrade = Trade.exactIn(buyRoute, new TokenAmount(WETH, BigInt(1E18)));
        const sellRoute = new Route([pair], DAI);
        const sellTrade = Trade.exactOut(sellRoute, new TokenAmount(WETH, BigInt(1E18)));

        console.log("Get " + buyTrade.executionPrice.toSignificant(6) + " DAI for 1 WETH");
        console.log("Need " + sellTrade.executionPrice.toSignificant(6) + " DAI to get 1 WETH");
 };

我正在使用exactOut來獲取WETH令牌的確切Out not In 值,但是我的路線已經過調整,因此輸入是DAI而不是WETH

在此處輸入圖像描述

我收到的是我猜是賣 1 DAI 換 WETH 的結果

它是“你可以用 1 DAI 購買多少 WETH”。 您可以通過計算(1 / X)輕松將此數字轉換為“購買 1 WETH 需要多少 DAI”。

console.log("Need " + (1 / sellTrade.executionPrice.toSignificant(6)) + " DAI to get 1 WETH");

1 / 0.000366619 = 2727.6273188241744

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM