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