RouterV2 Contract Reference
Key Concepts
Utility Queries
sortTokens(address tokenA, address tokenB) → (address token0, address token1)
sortTokens(address tokenA, address tokenB) → (address token0, address token1)pairFor(address tokenA, address tokenB, bool stable) → address pair
pairFor(address tokenA, address tokenB, bool stable) → address pairgetReserves(address tokenA, address tokenB, bool stable) → (uint256 reserveA, uint256 reserveB)
getReserves(address tokenA, address tokenB, bool stable) → (uint256 reserveA, uint256 reserveB)getAmountOut(uint256 amountIn, address tokenIn, address tokenOut) → (uint256 amount, bool stable)
getAmountOut(uint256 amountIn, address tokenIn, address tokenOut) → (uint256 amount, bool stable)getAmountsOut(uint256 amountIn, route[] routes) → uint256[] amounts
getAmountsOut(uint256 amountIn, route[] routes) → uint256[] amountsisPair(address pair) → bool
isPair(address pair) → boolLiquidity Quoting Helpers
quoteAddLiquidity(address tokenA, address tokenB, bool stable, uint256 amountADesired, uint256 amountBDesired) → (uint256 amountA, uint256 amountB, uint256 liquidity)
quoteAddLiquidity(address tokenA, address tokenB, bool stable, uint256 amountADesired, uint256 amountBDesired) → (uint256 amountA, uint256 amountB, uint256 liquidity)quoteRemoveLiquidity(address tokenA, address tokenB, bool stable, uint256 liquidity) → (uint256 amountA, uint256 amountB)
quoteRemoveLiquidity(address tokenA, address tokenB, bool stable, uint256 liquidity) → (uint256 amountA, uint256 amountB)Adding Liquidity
addLiquidity(address tokenA, address tokenB, bool stable, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) → (uint256 amountA, uint256 amountB, uint256 liquidity)
addLiquidity(address tokenA, address tokenB, bool stable, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) → (uint256 amountA, uint256 amountB, uint256 liquidity)addLiquidityETH(address token, bool stable, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) → (uint256 amountToken, uint256 amountETH, uint256 liquidity)
addLiquidityETH(address token, bool stable, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) → (uint256 amountToken, uint256 amountETH, uint256 liquidity)Removing Liquidity
removeLiquidity(address tokenA, address tokenB, bool stable, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) → (uint256 amountA, uint256 amountB)
removeLiquidity(address tokenA, address tokenB, bool stable, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) → (uint256 amountA, uint256 amountB)removeLiquidityETH(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) → (uint256 amountToken, uint256 amountETH)
removeLiquidityETH(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) → (uint256 amountToken, uint256 amountETH)removeLiquidityETHSupportingFeeOnTransferTokens(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) → (uint256 amountToken, uint256 amountETH)
removeLiquidityETHSupportingFeeOnTransferTokens(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) → (uint256 amountToken, uint256 amountETH)Removing Liquidity with Permits
removeLiquidityWithPermit(address tokenA, address tokenB, bool stable, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) → (uint256 amountA, uint256 amountB)
removeLiquidityWithPermit(address tokenA, address tokenB, bool stable, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) → (uint256 amountA, uint256 amountB)removeLiquidityETHWithPermit(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) → (uint256 amountToken, uint256 amountETH)
removeLiquidityETHWithPermit(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) → (uint256 amountToken, uint256 amountETH)removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) → (uint256 amountToken, uint256 amountETH)
removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, bool stable, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) → (uint256 amountToken, uint256 amountETH)Swap Execution
swapExactTokensForTokensSimple(uint256 amountIn, uint256 amountOutMin, address tokenFrom, address tokenTo, bool stable, address to, uint256 deadline) → uint256[] amounts
swapExactTokensForTokensSimple(uint256 amountIn, uint256 amountOutMin, address tokenFrom, address tokenTo, bool stable, address to, uint256 deadline) → uint256[] amountsswapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline) → uint256[] amounts
swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline) → uint256[] amountsswapExactETHForTokens(uint256 amountOutMin, route[] routes, address to, uint256 deadline) → uint256[] amounts
swapExactETHForTokens(uint256 amountOutMin, route[] routes, address to, uint256 deadline) → uint256[] amountsswapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline) → uint256[] amounts
swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline) → uint256[] amountsUNSAFE_swapExactTokensForTokens(uint256[] amounts, route[] routes, address to, uint256 deadline) → uint256[] amounts
UNSAFE_swapExactTokensForTokens(uint256[] amounts, route[] routes, address to, uint256 deadline) → uint256[] amountsswapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline)
swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline)swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, route[] routes, address to, uint256 deadline)
swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, route[] routes, address to, uint256 deadline)swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline)
swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, route[] routes, address to, uint256 deadline)ETH Handling
receive() external payable
receive() external payableIntegration Notes
Last updated
