Maverick Docs
  • Introducing Maverick
  • Getting Started
    • 🖥️The Maverick V2 UI
    • 👛Connect a Wallet
    • ⛓️Choose a Network
    • 🪙Approving Tokens
  • Guides
    • 🤝Traders
      • How to Make a Swap
    • 💰Liquidity Providers
      • Understanding Liquidity Provision
      • Understanding Modes
      • How to Add Liquidity
      • How to Deploy a New Pool
      • How to Check Position Balances
      • How to Manage Liquidity in a Pool
      • How to Migrate from V1 to V2
      • Understanding Permanent Loss
      • Liquidity Strategies
    • ⚡Incentives
      • Understanding Boosted Positions
      • Understanding Incentives
      • How to Join a Boosted Position
      • How to Create a Boosted Position
      • How to Manage a Boosted Position
      • How to Add Incentives
    • 🎡veFlywheel
      • veFlywheel Basics
      • Guide to veFlywheel Emissions
      • How to Vote to Direct Emissions
    • 👩‍🏫Advanced Tutorials
      • Single-Sided Incentives
  • Technical Reference
    • Contract Addresses
      • V1 Contract Addresses
      • V2 Contract Addresses
    • Maverick V1
      • V1 Whitepaper
      • V1 Contracts
        • Router
        • Pool
        • Factory
        • SlimRouter
    • Maverick V2
      • V2 Whitepaper
      • V2 Contracts
        • Maverick V2 Common Contracts
          • base
            • IMulticall
            • IPayableMulticall
            • Multicall
            • PayableMulticall
          • interfaces
            • IMaverickV2AddLiquidityCallback
            • IMaverickV2Factory
            • IMaverickV2FactoryAdmin
            • IMaverickV2FlashLoanCallback
            • IMaverickV2Pool
            • IMaverickV2PoolAdmin
            • IMaverickV2SwapCallback
          • libraries
            • ArrayOperations
            • Constants
            • Math
            • PoolLib
            • TickMath
            • TransferLib
        • Maverick V2 AMM Contracts
          • poollib
            • Bin
            • Delta
            • Deployer
            • DeployerPermissioned
            • SwapMath
            • Twa
          • MaverickV2Factory
          • MaverickV2Pool
          • MaverickV2PoolPermissioned
        • Maverick V2 Reward Contracts
          • interfaces
            • IMaverickV2IncentiveMatcher
            • IMaverickV2IncentiveMatcherFactory
            • IMaverickV2Reward
            • IMaverickV2RewardFactory
            • IMaverickV2RewardRouter
            • IMaverickV2RewardVault
            • IMaverickV2VotingEscrowBase
            • IMaverickV2VotingEscrow
            • IMaverickV2VotingEscrowFactory
            • IMaverickV2VotingEscrowLens
            • IMaverickV2VotingEscrowWSync
          • libraries
            • IncentiveMatcherDeployer
            • RewardDeployer
            • VotingEscrowDeployer
            • VotingEscrowWSyncDeployer
          • rewardbase
            • IRewardAccounting
            • RewardAccounting
          • votingescrowbase
            • HistoricalBalance
            • IHistoricalBalance
            • ILegacyVeMav
            • VotingEscrow
          • MaverickV2IncentiveMatcher
          • MaverickV2IncentiveMatcherFactory
          • MaverickV2Reward
          • MaverickV2RewardFactory
          • MaverickV2RewardRouter
          • MaverickV2RewardVault
          • MaverickV2VotingEscrow
          • MaverickV2VotingEscrowFactory
          • MaverickV2VotingEscrowLens
          • MaverickV2VotingEscrowWSync
        • Maverick V2 Supplemental Contracts
          • base
            • Checks
            • IChecks
            • IMigrateBins
            • MigrateBins
          • boostedpositionbase
            • BoostedPositionBase
            • IBoostedPositionBase
            • ImmutableArrayGetter
          • interfaces
            • IMaverickV2BoostedPosition
            • IMaverickV2BoostedPositionFactory
            • IMaverickV2LiquidityManager
            • IMaverickV2PoolLens
            • IMaverickV2Position
            • IMaverickV2Quoter
            • IMaverickV2Router
            • IPositionImage
          • libraries
            • BoostedPositionDeployerDynamic
            • BoostedPositionDeployerStatic
            • BytesLib
            • LiquidityUtilities
            • PackLib
            • Path
            • PoolInspection
          • liquiditybase
            • ArgPacker
            • IArgPacker
          • paymentbase
            • IERC20PermitAllowed
            • IPayment
            • ISelfPermit
            • IState
            • IWETH9
            • Payment
            • SelfPermit
            • State
          • positionbase
            • INft
            • Nft
          • routerbase
            • CallbackOperations
            • ExactOutputSlim
            • ICallbackOperations
            • IExactOutputSlim
            • IPushOperations
            • IRouterErrors
            • PushOperations
          • MaverickV2BoostedPositionDynamic
          • MaverickV2BoostedPositionFactory
          • MaverickV2BoostedPositionStatic
          • MaverickV2LiquidityManager
          • MaverickV2PoolLens
          • MaverickV2Position
          • MaverickV2Quoter
          • MaverickV2Router
          • PositionImage
      • V2 API Documentation
      • V2 Testnet Guide
        • Get Sepolia ETH & Test Tokens
        • How to Create a Boosted Position in V2
        • How to Add & Match Incentives
        • How to Create a veFlywheel
    • Development FAQ
    • Finding LP Balances
  • MAV token
    • MAV Token & Tokenomics
    • veMAV & MAV Staking
    • How to Stake MAV
    • Syncing V1 veMAV
    • Airdrop Information
      • Maverick Ecosystem Rewards Pre-Season Airdrop
      • Maverick Governance & S1 Airdrops
  • Further Information
    • Frequently Asked Questions
    • Glossary
    • Security
    • Maverick Wallets
    • Dune Analytics
    • Rebasing Tokens
    • Restricted Territories
    • Delphi Digital Report
Powered by GitBook
On this page
  • Table of Contents
  • Contract Details
  • Structs
  • ExactInputSingleParams
  • ExactOutputSingleParams
  • Functions
  • WETH9()
  • exactInputSingle()
  • exactOutputSingle()
  • unwrapWETH9()
  • refundETH()
  • sweepToken()
  1. Technical Reference
  2. Maverick V1
  3. V1 Contracts

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.

PreviousFactoryNextMaverick V2

Last updated 1 year ago

Table of Contents

Contract Details

  • Name : ISlimRouter

  • Solidity Version : ^0.8.0

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

  • Code:

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.

Github
Contract Details
Structs
ExactInputSingleParams
ExactOutputSingleParams
Functions
WETH9()
exactInputSingle()
exactOutputSingle()
unwrapWETH9()
refundETH()
sweepToken()