UNPKG

@nekoproject/swap

Version:

Cross-chain Swap Token

160 lines (153 loc) 4.44 kB
import { Network, BSCNetwork, ETHNetwork, SPLNetwork } from '@nekoproject/networks'; import { Wallet, ETHWallet, SPLWallet } from '@nekoproject/wallets'; import { BaseToken, SPLToken } from '@nekoproject/tokens'; declare type CreateOrder = { wallet_address: string; slippage: number; srcAmount: string; destAmount?: string; destToken: BaseToken; srcToken: BaseToken; }; declare type SetApiParams = { createOrder: string; buildTransaction: string; }; declare type SwapOrderRequest = {}; declare type SPLCreateBuildSwap = CreateOrder & {}; declare type SPLSwapTransaction = { setupTransaction?: string; swapTransaction: string; cleanupTransaction?: string; }; declare type SPLBuildSwapTransaction = { inAmount: string; outAmount: string; transaction: SPLSwapTransaction; }; declare type BSCSwapOrderRequest = SwapOrderRequest & { slippage?: number; id: string; src_token: string; src_amount: string; src_decimals: number; src_usd: string; dest_token: string; dest_amount: string; dest_decimals: number; dest_usd: string; gas_cost_usd: string; gas_cost: string; expired_at: string; updated_at: string; created_at: string; token_transfer_proxy: string; network: string; }; declare type ETHSwapOrderRequest = BSCSwapOrderRequest; declare type SPLSwapOrderRequest = BSCSwapOrderRequest & { transaction: SPLSwapTransaction; }; declare type SwapConfig = { cluster: 'devnet' | 'testnet' | 'mainnet-beta'; fee: Fee; slippage?: number; }; declare type Fee = { feeOwner: string; fee: number; }; declare type SwapOrder = { inputToken: SPLToken; outputToken: SPLToken; amount: number; slippage?: number; }; declare type AggParams = { user: Wallet; }; declare type SwapRequest = { aggregator: any; routes: any; }; declare type SwapResponse = { tx?: string; inputAddress?: string; outputAddress?: string; inputAmount?: number; outputAmount?: number; }; declare abstract class Swap { protected _network: Network; protected _endpoint: string; constructor(network: Network, endpoint: string, version?: string); get network(): Network; get endpoint(): string; set endpoint(endpoint: string); createSwapOrder(swapRequest: CreateOrder): Promise<SwapOrderRequest>; swapToken(swapRequest: SwapOrderRequest, wallet: Wallet): Promise<any | null>; } declare class BSCSwap extends Swap { private _createOrderApi; private _buildTransApi; constructor(network: BSCNetwork, endpoint: string); set endpoint(endpoint: string); get endpoint(): string; set api(params: SetApiParams); /** * * @param swapRequest * @returns */ createSwapOrder(swapRequest: CreateOrder): Promise<BSCSwapOrderRequest | any>; /** * * @param swapRequest * @param wallet * @returns */ swapToken(swapRequest: BSCSwapOrderRequest, wallet: ETHWallet): Promise<string>; } declare class ETHSwap extends Swap { private _createOrderApi; private _buildTransApi; constructor(network: ETHNetwork, endpoint: string); set endpoint(endpoint: string); get endpoint(): string; set api(params: SetApiParams); /** * * @param swapRequest * @returns */ createSwapOrder(swapRequest: CreateOrder): Promise<ETHSwapOrderRequest>; /** * * @param swapRequest * @param wallet * @returns */ swapToken(swapRequest: ETHSwapOrderRequest, wallet: ETHWallet): Promise<string>; } declare class SPLSwap extends Swap { private _createOrderApi; private _buildTransApi; constructor(network: SPLNetwork, endpoint: string); set endpoint(endpoint: string); get endpoint(): string; set api(params: SetApiParams); /** * * @param swapRequest * @returns */ createSwapOrder(swapRequest: CreateOrder): Promise<SPLSwapOrderRequest>; /** * * @param swapRequest * @param wallet * @returns */ swapToken(swapRequest: SPLSwapOrderRequest, wallet: SPLWallet): Promise<string>; } export { AggParams, BSCSwap, BSCSwapOrderRequest, CreateOrder, ETHSwap, ETHSwapOrderRequest, Fee, SPLBuildSwapTransaction, SPLCreateBuildSwap, SPLSwap, SPLSwapOrderRequest, SPLSwapTransaction, SetApiParams, Swap, SwapConfig, SwapOrder, SwapOrderRequest, SwapRequest, SwapResponse };