@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 @@
|
|
|
1
|
+
{"version":3,"file":"TurnkeyBootstrapService.js","sourceRoot":"","sources":["../../../../src/services/bootstrap/TurnkeyBootstrapService.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Turnkey Bootstrap Service\n *\n * Handles Turnkey authentication and wallet provisioning.\n * Extracted from TurnkeyProvider to enable:\n * - Testable pure functions\n * - Clear separation from React lifecycle\n * - Reusable bootstrap logic\n */\n\nimport { logger } from '../../utils/logger';\nimport { StorageService } from '../storage';\nimport type { TurnkeyBootstrapConfig, TurnkeySessionData } from './types';\n\n// ============================================\n// CONSTANTS\n// ============================================\n\nexport const TURNKEY_WALLET_NAME = 'Nord Turnkey Wallet';\nexport const SOLANA_ADDRESS_FORMAT = 'ADDRESS_FORMAT_SOLANA';\n\n// ============================================\n// ADDRESS UTILITIES\n// ============================================\n\n/**\n * Normalize EVM address to lowercase for consistent comparison.\n */\nexport function normalizeAddress(address?: string | null): string | null {\n if (!address) return null;\n return address.toLowerCase();\n}\n\n/**\n * Check if error indicates user rejected the action.\n */\nexport function isUserRejectedError(error: unknown): boolean {\n const errorObj = error as { code?: string | number; message?: string; name?: string };\n const code = errorObj?.code;\n const message = errorObj?.message?.toLowerCase?.() ?? '';\n const name = errorObj?.name?.toLowerCase?.() ?? '';\n\n // Check for explicit user rejection codes first (most reliable)\n if (\n code === 'USER_REJECTED' ||\n code === 4001 ||\n code === 'USER_CANCELED' ||\n code === 'USER_CANCELLED'\n ) {\n return true;\n }\n\n // Check for explicit user rejection in error name\n if (\n name.includes('user_rejected') ||\n name.includes('user_canceled') ||\n name.includes('user_cancelled')\n ) {\n return true;\n }\n\n // Check message for explicit \"user rejected\" patterns\n if (message.includes('user rejected') || message.includes('user rejected the request')) {\n return true;\n }\n\n // \"wallet auth was cancelled\" needs BOTH message AND code to be safe\n const cancelledMessage =\n message.includes('wallet auth was cancelled') ||\n message.includes('wallet authorization was cancelled');\n if (cancelledMessage) {\n if (\n code === 4001 ||\n code === 'USER_REJECTED' ||\n code === 'USER_CANCELED' ||\n code === 'USER_CANCELLED'\n ) {\n return true;\n }\n return false;\n }\n\n return false;\n}\n\n// ============================================\n// SESSION MANAGEMENT\n// ============================================\n\n/**\n * Check if the stored session belongs to a different user.\n * Returns true if we need to clear the session for the new user.\n */\nexport function isSessionForDifferentUser(targetAddress: string): boolean {\n const storedClientAddress = StorageService.readTurnkeyClientAddress();\n if (!storedClientAddress) return false;\n\n return storedClientAddress.toLowerCase() !== targetAddress.toLowerCase();\n}\n\n/**\n * Check if we have a valid stored session for the target address.\n */\nexport function hasStoredSession(targetAddress: string): boolean {\n const session = StorageService.readTurnkeySession(targetAddress);\n return session !== null && !!session.sessionKey;\n}\n\n/**\n * Get stored session data for the target address.\n */\nexport function getStoredSession(targetAddress: string): TurnkeySessionData | null {\n const storedSession = StorageService.readTurnkeySession(targetAddress);\n if (!storedSession?.sessionKey) return null;\n\n return {\n sessionKey: storedSession.sessionKey,\n evmAddress: storedSession.evmAddress,\n solanaAccount: storedSession.solanaAccount,\n session: storedSession.session,\n };\n}\n\n/**\n * Store session data after successful login.\n */\nexport function storeSession(\n targetAddress: string,\n sessionKey: string,\n options?: {\n evmAddress?: string | null;\n solanaAccount?: TurnkeySessionData['solanaAccount'];\n session?: unknown;\n }\n): void {\n StorageService.writeTurnkeySession({\n sessionKey,\n evmAddress: options?.evmAddress ?? targetAddress,\n solanaAccount: options?.solanaAccount ?? null,\n session: options?.session,\n });\n StorageService.writeTurnkeyClientAddress(targetAddress);\n}\n\n/**\n * Update the Solana account for an existing session.\n */\nexport function updateSessionSolanaAccount(\n targetAddress: string,\n solanaAccount: NonNullable<TurnkeySessionData['solanaAccount']>\n): void {\n StorageService.updateTurnkeySolanaAccount(targetAddress, solanaAccount);\n}\n\n/**\n * Clear session for logout or user switch.\n */\nexport function clearSession(targetAddress?: string | null): void {\n StorageService.clearTurnkeySession(targetAddress);\n logger.debug('[TurnkeyBootstrapService] Session cleared');\n}\n\n// ============================================\n// WALLET HELPERS\n// ============================================\n\n/**\n * Find an existing Solana wallet in the list of Turnkey wallets.\n */\nexport function findExistingSolanaWallet(wallets: any[]): any | null {\n return (\n wallets.find(\n (w) =>\n w.walletName === TURNKEY_WALLET_NAME &&\n w.accounts?.some((a: any) => a.addressFormat === SOLANA_ADDRESS_FORMAT)\n ) ?? null\n );\n}\n\n/**\n * Extract Solana account from a wallet.\n */\nexport function extractSolanaAccount(wallet: any): any | null {\n if (!wallet?.accounts) return null;\n return wallet.accounts.find((a: any) => a.addressFormat === SOLANA_ADDRESS_FORMAT) ?? null;\n}\n\n/**\n * Check if stored session has Solana account cached.\n */\nexport function hasCachedSolanaAccount(targetAddress: string): boolean {\n const session = StorageService.readTurnkeySession(targetAddress);\n return !!session?.solanaAccount?.account?.address;\n}\n\n/**\n * Get cached Solana account from stored session.\n */\nexport function getCachedSolanaAccount(\n targetAddress: string\n): TurnkeySessionData['solanaAccount'] | null {\n const session = StorageService.readTurnkeySession(targetAddress);\n return session?.solanaAccount ?? null;\n}\n\n// ============================================\n// BOOTSTRAP ORCHESTRATION\n// ============================================\n\n/**\n * Determine next action for Turnkey bootstrap.\n *\n * This is a pure function that determines what should happen next\n * without actually performing the action.\n */\nexport function determineBootstrapAction(params: {\n targetAddress: string | null;\n walletNetwork: 'solana' | 'evm' | null;\n hasEvmWallet: boolean;\n hasTurnkeyConfig: boolean;\n}): 'skip' | 'reset' | 'hydrate' | 'login' {\n const { targetAddress, walletNetwork, hasEvmWallet, hasTurnkeyConfig } = params;\n\n // Pre-flight checks\n if (!hasTurnkeyConfig || walletNetwork !== 'evm' || !hasEvmWallet || !targetAddress) {\n return 'skip';\n }\n\n // Check if user switched accounts\n if (isSessionForDifferentUser(targetAddress)) {\n return 'reset';\n }\n\n // Check if we have a stored session\n if (hasStoredSession(targetAddress)) {\n return 'hydrate';\n }\n\n // Need fresh login\n return 'login';\n}\n\n/**\n * Determine next action for Solana wallet provisioning.\n */\nexport function determineSolanaProvisionAction(params: {\n targetAddress: string;\n existingWallets: any[];\n}): 'use_cached' | 'use_existing' | 'create' {\n const { targetAddress, existingWallets } = params;\n\n // Check cache first\n if (hasCachedSolanaAccount(targetAddress)) {\n return 'use_cached';\n }\n\n // Check existing wallets\n const existing = findExistingSolanaWallet(existingWallets);\n if (existing && extractSolanaAccount(existing)) {\n return 'use_existing';\n }\n\n // Need to create\n return 'create';\n}\n\n// ============================================\n// ERROR HANDLING\n// ============================================\n\n/**\n * Categorize a Turnkey error for appropriate handling.\n */\nexport function categorizeTurnkeyError(error: unknown): {\n type: 'user_rejected' | 'network' | 'session_expired' | 'unknown';\n message: string;\n recoverable: boolean;\n} {\n if (isUserRejectedError(error)) {\n return {\n type: 'user_rejected',\n message: 'User rejected the request',\n recoverable: true,\n };\n }\n\n const errorObj = error as { message?: string; code?: string | number };\n const message = errorObj?.message ?? String(error);\n\n // Session expired\n if (\n message.includes('session expired') ||\n message.includes('invalid session') ||\n message.includes('no active session')\n ) {\n return {\n type: 'session_expired',\n message: 'Session expired, please reconnect',\n recoverable: true,\n };\n }\n\n // Network errors\n if (\n message.includes('network') ||\n message.includes('fetch') ||\n message.includes('timeout')\n ) {\n return {\n type: 'network',\n message: 'Network error, please try again',\n recoverable: true,\n };\n }\n\n return {\n type: 'unknown',\n message: message || 'An unknown error occurred',\n recoverable: false,\n };\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap Services
|
|
3
|
+
*
|
|
4
|
+
* Services for handling widget initialization and bootstrap logic.
|
|
5
|
+
* These are pure functions extracted from React providers to enable
|
|
6
|
+
* testability and clear separation of concerns.
|
|
7
|
+
*/
|
|
8
|
+
export { isLocalhost, patchFetchForProxy, loadDynamicSdk, isSdkLoaded, getCachedSdk, buildSdkSettings, buildSolanaNetworks, buildWalletConnectors, isSolanaWallet, hasWalletAddressChanged, storeWalletAddress, } from './DynamicSdkService';
|
|
9
|
+
export { TURNKEY_WALLET_NAME, SOLANA_ADDRESS_FORMAT, normalizeAddress, isUserRejectedError, isSessionForDifferentUser, hasStoredSession, getStoredSession, storeSession, updateSessionSolanaAccount, clearSession, findExistingSolanaWallet, extractSolanaAccount, hasCachedSolanaAccount, getCachedSolanaAccount, determineBootstrapAction, determineSolanaProvisionAction, categorizeTurnkeyError, } from './TurnkeyBootstrapService';
|
|
10
|
+
export { hasStoredSessionKeys, readSessionKeys, storeSessionKeys, clearSessionKeys, readSessionId, storeSessionId, clearSessionId, getOrCreateSessionKeyPair, isSessionReady, clearAllSessionData, validateSessionKeys, } from './SessionBootstrapService';
|
|
11
|
+
export type { StoredSessionKeys, SessionKeyPair } from './SessionBootstrapService';
|
|
12
|
+
export { checkForRecoverableDeposit, isDepositForWallet, getPendingDeposit, mapStageToPhase, determineRecoveryAction, clearPendingDeposit, clearLastDeposit, clearAllDepositData, validateDepositForRecovery, prepareDepositRecovery, migrateLegacyDeposits, } from './DepositRecoveryService';
|
|
13
|
+
export type { DynamicSdkConfig, DynamicSdkLoadResult, ProxyConfig, TurnkeyBootstrapConfig, TurnkeySessionData, TurnkeyBootstrapResult, SessionInitParams, SessionInitResult, RecoverableDeposit, DepositRecoveryResult, BootstrapState, BootstrapError, } from './types';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap Services
|
|
3
|
+
*
|
|
4
|
+
* Services for handling widget initialization and bootstrap logic.
|
|
5
|
+
* These are pure functions extracted from React providers to enable
|
|
6
|
+
* testability and clear separation of concerns.
|
|
7
|
+
*/
|
|
8
|
+
// Dynamic SDK Service
|
|
9
|
+
export { isLocalhost, patchFetchForProxy, loadDynamicSdk, isSdkLoaded, getCachedSdk, buildSdkSettings, buildSolanaNetworks, buildWalletConnectors, isSolanaWallet, hasWalletAddressChanged, storeWalletAddress, } from './DynamicSdkService';
|
|
10
|
+
// Turnkey Bootstrap Service
|
|
11
|
+
export { TURNKEY_WALLET_NAME, SOLANA_ADDRESS_FORMAT, normalizeAddress, isUserRejectedError, isSessionForDifferentUser, hasStoredSession, getStoredSession, storeSession, updateSessionSolanaAccount, clearSession, findExistingSolanaWallet, extractSolanaAccount, hasCachedSolanaAccount, getCachedSolanaAccount, determineBootstrapAction, determineSolanaProvisionAction, categorizeTurnkeyError, } from './TurnkeyBootstrapService';
|
|
12
|
+
// Session Bootstrap Service
|
|
13
|
+
export { hasStoredSessionKeys, readSessionKeys, storeSessionKeys, clearSessionKeys, readSessionId, storeSessionId, clearSessionId, getOrCreateSessionKeyPair, isSessionReady, clearAllSessionData, validateSessionKeys, } from './SessionBootstrapService';
|
|
14
|
+
// Deposit Recovery Service
|
|
15
|
+
export { checkForRecoverableDeposit, isDepositForWallet, getPendingDeposit, mapStageToPhase, determineRecoveryAction, clearPendingDeposit, clearLastDeposit, clearAllDepositData, validateDepositForRecovery, prepareDepositRecovery, migrateLegacyDeposits, } from './DepositRecoveryService';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/bootstrap/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,sBAAsB;AACtB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,4BAA4B;AAC5B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,4BAA4B;AAC5B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAGnC,2BAA2B;AAC3B,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC","sourcesContent":["/**\n * Bootstrap Services\n *\n * Services for handling widget initialization and bootstrap logic.\n * These are pure functions extracted from React providers to enable\n * testability and clear separation of concerns.\n */\n\n// Dynamic SDK Service\nexport {\n isLocalhost,\n patchFetchForProxy,\n loadDynamicSdk,\n isSdkLoaded,\n getCachedSdk,\n buildSdkSettings,\n buildSolanaNetworks,\n buildWalletConnectors,\n isSolanaWallet,\n hasWalletAddressChanged,\n storeWalletAddress,\n} from './DynamicSdkService';\n\n// Turnkey Bootstrap Service\nexport {\n TURNKEY_WALLET_NAME,\n SOLANA_ADDRESS_FORMAT,\n normalizeAddress,\n isUserRejectedError,\n isSessionForDifferentUser,\n hasStoredSession,\n getStoredSession,\n storeSession,\n updateSessionSolanaAccount,\n clearSession,\n findExistingSolanaWallet,\n extractSolanaAccount,\n hasCachedSolanaAccount,\n getCachedSolanaAccount,\n determineBootstrapAction,\n determineSolanaProvisionAction,\n categorizeTurnkeyError,\n} from './TurnkeyBootstrapService';\n\n// Session Bootstrap Service\nexport {\n hasStoredSessionKeys,\n readSessionKeys,\n storeSessionKeys,\n clearSessionKeys,\n readSessionId,\n storeSessionId,\n clearSessionId,\n getOrCreateSessionKeyPair,\n isSessionReady,\n clearAllSessionData,\n validateSessionKeys,\n} from './SessionBootstrapService';\nexport type { StoredSessionKeys, SessionKeyPair } from './SessionBootstrapService';\n\n// Deposit Recovery Service\nexport {\n checkForRecoverableDeposit,\n isDepositForWallet,\n getPendingDeposit,\n mapStageToPhase,\n determineRecoveryAction,\n clearPendingDeposit,\n clearLastDeposit,\n clearAllDepositData,\n validateDepositForRecovery,\n prepareDepositRecovery,\n migrateLegacyDeposits,\n} from './DepositRecoveryService';\n\n// Types\nexport type {\n DynamicSdkConfig,\n DynamicSdkLoadResult,\n ProxyConfig,\n TurnkeyBootstrapConfig,\n TurnkeySessionData,\n TurnkeyBootstrapResult,\n SessionInitParams,\n SessionInitResult,\n RecoverableDeposit,\n DepositRecoveryResult,\n BootstrapState,\n BootstrapError,\n} from './types';\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap Service Types
|
|
3
|
+
*
|
|
4
|
+
* Types used by bootstrap services for initialization logic.
|
|
5
|
+
*/
|
|
6
|
+
/** Configuration for Dynamic SDK loading */
|
|
7
|
+
export interface DynamicSdkConfig {
|
|
8
|
+
environmentId: string;
|
|
9
|
+
preferredNetwork?: 'solana' | 'evm' | null;
|
|
10
|
+
solanaRpcUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Result of Dynamic SDK loading */
|
|
13
|
+
export interface DynamicSdkLoadResult {
|
|
14
|
+
provider: any;
|
|
15
|
+
widget: any;
|
|
16
|
+
solanaConnector: any;
|
|
17
|
+
evmConnector: any;
|
|
18
|
+
}
|
|
19
|
+
/** Proxy configuration for localhost development */
|
|
20
|
+
export interface ProxyConfig {
|
|
21
|
+
proxyBase: string;
|
|
22
|
+
targetDomains: string[];
|
|
23
|
+
}
|
|
24
|
+
/** Configuration for Turnkey bootstrap */
|
|
25
|
+
export interface TurnkeyBootstrapConfig {
|
|
26
|
+
organizationId: string;
|
|
27
|
+
authProxyConfigId: string;
|
|
28
|
+
authProxyUrl: string;
|
|
29
|
+
apiBaseUrl: string;
|
|
30
|
+
sessionExpirationSeconds?: number;
|
|
31
|
+
}
|
|
32
|
+
/** Turnkey session data */
|
|
33
|
+
export interface TurnkeySessionData {
|
|
34
|
+
sessionKey: string;
|
|
35
|
+
evmAddress?: string | null;
|
|
36
|
+
solanaAccount?: {
|
|
37
|
+
walletId: string;
|
|
38
|
+
account: {
|
|
39
|
+
address: string;
|
|
40
|
+
addressFormat?: string;
|
|
41
|
+
};
|
|
42
|
+
} | null;
|
|
43
|
+
/** Full Turnkey session payload (userId, organizationId, expiry, etc.) */
|
|
44
|
+
session?: unknown;
|
|
45
|
+
}
|
|
46
|
+
/** Result of Turnkey bootstrap */
|
|
47
|
+
export interface TurnkeyBootstrapResult {
|
|
48
|
+
session: TurnkeySessionData;
|
|
49
|
+
solanaAddress: string;
|
|
50
|
+
walletId: string;
|
|
51
|
+
}
|
|
52
|
+
/** Session initialization parameters */
|
|
53
|
+
export interface SessionInitParams {
|
|
54
|
+
evmAddress: string;
|
|
55
|
+
solanaAddress: string;
|
|
56
|
+
sessionMode: 'Nord' | 'NTS';
|
|
57
|
+
}
|
|
58
|
+
/** Session initialization result */
|
|
59
|
+
export interface SessionInitResult {
|
|
60
|
+
sessionPubKey: Uint8Array;
|
|
61
|
+
walletPubKey: Uint8Array;
|
|
62
|
+
nordUser: any;
|
|
63
|
+
}
|
|
64
|
+
/** Pending deposit to recover */
|
|
65
|
+
export interface RecoverableDeposit {
|
|
66
|
+
depositId: string;
|
|
67
|
+
wallet: string;
|
|
68
|
+
chain: string;
|
|
69
|
+
amount: string;
|
|
70
|
+
stage: string;
|
|
71
|
+
tx?: string | null;
|
|
72
|
+
attestationId?: string | null;
|
|
73
|
+
}
|
|
74
|
+
/** Result of deposit recovery check */
|
|
75
|
+
export interface DepositRecoveryResult {
|
|
76
|
+
hasRecoverable: boolean;
|
|
77
|
+
deposit: RecoverableDeposit | null;
|
|
78
|
+
}
|
|
79
|
+
/** Overall bootstrap state */
|
|
80
|
+
export interface BootstrapState {
|
|
81
|
+
dynamicSdk: 'idle' | 'loading' | 'ready' | 'error';
|
|
82
|
+
turnkey: 'idle' | 'authenticating' | 'creating' | 'ready' | 'error';
|
|
83
|
+
session: 'idle' | 'hydrating' | 'ready' | 'error';
|
|
84
|
+
depositRecovery: 'idle' | 'checking' | 'recovering' | 'ready';
|
|
85
|
+
}
|
|
86
|
+
/** Bootstrap error info */
|
|
87
|
+
export interface BootstrapError {
|
|
88
|
+
phase: keyof BootstrapState;
|
|
89
|
+
message: string;
|
|
90
|
+
code?: string | number;
|
|
91
|
+
recoverable: boolean;
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/bootstrap/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/**\n * Bootstrap Service Types\n *\n * Types used by bootstrap services for initialization logic.\n */\n\n// ============================================\n// DYNAMIC SDK TYPES\n// ============================================\n\n/** Configuration for Dynamic SDK loading */\nexport interface DynamicSdkConfig {\n environmentId: string;\n preferredNetwork?: 'solana' | 'evm' | null;\n solanaRpcUrl?: string;\n}\n\n/** Result of Dynamic SDK loading */\nexport interface DynamicSdkLoadResult {\n provider: any;\n widget: any;\n solanaConnector: any;\n evmConnector: any;\n}\n\n/** Proxy configuration for localhost development */\nexport interface ProxyConfig {\n proxyBase: string;\n targetDomains: string[];\n}\n\n// ============================================\n// TURNKEY TYPES\n// ============================================\n\n/** Configuration for Turnkey bootstrap */\nexport interface TurnkeyBootstrapConfig {\n organizationId: string;\n authProxyConfigId: string;\n authProxyUrl: string;\n apiBaseUrl: string;\n sessionExpirationSeconds?: number;\n}\n\n/** Turnkey session data */\nexport interface TurnkeySessionData {\n sessionKey: string;\n evmAddress?: string | null;\n solanaAccount?: {\n walletId: string;\n account: {\n address: string;\n addressFormat?: string;\n };\n } | null;\n /** Full Turnkey session payload (userId, organizationId, expiry, etc.) */\n session?: unknown;\n}\n\n/** Result of Turnkey bootstrap */\nexport interface TurnkeyBootstrapResult {\n session: TurnkeySessionData;\n solanaAddress: string;\n walletId: string;\n}\n\n// ============================================\n// SESSION TYPES\n// ============================================\n\n/** Session initialization parameters */\nexport interface SessionInitParams {\n evmAddress: string;\n solanaAddress: string;\n sessionMode: 'Nord' | 'NTS';\n}\n\n/** Session initialization result */\nexport interface SessionInitResult {\n sessionPubKey: Uint8Array;\n walletPubKey: Uint8Array;\n nordUser: any;\n}\n\n// ============================================\n// DEPOSIT RECOVERY TYPES\n// ============================================\n\n/** Pending deposit to recover */\nexport interface RecoverableDeposit {\n depositId: string;\n wallet: string;\n chain: string;\n amount: string;\n stage: string;\n tx?: string | null;\n attestationId?: string | null;\n}\n\n/** Result of deposit recovery check */\nexport interface DepositRecoveryResult {\n hasRecoverable: boolean;\n deposit: RecoverableDeposit | null;\n}\n\n// ============================================\n// BOOTSTRAP ORCHESTRATION\n// ============================================\n\n/** Overall bootstrap state */\nexport interface BootstrapState {\n dynamicSdk: 'idle' | 'loading' | 'ready' | 'error';\n turnkey: 'idle' | 'authenticating' | 'creating' | 'ready' | 'error';\n session: 'idle' | 'hydrating' | 'ready' | 'error';\n depositRecovery: 'idle' | 'checking' | 'recovering' | 'ready';\n}\n\n/** Bootstrap error info */\nexport interface BootstrapError {\n phase: keyof BootstrapState;\n message: string;\n code?: string | number;\n recoverable: boolean;\n}\n"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Service
|
|
3
|
+
*
|
|
4
|
+
* Unified abstraction for localStorage operations.
|
|
5
|
+
* Handles browser/server environments, provides typed getters/setters,
|
|
6
|
+
* and centralizes all storage logic.
|
|
7
|
+
*/
|
|
8
|
+
import type { PendingDepositState, StoredDepositRecord, StoredTurnkeySession, LegacyPendingDeposit, PendingDepositStage } from './types';
|
|
9
|
+
export declare const StorageService: {
|
|
10
|
+
/**
|
|
11
|
+
* Read the active pending deposit from storage.
|
|
12
|
+
* Returns null if expired or invalid.
|
|
13
|
+
*/
|
|
14
|
+
readPendingDeposit(now?: number): PendingDepositState | null;
|
|
15
|
+
/**
|
|
16
|
+
* Write a pending deposit to storage.
|
|
17
|
+
*/
|
|
18
|
+
writePendingDeposit(state: PendingDepositState, now?: number): PendingDepositState;
|
|
19
|
+
/**
|
|
20
|
+
* Clear the active pending deposit.
|
|
21
|
+
*/
|
|
22
|
+
clearPendingDeposit(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Save a completed deposit record for a wallet address.
|
|
25
|
+
*/
|
|
26
|
+
saveLastDeposit(address: string | null | undefined, record: StoredDepositRecord): void;
|
|
27
|
+
/**
|
|
28
|
+
* Read the last completed deposit for a wallet address.
|
|
29
|
+
*/
|
|
30
|
+
readLastDeposit(address: string | null | undefined): StoredDepositRecord | null;
|
|
31
|
+
/**
|
|
32
|
+
* Clear the last deposit record for a wallet address.
|
|
33
|
+
*/
|
|
34
|
+
clearLastDeposit(address: string | null | undefined): void;
|
|
35
|
+
/**
|
|
36
|
+
* Read the stored Turnkey session.
|
|
37
|
+
*/
|
|
38
|
+
readTurnkeySession(address?: string | null): StoredTurnkeySession | null;
|
|
39
|
+
/**
|
|
40
|
+
* Write a Turnkey session to storage.
|
|
41
|
+
*/
|
|
42
|
+
writeTurnkeySession(session: StoredTurnkeySession): void;
|
|
43
|
+
/**
|
|
44
|
+
* Clear the stored Turnkey session and client address.
|
|
45
|
+
* If address is provided, only clears if it matches the stored session.
|
|
46
|
+
* If no address is provided, unconditionally clears both.
|
|
47
|
+
*/
|
|
48
|
+
clearTurnkeySession(address?: string | null): void;
|
|
49
|
+
/**
|
|
50
|
+
* Read the stored Turnkey client wallet address.
|
|
51
|
+
*/
|
|
52
|
+
readTurnkeyClientAddress(): string | null;
|
|
53
|
+
/**
|
|
54
|
+
* Write the Turnkey client wallet address.
|
|
55
|
+
* Pass null to clear the stored address.
|
|
56
|
+
*/
|
|
57
|
+
writeTurnkeyClientAddress(address: string | null): void;
|
|
58
|
+
/**
|
|
59
|
+
* Update the Solana account for an existing Turnkey session.
|
|
60
|
+
*/
|
|
61
|
+
updateTurnkeySolanaAccount(address: string, solanaAccount: {
|
|
62
|
+
walletId: string;
|
|
63
|
+
account: {
|
|
64
|
+
address: string;
|
|
65
|
+
addressFormat?: string;
|
|
66
|
+
};
|
|
67
|
+
}): void;
|
|
68
|
+
/**
|
|
69
|
+
* Read legacy pending deposits array.
|
|
70
|
+
*/
|
|
71
|
+
readLegacyPendingDeposits(): LegacyPendingDeposit[];
|
|
72
|
+
/**
|
|
73
|
+
* Clear legacy pending deposits array.
|
|
74
|
+
*/
|
|
75
|
+
clearLegacyPendingDeposits(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Reconcile local and remote deposit stages.
|
|
78
|
+
* Returns the more advanced stage (unless remote is 'failed').
|
|
79
|
+
*/
|
|
80
|
+
reconcileStages(localStage: PendingDepositStage, remoteStage: PendingDepositStage | null | undefined): PendingDepositStage;
|
|
81
|
+
/**
|
|
82
|
+
* Advance a pending deposit to a new stage.
|
|
83
|
+
* Prevents stage regression (except to 'failed').
|
|
84
|
+
*/
|
|
85
|
+
advancePendingDeposit(previous: PendingDepositState, updates: Partial<Omit<PendingDepositState, "depositId" | "wallet" | "chain">> & {
|
|
86
|
+
stage: PendingDepositStage;
|
|
87
|
+
}, now?: number): PendingDepositState;
|
|
88
|
+
/**
|
|
89
|
+
* Create a new pending deposit draft.
|
|
90
|
+
*/
|
|
91
|
+
createPendingDepositDraft(params: {
|
|
92
|
+
depositId: string;
|
|
93
|
+
wallet: string;
|
|
94
|
+
chain: string;
|
|
95
|
+
amount: string;
|
|
96
|
+
now?: number;
|
|
97
|
+
}): PendingDepositState;
|
|
98
|
+
};
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Service
|
|
3
|
+
*
|
|
4
|
+
* Unified abstraction for localStorage operations.
|
|
5
|
+
* Handles browser/server environments, provides typed getters/setters,
|
|
6
|
+
* and centralizes all storage logic.
|
|
7
|
+
*/
|
|
8
|
+
var __assign = (this && this.__assign) || function () {
|
|
9
|
+
__assign = Object.assign || function(t) {
|
|
10
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
11
|
+
s = arguments[i];
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
}
|
|
15
|
+
return t;
|
|
16
|
+
};
|
|
17
|
+
return __assign.apply(this, arguments);
|
|
18
|
+
};
|
|
19
|
+
import { logger } from '../../utils/logger';
|
|
20
|
+
import { ACTIVE_PENDING_DEPOSIT_KEY, TURNKEY_SESSION_KEY, TURNKEY_CLIENT_WALLET_KEY, PENDING_DEPOSITS_META_KEY, getLastDepositKey, } from './keys';
|
|
21
|
+
import { DEPOSIT_STAGE_ORDER, getStageRank } from './types';
|
|
22
|
+
/** In-memory fallback for Node/test environments */
|
|
23
|
+
var memoryStorage = (function () {
|
|
24
|
+
var map = new Map();
|
|
25
|
+
return {
|
|
26
|
+
getItem: function (k) { return (map.has(k) ? map.get(k) : null); },
|
|
27
|
+
setItem: function (k, v) {
|
|
28
|
+
map.set(k, v);
|
|
29
|
+
},
|
|
30
|
+
removeItem: function (k) {
|
|
31
|
+
map.delete(k);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
/** Get the appropriate storage backend */
|
|
36
|
+
var getStorage = function () {
|
|
37
|
+
if (typeof globalThis !== 'undefined' && typeof globalThis.localStorage !== 'undefined') {
|
|
38
|
+
var ls = globalThis.localStorage;
|
|
39
|
+
if (ls && typeof ls.getItem === 'function') {
|
|
40
|
+
return ls;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return memoryStorage;
|
|
44
|
+
};
|
|
45
|
+
// ============================================
|
|
46
|
+
// DEPOSIT TTL CONSTANTS
|
|
47
|
+
// ============================================
|
|
48
|
+
var MAX_DEPOSIT_TTL_MS = 48 * 60 * 60 * 1000; // 48 hours
|
|
49
|
+
var FAILED_DEPOSIT_TTL_MS = 30 * 60 * 1000; // 30 minutes
|
|
50
|
+
// ============================================
|
|
51
|
+
// STORAGE SERVICE
|
|
52
|
+
// ============================================
|
|
53
|
+
export var StorageService = {
|
|
54
|
+
// ============================================
|
|
55
|
+
// PENDING DEPOSIT OPERATIONS
|
|
56
|
+
// ============================================
|
|
57
|
+
/**
|
|
58
|
+
* Read the active pending deposit from storage.
|
|
59
|
+
* Returns null if expired or invalid.
|
|
60
|
+
*/
|
|
61
|
+
readPendingDeposit: function (now) {
|
|
62
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
63
|
+
if (now === void 0) { now = Date.now(); }
|
|
64
|
+
var storage = getStorage();
|
|
65
|
+
var raw = storage.getItem(ACTIVE_PENDING_DEPOSIT_KEY);
|
|
66
|
+
if (!raw)
|
|
67
|
+
return null;
|
|
68
|
+
try {
|
|
69
|
+
var parsed = JSON.parse(raw);
|
|
70
|
+
if (!parsed || typeof parsed !== 'object')
|
|
71
|
+
return null;
|
|
72
|
+
if (!parsed.depositId || !parsed.wallet)
|
|
73
|
+
return null;
|
|
74
|
+
var stage = parsed.stage && DEPOSIT_STAGE_ORDER.includes(parsed.stage) ? parsed.stage : 'initiated';
|
|
75
|
+
var updatedAt = (_a = parsed.updatedAt) !== null && _a !== void 0 ? _a : now;
|
|
76
|
+
var ttl = stage === 'failed' ? FAILED_DEPOSIT_TTL_MS : MAX_DEPOSIT_TTL_MS;
|
|
77
|
+
if (now - updatedAt > ttl) {
|
|
78
|
+
this.clearPendingDeposit();
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
depositId: parsed.depositId,
|
|
83
|
+
wallet: parsed.wallet,
|
|
84
|
+
chain: parsed.chain || '',
|
|
85
|
+
amount: (_b = parsed.amount) !== null && _b !== void 0 ? _b : '',
|
|
86
|
+
stage: stage,
|
|
87
|
+
tx: (_c = parsed.tx) !== null && _c !== void 0 ? _c : null,
|
|
88
|
+
mintTx: (_d = parsed.mintTx) !== null && _d !== void 0 ? _d : null,
|
|
89
|
+
attestationId: (_e = parsed.attestationId) !== null && _e !== void 0 ? _e : null,
|
|
90
|
+
explorerUrl: (_f = parsed.explorerUrl) !== null && _f !== void 0 ? _f : null,
|
|
91
|
+
reason: (_g = parsed.reason) !== null && _g !== void 0 ? _g : null,
|
|
92
|
+
updatedAt: updatedAt,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (_h) {
|
|
96
|
+
this.clearPendingDeposit();
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
/**
|
|
101
|
+
* Write a pending deposit to storage.
|
|
102
|
+
*/
|
|
103
|
+
writePendingDeposit: function (state, now) {
|
|
104
|
+
var _a, _b, _c, _d, _e;
|
|
105
|
+
if (now === void 0) { now = Date.now(); }
|
|
106
|
+
var storage = getStorage();
|
|
107
|
+
var stored = {
|
|
108
|
+
depositId: state.depositId,
|
|
109
|
+
wallet: state.wallet,
|
|
110
|
+
chain: state.chain,
|
|
111
|
+
amount: state.amount,
|
|
112
|
+
stage: state.stage,
|
|
113
|
+
tx: (_a = state.tx) !== null && _a !== void 0 ? _a : null,
|
|
114
|
+
mintTx: (_b = state.mintTx) !== null && _b !== void 0 ? _b : null,
|
|
115
|
+
attestationId: (_c = state.attestationId) !== null && _c !== void 0 ? _c : null,
|
|
116
|
+
explorerUrl: (_d = state.explorerUrl) !== null && _d !== void 0 ? _d : null,
|
|
117
|
+
reason: (_e = state.reason) !== null && _e !== void 0 ? _e : null,
|
|
118
|
+
updatedAt: now,
|
|
119
|
+
};
|
|
120
|
+
try {
|
|
121
|
+
storage.setItem(ACTIVE_PENDING_DEPOSIT_KEY, JSON.stringify(stored));
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
logger.warn('[StorageService] Failed to write pending deposit', { error: e });
|
|
125
|
+
}
|
|
126
|
+
return __assign(__assign({}, state), { updatedAt: now });
|
|
127
|
+
},
|
|
128
|
+
/**
|
|
129
|
+
* Clear the active pending deposit.
|
|
130
|
+
*/
|
|
131
|
+
clearPendingDeposit: function () {
|
|
132
|
+
var storage = getStorage();
|
|
133
|
+
storage.removeItem(ACTIVE_PENDING_DEPOSIT_KEY);
|
|
134
|
+
},
|
|
135
|
+
// ============================================
|
|
136
|
+
// COMPLETED DEPOSIT OPERATIONS
|
|
137
|
+
// ============================================
|
|
138
|
+
/**
|
|
139
|
+
* Save a completed deposit record for a wallet address.
|
|
140
|
+
*/
|
|
141
|
+
saveLastDeposit: function (address, record) {
|
|
142
|
+
if (!address || !record || !record.transactionId)
|
|
143
|
+
return;
|
|
144
|
+
var storage = getStorage();
|
|
145
|
+
try {
|
|
146
|
+
storage.setItem(getLastDepositKey(address), JSON.stringify(record));
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
logger.warn('[StorageService] Failed to save last deposit', { error: e });
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
/**
|
|
153
|
+
* Read the last completed deposit for a wallet address.
|
|
154
|
+
*/
|
|
155
|
+
readLastDeposit: function (address) {
|
|
156
|
+
if (!address)
|
|
157
|
+
return null;
|
|
158
|
+
var storage = getStorage();
|
|
159
|
+
try {
|
|
160
|
+
var raw = storage.getItem(getLastDepositKey(address));
|
|
161
|
+
if (!raw)
|
|
162
|
+
return null;
|
|
163
|
+
return JSON.parse(raw);
|
|
164
|
+
}
|
|
165
|
+
catch (_a) {
|
|
166
|
+
storage.removeItem(getLastDepositKey(address));
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
/**
|
|
171
|
+
* Clear the last deposit record for a wallet address.
|
|
172
|
+
*/
|
|
173
|
+
clearLastDeposit: function (address) {
|
|
174
|
+
if (!address)
|
|
175
|
+
return;
|
|
176
|
+
var storage = getStorage();
|
|
177
|
+
storage.removeItem(getLastDepositKey(address));
|
|
178
|
+
},
|
|
179
|
+
// ============================================
|
|
180
|
+
// TURNKEY SESSION OPERATIONS
|
|
181
|
+
// ============================================
|
|
182
|
+
/**
|
|
183
|
+
* Read the stored Turnkey session.
|
|
184
|
+
*/
|
|
185
|
+
readTurnkeySession: function (address) {
|
|
186
|
+
var _a;
|
|
187
|
+
var storage = getStorage();
|
|
188
|
+
try {
|
|
189
|
+
var raw = storage.getItem(TURNKEY_SESSION_KEY);
|
|
190
|
+
if (!raw)
|
|
191
|
+
return null;
|
|
192
|
+
var parsed = JSON.parse(raw);
|
|
193
|
+
if (!parsed || typeof parsed !== 'object' || !parsed.sessionKey) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
// If address provided, validate it matches
|
|
197
|
+
if (address) {
|
|
198
|
+
var normalized = address.toLowerCase();
|
|
199
|
+
var sessionAddress = (_a = parsed.evmAddress) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
200
|
+
if (sessionAddress && sessionAddress !== normalized) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return parsed;
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
logger.warn('[StorageService] Failed to read Turnkey session', { error: e });
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
/**
|
|
212
|
+
* Write a Turnkey session to storage.
|
|
213
|
+
*/
|
|
214
|
+
writeTurnkeySession: function (session) {
|
|
215
|
+
var storage = getStorage();
|
|
216
|
+
try {
|
|
217
|
+
storage.setItem(TURNKEY_SESSION_KEY, JSON.stringify(session));
|
|
218
|
+
}
|
|
219
|
+
catch (e) {
|
|
220
|
+
logger.warn('[StorageService] Failed to write Turnkey session', { error: e });
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
/**
|
|
224
|
+
* Clear the stored Turnkey session and client address.
|
|
225
|
+
* If address is provided, only clears if it matches the stored session.
|
|
226
|
+
* If no address is provided, unconditionally clears both.
|
|
227
|
+
*/
|
|
228
|
+
clearTurnkeySession: function (address) {
|
|
229
|
+
var _a;
|
|
230
|
+
var storage = getStorage();
|
|
231
|
+
// If address provided, only clear if it matches
|
|
232
|
+
if (address) {
|
|
233
|
+
var session = this.readTurnkeySession();
|
|
234
|
+
if (session && ((_a = session.evmAddress) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== address.toLowerCase()) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
storage.removeItem(TURNKEY_SESSION_KEY);
|
|
239
|
+
storage.removeItem(TURNKEY_CLIENT_WALLET_KEY);
|
|
240
|
+
},
|
|
241
|
+
/**
|
|
242
|
+
* Read the stored Turnkey client wallet address.
|
|
243
|
+
*/
|
|
244
|
+
readTurnkeyClientAddress: function () {
|
|
245
|
+
var storage = getStorage();
|
|
246
|
+
try {
|
|
247
|
+
var raw = storage.getItem(TURNKEY_CLIENT_WALLET_KEY);
|
|
248
|
+
return raw ? raw.toLowerCase() : null;
|
|
249
|
+
}
|
|
250
|
+
catch (_a) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
/**
|
|
255
|
+
* Write the Turnkey client wallet address.
|
|
256
|
+
* Pass null to clear the stored address.
|
|
257
|
+
*/
|
|
258
|
+
writeTurnkeyClientAddress: function (address) {
|
|
259
|
+
var storage = getStorage();
|
|
260
|
+
try {
|
|
261
|
+
if (address) {
|
|
262
|
+
storage.setItem(TURNKEY_CLIENT_WALLET_KEY, address.toLowerCase());
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
storage.removeItem(TURNKEY_CLIENT_WALLET_KEY);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch (_a) {
|
|
269
|
+
// ignore
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
/**
|
|
273
|
+
* Update the Solana account for an existing Turnkey session.
|
|
274
|
+
*/
|
|
275
|
+
updateTurnkeySolanaAccount: function (address, solanaAccount) {
|
|
276
|
+
var session = this.readTurnkeySession(address);
|
|
277
|
+
if (!session)
|
|
278
|
+
return;
|
|
279
|
+
session.solanaAccount = solanaAccount;
|
|
280
|
+
this.writeTurnkeySession(session);
|
|
281
|
+
},
|
|
282
|
+
// ============================================
|
|
283
|
+
// LEGACY PENDING DEPOSITS (for migration)
|
|
284
|
+
// ============================================
|
|
285
|
+
/**
|
|
286
|
+
* Read legacy pending deposits array.
|
|
287
|
+
*/
|
|
288
|
+
readLegacyPendingDeposits: function () {
|
|
289
|
+
var storage = getStorage();
|
|
290
|
+
try {
|
|
291
|
+
var raw = storage.getItem(PENDING_DEPOSITS_META_KEY);
|
|
292
|
+
if (!raw)
|
|
293
|
+
return [];
|
|
294
|
+
var parsed = JSON.parse(raw);
|
|
295
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
296
|
+
}
|
|
297
|
+
catch (_a) {
|
|
298
|
+
return [];
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
/**
|
|
302
|
+
* Clear legacy pending deposits array.
|
|
303
|
+
*/
|
|
304
|
+
clearLegacyPendingDeposits: function () {
|
|
305
|
+
var storage = getStorage();
|
|
306
|
+
storage.removeItem(PENDING_DEPOSITS_META_KEY);
|
|
307
|
+
},
|
|
308
|
+
// ============================================
|
|
309
|
+
// UTILITIES
|
|
310
|
+
// ============================================
|
|
311
|
+
/**
|
|
312
|
+
* Reconcile local and remote deposit stages.
|
|
313
|
+
* Returns the more advanced stage (unless remote is 'failed').
|
|
314
|
+
*/
|
|
315
|
+
reconcileStages: function (localStage, remoteStage) {
|
|
316
|
+
if (!remoteStage)
|
|
317
|
+
return localStage;
|
|
318
|
+
if (remoteStage === 'failed')
|
|
319
|
+
return 'failed';
|
|
320
|
+
var localRank = getStageRank(localStage);
|
|
321
|
+
var remoteRank = getStageRank(remoteStage);
|
|
322
|
+
return remoteRank > localRank ? remoteStage : localStage;
|
|
323
|
+
},
|
|
324
|
+
/**
|
|
325
|
+
* Advance a pending deposit to a new stage.
|
|
326
|
+
* Prevents stage regression (except to 'failed').
|
|
327
|
+
*/
|
|
328
|
+
advancePendingDeposit: function (previous, updates, now) {
|
|
329
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
330
|
+
if (now === void 0) { now = Date.now(); }
|
|
331
|
+
var prevRank = getStageRank(previous.stage);
|
|
332
|
+
var nextRank = getStageRank(updates.stage);
|
|
333
|
+
if (updates.stage !== 'failed' && nextRank < prevRank) {
|
|
334
|
+
throw new Error("Cannot regress pending deposit stage from ".concat(previous.stage, " to ").concat(updates.stage));
|
|
335
|
+
}
|
|
336
|
+
var merged = __assign(__assign(__assign({}, previous), updates), { tx: (_b = (_a = updates.tx) !== null && _a !== void 0 ? _a : previous.tx) !== null && _b !== void 0 ? _b : null, mintTx: (_d = (_c = updates.mintTx) !== null && _c !== void 0 ? _c : previous.mintTx) !== null && _d !== void 0 ? _d : null, attestationId: (_f = (_e = updates.attestationId) !== null && _e !== void 0 ? _e : previous.attestationId) !== null && _f !== void 0 ? _f : null, explorerUrl: (_h = (_g = updates.explorerUrl) !== null && _g !== void 0 ? _g : previous.explorerUrl) !== null && _h !== void 0 ? _h : null, reason: (_k = (_j = updates.reason) !== null && _j !== void 0 ? _j : previous.reason) !== null && _k !== void 0 ? _k : null, stage: updates.stage, updatedAt: now });
|
|
337
|
+
return this.writePendingDeposit(merged, now);
|
|
338
|
+
},
|
|
339
|
+
/**
|
|
340
|
+
* Create a new pending deposit draft.
|
|
341
|
+
*/
|
|
342
|
+
createPendingDepositDraft: function (params) {
|
|
343
|
+
var _a;
|
|
344
|
+
var now = (_a = params.now) !== null && _a !== void 0 ? _a : Date.now();
|
|
345
|
+
return this.writePendingDeposit({
|
|
346
|
+
depositId: params.depositId,
|
|
347
|
+
wallet: params.wallet,
|
|
348
|
+
chain: params.chain,
|
|
349
|
+
amount: params.amount,
|
|
350
|
+
stage: 'initiated',
|
|
351
|
+
tx: null,
|
|
352
|
+
mintTx: null,
|
|
353
|
+
attestationId: null,
|
|
354
|
+
explorerUrl: null,
|
|
355
|
+
reason: null,
|
|
356
|
+
updatedAt: now,
|
|
357
|
+
}, now);
|
|
358
|
+
},
|
|
359
|
+
};
|
|
360
|
+
//# sourceMappingURL=StorageService.js.map
|