SlimRouter

This documentation provides an overview of the ISlimRouter.sol contract, which defines the functions & events for conducting token swaps & managing token balances. The IRouter inherits this contract.

Table of Contents

Contract Details

  • Name : ISlimRouter

  • Solidity Version : ^0.8.0

  • SPDX License-Identifier : GPL-2.0-or-later

  • Code: Github

Structs

ExactInputSingleParams

struct ExactInputSingleParams {
    address tokenIn;
    address tokenOut;
    IPool pool;
    address recipient;
    uint256 deadline;
    uint256 amountIn;
    uint256 amountOutMinimum;
    uint256 sqrtPriceLimitD18;
}
  • tokenIn : The address of the token to be swapped.

  • tokenOut : The address of the desired token to receive in the swap.

  • pool : An instance of the IPool interface representing the pool to perform the swap in.

  • recipient : The address where the swapped tokens will be sent.

  • deadline : The deadline timestamp for the swap to be executed before it expires.

  • amountIn : The amount of tokenIn token to be swapped.

  • amountOutMinimum : The minimum amount of tokenOut tokens expected to be received from the swap.

  • sqrtPriceLimitD18 : The square root of the price limit for the swap, represented with 18 decimal places.

ExactOutputSingleParams

struct ExactOutputSingleParams {
    address tokenIn;
    address tokenOut;
    IPool pool;
    address recipient;
    uint256 deadline;
    uint256 amountOut;
    uint256 amountInMaximum;
}
  • tokenIn : The address of the token to be used as input in the swap.

  • tokenOut : The address of the token to be received as output in the swap.

  • pool : An instance of the IPool interface representing the pool to perform the swap in.

  • recipient : The address where the swapped tokens will be sent.

  • deadline : The deadline timestamp for the swap to be executed before it expires.

  • amountOut : The desired amount of tokenOut tokens to be received from the swap.

  • amountInMaximum : The maximum amount of tokenIn tokens to be used for the swap.

Functions

WETH9()

Retrieves the address of the WETH9 token.

function WETH9() external view returns (IWETH9);
  • Returns :

    • IWETH9 : An instance of the IWETH9 interface representing the WETH9 token.

exactInputSingle()

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

function exactInputSingle(ExactInputSingleParams calldata params) external payable returns (uint256 amountOut);
  • Parameters :

    • params : The parameters necessary for the swap, encoded as ExactInputSingleParams structure in calldata.

  • Returns :

    • amountOut : The amount of the received token uint256.

exactOutputSingle()

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

function exactOutputSingle(ExactOutputSingleParams calldata params) external payable returns (uint256 amountIn);
  • Parameters :

    • params : The parameters necessary for the swap, encoded as ExactOutputSingleParams structure in calldata.

  • Returns:

    • amountIn : The amount of the input token uint256.

unwrapWETH9()

Unwraps the contract's WETH9 balance and sends it to the specified recipient as ETH.

function unwrapWETH9(uint256 amountMinimum, address recipient) external payable;
  • Parameters:

    • amountMinimum : The minimum amount of WETH9 to unwrap.

    • recipient : The address receiving ETH.

refundETH()

Refunds any ETH balance held by this contract to the msg.sender.

function refundETH() external payable;

sweepToken()

Transfers the full amount of a specified token held by this contract to the recipient.

function sweepToken(IERC20 token, uint256 amountMinimum, address recipient) external payable;
  • Parameters:

    • token : The contract address of the token to be transferred.

    • amountMinimum : The minimum amount of token uint256 required for the transfer.

    • recipient : The destination address of the token.

Last updated