@n1xyz/wallet-widget 0.0.28 → 0.0.30
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.
- package/README.md +89 -11
- package/dist/Logic/sessionManager.js +8 -8
- package/dist/Logic/sessionManager.js.map +1 -1
- package/dist/Logic/transactionManager.d.ts +0 -22
- package/dist/Logic/transactionManager.js +0 -189
- package/dist/Logic/transactionManager.js.map +1 -1
- package/dist/Logic/utils.d.ts +3 -7
- package/dist/Logic/utils.js +3 -186
- package/dist/Logic/utils.js.map +1 -1
- package/dist/Modal/LoadingFallback.js +1 -1
- package/dist/Modal/LoadingFallback.js.map +1 -1
- package/dist/Modal/N1WalletModal.d.ts +1 -1
- package/dist/Modal/N1WalletModal.js +50 -205
- package/dist/Modal/N1WalletModal.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -1
- package/dist/Modal/NordFlow/NordFlow.js +44 -17
- package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
- package/dist/Modal/NordFlow/components/ChainButton.d.ts +5 -2
- package/dist/Modal/NordFlow/components/ChainButton.js +16 -13
- package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +2 -1
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +11 -9
- package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/Header.d.ts +3 -1
- package/dist/Modal/NordFlow/components/Header.js +38 -4
- package/dist/Modal/NordFlow/components/Header.js.map +1 -1
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
- package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
- package/dist/Modal/NordFlow/components/MoreButton.d.ts +1 -1
- package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
- package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/TransactionTable.d.ts +1 -1
- package/dist/Modal/NordFlow/components/TransactionTable.js +11 -11
- package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +3 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js +14 -3
- package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
- package/dist/Modal/NordFlow/components/index.d.ts +0 -1
- package/dist/Modal/NordFlow/components/index.js +0 -1
- package/dist/Modal/NordFlow/components/index.js.map +1 -1
- package/dist/Modal/NordFlow/constants.js +12 -48
- package/dist/Modal/NordFlow/constants.js.map +1 -1
- package/dist/Modal/NordFlow/context/DepositContext.js +112 -41
- package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -1
- package/dist/Modal/NordFlow/context/FlowContext.d.ts +1 -0
- package/dist/Modal/NordFlow/context/FlowContext.js +99 -6
- package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -1
- package/dist/Modal/NordFlow/context/WalletConnectContext.js +76 -20
- package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -1
- package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useTestnetFaucet.d.ts +18 -0
- package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js +181 -0
- package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js.map +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -1
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +10 -15
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js +115 -0
- package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/03-AmountInputScreen.d.ts +4 -0
- package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js +298 -0
- package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js +29 -0
- package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js +131 -0
- package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js +37 -0
- package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.d.ts +5 -0
- package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js +39 -0
- package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/08-ErrorScreen.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/08-ErrorScreen.js +68 -0
- package/dist/Modal/NordFlow/screens/08-ErrorScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/index.d.ts +5 -9
- package/dist/Modal/NordFlow/screens/index.js +5 -9
- package/dist/Modal/NordFlow/screens/index.js.map +1 -1
- package/dist/Modal/NordFlow/types.d.ts +13 -3
- package/dist/Modal/NordFlow/types.js +4 -3
- package/dist/Modal/NordFlow/types.js.map +1 -1
- package/dist/Modal/NordFlow/utils/depositStorage.d.ts +4 -0
- package/dist/Modal/NordFlow/utils/depositStorage.js +48 -0
- package/dist/Modal/NordFlow/utils/depositStorage.js.map +1 -0
- package/dist/Modal/NordFlow/utils/nordUtils.d.ts +1 -1
- package/dist/Modal/NordFlow/utils/nordUtils.js +1 -1
- package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -1
- package/dist/Provider/LazyWalletProvider.d.ts +1 -1
- package/dist/Provider/LazyWalletProvider.js +38 -38
- package/dist/Provider/LazyWalletProvider.js.map +1 -1
- package/dist/Provider/N1WalletProvider.d.ts +2 -1
- package/dist/Provider/N1WalletProvider.js +85 -82
- package/dist/Provider/N1WalletProvider.js.map +1 -1
- package/dist/Provider/ShadowRootWrapper.d.ts +1 -1
- package/dist/Provider/WalletErrorBoundary.d.ts +9 -2
- package/dist/Provider/WalletErrorBoundary.js +19 -1
- package/dist/Provider/WalletErrorBoundary.js.map +1 -1
- package/dist/Provider/hooks/useNordUserInitialization.js +87 -35
- package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/Provider/icons/CoinbaseWalletIcon.d.ts +1 -1
- package/dist/Provider/icons/ConnectionDotsSVG.d.ts +1 -1
- package/dist/Provider/icons/MetamaskIcon.d.ts +1 -1
- package/dist/Provider/icons/PhantomIcon.d.ts +1 -1
- package/dist/Provider/icons/UserIcon.d.ts +1 -1
- package/dist/Provider/icons/WalletConnectIcon.d.ts +1 -1
- package/dist/Provider/types.d.ts +18 -16
- package/dist/Provider/types.js +8 -2
- package/dist/Provider/types.js.map +1 -1
- package/dist/WidgetButton/N1ConnectButton.d.ts +1 -1
- package/dist/WidgetButton/N1ConnectButton.js +29 -10
- package/dist/WidgetButton/N1ConnectButton.js.map +1 -1
- package/dist/animations/N1Loader.d.ts +11 -0
- package/dist/animations/N1Loader.js +42 -0
- package/dist/animations/N1Loader.js.map +1 -0
- package/dist/animations/N1Loader.json +1 -0
- package/dist/animations/Processing.d.ts +11 -0
- package/dist/animations/Processing.js +42 -0
- package/dist/animations/Processing.js.map +1 -0
- package/dist/animations/Processing.json +1 -0
- package/dist/components/Logo.d.ts +2 -1
- package/dist/components/Logo.js +5 -2
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/QRCodeLoader.d.ts +1 -1
- package/dist/components/QRCodeLoader.js +1 -1
- package/dist/components/QRCodeLoader.js.map +1 -1
- package/dist/components/logos/EVMChainsGroup.js +1 -1
- package/dist/components/logos/EVMChainsGroup.js.map +1 -1
- package/dist/components/logos/MoreChainsGroup.js +1 -1
- package/dist/components/logos/MoreChainsGroup.js.map +1 -1
- package/dist/components/logos/index.d.ts +0 -2
- package/dist/components/logos/index.js +0 -2
- package/dist/components/logos/index.js.map +1 -1
- package/dist/config/solana.d.ts +3 -15
- package/dist/config/solana.js +6 -29
- package/dist/config/solana.js.map +1 -1
- package/dist/embedded-main-css.d.ts +1 -1
- package/dist/embedded-main-css.js +1 -1
- package/dist/embedded-main-css.js.map +1 -1
- package/dist/fonts/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
- package/dist/fonts/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/main.css +2 -2
- package/dist/polyfills/windowEthereumGuard.d.ts +6 -0
- package/dist/polyfills/windowEthereumGuard.js +28 -0
- package/dist/polyfills/windowEthereumGuard.js.map +1 -0
- package/dist/utils/dynamicNord.d.ts +2 -0
- package/dist/utils/dynamicNord.js +59 -0
- package/dist/utils/dynamicNord.js.map +1 -0
- package/dist/utils/ed25519.d.ts +8 -0
- package/dist/utils/ed25519.js +87 -0
- package/dist/utils/ed25519.js.map +1 -0
- package/package.json +26 -11
- package/dist/utils/dynamicImports.d.ts +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/Provider/LazyWalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from './hooks';\nimport { N1SessionMode } from './types';\nimport { logger } from '../utils/logger';\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n } = useN1WalletInternalContext();\n\n const {\n address\n } = useN1WalletContext();\n\n const [oldAddress, setOldAddress] = useState<string>('');\n\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (setShowAuthFlow !== showAuthFlowRef.current) {\n showAuthFlowRef.current = setShowAuthFlow;\n }\n }, [setShowAuthFlow]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n \n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = (darkMode: boolean) => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: darkMode ? 'dark' : 'light',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n const { darkMode, sessionMode } = useN1WalletInternalContext();\n\n // Use a ref to track the previous session mode\n const prevSessionModeRef = useRef<N1SessionMode | null>(null);\n\n useEffect(() => {\n // Skip if the session mode hasn't changed\n if (sessionMode === prevSessionModeRef.current) {\n return;\n }\n\n prevSessionModeRef.current = sessionMode;\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n\n if (sessionMode === N1SessionMode.Nord) {\n // Only use Solana wallet connectors for Nord mode\n setWalletConnectors([SolanaWalletConnectors]);\n } else {\n // Use all wallet connectors for NTS mode\n setWalletConnectors([\n SolanaWalletConnectors,\n ]);\n }\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, [sessionMode]);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(darkMode),\n walletConnectors,\n }),\n [darkMode, walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme={darkMode ? 'dark' : 'light'}>\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/Provider/LazyWalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from './hooks';\nimport { logger } from '../utils/logger';\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n const primaryWalletStateRef = useRef<any>(null);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n setStartClosingLogin,\n } = useN1WalletInternalContext();\n\n const {\n setShowLogin,\n } = useN1WalletContext();\n\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (!setShowAuthFlow) {\n showAuthFlowRef.current = null;\n return;\n }\n\n const proxiedSetShowAuthFlow = (show: boolean) => {\n setShowAuthFlow(show);\n\n if (!show && !primaryWalletStateRef.current) {\n logger.debug(\n 'Dynamic auth flow closed before wallet connection; closing modal'\n );\n setShowLogin(false);\n setStartClosingLogin(true);\n }\n };\n\n showAuthFlowRef.current = proxiedSetShowAuthFlow;\n\n return () => {\n if (showAuthFlowRef.current === proxiedSetShowAuthFlow) {\n showAuthFlowRef.current = null;\n }\n };\n }, [setShowAuthFlow, setShowLogin, setStartClosingLogin]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n \n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n primaryWalletStateRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = () => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: 'dark',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [DynamicWidgetComponent, setDynamicWidgetComponent] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n\n useEffect(() => {\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider, DynamicWidget },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n setDynamicWidgetComponent(() => DynamicWidget);\n setWalletConnectors([SolanaWalletConnectors]);\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, []);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(),\n walletConnectors,\n }),\n [walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme=\"dark\">\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n {DynamicWidgetComponent ? <DynamicWidgetComponent /> : null}\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import '../polyfills/windowEthereumGuard';
|
|
1
2
|
import { N1WalletProviderProps } from './types';
|
|
2
|
-
export declare function N1WalletProvider({ children, providedSessionMode, appId,
|
|
3
|
+
export declare function N1WalletProvider({ children, providedSessionMode, appId, onError, nord, colorOverrides, skipFinalScreen, }: N1WalletProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -47,7 +47,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
50
|
-
import
|
|
50
|
+
import '../polyfills/windowEthereumGuard';
|
|
51
|
+
import React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';
|
|
51
52
|
import root from 'react-shadow';
|
|
52
53
|
import { N1WalletModal } from '../Modal/N1WalletModal';
|
|
53
54
|
import { NordProvider } from '../Modal/NordFlow/context';
|
|
@@ -71,83 +72,41 @@ function NordWrapper(_a) {
|
|
|
71
72
|
}
|
|
72
73
|
export function N1WalletProvider(_a) {
|
|
73
74
|
var _this = this;
|
|
74
|
-
var children = _a.children, providedSessionMode = _a.providedSessionMode, appId = _a.appId,
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
var
|
|
78
|
-
var
|
|
79
|
-
var
|
|
80
|
-
var
|
|
81
|
-
var
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
var _p = useState(null), nordUser = _p[0], setNordUser = _p[1];
|
|
75
|
+
var children = _a.children, providedSessionMode = _a.providedSessionMode, appId = _a.appId, onError = _a.onError, nord = _a.nord, colorOverrides = _a.colorOverrides, skipFinalScreen = _a.skipFinalScreen;
|
|
76
|
+
var _b = useState(false), isConnected = _b[0], setIsConnected = _b[1];
|
|
77
|
+
var _c = useState(null), sessionPubKey = _c[0], setSessionPubKey = _c[1];
|
|
78
|
+
var _d = useState(null), walletPubKey = _d[0], setWalletPubKey = _d[1];
|
|
79
|
+
var _e = useState(null), userChain = _e[0], setUserChain = _e[1];
|
|
80
|
+
var _f = useState(''), username = _f[0], setUsername = _f[1];
|
|
81
|
+
var _g = useState(null), signMessageWithSessionKey = _g[0], setSignMessageWithSessionKey = _g[1];
|
|
82
|
+
var _h = useState(null), signMessageWithWalletKey = _h[0], setSignMessageWithWalletKey = _h[1];
|
|
83
|
+
var _j = useState(null), signTransactionWithWalletKey = _j[0], setSignTransactionWithWalletKey = _j[1];
|
|
84
|
+
var _k = useState(false), loading = _k[0], setLoading = _k[1];
|
|
85
|
+
var _l = useState(N1ModalViewMode.Automatic), viewMode = _l[0], setViewMode = _l[1];
|
|
86
|
+
var _m = useState(null), nordUser = _m[0], setNordUser = _m[1];
|
|
87
87
|
// dynamic
|
|
88
|
-
var
|
|
89
|
-
var
|
|
90
|
-
var
|
|
91
|
-
var
|
|
92
|
-
var
|
|
93
|
-
var
|
|
94
|
-
var
|
|
95
|
-
var
|
|
88
|
+
var _o = useState([]), balances = _o[0], setBalances = _o[1];
|
|
89
|
+
var _p = useState(''), chain = _p[0], setChain = _p[1];
|
|
90
|
+
var _q = useState(null), dynamicSdkHasLoaded = _q[0], setDynamicSdkHasLoaded = _q[1];
|
|
91
|
+
var _r = useState(false), showLogin = _r[0], setShowLoginState = _r[1];
|
|
92
|
+
var _s = useState(false), startClosingLogin = _s[0], setStartClosingLogin = _s[1];
|
|
93
|
+
var _t = useState(null), showDynamicWidget = _t[0], setShowDynamicWidget = _t[1];
|
|
94
|
+
var _u = useState(0), depositFlowRequestId = _u[0], setDepositFlowRequestId = _u[1];
|
|
95
|
+
var nextOpenAllowedAtRef = useRef(0);
|
|
96
96
|
// dynamic
|
|
97
|
-
var
|
|
98
|
-
var
|
|
99
|
-
var
|
|
100
|
-
var
|
|
101
|
-
// Combine SDK loading and initialization into a single effect
|
|
97
|
+
var _v = useState(''), address = _v[0], setAddress = _v[1];
|
|
98
|
+
var _w = useState(null), dynamicHandleLogOut = _w[0], setDynamicHandleLogOut = _w[1];
|
|
99
|
+
var _x = useState(null), dynamicWallet = _x[0], setDynamicWallet = _x[1];
|
|
100
|
+
var sessionMode = N1SessionMode.Nord;
|
|
102
101
|
useEffect(function () {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
setSessionMode(providedSessionMode);
|
|
106
|
-
if (providedSessionMode === N1SessionMode.Nord) {
|
|
107
|
-
return;
|
|
102
|
+
if (providedSessionMode !== N1SessionMode.Nord) {
|
|
103
|
+
logger.warn("Only Nord session mode is supported. Received ".concat(providedSessionMode, ", defaulting to Nord."));
|
|
108
104
|
}
|
|
109
|
-
|
|
110
|
-
var loadSDK = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
111
|
-
var NTSInterface, error_1;
|
|
112
|
-
return __generator(this, function (_a) {
|
|
113
|
-
switch (_a.label) {
|
|
114
|
-
case 0:
|
|
115
|
-
// eslint-disable-next-line no-console
|
|
116
|
-
logger.debug('Loading NTS SDK');
|
|
117
|
-
_a.label = 1;
|
|
118
|
-
case 1:
|
|
119
|
-
_a.trys.push([1, 3, , 4]);
|
|
120
|
-
return [4 /*yield*/, import('@n1xyz/nts-sdk')];
|
|
121
|
-
case 2:
|
|
122
|
-
NTSInterface = (_a.sent()).NTSInterface;
|
|
123
|
-
if (mounted) {
|
|
124
|
-
// eslint-disable-next-line no-console
|
|
125
|
-
logger.debug('NTS SDK loaded successfully');
|
|
126
|
-
setNtsInterface(new NTSInterface(process.env.NTS_URL));
|
|
127
|
-
}
|
|
128
|
-
return [3 /*break*/, 4];
|
|
129
|
-
case 3:
|
|
130
|
-
error_1 = _a.sent();
|
|
131
|
-
if (mounted) {
|
|
132
|
-
// eslint-disable-next-line no-console
|
|
133
|
-
logger.error('Error loading NTS SDK:', error_1);
|
|
134
|
-
}
|
|
135
|
-
return [3 /*break*/, 4];
|
|
136
|
-
case 4: return [2 /*return*/];
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}); };
|
|
140
|
-
loadSDK();
|
|
141
|
-
return function () {
|
|
142
|
-
mounted = false;
|
|
143
|
-
};
|
|
144
|
-
}, [providedSessionMode, onError]);
|
|
145
|
-
// Separate effect to handle loading state based on both SDKs
|
|
105
|
+
}, [providedSessionMode]);
|
|
146
106
|
useEffect(function () {
|
|
147
|
-
var isDynamicReady = dynamicSdkHasLoaded
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);
|
|
107
|
+
var isDynamicReady = Boolean(dynamicSdkHasLoaded);
|
|
108
|
+
setLoading(!isDynamicReady);
|
|
109
|
+
}, [dynamicSdkHasLoaded, setLoading]);
|
|
151
110
|
var handleError = useCallback(function (error) {
|
|
152
111
|
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
153
112
|
}, [onError]);
|
|
@@ -170,6 +129,53 @@ export function N1WalletProvider(_a) {
|
|
|
170
129
|
}
|
|
171
130
|
});
|
|
172
131
|
}
|
|
132
|
+
var blockModalReopen = useCallback(function (duration) {
|
|
133
|
+
if (duration === void 0) { duration = 600; }
|
|
134
|
+
var unblockAt = Date.now() + duration;
|
|
135
|
+
logger.debug('blockModalReopen invoked', { duration: duration, unblockAt: unblockAt });
|
|
136
|
+
nextOpenAllowedAtRef.current = Date.now() + duration;
|
|
137
|
+
}, []);
|
|
138
|
+
var setShowLogin = useCallback(function (next) {
|
|
139
|
+
setShowLoginState(function (prev) {
|
|
140
|
+
logger.debug('setShowLogin invoked', {
|
|
141
|
+
next: next,
|
|
142
|
+
prev: prev,
|
|
143
|
+
now: Date.now(),
|
|
144
|
+
nextOpenAllowed: nextOpenAllowedAtRef.current,
|
|
145
|
+
});
|
|
146
|
+
if (next === prev) {
|
|
147
|
+
return prev;
|
|
148
|
+
}
|
|
149
|
+
if (next) {
|
|
150
|
+
logger.debug('setShowLogin opening request stack trace', {
|
|
151
|
+
stack: new Error('setShowLogin stack').stack,
|
|
152
|
+
});
|
|
153
|
+
if (Date.now() < nextOpenAllowedAtRef.current) {
|
|
154
|
+
logger.debug('setShowLogin blocked by cooldown', {
|
|
155
|
+
next: next,
|
|
156
|
+
prev: prev,
|
|
157
|
+
});
|
|
158
|
+
return prev;
|
|
159
|
+
}
|
|
160
|
+
logger.debug('setShowLogin opening modal');
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
logger.debug('setShowLogin closing modal');
|
|
164
|
+
blockModalReopen();
|
|
165
|
+
return false;
|
|
166
|
+
});
|
|
167
|
+
}, [blockModalReopen]);
|
|
168
|
+
var startDepositFlow = useCallback(function () {
|
|
169
|
+
if (!nordUser || !nordUser.sessionId) {
|
|
170
|
+
logger.warn('startDepositFlow called without an authenticated Nord session; falling back to regular flow');
|
|
171
|
+
setShowLogin(true);
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
setStartClosingLogin(false);
|
|
175
|
+
setDepositFlowRequestId(function (prev) { return prev + 1; });
|
|
176
|
+
setShowLogin(true);
|
|
177
|
+
return true;
|
|
178
|
+
}, [nordUser, setShowLogin, setStartClosingLogin]);
|
|
173
179
|
// Create the wallet context value
|
|
174
180
|
var walletContextValue = {
|
|
175
181
|
address: address,
|
|
@@ -177,10 +183,11 @@ export function N1WalletProvider(_a) {
|
|
|
177
183
|
balances: balances,
|
|
178
184
|
chain: chain,
|
|
179
185
|
isConnected: isConnected,
|
|
180
|
-
ntsInterface: ntsInterface,
|
|
181
186
|
sessionMode: sessionMode,
|
|
182
187
|
sessionPubKey: sessionPubKey,
|
|
183
188
|
setShowLogin: setShowLogin,
|
|
189
|
+
startDepositFlow: startDepositFlow,
|
|
190
|
+
setViewMode: setViewMode,
|
|
184
191
|
showLogin: showLogin,
|
|
185
192
|
signMessageWithSessionKey: signMessageWithSessionKey,
|
|
186
193
|
signMessageWithWalletKey: signMessageWithWalletKey,
|
|
@@ -190,7 +197,6 @@ export function N1WalletProvider(_a) {
|
|
|
190
197
|
viewMode: viewMode,
|
|
191
198
|
walletPubKey: walletPubKey,
|
|
192
199
|
throwTestError: throwTestError,
|
|
193
|
-
faucetUrl: faucetUrl,
|
|
194
200
|
nord: nord,
|
|
195
201
|
nordUser: nordUser,
|
|
196
202
|
};
|
|
@@ -209,10 +215,8 @@ export function N1WalletProvider(_a) {
|
|
|
209
215
|
setDynamicWallet: setDynamicWallet,
|
|
210
216
|
setIsConnected: setIsConnected,
|
|
211
217
|
setLoading: setLoading,
|
|
212
|
-
|
|
213
|
-
setSessionMode: setSessionMode,
|
|
218
|
+
blockModalReopen: blockModalReopen,
|
|
214
219
|
setSessionPubKey: setSessionPubKey,
|
|
215
|
-
setShowSidebar: setShowSidebar,
|
|
216
220
|
setSignMessageWithSessionKey: setSignMessageWithSessionKey,
|
|
217
221
|
setSignMessageWithWalletKey: setSignMessageWithWalletKey,
|
|
218
222
|
setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
|
|
@@ -221,15 +225,14 @@ export function N1WalletProvider(_a) {
|
|
|
221
225
|
setUserChain: setUserChain,
|
|
222
226
|
setViewMode: setViewMode,
|
|
223
227
|
setWalletPubKey: setWalletPubKey,
|
|
224
|
-
showSidebar: showSidebar,
|
|
225
228
|
startClosingLogin: startClosingLogin,
|
|
226
229
|
showDynamicWidget: showDynamicWidget,
|
|
227
230
|
setShowDynamicWidget: setShowDynamicWidget,
|
|
228
|
-
darkMode: darkMode,
|
|
229
231
|
sessionMode: sessionMode,
|
|
230
|
-
faucetUrl: faucetUrl,
|
|
231
232
|
setNordUser: setNordUser,
|
|
233
|
+
depositFlowRequestId: depositFlowRequestId,
|
|
232
234
|
};
|
|
233
|
-
|
|
235
|
+
var ModalContent = function () { return (_jsxs(root.div, { children: [_jsx("style", { children: injectedCss }), _jsx(N1WalletModal, {})] })); };
|
|
236
|
+
return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(N1WalletContext.Provider, { value: walletContextValue, children: _jsx(N1InternalWalletContext.Provider, { value: __assign(__assign({}, internalWalletContextValue), { skipFinalScreen: skipFinalScreen }), children: _jsx(NordWrapper, { children: _jsx(NordProvider, { children: _jsxs(_Fragment, { children: [children, _jsx(Suspense, { fallback: _jsx(ModalContent, {}), children: _jsx(LazyWalletProvider, { children: _jsx(ModalContent, {}) }) })] }) }) }) }) }) }));
|
|
234
237
|
}
|
|
235
238
|
//# sourceMappingURL=N1WalletProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { Suspense, useCallback, useEffect, useState } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { NordProvider } from '../Modal/NordFlow/context';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport { useNordUserInitialization } from './hooks/useNordUserInitialization';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nimport mainCss from '../embedded-main-css';\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n darkMode = true,\n onError,\n faucetUrl,\n nord,\n colorOverrides,\n skipFinalScreen,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [ntsInterface, setNtsInterface] = useState<any>(null);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Connect\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n const [sessionMode, setSessionMode] = useState<N1SessionMode | null>(null);\n\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showSidebar, setShowSidebar] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [oldAddress, setOldAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n\n // Combine SDK loading and initialization into a single effect\n useEffect(() => {\n let mounted = true;\n\n // Set the session mode from props\n setSessionMode(providedSessionMode);\n if (providedSessionMode === N1SessionMode.Nord) {\n return\n }\n\n // Load the appropriate SDK\n const loadSDK = async () => {\n // eslint-disable-next-line no-console\n logger.debug('Loading NTS SDK');\n\n try {\n const { NTSInterface } = await import('@n1xyz/nts-sdk');\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.debug('NTS SDK loaded successfully');\n setNtsInterface(new NTSInterface(process.env.NTS_URL!));\n }\n } catch (error) {\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.error('Error loading NTS SDK:', error);\n }\n }\n };\n\n loadSDK();\n\n return () => {\n mounted = false;\n };\n }, [providedSessionMode, onError]);\n\n // Separate effect to handle loading state based on both SDKs\n useEffect(() => {\n const isDynamicReady =\n dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;\n const isNtsReady =\n ntsInterface || providedSessionMode === N1SessionMode.Nord;\n\n setLoading(!isDynamicReady || !isNtsReady);\n }, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Prepare CSS with color overrides if provided\n let injectedCss = mainCss;\n if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {\n // Apply all color overrides in order\n colorOverrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Replace all instances, case-insensitive\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n injectedCss = injectedCss.replace(regex, replacement);\n }\n });\n }\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n ntsInterface,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n faucetUrl,\n nord,\n nordUser,\n };\n\n // Create the internal wallet context value\n const internalWalletContextValue = {\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n setNtsInterface,\n setSessionMode,\n setSessionPubKey,\n setShowSidebar,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n showSidebar,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n darkMode,\n sessionMode,\n faucetUrl,\n setNordUser,\n };\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n ...internalWalletContextValue,\n skipFinalScreen, // make available to modal context tree\n }}\n >\n {sessionMode === N1SessionMode.Nord ? (\n <NordWrapper>\n <NordProvider>\n <>\n {children}\n <root.div>\n <style>{injectedCss}</style>\n <N1WalletModal />\n </root.div>\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n </NordProvider>\n </NordWrapper>\n ) : (\n <>\n {children}\n <root.div>\n <style>{injectedCss}</style>\n <N1WalletModal />\n </root.div>\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n )}\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport '../polyfills/windowEthereumGuard';\n\nimport React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { NordProvider } from '../Modal/NordFlow/context';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport { useNordUserInitialization } from './hooks/useNordUserInitialization';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nimport mainCss from '../embedded-main-css';\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n onError,\n nord,\n colorOverrides,\n skipFinalScreen,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Automatic\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n\n const [showLogin, setShowLoginState] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n const [depositFlowRequestId, setDepositFlowRequestId] = useState(0);\n const nextOpenAllowedAtRef = useRef(0);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n const sessionMode = N1SessionMode.Nord;\n\n useEffect(() => {\n if (providedSessionMode !== N1SessionMode.Nord) {\n logger.warn(\n `Only Nord session mode is supported. Received ${providedSessionMode}, defaulting to Nord.`\n );\n }\n }, [providedSessionMode]);\n\n useEffect(() => {\n const isDynamicReady = Boolean(dynamicSdkHasLoaded);\n setLoading(!isDynamicReady);\n }, [dynamicSdkHasLoaded, setLoading]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Prepare CSS with color overrides if provided\n let injectedCss = mainCss;\n if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {\n // Apply all color overrides in order\n colorOverrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Replace all instances, case-insensitive\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n injectedCss = injectedCss.replace(regex, replacement);\n }\n });\n }\n\n const blockModalReopen = useCallback((duration: number = 600) => {\n const unblockAt = Date.now() + duration;\n logger.debug('blockModalReopen invoked', { duration, unblockAt });\n nextOpenAllowedAtRef.current = Date.now() + duration;\n }, []);\n\n const setShowLogin = useCallback(\n (next: boolean) => {\n setShowLoginState((prev) => {\n logger.debug('setShowLogin invoked', {\n next,\n prev,\n now: Date.now(),\n nextOpenAllowed: nextOpenAllowedAtRef.current,\n });\n\n if (next === prev) {\n return prev;\n }\n\n if (next) {\n logger.debug('setShowLogin opening request stack trace', {\n stack: new Error('setShowLogin stack').stack,\n });\n if (Date.now() < nextOpenAllowedAtRef.current) {\n logger.debug('setShowLogin blocked by cooldown', {\n next,\n prev,\n });\n return prev;\n }\n logger.debug('setShowLogin opening modal');\n return true;\n }\n\n logger.debug('setShowLogin closing modal');\n blockModalReopen();\n return false;\n });\n },\n [blockModalReopen]\n );\n\n const startDepositFlow = useCallback(() => {\n if (!nordUser || !nordUser.sessionId) {\n logger.warn(\n 'startDepositFlow called without an authenticated Nord session; falling back to regular flow'\n );\n setShowLogin(true);\n return false;\n }\n\n setStartClosingLogin(false);\n setDepositFlowRequestId((prev) => prev + 1);\n setShowLogin(true);\n return true;\n }, [nordUser, setShowLogin, setStartClosingLogin]);\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n startDepositFlow,\n setViewMode,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n nord,\n nordUser,\n };\n\n // Create the internal wallet context value\n const internalWalletContextValue = {\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n blockModalReopen,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n sessionMode,\n setNordUser,\n depositFlowRequestId,\n };\n\n const ModalContent = () => (\n <root.div>\n <style>{injectedCss}</style>\n <N1WalletModal />\n </root.div>\n );\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n ...internalWalletContextValue,\n skipFinalScreen, // make available to modal context tree\n }}\n >\n <NordWrapper>\n <NordProvider>\n <>\n {children}\n <Suspense fallback={<ModalContent />}>\n <LazyWalletProvider>\n <ModalContent />\n </LazyWalletProvider>\n </Suspense>\n </>\n </NordProvider>\n </NordWrapper>\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
|
|
@@ -3,5 +3,5 @@ interface ShadowRootWrapperProps {
|
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
injectedCss: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps): JSX.Element;
|
|
6
|
+
export declare function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export {};
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WalletError } from '../errors/types';
|
|
3
|
-
|
|
3
|
+
type WalletErrorBoundaryProps = {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
onError: (error: WalletError) => void;
|
|
6
|
-
}
|
|
6
|
+
};
|
|
7
|
+
type WalletErrorBoundaryState = {
|
|
8
|
+
hasError: boolean;
|
|
9
|
+
};
|
|
10
|
+
declare class WalletErrorBoundary extends React.Component<WalletErrorBoundaryProps, WalletErrorBoundaryState> {
|
|
11
|
+
state: WalletErrorBoundaryState;
|
|
12
|
+
static getDerivedStateFromError(): WalletErrorBoundaryState;
|
|
7
13
|
componentDidCatch(error: Error): void;
|
|
14
|
+
componentDidUpdate(prevProps: WalletErrorBoundaryProps, prevState: WalletErrorBoundaryState): void;
|
|
8
15
|
render(): React.ReactNode;
|
|
9
16
|
}
|
|
10
17
|
export default WalletErrorBoundary;
|
|
@@ -19,9 +19,17 @@ import { WalletError, WalletErrorCode } from '../errors/types';
|
|
|
19
19
|
var WalletErrorBoundary = /** @class */ (function (_super) {
|
|
20
20
|
__extends(WalletErrorBoundary, _super);
|
|
21
21
|
function WalletErrorBoundary() {
|
|
22
|
-
|
|
22
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
23
|
+
_this.state = {
|
|
24
|
+
hasError: false,
|
|
25
|
+
};
|
|
26
|
+
return _this;
|
|
23
27
|
}
|
|
28
|
+
WalletErrorBoundary.getDerivedStateFromError = function () {
|
|
29
|
+
return { hasError: true };
|
|
30
|
+
};
|
|
24
31
|
WalletErrorBoundary.prototype.componentDidCatch = function (error) {
|
|
32
|
+
console.error('[N1 Wallet] Unhandled error captured by WalletErrorBoundary:', error);
|
|
25
33
|
if (error instanceof WalletError) {
|
|
26
34
|
this.props.onError(error);
|
|
27
35
|
}
|
|
@@ -30,7 +38,17 @@ var WalletErrorBoundary = /** @class */ (function (_super) {
|
|
|
30
38
|
this.props.onError(new WalletError(WalletErrorCode.UNKNOWN, error.message || 'An unexpected error occurred', { originalError: error }));
|
|
31
39
|
}
|
|
32
40
|
};
|
|
41
|
+
WalletErrorBoundary.prototype.componentDidUpdate = function (prevProps, prevState) {
|
|
42
|
+
if (prevState.hasError && this.state.hasError && prevProps.children !== this.props.children) {
|
|
43
|
+
// reset error state when children change after an error
|
|
44
|
+
// eslint-disable-next-line react/no-did-update-set-state
|
|
45
|
+
this.setState({ hasError: false });
|
|
46
|
+
}
|
|
47
|
+
};
|
|
33
48
|
WalletErrorBoundary.prototype.render = function () {
|
|
49
|
+
if (this.state.hasError) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
34
52
|
return this.props.children;
|
|
35
53
|
};
|
|
36
54
|
return WalletErrorBoundary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../src/Provider/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../src/Provider/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAW/D,uCAAuC;AACvC;IAAkC,uCAGjC;IAHD;;QAIE,WAAK,GAA6B;YAChC,QAAQ,EAAE,KAAK;SAChB,CAAC;;IAuCJ,CAAC;IArCQ,4CAAwB,GAA/B;QACE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,+CAAiB,GAAjB,UAAkB,KAAY;QAC5B,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,IAAI,WAAW,CACb,eAAe,CAAC,OAAO,EACvB,KAAK,CAAC,OAAO,IAAI,8BAA8B,EAC/C,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gDAAkB,GAAlB,UACE,SAAmC,EACnC,SAAmC;QAEnC,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5F,wDAAwD;YACxD,yDAAyD;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,oCAAM,GAAN;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,AA7CD,CAAkC,KAAK,CAAC,SAAS,GA6ChD;AAED,eAAe,mBAAmB,CAAC","sourcesContent":["import React from 'react';\nimport { WalletError, WalletErrorCode } from '../errors/types';\n\ntype WalletErrorBoundaryProps = {\n children: React.ReactNode;\n onError: (error: WalletError) => void;\n};\n\ntype WalletErrorBoundaryState = {\n hasError: boolean;\n};\n\n// Error boundary to catch WalletErrors\nclass WalletErrorBoundary extends React.Component<\n WalletErrorBoundaryProps,\n WalletErrorBoundaryState\n> {\n state: WalletErrorBoundaryState = {\n hasError: false,\n };\n\n static getDerivedStateFromError(): WalletErrorBoundaryState {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error) {\n console.error('[N1 Wallet] Unhandled error captured by WalletErrorBoundary:', error);\n if (error instanceof WalletError) {\n this.props.onError(error);\n } else {\n // Convert unknown errors to WalletError\n this.props.onError(\n new WalletError(\n WalletErrorCode.UNKNOWN,\n error.message || 'An unexpected error occurred',\n { originalError: error }\n )\n );\n }\n }\n\n componentDidUpdate(\n prevProps: WalletErrorBoundaryProps,\n prevState: WalletErrorBoundaryState\n ) {\n if (prevState.hasError && this.state.hasError && prevProps.children !== this.props.children) {\n // reset error state when children change after an error\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n return null;\n }\n return this.props.children;\n }\n}\n\nexport default WalletErrorBoundary;\n"]}
|