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