// 金额截断显示工具（不补0、不四舍五入）
// 规则：
// - USDT: 最多6位小数
// - ETH: 最多8位小数
// - 其他币种: 最多6位小数
// 返回 { text, truncated, full }

export function getMaxDecimalsByCoin() {
  // 全站统一：最多 6 位小数
  return 6;
}

export function truncateAmountRaw(value, maxDecimals) {
  if (value === null || value === undefined) {
    return { text: '0', truncated: false, full: '0' };
  }
  const raw = String(value);
  if (!raw) return { text: '0', truncated: false, full: '0' };
  // 非数字字符串直接返回原值
  if (!/^-?\d+(\.\d+)?$/.test(raw)) {
    return { text: raw, truncated: false, full: raw };
  }
  const isNegative = raw.startsWith('-');
  const abs = isNegative ? raw.slice(1) : raw;
  const [intPart, decPart = ''] = abs.split('.');
  const keep = decPart.slice(0, Math.max(0, maxDecimals));
  const truncated = decPart.length > maxDecimals;
  const text = (isNegative ? '-' : '') + (keep ? `${intPart}.${keep}` : intPart);
  return { text, truncated, full: raw };
}

export function truncateAmountByCoin(value, coin) {
  const max = getMaxDecimalsByCoin(coin);
  return truncateAmountRaw(value, max);
}

// 默认 6 位截断（非币种语境也可复用）
export function truncateTo6(value) {
  return truncateAmountRaw(value, 6);
}

