import { clsx, type ClassValue } from 'clsx' import { twMerge } from 'tailwind-merge' export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } export function formatNumber(n: number): string { if (n >= 1_000_000_000) return `${(n / 1_000_000_000).toFixed(2)}B` if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(2)}M` if (n >= 1_000) return `${(n / 1_000).toFixed(1)}K` return n.toFixed(0) } export function formatCurrency(n: number): string { return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(n) } export function shortenAddress(addr: string): string { if (addr.length < 10) return addr return `${addr.slice(0, 4)}...${addr.slice(-4)}` } export function getTimeAgo(date: Date): string { const s = Math.floor((Date.now() - date.getTime()) / 1000) if (s < 60) return `${s}s ago` if (s < 3600) return `${Math.floor(s / 60)}m ago` if (s < 86400) return `${Math.floor(s / 3600)}h ago` return `${Math.floor(s / 86400)}d ago` }