export interface SwapResponse { txId?: string; signature?: string; [key: string]: unknown; } export interface TradeData { txId: string; status: string; statusDesc?: string; chain?: string; tokenAddress?: string; walletAddress?: string; isBuy?: boolean; baseAmount?: number; quoteAmount?: number; [key: string]: unknown; } export interface TradeRecord { txId: string; status: number; statusDesc: string; chain: string; tokenAddress: string; walletAddress: string; isBuy: number; baseAmount: number; quoteAmount: number; createTime: string; updateTime: string; } export interface TradesData { pageNum: number; pageSize: number; total: number; list: TradeRecord[]; } export interface TokenData { chainId: string; tokenAddress: string; baseSymbol: string; tradeInfo?: { marketCapUsd: number; price: number; holder: number; hourTradeNum: number; hourTradeVolume: number; }; pairInfo?: { pairAddress: string; pair: string; liquidateUsd: number; createTime: number; }; securityInfo?: { honeyPot: boolean; openSource: boolean; noOwner: boolean; locked: boolean; }; taxInfo?: { buy: string; sell: string; }; linkInfo?: { tg: string; x: string; web: string; }; dev?: { address: string; pct: number; }; topHolderPct?: number; topHolderList?: Array<{ address: string; balance: number; pct: number; }>; [key: string]: unknown; } export interface FeedItem { tokenAddress: string; symbol: string; name: string; createTime: number; dexName?: string; launchPlatform?: { name: string; progress: string; completed: boolean; }; holders: number; priceUSD: number; marketCapUSD: number; devHoldPercent?: number; hasLink?: boolean; snipers?: number; volume?: number; tradeCount?: number; buyCount?: number; sellCount?: number; topHolderPercent?: number; quoteToken?: string; [key: string]: unknown; } export interface FeedData { items: FeedItem[]; } export interface TokenBalance { amount: string; decimals: number; uiAmount: number; uiAmountString?: string; } export interface WalletItem { name: string; address: string; balance: number; topUp: number; isImport: boolean; tokenBalance?: TokenBalance | null; userId: number; chain: number; createTime: string; updateTime: string; [key: string]: unknown; } export interface WalletsData { totalCount: number; pageSize: number; totalPage: number; currPage: number; list: WalletItem[]; } export interface WalletInfoData { name: string; address: string; balance: number; topUp: number; isImport: boolean; tokenBalance?: TokenBalance | null; chain: number; [key: string]: unknown; } export interface PnlMeta { symbol: string; dexId?: string; dexIcon?: string; imageUrl?: string; pairAddress?: string; } export interface PnlData { wallet: string | null; tokenMint: string; balance: number | null; buy: number; sell: number; hold: number | null; pnl: number | null; pnlusd: number | null; holdTokenNum: number; holdTokenPercent: number; lastTradeTime: number | null; meta?: PnlMeta | null; } export interface IpData { ip: string; } export interface TokenMeta { symbol: string; mint: string; imageUrl?: string; pairAddress?: string; } export interface WalletBuyItem { wallet: string; walletName: string; walletBuyAmount: number; } export interface BuyListToken { tokenMeta: TokenMeta; priceUsd: number; marketCap: number; walletBuyItemList: WalletBuyItem[]; lastTradeTime?: number; } export interface TokenListItem { pairAddress: string; dexId: string; dexName: string; symbol: string; name: string; tokenAddress: string; imageUrl: string; priceUSD: string; marketCapUSD: string; priceChange24H: string; launchFrom: string; links: { tg: string; x: string; web: string; }; } export interface TrendingItem { imageUrl: string; createTime: string; symbol: string; name: string; dexId: string; pairAddress: string; tokenAddress: string; priceUSD: string; priceChange24H: string; launchPlatform: { name: string | null; progress: number | null; completed: boolean | null; launchedPair: string | null; } | null; dexName: string; dexIcon: string; marketCapUSD: string; links: { tg: string; x: string; web: string; }; security: { mintAuthority: { value: boolean; passed: boolean; }; freezeAuthority: { value: boolean; passed: boolean; }; topHolder: { value: number; passed: boolean; }; lpBurned: { value: number; passed: boolean; }; }; holders: number; devHoldPercent: string; smartWallets: { total: number; records: { wallet: string; action: string; nativeAmount: string; }[]; } | null; sourceDexIcon: string; launchFrom: string; extendFlags: { live: boolean; }; volume: number; liquid: number; buyCount: number; sellCount: number; auditInfo: { devHp: number; snipers: number; insiderHp: number; newHp: number; bundleHp: number; dexPaid: boolean; }; } export interface LaunchResponse { txHash: string | null; tokenAddress: string | null; success: boolean; }