{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { toHex } from \"viem\";\nimport { X402xPublicEvmClient } from \"./signer\";\nimport { eip712DomainABI, tokenNameABI, tokenVersionABI } from \"./constants\";\n\nexport function createNonce(): `0x${string}` {\n  const cryptoObj =\n    typeof globalThis.crypto !== \"undefined\" && typeof globalThis.crypto.getRandomValues === \"function\"\n      ? globalThis.crypto\n      : // eslint-disable-next-line @typescript-eslint/no-require-imports\n        require(\"crypto\").webcrypto;\n  return toHex(cryptoObj.getRandomValues(new Uint8Array(32))) as `0x${string}`;\n}\n\nexport async function resolveEip712Domain(\n  reader: X402xPublicEvmClient,\n  token: `0x${string}`,\n): Promise<{ name: string; version: string }> {\n  // 优先走 EIP-5267 (OpenZeppelin v5+)\n  try {\n    const result = (await reader.readContract({\n      address: token,\n      abi: eip712DomainABI,\n      functionName: \"eip712Domain\",\n    })) as unknown as readonly [unknown, string, string, unknown, unknown, unknown, unknown];\n    const name = result[1];\n    const version = result[2];\n    if (name && version) return { name, version };\n  } catch {\n    // ignore\n  }\n\n  const name = (await reader.readContract({\n    address: token,\n    abi: tokenNameABI,\n    functionName: \"name\",\n  })) as string;\n\n  // fallback：部分 token 有 version()，没有就默认 \"1\"\n  let version = \"1\";\n  try {\n    version = (await reader.readContract({\n      address: token,\n      abi: tokenVersionABI,\n      functionName: \"version\",\n    })) as string;\n  } catch {\n    version = \"1\";\n  }\n\n  return { name, version };\n}\n\n\n"],"mappings":";;;;;;;;AAAA,SAAS,aAAa;AAIf,SAAS,cAA6B;AAC3C,QAAM,YACJ,OAAO,WAAW,WAAW,eAAe,OAAO,WAAW,OAAO,oBAAoB,aACrF,WAAW;AAAA;AAAA,IAEX,UAAQ,QAAQ,EAAE;AAAA;AACxB,SAAO,MAAM,UAAU,gBAAgB,IAAI,WAAW,EAAE,CAAC,CAAC;AAC5D;AAEA,eAAsB,oBACpB,QACA,OAC4C;AAE5C,MAAI;AACF,UAAM,SAAU,MAAM,OAAO,aAAa;AAAA,MACxC,SAAS;AAAA,MACT,KAAK;AAAA,MACL,cAAc;AAAA,IAChB,CAAC;AACD,UAAMA,QAAO,OAAO,CAAC;AACrB,UAAMC,WAAU,OAAO,CAAC;AACxB,QAAID,SAAQC,SAAS,QAAO,EAAE,MAAAD,OAAM,SAAAC,SAAQ;AAAA,EAC9C,QAAQ;AAAA,EAER;AAEA,QAAM,OAAQ,MAAM,OAAO,aAAa;AAAA,IACtC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AAGD,MAAI,UAAU;AACd,MAAI;AACF,cAAW,MAAM,OAAO,aAAa;AAAA,MACnC,SAAS;AAAA,MACT,KAAK;AAAA,MACL,cAAc;AAAA,IAChB,CAAC;AAAA,EACH,QAAQ;AACN,cAAU;AAAA,EACZ;AAEA,SAAO,EAAE,MAAM,QAAQ;AACzB;","names":["name","version"]}