UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

1 lines 5.3 kB
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export const isLuffa = () => {\r\n return window && window?._endlessWallet !== undefined || window?.webkit?.messageHandlers?._endlessWallet !== undefined || false;\r\n}\r\n\r\n\r\nexport const isLuffaMiniProgramWebview = () => {\r\n const userAgent = window && window?.navigator?.userAgent || '';\r\n return Boolean(userAgent.includes('miniProgram'));\r\n}\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\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\nexport const isApproveTx = (tx: any) => {\r\n const contract = tx.raw_data?.contract?.[0];\r\n if (!contract || contract.type !== 'TriggerSmartContract') return { isApprove: false, spender: '' };\r\n\r\n const methodId = contract.parameter?.value?.data?.slice(0, 8);\r\n const isApprove = methodId === '095ea7b3';\r\n let spender = '';\r\n if (isApprove) {\r\n try {\r\n spender = window.tronWeb.address.fromHex('41' + tx.raw_data.contract[0].parameter.value.data.slice(8 + 24, 8 + 64));\r\n } catch (e) {\r\n }\r\n }\r\n return {\r\n isApprove,\r\n spender,\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,IACd,QAAU,QAAQ,iBAAmB,QAAa,QAAQ,QAAQ,iBAAiB,iBAAmB,QAAa,GAI/GC,EAA4B,IAEhC,GADW,QAAU,QAAQ,WAAW,WAAa,IACnC,SAAS,aAAa,EAIpCC,EAAqB,IACzB,GAAQ,QAAQ,IAAM,QAAQ,IAAI,mBAG9BC,EAA8C,CACxD,QAAY,UACZ,QAAY,KACf,EACaC,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,EACaK,EAAeC,GAAY,CACtC,IAAMC,EAAWD,EAAG,UAAU,WAAW,CAAC,EAC1C,GAAI,CAACC,GAAYA,EAAS,OAAS,uBAAwB,MAAO,CAAE,UAAW,GAAO,QAAS,EAAG,EAGlG,IAAMC,EADWD,EAAS,WAAW,OAAO,MAAM,MAAM,EAAG,CAAC,IAC7B,WAC3BE,EAAU,GACd,GAAID,EACF,GAAI,CACFC,EAAU,OAAO,QAAQ,QAAQ,QAAQ,KAAOH,EAAG,SAAS,SAAS,CAAC,EAAE,UAAU,MAAM,KAAK,MAAM,GAAQ,EAAM,CAAC,CACpH,MAAY,CACZ,CAEF,MAAO,CACL,UAAAE,EACA,QAAAC,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","tx","contract","isApprove","spender","isHexString","value","hexToUtf8","hex","clean","bytes","i","normalizeMessageForDisplay","message"]}