Aftermath 문서조사
  • Aftermath
    • Aftermath Finance 대해
      • 우리는 무엇을 구축하고 있나요?
  • 시작
    • 계정 만들기
      • zkLogin
        • zkLogin 계정 제거하기
      • Sui Metamask Snap
      • Native Sui wallets
    • Dynamic Gas
    • Aftermath 탐색하기
      • 지갑 상호작용하기
      • 포트폴리오 보기
      • 설정 변경하기
      • 브리지
      • 추천
  • Trade
    • 스마트 오더 라우터
    • 거래하기
    • 수수료
  • Pools
    • 상수 함수 시장 메이커
    • 자습서
      • 예치하기
      • 출금하기
      • 풀 생성하기
    • 수수료
    • Contracts
    • Audit
  • Farms
    • Afterburner Vaults
    • 자습서
      • 농장에 스테이킹하기
      • Claiming Rewards
      • Unstaking
    • 아키텍처
      • 볼트
      • 스테이크 포지션 패키지
    • 수수료
    • FAQs
  • Liquid Staking
    • afSUI
    • 자습서
      • 스테이킹
      • 스테이킹 해제하기
    • Architecture
      • Packages & Modules
      • 진입점
    • 수수료
    • FAQs
    • Contracts
    • Audit
  • Our validator
    • About us
  • Developers
    • Getting Started
    • Router
    • Liquid Staking
    • Pools
  • Egg
    • About Egg
  • Links
    • Twitter
    • Discord
    • Github
    • Medium
    • Aftermath Validator
Powered by GitBook
On this page
  • Route a Trade
  • 1. Create trade route
  • 2. Get transaction
  1. Developers

Router

Smart-Order Router finds optimal trade route across multiple pools and protocols for a given trade.

const router = new Aftermath("TESTNET").Router();

Route a Trade

1. Create trade route

const route = await router.getCompleteTradeRouteGivenAmountIn({
	coinInType: "0x...",
	coinOutType: "0x...",
	coinInAmount: 1_000_000_000n,
	
	// optional
	referrer: "0x...",
	externalFee: {
		recipient: "0x...",
		feePercentage: 0.01, // 1% fee from amount out
	},
});

console.log(route);
/*
{
	coinIn: {
		type: "0x1...",
		amount: 1_000_000n,
		tradeFee: 1_00_000_000_000_000_000n, // 0.1% (18 decimals)
	},
	coinOut: {
		type: "0x2...",
		amount: 1_100_000n,
		tradeFee: 0n, // 0% (18 decimals)
	},
	spotPrice: 0.90909090909, // in/out (ignoring fees)
	routes: [...],
	
	// optional
	referrer: "0x...",
	externalFee: {
		recipient: "0x...",
		feePercentage: 0.01, // 1% fee from amount out
	},
}
*/

2. Get transaction

const tx = await router.getTransactionForCompleteTradeRoute({
	walletAddress: "0x...",
	completeRoute: route,
	slippage: 0.01,	// 1% max slippage
});

PreviousGetting StartedNextLiquid Staking