import { get, post } from './request' export interface DepositAddressData { address?: string depositAddress?: string tokenAddress?: string walletAddress?: string [key: string]: unknown } export interface DepositAddressResponse { code: number data?: DepositAddressData msg?: string } export interface GetDepositAddressParams { chain: string tokenSymbol?: string } function pickAddress(d: DepositAddressData | undefined): string | undefined { if (!d) return undefined return ( (d.walletAddress as string | undefined) ?? (d.externalWalletAddress as string | undefined) ?? (d.depositAddress as string | undefined) ?? (d.tokenAddress as string | undefined) ?? (d.address as string | undefined) ) } export interface CollectDepositParams { userId: number } export async function collectDeposit( data: CollectDepositParams, config?: { headers?: Record }, ): Promise<{ code: number; msg?: string }> { return post<{ code: number; msg?: string }>('/wallet/collect', data, config) } export async function getDepositAddress( params: GetDepositAddressParams, config?: { headers?: Record }, ): Promise<{ ok: boolean; address?: string; raw?: DepositAddressResponse }> { const paths = ['/pmset/getDepositAddress', '/wallet/getDepositAddress', '/pmset/getDepositAddressClient'] for (const p of paths) { try { const res = await get(p, params as any, config) const codeOk = res.code === 0 || res.code === 200 const addr = pickAddress(res.data) if (codeOk && addr && typeof addr === 'string' && addr.length > 0) { return { ok: true, address: addr, raw: res } } } catch { } } return { ok: false } }