Meta SDK

MetaAggregatorSDK is a unified quoting and transaction builder for Sui-based DEX aggregators. It allows you to fetch the best swap route across multiple exchanges and build transactions for optimal trading.

Features

  • Aggregates quotes from multiple supported exchanges (Cetus, Bluefin, Aftermath, FlowX, etc.)

  • Returns the best route based on output amount

  • Supports custom exchange selection and slippage configuration

  • Flexible exchange selection: Use includeExchanges option to specify which exchanges to use for quoting and routing

Example

import { MetaAgQuoter, Exchange } from '@flowx-finance/sdk';

// Use all supported exchanges
const quoter = new MetaAgQuoter('mainnet');

// Or specify only certain exchanges
const quoterCetusOnly = new MetaAgQuoter('mainnet', [Exchange.CETUS]);

const params = {
  tokenIn: '0x2::sui::SUI',
  tokenOut: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC',
  amountIn: '10000000000',
};

const quote = await quoter.getBestRoute(params);
const txb = new Transaction()
const { coinOut, tx } = await quoter.buildTransaction(txb, quote, sender, 0.01); //slippage 1%, 1/100 = 0.01
tx.transferObjects([coinOut], '0xAddesss');

Methods

getBestRoute(params: QuoteQueryParams): Promise<QuoteResult | null>

Fetches the best swap route from all enabled exchanges.

  • params: Object containing swap parameters:

    • tokenIn: Input token address.

    • tokenOut: Output token address.

    • amountIn: Amount to swap.

    • ...other query options.

Returns: A QuoteResult object with the best route, or null if no route is found.


buildTransaction(tx: Transaction, quote: QuoteResult, sender: string, slippage: number, coinIn?: TransactionObjectArgument): Promise<any>

Builds a Sui transaction for the given quote.

  • tx: The transaction object to build on.

  • quote: The best route quote returned from getBestRoute.

  • sender: The sender address.

  • slippage: Slippage in basis points.

  • coinIn (optional): The input coin object. If not provided, it will be auto-selected except for Aftermath exchange.

Returns: An object containing the output coin and, for Aftermath, the updated transaction.

Last updated

Was this helpful?