pragma solidity 0.6.6; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; /// @dev an simple interface for integration dApp to swap interface IDMMExchangeRouter { function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata poolsPath, IERC20[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata poolsPath, IERC20[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata poolsPath, IERC20[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata poolsPath, IERC20[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata poolsPath, IERC20[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata poolsPath, IERC20[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function getAmountsOut( uint256 amountIn, address[] calldata poolsPath, IERC20[] calldata path ) external view returns (uint256[] memory amounts); function getAmountsIn( uint256 amountOut, address[] calldata poolsPath, IERC20[] calldata path ) external view returns (uint256[] memory amounts); }