Swap Router

Algebra Swap Router

Router for stateless execution of swaps against Algebra

Developer note: Credit to Uniswap Labs under GPL-2.0-or-later license: https://github.com/Uniswap/v3-periphery

Inherits: ISwapRouter PeripheryImmutableState PeripheryValidation PeripheryPaymentsWithFee Multicall SelfPermit

Structs

ExactInputSingleParams

struct ExactInputSingleParams {
  address tokenIn;
  address tokenOut;
  address recipient;
  uint256 deadline;
  uint256 amountIn;
  uint256 amountOutMinimum;
  uint160 limitSqrtPrice;
}

ExactInputParams

struct ExactInputParams {
  bytes path;
  address recipient;
  uint256 deadline;
  uint256 amountIn;
  uint256 amountOutMinimum;
}

ExactOutputSingleParams

struct ExactOutputSingleParams {
  address tokenIn;
  address tokenOut;
  address recipient;
  uint256 deadline;
  uint256 amountOut;
  uint256 amountInMaximum;
  uint160 limitSqrtPrice;
}

ExactOutputParams

struct ExactOutputParams {
  bytes path;
  address recipient;
  uint256 deadline;
  uint256 amountOut;
  uint256 amountInMaximum;
}

SwapCallbackData

struct SwapCallbackData {
  bytes path;
  address payer;
}

Functions

constructor

constructor(address _factory, address _WNativeToken, address _poolDeployer) public

algebraSwapCallback

function algebraSwapCallback(int256 amount0Delta, int256 amount1Delta, bytes _data) external

Selector: 0x2c8958f6

Called to `msg.sender` after executing a swap via IAlgebraPool#swap.

Developer note: In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a AlgebraPool deployed by the canonical AlgebraFactory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.

multicall

function multicall(bytes[] data) external payable returns (bytes[] results)

Selector: 0xac9650d8

Call multiple functions in the current contract and return the data from all of them if they all succeed

Developer note: The `msg.value` should not be trusted for any method callable from multicall.

Returns:

exactInputSingle

function exactInputSingle(struct ISwapRouter.ExactInputSingleParams params) external payable returns (uint256 amountOut)

Selector: 0xbc651188

Swaps `amountIn` of one token for as much as possible of another token

Returns:

exactInput

function exactInput(struct ISwapRouter.ExactInputParams params) external payable returns (uint256 amountOut)

Selector: 0xc04b8d59

Swaps `amountIn` of one token for as much as possible of another along the specified path

Returns:

exactInputSingleSupportingFeeOnTransferTokens

function exactInputSingleSupportingFeeOnTransferTokens(struct ISwapRouter.ExactInputSingleParams params) external payable returns (uint256 amountOut)

Selector: 0xb87d2524

Swaps `amountIn` of one token for as much as possible of another along the specified path

Developer note: Unlike standard swaps, handles transferring from user before the actual swap.

Returns:

exactOutputSingle

function exactOutputSingle(struct ISwapRouter.ExactOutputSingleParams params) external payable returns (uint256 amountIn)

Selector: 0x61d4d5b3

Swaps as little as possible of one token for `amountOut` of another token

Returns:

exactOutput

function exactOutput(struct ISwapRouter.ExactOutputParams params) external payable returns (uint256 amountIn)

Selector: 0xf28c0498

Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)

Returns: