{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export const isLuffa = () => {\r\n  return (\r\n    (window && window?._evmWallet !== undefined) || window?.webkit?.messageHandlers?._evmWallet !== undefined || false\r\n  );\r\n};\r\n\r\nexport const isLuffaMiniProgramWebview = () => {\r\n  const userAgent = (window && window?.navigator?.userAgent) || '';\r\n  return userAgent.includes('miniProgram');\r\n};\r\n\r\nexport const isLuffaMiniProgram = () => {\r\n  return Boolean(window?.wx && window?.wx?.getSystemInfoSync);\r\n};\r\n\r\nexport const networkMap: Partial<Record<string, string>> = {\r\n  ['mainnet']: 'endless',\r\n  ['testnet']: 'eds',\r\n};\r\n\r\nexport const getChain = (chainId: string) => {\r\n  const chainIdNumber = parseInt(chainId, 16);\r\n  let chain = '';\r\n  switch (chainIdNumber) {\r\n    case 728126428:\r\n      chain = 'tron';\r\n      break;\r\n    case 3448148188:\r\n      chain = 'tron_nile';\r\n      break;\r\n    case 1:\r\n      chain = 'eth';\r\n      break;\r\n    case 11155111:\r\n      chain = 'eth_sepolia';\r\n      break;\r\n    case 56:\r\n      chain = 'bsc';\r\n      break;\r\n    case 97:\r\n      chain = 'bsc_test';\r\n      break;\r\n    case 220:\r\n      chain = 'endless';\r\n      break;\r\n    case 221:\r\n      chain = 'eds';\r\n      break;\r\n  }\r\n  return chain;\r\n};\r\n\r\nexport const getChainIdByName = (chainName: string) => {\r\n  let chainId;\r\n  switch (chainName) {\r\n    case 'eth':\r\n      chainId = 1;\r\n      break;\r\n    case 'eth_sepolia':\r\n      chainId = 11155111;\r\n      break;\r\n    case 'bsc':\r\n      chainId = 56;\r\n      break;\r\n    case 'bsc_test':\r\n      chainId = 97;\r\n      break;\r\n    case 'tron':\r\n      chainId = 728126428;\r\n      break;\r\n    case 'tron_nile':\r\n      chainId = 3448148188;\r\n      break;\r\n    case 'endless':\r\n      chainId = 220;\r\n      break;\r\n    case 'eds':\r\n      chainId = 221;\r\n      break;\r\n  }\r\n  return chainId;\r\n};\r\n\r\nexport const isApproveTx = (data: string) => {\r\n  console.log('data: ', data);\r\n  if (!data || !data.startsWith('0x095ea7b3'))\r\n    return {\r\n      isApprove: false,\r\n      spender: null,\r\n      amount: null,\r\n    };\r\n\r\n  try {\r\n    const methodData = data.slice(10);\r\n    const spenderHex = methodData.slice(0, 64);\r\n    const amountHex = methodData.slice(64, 128);\r\n\r\n    const spender = '0x' + spenderHex.slice(24);\r\n    const amount = BigInt('0x' + amountHex);\r\n\r\n    return {\r\n      isApprove: true,\r\n      spender,\r\n      amount,\r\n    };\r\n  } catch (e) {\r\n    return {\r\n      isApprove: false,\r\n      spender: null,\r\n      amount: null,\r\n    };\r\n  }\r\n};\r\nexport const isHexString = (value: string): boolean => {\r\n  return (\r\n    typeof value === 'string' &&\r\n    value.startsWith('0x') &&\r\n    value.length % 2 === 0 &&\r\n    /^[0-9a-fA-F]+$/.test(value.slice(2))\r\n  );\r\n}\r\n\r\nexport const hexToUtf8 = (hex: string): string => {\r\n  const clean = hex.slice(2);\r\n  const bytes = new Uint8Array(clean.length / 2);\r\n\r\n  for (let i = 0; i < clean.length; i += 2) {\r\n    bytes[i / 2] = parseInt(clean.slice(i, i + 2), 16);\r\n  }\r\n\r\n  const decoder = new TextDecoder('utf-8');\r\n  return decoder.decode(bytes);\r\n}\r\nexport const normalizeMessageForDisplay = (message: string): string => {\r\n  if (isHexString(message)) {\r\n    return hexToUtf8(message);\r\n  }\r\n  return message;\r\n}\r\n"],"mappings":"AAAO,IAAMA,EAAU,IAElB,QAAU,QAAQ,aAAe,QAAc,QAAQ,QAAQ,iBAAiB,aAAe,QAAa,GAIpGC,EAA4B,KACpB,QAAU,QAAQ,WAAW,WAAc,IAC7C,SAAS,aAAa,EAG5BC,EAAqB,IACzB,GAAQ,QAAQ,IAAM,QAAQ,IAAI,mBAG9BC,EAA8C,CACxD,QAAY,UACZ,QAAY,KACf,EAEaC,EAAYC,GAAoB,CAC3C,IAAMC,EAAgB,SAASD,EAAS,EAAE,EACtCE,EAAQ,GACZ,OAAQD,EAAe,CACrB,IAAK,WACHC,EAAQ,OACR,MACF,IAAK,YACHA,EAAQ,YACR,MACF,IAAK,GACHA,EAAQ,MACR,MACF,IAAK,UACHA,EAAQ,cACR,MACF,IAAK,IACHA,EAAQ,MACR,MACF,IAAK,IACHA,EAAQ,WACR,MACF,IAAK,KACHA,EAAQ,UACR,MACF,IAAK,KACHA,EAAQ,MACR,KACJ,CACA,OAAOA,CACT,EAEaC,EAAoBC,GAAsB,CACrD,IAAIJ,EACJ,OAAQI,EAAW,CACjB,IAAK,MACHJ,EAAU,EACV,MACF,IAAK,cACHA,EAAU,SACV,MACF,IAAK,MACHA,EAAU,GACV,MACF,IAAK,WACHA,EAAU,GACV,MACF,IAAK,OACHA,EAAU,UACV,MACF,IAAK,YACHA,EAAU,WACV,MACF,IAAK,UACHA,EAAU,IACV,MACF,IAAK,MACHA,EAAU,IACV,KACJ,CACA,OAAOA,CACT,EAEaK,EAAeC,GAAiB,CAE3C,GAAI,CAACA,GAAQ,CAACA,EAAK,WAAW,YAAY,EACxC,MAAO,CACL,UAAW,GACX,QAAS,KACT,OAAQ,IACV,EAEF,GAAI,CACF,IAAMC,EAAaD,EAAK,MAAM,EAAE,EAC1BE,EAAaD,EAAW,MAAM,EAAG,EAAE,EACnCE,EAAYF,EAAW,MAAM,GAAI,GAAG,EAEpCG,EAAU,KAAOF,EAAW,MAAM,EAAE,EACpCG,EAAS,OAAO,KAAOF,CAAS,EAEtC,MAAO,CACL,UAAW,GACX,QAAAC,EACA,OAAAC,CACF,CACF,MAAY,CACV,MAAO,CACL,UAAW,GACX,QAAS,KACT,OAAQ,IACV,CACF,CACF,EACaC,EAAeC,GAExB,OAAOA,GAAU,UACjBA,EAAM,WAAW,IAAI,GACrBA,EAAM,OAAS,IAAM,GACrB,iBAAiB,KAAKA,EAAM,MAAM,CAAC,CAAC,EAI3BC,EAAaC,GAAwB,CAChD,IAAMC,EAAQD,EAAI,MAAM,CAAC,EACnBE,EAAQ,IAAI,WAAWD,EAAM,OAAS,CAAC,EAE7C,QAASE,EAAI,EAAGA,EAAIF,EAAM,OAAQE,GAAK,EACrCD,EAAMC,EAAI,CAAC,EAAI,SAASF,EAAM,MAAME,EAAGA,EAAI,CAAC,EAAG,EAAE,EAInD,OADgB,IAAI,YAAY,OAAO,EACxB,OAAOD,CAAK,CAC7B,EACaE,EAA8BC,GACrCR,EAAYQ,CAAO,EACdN,EAAUM,CAAO,EAEnBA","names":["isLuffa","isLuffaMiniProgramWebview","isLuffaMiniProgram","networkMap","getChain","chainId","chainIdNumber","chain","getChainIdByName","chainName","isApproveTx","data","methodData","spenderHex","amountHex","spender","amount","isHexString","value","hexToUtf8","hex","clean","bytes","i","normalizeMessageForDisplay","message"]}