/** * User Movement WebSocket Event Types * * Types for real-time user ledger movement events (deposits, withdrawals, transfers). * This is an authenticated channel - requires JWT token. */ /** * User movement event data containing ledger entry details */ export interface UserMovementEventData { /** Unique movement identifier (UUID) */ id: string; /** Entry type (e.g., "credit", "debit") */ entryType: string; /** Transaction type (e.g., "deposit", "withdrawal", "trade") */ transactionType: string; /** Token contract address */ tokenAddress: string; /** Token symbol */ symbol?: string; /** Token decimals */ decimals: number; /** Movement amount (decimal string, normalized) */ amount: string; /** Raw amount (integer string, no decimals) */ amountRaw?: string; /** Balance before this movement (normalized) */ balanceBefore?: string; /** Balance before in raw format (wei) */ balanceBeforeRaw?: string; /** Balance after this movement (normalized) */ balanceAfter?: string; /** Balance after in raw format (wei) */ balanceAfterRaw?: string; /** Locked balance before this movement (normalized) */ lockedBefore?: string; /** Locked balance before in raw format (wei) */ lockedBeforeRaw?: string; /** Locked balance after this movement (normalized) */ lockedAfter?: string; /** Locked balance after in raw format (wei) */ lockedAfterRaw?: string; /** Reference ID for related entity (UUID) */ referenceId?: string; /** Reference type (e.g., "order", "deposit") */ referenceType?: string; /** Human-readable description */ description?: string; /** Transaction hash (if applicable) */ txHash?: string; /** Timestamp when the movement was created (ISO 8601) */ createdAt?: string; } /** * User movement event emitted when a user's ledger entry changes */ export interface UserMovementEvent { /** Event type identifier */ eventType: "movement"; /** User ID (UUID) */ userId: string; /** Movement data */ data: UserMovementEventData; }