@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":"useBridgeDeposit.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/hooks/useBridgeDeposit.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { useOnboardingState } from '../providers/OnboardingStateProvider';\nimport { getCctpRuntimeConfig } from '../cctp/config';\nimport {\n advancePendingDeposit,\n clearPendingDeposit,\n createPendingDepositDraft,\n PendingDepositState,\n writePendingDeposit,\n} from '../utils/deposit/storage';\nimport { formatBridgeError, normalizeCctpChain } from '../utils/deposit/bridgeUtils';\nimport { explorerBaseForChain, pickExplorerUrl } from '../utils/explorerUrl';\nimport { logger } from '../../../utils/logger';\nimport { createDepositError } from '../../../utils/errors';\nimport { useWalletConnection } from '../providers/WalletConnectionProvider';\nimport { BridgeKitClient, mapChainToBridgeKit } from '../cctp/bridgeKitClient';\nimport { checkUsedNonceAccount } from '../utils/deposit/nonceUtils';\nimport { waitForAttestation } from '../utils/deposit/attestationUtils';\nimport { ensureCorrectNetwork, getWalletProvider, validateBridgeConfig } from '../utils/deposit/walletUtils';\nimport { submitClaimWithRetry } from '../utils/deposit/claimSubmission';\nimport { confirmClaimAndGetUsdcBalance } from '../utils/deposit/claimConfirmation';\nimport { EvmTxInterceptor } from '../utils/deposit/evmTxInterceptor';\nimport { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';\n\ninterface UseBridgeDepositProps {\n setDepositProgressPhase: (phase: 'bridge' | 'claim' | 'solana' | 'nord') => void;\n setPendingBridgeTx: (tx: string | null) => void;\n setPendingMintTx: (tx: string | null) => void;\n setPendingDepositId: (id: string | null) => void;\n setPendingBridgeExplorerUrl: (url: string | null) => void;\n ensurePendingDraft: (amount: string) => ReturnType<typeof createPendingDepositDraft>;\n finalizeBridgeSuccess: (status: { tx?: string | null; mintTx?: string | null; bridgeTx?: string | null; solanaTx?: string | null; depositId?: string | null }) => void;\n setIsDepositing: (isDepositing: boolean) => void;\n runSolanaDeposit: (\n amount: string,\n pendingState?: ReturnType<typeof createPendingDepositDraft> | null\n ) => Promise<{\n txId: string | null;\n workingState: ReturnType<typeof createPendingDepositDraft>;\n solanaTx: string | null;\n }>;\n}\n\nexport const useBridgeDeposit = ({\n setDepositProgressPhase,\n setPendingBridgeTx,\n setPendingMintTx,\n setPendingDepositId,\n setPendingBridgeExplorerUrl,\n ensurePendingDraft,\n finalizeBridgeSuccess,\n setIsDepositing,\n runSolanaDeposit,\n}: UseBridgeDepositProps) => {\n const { context, updateContext } = useOnboardingState();\n\n // Use NetworkProvider for wallet state\n const { solanaAddress, evmWallet, solanaWallet, evmAdapter } = useNetwork();\n const { turnkeyAddress, turnkeyStatus, turnkeyEnabled } = useWalletConnection();\n\n const [bridgeRetryable, setBridgeRetryable] = useState(false);\n const [bridgeError, setBridgeError] = useState<string | null>(null);\n const [bridgeApprovalPending, setBridgeApprovalPending] = useState(false);\n const [bridgeApprovalError, setBridgeApprovalError] = useState<string | null>(null);\n\n\n\n const lookupTableAddress = process.env.NEXT_PUBLIC_CCTP_LOOKUP_TABLE_ADDRESS;\n const claimFinalizationInFlightRef = useRef<Promise<void> | null>(null);\n\n const confirmClaimAndDeposit = useCallback(\n async ({\n signature,\n destinationAddress,\n amountHint,\n pendingState,\n skipConfirmation,\n }: {\n signature: string | null;\n destinationAddress: string;\n amountHint?: string | number | null;\n pendingState?: PendingDepositState | null;\n skipConfirmation?: boolean;\n }) => {\n logger.info('[BridgeDeposit] confirmClaimAndDeposit called', {\n signature,\n destinationAddress,\n amountHint,\n skipConfirmation,\n pendingStage: pendingState?.stage,\n pendingTx: pendingState?.tx,\n });\n\n if (claimFinalizationInFlightRef.current) {\n logger.info('[BridgeDeposit] confirmClaimAndDeposit - already in flight, returning existing promise');\n return claimFinalizationInFlightRef.current;\n }\n\n const promise = (async () => {\n let amount: string;\n let txSignature: string | null;\n try {\n logger.info('[BridgeDeposit] Calling confirmClaimAndGetUsdcBalance...');\n const res = await confirmClaimAndGetUsdcBalance({\n signature,\n destinationAddress,\n amountHint,\n skipConfirmation,\n });\n logger.info('[BridgeDeposit] confirmClaimAndGetUsdcBalance returned', {\n amount: res.amount,\n txSignature: res.txSignature,\n });\n amount = res.amount;\n txSignature = res.txSignature;\n } catch (e) {\n logger.warn('[BridgeDeposit] confirmClaimAndGetUsdcBalance threw error', {\n error: e instanceof Error ? e.message : String(e),\n });\n const message = e instanceof Error ? e.message : String(e);\n // If the claim nonce was already processed and there's no USDC to deposit,\n // the user likely already completed the deposit earlier. Clear pending state\n // to avoid trapping them in an endless \"resume\" loop.\n if (message.toLowerCase().includes('already be completed')) {\n logger.info('[BridgeDeposit] Deposit appears to be already completed - clearing pending state', {\n message,\n });\n clearPendingDeposit();\n setPendingDepositId(null);\n updateContext({\n depositError: 'This deposit appears to be already completed. Your funds should be in your Nord account.',\n });\n // Do not duplicate the message as a bridgeError; depositError is rendered on the progress screen.\n setBridgeError(null);\n setBridgeRetryable(false);\n setDepositProgressPhase('claim');\n setIsDepositing(false);\n return;\n }\n throw e;\n }\n\n const draft = pendingState ?? ensurePendingDraft(amount);\n const withBridgeStage = advancePendingDeposit(draft, {\n stage: 'bridge_confirmed',\n tx: txSignature,\n mintTx: txSignature,\n amount,\n });\n\n setDepositProgressPhase('solana');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const depositResult = await runSolanaDeposit(amount, withBridgeStage);\n\n finalizeBridgeSuccess({\n tx: depositResult.txId,\n mintTx: txSignature,\n bridgeTx: withBridgeStage.tx ?? txSignature,\n solanaTx: depositResult.solanaTx,\n depositId: withBridgeStage.depositId,\n });\n })().finally(() => {\n claimFinalizationInFlightRef.current = null;\n });\n\n claimFinalizationInFlightRef.current = promise;\n return promise;\n },\n [\n ensurePendingDraft,\n finalizeBridgeSuccess,\n runSolanaDeposit,\n setDepositProgressPhase,\n setPendingDepositId,\n setBridgeError,\n setBridgeRetryable,\n setIsDepositing,\n updateContext,\n ]\n );\n\n const startCctpBridge = useCallback(\n async (draftAmount: string) => {\n setDepositProgressPhase('bridge');\n setBridgeApprovalPending(true);\n setBridgeApprovalError(null);\n\n const cctpClient = new BridgeKitClient();\n const cctpConfig = getCctpRuntimeConfig();\n const fromChain = normalizeCctpChain(context.selectedChainId ?? context.entryNetwork ?? cctpConfig.fromChain);\n\n await ensureCorrectNetwork({ evmWallet, evmAdapter, targetChain: fromChain });\n validateBridgeConfig(cctpConfig, fromChain, draftAmount);\n\n let workingState = ensurePendingDraft(draftAmount);\n\n const solanaRecipient = solanaAddress || turnkeyAddress || '';\n if (!solanaRecipient) {\n setBridgeApprovalPending(false);\n throw new Error('Turnkey Solana address is not ready yet. Please wait a moment and retry.');\n }\n\n const { provider, walletClient } = await getWalletProvider(evmWallet, evmAdapter);\n if (!provider && !walletClient && !cctpConfig.useMock) {\n setBridgeApprovalPending(false);\n throw new Error('Wallet provider not available for CCTP bridging');\n }\n\n // Persist tx hash ASAP (especially burn) so refresh can resume.\n // We use the interceptor to capture the tx hash before the high-level await returns.\n const interceptor = new EvmTxInterceptor((txHash) => {\n workingState = writePendingDeposit({\n ...workingState,\n depositId: txHash,\n stage: 'bridge_submitted',\n tx: txHash,\n chain: workingState.chain || fromChain,\n amount: workingState.amount || draftAmount,\n updatedAt: Date.now(),\n });\n setPendingDepositId(workingState.depositId);\n setPendingBridgeTx(txHash);\n setDepositProgressPhase('claim');\n });\n\n const walletForBridge = interceptor.wrap(provider || walletClient);\n\n let bridgeTxId: string;\n let depositId: string;\n let attestationId: string | null | undefined;\n\n try {\n const submission = await cctpClient.submitBridge({\n amount: draftAmount,\n fromChain,\n toChain: 'solana',\n destinationAddress: solanaRecipient,\n wallet: walletForBridge,\n });\n bridgeTxId = submission.bridgeTxId;\n depositId = submission.depositId;\n attestationId = submission.attestationId;\n } catch (error) {\n const message = formatBridgeError(error);\n setBridgeApprovalError(message);\n setBridgeError(message);\n setBridgeRetryable(true);\n setBridgeApprovalPending(false);\n clearPendingDeposit();\n throw error;\n } finally {\n setBridgeApprovalPending(false);\n }\n\n const bridgeExplorerUrl = pickExplorerUrl(\n workingState.explorerUrl,\n cctpConfig.explorerBaseUrl ?? explorerBaseForChain(context.entryNetwork),\n bridgeTxId,\n );\n workingState = advancePendingDeposit(workingState, {\n stage: 'bridge_submitted',\n tx: bridgeTxId,\n attestationId,\n explorerUrl: bridgeExplorerUrl ?? null,\n });\n setPendingBridgeExplorerUrl(workingState.explorerUrl ?? null);\n setPendingBridgeTx(bridgeTxId);\n if (depositId && depositId !== workingState.depositId) {\n workingState = writePendingDeposit({\n ...workingState,\n depositId,\n attestationId: attestationId ?? workingState.attestationId ?? null,\n updatedAt: Date.now(),\n });\n }\n setPendingDepositId(depositId || workingState.depositId);\n\n const attestationData = await waitForAttestation({\n cctpClient,\n bridgeTxId,\n sourceChain: fromChain,\n timeoutMs: cctpConfig.attestationTimeoutMs ?? 120_000,\n retryBackoffMs: cctpConfig.retryBackoffMs ?? 5_000,\n });\n\n const nonceAlreadyProcessed = await checkUsedNonceAccount(attestationData?.decodedMessage?.nonce);\n if (nonceAlreadyProcessed) {\n const updatedState = advancePendingDeposit(workingState, {\n stage: 'bridge_confirmed',\n tx: workingState.tx ?? bridgeTxId ?? null,\n mintTx: workingState.mintTx ?? null,\n attestationId,\n explorerUrl: workingState.explorerUrl ?? null,\n });\n\n setPendingMintTx(updatedState.mintTx ?? null);\n setPendingDepositId(updatedState.depositId);\n setDepositProgressPhase('claim');\n\n await confirmClaimAndDeposit({\n signature: updatedState.mintTx ?? updatedState.tx ?? null,\n destinationAddress: solanaRecipient,\n amountHint: draftAmount,\n pendingState: updatedState,\n skipConfirmation: true,\n });\n\n return updatedState;\n }\n\n setDepositProgressPhase('solana');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const finalSignature = await submitClaimWithRetry({\n depositId,\n message: attestationData.message,\n attestation: attestationData.attestation,\n sourceChain: fromChain,\n destinationAddress: solanaRecipient,\n lookupTableAddress: lookupTableAddress ?? '',\n solanaWallet: solanaWallet as any,\n fallbackWallet: solanaAddress || turnkeyAddress || '',\n fallbackAmount: attestationData.decodedMessage?.decodedMessageBody?.amount || draftAmount || '0',\n bridgeTx: bridgeTxId,\n attestationId: attestationId ?? null,\n });\n\n workingState = advancePendingDeposit(workingState, {\n stage: 'bridge_confirmed',\n tx: finalSignature,\n mintTx: finalSignature,\n attestationId,\n explorerUrl: finalSignature\n ? pickExplorerUrl(null, cctpConfig.mintExplorerBaseUrl ?? explorerBaseForChain('solana'), finalSignature)\n : workingState.explorerUrl,\n });\n\n setPendingMintTx(finalSignature);\n setPendingDepositId(workingState.depositId);\n setDepositProgressPhase('claim');\n\n await confirmClaimAndDeposit({\n signature: finalSignature,\n destinationAddress: solanaRecipient,\n amountHint: draftAmount,\n pendingState: workingState,\n });\n\n return workingState;\n },\n [\n solanaAddress,\n confirmClaimAndDeposit,\n context.entryNetwork,\n context.selectedChainId,\n ensurePendingDraft,\n evmAdapter,\n evmWallet,\n lookupTableAddress,\n setDepositProgressPhase,\n setPendingBridgeExplorerUrl,\n setPendingBridgeTx,\n setPendingDepositId,\n setPendingMintTx,\n solanaWallet,\n turnkeyAddress,\n ]\n );\n\n const resumeClaimProcess = useCallback(\n async (pendingState: PendingDepositState) => {\n // Log full pending state for debugging\n logger.info('[BridgeDeposit] resumeClaimProcess called', {\n depositId: pendingState.depositId,\n stage: pendingState.stage,\n tx: pendingState.tx,\n mintTx: pendingState.mintTx,\n chain: pendingState.chain,\n amount: pendingState.amount,\n wallet: pendingState.wallet,\n reason: pendingState.reason,\n updatedAt: pendingState.updatedAt,\n });\n\n const depositId = pendingState.depositId;\n if (!depositId) {\n logger.warn('[BridgeDeposit] resumeClaimProcess - no depositId, showing error');\n setBridgeError('Missing deposit ID. Please start a new deposit.');\n setBridgeRetryable(false);\n return;\n }\n\n // If the deposit is already in a terminal state, don't try to resume\n if (pendingState.stage === 'solana_confirmed') {\n logger.info('[BridgeDeposit] Deposit already in solana_confirmed state - clearing and completing', {\n depositId,\n stage: pendingState.stage,\n });\n clearPendingDeposit();\n finalizeBridgeSuccess({\n tx: pendingState.tx,\n mintTx: pendingState.mintTx,\n bridgeTx: pendingState.tx,\n depositId: pendingState.depositId,\n });\n return;\n }\n\n // If the deposit was submitted to Solana but we refreshed before confirmation,\n // the deposit might have actually completed. Show message with Start Over option.\n if (pendingState.stage === 'solana_submitted' && pendingState.tx) {\n logger.info('[BridgeDeposit] Deposit in solana_submitted state - may already be complete', {\n depositId,\n stage: pendingState.stage,\n tx: pendingState.tx,\n });\n // Clear state and show message - user can check their Nord account\n clearPendingDeposit();\n setBridgeError('Your deposit may have already completed. Please check your Nord account balance. Click \"Start Over\" if you need to make another deposit.');\n setBridgeRetryable(false);\n setIsDepositing(false);\n return;\n }\n\n // BridgeKit uses the burn tx hash for attestation lookup.\n // After refresh, `depositId` might be a local draft id if the user refreshed mid-sign.\n const bridgeTx = pendingState.tx;\n if (!bridgeTx || !bridgeTx.startsWith('0x')) {\n logger.warn('[BridgeDeposit] Cannot resume claim: missing bridge tx hash (likely refreshed before signing burn tx)', {\n depositId,\n tx: pendingState.tx,\n stage: pendingState.stage,\n });\n setBridgeError('Bridge transaction was not completed. Please start the deposit again.');\n setBridgeRetryable(true);\n setIsDepositing(false);\n return;\n }\n\n // Check if Turnkey is still initializing for EVM flows\n const isEvmFlow = context.entryNetwork === 'evm';\n const turnkeyStillInitializing = turnkeyEnabled && turnkeyStatus !== 'ready';\n\n if (isEvmFlow && turnkeyStillInitializing) {\n setBridgeError('Preparing Solana wallet... Please wait.');\n setBridgeRetryable(false); // Don't allow retry until Turnkey is ready\n setDepositProgressPhase('claim');\n return;\n }\n\n const solanaRecipient = solanaAddress || turnkeyAddress || pendingState.wallet;\n if (!solanaRecipient) {\n setBridgeError('Missing Solana deposit address. Please reconnect your wallet.');\n setBridgeRetryable(true);\n return;\n }\n\n setPendingBridgeTx(bridgeTx);\n setDepositProgressPhase('claim');\n setIsDepositing(true);\n setBridgeError(null);\n setBridgeRetryable(false);\n\n try {\n const cctpClient = new BridgeKitClient();\n const cctpConfig = getCctpRuntimeConfig();\n\n const fromChain = normalizeCctpChain(\n pendingState.chain || context.selectedChainId || context.entryNetwork || cctpConfig.fromChain,\n );\n\n const attestationData = await cctpClient.getAttestation(bridgeTx, fromChain);\n if (!attestationData) {\n setBridgeError('Attestation not ready yet. Please wait a moment and try again.');\n setBridgeRetryable(true);\n setIsDepositing(false);\n return;\n }\n\n const nonceAlreadyProcessed = await checkUsedNonceAccount(attestationData.decodedMessage?.nonce);\n if (nonceAlreadyProcessed) {\n logger.info('[BridgeDeposit] Nonce already processed - CCTP claim was completed previously', {\n depositId,\n bridgeTx,\n nonce: attestationData.decodedMessage?.nonce,\n });\n\n const updated = advancePendingDeposit(pendingState, {\n stage: 'bridge_confirmed',\n tx: pendingState.tx ?? null,\n mintTx: pendingState.mintTx ?? pendingState.tx ?? null,\n attestationId: pendingState.attestationId,\n });\n\n setPendingMintTx(updated.mintTx ?? null);\n setPendingDepositId(updated.depositId);\n setDepositProgressPhase('claim');\n\n try {\n await confirmClaimAndDeposit({\n signature: updated.mintTx ?? updated.tx ?? null,\n destinationAddress: solanaRecipient,\n amountHint: pendingState.amount,\n pendingState: updated,\n skipConfirmation: true,\n });\n } catch (claimDepositError) {\n // If confirmClaimAndDeposit throws because USDC balance is 0,\n // the deposit was likely already completed. Clear pending state\n // and show a message with the \"Start Over\" option.\n const errorMessage = claimDepositError instanceof Error ? claimDepositError.message : String(claimDepositError);\n logger.info('[BridgeDeposit] confirmClaimAndDeposit failed after nonce processed - deposit likely complete', {\n error: errorMessage,\n });\n\n // Clear the pending state so user isn't stuck\n clearPendingDeposit();\n setBridgeError('This deposit appears to be already completed. Your funds should be in your Nord account. Click \"Start Over\" to continue.');\n setBridgeRetryable(false);\n setIsDepositing(false);\n }\n\n return;\n }\n\n // If the nonce was NOT processed, we need a Solana signer to submit the claim.\n if (!solanaWallet) {\n setBridgeError('Solana wallet not connected. Please connect your Solana wallet to continue.');\n setBridgeRetryable(true);\n setDepositProgressPhase('claim');\n setIsDepositing(false);\n return;\n }\n\n if (solanaWallet.chain !== 'SOL') {\n setBridgeError('Wallet is not a Solana wallet. Please connect a Solana wallet.');\n setBridgeRetryable(true);\n setDepositProgressPhase('claim');\n setIsDepositing(false);\n return;\n }\n\n setDepositProgressPhase('solana');\n\n const signature = await submitClaimWithRetry({\n depositId,\n message: attestationData.message,\n attestation: attestationData.attestation,\n sourceChain: pendingState.chain || fromChain,\n destinationAddress: solanaRecipient,\n lookupTableAddress: lookupTableAddress ?? '',\n solanaWallet: solanaWallet as any,\n fallbackWallet: solanaAddress || turnkeyAddress || '',\n fallbackAmount: attestationData.decodedMessage?.decodedMessageBody?.amount || pendingState.amount || '0',\n bridgeTx,\n attestationId: pendingState.attestationId ?? null,\n });\n\n const updated = advancePendingDeposit(pendingState, {\n stage: 'bridge_confirmed',\n tx: signature,\n mintTx: signature,\n attestationId: pendingState.attestationId,\n });\n\n setPendingMintTx(signature);\n setPendingDepositId(updated.depositId);\n setDepositProgressPhase('claim');\n\n await confirmClaimAndDeposit({\n signature,\n destinationAddress: solanaRecipient,\n amountHint: pendingState.amount,\n pendingState: updated,\n });\n } catch (error) {\n logger.logError(createDepositError('CLAIM_FAILED', 'Failed to resume claim process', {\n cause: error instanceof Error ? error : undefined,\n context: { depositId },\n }));\n setBridgeError(formatBridgeError(error));\n setIsDepositing(false);\n throw error;\n }\n },\n [\n solanaAddress,\n confirmClaimAndDeposit,\n context.entryNetwork,\n context.selectedChainId,\n lookupTableAddress,\n setDepositProgressPhase,\n setIsDepositing,\n setPendingBridgeTx,\n setPendingDepositId,\n setPendingMintTx,\n solanaWallet,\n turnkeyAddress,\n turnkeyEnabled,\n turnkeyStatus,\n ]\n );\n\n return {\n startCctpBridge,\n resumeClaimProcess,\n bridgeRetryable,\n setBridgeRetryable,\n bridgeError,\n setBridgeError,\n bridgeApprovalPending,\n setBridgeApprovalPending,\n bridgeApprovalError,\n setBridgeApprovalError,\n };\n};\n"]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
38
|
+
import { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';
|
|
39
|
+
import { useSession } from '../../../providers/N1WalletProvider/SessionProvider';
|
|
40
|
+
import { logger } from '../../../utils/logger';
|
|
41
|
+
import { useOnboardingState } from '../providers/OnboardingStateProvider';
|
|
42
|
+
export var useDepositAuth = function () {
|
|
43
|
+
var _a = useOnboardingState(), flowActions = _a.actions, updateContext = _a.updateContext;
|
|
44
|
+
// Use NetworkProvider for address and SessionProvider for nordUser
|
|
45
|
+
var solanaAddress = useNetwork().solanaAddress;
|
|
46
|
+
var nordUser = useSession().nordUser;
|
|
47
|
+
var _b = useState('loading'), authStatus = _b[0], setAuthStatus = _b[1];
|
|
48
|
+
var _c = useState(null), authErrorMessage = _c[0], setAuthErrorMessage = _c[1];
|
|
49
|
+
var _d = useState(null), authStatusMessage = _d[0], setAuthStatusMessage = _d[1];
|
|
50
|
+
var authInFlightRef = useRef(false);
|
|
51
|
+
var waitingForNordUserRef = useRef(false);
|
|
52
|
+
/**
|
|
53
|
+
* Authenticate session
|
|
54
|
+
*/
|
|
55
|
+
var performAuth = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
var sessionPubKey, sessionId, sessionIdKey, error_1;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
if (authInFlightRef.current) {
|
|
61
|
+
return [2 /*return*/];
|
|
62
|
+
}
|
|
63
|
+
authInFlightRef.current = true;
|
|
64
|
+
_a.label = 1;
|
|
65
|
+
case 1:
|
|
66
|
+
_a.trys.push([1, 4, 5, 6]);
|
|
67
|
+
// Step 1: Tell user to sign transaction
|
|
68
|
+
setAuthStatusMessage('Please sign the transaction to authenticate your session');
|
|
69
|
+
if (!nordUser) {
|
|
70
|
+
waitingForNordUserRef.current = true;
|
|
71
|
+
setAuthStatus('loading');
|
|
72
|
+
setAuthStatusMessage('Preparing your Nord session…');
|
|
73
|
+
return [2 /*return*/];
|
|
74
|
+
}
|
|
75
|
+
waitingForNordUserRef.current = false;
|
|
76
|
+
// Step 2: Call nordUser.refreshSession and get sessionId
|
|
77
|
+
setAuthStatusMessage('Session is being authenticated...');
|
|
78
|
+
sessionPubKey = nordUser.sessionPubKey;
|
|
79
|
+
if (!sessionPubKey) {
|
|
80
|
+
throw new Error('Session public key is not available');
|
|
81
|
+
}
|
|
82
|
+
// Refresh the session
|
|
83
|
+
return [4 /*yield*/, nordUser.refreshSession()];
|
|
84
|
+
case 2:
|
|
85
|
+
// Refresh the session
|
|
86
|
+
_a.sent();
|
|
87
|
+
return [4 /*yield*/, nordUser.updateAccountId()];
|
|
88
|
+
case 3:
|
|
89
|
+
_a.sent();
|
|
90
|
+
sessionId = nordUser.sessionId;
|
|
91
|
+
if (!sessionId) {
|
|
92
|
+
throw new Error('Failed to get session ID after refresh');
|
|
93
|
+
}
|
|
94
|
+
logger.debug('Session refreshed successfully', {
|
|
95
|
+
sessionId: sessionId.toString(),
|
|
96
|
+
});
|
|
97
|
+
// Step 3: Store sessionId in localStorage
|
|
98
|
+
if (solanaAddress) {
|
|
99
|
+
sessionIdKey = "n1_sessionId_".concat(solanaAddress);
|
|
100
|
+
localStorage.setItem(sessionIdKey, sessionId.toString());
|
|
101
|
+
logger.debug('Stored sessionId in localStorage', { key: sessionIdKey });
|
|
102
|
+
}
|
|
103
|
+
// Step 4: Update status to success
|
|
104
|
+
setAuthStatus('success');
|
|
105
|
+
// updateContext({ hasActiveSession: true });
|
|
106
|
+
flowActions.completeFlow({
|
|
107
|
+
hasActiveSession: true,
|
|
108
|
+
hasNordAccount: true,
|
|
109
|
+
});
|
|
110
|
+
return [3 /*break*/, 6];
|
|
111
|
+
case 4:
|
|
112
|
+
error_1 = _a.sent();
|
|
113
|
+
console.error('Authentication error:', error_1);
|
|
114
|
+
setAuthStatus('error');
|
|
115
|
+
setAuthErrorMessage(error_1 instanceof Error ? error_1.message : 'Unknown error occurred');
|
|
116
|
+
return [3 /*break*/, 6];
|
|
117
|
+
case 5:
|
|
118
|
+
authInFlightRef.current = false;
|
|
119
|
+
return [7 /*endfinally*/];
|
|
120
|
+
case 6: return [2 /*return*/];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}); }, [
|
|
124
|
+
updateContext,
|
|
125
|
+
flowActions,
|
|
126
|
+
solanaAddress,
|
|
127
|
+
nordUser,
|
|
128
|
+
]);
|
|
129
|
+
useEffect(function () {
|
|
130
|
+
if (waitingForNordUserRef.current && nordUser) {
|
|
131
|
+
performAuth();
|
|
132
|
+
}
|
|
133
|
+
}, [nordUser, performAuth]);
|
|
134
|
+
return {
|
|
135
|
+
authStatus: authStatus,
|
|
136
|
+
authErrorMessage: authErrorMessage,
|
|
137
|
+
authStatusMessage: authStatusMessage,
|
|
138
|
+
performAuth: performAuth,
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=useDepositAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositAuth.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/hooks/useDepositAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,MAAM,CAAC,IAAM,cAAc,GAAG;IACtB,IAAA,KAGF,kBAAkB,EAAE,EAFb,WAAW,aAAA,EACpB,aAAa,mBACS,CAAC;IAEzB,mEAAmE;IAC3D,IAAA,aAAa,GAAK,UAAU,EAAE,cAAjB,CAAkB;IAC/B,IAAA,QAAQ,GAAK,UAAU,EAAE,SAAjB,CAAkB;IAE5B,IAAA,KAA8B,QAAQ,CAAkC,SAAS,CAAC,EAAjF,UAAU,QAAA,EAAE,aAAa,QAAwD,CAAC;IACnF,IAAA,KAA0C,QAAQ,CAAgB,IAAI,CAAC,EAAtE,gBAAgB,QAAA,EAAE,mBAAmB,QAAiC,CAAC;IACxE,IAAA,KAA4C,QAAQ,CAAgB,IAAI,CAAC,EAAxE,iBAAiB,QAAA,EAAE,oBAAoB,QAAiC,CAAC;IAEhF,IAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,IAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C;;OAEG;IACH,IAAM,WAAW,GAAG,WAAW,CAAC;;;;;oBAC9B,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;wBAC5B,sBAAO;oBACT,CAAC;oBAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;;;;oBAE7B,wCAAwC;oBACxC,oBAAoB,CAClB,0DAA0D,CAC3D,CAAC;oBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC;wBACrC,aAAa,CAAC,SAAS,CAAC,CAAC;wBACzB,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;wBACrD,sBAAO;oBACT,CAAC;oBAED,qBAAqB,CAAC,OAAO,GAAG,KAAK,CAAC;oBAEtC,yDAAyD;oBACzD,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;oBAGpD,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;oBAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACzD,CAAC;oBAED,sBAAsB;oBACtB,qBAAM,QAAQ,CAAC,cAAc,EAAE,EAAA;;oBAD/B,sBAAsB;oBACtB,SAA+B,CAAC;oBAChC,qBAAM,QAAQ,CAAC,eAAe,EAAE,EAAA;;oBAAhC,SAAgC,CAAC;oBAG3B,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;oBACrC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBAC5D,CAAC;oBAED,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;wBAC7C,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;qBAChC,CAAC,CAAC;oBAEH,0CAA0C;oBAC1C,IAAI,aAAa,EAAE,CAAC;wBACZ,YAAY,GAAG,uBAAgB,aAAa,CAAE,CAAC;wBACrD,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACzD,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;oBAC1E,CAAC;oBAED,mCAAmC;oBACnC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAEzB,6CAA6C;oBAC7C,WAAW,CAAC,YAAY,CAAC;wBACvB,gBAAgB,EAAE,IAAI;wBACtB,cAAc,EAAE,IAAI;qBACrB,CAAC,CAAC;;;;oBAGH,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAK,CAAC,CAAC;oBAC9C,aAAa,CAAC,OAAO,CAAC,CAAC;oBACvB,mBAAmB,CACjB,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAClE,CAAC;;;oBAEF,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;;;;;SAEnC,EAAE;QACD,aAAa;QACb,WAAW;QACX,aAAa;QACb,QAAQ;KACT,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,IAAI,qBAAqB,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC9C,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,UAAU,YAAA;QACV,gBAAgB,kBAAA;QAChB,iBAAiB,mBAAA;QACjB,WAAW,aAAA;KACZ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';\nimport { useSession } from '../../../providers/N1WalletProvider/SessionProvider';\nimport { logger } from '../../../utils/logger';\nimport { useOnboardingState } from '../providers/OnboardingStateProvider';\n\nexport const useDepositAuth = () => {\n const {\n actions: flowActions,\n updateContext,\n } = useOnboardingState();\n\n // Use NetworkProvider for address and SessionProvider for nordUser\n const { solanaAddress } = useNetwork();\n const { nordUser } = useSession();\n\n const [authStatus, setAuthStatus] = useState<'loading' | 'success' | 'error'>('loading');\n const [authErrorMessage, setAuthErrorMessage] = useState<string | null>(null);\n const [authStatusMessage, setAuthStatusMessage] = useState<string | null>(null);\n\n const authInFlightRef = useRef(false);\n const waitingForNordUserRef = useRef(false);\n\n /**\n * Authenticate session\n */\n const performAuth = useCallback(async () => {\n if (authInFlightRef.current) {\n return;\n }\n\n authInFlightRef.current = true;\n try {\n // Step 1: Tell user to sign transaction\n setAuthStatusMessage(\n 'Please sign the transaction to authenticate your session'\n );\n\n if (!nordUser) {\n waitingForNordUserRef.current = true;\n setAuthStatus('loading');\n setAuthStatusMessage('Preparing your Nord session…');\n return;\n }\n\n waitingForNordUserRef.current = false;\n\n // Step 2: Call nordUser.refreshSession and get sessionId\n setAuthStatusMessage('Session is being authenticated...');\n\n // Get the session public key from the nordUser\n const sessionPubKey = nordUser.sessionPubKey;\n if (!sessionPubKey) {\n throw new Error('Session public key is not available');\n }\n\n // Refresh the session\n await nordUser.refreshSession();\n await nordUser.updateAccountId();\n\n // Get the sessionId after refresh\n const sessionId = nordUser.sessionId;\n if (!sessionId) {\n throw new Error('Failed to get session ID after refresh');\n }\n\n logger.debug('Session refreshed successfully', {\n sessionId: sessionId.toString(),\n });\n\n // Step 3: Store sessionId in localStorage\n if (solanaAddress) {\n const sessionIdKey = `n1_sessionId_${solanaAddress}`;\n localStorage.setItem(sessionIdKey, sessionId.toString());\n logger.debug('Stored sessionId in localStorage', { key: sessionIdKey });\n }\n\n // Step 4: Update status to success\n setAuthStatus('success');\n\n // updateContext({ hasActiveSession: true });\n flowActions.completeFlow({\n hasActiveSession: true,\n hasNordAccount: true,\n });\n\n } catch (error) {\n console.error('Authentication error:', error);\n setAuthStatus('error');\n setAuthErrorMessage(\n error instanceof Error ? error.message : 'Unknown error occurred'\n );\n } finally {\n authInFlightRef.current = false;\n }\n }, [\n updateContext,\n flowActions,\n solanaAddress,\n nordUser,\n ]);\n\n useEffect(() => {\n if (waitingForNordUserRef.current && nordUser) {\n performAuth();\n }\n }, [nordUser, performAuth]);\n\n return {\n authStatus,\n authErrorMessage,\n authStatusMessage,\n performAuth,\n };\n};\n\n\n\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DepositProgressPhase } from '../types';
|
|
2
|
+
interface UseDepositHydrationProps {
|
|
3
|
+
setPendingDepositId: (id: string | null) => void;
|
|
4
|
+
setAmount: (amount: string) => void;
|
|
5
|
+
setTransactionId: (id: string | null) => void;
|
|
6
|
+
setIsDepositing: (isDepositing: boolean) => void;
|
|
7
|
+
setPendingBridgeExplorerUrl: (url: string | null) => void;
|
|
8
|
+
setPendingBridgeTx: (tx: string | null) => void;
|
|
9
|
+
setPendingMintTx: (tx: string | null) => void;
|
|
10
|
+
setDepositProgressPhase: (phase: DepositProgressPhase) => void;
|
|
11
|
+
setBridgeError: (error: string | null) => void;
|
|
12
|
+
setBridgeRetryable: (retryable: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const useDepositHydration: ({ setPendingDepositId, setAmount, setTransactionId, setIsDepositing, setPendingBridgeExplorerUrl, setPendingBridgeTx, setPendingMintTx, setDepositProgressPhase, setBridgeError, setBridgeRetryable, }: UseDepositHydrationProps) => void;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { useOnboardingState } from '../providers/OnboardingStateProvider';
|
|
3
|
+
import { OnboardingStep } from '../types';
|
|
4
|
+
import { readPendingDeposit, } from '../utils/deposit/storage';
|
|
5
|
+
import { logger } from '../../../utils/logger';
|
|
6
|
+
/**
|
|
7
|
+
* Maps the stored pending deposit stage to the correct UI phase.
|
|
8
|
+
*/
|
|
9
|
+
var mapStageToPhase = function (stage) {
|
|
10
|
+
switch (stage) {
|
|
11
|
+
case 'initiated':
|
|
12
|
+
case 'bridge_submitted':
|
|
13
|
+
return 'bridge';
|
|
14
|
+
case 'bridge_confirmed':
|
|
15
|
+
// Confirmed on source chain (or attestation ready) -> Ready to claim
|
|
16
|
+
return 'claim';
|
|
17
|
+
case 'solana_submitted':
|
|
18
|
+
case 'solana_confirmed':
|
|
19
|
+
// Transaction sent to Solana -> showing solana progress or final confirmation
|
|
20
|
+
return 'solana';
|
|
21
|
+
case 'failed':
|
|
22
|
+
// Default to claim if failed, as it's likely a bridge/claim failure
|
|
23
|
+
return 'claim';
|
|
24
|
+
default:
|
|
25
|
+
return 'claim';
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export var useDepositHydration = function (_a) {
|
|
29
|
+
var setPendingDepositId = _a.setPendingDepositId, setAmount = _a.setAmount, setTransactionId = _a.setTransactionId, setIsDepositing = _a.setIsDepositing, setPendingBridgeExplorerUrl = _a.setPendingBridgeExplorerUrl, setPendingBridgeTx = _a.setPendingBridgeTx, setPendingMintTx = _a.setPendingMintTx, setDepositProgressPhase = _a.setDepositProgressPhase, setBridgeError = _a.setBridgeError, setBridgeRetryable = _a.setBridgeRetryable;
|
|
30
|
+
var state = useOnboardingState().state;
|
|
31
|
+
var lastHydratedKeyRef = useRef(null);
|
|
32
|
+
// Hydrate pending deposit details from localStorage while on the progress screen.
|
|
33
|
+
// This makes "Recover" update the UI immediately without a hard refresh.
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
var _a, _b, _c, _d, _e;
|
|
36
|
+
if (state !== OnboardingStep.DEPOSIT_PROGRESS) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
var pending = readPendingDeposit();
|
|
40
|
+
if (!pending || !pending.depositId) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
var updatedAt = typeof pending.updatedAt === 'number' ? pending.updatedAt : 0;
|
|
44
|
+
var key = "".concat(pending.depositId, ":").concat(updatedAt);
|
|
45
|
+
// Always re-hydrate if the phase might be wrong (e.g. forced 'claim' vs actual 'bridge')
|
|
46
|
+
// But specific field checks might be better. For now, rely on key change.
|
|
47
|
+
if (lastHydratedKeyRef.current === key) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
lastHydratedKeyRef.current = key;
|
|
51
|
+
logger.info('[DepositHydration] Hydrating pending deposit from localStorage', {
|
|
52
|
+
depositId: pending.depositId,
|
|
53
|
+
stage: pending.stage,
|
|
54
|
+
updatedAt: updatedAt,
|
|
55
|
+
});
|
|
56
|
+
var phase = mapStageToPhase(pending.stage);
|
|
57
|
+
setPendingDepositId(pending.depositId);
|
|
58
|
+
setPendingBridgeTx((_a = pending.tx) !== null && _a !== void 0 ? _a : null);
|
|
59
|
+
setPendingMintTx((_b = pending.mintTx) !== null && _b !== void 0 ? _b : null);
|
|
60
|
+
setPendingBridgeExplorerUrl((_c = pending.explorerUrl) !== null && _c !== void 0 ? _c : null);
|
|
61
|
+
setAmount((_d = pending.amount) !== null && _d !== void 0 ? _d : '');
|
|
62
|
+
setTransactionId((_e = pending.depositId) !== null && _e !== void 0 ? _e : null);
|
|
63
|
+
// Not depositing actively after hydration
|
|
64
|
+
setIsDepositing(false);
|
|
65
|
+
setDepositProgressPhase(phase);
|
|
66
|
+
// Clear any stale errors - fresh start
|
|
67
|
+
setBridgeError(null);
|
|
68
|
+
setBridgeRetryable(false);
|
|
69
|
+
}, [
|
|
70
|
+
state,
|
|
71
|
+
setAmount,
|
|
72
|
+
setBridgeError,
|
|
73
|
+
setBridgeRetryable,
|
|
74
|
+
setDepositProgressPhase,
|
|
75
|
+
setIsDepositing,
|
|
76
|
+
setPendingBridgeExplorerUrl,
|
|
77
|
+
setPendingBridgeTx,
|
|
78
|
+
setPendingDepositId,
|
|
79
|
+
setPendingMintTx,
|
|
80
|
+
setTransactionId,
|
|
81
|
+
]);
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=useDepositHydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositHydration.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/hooks/useDepositHydration.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useOnboardingState } from '../providers/OnboardingStateProvider';\nimport { OnboardingStep, DepositProgressPhase } from '../types';\nimport {\n readPendingDeposit,\n PendingDepositStage,\n} from '../utils/deposit/storage';\nimport { logger } from '../../../utils/logger';\n\ninterface UseDepositHydrationProps {\n setPendingDepositId: (id: string | null) => void;\n setAmount: (amount: string) => void;\n setTransactionId: (id: string | null) => void;\n setIsDepositing: (isDepositing: boolean) => void;\n setPendingBridgeExplorerUrl: (url: string | null) => void;\n setPendingBridgeTx: (tx: string | null) => void;\n setPendingMintTx: (tx: string | null) => void;\n setDepositProgressPhase: (phase: DepositProgressPhase) => void;\n setBridgeError: (error: string | null) => void;\n setBridgeRetryable: (retryable: boolean) => void;\n}\n\n/**\n * Maps the stored pending deposit stage to the correct UI phase.\n */\nconst mapStageToPhase = (stage: PendingDepositStage): DepositProgressPhase => {\n switch (stage) {\n case 'initiated':\n case 'bridge_submitted':\n return 'bridge';\n case 'bridge_confirmed':\n // Confirmed on source chain (or attestation ready) -> Ready to claim\n return 'claim';\n case 'solana_submitted':\n case 'solana_confirmed':\n // Transaction sent to Solana -> showing solana progress or final confirmation\n return 'solana';\n case 'failed':\n // Default to claim if failed, as it's likely a bridge/claim failure\n return 'claim';\n default:\n return 'claim';\n }\n};\n\nexport const useDepositHydration = ({\n setPendingDepositId,\n setAmount,\n setTransactionId,\n setIsDepositing,\n setPendingBridgeExplorerUrl,\n setPendingBridgeTx,\n setPendingMintTx,\n setDepositProgressPhase,\n setBridgeError,\n setBridgeRetryable,\n}: UseDepositHydrationProps) => {\n const { state } = useOnboardingState();\n\n const lastHydratedKeyRef = useRef<string | null>(null);\n\n // Hydrate pending deposit details from localStorage while on the progress screen.\n // This makes \"Recover\" update the UI immediately without a hard refresh.\n useEffect(() => {\n if (state !== OnboardingStep.DEPOSIT_PROGRESS) {\n return;\n }\n\n const pending = readPendingDeposit();\n if (!pending || !pending.depositId) {\n return;\n }\n\n const updatedAt =\n typeof (pending as any).updatedAt === 'number' ? (pending as any).updatedAt : 0;\n const key = `${pending.depositId}:${updatedAt}`;\n\n // Always re-hydrate if the phase might be wrong (e.g. forced 'claim' vs actual 'bridge')\n // But specific field checks might be better. For now, rely on key change.\n if (lastHydratedKeyRef.current === key) {\n return;\n }\n lastHydratedKeyRef.current = key;\n\n logger.info('[DepositHydration] Hydrating pending deposit from localStorage', {\n depositId: pending.depositId,\n stage: pending.stage,\n updatedAt,\n });\n\n const phase = mapStageToPhase(pending.stage);\n\n setPendingDepositId(pending.depositId);\n setPendingBridgeTx((pending as any).tx ?? null);\n setPendingMintTx((pending as any).mintTx ?? null);\n setPendingBridgeExplorerUrl((pending as any).explorerUrl ?? null);\n setAmount((pending as any).amount ?? '');\n setTransactionId(pending.depositId ?? null);\n\n // Not depositing actively after hydration\n setIsDepositing(false);\n\n setDepositProgressPhase(phase);\n\n // Clear any stale errors - fresh start\n setBridgeError(null);\n setBridgeRetryable(false);\n }, [\n state,\n setAmount,\n setBridgeError,\n setBridgeRetryable,\n setDepositProgressPhase,\n setIsDepositing,\n setPendingBridgeExplorerUrl,\n setPendingBridgeTx,\n setPendingDepositId,\n setPendingMintTx,\n setTransactionId,\n ]);\n\n};\n\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createPendingDepositDraft } from '../utils/deposit/storage';
|
|
2
|
+
export declare const usePendingDepositState: () => {
|
|
3
|
+
pendingDepositId: string | null;
|
|
4
|
+
setPendingDepositId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
5
|
+
ensurePendingDraft: (draftAmount: string) => ReturnType<typeof createPendingDepositDraft>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
import { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';
|
|
3
|
+
import { useOnboardingState } from '../providers/OnboardingStateProvider';
|
|
4
|
+
import { clearPendingDeposit, createPendingDepositDraft, readPendingDeposit, } from '../utils/deposit/storage';
|
|
5
|
+
export var usePendingDepositState = function () {
|
|
6
|
+
var context = useOnboardingState().context;
|
|
7
|
+
// Use NetworkProvider instead of legacy N1WalletContext
|
|
8
|
+
var _a = useNetwork(), solanaAddress = _a.solanaAddress, evmAddress = _a.evmAddress, isEvmMode = _a.isEvmMode;
|
|
9
|
+
var _b = useState(null), pendingDepositId = _b[0], setPendingDepositId = _b[1];
|
|
10
|
+
var ensurePendingDraft = useCallback(function (draftAmount) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
// Use isEvmMode flag instead of checking context.entryNetwork
|
|
13
|
+
var walletForDraft = isEvmMode
|
|
14
|
+
? evmAddress || solanaAddress
|
|
15
|
+
: solanaAddress;
|
|
16
|
+
var chainForDraft = (_a = context.selectedChainId) !== null && _a !== void 0 ? _a : ((_b = context.selectedChain) !== null && _b !== void 0 ? _b : 'solana');
|
|
17
|
+
var pendingState = readPendingDeposit();
|
|
18
|
+
if ((pendingState === null || pendingState === void 0 ? void 0 : pendingState.stage) === 'failed') {
|
|
19
|
+
clearPendingDeposit();
|
|
20
|
+
pendingState = null;
|
|
21
|
+
}
|
|
22
|
+
if (pendingState && pendingDepositId && pendingState.depositId !== pendingDepositId) {
|
|
23
|
+
clearPendingDeposit();
|
|
24
|
+
pendingState = null;
|
|
25
|
+
}
|
|
26
|
+
if (!pendingState) {
|
|
27
|
+
var draft = createPendingDepositDraft({
|
|
28
|
+
depositId: pendingDepositId !== null && pendingDepositId !== void 0 ? pendingDepositId : "dep-".concat(Date.now()),
|
|
29
|
+
wallet: walletForDraft || '',
|
|
30
|
+
chain: chainForDraft,
|
|
31
|
+
amount: draftAmount,
|
|
32
|
+
});
|
|
33
|
+
setPendingDepositId(draft.depositId);
|
|
34
|
+
// Meta write removed as it's now unified
|
|
35
|
+
return draft;
|
|
36
|
+
}
|
|
37
|
+
return pendingState;
|
|
38
|
+
}, [solanaAddress, context.selectedChainId, context.selectedChain, evmAddress, isEvmMode, pendingDepositId]);
|
|
39
|
+
return {
|
|
40
|
+
pendingDepositId: pendingDepositId,
|
|
41
|
+
setPendingDepositId: setPendingDepositId,
|
|
42
|
+
ensurePendingDraft: ensurePendingDraft,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=usePendingDepositState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePendingDepositState.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/hooks/usePendingDepositState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,IAAM,sBAAsB,GAAG;IAElC,IAAA,OAAO,GACL,kBAAkB,EAAE,QADf,CACgB;IAEzB,wDAAwD;IAClD,IAAA,KAA2C,UAAU,EAAE,EAArD,aAAa,mBAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAiB,CAAC;IAExD,IAAA,KAA0C,QAAQ,CAAgB,IAAI,CAAC,EAAtE,gBAAgB,QAAA,EAAE,mBAAmB,QAAiC,CAAC;IAE9E,IAAM,kBAAkB,GAAG,WAAW,CACpC,UAAC,WAAmB;;QAClB,8DAA8D;QAC9D,IAAM,cAAc,GAAG,SAAS;YAC9B,CAAC,CAAC,UAAU,IAAI,aAAa;YAC7B,CAAC,CAAC,aAAa,CAAC;QAClB,IAAM,aAAa,GAAG,MAAA,OAAO,CAAC,eAAe,mCAAI,CAAC,MAAA,OAAO,CAAC,aAAa,mCAAI,QAAQ,CAAC,CAAC;QACrF,IAAI,YAAY,GAAG,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,MAAK,QAAQ,EAAE,CAAC;YACrC,mBAAmB,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,YAAY,IAAI,gBAAgB,IAAI,YAAY,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;YACpF,mBAAmB,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAM,KAAK,GAAG,yBAAyB,CAAC;gBACtC,SAAS,EAAE,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,cAAO,IAAI,CAAC,GAAG,EAAE,CAAE;gBAClD,MAAM,EAAE,cAAc,IAAI,EAAE;gBAC5B,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YACH,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,yCAAyC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,EACD,CAAC,aAAa,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CACzG,CAAC;IAEF,OAAO;QACL,gBAAgB,kBAAA;QAChB,mBAAmB,qBAAA;QACnB,kBAAkB,oBAAA;KACnB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useCallback, useState } from 'react';\nimport { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';\nimport { useOnboardingState } from '../providers/OnboardingStateProvider';\nimport {\n clearPendingDeposit,\n createPendingDepositDraft,\n readPendingDeposit,\n} from '../utils/deposit/storage';\n\nexport const usePendingDepositState = () => {\n const {\n context,\n } = useOnboardingState();\n\n // Use NetworkProvider instead of legacy N1WalletContext\n const { solanaAddress, evmAddress, isEvmMode } = useNetwork();\n\n const [pendingDepositId, setPendingDepositId] = useState<string | null>(null);\n\n const ensurePendingDraft = useCallback(\n (draftAmount: string): ReturnType<typeof createPendingDepositDraft> => {\n // Use isEvmMode flag instead of checking context.entryNetwork\n const walletForDraft = isEvmMode\n ? evmAddress || solanaAddress\n : solanaAddress;\n const chainForDraft = context.selectedChainId ?? (context.selectedChain ?? 'solana');\n let pendingState = readPendingDeposit();\n if (pendingState?.stage === 'failed') {\n clearPendingDeposit();\n pendingState = null;\n }\n if (pendingState && pendingDepositId && pendingState.depositId !== pendingDepositId) {\n clearPendingDeposit();\n pendingState = null;\n }\n if (!pendingState) {\n const draft = createPendingDepositDraft({\n depositId: pendingDepositId ?? `dep-${Date.now()}`,\n wallet: walletForDraft || '',\n chain: chainForDraft,\n amount: draftAmount,\n });\n setPendingDepositId(draft.depositId);\n // Meta write removed as it's now unified\n return draft;\n }\n return pendingState;\n },\n [solanaAddress, context.selectedChainId, context.selectedChain, evmAddress, isEvmMode, pendingDepositId]\n );\n\n return {\n pendingDepositId,\n setPendingDepositId,\n ensurePendingDraft,\n };\n};\n\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createPendingDepositDraft } from '../utils/deposit/storage';
|
|
2
|
+
interface UseSolanaDepositProps {
|
|
3
|
+
setDepositProgressPhase: (phase: 'bridge' | 'solana' | 'nord') => void;
|
|
4
|
+
ensurePendingDraft: (amount: string) => ReturnType<typeof createPendingDepositDraft>;
|
|
5
|
+
}
|
|
6
|
+
export declare const useSolanaDeposit: ({ setDepositProgressPhase, ensurePendingDraft, }: UseSolanaDepositProps) => {
|
|
7
|
+
runSolanaDeposit: (draftAmount: string, pendingState?: ReturnType<typeof createPendingDepositDraft> | null) => Promise<{
|
|
8
|
+
txId: string;
|
|
9
|
+
workingState: import("../utils/deposit/storage").PendingDepositState;
|
|
10
|
+
solanaTx: string | null;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useCallback } from 'react';
|
|
38
|
+
import { PublicKey } from '@solana/web3.js';
|
|
39
|
+
import { useN1WalletContext } from '../../../hooks';
|
|
40
|
+
import { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';
|
|
41
|
+
import { useSession } from '../../../providers/N1WalletProvider/SessionProvider';
|
|
42
|
+
import { advancePendingDeposit } from '../utils/deposit/storage';
|
|
43
|
+
import { waitForDepositEventIndex, waitForNordAcknowledgement, waitForTransactionSlot, } from '../utils/deposit/solanaUtils';
|
|
44
|
+
import { useWalletConnection } from '../providers/WalletConnectionProvider';
|
|
45
|
+
import { logger } from '../../../utils/logger';
|
|
46
|
+
import { createDepositError } from '../../../utils/errors';
|
|
47
|
+
export var useSolanaDeposit = function (_a) {
|
|
48
|
+
var setDepositProgressPhase = _a.setDepositProgressPhase, ensurePendingDraft = _a.ensurePendingDraft;
|
|
49
|
+
// Use new providers for address and nordUser
|
|
50
|
+
var solanaAddress = useNetwork().solanaAddress;
|
|
51
|
+
var nordUser = useSession().nordUser;
|
|
52
|
+
// nord client still comes from legacy context (passed as prop)
|
|
53
|
+
var nord = useN1WalletContext().nord;
|
|
54
|
+
var turnkeyAddress = useWalletConnection().turnkeyAddress;
|
|
55
|
+
var runSolanaDeposit = useCallback(function (draftAmount, pendingState) { return __awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
var workingState, normalizedAmount, txId, serializedTx, protonClient, solanaConnection, solanaRecipient, recipientKey, usdcToken, depositResponse, splTx, slot, eventIndex;
|
|
57
|
+
var _a;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
switch (_b.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
logger.info("[SolanaDeposit] runSolanaDeposit called", {
|
|
62
|
+
draftAmount: draftAmount,
|
|
63
|
+
hasPendingState: !!pendingState,
|
|
64
|
+
});
|
|
65
|
+
if (!nord || !nordUser) {
|
|
66
|
+
logger.logError(createDepositError('SOLANA_TX_FAILED', 'Nord client/session not available'));
|
|
67
|
+
throw new Error('Nord client/session not available for Solana deposit');
|
|
68
|
+
}
|
|
69
|
+
setDepositProgressPhase('solana');
|
|
70
|
+
workingState = pendingState !== null && pendingState !== void 0 ? pendingState : ensurePendingDraft(draftAmount);
|
|
71
|
+
normalizedAmount = parseFloat(draftAmount);
|
|
72
|
+
txId = null;
|
|
73
|
+
serializedTx = null;
|
|
74
|
+
protonClient = nord === null || nord === void 0 ? void 0 : nord.protonClient;
|
|
75
|
+
solanaConnection = nord === null || nord === void 0 ? void 0 : nord.solanaConnection;
|
|
76
|
+
if (!protonClient || !solanaConnection) {
|
|
77
|
+
logger.logError(createDepositError('SOLANA_TX_FAILED', 'Missing Solana or Proton configuration'));
|
|
78
|
+
throw new Error('Nord client is missing Solana or Proton configuration. Verify your Nord deployment.');
|
|
79
|
+
}
|
|
80
|
+
solanaRecipient = solanaAddress || turnkeyAddress;
|
|
81
|
+
if (!solanaRecipient) {
|
|
82
|
+
logger.logError(createDepositError('SOLANA_TX_FAILED', 'Solana recipient unavailable'));
|
|
83
|
+
throw new Error('Solana recipient is unavailable. Wait for Turnkey to finish provisioning.');
|
|
84
|
+
}
|
|
85
|
+
recipientKey = new PublicKey(solanaRecipient);
|
|
86
|
+
usdcToken = Array.isArray(nord === null || nord === void 0 ? void 0 : nord.tokens)
|
|
87
|
+
? nord === null || nord === void 0 ? void 0 : nord.tokens.find(function (t) { return t.symbol === 'USDC_2'; })
|
|
88
|
+
: null;
|
|
89
|
+
if (!usdcToken) {
|
|
90
|
+
throw new Error('Nord token configuration is missing USDC. Verify your Nord deployment.');
|
|
91
|
+
}
|
|
92
|
+
setDepositProgressPhase('solana');
|
|
93
|
+
workingState = advancePendingDeposit(workingState, { stage: 'solana_submitted', tx: (_a = txId !== null && txId !== void 0 ? txId : workingState.tx) !== null && _a !== void 0 ? _a : null });
|
|
94
|
+
logger.info("[SolanaDeposit] Calling nordUser.deposit...", {
|
|
95
|
+
normalizedAmount: normalizedAmount,
|
|
96
|
+
tokenId: usdcToken.tokenId,
|
|
97
|
+
});
|
|
98
|
+
if (!(typeof (nordUser === null || nordUser === void 0 ? void 0 : nordUser.deposit) === 'function')) return [3 /*break*/, 2];
|
|
99
|
+
return [4 /*yield*/, nordUser.deposit({
|
|
100
|
+
amount: normalizedAmount,
|
|
101
|
+
tokenId: usdcToken.tokenId,
|
|
102
|
+
})];
|
|
103
|
+
case 1:
|
|
104
|
+
depositResponse = _b.sent();
|
|
105
|
+
if (depositResponse) {
|
|
106
|
+
if (typeof depositResponse === 'string') {
|
|
107
|
+
txId = depositResponse;
|
|
108
|
+
}
|
|
109
|
+
else if (typeof depositResponse === 'object' &&
|
|
110
|
+
'signature' in depositResponse &&
|
|
111
|
+
typeof depositResponse.signature === 'string') {
|
|
112
|
+
txId = depositResponse.signature;
|
|
113
|
+
if ('rawTx' in depositResponse && typeof depositResponse.rawTx === 'string') {
|
|
114
|
+
serializedTx = depositResponse.rawTx;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
_b.label = 2;
|
|
119
|
+
case 2:
|
|
120
|
+
if (!!txId) return [3 /*break*/, 4];
|
|
121
|
+
logger.info("[SolanaDeposit] No txId from deposit, trying depositSpl...");
|
|
122
|
+
return [4 /*yield*/, (nordUser === null || nordUser === void 0 ? void 0 : nordUser.depositSpl(normalizedAmount, usdcToken.tokenId))];
|
|
123
|
+
case 3:
|
|
124
|
+
splTx = _b.sent();
|
|
125
|
+
if (typeof splTx === 'string') {
|
|
126
|
+
txId = splTx;
|
|
127
|
+
}
|
|
128
|
+
else if (splTx && typeof splTx === 'object' && 'signature' in splTx && typeof splTx.signature === 'string') {
|
|
129
|
+
txId = splTx.signature;
|
|
130
|
+
if ('rawTx' in splTx && typeof splTx.rawTx === 'string') {
|
|
131
|
+
serializedTx = splTx.rawTx;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
_b.label = 4;
|
|
135
|
+
case 4:
|
|
136
|
+
if (!txId) {
|
|
137
|
+
logger.logError(createDepositError('SOLANA_TX_FAILED', 'Failed to get transaction ID'));
|
|
138
|
+
throw new Error('Failed to submit deposit transaction.');
|
|
139
|
+
}
|
|
140
|
+
logger.info("[SolanaDeposit] Transaction submitted successfully", { txId: txId });
|
|
141
|
+
workingState = advancePendingDeposit(workingState, { stage: 'solana_submitted', tx: txId });
|
|
142
|
+
return [4 /*yield*/, waitForTransactionSlot(solanaConnection, txId)];
|
|
143
|
+
case 5:
|
|
144
|
+
slot = _b.sent();
|
|
145
|
+
return [4 /*yield*/, waitForDepositEventIndex(protonClient, recipientKey, slot)];
|
|
146
|
+
case 6:
|
|
147
|
+
eventIndex = _b.sent();
|
|
148
|
+
setDepositProgressPhase('nord');
|
|
149
|
+
workingState = advancePendingDeposit(workingState, { stage: 'solana_confirmed', tx: txId });
|
|
150
|
+
return [4 /*yield*/, waitForNordAcknowledgement(nord, eventIndex)];
|
|
151
|
+
case 7:
|
|
152
|
+
_b.sent();
|
|
153
|
+
return [2 /*return*/, { txId: txId, workingState: workingState, solanaTx: serializedTx }];
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}); }, [solanaAddress, turnkeyAddress, ensurePendingDraft, nord, nordUser, setDepositProgressPhase]);
|
|
157
|
+
return {
|
|
158
|
+
runSolanaDeposit: runSolanaDeposit,
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=useSolanaDeposit.js.map
|