mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
pragma solidity ^0.7.0;
 | 
						|
pragma experimental ABIEncoderV2;
 | 
						|
 | 
						|
 | 
						|
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
 | 
						|
interface IGUniPool {
 | 
						|
 | 
						|
    function token0() external view returns (IERC20);
 | 
						|
 | 
						|
    function token1() external view returns (IERC20);
 | 
						|
 | 
						|
    function mint(
 | 
						|
        uint256 amount,
 | 
						|
        address receiver
 | 
						|
    ) external
 | 
						|
    returns (
 | 
						|
        uint256 amount0,
 | 
						|
        uint256 amount1,
 | 
						|
        uint256 mintAmount
 | 
						|
    );
 | 
						|
 | 
						|
    function burn(
 | 
						|
        uint256 _burnAmount,
 | 
						|
        address _receiver
 | 
						|
    ) external
 | 
						|
    returns (
 | 
						|
        uint256 amount0,
 | 
						|
        uint256 amount1,
 | 
						|
        uint128 liquidityBurned
 | 
						|
    );
 | 
						|
 | 
						|
    function getMintAmounts(
 | 
						|
        uint256 amount0Max,
 | 
						|
        uint256 amount1Max
 | 
						|
    ) external view
 | 
						|
    returns (
 | 
						|
        uint256 amount0,
 | 
						|
        uint256 amount1,
 | 
						|
        uint256 mintAmount
 | 
						|
    );
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
interface IGUniRouter {
 | 
						|
    function rebalanceAndAddLiquidity(
 | 
						|
        IGUniPool pool,
 | 
						|
        uint256 amount0In,
 | 
						|
        uint256 amount1In,
 | 
						|
        bool zeroForOne,
 | 
						|
        uint256 swapAmount,
 | 
						|
        uint160 swapThreshold,
 | 
						|
        uint256 amount0Min,
 | 
						|
        uint256 amount1Min,
 | 
						|
        address receiver
 | 
						|
    )
 | 
						|
        external
 | 
						|
        returns (
 | 
						|
            uint256 amount0,
 | 
						|
            uint256 amount1,
 | 
						|
            uint256 mintAmount
 | 
						|
        );
 | 
						|
 | 
						|
    function rebalanceAndAddLiquidityETH(
 | 
						|
        IGUniPool pool,
 | 
						|
        uint256 amount0In,
 | 
						|
        uint256 amount1In,
 | 
						|
        bool zeroForOne,
 | 
						|
        uint256 swapAmount,
 | 
						|
        uint160 swapThreshold,
 | 
						|
        uint256 amount0Min,
 | 
						|
        uint256 amount1Min,
 | 
						|
        address receiver
 | 
						|
    )
 | 
						|
        external
 | 
						|
        payable
 | 
						|
        returns (
 | 
						|
            uint256 amount0,
 | 
						|
            uint256 amount1,
 | 
						|
            uint256 mintAmount
 | 
						|
        );
 | 
						|
 | 
						|
    function removeLiquidity(
 | 
						|
        IGUniPool pool,
 | 
						|
        uint256 burnAmount,
 | 
						|
        uint256 amount0Min,
 | 
						|
        uint256 amount1Min,
 | 
						|
        address receiver
 | 
						|
    )
 | 
						|
        external
 | 
						|
        returns (
 | 
						|
            uint256 amount0,
 | 
						|
            uint256 amount1,
 | 
						|
            uint128 liquidityBurned
 | 
						|
        );
 | 
						|
 | 
						|
    function removeLiquidityETH(
 | 
						|
        IGUniPool pool,
 | 
						|
        uint256 burnAmount,
 | 
						|
        uint256 amount0Min,
 | 
						|
        uint256 amount1Min,
 | 
						|
        address payable receiver
 | 
						|
    )
 | 
						|
        external
 | 
						|
        returns (
 | 
						|
            uint256 amount0,
 | 
						|
            uint256 amount1,
 | 
						|
            uint128 liquidityBurned
 | 
						|
        );
 | 
						|
}
 | 
						|
 | 
						|
interface TokenInterface {
 | 
						|
    function approve(address, uint256) external;
 | 
						|
    function transfer(address, uint) external;
 | 
						|
    function transferFrom(address, address, uint) external;
 | 
						|
    function deposit() external payable;
 | 
						|
    function withdraw(uint) external;
 | 
						|
    function balanceOf(address) external view returns (uint);
 | 
						|
    function decimals() external view returns (uint);
 | 
						|
} |