You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
5.6 KiB
208 lines
5.6 KiB
// SPDX-License-Identifier: UNLICENSED
|
|
pragma solidity >=0.6.2;
|
|
|
|
interface IUniswapV2Router01 {
|
|
function factory() external pure returns (address);
|
|
|
|
function WETH() external pure returns (address);
|
|
|
|
function addLiquidity(
|
|
address tokenA,
|
|
address tokenB,
|
|
uint256 amountADesired,
|
|
uint256 amountBDesired,
|
|
uint256 amountAMin,
|
|
uint256 amountBMin,
|
|
address to,
|
|
uint256 deadline
|
|
)
|
|
external
|
|
returns (
|
|
uint256 amountA,
|
|
uint256 amountB,
|
|
uint256 liquidity
|
|
);
|
|
|
|
function addLiquidityETH(
|
|
address token,
|
|
uint256 amountTokenDesired,
|
|
uint256 amountTokenMin,
|
|
uint256 amountETHMin,
|
|
address to,
|
|
uint256 deadline
|
|
)
|
|
external
|
|
payable
|
|
returns (
|
|
uint256 amountToken,
|
|
uint256 amountETH,
|
|
uint256 liquidity
|
|
);
|
|
|
|
function removeLiquidity(
|
|
address tokenA,
|
|
address tokenB,
|
|
uint256 liquidity,
|
|
uint256 amountAMin,
|
|
uint256 amountBMin,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256 amountA, uint256 amountB);
|
|
|
|
function removeLiquidityETH(
|
|
address token,
|
|
uint256 liquidity,
|
|
uint256 amountTokenMin,
|
|
uint256 amountETHMin,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256 amountToken, uint256 amountETH);
|
|
|
|
function removeLiquidityWithPermit(
|
|
address tokenA,
|
|
address tokenB,
|
|
uint256 liquidity,
|
|
uint256 amountAMin,
|
|
uint256 amountBMin,
|
|
address to,
|
|
uint256 deadline,
|
|
bool approveMax,
|
|
uint8 v,
|
|
bytes32 r,
|
|
bytes32 s
|
|
) external returns (uint256 amountA, uint256 amountB);
|
|
|
|
function removeLiquidityETHWithPermit(
|
|
address token,
|
|
uint256 liquidity,
|
|
uint256 amountTokenMin,
|
|
uint256 amountETHMin,
|
|
address to,
|
|
uint256 deadline,
|
|
bool approveMax,
|
|
uint8 v,
|
|
bytes32 r,
|
|
bytes32 s
|
|
) external returns (uint256 amountToken, uint256 amountETH);
|
|
|
|
function swapExactTokensForTokens(
|
|
uint256 amountIn,
|
|
uint256 amountOutMin,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256[] memory amounts);
|
|
|
|
function swapTokensForExactTokens(
|
|
uint256 amountOut,
|
|
uint256 amountInMax,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256[] memory amounts);
|
|
|
|
function swapExactETHForTokens(
|
|
uint256 amountOutMin,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external payable returns (uint256[] memory amounts);
|
|
|
|
function swapTokensForExactETH(
|
|
uint256 amountOut,
|
|
uint256 amountInMax,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256[] memory amounts);
|
|
|
|
function swapExactTokensForETH(
|
|
uint256 amountIn,
|
|
uint256 amountOutMin,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256[] memory amounts);
|
|
|
|
function swapETHForExactTokens(
|
|
uint256 amountOut,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external payable returns (uint256[] memory amounts);
|
|
|
|
function quote(
|
|
uint256 amountA,
|
|
uint256 reserveA,
|
|
uint256 reserveB
|
|
) external pure returns (uint256 amountB);
|
|
|
|
function getAmountOut(
|
|
uint256 amountIn,
|
|
uint256 reserveIn,
|
|
uint256 reserveOut
|
|
) external pure returns (uint256 amountOut);
|
|
|
|
function getAmountIn(
|
|
uint256 amountOut,
|
|
uint256 reserveIn,
|
|
uint256 reserveOut
|
|
) external pure returns (uint256 amountIn);
|
|
|
|
function getAmountsOut(uint256 amountIn, address[] calldata path)
|
|
external
|
|
view
|
|
returns (uint256[] memory amounts);
|
|
|
|
function getAmountsIn(uint256 amountOut, address[] calldata path)
|
|
external
|
|
view
|
|
returns (uint256[] memory amounts);
|
|
}
|
|
|
|
interface IUniswapV2Router02 is IUniswapV2Router01 {
|
|
function removeLiquidityETHSupportingFeeOnTransferTokens(
|
|
address token,
|
|
uint256 liquidity,
|
|
uint256 amountTokenMin,
|
|
uint256 amountETHMin,
|
|
address to,
|
|
uint256 deadline
|
|
) external returns (uint256 amountETH);
|
|
|
|
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
|
|
address token,
|
|
uint256 liquidity,
|
|
uint256 amountTokenMin,
|
|
uint256 amountETHMin,
|
|
address to,
|
|
uint256 deadline,
|
|
bool approveMax,
|
|
uint8 v,
|
|
bytes32 r,
|
|
bytes32 s
|
|
) external returns (uint256 amountETH);
|
|
|
|
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
|
|
uint256 amountIn,
|
|
uint256 amountOutMin,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external;
|
|
|
|
function swapExactETHForTokensSupportingFeeOnTransferTokens(
|
|
uint256 amountOutMin,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external payable;
|
|
|
|
function swapExactTokensForETHSupportingFeeOnTransferTokens(
|
|
uint256 amountIn,
|
|
uint256 amountOutMin,
|
|
address[] calldata path,
|
|
address to,
|
|
uint256 deadline
|
|
) external;
|
|
}
|
|
|