我试图理解和统一的v2 SDK。我编写了一个简单的函数,用来获取交易结果:
我的问题是,为什么第一次交易结果与Uniswap接口返回的内容确实是准确的,而第二次交易甚至与网络接口中可用的结果并不接近?
代码:
import { ChainId, Token, Fetcher, Route, TradeType, TokenAmount, Trade } from '@uniswap/sdk'
const DAI = new Token(ChainId.MAINNET, '0x6B175474E89094C44Da98b954EedeAC495271d0F', 18)
const WETH = new Token(ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18)
const fetch = async () => {
const pair = await Fetcher.fetchPairData(DAI, WETH)
const routeWethForDai = new Route([pair], WETH);
const tradeWethForDai = new Trade(routeWethForDai, new TokenAmount(WETH, BigInt(1E18)), TradeType.EXACT_INPUT);
const routeDaiForWeth = new Route([pair], DAI);
const tradeDaiForWeth = new Trade(routeDaiForWeth, new TokenAmount(DAI, BigInt(1E18)), TradeType.EXACT_INPUT);
console.log(tradeWethForDai.executionPrice.toSignificant(6) + " DAI for 1 WETH")
console.log(tradeDaiForWeth.executionPrice.toSignificant(6) + " WETH for 1 DAI")
};
fetch()


发布于 2021-04-05 18:19:13
由于某些原因,Uniswap在屏幕截图中显示了路由DAI > USDC > COMP > ETH。那里的价格影响是6.35%,如果掉期是那样的话,下滑幅度将是巨大的。有一个ETH/DAI池,所以最好直接交换路径中的任何其他标记。您可以在Uniswap UI上执行此操作,方法是单击齿轮,打开“禁用多跳”:

https://stackoverflow.com/questions/66944736
复制相似问题