Uniswap sell beta connector done

This commit is contained in:
Samyak Jain 2021-11-20 16:21:36 +05:30
parent c952949ded
commit 07d9240556
3 changed files with 10 additions and 20 deletions

View File

@ -5,7 +5,6 @@ contract Events {
uint24 fee, uint24 fee,
uint256 amountIn, uint256 amountIn,
uint256 amountOut, uint256 amountOut,
uint256 amountOutMinimum, uint256 amountOutMinimum
bool zeroForOne
); );
} }

View File

@ -85,8 +85,7 @@ contract Helpers {
address recipient, address recipient,
uint24 fee, uint24 fee,
uint256 amountIn, uint256 amountIn,
uint256 amountOutMinimum, uint256 amountOutMinimum
bool zeroForOne
) internal view returns (ISwapRouter.ExactInputSingleParams memory params) { ) internal view returns (ISwapRouter.ExactInputSingleParams memory params) {
params = ISwapRouter.ExactInputSingleParams({ params = ISwapRouter.ExactInputSingleParams({
tokenIn: tokenIn, tokenIn: tokenIn,
@ -98,7 +97,7 @@ contract Helpers {
amountOutMinimum: amountOutMinimum, amountOutMinimum: amountOutMinimum,
sqrtPriceLimitX96: getPriceLimit( sqrtPriceLimitX96: getPriceLimit(
amountIn, amountIn,
zeroForOne, tokenIn < tokenOut,
tokenIn, tokenIn,
tokenOut, tokenOut,
fee fee

View File

@ -14,37 +14,29 @@ contract uniswapSellBeta is Helpers, Events {
address tokenOut, address tokenOut,
uint24 fee, uint24 fee,
uint256 amountIn, uint256 amountIn,
uint256 amountOutMinimum, uint256 amountOutMinimum
bool zeroForOne
) )
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
(address token0, address token1) = SwapTokens( IERC20(tokenIn).safeApprove(address(router), amountIn);
tokenIn,
tokenOut,
zeroForOne
);
IERC20(token0).safeApprove(address(router), amountIn);
uint256 amountOut = swapSingleInput( uint256 amountOut = swapSingleInput(
getParams( getParams(
token0, tokenIn,
token1, tokenOut,
address(this), address(this),
fee, fee,
amountIn, amountIn,
amountOutMinimum, amountOutMinimum
zeroForOne
) )
); );
_eventName = "LogSell(uint24,uint256,uint256,uint256,bool)"; _eventName = "LogSell(uint24,uint256,uint256,uint256)";
_eventParam = abi.encode( _eventParam = abi.encode(
fee, fee,
amountIn, amountIn,
amountOut, amountOut,
amountOutMinimum, amountOutMinimum
zeroForOne
); );
} }
} }