mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	update
This commit is contained in:
		
							parent
							
								
									90ff0eedf0
								
							
						
					
					
						commit
						69ce278335
					
				
							
								
								
									
										67
									
								
								contracts/arbitrum/connectors/uniswap-sell-beta/helpers.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								contracts/arbitrum/connectors/uniswap-sell-beta/helpers.sol
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | |||
| pragma solidity ^0.7.6; | ||||
| pragma abicoder v2; | ||||
| 
 | ||||
| import "./interface.sol"; | ||||
| import {SqrtPriceMath} from "./libraries/SqrtPriceMath.sol"; | ||||
| import "./libraries/TransferHelper.sol"; | ||||
| 
 | ||||
| abstract contract Helpers is ISwapRouter { | ||||
|     ISwapRouter router = | ||||
|         ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564); | ||||
| 
 | ||||
|     UniswapV3Pool state = | ||||
|         UniswapV3Pool(0xCEda10b4d3bdE429DdA3A6daB87b38360313CBdB); | ||||
| 
 | ||||
|     function getPriceLimit(uint256 amountIn, bool zeroForOne) | ||||
|         public | ||||
|         returns (uint160) | ||||
|     { | ||||
|         return ( | ||||
|             SqrtPriceMath.getNextSqrtPriceFromInput( | ||||
|                 state.slot0().sqrtPriceX96, | ||||
|                 state.liquidity(), | ||||
|                 amountIn, | ||||
|                 zeroForOne | ||||
|             ) | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     function getParams( | ||||
|         address tokenIn, | ||||
|         address tokenOut, | ||||
|         address recipient, | ||||
|         uint24 fee, | ||||
|         uint256 amountIn, | ||||
|         uint256 amountOutMinimum, | ||||
|         bool zeroForOne | ||||
|     ) public returns (ISwapRouter.ExactInputSingleParams memory params) { | ||||
|         params = ISwapRouter.ExactInputSingleParams({ | ||||
|             tokenIn: tokenIn, | ||||
|             tokenOut: tokenOut, | ||||
|             fee: fee, | ||||
|             recipient: recipient, | ||||
|             deadline: block.timestamp + 1, | ||||
|             amountIn: amountIn, | ||||
|             amountOutMinimum: amountOutMinimum, | ||||
|             sqrtPriceLimitX96: getPriceLimit(amountIn, zeroForOne) | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     function approveTransfer( | ||||
|         address tokenIn, | ||||
|         address sender, | ||||
|         address recipient, | ||||
|         uint256 amountIn | ||||
|     ) public { | ||||
|         TransferHelper.safeTransferFrom(tokenIn, sender, recipient, amountIn); | ||||
| 
 | ||||
|         TransferHelper.safeApprove(tokenIn, address(router), amountIn); | ||||
|     } | ||||
| 
 | ||||
|     function getSingleInput(ISwapRouter.ExactInputSingleParams memory params) | ||||
|         public | ||||
|         returns (uint256) | ||||
|     { | ||||
|         return (uint256(router.exactInputSingle(params))); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										32
									
								
								contracts/arbitrum/connectors/uniswap-sell-beta/main.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								contracts/arbitrum/connectors/uniswap-sell-beta/main.sol
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | |||
| pragma solidity ^0.7.6; | ||||
| pragma abicoder v2; | ||||
| 
 | ||||
| import "./helpers.sol"; | ||||
| 
 | ||||
| abstract contract uniswapSellBeta is Helpers { | ||||
|     function sell( | ||||
|         address tokenIn, | ||||
|         address tokenOut, | ||||
|         uint24 fee, | ||||
|         uint256 amountIn, | ||||
|         uint256 amountOutMinimum, | ||||
|         bool zeroForOne | ||||
|     ) public returns (uint256 amountOut) { | ||||
|         approveTransfer(tokenIn, msg.sender, address(this), amountIn); | ||||
|         amountOut = getSingleInput( | ||||
|             getParams( | ||||
|                 tokenIn, | ||||
|                 tokenOut, | ||||
|                 msg.sender, | ||||
|                 fee, | ||||
|                 amountIn, | ||||
|                 amountOutMinimum, | ||||
|                 zeroForOne | ||||
|             ) | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| abstract contract UniswapSellBetaArbitrum is uniswapSellBeta { | ||||
|     string public constant name = "UniswapSample-v1"; | ||||
| } | ||||
|  | @ -1,56 +0,0 @@ | |||
| pragma solidity ^0.7.6; | ||||
| pragma abicoder v2; | ||||
| 
 | ||||
| import "./interface.sol"; | ||||
| import {SqrtPriceMath} from "./libraries/SqrtPriceMath.sol"; | ||||
| import "./libraries/TransferHelper.sol"; | ||||
| 
 | ||||
| abstract contract Helpers is ISwapRouter { | ||||
|     ISwapRouter router = | ||||
|         ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564); | ||||
| 
 | ||||
|     UniswapV3Pool state = | ||||
|         UniswapV3Pool(0xCEda10b4d3bdE429DdA3A6daB87b38360313CBdB); | ||||
| 
 | ||||
|     uint24 public constant poolFee = 3000; | ||||
| 
 | ||||
|     function getPriceLimit( | ||||
|         ISwapRouter.ExactInputSingleParams memory params, | ||||
|         bool zeroForOne | ||||
|     ) public returns (uint160) { | ||||
|         return ( | ||||
|             SqrtPriceMath.getNextSqrtPriceFromInput( | ||||
|                 state.slot0().sqrtPriceX96, | ||||
|                 state.liquidity(), | ||||
|                 params.amountIn, | ||||
|                 zeroForOne | ||||
|             ) | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     function approveTransfer( | ||||
|         ISwapRouter.ExactInputSingleParams memory params, | ||||
|         address sender, | ||||
|         address recipient | ||||
|     ) public { | ||||
|         TransferHelper.safeTransferFrom( | ||||
|             params.tokenIn, | ||||
|             sender, | ||||
|             recipient, | ||||
|             params.amountIn | ||||
|         ); | ||||
| 
 | ||||
|         TransferHelper.safeApprove( | ||||
|             params.tokenIn, | ||||
|             address(router), | ||||
|             params.amountIn | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     function getSingleInput(ISwapRouter.ExactInputSingleParams memory params) | ||||
|         public | ||||
|         returns (uint256) | ||||
|     { | ||||
|         return (uint256(router.exactInputSingle(params))); | ||||
|     } | ||||
| } | ||||
|  | @ -1,32 +0,0 @@ | |||
| pragma solidity ^0.7.6; | ||||
| pragma abicoder v2; | ||||
| 
 | ||||
| import "./helpers.sol"; | ||||
| import "./interface.sol"; | ||||
| 
 | ||||
| abstract contract uniswapSample is Helpers { | ||||
|     function sell( | ||||
|         ISwapRouter.ExactInputSingleParams memory params, | ||||
|         bool zeroForOne | ||||
|     ) public returns (uint256 amountOut) { | ||||
|         approveTransfer(params, msg.sender, address(this)); | ||||
| 
 | ||||
|         ISwapRouter.ExactInputSingleParams memory params1 = ISwapRouter | ||||
|             .ExactInputSingleParams({ | ||||
|                 tokenIn: params.tokenIn, | ||||
|                 tokenOut: params.tokenOut, | ||||
|                 fee: poolFee, | ||||
|                 recipient: address(this), | ||||
|                 deadline: block.timestamp + 1, | ||||
|                 amountIn: params.amountIn, | ||||
|                 amountOutMinimum: 0, | ||||
|                 sqrtPriceLimitX96: getPriceLimit(params, true) | ||||
|             }); | ||||
| 
 | ||||
|         amountOut = getSingleInput(params1); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| abstract contract UniswapArbitrum is uniswapSample { | ||||
|     string public constant name = "UniswapSample-v1"; | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 pradyuman-verma
						pradyuman-verma