import { decodeResult } from "./encryption"; import type { ConnectResult, SignTransactionResult, WebApp } from "./types"; export const parseWalletsFromStartParam = (webApp: WebApp): ConnectResult['wallets'] | null => { const startParam = webApp.initDataUnsafe?.start_param; if (!startParam) return null; const result = decodeResult(startParam); return 'wallets' in result ? result.wallets : null; }; export const parseSignedTxFromStartParam = (webApp: WebApp): SignTransactionResult | null => { const startParam = webApp.initDataUnsafe?.start_param; if (!startParam) return null; const result = decodeResult(startParam); if ('id' in result) { result.id = Number(result.id); } return 'signedTx' in result ? result : null; }; export const generateRequestId = (): number => Math.floor(Math.random() * 90000) + 10000;