UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

100 lines (92 loc) 2.35 kB
export const isLuffa = () => { return window && window?._endlessWallet !== undefined || window?.webkit?.messageHandlers?._endlessWallet !== undefined || false; } export const isLuffaMiniProgramWebview = () => { const userAgent = window && window?.navigator?.userAgent || ''; return Boolean(userAgent.includes('miniProgram')); } export const isLuffaMiniProgram = () => { return Boolean(window?.wx && window?.wx?.getSystemInfoSync); } export const networkMap: Partial<Record<string, string>> = { ['mainnet']: 'endless', ['testnet']: 'eds', } export const getChain = (chainId: string) => { const chainIdNumber = parseInt(chainId, 16); let chain = ''; switch (chainIdNumber) { case 728126428: chain = 'tron'; break; case 3448148188: chain = 'tron_nile'; break; case 1: chain = 'eth'; break; case 11155111: chain = 'eth_sepolia'; break; case 56: chain = 'bsc'; break; case 97: chain = 'bsc_test'; break; case 220: chain = 'endless'; break; case 221: chain = 'eds'; break; } return chain; }; export const getChainIdByName = (chainName: string) => { let chainId; switch (chainName) { case 'eth': chainId = 1; break; case 'eth_sepolia': chainId = 11155111; break; case 'bsc': chainId = 56; break; case 'bsc_test': chainId = 97; break; case 'tron': chainId = 728126428; break; case 'tron_nile': chainId = 3448148188; break; case 'endless': chainId = 220; break; case 'eds': chainId = 221; break; } return chainId; }; export const isApproveTx = (tx: any) => { const contract = tx.raw_data?.contract?.[0]; if (!contract || contract.type !== 'TriggerSmartContract') return { isApprove: false, spender: '' }; const methodId = contract.parameter?.value?.data?.slice(0, 8); const isApprove = methodId === '095ea7b3'; let spender = ''; if (isApprove) { try { spender = window.tronWeb.address.fromHex('41' + tx.raw_data.contract[0].parameter.value.data.slice(8 + 24, 8 + 64)); } catch (e) { } } return { isApprove, spender, } }