Skip to main content

GenericButtonswapRouter

Inherits: IGenericButtonswapRouter

State Variables

BPS

uint256 private constant BPS = 10_000;

factory

Returns the address of the Buttonswap Factory

address public immutable override factory;

WETH

Returns the address of the WETH token

address public immutable override WETH;

Functions

ensure

modifier ensure(uint256 deadline);

receive

Only accepts ETH via fallback from the WETH contract

receive() external payable;

constructor

constructor(address _factory, address _WETH);

_swap

function _swap(address tokenIn, address tokenOut, uint256 amountIn) internal virtual returns (uint256 amountOut);

_wrapButton

function _wrapButton(address tokenIn, address tokenOut, uint256 amountIn)
internal
virtual
returns (uint256 amountOut);

_unwrapButton

function _unwrapButton(address tokenIn, address tokenOut, uint256 amountIn)
internal
virtual
returns (uint256 amountOut);

_wrapWETH

function _wrapWETH(address tokenIn, address tokenOut, uint256 amountIn) internal virtual returns (uint256 amountOut);

_unwrapWETH

function _unwrapWETH(address tokenIn, address tokenOut, uint256 amountIn)
internal
virtual
returns (uint256 amountOut);

_swapStep

function _swapStep(address tokenIn, uint256 amountIn, SwapStep calldata swapStep)
internal
virtual
returns (address tokenOut, uint256 amountOut);

swapExactTokensForTokens

function swapExactTokensForTokens(
address tokenIn,
uint256 amountIn,
uint256 amountOutMin,
SwapStep[] calldata swapSteps,
address to,
uint256 deadline
) external payable override ensure(deadline) returns (uint256[] memory amounts);

_getAmountIn

function _getAmountIn(address tokenIn, uint256 amountOut, SwapStep calldata swapStep)
internal
virtual
returns (uint256 amountIn);

_getAmountsIn

function _getAmountsIn(address firstTokenIn, uint256 amountOut, SwapStep[] calldata swapSteps)
internal
virtual
returns (uint256[] memory amounts);

swapTokensForExactTokens

function swapTokensForExactTokens(
address tokenIn,
uint256 amountOut,
uint256 amountInMax,
SwapStep[] calldata swapSteps,
address to,
uint256 deadline
) external payable override ensure(deadline) returns (uint256[] memory amounts);

addLiquidity

function addLiquidity(
AddLiquidityStep calldata addLiquidityStep,
SwapStep[] calldata swapStepsA,
SwapStep[] calldata swapStepsB,
uint16 movingAveragePrice0ThresholdBps,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

removeLiquidity

function removeLiquidity(
RemoveLiquidityStep calldata removeLiquidityStep,
SwapStep[] calldata swapStepsA,
SwapStep[] calldata swapStepsB,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);