Yuzu Documentation
  • General Information
    • Introduction
    • Get MOVE Coins
  • Products
    • CLMM
      • Fee Tiers
      • Price Ranges
      • Active & Inactive Liquidity
      • LP Position NFTs
    • Glossary
  • Socials
    • Contacts
    • Brand & Logos
  • Technical
    • Smart Contracts
      • Yuzu CLMM
        • Liquidity Pool
        • Router
        • Scripts
        • Example Usage
          • Liquidity Pool
          • Position NFT Manager Module
          • Tick Math Module
      • Move.Fun
        • Smart Contracts
    • Ecosystem Participants of Yuzu
  • Legal
    • Terms of Use
    • Legal Disclaimer
Powered by GitBook
On this page
  • Get Amount In
  • Get Amount Out
  1. Technical
  2. Smart Contracts
  3. Yuzu AMM (Testnet)
  4. Router

Aggregator Integration

To integrate YuzuSwap with your aggregator, use the following public functions for swap calculations.

Get Amount In

router::get_amount_in

Description

This function calculates the required input amount of token X to receive a specific output amount of token Y.

Usage

  • Checks: Ensures that a pair exists between token X and token Y before proceeding.

  • Returns: The amount of token X required for the swap.

Parameters

Input Value
Type
Description

y_out_amount

u64

The desired output amount of token Y.

Code

public fun get_amount_in<X, Y>(y_out_amount: u64): u64 {
    assert!(swap::is_pair_created<X, Y>(), errors::pair_not_created());
    let is_x_to_y = swap_utils::sort_token_type<X, Y>();
    get_amount_in_internal<X, Y>(is_x_to_y, y_out_amount)
}

Get Amount Out

router::get_amount_out

Description

This function calculates the output amount of token Y given an input amount of token X.

Usage

  • Checks: Ensures that a pair exists between token X and token Y before proceeding.

  • Returns: The amount of token Y that will be received for the swap.

Parameters

Input Value
Type
Description

x_in_amount

u64

The input amount of token X.

Code

public fun get_amount_out<X, Y>(x_in_amount: u64): u64 {
    assert!(swap::is_pair_created<X, Y>(), errors::pair_not_created());
    let is_x_to_y = swap_utils::sort_token_type<X, Y>();
    get_amount_out_internal<X, Y>(is_x_to_y, x_in_amount)
} 

Last updated 7 months ago