ButtonswapRouter
Inherits: ETHButtonswapRouter, IButtonswapRouter
Functions
constructor
constructor(address _factory, address _WETH) ETHButtonswapRouter(_factory, _WETH);
getPair
Returns the Pair contract for given tokens. Returns the zero address if no pair exists
function getPair(address tokenA, address tokenB) external view returns (address pair);
Parameters
Name | Type | Description |
---|---|---|
tokenA | address | First token address |
tokenB | address | Second token address |
Returns
Name | Type | Description |
---|---|---|
pair | address | The pair address |
isCreationRestricted
Returns the factory state of isCreationRestricted
function isCreationRestricted() external view returns (bool _isCreationRestricted);
Returns
Name | Type | Description |
---|---|---|
_isCreationRestricted | bool | The isCreationRestricted state of the factory. |
quote
Given some amount of an asset and pair pools, returns an equivalent amount of the other asset
function quote(uint256 amountA, uint256 poolA, uint256 poolB)
external
pure
virtual
override
returns (uint256 amountB);
Parameters
Name | Type | Description |
---|---|---|
amountA | uint256 | The amount of token A |
poolA | uint256 | The balance of token A in the pool |
poolB | uint256 | The balance of token B in the pool |
Returns
Name | Type | Description |
---|---|---|
amountB | uint256 | The amount of token B |
getAmountOut
Given an input amount of an asset and pair pools, returns the maximum output amount of the other asset Factors in the fee on the input amount.
function getAmountOut(uint256 amountIn, uint256 poolIn, uint256 poolOut)
external
pure
virtual
override
returns (uint256 amountOut);
Parameters
Name | Type | Description |
---|---|---|
amountIn | uint256 | The input amount of the asset |
poolIn | uint256 | The balance of the input asset in the pool |
poolOut | uint256 | The balance of the output asset in the pool |
Returns
Name | Type | Description |
---|---|---|
amountOut | uint256 | The output amount of the other asset |
getAmountIn
Given an output amount of an asset and pair pools, returns a required input amount of the other asset
function getAmountIn(uint256 amountOut, uint256 poolIn, uint256 poolOut)
external
pure
virtual
override
returns (uint256 amountIn);
Parameters
Name | Type | Description |
---|---|---|
amountOut | uint256 | The output amount of the asset |
poolIn | uint256 | The balance of the input asset in the pool |
poolOut | uint256 | The balance of the output asset in the pool |
Returns
Name | Type | Description |
---|---|---|
amountIn | uint256 | The required input amount of the other asset |
getAmountsOut
Given an ordered array of tokens and an input amount of the first asset, performs chained getAmountOut calculations to calculate the output amount of the final asset
function getAmountsOut(uint256 amountIn, address[] memory path)
external
view
virtual
override
returns (uint256[] memory amounts);
Parameters
Name | Type | Description |
---|---|---|
amountIn | uint256 | The input amount of the first asset |
path | address[] | An array of token addresses [tokenA, tokenB, tokenC, ...] representing the path the input token takes to get to the output token |
Returns
Name | Type | Description |
---|---|---|
amounts | uint256[] | The output amounts of each asset in the path |
getAmountsIn
Given an ordered array of tokens and an output amount of the final asset, performs chained getAmountIn calculations to calculate the input amount of the first asset
function getAmountsIn(uint256 amountOut, address[] memory path)
external
view
virtual
override
returns (uint256[] memory amounts);
Parameters
Name | Type | Description |
---|---|---|
amountOut | uint256 | The output amount of the final asset |
path | address[] | An array of token addresses [tokenA, tokenB, tokenC, ...] representing the path the input token takes to get to the output token |
Returns
Name | Type | Description |
---|---|---|
amounts | uint256[] | The input amounts of each asset in the path |
getMintSwappedAmounts
Returns how much of the much of mintAmountA will be swapped for tokenB and for how much during a mintWithReservoir operation.
function getMintSwappedAmounts(address tokenA, address tokenB, uint256 mintAmountA)
external
view
virtual
override
returns (uint256 tokenAToSwap, uint256 swappedReservoirAmountB);
Parameters
Name | Type | Description |
---|---|---|
tokenA | address | First token address |
tokenB | address | Second token address |
mintAmountA | uint256 | The amount of tokenA to be minted |
Returns
Name | Type | Description |
---|---|---|
tokenAToSwap | uint256 | The amount of tokenA to be exchanged for tokenB from the reservoir |
swappedReservoirAmountB | uint256 | The amount of tokenB returned from the reservoir |
getBurnSwappedAmounts
Returns how much of tokenA will be withdrawn from the pair and how much of it came from the reservoir during a burnFromReservoir operation.
function getBurnSwappedAmounts(address tokenA, address tokenB, uint256 liquidity)
external
view
virtual
override
returns (uint256 tokenOutA, uint256 swappedReservoirAmountA);
Parameters
Name | Type | Description |
---|---|---|
tokenA | address | First token address |
tokenB | address | Second token address |
liquidity | uint256 | The amount of liquidity to be burned |
Returns
Name | Type | Description |
---|---|---|
tokenOutA | uint256 | The amount of tokenA to be withdrawn from the pair |
swappedReservoirAmountA | uint256 | The amount of tokenA returned from the reservoir |