// SPDX-License-Identifier: MIT // @unsupported: ovm pragma solidity ^0.6.8; interface IComposableExchange { function swap( address tokenA, address tokenB, uint256 amountIn, uint256 amountOut, bytes calldata data ) external returns(uint256); function getAmountsOut( address tokenIn, address tokenOut, uint256 amountIn, bytes calldata data ) external view returns(uint256); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function getPoolAddress(address tokenA, address tokenB) external view returns(address); }