From 3c5142d3669b5603fb1ec3e4c87f2d86bc23b75c Mon Sep 17 00:00:00 2001 From: Thrilok Kumar Date: Thu, 28 May 2020 04:33:34 +0530 Subject: [PATCH] added slippage in withdraw resolver --- contracts/protocols/uniswapV2.sol | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/contracts/protocols/uniswapV2.sol b/contracts/protocols/uniswapV2.sol index b887413..0d9a1d4 100644 --- a/contracts/protocols/uniswapV2.sol +++ b/contracts/protocols/uniswapV2.sol @@ -211,11 +211,11 @@ contract Resolver is UniswapHelpers { function getUniTokenAmount( address tokenA, address tokenB, - uint uniAmt + uint uniAmt, + uint slippage ) - public view returns (uint amtA, uint amtB) + public view returns (uint amtA, uint amtB, uint minA, uint minB) { - // TODO - shall we return min amtA and amtB? (TokenInterface _tokenA, TokenInterface _tokenB) = changeEthAddress(tokenA, tokenB); IUniswapV2Router01 router = IUniswapV2Router01(getUniswapAddr()); address exchangeAddr = IUniswapV2Factory(router.factory()).getPair(address(_tokenA), address(_tokenB)); @@ -224,6 +224,8 @@ contract Resolver is UniswapHelpers { uint share = wdiv(uniAmt, uniToken.totalSupply()); amtA = wmul(_tokenA.balanceOf(exchangeAddr), share); amtB = wmul(_tokenB.balanceOf(exchangeAddr), share); + minA = getMinAmount(_tokenA, amtA, slippage); + minB = getMinAmount(_tokenB, amtB, slippage); } }