Following the documentation here: https://uniswap.org/docs/v2/javascript-SDK/pricing/
I have been able to replicate the results using WETH, and I have decided to have a go at getting a similar result with DAI and USDT.
const { ChainId, Fetcher, Route, Trade, TokenAmount, TradeType, WETH } = require('@uniswap/sdk');
const init = async () => {
const dai = await Fetcher.fetchTokenData(ChainId.MAINNET, '0x6B175474E89094C44Da98b954EedeAC495271d0F');
const tether = await Fetcher.fetchTokenData(ChainId.MAINNET, '0xdAC17F958D2ee523a2206206994597C13D831ec7');
const pair = await Fetcher.fetchPairData(dai, tether);
const route = new Route([pair], tether);
const trade = new Trade(route, new TokenAmount(tether, '1000000000000000000'), TradeType.EXACT_INPUT);
};
init();
I retrieve the Token Data for both Dai and Tether, then fetch pair data which I then put into a route.
These abovementioned steps must be correct as the an in-function log of
console.log(route.midPrice.toSignificant(6));
console.log(route.midPrice.invert().toSignificant(6));
return values that make sense.
Where things become odd is with
console.log(trade.priceImpact.toSignificant(6));
console.log(trade.executionPrice.toSignificant(6));
console.log(trade.outputAmount.toSignificant(6));
According to these results, my price impact is at 100, the execution price is around 0.000000278029, and the output amount is at 278028.
This doesn't sound right at all.
What is the mistake in my code that brings about this error?