@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,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages persistence of a single Turnkey session key in localStorage.
|
|
3
|
+
* Stores the session key and associated metadata (EVM address, Solana account).
|
|
4
|
+
* Only one session is active at a time.
|
|
5
|
+
*/
|
|
6
|
+
import { logger } from '../utils/logger';
|
|
7
|
+
import { normalizeEVMAddressLowercase } from '../utils/address';
|
|
8
|
+
var STORAGE_KEY = 'n1_turnkey_session_v1';
|
|
9
|
+
var CLIENT_WALLET_KEY = 'n1_turnkey_client_wallet';
|
|
10
|
+
var readState = function () {
|
|
11
|
+
var startTime = Date.now();
|
|
12
|
+
// logger.debug("[TurnkeyStorage] [readState] Starting");
|
|
13
|
+
if (typeof window === 'undefined') {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
var raw = window.localStorage.getItem(STORAGE_KEY);
|
|
18
|
+
if (!raw) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
var parsed = JSON.parse(raw);
|
|
22
|
+
// Validate structure roughly
|
|
23
|
+
if (parsed && typeof parsed === 'object' && parsed.sessionKey) {
|
|
24
|
+
return parsed;
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
logger.warn("[TurnkeyStorage] [readState] Error reading state", {
|
|
30
|
+
error: error,
|
|
31
|
+
duration: "".concat(Date.now() - startTime, "ms"),
|
|
32
|
+
});
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var persistState = function (state) {
|
|
37
|
+
var startTime = Date.now();
|
|
38
|
+
if (typeof window === 'undefined') {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
if (!state) {
|
|
43
|
+
window.localStorage.removeItem(STORAGE_KEY);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
var serialized = JSON.stringify(state);
|
|
47
|
+
window.localStorage.setItem(STORAGE_KEY, serialized);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
logger.warn("[TurnkeyStorage] [persistState] Storage failure", {
|
|
51
|
+
error: error,
|
|
52
|
+
duration: "".concat(Date.now() - startTime, "ms"),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Normalizes an EVM address to lowercase for consistent storage lookups.
|
|
58
|
+
* Uses centralized address normalization utility.
|
|
59
|
+
*/
|
|
60
|
+
var normalizeAddress = function (address) {
|
|
61
|
+
return address ? normalizeEVMAddressLowercase(address) || null : null;
|
|
62
|
+
};
|
|
63
|
+
export function readTurnkeyClientAddress() {
|
|
64
|
+
if (typeof window === 'undefined') {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
var raw = window.localStorage.getItem(CLIENT_WALLET_KEY);
|
|
69
|
+
return normalizeAddress(raw);
|
|
70
|
+
}
|
|
71
|
+
catch (_a) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function storeTurnkeyClientAddress(address) {
|
|
76
|
+
if (typeof window === 'undefined') {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
var normalized = normalizeAddress(address);
|
|
80
|
+
if (!normalized) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
window.localStorage.setItem(CLIENT_WALLET_KEY, normalized);
|
|
85
|
+
}
|
|
86
|
+
catch (_a) {
|
|
87
|
+
// ignore
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Stores a Turnkey session key. Replaces any existing session.
|
|
92
|
+
*/
|
|
93
|
+
export function storeTurnkeySessionKey(address, sessionKey, options) {
|
|
94
|
+
var _a, _b, _c;
|
|
95
|
+
var startTime = Date.now();
|
|
96
|
+
if (typeof window === 'undefined') {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
var normalized = normalizeAddress(address);
|
|
100
|
+
if (!normalized) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
var current = readState();
|
|
104
|
+
var existingSolanaAccount = null;
|
|
105
|
+
if (current && normalizeAddress(current.evmAddress) === normalized) {
|
|
106
|
+
existingSolanaAccount = (_a = current.solanaAccount) !== null && _a !== void 0 ? _a : null;
|
|
107
|
+
}
|
|
108
|
+
var entry = {
|
|
109
|
+
sessionKey: sessionKey,
|
|
110
|
+
evmAddress: (_b = options === null || options === void 0 ? void 0 : options.evmAddress) !== null && _b !== void 0 ? _b : normalized,
|
|
111
|
+
solanaAccount: (_c = options === null || options === void 0 ? void 0 : options.solanaAccount) !== null && _c !== void 0 ? _c : existingSolanaAccount,
|
|
112
|
+
session: options === null || options === void 0 ? void 0 : options.session,
|
|
113
|
+
};
|
|
114
|
+
persistState(entry);
|
|
115
|
+
logger.debug("[TurnkeyStorage] [storeTurnkeySessionKey] Stored session", {
|
|
116
|
+
address: normalized.substring(0, 10) + "...",
|
|
117
|
+
duration: "".concat(Date.now() - startTime, "ms"),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
export function updateTurnkeyStoredSolanaAccount(address, solanaAccount) {
|
|
121
|
+
var normalized = normalizeAddress(address);
|
|
122
|
+
if (!normalized) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
var currentSession = readState();
|
|
126
|
+
// Only update if the session belongs to the address
|
|
127
|
+
if (!currentSession || normalizeAddress(currentSession.evmAddress) !== normalized) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
currentSession.solanaAccount = solanaAccount;
|
|
131
|
+
persistState(currentSession);
|
|
132
|
+
logger.debug("[TurnkeyStorage] [updateTurnkeyStoredSolanaAccount] Updated", {
|
|
133
|
+
walletId: solanaAccount.walletId,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Clears the stored Turnkey session.
|
|
138
|
+
*/
|
|
139
|
+
export function clearTurnkeySessionKey(address) {
|
|
140
|
+
// If address is provided, only clear if it matches?
|
|
141
|
+
// For now, user requested "only storing one turnkey session", so clearing usually means clearing the current one.
|
|
142
|
+
// But if an address is passed, we should probably check if the stored session matches it before clearing?
|
|
143
|
+
// The previous implementation supported clearing specific address.
|
|
144
|
+
// The user said "when we call logout on turnkey client we should clean up sessions".
|
|
145
|
+
// Simplest is just clearing everything since we only store one.
|
|
146
|
+
if (address) {
|
|
147
|
+
var current = readState();
|
|
148
|
+
var normalized = normalizeAddress(address);
|
|
149
|
+
if (current && normalizeAddress(current.evmAddress) !== normalized) {
|
|
150
|
+
// Do not clear if it belongs to someone else (unlikely given one session, but safe)
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
persistState(null);
|
|
155
|
+
logger.debug("[TurnkeyStorage] [clearTurnkeySessionKey] Cleared session");
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Retrieves the stored Turnkey session.
|
|
159
|
+
* If address is provided, validates that the session belongs to that address.
|
|
160
|
+
*/
|
|
161
|
+
export function readTurnkeyStoredSession(address) {
|
|
162
|
+
var session = readState();
|
|
163
|
+
if (!session) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
if (address) {
|
|
167
|
+
var normalized = normalizeAddress(address);
|
|
168
|
+
var sessionAddress = normalizeAddress(session.evmAddress);
|
|
169
|
+
if (normalized && sessionAddress !== normalized) {
|
|
170
|
+
logger.debug("[TurnkeyStorage] [readTurnkeyStoredSession] Session address mismatch", {
|
|
171
|
+
expected: normalized,
|
|
172
|
+
actual: sessionAddress
|
|
173
|
+
});
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return session;
|
|
178
|
+
}
|
|
179
|
+
export function readTurnkeySessionKey(address) {
|
|
180
|
+
var _a, _b;
|
|
181
|
+
return (_b = (_a = readTurnkeyStoredSession(address)) === null || _a === void 0 ? void 0 : _a.sessionKey) !== null && _b !== void 0 ? _b : null;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=turnkeySessionStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turnkeySessionStorage.js","sourceRoot":"","sources":["../../../src/turnkey/turnkeySessionStorage.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Manages persistence of a single Turnkey session key in localStorage.\n * Stores the session key and associated metadata (EVM address, Solana account).\n * Only one session is active at a time.\n */\nimport { logger } from '../utils/logger';\nimport { normalizeEVMAddressLowercase } from '../utils/address';\n\nconst STORAGE_KEY = 'n1_turnkey_session_v1';\nconst CLIENT_WALLET_KEY = 'n1_turnkey_client_wallet';\n\n/**\n * Internal storage structure for Turnkey session.\n */\nexport interface StoredSessionEntry {\n sessionKey: string;\n evmAddress?: string | null;\n solanaAccount?: {\n walletId: string;\n account: {\n address: string;\n addressFormat?: string;\n };\n } | null;\n session?: unknown;\n}\n\nconst readState = (): StoredSessionEntry | null => {\n const startTime = Date.now();\n // logger.debug(\"[TurnkeyStorage] [readState] Starting\");\n\n if (typeof window === 'undefined') {\n return null;\n }\n\n try {\n const raw = window.localStorage.getItem(STORAGE_KEY);\n \n if (!raw) {\n return null;\n }\n\n const parsed = JSON.parse(raw);\n \n // Validate structure roughly\n if (parsed && typeof parsed === 'object' && parsed.sessionKey) {\n return parsed as StoredSessionEntry;\n }\n \n return null;\n } catch (error) {\n logger.warn(\"[TurnkeyStorage] [readState] Error reading state\", {\n error,\n duration: `${Date.now() - startTime}ms`,\n });\n return null;\n }\n};\n\nconst persistState = (state: StoredSessionEntry | null) => {\n const startTime = Date.now();\n \n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n if (!state) {\n window.localStorage.removeItem(STORAGE_KEY);\n return;\n }\n\n const serialized = JSON.stringify(state);\n window.localStorage.setItem(STORAGE_KEY, serialized);\n \n } catch (error) {\n logger.warn(\"[TurnkeyStorage] [persistState] Storage failure\", {\n error,\n duration: `${Date.now() - startTime}ms`,\n });\n }\n};\n\n/**\n * Normalizes an EVM address to lowercase for consistent storage lookups.\n * Uses centralized address normalization utility.\n */\nconst normalizeAddress = (address?: string | null): string | null =>\n address ? normalizeEVMAddressLowercase(address) || null : null;\n\nexport function readTurnkeyClientAddress(): string | null {\n if (typeof window === 'undefined') {\n return null;\n }\n try {\n const raw = window.localStorage.getItem(CLIENT_WALLET_KEY);\n return normalizeAddress(raw);\n } catch {\n return null;\n }\n}\n\nexport function storeTurnkeyClientAddress(address: string | null) {\n if (typeof window === 'undefined') {\n return;\n }\n const normalized = normalizeAddress(address);\n if (!normalized) {\n return;\n }\n try {\n window.localStorage.setItem(CLIENT_WALLET_KEY, normalized);\n } catch {\n // ignore\n }\n}\n\n/**\n * Stores a Turnkey session key. Replaces any existing session.\n */\nexport function storeTurnkeySessionKey(\n address: string,\n sessionKey: string,\n options?: {\n evmAddress?: string | null;\n solanaAccount?: {\n walletId: string;\n account: { address: string; addressFormat?: string };\n } | null;\n session?: unknown;\n }\n) {\n const startTime = Date.now();\n \n if (typeof window === 'undefined') {\n return;\n }\n\n const normalized = normalizeAddress(address);\n if (!normalized) {\n return;\n }\n\n const current = readState();\n let existingSolanaAccount: StoredSessionEntry['solanaAccount'] = null;\n if (current && normalizeAddress(current.evmAddress) === normalized) {\n existingSolanaAccount = current.solanaAccount ?? null;\n }\n\n const entry: StoredSessionEntry = {\n sessionKey,\n evmAddress: options?.evmAddress ?? normalized,\n solanaAccount: options?.solanaAccount ?? existingSolanaAccount,\n session: options?.session,\n };\n\n persistState(entry);\n \n logger.debug(\"[TurnkeyStorage] [storeTurnkeySessionKey] Stored session\", {\n address: normalized.substring(0, 10) + \"...\",\n duration: `${Date.now() - startTime}ms`,\n });\n}\n\nexport function updateTurnkeyStoredSolanaAccount(\n address: string,\n solanaAccount: { walletId: string; account: { address: string; addressFormat?: string } }\n) {\n const normalized = normalizeAddress(address);\n if (!normalized) {\n return;\n }\n \n const currentSession = readState();\n \n // Only update if the session belongs to the address\n if (!currentSession || normalizeAddress(currentSession.evmAddress) !== normalized) {\n return;\n }\n\n currentSession.solanaAccount = solanaAccount;\n persistState(currentSession);\n \n logger.debug(\"[TurnkeyStorage] [updateTurnkeyStoredSolanaAccount] Updated\", {\n walletId: solanaAccount.walletId,\n });\n}\n\n/**\n * Clears the stored Turnkey session.\n */\nexport function clearTurnkeySessionKey(address?: string | null) {\n // If address is provided, only clear if it matches?\n // For now, user requested \"only storing one turnkey session\", so clearing usually means clearing the current one.\n // But if an address is passed, we should probably check if the stored session matches it before clearing?\n // The previous implementation supported clearing specific address.\n // The user said \"when we call logout on turnkey client we should clean up sessions\".\n // Simplest is just clearing everything since we only store one.\n \n if (address) {\n const current = readState();\n const normalized = normalizeAddress(address);\n if (current && normalizeAddress(current.evmAddress) !== normalized) {\n // Do not clear if it belongs to someone else (unlikely given one session, but safe)\n return;\n }\n }\n \n persistState(null);\n logger.debug(\"[TurnkeyStorage] [clearTurnkeySessionKey] Cleared session\");\n}\n\n/**\n * Retrieves the stored Turnkey session.\n * If address is provided, validates that the session belongs to that address.\n */\nexport function readTurnkeyStoredSession(\n address?: string | null\n): StoredSessionEntry | null {\n const session = readState();\n \n if (!session) {\n return null;\n }\n\n if (address) {\n const normalized = normalizeAddress(address);\n const sessionAddress = normalizeAddress(session.evmAddress);\n \n if (normalized && sessionAddress !== normalized) {\n logger.debug(\"[TurnkeyStorage] [readTurnkeyStoredSession] Session address mismatch\", {\n expected: normalized,\n actual: sessionAddress\n });\n return null;\n }\n }\n\n return session;\n}\n\nexport function readTurnkeySessionKey(address?: string | null): string | null {\n return readTurnkeyStoredSession(address)?.sessionKey ?? null;\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CreateWalletParams, SignMessageParams, Wallet } from "@turnkey/core";
|
|
2
2
|
import type { Session, v1SignRawPayloadResult } from "@turnkey/sdk-types";
|
|
3
|
+
export type TurnkeyBootstrapStatus = "idle" | "authenticating" | "creating" | "ready" | "error";
|
|
3
4
|
export interface TurnkeyProviderConfig {
|
|
4
5
|
organizationId: string;
|
|
5
6
|
authProxyConfigId: string;
|
|
@@ -11,7 +12,7 @@ export interface TurnkeyProviderConfig {
|
|
|
11
12
|
*/
|
|
12
13
|
sessionExpirationSeconds?: string;
|
|
13
14
|
}
|
|
14
|
-
export declare enum
|
|
15
|
+
export declare enum TurnkeyAuthState {
|
|
15
16
|
Unauthenticated = "unauthenticated",
|
|
16
17
|
Authenticating = "authenticating",
|
|
17
18
|
Authenticated = "authenticated"
|
|
@@ -32,17 +33,29 @@ export interface DynamicEvmWallet {
|
|
|
32
33
|
icon?: string;
|
|
33
34
|
};
|
|
34
35
|
getNetwork?: () => Promise<string | number | undefined>;
|
|
36
|
+
getWalletClient?: (chainId?: number) => Promise<any>;
|
|
37
|
+
getProvider?: () => Promise<any>;
|
|
35
38
|
signMessage?: (message: string, withAddress?: string) => Promise<string | undefined>;
|
|
36
39
|
};
|
|
37
40
|
}
|
|
38
41
|
export interface TurnkeyContextValue {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
turnkeyAuthState: TurnkeyAuthState;
|
|
43
|
+
turnkeySession: TurnkeySession | null;
|
|
44
|
+
turnkeyWallets: Wallet[];
|
|
45
|
+
isHydratingSession: boolean;
|
|
46
|
+
turnkeyStatus: TurnkeyBootstrapStatus;
|
|
47
|
+
turnkeyError: string | null;
|
|
48
|
+
turnkeyAddress: string | null;
|
|
49
|
+
createTurnkeyWallet: (params: CreateWalletParams) => Promise<unknown>;
|
|
50
|
+
refreshTurnkeyWallets: (options?: {
|
|
51
|
+
force?: boolean;
|
|
52
|
+
}) => Promise<Wallet[]>;
|
|
53
|
+
signTurnkeyMessage: (params: SignMessageParams) => Promise<v1SignRawPayloadResult>;
|
|
54
|
+
waitForSessionHydration: (expectedWalletAddress?: string | null) => Promise<void>;
|
|
55
|
+
loginWithTurnkeyWallet: (wallet: DynamicEvmWallet, options?: {
|
|
46
56
|
sessionKey?: string;
|
|
57
|
+
forceLogin?: boolean;
|
|
47
58
|
}) => Promise<void>;
|
|
59
|
+
prepareTurnkeyWallet: () => Promise<void>;
|
|
60
|
+
retryTurnkeyBootstrap: () => void;
|
|
48
61
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Turnkey integration.
|
|
3
|
+
* Includes provider configuration, authentication state, session management, and Dynamic wallet compatibility.
|
|
4
|
+
*/
|
|
5
|
+
"use client";
|
|
6
|
+
export var TurnkeyAuthState;
|
|
7
|
+
(function (TurnkeyAuthState) {
|
|
8
|
+
TurnkeyAuthState["Unauthenticated"] = "unauthenticated";
|
|
9
|
+
TurnkeyAuthState["Authenticating"] = "authenticating";
|
|
10
|
+
TurnkeyAuthState["Authenticated"] = "authenticated";
|
|
11
|
+
})(TurnkeyAuthState || (TurnkeyAuthState = {}));
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/turnkey/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC;AA4Bb,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,qDAAiC,CAAA;IACjC,mDAA+B,CAAA;AACjC,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B","sourcesContent":["/**\n * Type definitions for Turnkey integration.\n * Includes provider configuration, authentication state, session management, and Dynamic wallet compatibility.\n */\n\"use client\";\n\nimport type {\n CreateWalletParams,\n SignMessageParams,\n Wallet,\n} from \"@turnkey/core\";\nimport type { Session, v1SignRawPayloadResult } from \"@turnkey/sdk-types\";\n\nexport type TurnkeyBootstrapStatus =\n | \"idle\"\n | \"authenticating\"\n | \"creating\"\n | \"ready\"\n | \"error\";\n\nexport interface TurnkeyProviderConfig {\n organizationId: string;\n authProxyConfigId: string;\n authProxyUrl?: string;\n apiBaseUrl?: string;\n /**\n * Optional session length to use when stamping logins,\n * expressed in seconds (string per Turnkey API expectations).\n */\n sessionExpirationSeconds?: string;\n}\n\nexport enum TurnkeyAuthState {\n Unauthenticated = \"unauthenticated\",\n Authenticating = \"authenticating\",\n Authenticated = \"authenticated\",\n}\n\nexport interface TurnkeySession extends Session {\n sessionKey: string;\n}\n\nexport interface DynamicEvmWallet {\n id?: string;\n key?: string;\n address?: string | null;\n chain?: string | null;\n signMessage?: (message: string) => Promise<string | undefined>;\n connector?: {\n name?: string;\n key?: string;\n metadata?: {\n icon?: string;\n };\n getNetwork?: () => Promise<string | number | undefined>;\n getWalletClient?: (chainId?: number) => Promise<any>;\n getProvider?: () => Promise<any>;\n signMessage?: (\n message: string,\n withAddress?: string,\n ) => Promise<string | undefined>;\n };\n}\n\nexport interface TurnkeyContextValue {\n turnkeyAuthState: TurnkeyAuthState;\n turnkeySession: TurnkeySession | null;\n turnkeyWallets: Wallet[];\n isHydratingSession: boolean;\n turnkeyStatus: TurnkeyBootstrapStatus;\n turnkeyError: string | null;\n turnkeyAddress: string | null;\n createTurnkeyWallet: (params: CreateWalletParams) => Promise<unknown>;\n refreshTurnkeyWallets: (options?: { force?: boolean }) => Promise<Wallet[]>;\n signTurnkeyMessage: (params: SignMessageParams) => Promise<v1SignRawPayloadResult>;\n waitForSessionHydration: (expectedWalletAddress?: string | null) => Promise<void>;\n loginWithTurnkeyWallet: (\n wallet: DynamicEvmWallet,\n options?: { sessionKey?: string; forceLogin?: boolean },\n ) => Promise<void>;\n prepareTurnkeyWallet: () => Promise<void>;\n retryTurnkeyBootstrap: () => void;\n}\n"]}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for the N1 wallet widget.
|
|
3
|
+
* Includes modal view modes, session modes, provider props, wallet state interfaces,
|
|
4
|
+
* and Nord API function signatures.
|
|
5
|
+
*/
|
|
6
|
+
import type { WalletError, N1Error } from '../errors/types';
|
|
2
7
|
import type { Nord } from '@n1xyz/nord-ts';
|
|
8
|
+
import type { ModalState } from '../store/types';
|
|
3
9
|
export declare enum N1ModalViewMode {
|
|
4
10
|
Connect = 0,
|
|
5
11
|
CreateSession = 1,
|
|
@@ -25,8 +31,14 @@ export interface CssColorOverride {
|
|
|
25
31
|
export interface N1WalletProviderProps {
|
|
26
32
|
children: React.ReactNode;
|
|
27
33
|
providedSessionMode: N1SessionMode;
|
|
28
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Callback for handling widget errors.
|
|
36
|
+
* Receives either an N1Error (new) or WalletError (legacy) object.
|
|
37
|
+
*/
|
|
38
|
+
onError?: (error: WalletError | N1Error) => void;
|
|
29
39
|
nord?: Nord | null;
|
|
40
|
+
dynamicEnvironmentId?: string | null;
|
|
41
|
+
enableTurnkey?: boolean;
|
|
30
42
|
/**
|
|
31
43
|
* Optional array of color overrides: [{color: '#original', replacement: '#new'}]
|
|
32
44
|
*/
|
|
@@ -93,9 +105,13 @@ export interface N1NordFunctions {
|
|
|
93
105
|
}
|
|
94
106
|
export interface N1WalletState {
|
|
95
107
|
address: string;
|
|
108
|
+
walletNetwork: 'solana' | 'evm' | null;
|
|
109
|
+
isSolanaMode: boolean;
|
|
110
|
+
isEvmMode: boolean;
|
|
96
111
|
balances: Balance[];
|
|
97
|
-
chain: string;
|
|
98
112
|
isConnected: boolean;
|
|
113
|
+
evmAddress: string | null;
|
|
114
|
+
evmChain: string | null;
|
|
99
115
|
sessionMode: N1SessionMode;
|
|
100
116
|
sessionPubKey: Uint8Array | null;
|
|
101
117
|
setShowLogin: (show: boolean) => void;
|
|
@@ -105,8 +121,6 @@ export interface N1WalletState {
|
|
|
105
121
|
signMessageWithSessionKey: ((message: any) => Promise<any>) | null;
|
|
106
122
|
signMessageWithWalletKey: ((message: any) => Promise<any>) | null;
|
|
107
123
|
signTransactionWithWalletKey: ((transaction: any) => Promise<any>) | null;
|
|
108
|
-
userChain: string | null;
|
|
109
|
-
username: string;
|
|
110
124
|
viewMode: N1ModalViewMode;
|
|
111
125
|
walletPubKey: Uint8Array | null;
|
|
112
126
|
throwTestError: () => Promise<void>;
|
|
@@ -116,26 +130,32 @@ export interface N1WalletState {
|
|
|
116
130
|
}
|
|
117
131
|
export interface N1InternalWalletState {
|
|
118
132
|
dynamicHandleLogOut: any;
|
|
119
|
-
|
|
133
|
+
solanaWallet: any;
|
|
134
|
+
evmWallet: any;
|
|
120
135
|
loading: boolean;
|
|
136
|
+
preferredWalletNetwork: 'evm' | 'solana' | null;
|
|
121
137
|
dynamicSdkHasLoaded: any;
|
|
122
|
-
handleError: (error: WalletError) => void;
|
|
138
|
+
handleError: (error: WalletError | N1Error) => void;
|
|
123
139
|
setDynamicSdkHasLoaded: (loaded: any) => void;
|
|
124
|
-
|
|
140
|
+
setSolanaAddress: (address: string) => void;
|
|
125
141
|
setBalances: (balances: Balance[]) => void;
|
|
126
|
-
setChain: (chain: string) => void;
|
|
127
142
|
setDynamicHandleLogOut: (handler: any) => void;
|
|
128
|
-
|
|
143
|
+
setSolanaWallet: (wallet: any) => void;
|
|
144
|
+
setEvmWallet: (wallet: any) => void;
|
|
145
|
+
setEvmAddress: React.Dispatch<React.SetStateAction<string | null>>;
|
|
146
|
+
setEvmChain: React.Dispatch<React.SetStateAction<string | null>>;
|
|
129
147
|
setIsConnected: (connected: boolean) => void;
|
|
130
148
|
setLoading: (loading: boolean) => void;
|
|
131
|
-
|
|
149
|
+
/** @deprecated Use closeModal() instead - cooldown is now automatic */
|
|
150
|
+
blockModalReopen?: (duration?: number) => void;
|
|
132
151
|
setSessionPubKey: (key: Uint8Array | null) => void;
|
|
133
152
|
setSignMessageWithSessionKey: React.Dispatch<React.SetStateAction<((message: any) => Promise<any>) | null>>;
|
|
134
153
|
setSignMessageWithWalletKey: React.Dispatch<React.SetStateAction<((message: any) => Promise<any>) | null>>;
|
|
135
154
|
setSignTransactionWithWalletKey: React.Dispatch<React.SetStateAction<((transaction: any) => Promise<any>) | null>>;
|
|
155
|
+
/** @deprecated Use closeModal() instead - closing is now handled by state machine */
|
|
136
156
|
setStartClosingLogin: (closing: boolean) => void;
|
|
137
|
-
|
|
138
|
-
|
|
157
|
+
setWalletConnectCancelledHandler: (handler: () => void) => void;
|
|
158
|
+
setPreferredWalletNetwork: (network: 'evm' | 'solana' | null) => void;
|
|
139
159
|
setViewMode: (mode: N1ModalViewMode) => void;
|
|
140
160
|
setWalletPubKey: (key: Uint8Array | null) => void;
|
|
141
161
|
setNordUser: (user: any) => void;
|
|
@@ -146,4 +166,10 @@ export interface N1InternalWalletState {
|
|
|
146
166
|
sessionMode: N1SessionMode;
|
|
147
167
|
skipFinalScreen?: boolean;
|
|
148
168
|
depositFlowRequestId: number;
|
|
169
|
+
turnkeyEnabled: boolean;
|
|
170
|
+
walletConnectCancelledHandler: () => void;
|
|
171
|
+
openModal: () => void;
|
|
172
|
+
closeModal: () => void;
|
|
173
|
+
onCloseComplete: () => void;
|
|
174
|
+
modalState: ModalState;
|
|
149
175
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/types/wallet.ts"],"names":[],"mappings":"AASA,MAAM,CAAN,IAAY,eAcX;AAdD,WAAY,eAAe;IACzB,2DAAW,CAAA;IACX,uEAAiB,CAAA;IACjB,2DAAW,CAAA;IACX,qEAAgB,CAAA;IAChB,2DAAW,CAAA;IACX,yEAAkB,CAAA;IAClB,yEAAkB,CAAA;IAClB,uDAAS,CAAA;IACT,mEAA0B,CAAA;IAC1B,2EAAyB,CAAA;IACzB,mEAA2B,CAAA;IAC3B,qEAAsB,CAAA;IACtB,gEAAc,CAAA;AAChB,CAAC,EAdW,eAAe,KAAf,eAAe,QAc1B;AAED,MAAM,CAAN,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,iDAAI,CAAA;AACN,CAAC,EAFW,aAAa,KAAb,aAAa,QAExB","sourcesContent":["/**\n * Core type definitions for the N1 wallet widget.\n * Includes modal view modes, session modes, provider props, wallet state interfaces,\n * and Nord API function signatures.\n */\nimport type { WalletError, N1Error } from '../errors/types';\nimport type { Nord } from '@n1xyz/nord-ts';\nimport type { ModalState } from '../store/types';\n\nexport enum N1ModalViewMode {\n Connect = 0,\n CreateSession = 1,\n Signing = 2,\n CreatingUser = 3,\n Success = 4,\n ChainSelection = 6,\n DepositSuccess = 7,\n Error = 8,\n AmountInput = CreatingUser,\n DepositProgress = Signing,\n AuthLoading = CreateSession,\n FinalSuccess = Success,\n Automatic = 99,\n}\n\nexport enum N1SessionMode {\n Nord,\n}\n\nexport interface CssColorOverride {\n color: string; // Color to find in CSS (e.g. '#3b82f6')\n replacement: string; // Replacement color (e.g. '#afafaf')\n}\n\nexport interface N1WalletProviderProps {\n children: React.ReactNode;\n providedSessionMode: N1SessionMode;\n /**\n * Callback for handling widget errors.\n * Receives either an N1Error (new) or WalletError (legacy) object.\n */\n onError?: (error: WalletError | N1Error) => void;\n nord?: Nord | null;\n dynamicEnvironmentId?: string | null;\n enableTurnkey?: boolean;\n /**\n * Optional array of color overrides: [{color: '#original', replacement: '#new'}]\n */\n colorOverrides?: CssColorOverride[];\n /**\n * If true, skip the final success screen and immediately call onDone\n */\n skipFinalScreen?: boolean;\n}\n\nexport interface Balance {\n mint: string;\n balance: bigint;\n appType: string;\n}\n\nexport interface N1NordFunctions {\n // Market information functions\n getMarkets: () => Promise<any[]>;\n getOrderbook: (symbol: string) => Promise<any>;\n getTrades: (params: any) => Promise<any>;\n getMarketsStats: () => Promise<any>;\n\n // Trading functions\n placeOrder: (params: {\n sessionId: bigint | string;\n marketId: number;\n side: 'BUY' | 'SELL';\n fillMode: 'GTC' | 'IOC' | 'FOK' | 'POST_ONLY';\n isReduceOnly: boolean;\n size?: number | string;\n price?: number | string;\n quoteSize?: number | string;\n clientOrderId?: bigint | string;\n }) => Promise<bigint | undefined>;\n\n cancelOrder: (params: {\n sessionId: bigint | string;\n orderId: bigint | string;\n }) => Promise<bigint>;\n\n // Account management\n createSession: (params: {\n userPubkey: Uint8Array;\n sessionPubkey: Uint8Array;\n expiryTimestamp?: bigint;\n }) => Promise<bigint>;\n\n revokeSession: (params: { sessionId: bigint | string }) => Promise<void>;\n\n withdraw: (params: {\n sessionId: bigint | string;\n tokenId: number;\n amount: number;\n }) => Promise<void>;\n\n transfer: (params: {\n sessionId: bigint | string;\n fromAccountId: number;\n toAccountId?: number;\n tokenId: number;\n tokenDecimals: number;\n amount: number | string;\n }) => Promise<number | undefined>;\n\n // Blockchain information\n getTimestamp: () => Promise<bigint>;\n getActionNonce: () => Promise<number>;\n\n // Block and action queries\n queryBlock: (query: any) => Promise<any>;\n queryLastNBlocks: () => Promise<any>;\n queryRecentBlocks: (last_n: number) => Promise<any>;\n queryAction: (query: any) => Promise<any>;\n queryRecentActions: (last_n: number) => Promise<any>;\n getActions: (fromActionId: number, toActionId: number) => Promise<any>;\n}\n\nexport interface N1WalletState {\n address: string;\n walletNetwork: 'solana' | 'evm' | null;\n isSolanaMode: boolean;\n isEvmMode: boolean;\n balances: Balance[];\n isConnected: boolean;\n evmAddress: string | null;\n evmChain: string | null;\n sessionMode: N1SessionMode;\n sessionPubKey: Uint8Array | null;\n setShowLogin: (show: boolean) => void;\n startDepositFlow: () => boolean;\n setViewMode: (mode: N1ModalViewMode) => void;\n showLogin: boolean;\n signMessageWithSessionKey: ((message: any) => Promise<any>) | null;\n signMessageWithWalletKey: ((message: any) => Promise<any>) | null;\n signTransactionWithWalletKey: ((transaction: any) => Promise<any>) | null;\n viewMode: N1ModalViewMode;\n walletPubKey: Uint8Array | null;\n throwTestError: () => Promise<void>;\n nord?: Nord | null;\n nordUser?: any;\n disconnectWallet: () => void;\n}\n\nexport interface N1InternalWalletState {\n dynamicHandleLogOut: any;\n solanaWallet: any;\n evmWallet: any;\n loading: boolean;\n preferredWalletNetwork: 'evm' | 'solana' | null;\n dynamicSdkHasLoaded: any;\n handleError: (error: WalletError | N1Error) => void;\n setDynamicSdkHasLoaded: (loaded: any) => void;\n setSolanaAddress: (address: string) => void;\n setBalances: (balances: Balance[]) => void;\n setDynamicHandleLogOut: (handler: any) => void;\n setSolanaWallet: (wallet: any) => void;\n setEvmWallet: (wallet: any) => void;\n setEvmAddress: React.Dispatch<React.SetStateAction<string | null>>;\n setEvmChain: React.Dispatch<React.SetStateAction<string | null>>;\n setIsConnected: (connected: boolean) => void;\n setLoading: (loading: boolean) => void;\n /** @deprecated Use closeModal() instead - cooldown is now automatic */\n blockModalReopen?: (duration?: number) => void;\n setSessionPubKey: (key: Uint8Array | null) => void;\n setSignMessageWithSessionKey: React.Dispatch<\n React.SetStateAction<((message: any) => Promise<any>) | null>\n >;\n setSignMessageWithWalletKey: React.Dispatch<\n React.SetStateAction<((message: any) => Promise<any>) | null>\n >;\n setSignTransactionWithWalletKey: React.Dispatch<\n React.SetStateAction<((transaction: any) => Promise<any>) | null>\n >;\n /** @deprecated Use closeModal() instead - closing is now handled by state machine */\n setStartClosingLogin: (closing: boolean) => void;\n setWalletConnectCancelledHandler: (handler: () => void) => void;\n setPreferredWalletNetwork: (network: 'evm' | 'solana' | null) => void;\n setViewMode: (mode: N1ModalViewMode) => void;\n setWalletPubKey: (key: Uint8Array | null) => void;\n setNordUser: (user: any) => void;\n setDisconnectWalletHandler: (handler: () => void) => void;\n startClosingLogin: boolean;\n showDynamicWidget: any;\n setShowDynamicWidget: (show: any) => void;\n sessionMode: N1SessionMode;\n skipFinalScreen?: boolean;\n depositFlowRequestId: number;\n turnkeyEnabled: boolean;\n walletConnectCancelledHandler: () => void;\n // New modal state machine API\n openModal: () => void;\n closeModal: () => void;\n onCloseComplete: () => void;\n modalState: ModalState;\n}\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Address utilities for validation and normalization across Solana and EVM chains.
|
|
3
|
+
* Uses library functions from @solana/web3.js and viem for proper validation.
|
|
4
|
+
* Centralizes address handling that was previously scattered across multiple files.
|
|
5
|
+
*/
|
|
6
|
+
import { PublicKey } from '@solana/web3.js';
|
|
7
|
+
/**
|
|
8
|
+
* Validates a Solana address by attempting to construct a PublicKey.
|
|
9
|
+
* This validates the base58 encoding and length.
|
|
10
|
+
*
|
|
11
|
+
* @param address - The address to validate
|
|
12
|
+
* @returns true if valid Solana address format
|
|
13
|
+
*/
|
|
14
|
+
export declare function isValidSolanaAddress(address: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Validates a Solana wallet address (must be on the ed25519 curve).
|
|
17
|
+
* PDAs (Program Derived Addresses) are intentionally off-curve and will return false.
|
|
18
|
+
* Use isValidSolanaAddress() if you need to accept PDAs.
|
|
19
|
+
*
|
|
20
|
+
* @param address - The address to validate
|
|
21
|
+
* @returns true if valid Solana wallet address on the ed25519 curve
|
|
22
|
+
*/
|
|
23
|
+
export declare function isValidSolanaWalletAddress(address: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Validates an EVM address using viem's isAddress function.
|
|
26
|
+
* Uses strict: false to accept addresses regardless of checksum.
|
|
27
|
+
*
|
|
28
|
+
* @param address - The address to validate
|
|
29
|
+
* @returns true if valid EVM address format
|
|
30
|
+
*/
|
|
31
|
+
export declare function isValidEVMAddress(address: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Validates an EVM address with strict checksum validation.
|
|
34
|
+
*
|
|
35
|
+
* @param address - The address to validate
|
|
36
|
+
* @returns true if valid EVM address with correct checksum
|
|
37
|
+
*/
|
|
38
|
+
export declare function isValidEVMAddressStrict(address: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Validates an address for either Solana or EVM.
|
|
41
|
+
*
|
|
42
|
+
* @param address - The address to validate
|
|
43
|
+
* @returns Object with isValid flag and detected network type
|
|
44
|
+
*/
|
|
45
|
+
export declare function validateAddress(address: string): {
|
|
46
|
+
isValid: boolean;
|
|
47
|
+
network: 'solana' | 'evm' | null;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Normalizes an EVM address to checksummed format using viem.
|
|
51
|
+
* This is the canonical format for EVM addresses.
|
|
52
|
+
*
|
|
53
|
+
* @param address - The EVM address to normalize
|
|
54
|
+
* @returns Checksummed address, or empty string if invalid
|
|
55
|
+
*/
|
|
56
|
+
export declare function normalizeEVMAddress(address: string | null | undefined): string;
|
|
57
|
+
/**
|
|
58
|
+
* Normalizes an EVM address to lowercase for comparison purposes.
|
|
59
|
+
* This replaces the duplicated normalizeAddress functions in TurnkeyProvider.tsx
|
|
60
|
+
* and turnkeySessionStorage.ts.
|
|
61
|
+
*
|
|
62
|
+
* @param address - The EVM address to normalize
|
|
63
|
+
* @returns Lowercase address, or empty string if invalid
|
|
64
|
+
*/
|
|
65
|
+
export declare function normalizeEVMAddressLowercase(address: string | null | undefined): string;
|
|
66
|
+
/**
|
|
67
|
+
* Normalizes a Solana address (trimming whitespace).
|
|
68
|
+
* Solana addresses are case-sensitive (base58), so we only trim.
|
|
69
|
+
*
|
|
70
|
+
* @param address - The Solana address to normalize
|
|
71
|
+
* @returns Trimmed address, or empty string if invalid
|
|
72
|
+
*/
|
|
73
|
+
export declare function normalizeSolanaAddress(address: string | null | undefined): string;
|
|
74
|
+
/**
|
|
75
|
+
* Normalizes any address based on detected type.
|
|
76
|
+
* EVM addresses are lowercased, Solana addresses are trimmed.
|
|
77
|
+
*
|
|
78
|
+
* @param address - The address to normalize
|
|
79
|
+
* @returns Normalized address
|
|
80
|
+
*/
|
|
81
|
+
export declare function normalizeAddress(address: string | null | undefined): string;
|
|
82
|
+
/**
|
|
83
|
+
* Compares two addresses for equality.
|
|
84
|
+
* Handles case-insensitive comparison for EVM and case-sensitive for Solana.
|
|
85
|
+
*
|
|
86
|
+
* @param a - First address
|
|
87
|
+
* @param b - Second address
|
|
88
|
+
* @returns true if addresses are equal
|
|
89
|
+
*/
|
|
90
|
+
export declare function compareAddresses(a: string | null | undefined, b: string | null | undefined): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Compares two EVM addresses for equality using viem's address comparison.
|
|
93
|
+
* More robust than string comparison.
|
|
94
|
+
*
|
|
95
|
+
* @param a - First EVM address
|
|
96
|
+
* @param b - Second EVM address
|
|
97
|
+
* @returns true if addresses are equal
|
|
98
|
+
*/
|
|
99
|
+
export declare function compareEVMAddresses(a: string | null | undefined, b: string | null | undefined): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Shortens an address for display.
|
|
102
|
+
* Example: "0x1234567890abcdef1234567890abcdef12345678" -> "0x1234...5678"
|
|
103
|
+
*
|
|
104
|
+
* @param address - The address to shorten
|
|
105
|
+
* @param chars - Number of characters to show at start/end (default: 4)
|
|
106
|
+
* @returns Shortened address
|
|
107
|
+
*/
|
|
108
|
+
export declare function shortenAddress(address: string | null | undefined, chars?: number): string;
|
|
109
|
+
/**
|
|
110
|
+
* Converts a Solana PublicKey to its base58 string representation.
|
|
111
|
+
*
|
|
112
|
+
* @param pubkey - The PublicKey to convert (can be PublicKey object or Uint8Array)
|
|
113
|
+
* @returns Base58 string representation
|
|
114
|
+
*/
|
|
115
|
+
export declare function solanaPublicKeyToString(pubkey: PublicKey | Uint8Array): string;
|
|
116
|
+
/**
|
|
117
|
+
* Converts a base58 string to a Solana PublicKey.
|
|
118
|
+
*
|
|
119
|
+
* @param address - The base58 address string
|
|
120
|
+
* @returns PublicKey object, or null if invalid
|
|
121
|
+
*/
|
|
122
|
+
export declare function stringToSolanaPublicKey(address: string): PublicKey | null;
|
|
123
|
+
/**
|
|
124
|
+
* Type guard to check if an address is a valid EVM address.
|
|
125
|
+
*/
|
|
126
|
+
export declare function isEVMAddress(address: unknown): address is string;
|
|
127
|
+
/**
|
|
128
|
+
* Type guard to check if an address is a valid Solana address.
|
|
129
|
+
*/
|
|
130
|
+
export declare function isSolanaAddress(address: unknown): address is string;
|