swap V3 合约 API 文档
swap V3 合约交互的详细信息,涵盖了代币交换以及询价的方法。
1. exactInput
方法说明:
exactInput 方法用于执行代币交换,用户指定了输入的数量,系统会根据当前的市场价格返回相应数量的输出代币。
请求参数:
params(ExactInputParams): 交换的参数结构体,包含输入代币、输出代币、路径等信息。
ExactInputParams 结构体字段:
path(bytes): 交换路径,包括输入代币和输出代币的地址以及中间代币地址。recipient(address): 交易的接收地址。amountIn(uint256): 输入的代币数量。amountOutMinimum(uint256): 最小输出代币数量,防止滑点过大导致交易失败。deadline(uint256): 交易的截止时间戳,防止交易过期。
返回值:
amountOut(uint256): 实际获得的输出代币数量。
2. exactOutput
方法说明:
exactOutput 方法用于执行代币交换,用户指定了输出的数量,系统会根据当前的市场价格计算出相应的输入数量。
请求参数:
params(ExactOutputParams): 交换的参数结构体,包含输入代币、输出代币、路径等信息。
ExactOutputParams 结构体字段:
path(bytes): 交换路径,包括输入代币和输出代币的地址以及中间代币地址。recipient(address): 交易的接收地址。amountOut(uint256): 输出的代币数量。amountInMaximum(uint256): 最大输入代币数量,防止超出预期的输入数量。deadline(uint256): 交易的截止时间戳,防止交易过期。
返回值:
amountIn(uint256): 实际使用的输入代币数量。
3. exactInputSingle
方法说明:
exactInputSingle 方法用于执行代币交换,用户指定了输入代币的数量,并且交换路径中只有两个代币(单一交换),即从一个代币到另一个代币。
请求参数:
params(ExactInputSingleParams): 交换的参数结构体,包含输入代币、输出代币、路径等信息。
ExactInputSingleParams 结构体字段:
tokenIn(address): 输入代币地址。tokenOut(address): 输出代币地址。recipient(address): 交易的接收地址。amountIn(uint256): 输入的代币数量。amountOutMinimum(uint256): 最小输出代币数量,防止滑点过大导致交易失败。deadline(uint256): 交易的截止时间戳,防止交易过期。sqrtPriceLimitX96(uint160): 价格限制,防止滑点过大(如果为0,则不限制)。
返回值:
amountOut(uint256): 实际获得的输出代币数量。
4. exactOutputSingle
方法说明:
exactOutputSingle 方法用于执行代币交换,用户指定了输出的数量,并且交换路径中只有两个代币(单一交换),即从一个代币到另一个代币。
请求参数:
params(ExactOutputSingleParams): 交换的参数结构体,包含输入代币、输出代币、路径等信息。
ExactOutputSingleParams 结构体字段:
tokenIn(address): 输入代币地址。tokenOut(address): 输出代币地址。recipient(address): 交易的接收地址。amountOut(uint256): 输出的代币数量。amountInMaximum(uint256): 最大输入代币数量,防止超出预期的输入数量。deadline(uint256): 交易的截止时间戳,防止交易过期。sqrtPriceLimitX96(uint160): 价格限制,防止滑点过大(如果为0,则不限制)。
返回值:
amountIn(uint256): 实际使用的输入代币数量。