UNPKG

client-aftermath-ts-sdk

Version:
133 lines 4.47 kB
import { AnyObjectType, Balance, Percentage, Event, Slippage, ObjectId, SuiAddress, TxBytes, BigIntAsString, SerializedTransaction, ExternalFee, IFixed, ApiIndexerEventsBody } from "../../general/types/generalTypes"; import { CoinType, ServiceCoinData } from "../coin/coinTypes"; import { TransactionObjectArgument } from "@mysten/sui/transactions"; import { TransactionObjectArgument as TransactionObjectArgumentV0 } from "@mysten/sui.js/transactions"; export type UniqueId = string; /** * Fee info for third party packages wanting to fee route transactions * @deprecated please use `ExternalFee` instead */ export type RouterExternalFee = ExternalFee; export type RouterProtocolName = "Aftermath" | "BlueMove" | "Cetus" | "DeepBook" | "DeepBookV3" | "DoubleUpPump" | "FlowX" | "FlowXClmm" | "HopFun" | "Kriya" | "KriyaClmm" | "Magma" | "Metastable" | "MovePump" | "Obric" | "SuiSwap" | "Turbos" | "SpringSui" | "Steamm" | "Bluefin" | "TurbosFun"; export type RouterCompleteTradeRoute = RouterTradeInfo & { routes: RouterTradeRoute[]; netTradeFeePercentage: Percentage; referrer?: SuiAddress; externalFee?: ExternalFee; slippage?: Slippage; }; /** * @deprecated please use `RouterCompleteTradeRoute` instead */ export type RouterCompleteTradeRouteWithFee = RouterCompleteTradeRoute; export type RouterTradeRoute = RouterTradeInfo & { paths: RouterTradePath[]; portion: IFixed; }; export type RouterTradePath = RouterTradeInfo & { protocolName: RouterProtocolName; poolId: ObjectId; poolMetadata: any; }; export interface RouterTradeInfo { coinIn: RouterTradeCoin; coinOut: RouterTradeCoin; spotPrice: number; } export interface RouterTradeCoin { type: CoinType; amount: Balance; tradeFee: Balance; } export interface RouterTradeEvent extends Event { trader: SuiAddress; coinInType: AnyObjectType; coinInAmount: Balance; coinOutType: AnyObjectType; coinOutAmount: Balance; } export type ApiRouterPartialCompleteTradeRouteBody = { /** * Coin type of coin being given away */ coinInType: CoinType; /** * Coin type of coin being received */ coinOutType: CoinType; /** * Optional address for referrer of the route creator */ referrer?: SuiAddress; /** * Fee info for third party packages wanting to fee route transactions */ externalFee?: ExternalFee; } & ({ protocolBlacklist?: RouterProtocolName[]; } | { protocolWhitelist?: RouterProtocolName[]; }); /** * Details for router to construct trade route */ export type ApiRouterCompleteTradeRouteBody = ApiRouterPartialCompleteTradeRouteBody & ({ /** * Amount of coin being given away */ coinInAmount: Balance; } | { /** * Amount of coin expected to receive */ coinOutAmount: Balance; slippage: Slippage; }); /** * Info to construct router trade transaction from complete route */ export interface ApiRouterTransactionForCompleteTradeRouteBody { /** * Sender address (trader) */ walletAddress: SuiAddress; /** * Complete route followed by `coinIn` to get to `coinOut` */ completeRoute: RouterCompleteTradeRoute; /** * Allowable percent loss for trade */ slippage: Slippage; isSponsoredTx?: boolean; customRecipient?: SuiAddress; } export type ApiRouterAddTransactionForCompleteTradeRouteBody = ApiRouterTransactionForCompleteTradeRouteBody & { serializedTx: SerializedTransaction; coinInId?: TransactionObjectArgument; }; export type ApiRouterAddTransactionForCompleteTradeRouteV0Body = ApiRouterTransactionForCompleteTradeRouteBody & { serializedTx: SerializedTransaction; coinInId?: TransactionObjectArgumentV0; }; export interface ApiRouterAddTransactionForCompleteTradeRouteResponse { tx: SerializedTransaction; coinOutId: TransactionObjectArgument | undefined; } export interface ApiRouterAddTransactionForCompleteTradeRouteV0Response { tx: SerializedTransaction; coinOutId: TransactionObjectArgumentV0 | undefined; } export type ApiRouterTradeEventsBody = ApiIndexerEventsBody & { walletAddress: SuiAddress; }; export interface ApiRouterDynamicGasBody { txKindBytes: TxBytes; gasCoinType: CoinType; gasCoinData: ServiceCoinData; coinOutAmount: BigIntAsString; senderAddress: SuiAddress; sponsorAddress: SuiAddress; referrer?: SuiAddress; } //# sourceMappingURL=routerTypes.d.ts.map