IETHButtonswapRouter
Inherits: IBasicButtonswapRouter, IETHButtonswapRouterErrors
Functions
WETH
Returns the address of the WETH token
function WETH() external view returns (address WETH);
Returns
Name | Type | Description |
---|---|---|
WETH | address | The address of the WETH token |
addLiquidityETH
Similar to addLiquidity
but one of the tokens is ETH wrapped into WETH.
Adds liquidity to a pair, creating it if it doesn't exist yet, and transfers the liquidity tokens to the recipient.
*If the pair is empty, amountTokenMin and amountETHMin are ignored. If the pair is nonempty, it deposits as much of token and WETH as possible while maintaining 3 conditions:
- The ratio of token to WETH in the pair remains approximately the same
- The amount of token in the pair is at least amountTokenMin but less than or equal to amountTokenDesired
- The amount of WETH in the pair is at least amountETHMin but less than or equal to ETH sent*
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
uint16 movingAveragePrice0ThresholdBps,
address to,
uint256 deadline
) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
Parameters
Name | Type | Description |
---|---|---|
token | address | The address of the non-WETH token in the pair. |
amountTokenDesired | uint256 | The maximum amount of the non-ETH token to add to the pair. |
amountTokenMin | uint256 | The minimum amount of the non-ETH token to add to the pair. |
amountETHMin | uint256 | The minimum amount of ETH/WETH to add to the pair. |
movingAveragePrice0ThresholdBps | uint16 | The percentage threshold that movingAveragePrice0 can deviate from the current price. |
to | address | The address to send the liquidity tokens to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
Returns
Name | Type | Description |
---|---|---|
amountToken | uint256 | The amount of token actually added to the pair. |
amountETH | uint256 | The amount of ETH/WETH actually added to the pair. |
liquidity | uint256 | The amount of liquidity tokens minted. |
addLiquidityETHWithReservoir
Similar to addLiquidityWithReservoir
but one of the tokens is ETH wrapped into WETH.
Adds liquidity to a pair, opposite to the existing reservoir, and transfers the liquidity tokens to the recipient
*Since there at most one reservoir at a given time, some conditions are checked:
- If there is no reservoir, it rejects
- If the non-WETH token has the reservoir, amountTokenDesired parameter ignored.
- The token/WETH with the reservoir has its amount deducted from the reservoir (checked against corresponding amountMin parameter)*
function addLiquidityETHWithReservoir(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
Parameters
Name | Type | Description |
---|---|---|
token | address | The address of the non-WETH token in the pair. |
amountTokenDesired | uint256 | The maximum amount of the non-WETH token to add to the pair. |
amountTokenMin | uint256 | The minimum amount of the non-WETH token to add to the pair. |
amountETHMin | uint256 | The minimum amount of WETH to add to the pair. |
to | address | The address to send the liquidity tokens to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
Returns
Name | Type | Description |
---|---|---|
amountToken | uint256 | The amount of the non-ETH token actually added to the pair. |
amountETH | uint256 | The amount of WETH actually added to the pair. |
liquidity | uint256 | The amount of liquidity tokens minted. |
removeLiquidityETH
Similar to removeLiquidity()
but one of the tokens is ETH wrapped into WETH.
Removes liquidity from a pair, and transfers the tokens to the recipient.
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
Parameters
Name | Type | Description |
---|---|---|
token | address | The address of the non-WETH token in the pair. |
liquidity | uint256 | The amount of liquidity tokens to burn. |
amountTokenMin | uint256 | The minimum amount of the non-WETH token to withdraw from the pair. |
amountETHMin | uint256 | The minimum amount of ETH/WETH to withdraw from the pair. |
to | address | The address to send the tokens to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
Returns
Name | Type | Description |
---|---|---|
amountToken | uint256 | The amount of the non-WETH token actually withdrawn from the pair. |
amountETH | uint256 | The amount of ETH/WETH actually withdrawn from the pair. |
removeLiquidityETHFromReservoir
Similar to removeLiquidityFromReservoir()
but one of the tokens is ETH wrapped into WETH.
Removes liquidity from the reservoir of a pair and transfers the tokens to the recipient.
function removeLiquidityETHFromReservoir(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
Parameters
Name | Type | Description |
---|---|---|
token | address | The address of the non-WETH token in the pair. |
liquidity | uint256 | The amount of liquidity tokens to burn. |
amountTokenMin | uint256 | The minimum amount of the non-WETH token to withdraw from the pair. |
amountETHMin | uint256 | The minimum amount of ETH/WETH to withdraw from the pair. |
to | address | The address to send the tokens to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
Returns
Name | Type | Description |
---|---|---|
amountToken | uint256 | The amount of the non-WETH token actually withdrawn from the pair. |
amountETH | uint256 | The amount of ETH/WETH actually withdrawn from the pair. |
removeLiquidityETHWithPermit
Similar to removeLiquidityWETH()
but utilizes the Permit signatures to reduce gas consumption.
Removes liquidity from a pair where one of the tokens is ETH wrapped into WETH, and transfers the tokens to the recipient.
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);
Parameters
Name | Type | Description |
---|---|---|
token | address | The address of the non-WETH token in the pair. |
liquidity | uint256 | The amount of liquidity tokens to burn. |
amountTokenMin | uint256 | The minimum amount of the non-WETH token to withdraw from the pair. |
amountETHMin | uint256 | The minimum amount of ETH/WETH to withdraw from the pair. |
to | address | The address to send the tokens to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
approveMax | bool | Whether the signature is for the max uint256 or liquidity value |
v | uint8 | Part of the signature |
r | bytes32 | Part of the signature |
s | bytes32 | Part of the signature |
Returns
Name | Type | Description |
---|---|---|
amountToken | uint256 | The amount of the non-WETH token actually withdrawn from the pair. |
amountETH | uint256 | The amount of ETH/WETH actually withdrawn from the pair. |
swapExactETHForTokens
Similar to swapExactTokensForTokens()
the first token is ETH wrapped into WETH.
Given an ordered array of tokens, performs consecutive swaps from a specific amount of the first token to the last token in the array.
function swapExactETHForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline)
external
payable
returns (uint256[] memory amounts);
Parameters
Name | Type | Description |
---|---|---|
amountOutMin | uint256 | The minimum amount of the last token to receive from the swap. |
path | address[] | An array of token addresses [tokenA, tokenB, tokenC, ...] representing the path the input token takes to get to the output token |
to | address | The address to send the output token to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
swapTokensForExactETH
Similar to swapTokensForExactTokens()
the last token is ETH wrapped into WETH.
Given an ordered array of tokens, performs consecutive swaps from the first token to a specific amount of the last token in the array.
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
Parameters
Name | Type | Description |
---|---|---|
amountOut | uint256 | The amount of ETH to receive from the swap. |
amountInMax | uint256 | The maximum amount of the first token to swap. |
path | address[] | An array of token addresses [tokenA, tokenB, tokenC, ...] representing the path the input token takes to get to the output token |
to | address | The address to send the output token to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
swapExactTokensForETH
Similar to swapExactTokensForTokens()
but the last token is ETH wrapped into WETH.
Given an ordered array of tokens, performs consecutive swaps from a specific amount of the first token to the last token in the array.
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
Parameters
Name | Type | Description |
---|---|---|
amountIn | uint256 | The amount of the first token to swap. |
amountOutMin | uint256 | The minimum amount of the last token to receive from the swap. |
path | address[] | An array of token addresses [tokenA, tokenB, tokenC, ...] representing the path the input token takes to get to the output token |
to | address | The address to send the output token to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |
swapETHForExactTokens
Similar to swapTokensForExactTokens()
but the first token is ETH wrapped into WETH.
Given an ordered array of tokens, performs consecutive swaps from the first token to a specific amount of the last token in the array.
function swapETHForExactTokens(uint256 amountOut, address[] calldata path, address to, uint256 deadline)
external
payable
returns (uint256[] memory amounts);
Parameters
Name | Type | Description |
---|---|---|
amountOut | uint256 | The amount of the last token to receive from the swap. |
path | address[] | An array of token addresses [tokenA, tokenB, tokenC, ...] representing the path the input token takes to get to the output token |
to | address | The address to send the output token to. |
deadline | uint256 | The time after which this transaction can no longer be executed. |