/**
 * 充币页：根据接口返回的 protocol / networkName 解析 EVM chainId（用于 WalletConnect）。
 * 非 EVM（如 TRON / TRC20）返回 null，需用户手动用 TronLink 等转账。
 */
export function resolveEvmChainId(protocol: string, networkName: string): number | null {
  const p = protocol.toLowerCase().trim()
  const n = networkName.toLowerCase().trim()
  if (p.includes('tron') || n === 'trc20') {
    return null
  }
  if (n === 'bep20' || p.includes('bsc') || p.includes('bnb')) {
    return 56
  }
  if ((n === 'erc20' || n === 'erc-20') && p.includes('arbitrum')) {
    return 42161
  }
  if ((n === 'erc20' || n === 'erc-20') && (p.includes('polygon') || p.includes('matic'))) {
    return 137
  }
  if ((n === 'erc20' || n === 'erc-20') && p.includes('base')) {
    return 8453
  }
  if ((n === 'erc20' || n === 'erc-20') && p.includes('optimism')) {
    return 10
  }
  if (n === 'erc20' || n === 'erc-20' || p.includes('ethereum') || p === 'eth') {
    return 1
  }
  if (p.includes('polygon') || p.includes('matic')) {
    return 137
  }
  if (p.includes('arbitrum')) {
    return 42161
  }
  if (p.includes('base')) {
    return 8453
  }
  if (p.includes('optimism')) {
    return 10
  }
  return null
}

/**
 * USDT 常见精度：以太坊主网 6，BSC 等常为 18（与合约一致；若链接失败可再按链接调整）。
 */
export function erc20DecimalsForChain(chainId: number): number {
  if (chainId === 1) {
    return 6
  }
  return 18
}

export function chainIdHex(chainId: number): string {
  return `0x${chainId.toString(16)}`
}
