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>
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>
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 fromgetBestRoute
.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?