Skip to main content

无状态执行 SwapX V3 交换的路由器

Functions

constructor

  function constructor(
) public

SwapXV3SwapCallback

  function SwapXV3SwapCallback(
int256 amount0Delta,
int256 amount1Delta,
bytes data
) external

在通过 ISwapXV3Pool#swap 执行交换后,会调用 msg.sender

在实现中,必须向池支付交换所需的代币。必须验证调用此方法的合约是否为由官方 SwapXV3Factory 部署的 SwapXV3Pool。如果没有代币被交换,amount0Delta 和 amount1Delta 可能都为 0。

参数:

NameTypeDescription
amount0Deltaint256在交换结束时,池发送(负数)或接收(正数)的 token0 数量。如果为正数,回调必须向池发送该数量的 token0。
amount1Deltaint256在交换结束时,池发送(负数)或接收(正数)的 token1 数量。如果为正数,回调必须向池发送该数量的 token1。
databytes通过 ISwapXV3PoolActions#swap 调用传递的任何数据

exactInputSingle

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

将一种代币的 amountIn 交换为尽可能多的另一种代币。

参数:

NameTypeDescription
paramsstruct ISwapRouter.ExactInputSingleParams交换所需的参数,在 calldata 中编码为 ExactInputSingleParams。

返回值:

NameTypeDescription
amountOutuint256接收的代币数量

exactInput

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

将一种代币的 amountIn 沿指定路径交换为尽可能多的另一种代币。

参数:

NameTypeDescription
paramsstruct ISwapRouter.ExactInputParams多跳交换所需的参数,在 calldata 中编码为 ExactInputParams。

返回值:

NameTypeDescription
amountOutuint256接收的代币数量

exactOutputSingle

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

用尽可能少的代币交换 amountOut 数量的另一种代币。

参数:

NameTypeDescription
paramsstruct ISwapRouter.ExactOutputSingleParams交换所需的参数,在 calldata 中编码为 ExactOutputSingleParams。

返回值:

NameTypeDescription
amountInuint256输入代币的数量

exactOutput

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

用尽可能少的代币沿指定路径(反向路径)交换 amountOut 数量的另一种代币。

参数:

NameTypeDescription
paramsstruct ISwapRouter.ExactOutputParams多跳交换所需的参数,在 calldata 中编码为 ExactOutputParams。

返回值:

NameTypeDescription
amountInuint256输入代币的数量