diff --git a/src/components/current/MessageTranslator.tsx b/src/components/current/MessageTranslator.tsx index bc8772bd..bedf30cb 100644 --- a/src/components/current/MessageTranslator.tsx +++ b/src/components/current/MessageTranslator.tsx @@ -186,6 +186,8 @@ export const Widget = (props: WidgetProps) => { tokenInSymbol={parsedArgs[0]} tokenOutSymbol={parsedArgs[1]} inputAmount={parsedArgs[3]} + transactionKeyword={parsedArgs[2]} // BUYAMOUNT or SELLAMOUNT + slippage={parsedArgs[4]} /> ); diff --git a/src/components/current/widgets/uniswap/Uniswap.tsx b/src/components/current/widgets/uniswap/Uniswap.tsx index 698d2fc1..40232b84 100644 --- a/src/components/current/widgets/uniswap/Uniswap.tsx +++ b/src/components/current/widgets/uniswap/Uniswap.tsx @@ -25,10 +25,13 @@ interface UniswapProps { tokenInSymbol: string; tokenOutSymbol: string; inputAmount: string; + slippage: string; + transactionKeyword: 'BUYAMOUNT' | 'SELLAMOUNT'; } -const Uniswap = ({ tokenInSymbol, tokenOutSymbol, inputAmount }: UniswapProps) => { +const Uniswap = ({ tokenInSymbol, tokenOutSymbol, inputAmount, slippage, transactionKeyword }: UniswapProps) => { const chainId = useChainId(); + const isBuying = transactionKeyword === 'BUYAMOUNT'; const { address: recipient } = useAccount(); const { data: tokenIn, isETH: tokenInIsETH } = useToken(tokenInSymbol); @@ -36,10 +39,12 @@ const Uniswap = ({ tokenInSymbol, tokenOutSymbol, inputAmount }: UniswapProps) = const { data: tokenInChecked } = useToken(tokenInIsETH ? 'WETH' : tokenInSymbol); const { data: tokenOutChecked } = useToken(tokenOutIsETH ? 'WETH' : tokenOutSymbol); const input = useInput(inputAmount, tokenInChecked?.symbol!); - const slippage = 2.0; // in percentage terms + + const slippage_ = +slippage || 0.5; // in percentage terms + const getSlippageAdjustedAmount = (amount: BigNumber) => BigNumber.from(amount) - .mul(10000 - slippage * 100) + .mul(10000 - slippage_ * 100) .div(10000); // token out quote for amount in @@ -250,7 +255,7 @@ const Uniswap = ({ tokenInSymbol, tokenOutSymbol, inputAmount }: UniswapProps) =