import { type ClassValue, clsx } from "clsx"; import { twMerge } from "tailwind-merge"; import { getAddress, isAddress as viemIsAddress } from "viem"; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } export function formatAddress(address: string): string { try { const checksummed = getAddress(address); return `${checksummed.slice(0, 6)}...${checksummed.slice(-4)}`; } catch { return address; } } export function formatBalance(balance: bigint, decimals: number = 18): string { const divisor = BigInt(10 ** decimals); const whole = balance / divisor; const remainder = balance % divisor; const decimalPart = remainder.toString().padStart(decimals, "0").replace(/0+$/, ""); return decimalPart ? `${whole}.${decimalPart}` : whole.toString(); } export function isAddress(address: string): boolean { return viemIsAddress(address); }