@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,252 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, } from 'react';
|
|
4
|
+
import { logger } from '../../utils/logger';
|
|
5
|
+
import { useWalletStore, getWalletActions } from '../../store';
|
|
6
|
+
import { createSolanaAdapter, createEVMAdapter } from '../../adapters';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Context
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
var NetworkContext = createContext(null);
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Hooks
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Hook to access network state and actions.
|
|
16
|
+
* Must be used within a NetworkProvider.
|
|
17
|
+
*/
|
|
18
|
+
export function useNetwork() {
|
|
19
|
+
var context = useContext(NetworkContext);
|
|
20
|
+
if (!context) {
|
|
21
|
+
throw new Error('useNetwork must be used within a NetworkProvider');
|
|
22
|
+
}
|
|
23
|
+
return context;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Hook to access network state only (no actions).
|
|
27
|
+
* Useful for components that only need to read state.
|
|
28
|
+
*/
|
|
29
|
+
export function useNetworkState() {
|
|
30
|
+
var _a = useNetwork(), walletNetwork = _a.walletNetwork, isSolanaMode = _a.isSolanaMode, isEvmMode = _a.isEvmMode, solanaAddress = _a.solanaAddress, evmAddress = _a.evmAddress, evmChain = _a.evmChain, preferredWalletNetwork = _a.preferredWalletNetwork, solanaWallet = _a.solanaWallet, evmWallet = _a.evmWallet, solanaAdapter = _a.solanaAdapter, evmAdapter = _a.evmAdapter, balances = _a.balances;
|
|
31
|
+
return {
|
|
32
|
+
walletNetwork: walletNetwork,
|
|
33
|
+
isSolanaMode: isSolanaMode,
|
|
34
|
+
isEvmMode: isEvmMode,
|
|
35
|
+
solanaAddress: solanaAddress,
|
|
36
|
+
evmAddress: evmAddress,
|
|
37
|
+
evmChain: evmChain,
|
|
38
|
+
preferredWalletNetwork: preferredWalletNetwork,
|
|
39
|
+
solanaWallet: solanaWallet,
|
|
40
|
+
evmWallet: evmWallet,
|
|
41
|
+
solanaAdapter: solanaAdapter,
|
|
42
|
+
evmAdapter: evmAdapter,
|
|
43
|
+
balances: balances,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Hook to access network actions only (no state).
|
|
48
|
+
* Useful for components that only need to trigger actions.
|
|
49
|
+
*/
|
|
50
|
+
export function useNetworkActions() {
|
|
51
|
+
var _a = useNetwork(), setSolanaAddress = _a.setSolanaAddress, setEvmAddress = _a.setEvmAddress, setEvmChain = _a.setEvmChain, setPreferredWalletNetwork = _a.setPreferredWalletNetwork, setSolanaWallet = _a.setSolanaWallet, setEvmWallet = _a.setEvmWallet, setBalances = _a.setBalances;
|
|
52
|
+
return {
|
|
53
|
+
setSolanaAddress: setSolanaAddress,
|
|
54
|
+
setEvmAddress: setEvmAddress,
|
|
55
|
+
setEvmChain: setEvmChain,
|
|
56
|
+
setPreferredWalletNetwork: setPreferredWalletNetwork,
|
|
57
|
+
setSolanaWallet: setSolanaWallet,
|
|
58
|
+
setEvmWallet: setEvmWallet,
|
|
59
|
+
setBalances: setBalances,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Provider
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
/**
|
|
66
|
+
* NetworkProvider manages wallet network state.
|
|
67
|
+
*
|
|
68
|
+
* Responsibilities:
|
|
69
|
+
* - Track which network is active (Solana vs EVM)
|
|
70
|
+
* - Store wallet addresses for both networks
|
|
71
|
+
* - Store wallet instances
|
|
72
|
+
* - Derive isSolanaMode/isEvmMode from walletNetwork
|
|
73
|
+
* - Auto-detect network from connected wallet
|
|
74
|
+
*
|
|
75
|
+
* Does NOT handle:
|
|
76
|
+
* - Modal state
|
|
77
|
+
* - Session/authentication state
|
|
78
|
+
* - Signing functions
|
|
79
|
+
* - Theming
|
|
80
|
+
*
|
|
81
|
+
* NOTE: Uses clean Zustand approach - reads/writes directly from store.
|
|
82
|
+
* TurnkeyProvider was fixed to not reset during bootstrap, preventing race conditions.
|
|
83
|
+
*/
|
|
84
|
+
export function NetworkProvider(_a) {
|
|
85
|
+
// -------------------------------------------------------------------------
|
|
86
|
+
// State from Store
|
|
87
|
+
// -------------------------------------------------------------------------
|
|
88
|
+
var children = _a.children;
|
|
89
|
+
var solanaAddress = useWalletStore(function (state) { return state.wallet.solanaAddress; });
|
|
90
|
+
var evmAddress = useWalletStore(function (state) { return state.wallet.evmAddress; });
|
|
91
|
+
var evmChain = useWalletStore(function (state) { return state.wallet.evmChain; });
|
|
92
|
+
var preferredWalletNetwork = useWalletStore(function (state) { return state.wallet.preferredNetwork; });
|
|
93
|
+
var solanaWallet = useWalletStore(function (state) { return state.wallet.solanaWallet; });
|
|
94
|
+
var evmWallet = useWalletStore(function (state) { return state.wallet.evmWallet; });
|
|
95
|
+
var walletNetwork = useWalletStore(function (state) { return state.wallet.network; });
|
|
96
|
+
var balances = useWalletStore(function (state) { return state.wallet.balances; });
|
|
97
|
+
// Get stable action references
|
|
98
|
+
var storeActions = getWalletActions().wallet;
|
|
99
|
+
// -------------------------------------------------------------------------
|
|
100
|
+
// Network Detection
|
|
101
|
+
// -------------------------------------------------------------------------
|
|
102
|
+
/**
|
|
103
|
+
* Auto-detect wallet network based on which wallet is connected.
|
|
104
|
+
* Priority: Solana wallet > EVM wallet > preferred network
|
|
105
|
+
*/
|
|
106
|
+
useEffect(function () {
|
|
107
|
+
if (solanaWallet) {
|
|
108
|
+
logger.debug('[NetworkProvider] Detected Solana wallet, setting network to solana');
|
|
109
|
+
storeActions.setNetwork('solana');
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (evmWallet) {
|
|
113
|
+
logger.debug('[NetworkProvider] Detected EVM wallet, setting network to evm');
|
|
114
|
+
storeActions.setNetwork('evm');
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
logger.debug('[NetworkProvider] No wallet connected, using preferred network', {
|
|
118
|
+
preferredWalletNetwork: preferredWalletNetwork,
|
|
119
|
+
});
|
|
120
|
+
storeActions.setNetwork(preferredWalletNetwork);
|
|
121
|
+
}, [solanaWallet, evmWallet, preferredWalletNetwork, storeActions]);
|
|
122
|
+
// -------------------------------------------------------------------------
|
|
123
|
+
// Derived State
|
|
124
|
+
// -------------------------------------------------------------------------
|
|
125
|
+
var isSolanaMode = walletNetwork === 'solana';
|
|
126
|
+
var isEvmMode = walletNetwork === 'evm';
|
|
127
|
+
// -------------------------------------------------------------------------
|
|
128
|
+
// Action Wrappers
|
|
129
|
+
// -------------------------------------------------------------------------
|
|
130
|
+
var setSolanaAddress = useCallback(function (address) { return storeActions.setSolanaAddress(address); }, [storeActions]);
|
|
131
|
+
var setEvmAddress = useCallback(function (address) {
|
|
132
|
+
if (typeof address === 'function') {
|
|
133
|
+
var currentAddress = useWalletStore.getState().wallet.evmAddress;
|
|
134
|
+
storeActions.setEvmAddress(address(currentAddress));
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
storeActions.setEvmAddress(address);
|
|
138
|
+
}
|
|
139
|
+
}, [storeActions]);
|
|
140
|
+
var setEvmChain = useCallback(function (chain) {
|
|
141
|
+
if (typeof chain === 'function') {
|
|
142
|
+
var currentChain = useWalletStore.getState().wallet.evmChain;
|
|
143
|
+
storeActions.setEvmChain(chain(currentChain));
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
storeActions.setEvmChain(chain);
|
|
147
|
+
}
|
|
148
|
+
}, [storeActions]);
|
|
149
|
+
var setPreferredWalletNetwork = useCallback(function (network) { return storeActions.setPreferredNetwork(network); }, [storeActions]);
|
|
150
|
+
var setSolanaWallet = useCallback(function (wallet) { return storeActions.setSolanaWallet(wallet); }, [storeActions]);
|
|
151
|
+
var setEvmWallet = useCallback(function (wallet) { return storeActions.setEvmWallet(wallet); }, [storeActions]);
|
|
152
|
+
var setBalances = useCallback(function (newBalances) { return storeActions.setBalances(newBalances); }, [storeActions]);
|
|
153
|
+
// -------------------------------------------------------------------------
|
|
154
|
+
// Wallet Adapters
|
|
155
|
+
// -------------------------------------------------------------------------
|
|
156
|
+
// Read adapters from store
|
|
157
|
+
var solanaAdapter = useWalletStore(function (state) { return state.wallet.solanaAdapter; });
|
|
158
|
+
var evmAdapter = useWalletStore(function (state) { return state.wallet.evmAdapter; });
|
|
159
|
+
// Track the wallet instance used to create the adapter to avoid recreating
|
|
160
|
+
var solanaWalletRef = useRef(null);
|
|
161
|
+
var evmWalletRef = useRef(null);
|
|
162
|
+
// Create/update Solana adapter when wallet changes and store it
|
|
163
|
+
useEffect(function () {
|
|
164
|
+
if (!solanaWallet) {
|
|
165
|
+
if (solanaWalletRef.current !== null) {
|
|
166
|
+
logger.debug('[NetworkProvider] Clearing Solana adapter');
|
|
167
|
+
storeActions.setSolanaAdapter(null);
|
|
168
|
+
solanaWalletRef.current = null;
|
|
169
|
+
}
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
// Only recreate if wallet instance changed
|
|
173
|
+
if (solanaWalletRef.current === solanaWallet) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
logger.debug('[NetworkProvider] Creating Solana adapter');
|
|
177
|
+
var adapter = createSolanaAdapter(solanaWallet);
|
|
178
|
+
storeActions.setSolanaAdapter(adapter);
|
|
179
|
+
solanaWalletRef.current = solanaWallet;
|
|
180
|
+
}, [solanaWallet, storeActions]);
|
|
181
|
+
// Create/update EVM adapter when wallet changes and store it
|
|
182
|
+
useEffect(function () {
|
|
183
|
+
if (!evmWallet) {
|
|
184
|
+
if (evmWalletRef.current !== null) {
|
|
185
|
+
logger.debug('[NetworkProvider] Clearing EVM adapter');
|
|
186
|
+
storeActions.setEvmAdapter(null);
|
|
187
|
+
evmWalletRef.current = null;
|
|
188
|
+
}
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
// Only recreate if wallet instance changed
|
|
192
|
+
if (evmWalletRef.current === evmWallet) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
logger.debug('[NetworkProvider] Creating EVM adapter');
|
|
196
|
+
var adapter = createEVMAdapter(evmWallet);
|
|
197
|
+
storeActions.setEvmAdapter(adapter);
|
|
198
|
+
evmWalletRef.current = evmWallet;
|
|
199
|
+
}, [evmWallet, storeActions]);
|
|
200
|
+
// -------------------------------------------------------------------------
|
|
201
|
+
// Context Value
|
|
202
|
+
// -------------------------------------------------------------------------
|
|
203
|
+
var value = useMemo(function () { return ({
|
|
204
|
+
// State
|
|
205
|
+
walletNetwork: walletNetwork,
|
|
206
|
+
isSolanaMode: isSolanaMode,
|
|
207
|
+
isEvmMode: isEvmMode,
|
|
208
|
+
solanaAddress: solanaAddress,
|
|
209
|
+
evmAddress: evmAddress,
|
|
210
|
+
evmChain: evmChain,
|
|
211
|
+
preferredWalletNetwork: preferredWalletNetwork,
|
|
212
|
+
solanaWallet: solanaWallet,
|
|
213
|
+
evmWallet: evmWallet,
|
|
214
|
+
solanaAdapter: solanaAdapter,
|
|
215
|
+
evmAdapter: evmAdapter,
|
|
216
|
+
balances: balances,
|
|
217
|
+
// Actions
|
|
218
|
+
setSolanaAddress: setSolanaAddress,
|
|
219
|
+
setEvmAddress: setEvmAddress,
|
|
220
|
+
setEvmChain: setEvmChain,
|
|
221
|
+
setPreferredWalletNetwork: setPreferredWalletNetwork,
|
|
222
|
+
setSolanaWallet: setSolanaWallet,
|
|
223
|
+
setEvmWallet: setEvmWallet,
|
|
224
|
+
setBalances: setBalances,
|
|
225
|
+
}); }, [
|
|
226
|
+
walletNetwork,
|
|
227
|
+
isSolanaMode,
|
|
228
|
+
isEvmMode,
|
|
229
|
+
solanaAddress,
|
|
230
|
+
evmAddress,
|
|
231
|
+
evmChain,
|
|
232
|
+
preferredWalletNetwork,
|
|
233
|
+
solanaWallet,
|
|
234
|
+
evmWallet,
|
|
235
|
+
solanaAdapter,
|
|
236
|
+
evmAdapter,
|
|
237
|
+
balances,
|
|
238
|
+
setSolanaAddress,
|
|
239
|
+
setEvmAddress,
|
|
240
|
+
setEvmChain,
|
|
241
|
+
setPreferredWalletNetwork,
|
|
242
|
+
setSolanaWallet,
|
|
243
|
+
setEvmWallet,
|
|
244
|
+
setBalances,
|
|
245
|
+
]);
|
|
246
|
+
return _jsx(NetworkContext.Provider, { value: value, children: children });
|
|
247
|
+
}
|
|
248
|
+
// ---------------------------------------------------------------------------
|
|
249
|
+
// Exports
|
|
250
|
+
// ---------------------------------------------------------------------------
|
|
251
|
+
export { NetworkContext };
|
|
252
|
+
//# sourceMappingURL=NetworkProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/NetworkProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport { logger } from '../../utils/logger';\nimport { useWalletStore, getWalletActions, WalletStore } from '../../store';\nimport { createSolanaAdapter, createEVMAdapter } from '../../adapters';\nimport type { SolanaWalletAdapter, EVMWalletAdapter } from '../../adapters';\nimport type { Balance } from '../../types/wallet';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type WalletNetworkType = 'solana' | 'evm' | null;\n\nexport interface NetworkState {\n /** Current active wallet network */\n walletNetwork: WalletNetworkType;\n /** Whether the wallet is in Solana mode */\n isSolanaMode: boolean;\n /** Whether the wallet is in EVM mode */\n isEvmMode: boolean;\n /** Solana wallet address */\n solanaAddress: string;\n /** EVM wallet address */\n evmAddress: string | null;\n /** Current EVM chain identifier */\n evmChain: string | null;\n /** User's preferred wallet network (before wallet connects) */\n preferredWalletNetwork: WalletNetworkType;\n /** The connected Solana wallet instance */\n solanaWallet: any;\n /** The connected EVM wallet instance */\n evmWallet: any;\n /** Unified Solana wallet adapter (null if not connected) */\n solanaAdapter: SolanaWalletAdapter | null;\n /** Unified EVM wallet adapter (null if not connected) */\n evmAdapter: EVMWalletAdapter | null;\n /** Token balances from the wallet */\n balances: Balance[];\n}\n\nexport interface NetworkActions {\n /** Set the Solana wallet address */\n setSolanaAddress: (address: string) => void;\n /** Set the EVM wallet address */\n setEvmAddress: React.Dispatch<React.SetStateAction<string | null>>;\n /** Set the current EVM chain */\n setEvmChain: React.Dispatch<React.SetStateAction<string | null>>;\n /** Set the preferred wallet network */\n setPreferredWalletNetwork: (network: WalletNetworkType) => void;\n /** Set the Solana wallet instance */\n setSolanaWallet: (wallet: any) => void;\n /** Set the EVM wallet instance */\n setEvmWallet: (wallet: any) => void;\n /** Set the token balances */\n setBalances: (balances: Balance[]) => void;\n}\n\nexport interface NetworkContextValue extends NetworkState, NetworkActions { }\n\nexport interface NetworkProviderProps {\n children: React.ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst NetworkContext = createContext<NetworkContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access network state and actions.\n * Must be used within a NetworkProvider.\n */\nexport function useNetwork(): NetworkContextValue {\n const context = useContext(NetworkContext);\n if (!context) {\n throw new Error('useNetwork must be used within a NetworkProvider');\n }\n return context;\n}\n\n/**\n * Hook to access network state only (no actions).\n * Useful for components that only need to read state.\n */\nexport function useNetworkState(): NetworkState {\n const {\n walletNetwork,\n isSolanaMode,\n isEvmMode,\n solanaAddress,\n evmAddress,\n evmChain,\n preferredWalletNetwork,\n solanaWallet,\n evmWallet,\n solanaAdapter,\n evmAdapter,\n balances,\n } = useNetwork();\n\n return {\n walletNetwork,\n isSolanaMode,\n isEvmMode,\n solanaAddress,\n evmAddress,\n evmChain,\n preferredWalletNetwork,\n solanaWallet,\n evmWallet,\n solanaAdapter,\n evmAdapter,\n balances,\n };\n}\n\n/**\n * Hook to access network actions only (no state).\n * Useful for components that only need to trigger actions.\n */\nexport function useNetworkActions(): NetworkActions {\n const {\n setSolanaAddress,\n setEvmAddress,\n setEvmChain,\n setPreferredWalletNetwork,\n setSolanaWallet,\n setEvmWallet,\n setBalances,\n } = useNetwork();\n\n return {\n setSolanaAddress,\n setEvmAddress,\n setEvmChain,\n setPreferredWalletNetwork,\n setSolanaWallet,\n setEvmWallet,\n setBalances,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * NetworkProvider manages wallet network state.\n *\n * Responsibilities:\n * - Track which network is active (Solana vs EVM)\n * - Store wallet addresses for both networks\n * - Store wallet instances\n * - Derive isSolanaMode/isEvmMode from walletNetwork\n * - Auto-detect network from connected wallet\n *\n * Does NOT handle:\n * - Modal state\n * - Session/authentication state\n * - Signing functions\n * - Theming\n *\n * NOTE: Uses clean Zustand approach - reads/writes directly from store.\n * TurnkeyProvider was fixed to not reset during bootstrap, preventing race conditions.\n */\nexport function NetworkProvider({ children }: NetworkProviderProps) {\n // -------------------------------------------------------------------------\n // State from Store\n // -------------------------------------------------------------------------\n\n const solanaAddress = useWalletStore((state: WalletStore) => state.wallet.solanaAddress);\n const evmAddress = useWalletStore((state: WalletStore) => state.wallet.evmAddress);\n const evmChain = useWalletStore((state: WalletStore) => state.wallet.evmChain);\n const preferredWalletNetwork = useWalletStore((state: WalletStore) => state.wallet.preferredNetwork);\n const solanaWallet = useWalletStore((state: WalletStore) => state.wallet.solanaWallet);\n const evmWallet = useWalletStore((state: WalletStore) => state.wallet.evmWallet);\n const walletNetwork = useWalletStore((state: WalletStore) => state.wallet.network);\n const balances = useWalletStore((state: WalletStore) => state.wallet.balances);\n\n // Get stable action references\n const storeActions = getWalletActions().wallet;\n\n // -------------------------------------------------------------------------\n // Network Detection\n // -------------------------------------------------------------------------\n\n /**\n * Auto-detect wallet network based on which wallet is connected.\n * Priority: Solana wallet > EVM wallet > preferred network\n */\n useEffect(() => {\n if (solanaWallet) {\n logger.debug('[NetworkProvider] Detected Solana wallet, setting network to solana');\n storeActions.setNetwork('solana');\n return;\n }\n if (evmWallet) {\n logger.debug('[NetworkProvider] Detected EVM wallet, setting network to evm');\n storeActions.setNetwork('evm');\n return;\n }\n logger.debug('[NetworkProvider] No wallet connected, using preferred network', {\n preferredWalletNetwork,\n });\n storeActions.setNetwork(preferredWalletNetwork);\n }, [solanaWallet, evmWallet, preferredWalletNetwork, storeActions]);\n\n // -------------------------------------------------------------------------\n // Derived State\n // -------------------------------------------------------------------------\n\n const isSolanaMode = walletNetwork === 'solana';\n const isEvmMode = walletNetwork === 'evm';\n\n // -------------------------------------------------------------------------\n // Action Wrappers\n // -------------------------------------------------------------------------\n\n const setSolanaAddress = useCallback(\n (address: string) => storeActions.setSolanaAddress(address),\n [storeActions]\n );\n\n const setEvmAddress = useCallback(\n (address: string | null | ((prev: string | null) => string | null)) => {\n if (typeof address === 'function') {\n const currentAddress = useWalletStore.getState().wallet.evmAddress;\n storeActions.setEvmAddress(address(currentAddress));\n } else {\n storeActions.setEvmAddress(address);\n }\n },\n [storeActions]\n );\n\n const setEvmChain = useCallback(\n (chain: string | null | ((prev: string | null) => string | null)) => {\n if (typeof chain === 'function') {\n const currentChain = useWalletStore.getState().wallet.evmChain;\n storeActions.setEvmChain(chain(currentChain));\n } else {\n storeActions.setEvmChain(chain);\n }\n },\n [storeActions]\n );\n\n const setPreferredWalletNetwork = useCallback(\n (network: WalletNetworkType) => storeActions.setPreferredNetwork(network),\n [storeActions]\n );\n\n const setSolanaWallet = useCallback(\n (wallet: any) => storeActions.setSolanaWallet(wallet),\n [storeActions]\n );\n\n const setEvmWallet = useCallback(\n (wallet: any) => storeActions.setEvmWallet(wallet),\n [storeActions]\n );\n\n const setBalances = useCallback(\n (newBalances: Balance[]) => storeActions.setBalances(newBalances),\n [storeActions]\n );\n\n // -------------------------------------------------------------------------\n // Wallet Adapters\n // -------------------------------------------------------------------------\n\n // Read adapters from store\n const solanaAdapter = useWalletStore((state: WalletStore) => state.wallet.solanaAdapter);\n const evmAdapter = useWalletStore((state: WalletStore) => state.wallet.evmAdapter);\n\n // Track the wallet instance used to create the adapter to avoid recreating\n const solanaWalletRef = useRef<any>(null);\n const evmWalletRef = useRef<any>(null);\n\n // Create/update Solana adapter when wallet changes and store it\n useEffect(() => {\n if (!solanaWallet) {\n if (solanaWalletRef.current !== null) {\n logger.debug('[NetworkProvider] Clearing Solana adapter');\n storeActions.setSolanaAdapter(null);\n solanaWalletRef.current = null;\n }\n return;\n }\n\n // Only recreate if wallet instance changed\n if (solanaWalletRef.current === solanaWallet) {\n return;\n }\n\n logger.debug('[NetworkProvider] Creating Solana adapter');\n const adapter = createSolanaAdapter(solanaWallet);\n storeActions.setSolanaAdapter(adapter);\n solanaWalletRef.current = solanaWallet;\n }, [solanaWallet, storeActions]);\n\n // Create/update EVM adapter when wallet changes and store it\n useEffect(() => {\n if (!evmWallet) {\n if (evmWalletRef.current !== null) {\n logger.debug('[NetworkProvider] Clearing EVM adapter');\n storeActions.setEvmAdapter(null);\n evmWalletRef.current = null;\n }\n return;\n }\n\n // Only recreate if wallet instance changed\n if (evmWalletRef.current === evmWallet) {\n return;\n }\n\n logger.debug('[NetworkProvider] Creating EVM adapter');\n const adapter = createEVMAdapter(evmWallet);\n storeActions.setEvmAdapter(adapter);\n evmWalletRef.current = evmWallet;\n }, [evmWallet, storeActions]);\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<NetworkContextValue>(\n () => ({\n // State\n walletNetwork,\n isSolanaMode,\n isEvmMode,\n solanaAddress,\n evmAddress,\n evmChain,\n preferredWalletNetwork,\n solanaWallet,\n evmWallet,\n solanaAdapter,\n evmAdapter,\n balances,\n // Actions\n setSolanaAddress,\n setEvmAddress,\n setEvmChain,\n setPreferredWalletNetwork,\n setSolanaWallet,\n setEvmWallet,\n setBalances,\n }),\n [\n walletNetwork,\n isSolanaMode,\n isEvmMode,\n solanaAddress,\n evmAddress,\n evmChain,\n preferredWalletNetwork,\n solanaWallet,\n evmWallet,\n solanaAdapter,\n evmAdapter,\n balances,\n setSolanaAddress,\n setEvmAddress,\n setEvmChain,\n setPreferredWalletNetwork,\n setSolanaWallet,\n setEvmWallet,\n setBalances,\n ]\n );\n\n return <NetworkContext.Provider value={value}>{children}</NetworkContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { NetworkContext };\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SessionState {
|
|
3
|
+
/** Whether a wallet is currently connected */
|
|
4
|
+
isConnected: boolean;
|
|
5
|
+
/** Session public key for signing */
|
|
6
|
+
sessionPubKey: Uint8Array | null;
|
|
7
|
+
/** Wallet public key */
|
|
8
|
+
walletPubKey: Uint8Array | null;
|
|
9
|
+
/** Nord user object containing session info */
|
|
10
|
+
nordUser: any;
|
|
11
|
+
/** Whether the provider is in a loading state */
|
|
12
|
+
loading: boolean;
|
|
13
|
+
/** Whether the Dynamic SDK has loaded */
|
|
14
|
+
dynamicSdkHasLoaded: boolean;
|
|
15
|
+
/** Whether Turnkey is enabled for this deployment */
|
|
16
|
+
turnkeyEnabled: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface SessionActions {
|
|
19
|
+
/** Set the connected state */
|
|
20
|
+
setIsConnected: React.Dispatch<React.SetStateAction<boolean>>;
|
|
21
|
+
/** Set the session public key */
|
|
22
|
+
setSessionPubKey: React.Dispatch<React.SetStateAction<Uint8Array | null>>;
|
|
23
|
+
/** Set the wallet public key */
|
|
24
|
+
setWalletPubKey: React.Dispatch<React.SetStateAction<Uint8Array | null>>;
|
|
25
|
+
/** Set the Nord user object */
|
|
26
|
+
setNordUser: React.Dispatch<React.SetStateAction<any>>;
|
|
27
|
+
/** Set the loading state */
|
|
28
|
+
setLoading: React.Dispatch<React.SetStateAction<boolean>>;
|
|
29
|
+
/** Set whether Dynamic SDK has loaded */
|
|
30
|
+
setDynamicSdkHasLoaded: React.Dispatch<React.SetStateAction<boolean>>;
|
|
31
|
+
}
|
|
32
|
+
export interface SessionContextValue extends SessionState, SessionActions {
|
|
33
|
+
}
|
|
34
|
+
export interface SessionProviderProps {
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
}
|
|
37
|
+
declare const SessionContext: React.Context<SessionContextValue | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Hook to access session state and actions.
|
|
40
|
+
* Must be used within a SessionProvider.
|
|
41
|
+
*/
|
|
42
|
+
export declare function useSession(): SessionContextValue;
|
|
43
|
+
/**
|
|
44
|
+
* Hook to access session state only (no actions).
|
|
45
|
+
* Useful for components that only need to read state.
|
|
46
|
+
*/
|
|
47
|
+
export declare function useSessionState(): SessionState;
|
|
48
|
+
/**
|
|
49
|
+
* Hook to access session actions only (no state).
|
|
50
|
+
* Useful for components that only need to trigger actions.
|
|
51
|
+
*/
|
|
52
|
+
export declare function useSessionActions(): SessionActions;
|
|
53
|
+
/**
|
|
54
|
+
* SessionProvider manages authentication and session state.
|
|
55
|
+
*
|
|
56
|
+
* Uses clean Zustand approach - reads/writes directly from store.
|
|
57
|
+
*
|
|
58
|
+
* Responsibilities:
|
|
59
|
+
* - Track wallet connection status
|
|
60
|
+
* - Store session and wallet public keys
|
|
61
|
+
* - Manage Nord user object
|
|
62
|
+
* - Track SDK loading state
|
|
63
|
+
*
|
|
64
|
+
* Does NOT handle:
|
|
65
|
+
* - Modal state
|
|
66
|
+
* - Network/chain state
|
|
67
|
+
* - Signing functions
|
|
68
|
+
* - Theming
|
|
69
|
+
*/
|
|
70
|
+
export declare function SessionProvider({ children }: SessionProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
export { SessionContext };
|
|
@@ -0,0 +1,187 @@
|
|
|
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 SessionContext = createContext(null);
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Hooks
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
/**
|
|
13
|
+
* Hook to access session state and actions.
|
|
14
|
+
* Must be used within a SessionProvider.
|
|
15
|
+
*/
|
|
16
|
+
export function useSession() {
|
|
17
|
+
var context = useContext(SessionContext);
|
|
18
|
+
if (!context) {
|
|
19
|
+
throw new Error('useSession must be used within a SessionProvider');
|
|
20
|
+
}
|
|
21
|
+
return context;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Hook to access session state only (no actions).
|
|
25
|
+
* Useful for components that only need to read state.
|
|
26
|
+
*/
|
|
27
|
+
export function useSessionState() {
|
|
28
|
+
var _a = useSession(), isConnected = _a.isConnected, sessionPubKey = _a.sessionPubKey, walletPubKey = _a.walletPubKey, nordUser = _a.nordUser, loading = _a.loading, dynamicSdkHasLoaded = _a.dynamicSdkHasLoaded, turnkeyEnabled = _a.turnkeyEnabled;
|
|
29
|
+
return {
|
|
30
|
+
isConnected: isConnected,
|
|
31
|
+
sessionPubKey: sessionPubKey,
|
|
32
|
+
walletPubKey: walletPubKey,
|
|
33
|
+
nordUser: nordUser,
|
|
34
|
+
loading: loading,
|
|
35
|
+
dynamicSdkHasLoaded: dynamicSdkHasLoaded,
|
|
36
|
+
turnkeyEnabled: turnkeyEnabled,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Hook to access session actions only (no state).
|
|
41
|
+
* Useful for components that only need to trigger actions.
|
|
42
|
+
*/
|
|
43
|
+
export function useSessionActions() {
|
|
44
|
+
var _a = useSession(), setIsConnected = _a.setIsConnected, setSessionPubKey = _a.setSessionPubKey, setWalletPubKey = _a.setWalletPubKey, setNordUser = _a.setNordUser, setLoading = _a.setLoading, setDynamicSdkHasLoaded = _a.setDynamicSdkHasLoaded;
|
|
45
|
+
return {
|
|
46
|
+
setIsConnected: setIsConnected,
|
|
47
|
+
setSessionPubKey: setSessionPubKey,
|
|
48
|
+
setWalletPubKey: setWalletPubKey,
|
|
49
|
+
setNordUser: setNordUser,
|
|
50
|
+
setLoading: setLoading,
|
|
51
|
+
setDynamicSdkHasLoaded: setDynamicSdkHasLoaded,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
// Provider
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
/**
|
|
58
|
+
* SessionProvider manages authentication and session state.
|
|
59
|
+
*
|
|
60
|
+
* Uses clean Zustand approach - reads/writes directly from store.
|
|
61
|
+
*
|
|
62
|
+
* Responsibilities:
|
|
63
|
+
* - Track wallet connection status
|
|
64
|
+
* - Store session and wallet public keys
|
|
65
|
+
* - Manage Nord user object
|
|
66
|
+
* - Track SDK loading state
|
|
67
|
+
*
|
|
68
|
+
* Does NOT handle:
|
|
69
|
+
* - Modal state
|
|
70
|
+
* - Network/chain state
|
|
71
|
+
* - Signing functions
|
|
72
|
+
* - Theming
|
|
73
|
+
*/
|
|
74
|
+
export function SessionProvider(_a) {
|
|
75
|
+
// -------------------------------------------------------------------------
|
|
76
|
+
// State from Store (individual selectors for optimal re-renders)
|
|
77
|
+
// -------------------------------------------------------------------------
|
|
78
|
+
var children = _a.children;
|
|
79
|
+
var isConnected = useWalletStore(function (state) { return state.session.isConnected; });
|
|
80
|
+
var sessionPubKey = useWalletStore(function (state) { return state.session.sessionPubKey; });
|
|
81
|
+
var walletPubKey = useWalletStore(function (state) { return state.session.walletPubKey; });
|
|
82
|
+
var nordUser = useWalletStore(function (state) { return state.session.nordUser; });
|
|
83
|
+
var loading = useWalletStore(function (state) { return state.session.loading; });
|
|
84
|
+
var dynamicSdkLoaded = useWalletStore(function (state) { return state.session.dynamicSdkLoaded; });
|
|
85
|
+
var turnkeyEnabled = useWalletStore(function (state) { return state.config.turnkeyEnabled; });
|
|
86
|
+
// -------------------------------------------------------------------------
|
|
87
|
+
// Store Actions (stable references via getWalletActions)
|
|
88
|
+
// -------------------------------------------------------------------------
|
|
89
|
+
var storeActions = getWalletActions().session;
|
|
90
|
+
// -------------------------------------------------------------------------
|
|
91
|
+
// Action Wrappers (compatible with React.Dispatch signature)
|
|
92
|
+
// -------------------------------------------------------------------------
|
|
93
|
+
var setIsConnected = useCallback(function (valueOrUpdater) {
|
|
94
|
+
if (typeof valueOrUpdater === 'function') {
|
|
95
|
+
var currentValue = useWalletStore.getState().session.isConnected;
|
|
96
|
+
storeActions.setIsConnected(valueOrUpdater(currentValue));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
storeActions.setIsConnected(valueOrUpdater);
|
|
100
|
+
}
|
|
101
|
+
}, [storeActions]);
|
|
102
|
+
var setSessionPubKey = useCallback(function (valueOrUpdater) {
|
|
103
|
+
if (typeof valueOrUpdater === 'function') {
|
|
104
|
+
var currentValue = useWalletStore.getState().session.sessionPubKey;
|
|
105
|
+
storeActions.setSessionPubKey(valueOrUpdater(currentValue));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
storeActions.setSessionPubKey(valueOrUpdater);
|
|
109
|
+
}
|
|
110
|
+
}, [storeActions]);
|
|
111
|
+
var setWalletPubKey = useCallback(function (valueOrUpdater) {
|
|
112
|
+
if (typeof valueOrUpdater === 'function') {
|
|
113
|
+
var currentValue = useWalletStore.getState().session.walletPubKey;
|
|
114
|
+
storeActions.setWalletPubKey(valueOrUpdater(currentValue));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
storeActions.setWalletPubKey(valueOrUpdater);
|
|
118
|
+
}
|
|
119
|
+
}, [storeActions]);
|
|
120
|
+
var setNordUser = useCallback(function (valueOrUpdater) {
|
|
121
|
+
if (typeof valueOrUpdater === 'function') {
|
|
122
|
+
var currentValue = useWalletStore.getState().session.nordUser;
|
|
123
|
+
storeActions.setNordUser(valueOrUpdater(currentValue));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
storeActions.setNordUser(valueOrUpdater);
|
|
127
|
+
}
|
|
128
|
+
}, [storeActions]);
|
|
129
|
+
var setLoading = useCallback(function (valueOrUpdater) {
|
|
130
|
+
if (typeof valueOrUpdater === 'function') {
|
|
131
|
+
var currentValue = useWalletStore.getState().session.loading;
|
|
132
|
+
storeActions.setLoading(valueOrUpdater(currentValue));
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
storeActions.setLoading(valueOrUpdater);
|
|
136
|
+
}
|
|
137
|
+
}, [storeActions]);
|
|
138
|
+
var setDynamicSdkHasLoaded = useCallback(function (valueOrUpdater) {
|
|
139
|
+
if (typeof valueOrUpdater === 'function') {
|
|
140
|
+
var currentValue = useWalletStore.getState().session.dynamicSdkLoaded;
|
|
141
|
+
storeActions.setDynamicSdkLoaded(valueOrUpdater(currentValue));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
storeActions.setDynamicSdkLoaded(valueOrUpdater);
|
|
145
|
+
}
|
|
146
|
+
}, [storeActions]);
|
|
147
|
+
// -------------------------------------------------------------------------
|
|
148
|
+
// Context Value
|
|
149
|
+
// -------------------------------------------------------------------------
|
|
150
|
+
var value = useMemo(function () { return ({
|
|
151
|
+
// State
|
|
152
|
+
isConnected: isConnected,
|
|
153
|
+
sessionPubKey: sessionPubKey,
|
|
154
|
+
walletPubKey: walletPubKey,
|
|
155
|
+
nordUser: nordUser,
|
|
156
|
+
loading: loading,
|
|
157
|
+
dynamicSdkHasLoaded: dynamicSdkLoaded,
|
|
158
|
+
turnkeyEnabled: turnkeyEnabled,
|
|
159
|
+
// Actions
|
|
160
|
+
setIsConnected: setIsConnected,
|
|
161
|
+
setSessionPubKey: setSessionPubKey,
|
|
162
|
+
setWalletPubKey: setWalletPubKey,
|
|
163
|
+
setNordUser: setNordUser,
|
|
164
|
+
setLoading: setLoading,
|
|
165
|
+
setDynamicSdkHasLoaded: setDynamicSdkHasLoaded,
|
|
166
|
+
}); }, [
|
|
167
|
+
isConnected,
|
|
168
|
+
sessionPubKey,
|
|
169
|
+
walletPubKey,
|
|
170
|
+
nordUser,
|
|
171
|
+
loading,
|
|
172
|
+
dynamicSdkLoaded,
|
|
173
|
+
turnkeyEnabled,
|
|
174
|
+
setIsConnected,
|
|
175
|
+
setSessionPubKey,
|
|
176
|
+
setWalletPubKey,
|
|
177
|
+
setNordUser,
|
|
178
|
+
setLoading,
|
|
179
|
+
setDynamicSdkHasLoaded,
|
|
180
|
+
]);
|
|
181
|
+
return _jsx(SessionContext.Provider, { value: value, children: children });
|
|
182
|
+
}
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
// Exports
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
export { SessionContext };
|
|
187
|
+
//# sourceMappingURL=SessionProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/SessionProvider.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\nexport interface SessionState {\n /** Whether a wallet is currently connected */\n isConnected: boolean;\n /** Session public key for signing */\n sessionPubKey: Uint8Array | null;\n /** Wallet public key */\n walletPubKey: Uint8Array | null;\n /** Nord user object containing session info */\n nordUser: any;\n /** Whether the provider is in a loading state */\n loading: boolean;\n /** Whether the Dynamic SDK has loaded */\n dynamicSdkHasLoaded: boolean;\n /** Whether Turnkey is enabled for this deployment */\n turnkeyEnabled: boolean;\n}\n\nexport interface SessionActions {\n /** Set the connected state */\n setIsConnected: React.Dispatch<React.SetStateAction<boolean>>;\n /** Set the session public key */\n setSessionPubKey: React.Dispatch<React.SetStateAction<Uint8Array | null>>;\n /** Set the wallet public key */\n setWalletPubKey: React.Dispatch<React.SetStateAction<Uint8Array | null>>;\n /** Set the Nord user object */\n setNordUser: React.Dispatch<React.SetStateAction<any>>;\n /** Set the loading state */\n setLoading: React.Dispatch<React.SetStateAction<boolean>>;\n /** Set whether Dynamic SDK has loaded */\n setDynamicSdkHasLoaded: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport interface SessionContextValue extends SessionState, SessionActions { }\n\nexport interface SessionProviderProps {\n children: React.ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst SessionContext = createContext<SessionContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access session state and actions.\n * Must be used within a SessionProvider.\n */\nexport function useSession(): SessionContextValue {\n const context = useContext(SessionContext);\n if (!context) {\n throw new Error('useSession must be used within a SessionProvider');\n }\n return context;\n}\n\n/**\n * Hook to access session state only (no actions).\n * Useful for components that only need to read state.\n */\nexport function useSessionState(): SessionState {\n const {\n isConnected,\n sessionPubKey,\n walletPubKey,\n nordUser,\n loading,\n dynamicSdkHasLoaded,\n turnkeyEnabled,\n } = useSession();\n\n return {\n isConnected,\n sessionPubKey,\n walletPubKey,\n nordUser,\n loading,\n dynamicSdkHasLoaded,\n turnkeyEnabled,\n };\n}\n\n/**\n * Hook to access session actions only (no state).\n * Useful for components that only need to trigger actions.\n */\nexport function useSessionActions(): SessionActions {\n const {\n setIsConnected,\n setSessionPubKey,\n setWalletPubKey,\n setNordUser,\n setLoading,\n setDynamicSdkHasLoaded,\n } = useSession();\n\n return {\n setIsConnected,\n setSessionPubKey,\n setWalletPubKey,\n setNordUser,\n setLoading,\n setDynamicSdkHasLoaded,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * SessionProvider manages authentication and session state.\n *\n * Uses clean Zustand approach - reads/writes directly from store.\n *\n * Responsibilities:\n * - Track wallet connection status\n * - Store session and wallet public keys\n * - Manage Nord user object\n * - Track SDK loading state\n *\n * Does NOT handle:\n * - Modal state\n * - Network/chain state\n * - Signing functions\n * - Theming\n */\nexport function SessionProvider({ children }: SessionProviderProps) {\n // -------------------------------------------------------------------------\n // State from Store (individual selectors for optimal re-renders)\n // -------------------------------------------------------------------------\n\n const isConnected = useWalletStore((state: WalletStore) => state.session.isConnected);\n const sessionPubKey = useWalletStore((state: WalletStore) => state.session.sessionPubKey);\n const walletPubKey = useWalletStore((state: WalletStore) => state.session.walletPubKey);\n const nordUser = useWalletStore((state: WalletStore) => state.session.nordUser);\n const loading = useWalletStore((state: WalletStore) => state.session.loading);\n const dynamicSdkLoaded = useWalletStore((state: WalletStore) => state.session.dynamicSdkLoaded);\n const turnkeyEnabled = useWalletStore((state: WalletStore) => state.config.turnkeyEnabled);\n\n // -------------------------------------------------------------------------\n // Store Actions (stable references via getWalletActions)\n // -------------------------------------------------------------------------\n\n const storeActions = getWalletActions().session;\n\n // -------------------------------------------------------------------------\n // Action Wrappers (compatible with React.Dispatch signature)\n // -------------------------------------------------------------------------\n\n const setIsConnected = useCallback<React.Dispatch<React.SetStateAction<boolean>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().session.isConnected;\n storeActions.setIsConnected(valueOrUpdater(currentValue));\n } else {\n storeActions.setIsConnected(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setSessionPubKey = useCallback<React.Dispatch<React.SetStateAction<Uint8Array | null>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().session.sessionPubKey;\n storeActions.setSessionPubKey(valueOrUpdater(currentValue));\n } else {\n storeActions.setSessionPubKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setWalletPubKey = useCallback<React.Dispatch<React.SetStateAction<Uint8Array | null>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().session.walletPubKey;\n storeActions.setWalletPubKey(valueOrUpdater(currentValue));\n } else {\n storeActions.setWalletPubKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setNordUser = useCallback<React.Dispatch<React.SetStateAction<any>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().session.nordUser;\n storeActions.setNordUser(valueOrUpdater(currentValue));\n } else {\n storeActions.setNordUser(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setLoading = useCallback<React.Dispatch<React.SetStateAction<boolean>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().session.loading;\n storeActions.setLoading(valueOrUpdater(currentValue));\n } else {\n storeActions.setLoading(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setDynamicSdkHasLoaded = useCallback<React.Dispatch<React.SetStateAction<boolean>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().session.dynamicSdkLoaded;\n storeActions.setDynamicSdkLoaded(valueOrUpdater(currentValue));\n } else {\n storeActions.setDynamicSdkLoaded(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<SessionContextValue>(\n () => ({\n // State\n isConnected,\n sessionPubKey,\n walletPubKey,\n nordUser,\n loading,\n dynamicSdkHasLoaded: dynamicSdkLoaded,\n turnkeyEnabled,\n // Actions\n setIsConnected,\n setSessionPubKey,\n setWalletPubKey,\n setNordUser,\n setLoading,\n setDynamicSdkHasLoaded,\n }),\n [\n isConnected,\n sessionPubKey,\n walletPubKey,\n nordUser,\n loading,\n dynamicSdkLoaded,\n turnkeyEnabled,\n setIsConnected,\n setSessionPubKey,\n setWalletPubKey,\n setNordUser,\n setLoading,\n setDynamicSdkHasLoaded,\n ]\n );\n\n return <SessionContext.Provider value={value}>{children}</SessionContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { SessionContext };\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/** Generic signing function type */
|
|
3
|
+
export type SigningFunction<T = unknown, R = unknown> = ((input: T) => Promise<R>) | null;
|
|
4
|
+
export interface SigningState {
|
|
5
|
+
/** Function to sign messages with the session key */
|
|
6
|
+
signMessageWithSessionKey: SigningFunction;
|
|
7
|
+
/** Function to sign messages with the wallet key */
|
|
8
|
+
signMessageWithWalletKey: SigningFunction;
|
|
9
|
+
/** Function to sign transactions with the wallet key */
|
|
10
|
+
signTransactionWithWalletKey: SigningFunction;
|
|
11
|
+
}
|
|
12
|
+
export interface SigningActions {
|
|
13
|
+
/** Set the session key signing function */
|
|
14
|
+
setSignMessageWithSessionKey: React.Dispatch<React.SetStateAction<SigningFunction>>;
|
|
15
|
+
/** Set the wallet key message signing function */
|
|
16
|
+
setSignMessageWithWalletKey: React.Dispatch<React.SetStateAction<SigningFunction>>;
|
|
17
|
+
/** Set the wallet key transaction signing function */
|
|
18
|
+
setSignTransactionWithWalletKey: React.Dispatch<React.SetStateAction<SigningFunction>>;
|
|
19
|
+
}
|
|
20
|
+
export interface SigningContextValue extends SigningState, SigningActions {
|
|
21
|
+
}
|
|
22
|
+
export interface SigningProviderProps {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
declare const SigningContext: React.Context<SigningContextValue | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Hook to access signing state and actions.
|
|
28
|
+
* Must be used within a SigningProvider.
|
|
29
|
+
*/
|
|
30
|
+
export declare function useSigning(): SigningContextValue;
|
|
31
|
+
/**
|
|
32
|
+
* Hook to access signing functions only (no setters).
|
|
33
|
+
* Useful for components that only need to sign.
|
|
34
|
+
*/
|
|
35
|
+
export declare function useSigningState(): SigningState;
|
|
36
|
+
/**
|
|
37
|
+
* Hook to access signing setters only (no functions).
|
|
38
|
+
* Useful for components that register signing functions.
|
|
39
|
+
*/
|
|
40
|
+
export declare function useSigningActions(): SigningActions;
|
|
41
|
+
/**
|
|
42
|
+
* SigningProvider manages signing functions for wallet operations.
|
|
43
|
+
*
|
|
44
|
+
* Uses clean Zustand approach - reads/writes directly from store.
|
|
45
|
+
*
|
|
46
|
+
* Responsibilities:
|
|
47
|
+
* - Store and provide signing functions
|
|
48
|
+
* - Support session key signing
|
|
49
|
+
* - Support wallet key signing (messages and transactions)
|
|
50
|
+
*
|
|
51
|
+
* Does NOT handle:
|
|
52
|
+
* - Modal state
|
|
53
|
+
* - Network/chain state
|
|
54
|
+
* - Session/authentication state
|
|
55
|
+
* - Theming
|
|
56
|
+
*/
|
|
57
|
+
export declare function SigningProvider({ children }: SigningProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
export { SigningContext };
|