@bounded-sh/client 0.0.12 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/auth/providers/offchain-auth-provider.d.ts +7 -13
  2. package/dist/auth/providers/phantom-wallet-provider.d.ts +0 -5
  3. package/dist/auth/providers/solana-mobile-wallet-provider.d.ts +0 -5
  4. package/dist/index.js +218 -269
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +218 -269
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/{index.native-CrneKxG9.mjs → index.native-B4qib0WI.mjs} +218 -257
  9. package/dist/index.native-B4qib0WI.mjs.map +1 -0
  10. package/dist/{index.native-BIm0gZmJ.js → index.native-fDOSSF3W.js} +218 -257
  11. package/dist/index.native-fDOSSF3W.js.map +1 -0
  12. package/dist/index.native.js +1 -1
  13. package/dist/index.native.mjs +1 -1
  14. package/dist/{phantom-wallet-provider-CFFRpATv.js → phantom-wallet-provider-B4iCTaUq.js} +3 -6
  15. package/dist/phantom-wallet-provider-B4iCTaUq.js.map +1 -0
  16. package/dist/{phantom-wallet-provider-RQfO7Nq9.mjs → phantom-wallet-provider-DGvW6ecv.mjs} +3 -6
  17. package/dist/phantom-wallet-provider-DGvW6ecv.mjs.map +1 -0
  18. package/dist/{privy-wallet-provider-CuClH2mS.js → privy-wallet-provider-B3FEM7RO.js} +4 -10
  19. package/dist/privy-wallet-provider-B3FEM7RO.js.map +1 -0
  20. package/dist/{privy-wallet-provider-BC6yOHHr.mjs → privy-wallet-provider-CpA0SzjA.mjs} +4 -10
  21. package/dist/privy-wallet-provider-CpA0SzjA.mjs.map +1 -0
  22. package/dist/{solana-mobile-wallet-provider-oPS17lYV.mjs → solana-mobile-wallet-provider-B-Ue0EG9.mjs} +4 -7
  23. package/dist/solana-mobile-wallet-provider-B-Ue0EG9.mjs.map +1 -0
  24. package/dist/{solana-mobile-wallet-provider-DHxdYO4I.js → solana-mobile-wallet-provider-CWidNUHT.js} +4 -7
  25. package/dist/solana-mobile-wallet-provider-CWidNUHT.js.map +1 -0
  26. package/package.json +2 -2
  27. package/dist/index.native-BIm0gZmJ.js.map +0 -1
  28. package/dist/index.native-CrneKxG9.mjs.map +0 -1
  29. package/dist/phantom-wallet-provider-CFFRpATv.js.map +0 -1
  30. package/dist/phantom-wallet-provider-RQfO7Nq9.mjs.map +0 -1
  31. package/dist/privy-wallet-provider-BC6yOHHr.mjs.map +0 -1
  32. package/dist/privy-wallet-provider-CuClH2mS.js.map +0 -1
  33. package/dist/solana-mobile-wallet-provider-DHxdYO4I.js.map +0 -1
  34. package/dist/solana-mobile-wallet-provider-oPS17lYV.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phantom-wallet-provider-DGvW6ecv.mjs","sources":["../.rollup-tmp/auth/providers/phantom-wallet-provider.js"],"sourcesContent":["import { Buffer } from 'buffer';\nimport { WebSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform, detectMobile, detectAndroid } from '../../platform';\nimport { Connection, PublicKey, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nconst VALID_PROVIDERS = ['injected', 'google', 'apple', 'deeplink', 'phantom'];\n// When the dApp runs inside an iframe whose parent origin is different from\n// (or can't inject into) the child frame — notably Phantom's Android in-app\n// browser, which injects window.phantom.solana only into the top frame —\n// the Phantom deeplink path tries to navigate phantom.app/ul/browse/... from\n// inside the iframe. Android App Links only hand off on top-level navigations,\n// and phantom.app refuses to be framed (X-Frame-Options: DENY), so the connect\n// fails. To get back to a working context we navigate the top window to the\n// dApp's own URL, dropping the iframe shell. Once top-level, the wallet\n// browser injects its provider and the normal injected flow succeeds.\nfunction isInIframe() {\n if (typeof window === 'undefined')\n return false;\n try {\n return window.top !== window.self;\n }\n catch (_a) {\n // Cross-origin access to window.top throws — if we can't read it, we're iframed.\n return true;\n }\n}\nfunction shouldBreakOutOfIframe(provider) {\n // Only break out when the user chose the deeplink provider. The modal only\n // offers deeplink on mobile when no injected Phantom is present, so this is\n // exactly the iframe-without-provider case we need to escape.\n return provider === 'deeplink' && isInIframe();\n}\n// In a cross-origin iframe (e.g. the poof.new build-page preview) on mobile,\n// Mobile Wallet Adapter can't run: its localhost association handshake needs\n// Chrome's Local Network Access, which is denied to cross-origin sub-frames.\n// So open the app's own URL TOP-LEVEL (a new tab / Custom Tab), where MWA works\n// natively; the connect happens there and the session — written to same-origin\n// storage — reflects back into this iframe (awaitTopLevelConnect picks it up).\n// Must be called synchronously inside a user-gesture handler so window.open\n// isn't popup-blocked. Returns true if the tab was opened.\nfunction openTopLevelForConnect() {\n if (typeof window === 'undefined' || !isInIframe())\n return false;\n try {\n const url = new URL(window.location.href);\n url.searchParams.set('poofConnect', '1');\n const w = window.open(url.toString(), '_blank');\n return !!w;\n }\n catch (_a) {\n return false;\n }\n}\n// Dynamically import React and Phantom SDK - only when needed\nlet React;\nlet ReactDOM;\nlet phantomReactSdk;\nlet sdkLoaded = false;\nlet loadingPromise = null;\n// Lazy load React and Phantom dependencies only when PhantomWalletProvider is instantiated\n// Uses dynamic import() to ensure code splitting and prevent side effects\nasync function loadDependencies() {\n if (sdkLoaded)\n return;\n if (typeof window === 'undefined')\n return;\n // Prevent multiple concurrent loads\n if (loadingPromise)\n return loadingPromise;\n loadingPromise = (async () => {\n const [reactModule, reactDomModule, phantomModule] = await Promise.all([\n import('react'),\n import('react-dom/client'),\n import('@phantom/react-sdk')\n ]);\n // Extract default export from ESM module namespace\n // Dynamic import() returns { default: Module, ...exports }, not the module directly\n React = reactModule.default || reactModule;\n ReactDOM = reactDomModule.default || reactDomModule;\n phantomReactSdk = phantomModule;\n sdkLoaded = true;\n })();\n return loadingPromise;\n}\nexport class PhantomWalletProvider {\n /** Temporarily override modal appearance for a single login() call. Cleared automatically after login settles. */\n setLoginOverrides(opts) {\n this.loginOverrides = opts;\n }\n constructor(networkUrl = null, config = {}) {\n this.containerElement = null;\n this.root = null;\n this.phantomMethods = null;\n this.resolvedProviders = ['injected'];\n this.pendingLogin = null;\n this.loginInProgress = false;\n this.autoLoginInProgress = false;\n this.initPromise = null;\n this.loginOverrides = null;\n /** Callback to swap to a Mobile Wallet Adapter provider when the user clicks \"Connect Mobile Wallet\" */\n this.onSwitchToMWA = null;\n this.networkUrl = networkUrl;\n this.config = config;\n if (typeof window === 'undefined') {\n throw new Error('PhantomWalletProvider can only be instantiated in a browser environment');\n }\n // Singleton pattern - reuse existing instance\n if (PhantomWalletProvider.instance) {\n return PhantomWalletProvider.instance;\n }\n // Resolve providers from config (doesn't need SDK)\n this.resolveProviders();\n // Start async initialization (load SDK and initialize React component)\n this.initPromise = this.initializeAsync();\n PhantomWalletProvider.instance = this;\n }\n async initializeAsync() {\n // Lazy load dependencies only when actually instantiating\n await loadDependencies();\n // Initialize React component\n this.initialize();\n }\n /**\n * Check if social login providers are configured (non-injected providers).\n */\n hasSocialProviders() {\n return this.resolvedProviders.some(p => p !== 'injected');\n }\n static getInstance(networkUrl, config) {\n if (!PhantomWalletProvider.instance) {\n new PhantomWalletProvider(networkUrl, config);\n }\n return PhantomWalletProvider.instance;\n }\n resolveProviders() {\n if (this.config.providers && this.config.providers.length > 0) {\n const configProviders = this.config.providers;\n this.resolvedProviders = configProviders.filter((p) => VALID_PROVIDERS.includes(p));\n if (this.resolvedProviders.length === 0) {\n this.resolvedProviders = ['injected'];\n }\n }\n else if (this.config.appId) {\n this.resolvedProviders = ['injected', 'google', 'apple', 'deeplink'];\n }\n else {\n this.resolvedProviders = ['injected'];\n }\n }\n /**\n * Patch the Phantom extension's provider to gracefully handle `phantom_getFeatures`\n * instead of throwing. Some SDKs probe this method to check feature support, but the\n * extension doesn't implement it, causing noisy console errors.\n */\n patchPhantomGetFeatures() {\n var _a;\n try {\n const provider = (_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana;\n if (!(provider === null || provider === void 0 ? void 0 : provider.request) || provider.__featuresPatched)\n return;\n const originalRequest = provider.request.bind(provider);\n provider.request = async (args) => {\n if ((args === null || args === void 0 ? void 0 : args.method) === 'phantom_getFeatures') {\n return { features: {} };\n }\n return originalRequest(args);\n };\n provider.__featuresPatched = true;\n }\n catch (_b) {\n // Phantom extension not present — nothing to patch\n }\n }\n initialize() {\n if (this.containerElement)\n return;\n // Suppress \"phantom_getFeatures isn't implemented\" errors from SDKs probing\n // the Phantom extension for features it doesn't support yet.\n this.patchPhantomGetFeatures();\n // Remove any existing Phantom providers\n const existingProviders = document.querySelectorAll('[data-phantom-provider]');\n existingProviders.forEach(el => el.remove());\n this.containerElement = document.createElement('div');\n this.containerElement.setAttribute('data-phantom-provider', 'true');\n // Keep Phantom UI above host overlays while avoiding global click-capture.\n this.containerElement.style.position = 'fixed';\n this.containerElement.style.zIndex = '2147483647';\n // Full-viewport overlay for custom modal; pointer-events: none lets\n // clicks pass through to page except where the modal sets 'auto'\n this.containerElement.style.inset = '0';\n this.containerElement.style.pointerEvents = 'none';\n document.body.appendChild(this.containerElement);\n const that = this;\n const { PhantomProvider: ReactPhantomProvider, usePhantom, useConnect, useDisconnect, useModal, useSolana, useDiscoveredWallets, AddressType, darkTheme, lightTheme } = phantomReactSdk;\n // The SDK expects providers as an array of strings: 'injected' | 'google' | 'apple' | 'phantom' | 'deeplink'\n // Ensure we have a valid non-empty array\n const sdkProviders = this.resolvedProviders.length > 0 ? [...this.resolvedProviders] : ['injected'];\n // Inner component that uses hooks\n const PhantomHooksComponent = () => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const phantom = usePhantom();\n const { connect, error: connectError } = useConnect();\n const { disconnect, isDisconnecting } = useDisconnect();\n const modal = useModal();\n const solanaHook = useSolana();\n const { solana } = solanaHook;\n const [showWalletModal, setShowWalletModal] = React.useState(false);\n const [hoveredBtn, setHoveredBtn] = React.useState(null);\n // Discover all available wallets via Wallet Standard + EIP-6963\n const { wallets: discoveredWallets } = useDiscoveredWallets();\n const isMobile = detectMobile();\n const hasPhantomInjected = discoveredWallets.some((w) => w.id === 'phantom');\n const showDeeplink = isMobile && sdkProviders.includes('deeplink') && !hasPhantomInjected;\n // Treat MWA's own wallet-standard registrations as not-injected, so the MWA\n // button still appears when only MWA is present (e.g. Android Chrome on Seeker).\n const hasInjectedWallet = discoveredWallets.some((w) => {\n var _a, _b;\n const id = String((_a = w.id) !== null && _a !== void 0 ? _a : '').toLowerCase();\n const name = String((_b = w.name) !== null && _b !== void 0 ? _b : '').toLowerCase();\n return (id !== 'mobile-wallet-adapter' &&\n id !== 'remote-mobile-wallet-adapter' &&\n name !== 'mobile wallet adapter' &&\n name !== 'remote mobile wallet adapter');\n });\n // Track previous modal state to detect closes\n const prevModalOpen = React.useRef(false);\n // Track when modal was closed because user selected a wallet (not dismissed)\n const walletClickedRef = React.useRef(false);\n // Set up effect to expose methods to the class\n React.useEffect(() => {\n if (phantom) {\n that.phantomMethods = {\n ready: !phantom.isLoading,\n isConnected: phantom.isConnected,\n addresses: phantom.addresses || [],\n user: phantom.user,\n connect: async () => {\n return await connect();\n },\n disconnect: async () => {\n await disconnect();\n },\n isDisconnecting,\n openModal: () => modal.open(),\n closeModal: () => modal.close(),\n isModalOpen: modal.isOpened,\n connectError,\n showCustomModal: () => setShowWalletModal(true),\n hideCustomModal: () => setShowWalletModal(false),\n solana: solana && solanaHook.isAvailable ? {\n // Wrap methods to preserve 'this' context - direct references lose binding\n signMessage: (message) => solana.signMessage(message),\n signTransaction: (tx) => solana.signTransaction(tx),\n signAllTransactions: (txs) => solana.signAllTransactions(txs),\n signAndSendTransaction: (tx) => solana.signAndSendTransaction(tx),\n getPublicKey: () => solana.getPublicKey(),\n isAvailable: solanaHook.isAvailable,\n connected: solana.connected,\n connect: (options) => solana.connect(options),\n } : null,\n };\n }\n }, [phantom, phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, phantom === null || phantom === void 0 ? void 0 : phantom.isLoading, connect, disconnect, isDisconnecting, modal, modal.isOpened, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable, connectError]);\n // Auto-login: If connected but no Bounded session, try to create one.\n // This handles social login callbacks where user returns from OAuth already connected.\n React.useEffect(() => {\n const autoCreateSession = async () => {\n var _a;\n // Only proceed when SDK is ready, connected, has addresses, and not already in a login flow\n if (!(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected) || (phantom === null || phantom === void 0 ? void 0 : phantom.isLoading) || that.loginInProgress || that.autoLoginInProgress || that.pendingLogin) {\n return;\n }\n // Don't clobber a session owned by MWA on Seeker. MWA marks the\n // auth method as soon as login starts (see solana-mobile-wallet-provider),\n // and clears it on logout, so this guard is correct in both\n // steady-state and post-logout cases.\n try {\n if (getPlatform().storage.getItem('bounded_last_auth_method') === 'mobile-wallet-adapter') {\n return;\n }\n }\n catch (_b) { }\n // Need solana to be available AND connected for signing\n if (!solana || !solanaHook.isAvailable || !solana.connected) {\n return;\n }\n // Find Solana address\n const solAddress = (_a = phantom.addresses) === null || _a === void 0 ? void 0 : _a.find((addr) => addr.addressType === AddressType.solana);\n if (!solAddress) {\n return;\n }\n const publicKey = solAddress.address;\n // Check if we already have a valid session for this address\n const existingSession = await SessionManager.getSession();\n if (existingSession && existingSession.address === publicKey) {\n // Already have a valid session, just set user\n setCurrentUser({ provider: that, address: publicKey });\n return;\n }\n // No valid session - try to create one automatically\n that.autoLoginInProgress = true;\n setAuthLoading(true);\n try {\n const nonce = await genAuthNonce();\n const messageText = await genSolanaMessage(publicKey, nonce);\n // signMessage returns { signature: Uint8Array, publicKey: string }\n const signResult = await solana.signMessage(messageText);\n // Convert Uint8Array signature to base64 string\n const signatureBytes = signResult.signature;\n const signature = Buffer.from(signatureBytes).toString('base64');\n const createSessionResult = await createSessionWithSignature(publicKey, messageText, signature);\n // Pre-write guard: MWA may have started a login while we were\n // in flight. If MWA owns the auth method now, abort before we\n // overwrite its session (or its in-flight session).\n try {\n if (getPlatform().storage.getItem('bounded_last_auth_method') === 'mobile-wallet-adapter') {\n return;\n }\n }\n catch (_c) { }\n await SessionManager.storeSession(publicKey, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n // Mark auth method so clearIncompatibleSession() doesn't wipe this session\n try {\n getPlatform().storage.setItem('bounded_last_auth_method', 'phantom');\n }\n catch (_d) { }\n setCurrentUser({ provider: that, address: publicKey });\n }\n catch (error) {\n // User rejected signing or other error - disconnect fully\n try {\n await disconnect();\n }\n catch (e) {\n // Ignore disconnect errors\n }\n }\n finally {\n that.autoLoginInProgress = false;\n setAuthLoading(false);\n }\n };\n autoCreateSession();\n }, [phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.isLoading, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable, disconnect]);\n // Suppress SDK modal if it opens during custom modal login flow\n React.useEffect(() => {\n if (modal.isOpened && that.loginInProgress) {\n modal.close();\n }\n }, [modal.isOpened]);\n // Handle modal close without connection\n React.useEffect(() => {\n // Detect when modal was open and is now closed\n if (prevModalOpen.current && !showWalletModal && !modal.isOpened) {\n if (walletClickedRef.current) {\n // Modal closed because user selected a wallet — don't reject\n walletClickedRef.current = false;\n }\n else if (that.loginInProgress && that.pendingLogin && !(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected)) {\n // User dismissed modal without connecting\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n }\n prevModalOpen.current = showWalletModal || modal.isOpened;\n }, [showWalletModal, modal.isOpened, phantom === null || phantom === void 0 ? void 0 : phantom.isConnected]);\n // Handle connection errors\n React.useEffect(() => {\n if (connectError && that.pendingLogin) {\n that.pendingLogin.reject(connectError);\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n }, [connectError]);\n // Handle connection success\n React.useEffect(() => {\n const handleConnectionSuccess = async () => {\n var _a;\n // All conditions must be met for login to proceed\n if (!(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected) || !((_a = phantom === null || phantom === void 0 ? void 0 : phantom.addresses) === null || _a === void 0 ? void 0 : _a.length) || !that.pendingLogin || !that.loginInProgress) {\n return;\n }\n // Solana must be available AND connected for signing\n // If not ready yet, just return - this effect will re-run when solana.connected changes\n if (!solana || !solanaHook.isAvailable || !solana.connected) {\n return;\n }\n try {\n // Immediately set loginInProgress to false to prevent double execution\n // if the effect runs again before async operations complete\n that.loginInProgress = false;\n // Find Solana address\n const solAddress = phantom.addresses.find((addr) => addr.addressType === AddressType.solana);\n if (!solAddress) {\n that.pendingLogin.reject(new Error('No Solana address returned'));\n that.pendingLogin = null;\n return;\n }\n const publicKey = solAddress.address;\n // Check if we already have a valid session\n const existingSession = await SessionManager.getSession();\n if (existingSession && existingSession.address === publicKey) {\n const user = { provider: that, address: publicKey };\n setCurrentUser(user);\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n return;\n }\n // Create new session with signature\n const nonce = await genAuthNonce();\n const messageText = await genSolanaMessage(publicKey, nonce);\n // signMessage returns { signature: Uint8Array, publicKey: string }\n const signResult = await solana.signMessage(messageText);\n // Convert Uint8Array signature to base64 string\n const signatureBytes = signResult.signature;\n const signature = Buffer.from(signatureBytes).toString('base64');\n const createSessionResult = await createSessionWithSignature(publicKey, messageText, signature);\n await SessionManager.storeSession(publicKey, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n // Mark auth method so clearIncompatibleSession() doesn't wipe this session\n try {\n getPlatform().storage.setItem('bounded_last_auth_method', 'phantom');\n }\n catch (_b) { }\n const user = { provider: that, address: publicKey };\n setCurrentUser(user);\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n }\n catch (error) {\n // Disconnect Phantom since login failed - don't leave in half-connected state\n try {\n await disconnect();\n }\n catch (e) {\n // Ignore disconnect errors\n }\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n }\n };\n handleConnectionSuccess();\n }, [phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable]);\n // --- Custom wallet modal handlers ---\n const handleWalletClick = async (options) => {\n walletClickedRef.current = true;\n setShowWalletModal(false);\n // Cross-origin preview iframe + deeplink: the old approach navigated\n // the top frame to this URL, but in a TWA that lands out-of-scope and\n // shows a chrome-error (\"bad page\"). Instead, open the app TOP-LEVEL\n // in a new tab where the wallet connect works natively; the session\n // reflects back into this iframe (see openTopLevelForConnect /\n // awaitTopLevelConnect).\n if (shouldBreakOutOfIframe(options === null || options === void 0 ? void 0 : options.provider)) {\n if (openTopLevelForConnect()) {\n that.awaitTopLevelConnect();\n return;\n }\n // Popup blocked — fall through to the original deeplink path\n // (better a broken-ish button than a silently-dead one).\n }\n try {\n if (options === null || options === void 0 ? void 0 : options.walletId) {\n await connect({ provider: 'injected', walletId: options.walletId });\n }\n else if (options === null || options === void 0 ? void 0 : options.provider) {\n await connect({ provider: options.provider });\n }\n else {\n await connect();\n }\n }\n catch (err) {\n // connectError effect handles this\n }\n };\n const handleMobileWalletClick = async () => {\n that.loginInProgress = false;\n walletClickedRef.current = true;\n setShowWalletModal(false);\n // Cross-origin preview iframe (e.g. poof.new build page) on mobile:\n // MWA can't run here (Chrome denies Local Network Access to sub-frames,\n // and its localhost handshake fails). Open the app top-level for the\n // connect; the session reflects back into this iframe.\n if (isInIframe() && openTopLevelForConnect()) {\n that.awaitTopLevelConnect();\n return;\n }\n // LNA permission is handled by @solana-mobile/wallet-standard-mobile\n // >=0.5.0's checkLocalNetworkAccessPermission (three-stage UX, fired\n // before the localhost reflector opens). No homemade pre-warm needed.\n if (that.onSwitchToMWA) {\n try {\n const mwaProvider = await that.onSwitchToMWA();\n const user = await mwaProvider.login();\n if (that.pendingLogin && user) {\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n }\n else if (that.pendingLogin) {\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n }\n }\n catch (error) {\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n }\n }\n }\n };\n const handleCloseModal = () => {\n setShowWalletModal(false);\n if (that.loginInProgress && that.pendingLogin && !(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected)) {\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n };\n // --- Custom wallet modal ---\n if (!showWalletModal) {\n return null;\n }\n const effectiveTheme = (_c = (_b = (_a = that.loginOverrides) === null || _a === void 0 ? void 0 : _a.theme) !== null && _b !== void 0 ? _b : that.config.theme) !== null && _c !== void 0 ? _c : 'dark';\n const isLight = effectiveTheme === 'light';\n const bgColor = isLight ? '#FFFFFF' : '#111113';\n const cardBorder = isLight ? '1px solid rgba(0,0,0,0.08)' : '1px solid rgba(255,255,255,0.07)';\n const textColor = isLight ? '#0f0f0f' : '#f5f5f5';\n const subTextColor = isLight ? 'rgba(0,0,0,0.45)' : 'rgba(255,255,255,0.4)';\n const btnBg = isLight ? 'rgba(0,0,0,0.04)' : 'rgba(255,255,255,0.05)';\n const btnHoverBg = isLight ? 'rgba(0,0,0,0.08)' : 'rgba(255,255,255,0.09)';\n const btnBorder = isLight ? '1px solid rgba(0,0,0,0.10)' : '1px solid rgba(255,255,255,0.09)';\n const fontFamily = '\"SF Pro Text\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif';\n const buttonStyle = (id) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '10px',\n width: '100%',\n height: '52px',\n padding: '0 20px',\n border: btnBorder,\n borderRadius: '12px',\n backgroundColor: hoveredBtn === id ? btnHoverBg : btnBg,\n color: textColor,\n fontFamily,\n fontSize: '14px',\n fontWeight: '500',\n lineHeight: '1',\n letterSpacing: '0',\n cursor: 'pointer',\n transition: 'background-color 0.15s, border-color 0.15s',\n boxSizing: 'border-box',\n });\n const walletButtons = [];\n // Google OAuth button — shown when 'google' is in resolved providers\n if (sdkProviders.includes('google')) {\n walletButtons.push(React.createElement('button', {\n key: 'google-oauth',\n style: buttonStyle('google-oauth'),\n onClick: () => handleWalletClick({ provider: 'google' }),\n onMouseEnter: () => setHoveredBtn('google-oauth'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24',\n style: { flexShrink: '0' },\n }, React.createElement('path', {\n d: 'M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z',\n fill: '#4285F4',\n }), React.createElement('path', {\n d: 'M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z',\n fill: '#34A853',\n }), React.createElement('path', {\n d: 'M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A11.96 11.96 0 0 0 1 12c0 1.94.46 3.77 1.18 5.41l3.66-2.84z',\n fill: '#FBBC05',\n }), React.createElement('path', {\n d: 'M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z',\n fill: '#EA4335',\n })), 'Continue with Google'));\n }\n // Apple OAuth button — shown when 'apple' is in resolved providers\n if (sdkProviders.includes('apple')) {\n walletButtons.push(React.createElement('button', {\n key: 'apple-oauth',\n style: buttonStyle('apple-oauth'),\n onClick: () => handleWalletClick({ provider: 'apple' }),\n onMouseEnter: () => setHoveredBtn('apple-oauth'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24',\n fill: textColor,\n style: { flexShrink: '0' },\n }, React.createElement('path', {\n d: 'M17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z',\n })), 'Continue with Apple'));\n }\n // Fallback icon for Phantom — uses the official SVG path from @phantom/wallet-sdk-ui\n // (SDK intentionally leaves wallet.icon empty for Phantom, expecting its own UI to render it)\n const PHANTOM_ICON = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHJ4PSI2IiBmaWxsPSIjQUI5RkYyIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNCw0KSI+PHBhdGggZD0iTTIuMzY2NTUgMTguMzI3MUM0LjkxODcxIDE4LjMyNzEgNi44MzY3IDE2LjEwNzYgNy45ODEzMSAxNC4zNTM3QzcuODQyMSAxNC43NDE3IDcuNzY0NzYgMTUuMTI5OCA3Ljc2NDc2IDE1LjUwMjNDNy43NjQ3NiAxNi41MjY3IDguMzUyNTMgMTcuMjU2MiA5LjUxMjYgMTcuMjU2MkMxMS4xMDU4IDE3LjI1NjIgMTIuODA3MiAxNS44NTkzIDEzLjY4ODkgMTQuMzUzN0MxMy42MjcgMTQuNTcxIDEzLjU5NjEgMTQuNzcyOCAxMy41OTYxIDE0Ljk1OUMxMy41OTYxIDE1LjY3MyAxMy45OTgyIDE2LjEyMzEgMTQuODE4IDE2LjEyMzFDMTcuNDAxMSAxNi4xMjMxIDE5Ljk5OTcgMTEuNTQ0NCAxOS45OTk3IDcuNTM5ODdDMTkuOTk5NyA0LjQyMDExIDE4LjQyMiAxLjY3Mjg1IDE0LjQ2MjIgMS42NzI4NUM3LjUwMTgxIDEuNjcyODUgMCAxMC4xNzg1IDAgMTUuNjczQzAgMTcuODMwNSAxLjE2MDA3IDE4LjMyNzEgMi4zNjY1NSAxOC4zMjcxWk0xMi4wNjQ4IDcuMTk4NDFDMTIuMDY0OCA2LjQyMjM1IDEyLjQ5NzkgNS44NzkxIDEzLjEzMiA1Ljg3OTFDMTMuNzUwNyA1Ljg3OTEgMTQuMTgzOCA2LjQyMjM1IDE0LjE4MzggNy4xOTg0MUMxNC4xODM4IDcuOTc0NDcgMTMuNzUwNyA4LjUzMzIzIDEzLjEzMiA4LjUzMzIzQzEyLjQ5NzkgOC41MzMyMyAxMi4wNjQ4IDcuOTc0NDcgMTIuMDY0OCA3LjE5ODQxWk0xNS4zNzQ4IDcuMTk4NDFDMTUuMzc0OCA2LjQyMjM1IDE1LjgwNzkgNS44NzkxIDE2LjQ0MjEgNS44NzkxQzE3LjA2MDggNS44NzkxIDE3LjQ5MzkgNi40MjIzNSAxNy40OTM5IDcuMTk4NDFDMTcuNDkzOSA3Ljk3NDQ3IDE3LjA2MDggOC41MzMyMyAxNi40NDIxIDguNTMzMjNDMTUuODA3OSA4LjUzMzIzIDE1LjM3NDggNy45NzQ0NyAxNS4zNzQ4IDcuMTk4NDFaIiBmaWxsPSJ3aGl0ZSIvPjwvZz48L3N2Zz4=';\n // Show all discovered injected wallets (Phantom, Solflare, Jupiter, etc.)\n if (sdkProviders.includes('injected')) {\n for (const wallet of discoveredWallets) {\n const walletKey = `wallet-${wallet.id}`;\n const iconSrc = wallet.icon || (wallet.id === 'phantom' ? PHANTOM_ICON : null);\n walletButtons.push(React.createElement('button', {\n key: walletKey,\n style: buttonStyle(walletKey),\n onClick: () => handleWalletClick({ walletId: wallet.id }),\n onMouseEnter: () => setHoveredBtn(walletKey),\n onMouseLeave: () => setHoveredBtn(null),\n }, iconSrc\n ? React.createElement('img', {\n src: iconSrc,\n alt: wallet.name,\n style: { width: '28px', height: '28px', borderRadius: '6px' },\n })\n : null, wallet.name));\n }\n }\n if (showDeeplink) {\n walletButtons.push(React.createElement('button', {\n key: 'phantom-deeplink',\n style: buttonStyle('phantom-deeplink'),\n onClick: () => handleWalletClick({ provider: 'deeplink' }),\n onMouseEnter: () => setHoveredBtn('phantom-deeplink'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('img', {\n src: PHANTOM_ICON,\n alt: 'Phantom',\n style: { width: '28px', height: '28px', borderRadius: '6px' },\n }), 'Open Phantom app'));\n }\n // Mobile Wallet Adapter button — shown on Android when MWA callback is available\n // and no injected wallet is present (hides button inside Phantom/Solflare/etc. in-app browsers).\n const isAndroid = detectAndroid();\n if (isAndroid && that.onSwitchToMWA && !hasInjectedWallet) {\n walletButtons.push(React.createElement('button', {\n key: 'mobile-wallet',\n style: buttonStyle('mobile-wallet'),\n onClick: handleMobileWalletClick,\n onMouseEnter: () => setHoveredBtn('mobile-wallet'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24', fill: 'none',\n style: { flexShrink: '0', opacity: '0.85' },\n }, \n // Phone outline\n React.createElement('rect', {\n x: '5', y: '2', width: '14', height: '20', rx: '2',\n stroke: textColor, strokeWidth: '2', fill: 'none',\n }), \n // Screen line\n React.createElement('line', {\n x1: '5', y1: '6', x2: '19', y2: '6',\n stroke: textColor, strokeWidth: '1.5',\n }), \n // Wallet/shield checkmark\n React.createElement('path', {\n d: 'M9.5 12.5l2 2 3.5-3.5',\n stroke: textColor, strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round', fill: 'none',\n })), 'Connect Mobile Wallet'));\n }\n const mainButtons = walletButtons;\n // Render custom modal\n return React.createElement('div', {\n // Overlay\n style: {\n position: 'fixed',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n backgroundColor: isLight ? 'rgba(0,0,0,0.35)' : 'rgba(0,0,0,0.65)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '16px',\n boxSizing: 'border-box',\n overflowY: 'auto',\n zIndex: 2147483647,\n pointerEvents: 'auto',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n },\n onClick: (e) => {\n if (e.target === e.currentTarget)\n handleCloseModal();\n },\n onMouseDown: (e) => {\n e.stopPropagation();\n },\n onPointerDown: (e) => {\n e.stopPropagation();\n },\n }, \n // Card\n React.createElement('div', {\n style: {\n backgroundColor: bgColor,\n border: cardBorder,\n borderRadius: '20px',\n width: '100%',\n maxWidth: '380px',\n maxHeight: '100%',\n overflowY: 'auto',\n padding: '28px 24px 24px',\n position: 'relative',\n boxShadow: isLight\n ? '0 8px 40px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06)'\n : '0 8px 40px rgba(0,0,0,0.6), 0 2px 8px rgba(0,0,0,0.3)',\n pointerEvents: 'auto',\n boxSizing: 'border-box',\n },\n onMouseDown: (e) => {\n e.stopPropagation();\n },\n onPointerDown: (e) => {\n e.stopPropagation();\n },\n }, \n // Close button\n React.createElement('button', {\n onClick: handleCloseModal,\n style: {\n position: 'absolute',\n top: '14px',\n right: '14px',\n background: isLight ? 'rgba(0,0,0,0.05)' : 'rgba(255,255,255,0.07)',\n border: isLight ? '1px solid rgba(0,0,0,0.08)' : '1px solid rgba(255,255,255,0.08)',\n borderRadius: '50%',\n width: '28px',\n height: '28px',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '0',\n flexShrink: '0',\n },\n }, React.createElement('svg', {\n width: '12', height: '12', viewBox: '0 0 12 12', fill: 'none',\n }, React.createElement('path', {\n d: 'M11 1L1 11M1 1l10 10',\n stroke: subTextColor, strokeWidth: '1.75', strokeLinecap: 'round',\n }))), \n // App icon (if provided)\n that.config.appIcon ? React.createElement('div', {\n style: { display: 'flex', justifyContent: 'center', marginBottom: '16px' },\n }, React.createElement('img', {\n src: that.config.appIcon,\n alt: that.config.appName || 'App',\n style: { width: '44px', height: '44px', borderRadius: '10px' },\n })) : null, \n // Title\n React.createElement('div', {\n style: {\n color: textColor,\n fontFamily,\n fontSize: '17px',\n fontWeight: '600',\n textAlign: 'center',\n marginBottom: '6px',\n letterSpacing: '-0.2px',\n },\n }, (_f = (_e = (_d = that.loginOverrides) === null || _d === void 0 ? void 0 : _d.modalTitle) !== null && _e !== void 0 ? _e : that.config.modalTitle) !== null && _f !== void 0 ? _f : (that.config.appName ? `Log in to ${that.config.appName}` : 'Log in to your account')), \n // Subtitle\n React.createElement('div', {\n style: {\n color: subTextColor,\n fontFamily,\n fontSize: '13px',\n fontWeight: '400',\n textAlign: 'center',\n marginBottom: '24px',\n lineHeight: '1.4',\n },\n }, (_j = (_h = (_g = that.loginOverrides) === null || _g === void 0 ? void 0 : _g.modalSubtitle) !== null && _h !== void 0 ? _h : that.config.modalSubtitle) !== null && _j !== void 0 ? _j : 'Choose how you\\'d like to continue'), \n // Wallet / social login buttons\n React.createElement('div', {\n style: {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n },\n }, ...mainButtons)));\n };\n // Wrapper component with PhantomProvider\n const PhantomProviderWrapper = () => {\n // Build SDK config\n const sdkConfig = React.useMemo(() => {\n var _a;\n const config = {\n providers: sdkProviders,\n addressTypes: [AddressType.solana],\n autoConnect: (_a = that.config.autoConnect) !== null && _a !== void 0 ? _a : true,\n };\n if (that.config.appId) {\n config.appId = that.config.appId;\n }\n return config;\n }, []);\n const theme = that.config.theme === 'light' ? lightTheme : darkTheme;\n return React.createElement(ReactPhantomProvider, {\n config: sdkConfig,\n theme: theme,\n appName: that.config.appName || 'App',\n appIcon: that.config.appIcon,\n }, React.createElement(PhantomHooksComponent));\n };\n this.root = ReactDOM.createRoot(this.containerElement);\n this.root.render(React.createElement(PhantomProviderWrapper));\n }\n async ensureReady() {\n // Wait for async initialization to complete first\n if (this.initPromise) {\n await this.initPromise;\n }\n // Wait for SDK to be ready\n await new Promise((resolve) => {\n const check = () => {\n var _a;\n if ((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.ready) {\n resolve();\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n async ensureSolanaReady() {\n var _a;\n await this.ensureReady();\n // If connected at the Phantom level, ensure solana methods are ready\n if ((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) {\n const timeoutMs = 10000; // 10 second timeout\n const startTime = Date.now();\n // First, wait for solana to be available\n await new Promise((resolve, reject) => {\n const check = () => {\n var _a, _b;\n if ((_b = (_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.solana) === null || _b === void 0 ? void 0 : _b.isAvailable) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Timeout waiting for Solana provider to be available'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n // Now check if the solana provider is connected, if not try to reconnect\n // Note: We check our wrapper's `connected` which may be stale, but this is just\n // an optimization to skip reconnect if we know we're already connected.\n // The actual signing methods use the SDK's bound methods which check live state.\n if (!this.phantomMethods.solana.connected) {\n console.log('Solana provider not connected, attempting to reconnect...');\n try {\n // onlyIfTrusted: true means it will reconnect silently if previously approved\n // If not trusted, it will throw and we'll catch it below\n await this.phantomMethods.solana.connect({ onlyIfTrusted: true });\n console.log('Solana provider reconnected successfully');\n }\n catch (error) {\n // If onlyIfTrusted fails, the user may need to re-approve via modal\n console.error('Failed to reconnect solana provider (silent reconnect failed):', error === null || error === void 0 ? void 0 : error.message);\n throw new Error('Failed to reconnect Solana provider. Please try logging in again.');\n }\n }\n // Note: We don't do a final connected check here because our wrapper's `connected`\n // is a snapshot that won't update until React re-renders. If connect() succeeded,\n // the SDK is connected and signing will work.\n }\n }\n /**\n * Get the list of available (configured) providers for this wallet.\n */\n getAvailableProviders() {\n return [...this.resolvedProviders];\n }\n /**\n * Login using the Phantom connect modal. A custom modal is rendered with the\n * discovered wallets and configured social providers instead of the SDK's\n * built-in modal.\n */\n async login() {\n var _a, _b;\n await this.ensureReady();\n // Check if already connected with valid session\n if (((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) && ((_b = this.phantomMethods.addresses) === null || _b === void 0 ? void 0 : _b.length) > 0) {\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (solAddress) {\n const session = await SessionManager.getSession();\n if (session && session.address === solAddress.address) {\n const user = { provider: this, address: solAddress.address };\n setCurrentUser(user);\n return user;\n }\n }\n }\n // If already pending, wait for it\n if (this.pendingLogin) {\n return new Promise((resolve, reject) => {\n this.pendingLogin.resolve = resolve;\n this.pendingLogin.reject = reject;\n });\n }\n const loginPromise = new Promise((resolve, reject) => {\n this.pendingLogin = { resolve, reject };\n this.loginInProgress = true;\n // Always use our custom wallet modal\n this.phantomMethods.showCustomModal();\n // Safety timeout\n setTimeout(() => {\n if (this.pendingLogin) {\n this.pendingLogin.reject(new Error('Login timed out'));\n this.pendingLogin = null;\n this.loginInProgress = false;\n }\n }, 180000);\n });\n return loginPromise.finally(() => {\n this.loginOverrides = null;\n });\n }\n async restoreSession() {\n await this.ensureReady();\n const session = await SessionManager.getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n return null;\n }\n // When connect is delegated to a top-level tab (openTopLevelForConnect — used\n // for the cross-origin preview iframe on mobile, where MWA can't run), the\n // actual connect happens in that tab and writes the session to same-origin\n // storage. This watches for that session to appear and resolves the in-flight\n // login() with it. It listens for `storage` events and visibility regain (the\n // user returning from the tab), with a polling fallback and a hard timeout.\n awaitTopLevelConnect() {\n if (typeof window === 'undefined')\n return;\n let done = false;\n const cleanup = () => {\n clearInterval(poll);\n clearTimeout(timeout);\n window.removeEventListener('storage', onChange);\n document.removeEventListener('visibilitychange', onVisible);\n };\n const tryResolve = async () => {\n if (done)\n return;\n try {\n const user = await this.restoreSession();\n if (user && this.pendingLogin) {\n done = true;\n cleanup();\n this.pendingLogin.resolve(user);\n this.pendingLogin = null;\n this.loginInProgress = false;\n }\n }\n catch (_a) {\n // not ready yet — keep waiting\n }\n };\n const onChange = () => { void tryResolve(); };\n const onVisible = () => { if (document.visibilityState === 'visible')\n void tryResolve(); };\n const poll = setInterval(() => { void tryResolve(); }, 1500);\n const timeout = setTimeout(() => {\n cleanup();\n if (!done && this.pendingLogin) {\n this.pendingLogin.reject(new Error('Wallet connection timed out'));\n this.pendingLogin = null;\n this.loginInProgress = false;\n }\n }, 180000);\n window.addEventListener('storage', onChange);\n document.addEventListener('visibilitychange', onVisible);\n }\n async address() {\n var _a, _b, _c, _d;\n await this.ensureReady();\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) || !((_b = this.phantomMethods.addresses) === null || _b === void 0 ? void 0 : _b.length)) {\n // Try to connect first\n const user = await this.login();\n if (!user)\n return null;\n }\n const solAddress = (_d = (_c = this.phantomMethods) === null || _c === void 0 ? void 0 : _c.addresses) === null || _d === void 0 ? void 0 : _d.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n return (solAddress === null || solAddress === void 0 ? void 0 : solAddress.address) || null;\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (!solTransactionData) {\n throw new Error(\"Solana transaction data is required for Phantom wallet\");\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n try {\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const app_id = solTransactionData.appId;\n if (!app_id) {\n throw new Error(\"App ID is required\");\n }\n // Get address\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (!solAddress) {\n throw new Error('Failed to get Solana address');\n }\n const publicKey = new PublicKey(solAddress.address);\n // Create wallet adapter using SDK methods\n const solana = this.phantomMethods.solana;\n const walletAdapter = {\n publicKey,\n signTransaction: async (tx) => {\n return await solana.signTransaction(tx);\n },\n signAllTransactions: async (txs) => {\n return await solana.signAllTransactions(txs);\n }\n };\n const anchorProvider = new anchor.AnchorProvider(connection, walletAdapter, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n // When the server has co-signed a transaction (CPI attestation),\n // deserialize it and just add the wallet signature instead of\n // building from components.\n let tx;\n if (solTransactionData.signedTransaction) {\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, publicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n const signedTx = await walletAdapter.signTransaction(tx);\n return {\n signedTransaction: signedTx,\n blockNumber: 0,\n gasUsed: \"0\",\n data: \"\"\n };\n }\n // Keep manual submission on surfnet, use Phantom's recommended signAndSend for other networks.\n if (isSurfnet) {\n const signedTx = await walletAdapter.signTransaction(tx);\n const { signature, txInfo } = await this.submitSignedTransaction(signedTx, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_c = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _c === void 0 ? void 0 : _c.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n const signature = await this.signAndSendViaPhantom(tx);\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_d = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _d === void 0 ? void 0 : _d.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.includes('not connected')) || ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.includes('connect first'))) {\n console.error('Solana provider connection lost during transaction, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user rejected')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user denied')) ||\n ((_j = error === null || error === void 0 ? void 0 : error.message) === null || _j === void 0 ? void 0 : _j.toLowerCase().includes('user cancelled')) ||\n ((_k = error === null || error === void 0 ? void 0 : error.message) === null || _k === void 0 ? void 0 : _k.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('Failed to execute transaction', error);\n }\n throw new Error(`Failed to execute transaction: ${error.message}`);\n }\n }\n /**\n * Signs a Solana transaction without submitting it.\n *\n * This method handles blockhash automatically if not set - you do NOT need to\n * set recentBlockhash on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign (Transaction or VersionedTransaction)\n * @returns The signed transaction\n */\n async signTransaction(transaction) {\n var _a, _b, _c, _d;\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n // Reconnection failed - log user out and throw\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n // Ensure blockhash is set before signing\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (solAddress) {\n legacyTx.feePayer = new PublicKey(solAddress.address);\n }\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n try {\n return await this.phantomMethods.solana.signTransaction(transaction);\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('connect first'))) {\n console.error('Solana provider connection lost during signing, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n throw new Error(`Failed to sign transaction: ${error.message}`);\n }\n }\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the connected wallet address will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(transaction, feePayer) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n try {\n // Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n if (feePayer) {\n legacyTx.feePayer = feePayer;\n }\n else {\n // Use connected wallet address as feePayer\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (solAddress) {\n legacyTx.feePayer = new PublicKey(solAddress.address);\n }\n }\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n // Keep manual submission on surfnet, use Phantom's recommended signAndSend for other networks.\n if (isSurfnet) {\n const signedTx = await this.phantomMethods.solana.signTransaction(transaction);\n const { signature } = await this.submitSignedTransactionWithBlockhash(signedTx, connection, blockhash, lastValidBlockHeight);\n return signature;\n }\n const signature = await this.signAndSendViaPhantom(transaction);\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('connect first'))) {\n console.error('Solana provider connection lost during transaction, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user rejected')) ||\n ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.toLowerCase().includes('user denied')) ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user cancelled')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('Failed to execute transaction', error);\n }\n throw new Error(`Failed to execute transaction: ${error.message}`);\n }\n }\n async signMessage(message) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n // Reconnection failed - log user out and throw\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n try {\n // signMessage returns { signature: Uint8Array, publicKey: string }\n const result = await this.phantomMethods.solana.signMessage(message);\n return Buffer.from(result.signature).toString('base64');\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('connect first'))) {\n console.error('Solana provider connection lost during signing, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user rejected')) ||\n ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.toLowerCase().includes('user denied')) ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user cancelled')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('Failed to sign message', error);\n }\n throw new Error('Failed to sign message');\n }\n }\n async logout() {\n var _a;\n await this.ensureReady();\n try {\n if ((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) {\n await this.phantomMethods.disconnect();\n }\n }\n catch (error) {\n console.error('Failed to disconnect from Phantom wallet', error);\n }\n // Always clear local state\n SessionManager.clearSession();\n setCurrentUser(null);\n }\n async getNativeMethods() {\n await this.ensureReady();\n return this.phantomMethods;\n }\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n async signAndSendViaPhantom(transaction) {\n var _a, _b, _c;\n const result = await ((_b = (_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.solana) === null || _b === void 0 ? void 0 : _b.signAndSendTransaction(transaction));\n const signature = (_c = result === null || result === void 0 ? void 0 : result.signature) !== null && _c !== void 0 ? _c : result === null || result === void 0 ? void 0 : result.hash;\n if (!signature) {\n throw new Error('Phantom did not return a transaction signature');\n }\n return signature;\n }\n async submitSignedTransaction(signedTx, connection) {\n // Get fresh blockhash for confirmation\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n return this.submitSignedTransactionWithBlockhash(signedTx, connection, blockhash, lastValidBlockHeight);\n }\n async submitSignedTransactionWithBlockhash(signedTx, connection, blockhash, lastValidBlockHeight) {\n // Submit the transaction\n const signature = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n // Confirm using blockhash strategy (same as runTransaction)\n const confirmation = await connection.confirmTransaction({\n signature,\n blockhash,\n lastValidBlockHeight,\n }, 'confirmed');\n if (confirmation.value.err) {\n throw new Error(`Transaction failed: ${confirmation.value.err.toString()}`);\n }\n // Get transaction info\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n return { signature, txInfo };\n }\n}\nPhantomWalletProvider.instance = null;\n"],"names":["SessionManager","Buffer"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index_native = require('./index.native-BIm0gZmJ.js');
3
+ var index_native = require('./index.native-fDOSSF3W.js');
4
4
  var web3_js = require('@solana/web3.js');
5
5
  var anchor = require('@coral-xyz/anchor');
6
6
  var React = require('react');
@@ -457,13 +457,7 @@ class PrivyWalletProvider {
457
457
  const rpcUrl = this.getRpcUrl(solTransactionData.network);
458
458
  const connection = new web3_js.Connection(rpcUrl, "confirmed");
459
459
  const remainingAccounts = index_native.convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);
460
- let app_id = solTransactionData.appId;
461
- if (typeof window !== 'undefined' && window.CUSTOM_BOUNDED_APP_ID_HEADER) {
462
- const customAppId = window.CUSTOM_BOUNDED_APP_ID_HEADER;
463
- if (customAppId) {
464
- app_id = customAppId;
465
- }
466
- }
460
+ const app_id = solTransactionData.appId;
467
461
  if (!app_id) {
468
462
  throw new Error("App ID is required");
469
463
  }
@@ -881,7 +875,7 @@ class PrivyWalletProvider {
881
875
  }));
882
876
  // The signature is returned as a Uint8Array, encode it as base58 (standard Solana format)
883
877
  const signatureBytes = (result === null || result === void 0 ? void 0 : result.signature) || result;
884
- const bs58 = await Promise.resolve().then(function () { return require('./index.native-BIm0gZmJ.js'); }).then(function (n) { return n.index; });
878
+ const bs58 = await Promise.resolve().then(function () { return require('./index.native-fDOSSF3W.js'); }).then(function (n) { return n.index; });
885
879
  return bs58.default.encode(signatureBytes);
886
880
  }
887
881
  async restoreSession() {
@@ -973,4 +967,4 @@ class PrivyWalletProvider {
973
967
  PrivyWalletProvider.instance = null;
974
968
 
975
969
  exports.PrivyWalletProvider = PrivyWalletProvider;
976
- //# sourceMappingURL=privy-wallet-provider-CuClH2mS.js.map
970
+ //# sourceMappingURL=privy-wallet-provider-B3FEM7RO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privy-wallet-provider-B3FEM7RO.js","sources":["../.rollup-tmp/auth/providers/privy-wallet-provider.js"],"sourcesContent":["import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport { setCurrentUser } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { PublicKey, Connection, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport bs58 from 'bs58';\nconst SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\n// React/react-dom are externalized peer deps (see rollup.config.js\n// sharedExternal / isExternal) — rollup emits these as bare ESM imports the\n// consumer's bundler resolves; they are NOT inlined. Static top-level ESM\n// imports (instead of a runtime require() behind a `typeof window` guard) so\n// the browser ESM bundle never evaluates `require`, which is undefined in a\n// production ESM/Vite build (it would throw ReferenceError at module eval).\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom/client';\n// @privy-io/react-auth(/solana) are OPTIONAL peer deps. They are loaded lazily\n// via dynamic import() rather than a static top-level import: a static import\n// would (a) in the ESM bundle still be a bare `import` the consumer resolves —\n// fine — but (b) in the CJS bundle become an eager top-level require() that\n// throws for any consumer who hasn't installed Privy (this module is pulled\n// into the entry via a static re-export). The lazy import keeps the browser\n// ESM bundle free of any runtime `require('@privy-io...')` AND lets a consumer\n// who never uses Privy load the package without it installed. Populated once\n// in `initialize()` (browser-only) before the Privy React tree renders.\nlet privyImports;\nlet privySolana;\nasync function loadPrivyModules() {\n if (privyImports && privySolana)\n return;\n [privyImports, privySolana] = await Promise.all([\n import('@privy-io/react-auth'),\n import('@privy-io/react-auth/solana'),\n ]);\n}\n// @solana/kit is an OPTIONAL wallet-only dep, used only to build the Privy\n// Solana RPC transports. Loaded lazily (like the Privy SDKs) via dynamic\n// import() rather than a static top-level import: a static import is hoisted by\n// rollup into the entry chunk, forcing every consumer (including vanilla,\n// non-wallet web apps) to have @solana/kit installed and eagerly require()d.\n// Deferring it here keeps it out of the entry bundle.\nlet solanaKit;\nasync function loadSolanaKit() {\n if (!solanaKit) {\n solanaKit = await import('@solana/kit');\n }\n return solanaKit;\n}\nconst getDefaultPrivyConfig = () => ({\n appId: \"cm4ve714908o27dk2yurpnfhd\",\n config: {\n embeddedWallets: {\n solana: {\n createOnLogin: \"users-without-wallets\"\n }\n },\n appearance: {\n walletChainType: 'solana-only'\n },\n externalWallets: { solana: { connectors: privySolana.toSolanaWalletConnectors() } }\n }\n});\nexport class PrivyWalletProvider {\n constructor(appName, appLogoUrl, privyConfig, networkUrl = null) {\n this.containerElement = null;\n this.chainId = 'solana:mainnet';\n this.root = null;\n this.privyMethods = null;\n this.pendingLogin = null;\n // Resolved Solana RPC URLs (computed in the constructor; consumed in\n // initialize() where @solana/kit is lazily loaded to build the transports).\n this.rpcDevnetUrl = SOLANA_DEVNET_RPC_URL;\n this.rpcMainnetUrl = SOLANA_MAINNET_RPC_URL;\n // This is used to store the pending transaction until the wallet is connected for workaround for the wallet not being connected after login completion\n this.pendingTransaction = null;\n // This is used to store pending signTransaction calls until the wallet is connected\n this.pendingSignTransaction = null;\n // This is used to store pending signMessage calls until the wallet is connected\n this.pendingSignMessage = null;\n // This is used to store pending signAndSubmitTransaction calls until the wallet is connected\n this.pendingSignAndSubmitTransaction = null;\n this.networkUrl = networkUrl;\n if (typeof window === 'undefined') {\n throw new Error('PrivyWalletProvider can only be instantiated in a browser environment');\n }\n if (PrivyWalletProvider.instance) {\n return PrivyWalletProvider.instance;\n }\n this.containerElement = null;\n this.root = null;\n this.privyMethods = null;\n this.privyConfig = privyConfig !== null && privyConfig !== void 0 ? privyConfig : getDefaultPrivyConfig();\n // Only use the appName and appLogoUrl if no privyConfig is provided\n if (privyConfig == null) {\n if (appName != null && appName != '') {\n this.privyConfig.config.appearance.landingHeader = appName;\n }\n if (appLogoUrl != null && appLogoUrl != '') {\n this.privyConfig.config.appearance.logo = appLogoUrl;\n }\n }\n // (externalWallets connectors are configured in initialize() once the\n // Privy SDK is lazily loaded — see loadPrivyModules.)\n // Resolve Solana RPC URLs for v3. The @solana/kit transports are built\n // lazily in initialize() so a non-Privy consumer never needs @solana/kit.\n this.rpcDevnetUrl = SOLANA_DEVNET_RPC_URL;\n this.rpcMainnetUrl = SOLANA_MAINNET_RPC_URL;\n if (networkUrl != null) {\n if (networkUrl.includes('mainnet')) {\n this.rpcMainnetUrl = networkUrl;\n this.chainId = 'solana:mainnet';\n }\n else if (networkUrl.includes('devnet')) {\n this.rpcDevnetUrl = networkUrl;\n this.chainId = 'solana:devnet';\n }\n }\n const existingProviders = document.querySelectorAll('[data-privy-provider]');\n existingProviders.forEach(el => el.remove());\n // Fire-and-forget: initialize() lazily loads the Privy SDK then renders\n // the hidden React tree. privyMethods stays null until that render runs,\n // which the login/connect methods already wait for. Surface a clear error\n // if the optional @privy-io/react-auth peer dep isn't installed.\n this.initialize().catch((err) => {\n console.error('PrivyWalletProvider: failed to load @privy-io/react-auth — ensure it is installed to use Privy login.', err);\n });\n // Assign this instance to the static instance property\n PrivyWalletProvider.instance = this;\n }\n // Optional: Provide a static method to get the instance\n static getInstance(appName, appLogoUrl, privyConfig) {\n if (!PrivyWalletProvider.instance) {\n new PrivyWalletProvider(appName, appLogoUrl, privyConfig);\n }\n return PrivyWalletProvider.instance;\n }\n async initialize() {\n // Lazily load the Privy SDK (browser-only) before building the React tree.\n await loadPrivyModules();\n // Build the Solana RPC transports now that we're on the async path, so\n // @solana/kit can be lazily imported (kept out of the entry bundle).\n const { createSolanaRpc, createSolanaRpcSubscriptions } = await loadSolanaKit();\n if (!this.privyConfig.config.solana) {\n this.privyConfig.config.solana = {};\n }\n this.privyConfig.config.solana.rpcs = {\n 'solana:devnet': {\n rpc: createSolanaRpc(this.rpcDevnetUrl),\n rpcSubscriptions: createSolanaRpcSubscriptions(this.rpcDevnetUrl.replace('https://', 'wss://'))\n },\n 'solana:mainnet': {\n rpc: createSolanaRpc(this.rpcMainnetUrl),\n rpcSubscriptions: createSolanaRpcSubscriptions(this.rpcMainnetUrl.replace('https://', 'wss://'))\n }\n };\n // Ensure externalWallets connectors are always configured — required for\n // useWallets().ready to resolve even when no browser extension is present.\n if (!this.privyConfig.config.externalWallets && privySolana) {\n this.privyConfig.config.externalWallets = {\n solana: { connectors: privySolana.toSolanaWalletConnectors() }\n };\n }\n if (!this.containerElement) {\n this.containerElement = document.createElement('div');\n this.containerElement.setAttribute('data-privy-provider', 'true');\n document.body.appendChild(this.containerElement);\n const that = this;\n const PrivyComponent = () => {\n const privy = privyImports.usePrivy();\n const useOAuthTokens = privyImports.useOAuthTokens();\n const useFundWalletSolana = privySolana.useFundWallet();\n const useSendTransactionSolana = privySolana.useSignAndSendTransaction();\n const { signTransaction } = privySolana.useSignTransaction();\n const { signMessage: signMessageHook } = privySolana.useSignMessage();\n const { ready: walletReady, wallets } = privySolana.useWallets();\n const { createWallet } = privySolana.useCreateWallet();\n const { exportWallet } = privySolana.useExportWallet();\n const useSolanaWallets = { createWallet, exportWallet, ready: walletReady, wallets };\n const useIdentityToken = privyImports.useIdentityToken();\n const { connectWallet } = privyImports.useConnectWallet({\n onSuccess: async ({ wallet }) => {\n await that.createSession(wallet.address, await privy.getAccessToken(), useIdentityToken.identityToken);\n // If there's a pending transaction, execute it now\n if (that.pendingTransaction) {\n const { evmTransactionData, solTransactionData, options, resolve, reject } = that.pendingTransaction;\n try {\n const result = await that.runTransaction(evmTransactionData, solTransactionData, options);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingTransaction = null;\n }\n // If there's a pending signTransaction, execute it now\n if (that.pendingSignTransaction) {\n const { transaction, resolve, reject } = that.pendingSignTransaction;\n try {\n const result = await that.signTransaction(transaction);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingSignTransaction = null;\n }\n // If there's a pending signMessage, execute it now\n if (that.pendingSignMessage) {\n const { message, resolve, reject } = that.pendingSignMessage;\n try {\n const result = await that.signMessage(message);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingSignMessage = null;\n }\n // If there's a pending signAndSubmitTransaction, execute it now\n if (that.pendingSignAndSubmitTransaction) {\n const { transaction, feePayer, resolve, reject } = that.pendingSignAndSubmitTransaction;\n try {\n const result = await that.signAndSubmitTransaction(transaction, feePayer);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingSignAndSubmitTransaction = null;\n }\n },\n onError: (error) => {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Wallet connection error:', error);\n }\n if (that.pendingTransaction) {\n that.pendingTransaction.reject(error);\n that.pendingTransaction = null;\n }\n if (that.pendingSignTransaction) {\n that.pendingSignTransaction.reject(error);\n that.pendingSignTransaction = null;\n }\n if (that.pendingSignMessage) {\n that.pendingSignMessage.reject(error);\n that.pendingSignMessage = null;\n }\n if (that.pendingSignAndSubmitTransaction) {\n that.pendingSignAndSubmitTransaction.reject(error);\n that.pendingSignAndSubmitTransaction = null;\n }\n }\n });\n const { login } = privyImports.useLogin({\n onComplete: async ({ user }) => {\n var _a;\n // This is a hack to indicate to the app that privy login is not complete\n // @ts-ignore\n window.runningPrivyOnComplete = true;\n if (!user) {\n SessionManager().clearSession();\n return;\n }\n const solanaLinkedAccounts = user.linkedAccounts.filter((account) => account.chainType === 'solana');\n const sortedLinkedAccounts = solanaLinkedAccounts.sort((a, b) => new Date(b.latestVerifiedAt).getTime() - new Date(a.latestVerifiedAt).getTime());\n let finalAddress = (_a = sortedLinkedAccounts[0]) === null || _a === void 0 ? void 0 : _a.address;\n if (!finalAddress) {\n const solanaWallet = await createWallet();\n finalAddress = solanaWallet.address;\n SessionManager().clearSession();\n return;\n }\n const session = await SessionManager().getSession();\n if (!session || finalAddress !== session.address) {\n try {\n const accessToken = await privy.getAccessToken();\n const idToken = useIdentityToken.identityToken;\n await that.createSession(finalAddress, accessToken, idToken);\n }\n catch (error) {\n console.error('Error creating session:', error);\n }\n }\n // @ts-ignore\n window.runningPrivyOnComplete = false;\n setCurrentUser({ address: finalAddress, provider: that });\n if (that.pendingLogin) {\n that.pendingLogin.resolve({ address: finalAddress, provider: that });\n that.pendingLogin = null;\n }\n },\n onError: (error) => {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Login error:', error);\n }\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n }\n }\n });\n const { logout } = privyImports.useLogout({\n onSuccess: () => {\n SessionManager().clearSession();\n setCurrentUser(null);\n }\n });\n React.useEffect(() => {\n if (privy.ready) {\n that.privyMethods = {\n ready: privy.ready,\n walletReady: walletReady,\n authenticated: privy.authenticated,\n wallets,\n login,\n logout,\n connectWallet,\n getAccessToken: privy.getAccessToken,\n identityToken: useIdentityToken.identityToken,\n usePrivy: privy,\n useOAuthTokens: useOAuthTokens,\n useFundWalletSolana: useFundWalletSolana,\n useSendTransactionSolana: useSendTransactionSolana,\n useSolanaWallets: useSolanaWallets,\n signTransaction: signTransaction,\n signMessage: signMessageHook,\n };\n }\n }, [privy.ready, privy.authenticated, wallets, login, logout, walletReady]);\n return null;\n };\n const FinalPrivyComponent = () => {\n if (typeof window === 'undefined') {\n return null;\n }\n return React.createElement(privyImports.PrivyProvider, {\n appId: this.privyConfig.appId,\n config: this.privyConfig.config,\n children: React.createElement(PrivyComponent)\n });\n };\n this.root = ReactDOM.createRoot(this.containerElement);\n this.root.render(React.createElement(FinalPrivyComponent));\n }\n }\n async login() {\n var _a, _b;\n await this.ensureReady();\n // Check if we have a valid session that matches an authenticated wallet\n const session = await SessionManager().getSession();\n if (((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.authenticated) && ((_b = this.privyMethods.wallets) === null || _b === void 0 ? void 0 : _b.length) > 0 && session) {\n // Find the wallet matching the session\n const matchingWallet = this.privyMethods.wallets.find((wallet) => wallet.address === session.address);\n if (matchingWallet) {\n // Valid session with matching wallet, return immediately\n setCurrentUser({ address: matchingWallet.address, provider: this });\n return {\n address: matchingWallet.address,\n provider: this\n };\n }\n // Session exists but doesn't match any connected wallet\n // This can happen after wallet switching - force fresh login\n console.log('Session wallet mismatch detected, forcing fresh login flow');\n }\n // If no valid session or wallet mismatch, force a fresh login flow\n // This ensures the user can select the correct wallet, especially after logout\n if (this.pendingLogin) {\n return new Promise((resolve, reject) => {\n this.pendingLogin.resolve = resolve;\n this.pendingLogin.reject = reject;\n });\n }\n return new Promise((resolve, reject) => {\n this.pendingLogin = { resolve, reject };\n // open Privy modal to let user select/verify wallet\n this.privyMethods.login();\n // safety timeout\n setTimeout(() => {\n if (this.pendingLogin) {\n this.pendingLogin.reject(new Error(\"Login timed out\"));\n this.pendingLogin = null;\n }\n }, 180000);\n });\n }\n async getNativeMethods() {\n var _a;\n await this.ensureReady();\n return (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.usePrivy;\n }\n async logout() {\n await this.ensureReady();\n await this.privyMethods.logout();\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b, _c;\n await this.ensureReady({ waitForWallets: true });\n let session = await SessionManager().getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n let privyWallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n let privyWallet = privyWallets === null || privyWallets === void 0 ? void 0 : privyWallets.find((wallet) => wallet.address === sessionAddress);\n // If wallet not found yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!privyWallets || privyWallets.length === 0 || !privyWallet) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n privyWallet = await this.waitForMatchingWallet(sessionAddress);\n }\n }\n if (!privyWallet) {\n // If there's already a pending transaction, throw an error to prevent overlapping calls\n if (this.pendingTransaction) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // Create a promise to wait for the transaction result\n return new Promise((resolve, reject) => {\n this.pendingTransaction = {\n resolve,\n reject,\n evmTransactionData: _evmTransactionData,\n solTransactionData,\n options\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingTransaction) {\n this.pendingTransaction.reject(new Error(\"Wallet connection timed out\"));\n this.pendingTransaction = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n // Proceed with the transaction using privyWallet\n const wallet = privyWallet;\n if (solTransactionData == null) {\n throw new Error(\"Solana transaction data is required\");\n }\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, \"confirmed\");\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const app_id = solTransactionData.appId;\n if (!app_id) {\n throw new Error(\"App ID is required\");\n }\n const anchorProvider = new anchor.AnchorProvider(connection, wallet.provider, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n let tx;\n let blockhash;\n let lastValidBlockHeight;\n if (solTransactionData.signedTransaction) {\n // Server already set the blockhash and co-signed — do NOT overwrite\n // the blockhash or it will invalidate the server's signature.\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n // Extract the blockhash that was baked into the signed message\n blockhash = tx.message.recentBlockhash;\n const latestBlockhash = await connection.getLatestBlockhash('confirmed');\n lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, new PublicKey(wallet.address), { app_id, documents: solTransactionData.txArgs[0].setDocumentData, delete_paths: solTransactionData.txArgs[0].deletePaths, txData: solTransactionData.txArgs[0].txData }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n blockhash = result.blockhash;\n lastValidBlockHeight = result.lastValidBlockHeight;\n }\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTx = 'recentBlockhash' in tx && !('message' in tx && 'staticAccountKeys' in tx.message);\n if (isLegacyTx) {\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n }\n else {\n tx.message.recentBlockhash = blockhash;\n }\n try {\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Just sign, don't submit - return raw signed bytes (same as original runTransaction)\n const signedTx = await this.signTransactionRaw(tx, privyWallet);\n return {\n signedTransaction: signedTx, // Raw Uint8Array from Privy\n blockNumber: 0,\n gasUsed: \"0\",\n data: \"\"\n };\n }\n // Sign and submit using shared helper\n const { signature, txInfo } = await this.signAndSubmitInternal(tx, privyWallet, rpcUrl, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_c = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _c === void 0 ? void 0 : _c.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n }\n /**\n * Signs a Solana transaction without submitting it.\n *\n * This method handles blockhash automatically if not set - you do NOT need to\n * set recentBlockhash on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign (Transaction or VersionedTransaction)\n * @returns The signed transaction\n */\n async signTransaction(transaction) {\n var _a, _b;\n await this.ensureReady({ waitForWallets: true });\n let privyWallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n let session = await SessionManager().getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n let privyWallet = privyWallets === null || privyWallets === void 0 ? void 0 : privyWallets.find((wallet) => wallet.address === sessionAddress);\n // If there's already a pending sign transaction, throw an error to prevent overlapping calls\n if (this.pendingSignTransaction) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // If wallet not found yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!privyWallets || privyWallets.length === 0 || !privyWallet) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n privyWallet = await this.waitForMatchingWallet(sessionAddress);\n }\n }\n // If still no wallet after waiting, trigger connection and queue the signing\n if (!privyWallet) {\n return new Promise((resolve, reject) => {\n this.pendingSignTransaction = {\n resolve,\n reject,\n transaction\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignTransaction) {\n this.pendingSignTransaction.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignTransaction = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n // Privy requires serialized transaction bytes, which requires a blockhash.\n // If the transaction doesn't have one, get a fresh blockhash and set it.\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = new PublicKey(privyWallet.address);\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n // Sign using raw method, then deserialize for the public API\n const signedTxRaw = await this.signTransactionRaw(transaction, privyWallet);\n return this.deserializeSignedTransaction(signedTxRaw);\n }\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the connected wallet address will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(transaction, feePayer) {\n var _a, _b;\n await this.ensureReady({ waitForWallets: true });\n let privyWallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n let session = await SessionManager().getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n let privyWallet = privyWallets === null || privyWallets === void 0 ? void 0 : privyWallets.find((wallet) => wallet.address === sessionAddress);\n // If there's already a pending signAndSubmitTransaction, throw an error to prevent overlapping calls\n if (this.pendingSignAndSubmitTransaction) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // If wallet not found yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!privyWallets || privyWallets.length === 0 || !privyWallet) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n privyWallet = await this.waitForMatchingWallet(sessionAddress);\n }\n }\n // If still no wallet after waiting, trigger connection and queue the signing\n if (!privyWallet) {\n return new Promise((resolve, reject) => {\n this.pendingSignAndSubmitTransaction = {\n resolve,\n reject,\n transaction,\n feePayer\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignAndSubmitTransaction) {\n this.pendingSignAndSubmitTransaction.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignAndSubmitTransaction = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n // Get RPC URL and create connection\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = feePayer !== null && feePayer !== void 0 ? feePayer : new PublicKey(privyWallet.address);\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n // Use shared sign and submit logic\n const { signature } = await this.signAndSubmitInternal(transaction, privyWallet, rpcUrl, connection);\n return signature;\n }\n // ============ Private Helpers ============\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n /**\n * Internal sign transaction - serializes and signs via Privy\n * Returns the raw result from Privy (Uint8Array)\n * This mirrors exactly what runTransaction was doing\n */\n async signTransactionRaw(transaction, privyWallet) {\n var _a;\n // Serialize the transaction\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n let serializedForSign;\n if (isLegacyTransaction) {\n serializedForSign = transaction.serialize({ requireAllSignatures: false, verifySignatures: false });\n }\n else {\n serializedForSign = transaction.serialize();\n }\n // Sign via Privy - returns { signedTransaction: Uint8Array }\n const result = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.signTransaction({\n transaction: serializedForSign,\n wallet: privyWallet,\n chain: this.chainId\n }));\n // Privy returns { signedTransaction: Uint8Array }, unwrap it\n const signedTx = (result === null || result === void 0 ? void 0 : result.signedTransaction) || result;\n return signedTx;\n }\n /**\n * Deserialize a signed transaction from Uint8Array to Transaction object\n */\n deserializeSignedTransaction(signedTxRaw) {\n // Handle different formats Privy might return\n let signedTx;\n if (signedTxRaw instanceof Uint8Array) {\n signedTx = signedTxRaw;\n }\n else if (Array.isArray(signedTxRaw)) {\n signedTx = new Uint8Array(signedTxRaw);\n }\n else if (signedTxRaw && typeof signedTxRaw === 'object' && 'signedTransaction' in signedTxRaw) {\n // Privy might wrap the result\n signedTx = signedTxRaw.signedTransaction instanceof Uint8Array\n ? signedTxRaw.signedTransaction\n : new Uint8Array(signedTxRaw.signedTransaction);\n }\n else if (Buffer.isBuffer(signedTxRaw)) {\n signedTx = new Uint8Array(signedTxRaw);\n }\n else {\n throw new Error(`Unexpected signed transaction format: ${typeof signedTxRaw}`);\n }\n // Try to deserialize as VersionedTransaction first, fall back to legacy Transaction\n try {\n return VersionedTransaction.deserialize(signedTx);\n }\n catch (_a) {\n return Transaction.from(signedTx);\n }\n }\n /**\n * Internal sign and submit - handles Surfnet vs non-Surfnet logic\n * This is the core submission logic used by both signAndSubmitTransaction and runTransaction\n *\n * For Surfnet: sign with signTransactionRaw, then sendRawTransaction\n * For non-Surfnet: use Privy's signAndSendTransaction (combined operation)\n */\n async signAndSubmitInternal(transaction, privyWallet, rpcUrl, connection) {\n var _a;\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n let signature;\n if (isSurfnet) {\n // For Surfnet: sign with signTransactionRaw, then sendRawTransaction\n const signedTx = await this.signTransactionRaw(transaction, privyWallet);\n signature = await connection.sendRawTransaction(signedTx);\n }\n else {\n // For non-Surfnet: use Privy's combined signAndSendTransaction\n // Serialize the transaction for Privy API\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n let serializedTx;\n if (isLegacyTransaction) {\n serializedTx = transaction.serialize({ requireAllSignatures: false, verifySignatures: false });\n }\n else {\n serializedTx = transaction.serialize();\n }\n const result = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.useSendTransactionSolana.signAndSendTransaction({\n transaction: serializedTx,\n wallet: privyWallet,\n chain: this.chainId\n }));\n // Handle case where signature might be bytes instead of string\n const rawSig = result.signature;\n if (rawSig instanceof Uint8Array || Array.isArray(rawSig)) {\n signature = bs58.encode(rawSig instanceof Uint8Array ? rawSig : new Uint8Array(rawSig));\n }\n else {\n signature = rawSig;\n }\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return { signature, txInfo };\n }\n async signMessage(message) {\n var _a, _b, _c;\n await this.ensureReady({ waitForWallets: true });\n const session = await SessionManager().getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n // If there's already a pending sign message, throw an error to prevent overlapping calls\n if (this.pendingSignMessage) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // If no wallets connected yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets) || this.privyMethods.wallets.length === 0) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n const matchedWallet = await this.waitForMatchingWallet(sessionAddress);\n if (!matchedWallet) {\n return new Promise((resolve, reject) => {\n this.pendingSignMessage = {\n resolve,\n reject,\n message\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignMessage) {\n this.pendingSignMessage.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignMessage = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n }\n else {\n return new Promise((resolve, reject) => {\n this.pendingSignMessage = {\n resolve,\n reject,\n message\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignMessage) {\n this.pendingSignMessage.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignMessage = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n }\n let privyWallet = this.privyMethods.wallets.find((wallet) => wallet.address === sessionAddress);\n if (!privyWallet) {\n // Session address is not a privy wallet, just default to the first wallet\n const accessToken = await this.privyMethods.getAccessToken();\n await this.createSession(this.privyMethods.wallets[0].address, accessToken, this.privyMethods.identityToken);\n setCurrentUser({ address: this.privyMethods.wallets[0].address, provider: this });\n const session = await SessionManager().getSession();\n sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n if (!sessionAddress) {\n throw new Error('No wallet connected or logged in to sign message');\n }\n privyWallet = this.privyMethods.wallets[0];\n }\n // Use the Privy signMessage hook for Solana wallets\n // The message needs to be passed as a Uint8Array\n const messageBytes = getPlatform().textEncode(message);\n const result = await ((_c = this.privyMethods) === null || _c === void 0 ? void 0 : _c.signMessage({\n message: messageBytes,\n wallet: privyWallet,\n }));\n // The signature is returned as a Uint8Array, encode it as base58 (standard Solana format)\n const signatureBytes = (result === null || result === void 0 ? void 0 : result.signature) || result;\n const bs58 = await import('bs58');\n return bs58.default.encode(signatureBytes);\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n else {\n return null;\n }\n }\n // NOTE: accessToken/idToken are accepted for backwards-compat with existing\n // call sites but are no longer used. The session is minted by having the Privy\n // Solana wallet SIGN the canonical SIWS challenge (the same wallet-signature\n // path Phantom/MWA/guest use), so the bounded /session issuer needs no\n // Privy-specific token verification — it arrives as a Solana signature and is\n // recorded server-side as authMethod 'phantom'.\n async createSession(address, _accessToken, _idToken) {\n var _a, _b, _c, _d, _e, _f, _g;\n // Resolve the Privy wallet for this address (fall back to the first wallet).\n const privyWallet = (_c = (_b = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets) === null || _b === void 0 ? void 0 : _b.find((w) => w.address === address)) !== null && _c !== void 0 ? _c : (_e = (_d = this.privyMethods) === null || _d === void 0 ? void 0 : _d.wallets) === null || _e === void 0 ? void 0 : _e[0];\n if (!privyWallet) {\n throw new Error('No Privy Solana wallet available to mint a session.');\n }\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n // Low-level Privy sign hook — signs WITHOUT touching the session (the public\n // signMessage() bootstraps sessions, which would recurse here).\n const signResult = await ((_f = this.privyMethods) === null || _f === void 0 ? void 0 : _f.signMessage({\n message: messageBytes,\n wallet: privyWallet,\n }));\n const signatureBytes = (_g = signResult === null || signResult === void 0 ? void 0 : signResult.signature) !== null && _g !== void 0 ? _g : signResult;\n // base64-encoded detached signature (matches Phantom + guest providers).\n const signature = Buffer.from(signatureBytes).toString('base64');\n const createSessionResult = await createSessionWithSignature(address, message, signature);\n if (createSessionResult) {\n await SessionManager().storeSession(address, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n }\n }\n /**\n * Waits for a wallet matching the session address to appear in the wallets array.\n * This handles the timing gap where Privy's embedded wallet (created for email login users)\n * may not yet be in the useWallets() array when signTransaction is called immediately after login.\n */\n async waitForMatchingWallet(sessionAddress, timeoutMs = 10000) {\n var _a;\n const startTime = Date.now();\n while (Date.now() - startTime < timeoutMs) {\n const wallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n if (wallets && wallets.length > 0) {\n const wallet = wallets.find((w) => w.address === sessionAddress);\n if (wallet)\n return wallet;\n }\n await new Promise(resolve => setTimeout(resolve, 200));\n }\n return null;\n }\n async ensureReady({ waitForWallets = false, timeoutMs = 15000 } = {}) {\n const isReady = () => {\n var _a, _b;\n if (!((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.ready))\n return false;\n if (waitForWallets && !((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.walletReady))\n return false;\n return true;\n };\n if (isReady())\n return;\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n const check = () => {\n if (isReady()) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Login provider failed to initialize. This can happen in incognito mode or when third-party cookies are blocked. Try using a regular browser window.'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n}\nPrivyWalletProvider.instance = null;\n"],"names":["SOLANA_DEVNET_RPC_URL","SOLANA_MAINNET_RPC_URL","SessionManager","setCurrentUser","React","ReactDOM","Connection","convertRemainingAccounts","anchor","VersionedTransaction","Buffer","buildSetDocumentsTransaction","PublicKey","Transaction","bs58","confirmAndCheckTransaction","getPlatform","genAuthNonce","genSolanaMessage","createSessionWithSignature"],"mappings":"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"}