@n1xyz/wallet-widget 0.0.34 → 0.0.35-alpha.1
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/dist/bridge-assist/cctp-solana.d.ts +33 -0
- package/dist/bridge-assist/cctp-solana.js +392 -0
- package/dist/bridge-assist/cctp-solana.js.map +1 -0
- package/dist/main.css +1 -2
- package/dist/src/adapters/evm.d.ts +39 -0
- package/dist/src/adapters/evm.js +338 -0
- package/dist/src/adapters/evm.js.map +1 -0
- package/dist/src/adapters/factory.d.ts +37 -0
- package/dist/src/adapters/factory.js +82 -0
- package/dist/src/adapters/factory.js.map +1 -0
- package/dist/src/adapters/index.d.ts +33 -0
- package/dist/src/adapters/index.js +36 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/adapters/solana.d.ts +37 -0
- package/dist/src/adapters/solana.js +359 -0
- package/dist/src/adapters/solana.js.map +1 -0
- package/dist/src/adapters/types.d.ts +160 -0
- package/dist/src/adapters/types.js +20 -0
- package/dist/src/adapters/types.js.map +1 -0
- package/dist/src/animations/N1Loader.js.map +1 -0
- package/dist/src/animations/N1Loader.json +1 -0
- package/dist/src/animations/Processing.js.map +1 -0
- package/dist/src/animations/Processing.json +1 -0
- package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
- package/dist/{components → src/components}/LoadingFallback.js +3 -0
- package/dist/src/components/LoadingFallback.js.map +1 -0
- package/dist/{components → src/components}/Logo.d.ts +4 -0
- package/dist/{components → src/components}/Logo.js +4 -0
- package/dist/src/components/Logo.js.map +1 -0
- package/dist/src/components/N1ConnectButton.d.ts +13 -0
- package/dist/src/components/N1ConnectButton.js +66 -0
- package/dist/src/components/N1ConnectButton.js.map +1 -0
- package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
- package/dist/src/components/logos/BaseLogo.js +6 -0
- package/dist/src/components/logos/BaseLogo.js.map +1 -0
- package/dist/src/components/logos/BeraLogo.js.map +1 -0
- package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
- package/dist/src/components/logos/EthereumLogo.js.map +1 -0
- package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
- package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
- package/dist/src/components/logos/OptimismLogo.js.map +1 -0
- package/dist/src/components/logos/SolanaLogo.js.map +1 -0
- package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
- package/dist/src/components/logos/index.js.map +1 -0
- package/dist/src/config/chains.d.ts +18 -0
- package/dist/src/config/chains.js +58 -0
- package/dist/src/config/chains.js.map +1 -0
- package/dist/src/config/dynamic.js +18 -0
- package/dist/src/config/dynamic.js.map +1 -0
- package/dist/src/config/solana.js.map +1 -0
- package/dist/src/config/turnkey.d.ts +2 -0
- package/dist/{config → src/config}/turnkey.js +9 -12
- package/dist/src/config/turnkey.js.map +1 -0
- package/dist/src/context/n1-wallet-context.js.map +1 -0
- package/dist/src/errors/types.d.ts +72 -0
- package/dist/src/errors/types.js +140 -0
- package/dist/src/errors/types.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
- package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
- package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
- package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
- package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
- package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
- package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
- package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
- package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
- package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
- package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
- package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
- package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
- package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
- package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
- package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
- package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
- package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
- package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
- package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
- package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
- package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
- package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
- package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
- package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
- package/dist/src/features/onboarding-flow/components/Header.js +69 -0
- package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
- package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
- package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
- package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
- package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
- package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
- package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
- package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
- package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
- package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
- package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
- package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
- package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
- package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
- package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
- package/dist/src/features/onboarding-flow/index.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
- package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
- package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
- package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
- package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
- package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
- package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
- package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
- package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
- package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
- package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
- package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
- package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
- package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
- package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
- package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
- package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.js +8 -1
- package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +8 -1
- package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +11 -11
- package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.js +59 -29
- package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
- package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
- package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts +5 -0
- package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
- package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
- package/dist/{features → src/features}/onboarding-flow/screens/07-DepositSuccessScreen.js +11 -5
- package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
- package/dist/{features → src/features}/onboarding-flow/screens/08-AuthLoadingScreen.js +5 -1
- package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
- package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
- package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
- package/dist/src/features/onboarding-flow/screens/index.js +11 -0
- package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
- package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
- package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
- package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
- package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
- package/dist/src/features/onboarding-flow/types.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
- package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
- package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
- package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
- package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
- package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
- package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
- package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
- package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
- package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
- package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
- package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
- package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
- package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
- package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
- package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
- package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
- package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
- package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
- package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
- package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
- package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
- package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
- package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
- package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
- package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
- package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
- package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
- package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/useN1Wallet.d.ts +12 -0
- package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
- package/dist/src/hooks/useN1Wallet.js.map +1 -0
- package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
- package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
- package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.js +16 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
- package/dist/src/providers/LazyWalletProvider.js +404 -0
- package/dist/src/providers/LazyWalletProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
- package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
- package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
- package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
- package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
- package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
- package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
- package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
- package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
- package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
- package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
- package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
- package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
- package/dist/src/providers/N1WalletProvider/index.js +27 -0
- package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
- package/dist/src/providers/N1WalletProvider.d.ts +17 -0
- package/dist/src/providers/N1WalletProvider.js +102 -0
- package/dist/src/providers/N1WalletProvider.js.map +1 -0
- package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
- package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -0
- package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
- package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
- package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
- package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
- package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
- package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
- package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
- package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
- package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
- package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
- package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
- package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
- package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
- package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
- package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
- package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
- package/dist/src/services/bootstrap/index.d.ts +13 -0
- package/dist/src/services/bootstrap/index.js +16 -0
- package/dist/src/services/bootstrap/index.js.map +1 -0
- package/dist/src/services/bootstrap/types.d.ts +92 -0
- package/dist/src/services/bootstrap/types.js +7 -0
- package/dist/src/services/bootstrap/types.js.map +1 -0
- package/dist/src/services/storage/StorageService.d.ts +98 -0
- package/dist/src/services/storage/StorageService.js +360 -0
- package/dist/src/services/storage/StorageService.js.map +1 -0
- package/dist/src/services/storage/index.d.ts +9 -0
- package/dist/src/services/storage/index.js +10 -0
- package/dist/src/services/storage/index.js.map +1 -0
- package/dist/src/services/storage/keys.d.ts +28 -0
- package/dist/src/services/storage/keys.js +45 -0
- package/dist/src/services/storage/keys.js.map +1 -0
- package/dist/src/services/storage/types.d.ts +73 -0
- package/dist/src/services/storage/types.js +23 -0
- package/dist/src/services/storage/types.js.map +1 -0
- package/dist/src/store/index.d.ts +8 -0
- package/dist/src/store/index.js +24 -0
- package/dist/src/store/index.js.map +1 -0
- package/dist/src/store/selectors.d.ts +105 -0
- package/dist/src/store/selectors.js +183 -0
- package/dist/src/store/selectors.js.map +1 -0
- package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
- package/dist/src/store/slices/bootstrapSlice.js +78 -0
- package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
- package/dist/src/store/slices/configSlice.d.ts +7 -0
- package/dist/src/store/slices/configSlice.js +14 -0
- package/dist/src/store/slices/configSlice.js.map +1 -0
- package/dist/src/store/slices/index.d.ts +10 -0
- package/dist/src/store/slices/index.js +10 -0
- package/dist/src/store/slices/index.js.map +1 -0
- package/dist/src/store/slices/sessionSlice.d.ts +7 -0
- package/dist/src/store/slices/sessionSlice.js +17 -0
- package/dist/src/store/slices/sessionSlice.js.map +1 -0
- package/dist/src/store/slices/signingSlice.d.ts +7 -0
- package/dist/src/store/slices/signingSlice.js +14 -0
- package/dist/src/store/slices/signingSlice.js.map +1 -0
- package/dist/src/store/slices/uiSlice.d.ts +9 -0
- package/dist/src/store/slices/uiSlice.js +25 -0
- package/dist/src/store/slices/uiSlice.js.map +1 -0
- package/dist/src/store/slices/walletSlice.d.ts +7 -0
- package/dist/src/store/slices/walletSlice.js +21 -0
- package/dist/src/store/slices/walletSlice.js.map +1 -0
- package/dist/src/store/store.d.ts +50 -0
- package/dist/src/store/store.js +259 -0
- package/dist/src/store/store.js.map +1 -0
- package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
- package/dist/src/store/subscriptions/depositPersistence.js +106 -0
- package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
- package/dist/src/store/subscriptions/index.d.ts +34 -0
- package/dist/src/store/subscriptions/index.js +73 -0
- package/dist/src/store/subscriptions/index.js.map +1 -0
- package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
- package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
- package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
- package/dist/src/store/types.d.ts +166 -0
- package/dist/src/store/types.js +7 -0
- package/dist/src/store/types.js.map +1 -0
- package/dist/src/styles/cdn-fonts.d.ts +12 -0
- package/dist/src/styles/cdn-fonts.js +63 -0
- package/dist/src/styles/cdn-fonts.js.map +1 -0
- package/dist/src/styles/embedded-main-css.d.ts +2 -0
- package/dist/src/styles/embedded-main-css.js +3 -0
- package/dist/src/styles/embedded-main-css.js.map +1 -0
- package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
- package/dist/src/turnkey/TurnkeyProvider.js +695 -0
- package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
- package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
- package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
- package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
- package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
- package/dist/src/turnkey/createWalletProvider.js +286 -0
- package/dist/src/turnkey/createWalletProvider.js.map +1 -0
- package/dist/src/turnkey/index.d.ts +3 -0
- package/dist/src/turnkey/index.js +3 -0
- package/dist/src/turnkey/index.js.map +1 -0
- package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
- package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
- package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
- package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
- package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
- package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
- package/dist/{turnkey → src/turnkey}/types.d.ts +21 -8
- package/dist/src/turnkey/types.js +12 -0
- package/dist/src/turnkey/types.js.map +1 -0
- package/dist/{types → src/types}/wallet.d.ts +39 -13
- package/dist/src/types/wallet.js.map +1 -0
- package/dist/src/utils/address.d.ts +130 -0
- package/dist/src/utils/address.js +274 -0
- package/dist/src/utils/address.js.map +1 -0
- package/dist/src/utils/chain.d.ts +89 -0
- package/dist/src/utils/chain.js +282 -0
- package/dist/src/utils/chain.js.map +1 -0
- package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
- package/dist/{utils → src/utils}/ed25519.js +4 -19
- package/dist/src/utils/ed25519.js.map +1 -0
- package/dist/src/utils/errors.d.ts +68 -0
- package/dist/src/utils/errors.js +190 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/events.d.ts +124 -0
- package/dist/src/utils/events.js +155 -0
- package/dist/src/utils/events.js.map +1 -0
- package/dist/src/utils/formatAmount.d.ts +4 -0
- package/dist/src/utils/formatAmount.js +9 -0
- package/dist/src/utils/formatAmount.js.map +1 -0
- package/dist/src/utils/logger.d.ts +45 -0
- package/dist/{utils → src/utils}/logger.js +68 -2
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/shortenString.d.ts +5 -0
- package/dist/src/utils/shortenString.js +16 -0
- package/dist/src/utils/shortenString.js.map +1 -0
- package/package.json +37 -15
- package/dist/animations/N1Loader.js.map +0 -1
- package/dist/animations/Processing.js.map +0 -1
- package/dist/components/LoadingFallback.js.map +0 -1
- package/dist/components/Logo.js.map +0 -1
- package/dist/components/N1ConnectButton.d.ts +0 -5
- package/dist/components/N1ConnectButton.js +0 -49
- package/dist/components/N1ConnectButton.js.map +0 -1
- package/dist/components/logos/ArbitrumLogo.js.map +0 -1
- package/dist/components/logos/BaseLogo.js +0 -6
- package/dist/components/logos/BaseLogo.js.map +0 -1
- package/dist/components/logos/BeraLogo.js.map +0 -1
- package/dist/components/logos/BitcoinLogo.js.map +0 -1
- package/dist/components/logos/EthereumLogo.js.map +0 -1
- package/dist/components/logos/HyperliquidLogo.js.map +0 -1
- package/dist/components/logos/OptimismLogo.js.map +0 -1
- package/dist/components/logos/SolanaLogo.js.map +0 -1
- package/dist/components/logos/ZeroOneLogo.js.map +0 -1
- package/dist/components/logos/index.js.map +0 -1
- package/dist/config/chains.d.ts +0 -0
- package/dist/config/chains.js +0 -2
- package/dist/config/chains.js.map +0 -1
- package/dist/config/dynamic.js +0 -13
- package/dist/config/dynamic.js.map +0 -1
- package/dist/config/solana.js.map +0 -1
- package/dist/config/turnkey.d.ts +0 -2
- package/dist/config/turnkey.js.map +0 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.js +0 -3
- package/dist/config.js.map +0 -1
- package/dist/context/n1-wallet-context.js.map +0 -1
- package/dist/errors/types.d.ts +0 -25
- package/dist/errors/types.js +0 -77
- package/dist/errors/types.js.map +0 -1
- package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
- package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
- package/dist/features/onboarding-flow/components/Header.js +0 -45
- package/dist/features/onboarding-flow/components/Header.js.map +0 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
- package/dist/features/onboarding-flow/components/index.js.map +0 -1
- package/dist/features/onboarding-flow/index.js.map +0 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
- package/dist/features/onboarding-flow/providers/index.js.map +0 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts +0 -31
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +0 -100
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.d.ts +0 -3
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +0 -6
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +0 -360
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +0 -136
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +0 -14
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
- package/dist/features/onboarding-flow/screens/index.js +0 -8
- package/dist/features/onboarding-flow/screens/index.js.map +0 -1
- package/dist/features/onboarding-flow/types.js.map +0 -1
- package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
- package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
- package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
- package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
- package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
- package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
- package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
- package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
- package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
- package/dist/features/onboarding-flow/utils/session.js +0 -69
- package/dist/features/onboarding-flow/utils/session.js.map +0 -1
- package/dist/features/onboarding-flow/utils/transaction.js +0 -8
- package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
- package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
- package/dist/features/turnkey/createTurnkeyWallet.d.ts +0 -25
- package/dist/features/turnkey/createTurnkeyWallet.js +0 -119
- package/dist/features/turnkey/createTurnkeyWallet.js.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useN1Wallet.d.ts +0 -2
- package/dist/hooks/useN1Wallet.js.map +0 -1
- package/dist/hooks/useNordUserInitialization.d.ts +0 -1
- package/dist/hooks/useNordUserInitialization.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
- package/dist/polyfills/windowEthereumGuard.js +0 -28
- package/dist/polyfills/windowEthereumGuard.js.map +0 -1
- package/dist/providers/LazyWalletProvider.d.ts +0 -1
- package/dist/providers/LazyWalletProvider.js +0 -230
- package/dist/providers/LazyWalletProvider.js.map +0 -1
- package/dist/providers/N1WalletProvider.d.ts +0 -3
- package/dist/providers/N1WalletProvider.js +0 -267
- package/dist/providers/N1WalletProvider.js.map +0 -1
- package/dist/providers/ShadowRootWrapper.js.map +0 -1
- package/dist/providers/TurnkeyProviderBridge.d.ts +0 -7
- package/dist/providers/TurnkeyProviderBridge.js +0 -20
- package/dist/providers/TurnkeyProviderBridge.js.map +0 -1
- package/dist/providers/WalletErrorBoundary.js.map +0 -1
- package/dist/styles/embedded-main-css.d.ts +0 -2
- package/dist/styles/embedded-main-css.js +0 -3
- package/dist/styles/embedded-main-css.js.map +0 -1
- package/dist/turnkey/TurnkeyProvider.d.ts +0 -9
- package/dist/turnkey/TurnkeyProvider.js +0 -378
- package/dist/turnkey/TurnkeyProvider.js.map +0 -1
- package/dist/turnkey/createWalletProvider.d.ts +0 -3
- package/dist/turnkey/createWalletProvider.js +0 -180
- package/dist/turnkey/createWalletProvider.js.map +0 -1
- package/dist/turnkey/index.d.ts +0 -3
- package/dist/turnkey/index.js +0 -3
- package/dist/turnkey/index.js.map +0 -1
- package/dist/turnkey/types.js +0 -8
- package/dist/turnkey/types.js.map +0 -1
- package/dist/types/wallet.js.map +0 -1
- package/dist/utils/ed25519.js.map +0 -1
- package/dist/utils/getPseudoName.d.ts +0 -1
- package/dist/utils/getPseudoName.js +0 -5826
- package/dist/utils/getPseudoName.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -21
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/shortenString.d.ts +0 -2
- package/dist/utils/shortenString.js +0 -9
- package/dist/utils/shortenString.js.map +0 -1
- package/dist/utils/turnkeySessionStorage.d.ts +0 -3
- package/dist/utils/turnkeySessionStorage.js +0 -33
- package/dist/utils/turnkeySessionStorage.js.map +0 -1
- package/dist/utils/words.d.ts +0 -9
- package/dist/utils/words.js +0 -93572
- package/dist/utils/words.js.map +0 -1
- /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
- /package/dist/{animations → src/animations}/N1Loader.js +0 -0
- /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
- /package/dist/{animations → src/animations}/Processing.js +0 -0
- /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
- /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
- /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
- /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
- /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
- /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
- /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
- /package/dist/{components → src/components}/logos/index.d.ts +0 -0
- /package/dist/{components → src/components}/logos/index.js +0 -0
- /package/dist/{config → src/config}/dynamic.d.ts +0 -0
- /package/dist/{config → src/config}/solana.d.ts +0 -0
- /package/dist/{config → src/config}/solana.js +0 -0
- /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
- /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/index.js +0 -0
- /package/dist/{types → src/types}/wallet.js +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useMemo, } from 'react';
|
|
4
|
+
import { useWalletStore, getWalletActions } from '../../store';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Context
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
var SigningContext = createContext(null);
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Hooks
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
/**
|
|
13
|
+
* Hook to access signing state and actions.
|
|
14
|
+
* Must be used within a SigningProvider.
|
|
15
|
+
*/
|
|
16
|
+
export function useSigning() {
|
|
17
|
+
var context = useContext(SigningContext);
|
|
18
|
+
if (!context) {
|
|
19
|
+
throw new Error('useSigning must be used within a SigningProvider');
|
|
20
|
+
}
|
|
21
|
+
return context;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Hook to access signing functions only (no setters).
|
|
25
|
+
* Useful for components that only need to sign.
|
|
26
|
+
*/
|
|
27
|
+
export function useSigningState() {
|
|
28
|
+
var _a = useSigning(), signMessageWithSessionKey = _a.signMessageWithSessionKey, signMessageWithWalletKey = _a.signMessageWithWalletKey, signTransactionWithWalletKey = _a.signTransactionWithWalletKey;
|
|
29
|
+
return {
|
|
30
|
+
signMessageWithSessionKey: signMessageWithSessionKey,
|
|
31
|
+
signMessageWithWalletKey: signMessageWithWalletKey,
|
|
32
|
+
signTransactionWithWalletKey: signTransactionWithWalletKey,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Hook to access signing setters only (no functions).
|
|
37
|
+
* Useful for components that register signing functions.
|
|
38
|
+
*/
|
|
39
|
+
export function useSigningActions() {
|
|
40
|
+
var _a = useSigning(), setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey;
|
|
41
|
+
return {
|
|
42
|
+
setSignMessageWithSessionKey: setSignMessageWithSessionKey,
|
|
43
|
+
setSignMessageWithWalletKey: setSignMessageWithWalletKey,
|
|
44
|
+
setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// Provider
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
/**
|
|
51
|
+
* SigningProvider manages signing functions for wallet operations.
|
|
52
|
+
*
|
|
53
|
+
* Uses clean Zustand approach - reads/writes directly from store.
|
|
54
|
+
*
|
|
55
|
+
* Responsibilities:
|
|
56
|
+
* - Store and provide signing functions
|
|
57
|
+
* - Support session key signing
|
|
58
|
+
* - Support wallet key signing (messages and transactions)
|
|
59
|
+
*
|
|
60
|
+
* Does NOT handle:
|
|
61
|
+
* - Modal state
|
|
62
|
+
* - Network/chain state
|
|
63
|
+
* - Session/authentication state
|
|
64
|
+
* - Theming
|
|
65
|
+
*/
|
|
66
|
+
export function SigningProvider(_a) {
|
|
67
|
+
// -------------------------------------------------------------------------
|
|
68
|
+
// State from Store (individual selectors for optimal re-renders)
|
|
69
|
+
// -------------------------------------------------------------------------
|
|
70
|
+
var children = _a.children;
|
|
71
|
+
var signMessageWithSessionKey = useWalletStore(function (state) { return state.signing.signMessageWithSessionKey; });
|
|
72
|
+
var signMessageWithWalletKey = useWalletStore(function (state) { return state.signing.signMessageWithWalletKey; });
|
|
73
|
+
var signTransactionWithWalletKey = useWalletStore(function (state) { return state.signing.signTransactionWithWalletKey; });
|
|
74
|
+
// -------------------------------------------------------------------------
|
|
75
|
+
// Store Actions (stable references via getWalletActions)
|
|
76
|
+
// -------------------------------------------------------------------------
|
|
77
|
+
var storeActions = getWalletActions().signing;
|
|
78
|
+
// -------------------------------------------------------------------------
|
|
79
|
+
// Action Wrappers (compatible with React.Dispatch signature)
|
|
80
|
+
// -------------------------------------------------------------------------
|
|
81
|
+
var setSignMessageWithSessionKey = useCallback(function (valueOrUpdater) {
|
|
82
|
+
if (typeof valueOrUpdater === 'function') {
|
|
83
|
+
var currentValue = useWalletStore.getState().signing.signMessageWithSessionKey;
|
|
84
|
+
storeActions.setSignMessageWithSessionKey(valueOrUpdater(currentValue));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
storeActions.setSignMessageWithSessionKey(valueOrUpdater);
|
|
88
|
+
}
|
|
89
|
+
}, [storeActions]);
|
|
90
|
+
var setSignMessageWithWalletKey = useCallback(function (valueOrUpdater) {
|
|
91
|
+
if (typeof valueOrUpdater === 'function') {
|
|
92
|
+
var currentValue = useWalletStore.getState().signing.signMessageWithWalletKey;
|
|
93
|
+
storeActions.setSignMessageWithWalletKey(valueOrUpdater(currentValue));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
storeActions.setSignMessageWithWalletKey(valueOrUpdater);
|
|
97
|
+
}
|
|
98
|
+
}, [storeActions]);
|
|
99
|
+
var setSignTransactionWithWalletKey = useCallback(function (valueOrUpdater) {
|
|
100
|
+
if (typeof valueOrUpdater === 'function') {
|
|
101
|
+
var currentValue = useWalletStore.getState().signing.signTransactionWithWalletKey;
|
|
102
|
+
storeActions.setSignTransactionWithWalletKey(valueOrUpdater(currentValue));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
storeActions.setSignTransactionWithWalletKey(valueOrUpdater);
|
|
106
|
+
}
|
|
107
|
+
}, [storeActions]);
|
|
108
|
+
// -------------------------------------------------------------------------
|
|
109
|
+
// Context Value
|
|
110
|
+
// -------------------------------------------------------------------------
|
|
111
|
+
var value = useMemo(function () { return ({
|
|
112
|
+
// State
|
|
113
|
+
signMessageWithSessionKey: signMessageWithSessionKey,
|
|
114
|
+
signMessageWithWalletKey: signMessageWithWalletKey,
|
|
115
|
+
signTransactionWithWalletKey: signTransactionWithWalletKey,
|
|
116
|
+
// Actions
|
|
117
|
+
setSignMessageWithSessionKey: setSignMessageWithSessionKey,
|
|
118
|
+
setSignMessageWithWalletKey: setSignMessageWithWalletKey,
|
|
119
|
+
setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
|
|
120
|
+
}); }, [
|
|
121
|
+
signMessageWithSessionKey,
|
|
122
|
+
signMessageWithWalletKey,
|
|
123
|
+
signTransactionWithWalletKey,
|
|
124
|
+
setSignMessageWithSessionKey,
|
|
125
|
+
setSignMessageWithWalletKey,
|
|
126
|
+
setSignTransactionWithWalletKey,
|
|
127
|
+
]);
|
|
128
|
+
return _jsx(SigningContext.Provider, { value: value, children: children });
|
|
129
|
+
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// Exports
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
export { SigningContext };
|
|
134
|
+
//# sourceMappingURL=SigningProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SigningProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/SigningProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport { useWalletStore, getWalletActions, WalletStore } from '../../store';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Generic signing function type */\nexport type SigningFunction<T = unknown, R = unknown> = ((input: T) => Promise<R>) | null;\n\nexport interface SigningState {\n /** Function to sign messages with the session key */\n signMessageWithSessionKey: SigningFunction;\n /** Function to sign messages with the wallet key */\n signMessageWithWalletKey: SigningFunction;\n /** Function to sign transactions with the wallet key */\n signTransactionWithWalletKey: SigningFunction;\n}\n\nexport interface SigningActions {\n /** Set the session key signing function */\n setSignMessageWithSessionKey: React.Dispatch<React.SetStateAction<SigningFunction>>;\n /** Set the wallet key message signing function */\n setSignMessageWithWalletKey: React.Dispatch<React.SetStateAction<SigningFunction>>;\n /** Set the wallet key transaction signing function */\n setSignTransactionWithWalletKey: React.Dispatch<React.SetStateAction<SigningFunction>>;\n}\n\nexport interface SigningContextValue extends SigningState, SigningActions { }\n\nexport interface SigningProviderProps {\n children: React.ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst SigningContext = createContext<SigningContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access signing state and actions.\n * Must be used within a SigningProvider.\n */\nexport function useSigning(): SigningContextValue {\n const context = useContext(SigningContext);\n if (!context) {\n throw new Error('useSigning must be used within a SigningProvider');\n }\n return context;\n}\n\n/**\n * Hook to access signing functions only (no setters).\n * Useful for components that only need to sign.\n */\nexport function useSigningState(): SigningState {\n const {\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n } = useSigning();\n\n return {\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n };\n}\n\n/**\n * Hook to access signing setters only (no functions).\n * Useful for components that register signing functions.\n */\nexport function useSigningActions(): SigningActions {\n const {\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n } = useSigning();\n\n return {\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * SigningProvider manages signing functions for wallet operations.\n *\n * Uses clean Zustand approach - reads/writes directly from store.\n *\n * Responsibilities:\n * - Store and provide signing functions\n * - Support session key signing\n * - Support wallet key signing (messages and transactions)\n *\n * Does NOT handle:\n * - Modal state\n * - Network/chain state\n * - Session/authentication state\n * - Theming\n */\nexport function SigningProvider({ children }: SigningProviderProps) {\n // -------------------------------------------------------------------------\n // State from Store (individual selectors for optimal re-renders)\n // -------------------------------------------------------------------------\n\n const signMessageWithSessionKey = useWalletStore((state: WalletStore) => state.signing.signMessageWithSessionKey);\n const signMessageWithWalletKey = useWalletStore((state: WalletStore) => state.signing.signMessageWithWalletKey);\n const signTransactionWithWalletKey = useWalletStore((state: WalletStore) => state.signing.signTransactionWithWalletKey);\n\n // -------------------------------------------------------------------------\n // Store Actions (stable references via getWalletActions)\n // -------------------------------------------------------------------------\n\n const storeActions = getWalletActions().signing;\n\n // -------------------------------------------------------------------------\n // Action Wrappers (compatible with React.Dispatch signature)\n // -------------------------------------------------------------------------\n\n const setSignMessageWithSessionKey = useCallback<React.Dispatch<React.SetStateAction<SigningFunction>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().signing.signMessageWithSessionKey;\n storeActions.setSignMessageWithSessionKey(valueOrUpdater(currentValue) as SigningFunction);\n } else {\n storeActions.setSignMessageWithSessionKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setSignMessageWithWalletKey = useCallback<React.Dispatch<React.SetStateAction<SigningFunction>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().signing.signMessageWithWalletKey;\n storeActions.setSignMessageWithWalletKey(valueOrUpdater(currentValue) as SigningFunction);\n } else {\n storeActions.setSignMessageWithWalletKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setSignTransactionWithWalletKey = useCallback<React.Dispatch<React.SetStateAction<SigningFunction>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().signing.signTransactionWithWalletKey;\n storeActions.setSignTransactionWithWalletKey(valueOrUpdater(currentValue) as SigningFunction);\n } else {\n storeActions.setSignTransactionWithWalletKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<SigningContextValue>(\n () => ({\n // State\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n // Actions\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n }),\n [\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n ]\n );\n\n return <SigningContext.Provider value={value}>{children}</SigningContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { SigningContext };\n"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ColorOverride {
|
|
3
|
+
color: string;
|
|
4
|
+
replacement: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ThemingState {
|
|
7
|
+
/** The processed CSS with color overrides applied (without @font-face rules) */
|
|
8
|
+
injectedCss: string;
|
|
9
|
+
/** The original color overrides */
|
|
10
|
+
colorOverrides: ColorOverride[];
|
|
11
|
+
}
|
|
12
|
+
export interface ThemingContextValue extends ThemingState {
|
|
13
|
+
}
|
|
14
|
+
export interface ThemingProviderProps {
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
/** Color overrides to apply to the CSS */
|
|
17
|
+
colorOverrides?: ColorOverride[];
|
|
18
|
+
}
|
|
19
|
+
declare const ThemingContext: React.Context<ThemingContextValue | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Hook to access theming state.
|
|
22
|
+
* Must be used within a ThemingProvider.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useTheming(): ThemingContextValue;
|
|
25
|
+
/**
|
|
26
|
+
* Hook to get the processed CSS string.
|
|
27
|
+
* Convenience hook for components that only need the CSS.
|
|
28
|
+
*/
|
|
29
|
+
export declare function useInjectedCss(): string;
|
|
30
|
+
/**
|
|
31
|
+
* ThemingProvider manages CSS injection and color overrides.
|
|
32
|
+
*
|
|
33
|
+
* NOTE: This provider's state comes from props (not internal state).
|
|
34
|
+
* The store is synced for external observers but props are the source of truth.
|
|
35
|
+
* We don't subscribe to the store (no useWalletStore) to avoid infinite loops.
|
|
36
|
+
*
|
|
37
|
+
* Responsibilities:
|
|
38
|
+
* - Process base CSS with color overrides
|
|
39
|
+
* - Provide processed CSS to components
|
|
40
|
+
* - Handle theme customization
|
|
41
|
+
* - Sync to store for external access
|
|
42
|
+
*
|
|
43
|
+
* Does NOT handle:
|
|
44
|
+
* - Modal state
|
|
45
|
+
* - Network/chain state
|
|
46
|
+
* - Session/authentication state
|
|
47
|
+
* - Signing functions
|
|
48
|
+
*/
|
|
49
|
+
export declare function ThemingProvider({ children, colorOverrides }: ThemingProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
export { ThemingContext };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext, useEffect, useMemo, } from 'react';
|
|
4
|
+
import mainCss from '../../styles/embedded-main-css';
|
|
5
|
+
import { getWalletActions } from '../../store';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Context
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
var ThemingContext = createContext(null);
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Hooks
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
/**
|
|
14
|
+
* Hook to access theming state.
|
|
15
|
+
* Must be used within a ThemingProvider.
|
|
16
|
+
*/
|
|
17
|
+
export function useTheming() {
|
|
18
|
+
var context = useContext(ThemingContext);
|
|
19
|
+
if (!context) {
|
|
20
|
+
throw new Error('useTheming must be used within a ThemingProvider');
|
|
21
|
+
}
|
|
22
|
+
return context;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hook to get the processed CSS string.
|
|
26
|
+
* Convenience hook for components that only need the CSS.
|
|
27
|
+
*/
|
|
28
|
+
export function useInjectedCss() {
|
|
29
|
+
return useTheming().injectedCss;
|
|
30
|
+
}
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Helper
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/**
|
|
35
|
+
* Apply color overrides to the base CSS string.
|
|
36
|
+
* Replaces all instances of each color with its replacement (case-insensitive).
|
|
37
|
+
*/
|
|
38
|
+
function applyColorOverrides(baseCss, overrides) {
|
|
39
|
+
if (!Array.isArray(overrides) || overrides.length === 0) {
|
|
40
|
+
return baseCss;
|
|
41
|
+
}
|
|
42
|
+
var result = baseCss;
|
|
43
|
+
overrides.forEach(function (_a) {
|
|
44
|
+
var color = _a.color, replacement = _a.replacement;
|
|
45
|
+
if (color && replacement) {
|
|
46
|
+
// Escape special regex characters and replace all instances case-insensitively
|
|
47
|
+
var regex = new RegExp(color.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
|
|
48
|
+
result = result.replace(regex, replacement);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Provider
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
/**
|
|
57
|
+
* ThemingProvider manages CSS injection and color overrides.
|
|
58
|
+
*
|
|
59
|
+
* NOTE: This provider's state comes from props (not internal state).
|
|
60
|
+
* The store is synced for external observers but props are the source of truth.
|
|
61
|
+
* We don't subscribe to the store (no useWalletStore) to avoid infinite loops.
|
|
62
|
+
*
|
|
63
|
+
* Responsibilities:
|
|
64
|
+
* - Process base CSS with color overrides
|
|
65
|
+
* - Provide processed CSS to components
|
|
66
|
+
* - Handle theme customization
|
|
67
|
+
* - Sync to store for external access
|
|
68
|
+
*
|
|
69
|
+
* Does NOT handle:
|
|
70
|
+
* - Modal state
|
|
71
|
+
* - Network/chain state
|
|
72
|
+
* - Session/authentication state
|
|
73
|
+
* - Signing functions
|
|
74
|
+
*/
|
|
75
|
+
export function ThemingProvider(_a) {
|
|
76
|
+
// -------------------------------------------------------------------------
|
|
77
|
+
// Derived State (from props - props are source of truth)
|
|
78
|
+
// -------------------------------------------------------------------------
|
|
79
|
+
var children = _a.children, _b = _a.colorOverrides, colorOverrides = _b === void 0 ? [] : _b;
|
|
80
|
+
var injectedCss = useMemo(function () { return applyColorOverrides(mainCss, colorOverrides); }, [colorOverrides]);
|
|
81
|
+
// -------------------------------------------------------------------------
|
|
82
|
+
// Store Sync (write-only, no subscription to avoid infinite loop)
|
|
83
|
+
// -------------------------------------------------------------------------
|
|
84
|
+
var storeActions = getWalletActions().config;
|
|
85
|
+
useEffect(function () {
|
|
86
|
+
storeActions.setInjectedCss(injectedCss);
|
|
87
|
+
storeActions.setColorOverrides(colorOverrides);
|
|
88
|
+
}, [injectedCss, colorOverrides, storeActions]);
|
|
89
|
+
// -------------------------------------------------------------------------
|
|
90
|
+
// Context Value
|
|
91
|
+
// -------------------------------------------------------------------------
|
|
92
|
+
var value = useMemo(function () { return ({
|
|
93
|
+
injectedCss: injectedCss,
|
|
94
|
+
colorOverrides: colorOverrides,
|
|
95
|
+
}); }, [injectedCss, colorOverrides]);
|
|
96
|
+
return _jsx(ThemingContext.Provider, { value: value, children: children });
|
|
97
|
+
}
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
// Exports
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
export { ThemingContext };
|
|
102
|
+
//# sourceMappingURL=ThemingProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemingProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/ThemingProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n} from 'react';\nimport mainCss from '../../styles/embedded-main-css';\nimport { getWalletActions } from '../../store';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface ColorOverride {\n color: string;\n replacement: string;\n}\n\nexport interface ThemingState {\n /** The processed CSS with color overrides applied (without @font-face rules) */\n injectedCss: string;\n /** The original color overrides */\n colorOverrides: ColorOverride[];\n}\n\nexport interface ThemingContextValue extends ThemingState {}\n\nexport interface ThemingProviderProps {\n children: React.ReactNode;\n /** Color overrides to apply to the CSS */\n colorOverrides?: ColorOverride[];\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst ThemingContext = createContext<ThemingContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access theming state.\n * Must be used within a ThemingProvider.\n */\nexport function useTheming(): ThemingContextValue {\n const context = useContext(ThemingContext);\n if (!context) {\n throw new Error('useTheming must be used within a ThemingProvider');\n }\n return context;\n}\n\n/**\n * Hook to get the processed CSS string.\n * Convenience hook for components that only need the CSS.\n */\nexport function useInjectedCss(): string {\n return useTheming().injectedCss;\n}\n\n// ---------------------------------------------------------------------------\n// Helper\n// ---------------------------------------------------------------------------\n\n/**\n * Apply color overrides to the base CSS string.\n * Replaces all instances of each color with its replacement (case-insensitive).\n */\nfunction applyColorOverrides(baseCss: string, overrides: ColorOverride[]): string {\n if (!Array.isArray(overrides) || overrides.length === 0) {\n return baseCss;\n }\n\n let result = baseCss;\n overrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Escape special regex characters and replace all instances case-insensitively\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n result = result.replace(regex, replacement);\n }\n });\n\n return result;\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * ThemingProvider manages CSS injection and color overrides.\n *\n * NOTE: This provider's state comes from props (not internal state).\n * The store is synced for external observers but props are the source of truth.\n * We don't subscribe to the store (no useWalletStore) to avoid infinite loops.\n *\n * Responsibilities:\n * - Process base CSS with color overrides\n * - Provide processed CSS to components\n * - Handle theme customization\n * - Sync to store for external access\n *\n * Does NOT handle:\n * - Modal state\n * - Network/chain state\n * - Session/authentication state\n * - Signing functions\n */\nexport function ThemingProvider({ children, colorOverrides = [] }: ThemingProviderProps) {\n // -------------------------------------------------------------------------\n // Derived State (from props - props are source of truth)\n // -------------------------------------------------------------------------\n\n const injectedCss = useMemo(\n () => applyColorOverrides(mainCss, colorOverrides),\n [colorOverrides]\n );\n\n // -------------------------------------------------------------------------\n // Store Sync (write-only, no subscription to avoid infinite loop)\n // -------------------------------------------------------------------------\n\n const storeActions = getWalletActions().config;\n\n useEffect(() => {\n storeActions.setInjectedCss(injectedCss);\n storeActions.setColorOverrides(colorOverrides);\n }, [injectedCss, colorOverrides, storeActions]);\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<ThemingContextValue>(\n () => ({\n injectedCss,\n colorOverrides,\n }),\n [injectedCss, colorOverrides]\n );\n\n return <ThemingContext.Provider value={value}>{children}</ThemingContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { ThemingContext };\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* N1WalletProvider sub-providers
|
|
3
|
+
*
|
|
4
|
+
* These providers split the monolithic N1WalletProvider into focused,
|
|
5
|
+
* single-responsibility providers for better maintainability and testing.
|
|
6
|
+
*
|
|
7
|
+
* Provider hierarchy:
|
|
8
|
+
* - ThemingProvider: CSS injection, color overrides (outermost)
|
|
9
|
+
* - NetworkProvider: Wallet network, chain, address normalization
|
|
10
|
+
* - SessionProvider: Session keys, nordUser, authentication state
|
|
11
|
+
* - SigningProvider: Signing functions with unified interface
|
|
12
|
+
* - ModalProvider: Modal visibility, cooldown, deposit-only flow
|
|
13
|
+
* - ContextBridge: Maps sub-providers to legacy N1WalletContext/N1InternalWalletContext
|
|
14
|
+
*/
|
|
15
|
+
export { ModalProvider, ModalContext, useModal, useModalState, useModalActions, type ModalStateValues, type ModalActions, type ModalContextValue, type ModalProviderProps, } from './ModalProvider';
|
|
16
|
+
export type { ModalState } from '../../store/types';
|
|
17
|
+
export { NetworkProvider, NetworkContext, useNetwork, useNetworkState, useNetworkActions, type WalletNetworkType, type NetworkState, type NetworkActions, type NetworkContextValue, type NetworkProviderProps, } from './NetworkProvider';
|
|
18
|
+
export { SessionProvider, SessionContext, useSession, useSessionState, useSessionActions, type SessionState, type SessionActions, type SessionContextValue, type SessionProviderProps, } from './SessionProvider';
|
|
19
|
+
export { SigningProvider, SigningContext, useSigning, useSigningState, useSigningActions, type SigningFunction, type SigningState, type SigningActions, type SigningContextValue, type SigningProviderProps, } from './SigningProvider';
|
|
20
|
+
export { ThemingProvider, ThemingContext, useTheming, useInjectedCss, type ColorOverride, type ThemingState, type ThemingContextValue, type ThemingProviderProps, } from './ThemingProvider';
|
|
21
|
+
export { ContextBridge, type ContextBridgeProps, } from './ContextBridge';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* N1WalletProvider sub-providers
|
|
3
|
+
*
|
|
4
|
+
* These providers split the monolithic N1WalletProvider into focused,
|
|
5
|
+
* single-responsibility providers for better maintainability and testing.
|
|
6
|
+
*
|
|
7
|
+
* Provider hierarchy:
|
|
8
|
+
* - ThemingProvider: CSS injection, color overrides (outermost)
|
|
9
|
+
* - NetworkProvider: Wallet network, chain, address normalization
|
|
10
|
+
* - SessionProvider: Session keys, nordUser, authentication state
|
|
11
|
+
* - SigningProvider: Signing functions with unified interface
|
|
12
|
+
* - ModalProvider: Modal visibility, cooldown, deposit-only flow
|
|
13
|
+
* - ContextBridge: Maps sub-providers to legacy N1WalletContext/N1InternalWalletContext
|
|
14
|
+
*/
|
|
15
|
+
// ModalProvider
|
|
16
|
+
export { ModalProvider, ModalContext, useModal, useModalState, useModalActions, } from './ModalProvider';
|
|
17
|
+
// NetworkProvider
|
|
18
|
+
export { NetworkProvider, NetworkContext, useNetwork, useNetworkState, useNetworkActions, } from './NetworkProvider';
|
|
19
|
+
// SessionProvider
|
|
20
|
+
export { SessionProvider, SessionContext, useSession, useSessionState, useSessionActions, } from './SessionProvider';
|
|
21
|
+
// SigningProvider
|
|
22
|
+
export { SigningProvider, SigningContext, useSigning, useSigningState, useSigningActions, } from './SigningProvider';
|
|
23
|
+
// ThemingProvider
|
|
24
|
+
export { ThemingProvider, ThemingContext, useTheming, useInjectedCss, } from './ThemingProvider';
|
|
25
|
+
// ContextBridge
|
|
26
|
+
export { ContextBridge, } from './ContextBridge';
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AAKzB,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,GAMlB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,GAKlB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,GAMlB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,cAAc,GAKf,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EACL,aAAa,GAEd,MAAM,iBAAiB,CAAC","sourcesContent":["/**\n * N1WalletProvider sub-providers\n *\n * These providers split the monolithic N1WalletProvider into focused,\n * single-responsibility providers for better maintainability and testing.\n *\n * Provider hierarchy:\n * - ThemingProvider: CSS injection, color overrides (outermost)\n * - NetworkProvider: Wallet network, chain, address normalization\n * - SessionProvider: Session keys, nordUser, authentication state\n * - SigningProvider: Signing functions with unified interface\n * - ModalProvider: Modal visibility, cooldown, deposit-only flow\n * - ContextBridge: Maps sub-providers to legacy N1WalletContext/N1InternalWalletContext\n */\n\n// ModalProvider\nexport {\n ModalProvider,\n ModalContext,\n useModal,\n useModalState,\n useModalActions,\n type ModalStateValues,\n type ModalActions,\n type ModalContextValue,\n type ModalProviderProps,\n} from './ModalProvider';\n\n// Re-export ModalState from store types for convenience\nexport type { ModalState } from '../../store/types';\n\n// NetworkProvider\nexport {\n NetworkProvider,\n NetworkContext,\n useNetwork,\n useNetworkState,\n useNetworkActions,\n type WalletNetworkType,\n type NetworkState,\n type NetworkActions,\n type NetworkContextValue,\n type NetworkProviderProps,\n} from './NetworkProvider';\n\n// SessionProvider\nexport {\n SessionProvider,\n SessionContext,\n useSession,\n useSessionState,\n useSessionActions,\n type SessionState,\n type SessionActions,\n type SessionContextValue,\n type SessionProviderProps,\n} from './SessionProvider';\n\n// SigningProvider\nexport {\n SigningProvider,\n SigningContext,\n useSigning,\n useSigningState,\n useSigningActions,\n type SigningFunction,\n type SigningState,\n type SigningActions,\n type SigningContextValue,\n type SigningProviderProps,\n} from './SigningProvider';\n\n// ThemingProvider\nexport {\n ThemingProvider,\n ThemingContext,\n useTheming,\n useInjectedCss,\n type ColorOverride,\n type ThemingState,\n type ThemingContextValue,\n type ThemingProviderProps,\n} from './ThemingProvider';\n\n// ContextBridge\nexport {\n ContextBridge,\n type ContextBridgeProps,\n} from './ContextBridge';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { N1WalletProviderProps } from '../types/wallet';
|
|
2
|
+
/**
|
|
3
|
+
* Main provider component for the N1 wallet widget.
|
|
4
|
+
*
|
|
5
|
+
* Coordinates sub-providers for clean separation of concerns:
|
|
6
|
+
* - ThemingProvider: CSS injection and color overrides
|
|
7
|
+
* - NetworkProvider: Wallet network, chain, and address state
|
|
8
|
+
* - SessionProvider: Connection status, keys, and Nord user
|
|
9
|
+
* - SigningProvider: Message and transaction signing functions
|
|
10
|
+
* - ModalProvider: Modal visibility and flow control
|
|
11
|
+
* - ContextBridge: Legacy context compatibility layer
|
|
12
|
+
*
|
|
13
|
+
* External integrations:
|
|
14
|
+
* - Dynamic SDK for wallet connection (lazy loaded)
|
|
15
|
+
* - Optional Turnkey support for additional wallet features
|
|
16
|
+
*/
|
|
17
|
+
export declare function N1WalletProvider({ children, providedSessionMode, onError, nord, colorOverrides, skipFinalScreen, dynamicEnvironmentId, enableTurnkey, }: N1WalletProviderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import React, { Suspense, useCallback, useEffect, useMemo } from 'react';
|
|
4
|
+
import root from 'react-shadow';
|
|
5
|
+
import { N1WalletModal } from '../features/onboarding-flow/N1WalletModal';
|
|
6
|
+
import { OnboardingProvider } from '../features/onboarding-flow/providers';
|
|
7
|
+
import { logger } from '../utils/logger';
|
|
8
|
+
import { createBootstrapError } from '../utils/errors';
|
|
9
|
+
import WalletErrorBoundary from './WalletErrorBoundary';
|
|
10
|
+
import { useNordUserInitialization } from '../hooks/useNordUserInitialization';
|
|
11
|
+
import { N1SessionMode } from '../types/wallet';
|
|
12
|
+
import { TurnkeyProvider } from '../turnkey';
|
|
13
|
+
import { getDynamicEnvironmentId } from '../config/dynamic';
|
|
14
|
+
import { ThemingProvider, NetworkProvider, SessionProvider, SigningProvider, ModalProvider, ContextBridge, useInjectedCss, useSession, } from './N1WalletProvider/index';
|
|
15
|
+
import { initializeSubscriptions, cleanupSubscriptions, } from '../store/subscriptions';
|
|
16
|
+
import { ensureCdnFontsLoaded } from '../styles/cdn-fonts';
|
|
17
|
+
var LazyWalletProvider = React.lazy(function () {
|
|
18
|
+
return import('./LazyWalletProvider').then(function (mod) { return ({
|
|
19
|
+
default: mod.LazyWalletProvider,
|
|
20
|
+
}); });
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* ModalContent renders the modal with CSS from ThemingProvider.
|
|
24
|
+
* Must be rendered inside ThemingProvider.
|
|
25
|
+
*
|
|
26
|
+
* NOTE: Fonts are loaded via CDN using the FontFace API (see cdn-fonts.ts).
|
|
27
|
+
* This works regardless of Shadow DOM since fonts are registered globally.
|
|
28
|
+
*/
|
|
29
|
+
var ModalContent = React.memo(function () {
|
|
30
|
+
var css = useInjectedCss();
|
|
31
|
+
// Load CDN fonts on mount
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
void ensureCdnFontsLoaded();
|
|
34
|
+
}, []);
|
|
35
|
+
return (_jsxs(root.div, { children: [_jsx("style", { children: css }), _jsx(N1WalletModal, {})] }));
|
|
36
|
+
});
|
|
37
|
+
var DynamicBridge = React.memo(function () { return null; });
|
|
38
|
+
/**
|
|
39
|
+
* Wrapper component that initializes NordUser when the provider mounts.
|
|
40
|
+
* This ensures session keys and signing functions are set up before the widget is used.
|
|
41
|
+
*/
|
|
42
|
+
function NordWrapper(_a) {
|
|
43
|
+
var children = _a.children;
|
|
44
|
+
useNordUserInitialization();
|
|
45
|
+
return _jsx(_Fragment, { children: children });
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Inner component that sets up ModalProvider with session dependencies.
|
|
49
|
+
* Must be rendered inside SessionProvider to access session state.
|
|
50
|
+
*/
|
|
51
|
+
function ModalProviderWrapper(_a) {
|
|
52
|
+
var children = _a.children, nord = _a.nord, handleError = _a.handleError, skipFinalScreen = _a.skipFinalScreen, turnkeyEnabled = _a.turnkeyEnabled, dynamicEnvironmentId = _a.dynamicEnvironmentId;
|
|
53
|
+
var _b = useSession(), dynamicSdkHasLoaded = _b.dynamicSdkHasLoaded, setLoading = _b.setLoading;
|
|
54
|
+
// Update loading state based on SDK readiness
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
var isDynamicReady = Boolean(dynamicSdkHasLoaded);
|
|
57
|
+
setLoading(!isDynamicReady);
|
|
58
|
+
}, [dynamicSdkHasLoaded, setLoading]);
|
|
59
|
+
var body = (_jsx(NordWrapper, { children: _jsxs(_Fragment, { children: [_jsx(OnboardingProvider, { children: _jsxs(_Fragment, { children: [children, _jsx(ModalContent, {})] }) }), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, { dynamicEnvironmentId: dynamicEnvironmentId, children: _jsx(DynamicBridge, {}) }) })] }) }));
|
|
60
|
+
return (_jsx(ModalProvider, { children: _jsx(ContextBridge, { nord: nord, handleError: handleError, skipFinalScreen: skipFinalScreen, turnkeyEnabled: turnkeyEnabled, children: turnkeyEnabled ? _jsx(TurnkeyProvider, { children: body }) : body }) }));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Main provider component for the N1 wallet widget.
|
|
64
|
+
*
|
|
65
|
+
* Coordinates sub-providers for clean separation of concerns:
|
|
66
|
+
* - ThemingProvider: CSS injection and color overrides
|
|
67
|
+
* - NetworkProvider: Wallet network, chain, and address state
|
|
68
|
+
* - SessionProvider: Connection status, keys, and Nord user
|
|
69
|
+
* - SigningProvider: Message and transaction signing functions
|
|
70
|
+
* - ModalProvider: Modal visibility and flow control
|
|
71
|
+
* - ContextBridge: Legacy context compatibility layer
|
|
72
|
+
*
|
|
73
|
+
* External integrations:
|
|
74
|
+
* - Dynamic SDK for wallet connection (lazy loaded)
|
|
75
|
+
* - Optional Turnkey support for additional wallet features
|
|
76
|
+
*/
|
|
77
|
+
export function N1WalletProvider(_a) {
|
|
78
|
+
var children = _a.children, providedSessionMode = _a.providedSessionMode, onError = _a.onError, nord = _a.nord, colorOverrides = _a.colorOverrides, skipFinalScreen = _a.skipFinalScreen, dynamicEnvironmentId = _a.dynamicEnvironmentId, enableTurnkey = _a.enableTurnkey;
|
|
79
|
+
var resolvedDynamicEnvironmentId = useMemo(function () { return dynamicEnvironmentId !== null && dynamicEnvironmentId !== void 0 ? dynamicEnvironmentId : getDynamicEnvironmentId(); }, [dynamicEnvironmentId]);
|
|
80
|
+
var turnkeyEnabled = enableTurnkey !== false;
|
|
81
|
+
var handleError = useCallback(function (error) {
|
|
82
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
83
|
+
}, [onError]);
|
|
84
|
+
// Initialize store subscriptions on mount
|
|
85
|
+
useEffect(function () {
|
|
86
|
+
initializeSubscriptions();
|
|
87
|
+
return function () {
|
|
88
|
+
cleanupSubscriptions();
|
|
89
|
+
};
|
|
90
|
+
}, []);
|
|
91
|
+
useEffect(function () {
|
|
92
|
+
if (providedSessionMode !== N1SessionMode.Nord) {
|
|
93
|
+
logger.warn("Only Nord session mode is supported. Received ".concat(providedSessionMode, ", defaulting to Nord."));
|
|
94
|
+
}
|
|
95
|
+
}, [providedSessionMode]);
|
|
96
|
+
if (!resolvedDynamicEnvironmentId) {
|
|
97
|
+
logger.logError(createBootstrapError('CONFIG_MISSING', 'Dynamic environment ID is required. Provide it via dynamicEnvironmentId prop or NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID.'));
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(ThemingProvider, { colorOverrides: colorOverrides, children: _jsx(NetworkProvider, { children: _jsx(SessionProvider, { children: _jsx(SigningProvider, { children: _jsx(ModalProviderWrapper, { nord: nord, handleError: handleError, skipFinalScreen: skipFinalScreen, turnkeyEnabled: turnkeyEnabled, dynamicEnvironmentId: resolvedDynamicEnvironmentId, children: children }) }) }) }) }) }));
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=N1WalletProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../../src/providers/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { Suspense, useCallback, useEffect, useMemo } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../features/onboarding-flow/N1WalletModal';\nimport { OnboardingProvider } from '../features/onboarding-flow/providers';\nimport { logger } from '../utils/logger';\nimport { createBootstrapError } from '../utils/errors';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { useNordUserInitialization } from '../hooks/useNordUserInitialization';\nimport { N1SessionMode, N1WalletProviderProps } from '../types/wallet';\nimport { TurnkeyProvider } from '../turnkey';\nimport { getDynamicEnvironmentId } from '../config/dynamic';\nimport {\n ThemingProvider,\n NetworkProvider,\n SessionProvider,\n SigningProvider,\n ModalProvider,\n ContextBridge,\n useInjectedCss,\n useSession,\n} from './N1WalletProvider/index';\nimport { WalletError, N1Error } from '../errors/types';\nimport {\n initializeSubscriptions,\n cleanupSubscriptions,\n} from '../store/subscriptions';\nimport { ensureCdnFontsLoaded } from '../styles/cdn-fonts';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\n/**\n * ModalContent renders the modal with CSS from ThemingProvider.\n * Must be rendered inside ThemingProvider.\n *\n * NOTE: Fonts are loaded via CDN using the FontFace API (see cdn-fonts.ts).\n * This works regardless of Shadow DOM since fonts are registered globally.\n */\nconst ModalContent = React.memo(() => {\n const css = useInjectedCss();\n\n // Load CDN fonts on mount\n useEffect(() => {\n void ensureCdnFontsLoaded();\n }, []);\n\n return (\n <root.div>\n <style>{css}</style>\n <N1WalletModal />\n </root.div>\n );\n});\n\nconst DynamicBridge = React.memo(() => null);\n\n/**\n * Wrapper component that initializes NordUser when the provider mounts.\n * This ensures session keys and signing functions are set up before the widget is used.\n */\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n useNordUserInitialization();\n return <>{children}</>;\n}\n\n/**\n * Inner component that sets up ModalProvider with session dependencies.\n * Must be rendered inside SessionProvider to access session state.\n */\nfunction ModalProviderWrapper({\n children,\n nord,\n handleError,\n skipFinalScreen,\n turnkeyEnabled,\n dynamicEnvironmentId,\n}: {\n children: React.ReactNode;\n nord: N1WalletProviderProps['nord'];\n handleError: (error: WalletError | N1Error) => void;\n skipFinalScreen: N1WalletProviderProps['skipFinalScreen'];\n turnkeyEnabled: boolean;\n dynamicEnvironmentId: string;\n}) {\n const { dynamicSdkHasLoaded, setLoading } = useSession();\n\n // Update loading state based on SDK readiness\n useEffect(() => {\n const isDynamicReady = Boolean(dynamicSdkHasLoaded);\n setLoading(!isDynamicReady);\n }, [dynamicSdkHasLoaded, setLoading]);\n\n const body = (\n <NordWrapper>\n <>\n <OnboardingProvider>\n <>\n {children}\n <ModalContent />\n </>\n </OnboardingProvider>\n <Suspense fallback={null}>\n <LazyWalletProvider dynamicEnvironmentId={dynamicEnvironmentId}>\n <DynamicBridge />\n </LazyWalletProvider>\n </Suspense>\n </>\n </NordWrapper>\n );\n\n return (\n <ModalProvider>\n <ContextBridge\n nord={nord}\n handleError={handleError}\n skipFinalScreen={skipFinalScreen}\n turnkeyEnabled={turnkeyEnabled}\n >\n {turnkeyEnabled ? <TurnkeyProvider>{body}</TurnkeyProvider> : body}\n </ContextBridge>\n </ModalProvider>\n );\n}\n\n/**\n * Main provider component for the N1 wallet widget.\n *\n * Coordinates sub-providers for clean separation of concerns:\n * - ThemingProvider: CSS injection and color overrides\n * - NetworkProvider: Wallet network, chain, and address state\n * - SessionProvider: Connection status, keys, and Nord user\n * - SigningProvider: Message and transaction signing functions\n * - ModalProvider: Modal visibility and flow control\n * - ContextBridge: Legacy context compatibility layer\n *\n * External integrations:\n * - Dynamic SDK for wallet connection (lazy loaded)\n * - Optional Turnkey support for additional wallet features\n */\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n onError,\n nord,\n colorOverrides,\n skipFinalScreen,\n dynamicEnvironmentId,\n enableTurnkey,\n}: N1WalletProviderProps) {\n const resolvedDynamicEnvironmentId = useMemo(\n () => dynamicEnvironmentId ?? getDynamicEnvironmentId(),\n [dynamicEnvironmentId]\n );\n\n const turnkeyEnabled = enableTurnkey !== false;\n\n const handleError = useCallback(\n (error: WalletError | N1Error) => {\n onError?.(error);\n },\n [onError]\n );\n\n// Initialize store subscriptions on mount\n useEffect(() => {\n initializeSubscriptions();\n return () => {\n cleanupSubscriptions();\n };\n }, []);\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 if (!resolvedDynamicEnvironmentId) {\n logger.logError(createBootstrapError(\n 'CONFIG_MISSING',\n 'Dynamic environment ID is required. Provide it via dynamicEnvironmentId prop or NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID.'\n ));\n return null;\n }\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <ThemingProvider colorOverrides={colorOverrides}>\n <NetworkProvider>\n <SessionProvider>\n <SigningProvider>\n <ModalProviderWrapper\n nord={nord}\n handleError={handleError}\n skipFinalScreen={skipFinalScreen}\n turnkeyEnabled={turnkeyEnabled}\n dynamicEnvironmentId={resolvedDynamicEnvironmentId}\n >\n {children}\n </ModalProviderWrapper>\n </SigningProvider>\n </SessionProvider>\n </NetworkProvider>\n </ThemingProvider>\n </WalletErrorBoundary>\n );\n}\n"]}
|
|
@@ -3,5 +3,9 @@ interface ShadowRootWrapperProps {
|
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
injectedCss: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Wraps children in a shadow DOM root to isolate styles from host application.
|
|
8
|
+
* Used for the connect button to prevent CSS conflicts.
|
|
9
|
+
*/
|
|
6
10
|
export declare function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
7
11
|
export {};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import root from 'react-shadow';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps children in a shadow DOM root to isolate styles from host application.
|
|
5
|
+
* Used for the connect button to prevent CSS conflicts.
|
|
6
|
+
*/
|
|
3
7
|
export function ShadowRootWrapper(_a) {
|
|
4
8
|
var children = _a.children, injectedCss = _a.injectedCss;
|
|
5
9
|
return (_jsxs(root.div, { children: [_jsx("style", { children: injectedCss }), children] }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShadowRootWrapper.js","sourceRoot":"","sources":["../../../src/providers/ShadowRootWrapper.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,cAAc,CAAC;AAOhC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAiD;QAA/C,QAAQ,cAAA,EAAE,WAAW,iBAAA;IACvD,OAAO,CACL,MAAC,IAAI,CAAC,GAAG,eACP,0BAAQ,WAAW,GAAS,EAC3B,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport root from 'react-shadow';\n\ninterface ShadowRootWrapperProps {\n children: React.ReactNode;\n injectedCss: string;\n}\n\n/**\n * Wraps children in a shadow DOM root to isolate styles from host application.\n * Used for the connect button to prevent CSS conflicts.\n */\nexport function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps) {\n return (\n <root.div>\n <style>{injectedCss}</style>\n {children}\n </root.div>\n );\n} \n"]}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { WalletError } from '../errors/types';
|
|
2
|
+
import { WalletError, N1Error } from '../errors/types';
|
|
3
3
|
type WalletErrorBoundaryProps = {
|
|
4
4
|
children: React.ReactNode;
|
|
5
|
-
onError: (error: WalletError) => void;
|
|
5
|
+
onError: (error: WalletError | N1Error) => void;
|
|
6
6
|
};
|
|
7
7
|
type WalletErrorBoundaryState = {
|
|
8
8
|
hasError: boolean;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* React error boundary that catches WalletErrors and unhandled exceptions.
|
|
12
|
+
* Converts unknown errors to WalletError format and calls onError callback.
|
|
13
|
+
* Resets error state when children change after an error.
|
|
14
|
+
*/
|
|
10
15
|
declare class WalletErrorBoundary extends React.Component<WalletErrorBoundaryProps, WalletErrorBoundaryState> {
|
|
11
16
|
state: WalletErrorBoundaryState;
|
|
12
17
|
static getDerivedStateFromError(): WalletErrorBoundaryState;
|
|
@@ -15,7 +15,11 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
})();
|
|
16
16
|
import React from 'react';
|
|
17
17
|
import { WalletError, WalletErrorCode } from '../errors/types';
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* React error boundary that catches WalletErrors and unhandled exceptions.
|
|
20
|
+
* Converts unknown errors to WalletError format and calls onError callback.
|
|
21
|
+
* Resets error state when children change after an error.
|
|
22
|
+
*/
|
|
19
23
|
var WalletErrorBoundary = /** @class */ (function (_super) {
|
|
20
24
|
__extends(WalletErrorBoundary, _super);
|
|
21
25
|
function WalletErrorBoundary() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../../src/providers/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAW,MAAM,iBAAiB,CAAC;AAWxE;;;;GAIG;AACH;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, N1Error } from '../errors/types';\n\ntype WalletErrorBoundaryProps = {\n children: React.ReactNode;\n onError: (error: WalletError | N1Error) => void;\n};\n\ntype WalletErrorBoundaryState = {\n hasError: boolean;\n};\n\n/**\n * React error boundary that catches WalletErrors and unhandled exceptions.\n * Converts unknown errors to WalletError format and calls onError callback.\n * Resets error state when children change after an error.\n */\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"]}
|