@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":"05-AmountInputScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/05-AmountInputScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Connection, LAMPORTS_PER_SOL, PublicKey } from \"@solana/web3.js\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolanaLogo } from \"../../../components/logos\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { useNetwork } from \"../../../providers/N1WalletProvider/NetworkProvider\";\nimport { logger } from \"../../../utils/logger\";\nimport { formatAmount } from \"../../../utils/formatAmount\";\nimport { useDepositFlow, useOnboardingState, useWalletConnection } from \"../providers\";\nimport { WalletBalanceState } from \"../types\";\nimport { isNordConfigured } from \"../utils/nordUtils\";\nimport { getSolanaRpcUrl } from \"../../../config/solana\";\n\n/**\n * Screen for entering deposit amount with balance checking and validation.\n * Supports both Solana and EVM chains, fetches USDC balances, and validates minimum deposits.\n */\nexport const DEFAULT_MIN_DEPOSIT = 2;\nexport const BRIDGE_FEE = 1;\nconst EVM_USDC_DECIMALS = 6;\n\nexport const BALANCE_REFRESH_MS = 20_000;\n\nconst ERC20_BALANCE_OF_SELECTOR = \"0x70a08231\";\n\ninterface EvmChainConfig {\n nativeSymbol: string;\n nativeDecimals: number;\n usdcAddress?: string;\n usdcDecimals: number;\n rpcUrls: string[];\n minNativeForFees: number;\n}\n\nconst parseNumber = (value: string | undefined | null): number | undefined => {\n if (!value) return undefined;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nconst parseList = (value: string | undefined | null): string[] =>\n value\n ? value\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean)\n : [];\n\nconst EVM_CHAIN_CONFIG: Record<string, EvmChainConfig> = {\n ethereum: {\n nativeSymbol: process.env.NEXT_PUBLIC_NATIVE_SYMBOL_ETHEREUM ?? \"ETH\",\n nativeDecimals:\n parseNumber(process.env.NEXT_PUBLIC_NATIVE_DECIMALS_ETHEREUM) ?? 18,\n usdcAddress: process.env.NEXT_PUBLIC_USDC_ETHEREUM,\n usdcDecimals:\n parseNumber(process.env.NEXT_PUBLIC_USDC_DECIMALS_ETHEREUM) ?? 6,\n rpcUrls:\n parseList(process.env.NEXT_PUBLIC_RPC_ETHEREUM).length > 0\n ? parseList(process.env.NEXT_PUBLIC_RPC_ETHEREUM)\n : [\"https://ethereum-sepolia-rpc.publicnode.com\"],\n minNativeForFees:\n parseNumber(process.env.NEXT_PUBLIC_MIN_NATIVE_FOR_FEES_ETHEREUM) ??\n 0.002,\n },\n arbitrum: {\n nativeSymbol: process.env.NEXT_PUBLIC_NATIVE_SYMBOL_ARBITRUM ?? \"ETH\",\n nativeDecimals:\n parseNumber(process.env.NEXT_PUBLIC_NATIVE_DECIMALS_ARBITRUM) ?? 18,\n usdcAddress: process.env.NEXT_PUBLIC_USDC_ARBITRUM,\n usdcDecimals:\n parseNumber(process.env.NEXT_PUBLIC_USDC_DECIMALS_ARBITRUM) ?? 6,\n rpcUrls:\n parseList(process.env.NEXT_PUBLIC_RPC_ARBITRUM).length > 0\n ? parseList(process.env.NEXT_PUBLIC_RPC_ARBITRUM)\n : [\"https://sepolia-rollup.arbitrum.io/rpc\"],\n minNativeForFees:\n parseNumber(process.env.NEXT_PUBLIC_MIN_NATIVE_FOR_FEES_ARBITRUM) ??\n 0.002,\n },\n base: {\n nativeSymbol: process.env.NEXT_PUBLIC_NATIVE_SYMBOL_BASE ?? \"ETH\",\n nativeDecimals:\n parseNumber(process.env.NEXT_PUBLIC_NATIVE_DECIMALS_BASE) ?? 18,\n usdcAddress: process.env.NEXT_PUBLIC_USDC_BASE,\n usdcDecimals: parseNumber(process.env.NEXT_PUBLIC_USDC_DECIMALS_BASE) ?? 6,\n rpcUrls:\n parseList(process.env.NEXT_PUBLIC_RPC_BASE).length > 0\n ? parseList(process.env.NEXT_PUBLIC_RPC_BASE)\n : [\"https://sepolia.base.org\"],\n minNativeForFees:\n parseNumber(process.env.NEXT_PUBLIC_MIN_NATIVE_FOR_FEES_BASE) ?? 0.002,\n },\n};\n\nconst normalizeChainId = (chain?: string | null): string => {\n if (!chain) return \"solana\";\n const lower = chain.toLowerCase();\n if (lower === \"evm\") return \"ethereum\";\n if (lower === \"arb\" || lower === \"arbitrum\" || lower === \"arbitrum-one\")\n return \"arbitrum\";\n if (lower === \"base\") return \"base\";\n return lower;\n};\n\nconst formatBalanceFromHex = (\n value: string | null | undefined,\n decimals: number\n): number => {\n if (!value) return 0;\n try {\n const raw = BigInt(value);\n return Number(raw) / 10 ** decimals;\n } catch {\n return 0;\n }\n};\n\nconst buildBalanceOfData = (wallet: string): string => {\n const stripped = wallet.toLowerCase().replace(/^0x/, \"\");\n return `${ERC20_BALANCE_OF_SELECTOR}${stripped.padStart(64, \"0\")}`;\n};\n\ninterface AmountInputScreenProps { }\n\nexport function AmountInputScreen({ }: AmountInputScreenProps) {\n const { context } = useOnboardingState();\n const { amount, updateAmount, startDeposit } = useDepositFlow();\n const { nord } = useN1WalletContext();\n const { solanaAddress: address, evmAddress } = useNetwork();\n const { turnkeyAddress } = useWalletConnection();\n\n const [tokenSymbol, setTokenSymbol] = useState<string | null>(null);\n const [tokenDecimals, setTokenDecimals] = useState<number | null>(null);\n const [nordTokens, setNordTokens] = useState<any[] | null>(null);\n const [walletBalances, setWalletBalances] = useState<WalletBalanceState>({\n usdc: null,\n native: null,\n loading: false,\n error: null,\n });\n const isMountedRef = useRef(true);\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n // Set default amount only on initial mount\n useEffect(() => {\n if (!amount) {\n updateAmount(\"10\");\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const normalizedChain = useMemo(\n () =>\n normalizeChainId(\n context.selectedChainId || context.selectedChain || context.entryNetwork\n ),\n [context.entryNetwork, context.selectedChain, context.selectedChainId]\n );\n\n const selectedChainName = useMemo(() => {\n if (context.selectedChain) {\n return context.selectedChain;\n }\n switch (normalizedChain) {\n case \"ethereum\":\n return \"Ethereum\";\n case \"arbitrum\":\n return \"Arbitrum\";\n case \"base\":\n return \"Base\";\n default:\n return \"Solana\";\n }\n }, [context.selectedChain, normalizedChain]);\n const [tokenMintAddress, setTokenMintAddress] = useState<string | null>(null);\n const solanaRecipient = address || turnkeyAddress || null;\n\n // Simple rule: on EVM chains we always treat the deposit token as USDC with 6 decimals.\n // This avoids depending on Nord token metadata to enable the amount screen.\n useEffect(() => {\n if (normalizedChain === \"solana\") {\n return;\n }\n if (tokenSymbol !== \"USDC\") {\n setTokenSymbol(\"USDC\");\n }\n if (tokenDecimals !== EVM_USDC_DECIMALS) {\n setTokenDecimals(EVM_USDC_DECIMALS);\n }\n if (tokenMintAddress !== null) {\n setTokenMintAddress(null);\n }\n }, [normalizedChain, tokenDecimals, tokenMintAddress, tokenSymbol]);\n const handleDepositClick = useCallback(() => {\n logger.debug(\"Deposit button clicked\", {\n selectedChain: normalizedChain,\n hasEvm: Boolean(evmAddress),\n hasSolana: Boolean(address),\n hasTurnkey: Boolean(turnkeyAddress),\n });\n void startDeposit();\n }, [address, evmAddress, normalizedChain, startDeposit, turnkeyAddress, amount, solanaRecipient]);\n\n useEffect(() => {\n let isCancelled = false;\n\n const loadNordTokens = async () => {\n if (!nord || !isNordConfigured(nord)) {\n if (!isCancelled) {\n setNordTokens(null);\n }\n return;\n }\n\n if (Array.isArray(nord.tokens) && nord.tokens.length > 0) {\n if (!isCancelled) {\n setNordTokens(nord.tokens);\n }\n return;\n }\n\n if (typeof nord.fetchNordInfo !== \"function\") {\n return;\n }\n\n try {\n await nord.fetchNordInfo();\n if (isCancelled) {\n return;\n }\n if (Array.isArray(nord.tokens) && nord.tokens.length > 0) {\n setNordTokens(nord.tokens);\n }\n } catch (error) {\n if (!isCancelled) {\n logger.warn(\"Unable to fetch Nord info:\", error);\n setNordTokens(null);\n }\n }\n };\n\n loadNordTokens();\n\n return () => {\n isCancelled = true;\n };\n }, [nord]);\n\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n if (!nordTokens || nordTokens.length === 0) {\n return;\n }\n const usdcToken =\n nordTokens.find((t: any) => t.symbol === \"USDC_2\") || nordTokens[0];\n if (usdcToken) {\n if (!usdcToken.symbol) {\n throw new Error(\"Nord token configuration missing symbol\");\n }\n if (!Number.isFinite(usdcToken.decimals)) {\n throw new Error(\"Nord token configuration missing decimals\");\n }\n if (!usdcToken.mintAddr) {\n throw new Error(\"Nord token configuration missing mint address\");\n }\n setTokenSymbol(usdcToken.symbol);\n setTokenDecimals(usdcToken.decimals);\n setTokenMintAddress(usdcToken.mintAddr);\n }\n } catch (error) {\n logger.warn(\"Error getting token information from Nord:\", error);\n }\n }\n }, [nord, nordTokens]);\n\n const minDeposit = useMemo(() => {\n if (\n !nord ||\n !isNordConfigured(nord) ||\n !tokenMintAddress ||\n tokenDecimals == null\n ) {\n return DEFAULT_MIN_DEPOSIT;\n }\n try {\n // @ts-ignore\n const mintInfo = nord.protonClient?.mintInfo?.get(tokenMintAddress);\n if (mintInfo?.minDeposit) {\n const minDepositUnits = Number(mintInfo.minDeposit);\n const divisor = 10 ** (tokenDecimals ?? 0);\n if (Number.isFinite(minDepositUnits) && divisor > 0) {\n return minDepositUnits / divisor;\n }\n }\n } catch (error) {\n logger.warn(\"Unable to derive min deposit from Nord config\", error);\n }\n return DEFAULT_MIN_DEPOSIT;\n }, [nord, tokenMintAddress, tokenDecimals]);\n\n const effectiveMinDeposit = useMemo(() => {\n // For EVM chains we enforce: min_deposit + bridge_fee.\n // For Solana: min_deposit only.\n return normalizedChain === \"solana\" ? minDeposit : minDeposit + BRIDGE_FEE;\n }, [minDeposit, normalizedChain]);\n\n const fetchBalances = useCallback(\n async (showSpinner: boolean = true) => {\n const isSolanaChain = normalizedChain === \"solana\";\n const ownerAddress = isSolanaChain ? address : evmAddress;\n const evmConfig = isSolanaChain ? null : EVM_CHAIN_CONFIG[normalizedChain];\n const rpcUrl = evmConfig?.rpcUrls.find(Boolean) ?? null;\n\n if (!ownerAddress || (isSolanaChain && !tokenMintAddress)) {\n if (isMountedRef.current) {\n setWalletBalances({\n usdc: null,\n native: null,\n loading: false,\n error: null,\n });\n }\n return;\n }\n\n if (showSpinner) {\n setWalletBalances((prev) => ({\n ...prev,\n loading: true,\n error: null,\n }));\n }\n\n try {\n if (isSolanaChain) {\n const rpcEndpoint = getSolanaRpcUrl();\n const connection = new Connection(rpcEndpoint, \"confirmed\");\n const ownerKey = new PublicKey(ownerAddress);\n\n const [solLamports, tokenAccounts] = await Promise.all([\n connection.getBalance(ownerKey),\n connection.getParsedTokenAccountsByOwner(ownerKey, {\n mint: new PublicKey(tokenMintAddress!),\n }),\n ]);\n\n const usdcTotal = tokenAccounts.value.reduce((total, { account }) => {\n const info = account.data.parsed?.info;\n const tokenAmount = info?.tokenAmount;\n if (!tokenAmount) {\n return total;\n }\n const uiAmount =\n typeof tokenAmount.uiAmount === \"number\"\n ? tokenAmount.uiAmount\n : parseFloat(tokenAmount.uiAmountString ?? \"0\");\n return total + (Number.isFinite(uiAmount) ? uiAmount : 0);\n }, 0);\n\n if (!isMountedRef.current) {\n return;\n }\n\n setWalletBalances({\n usdc: usdcTotal,\n native: solLamports / LAMPORTS_PER_SOL,\n loading: false,\n error: null,\n });\n return;\n }\n\n if (!evmConfig || !rpcUrl) {\n throw new Error(\"Unsupported chain for balance lookup.\");\n }\n if (!evmConfig.usdcAddress) {\n throw new Error(\"USDC contract is not configured for this chain.\");\n }\n const normalizedOwner = ownerAddress.startsWith(\"0x\")\n ? ownerAddress\n : `0x${ownerAddress}`;\n\n const requestRpc = async (method: string, params: any[]) => {\n const response = await fetch(rpcUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: Date.now(),\n method,\n params,\n }),\n });\n if (!response.ok) {\n throw new Error(\n `RPC request failed with status ${response.status}`\n );\n }\n const payload = await response.json();\n if (payload?.error) {\n throw new Error(\n payload.error?.message || \"RPC request failed for balances.\"\n );\n }\n return payload?.result as string;\n };\n\n const [nativeHex, usdcHex] = await Promise.all([\n requestRpc(\"eth_getBalance\", [normalizedOwner, \"latest\"]),\n requestRpc(\"eth_call\", [\n { to: evmConfig.usdcAddress, data: buildBalanceOfData(normalizedOwner) },\n \"latest\",\n ]),\n ]);\n\n const usdcBalance = formatBalanceFromHex(\n usdcHex,\n evmConfig.usdcDecimals\n );\n const nativeBalance = formatBalanceFromHex(\n nativeHex,\n evmConfig.nativeDecimals\n );\n\n if (!isMountedRef.current) {\n return;\n }\n\n setWalletBalances({\n usdc: usdcBalance,\n native: nativeBalance,\n loading: false,\n error: null,\n });\n } catch (error) {\n logger.warn(\"Failed to load wallet balances\", error);\n if (!isMountedRef.current) {\n return;\n }\n setWalletBalances((prev) => ({\n ...prev,\n loading: false,\n error: \"Unable to fetch wallet balances. Please try again.\",\n }));\n }\n },\n [address, evmAddress, normalizedChain, tokenMintAddress]\n );\n\n useEffect(() => {\n if (normalizedChain === \"solana\" && !tokenMintAddress) {\n return;\n }\n fetchBalances();\n const interval = setInterval(() => {\n fetchBalances(false);\n }, BALANCE_REFRESH_MS);\n\n return () => clearInterval(interval);\n }, [fetchBalances, normalizedChain, tokenMintAddress]);\n\n const isSolana = normalizedChain === \"solana\";\n const nativeSymbol =\n isSolana\n ? \"SOL\"\n : EVM_CHAIN_CONFIG[normalizedChain]?.nativeSymbol ?? \"ETH\";\n const requiredNativeForFees = isSolana\n ? 0.002\n : EVM_CHAIN_CONFIG[normalizedChain]?.minNativeForFees ?? 0.002;\n const gasFeeDisplay = isSolana ? \"~$0.30\" : \"~$0.40\";\n const minDepositDisplay = effectiveMinDeposit.toString();\n const tokenSymbolDisplay = tokenSymbol ?? \"—\";\n\n const formattedBalance =\n walletBalances.usdc == null || tokenDecimals == null\n ? walletBalances.loading\n ? \"Loading...\"\n : \"—\"\n : formatAmount(walletBalances.usdc, tokenDecimals);\n\n const formattedNativeBalance =\n walletBalances.native == null\n ? walletBalances.loading\n ? \"Loading...\"\n : \"—\"\n : walletBalances.native.toFixed(4);\n\n const numericAmount = Number(amount || 0);\n const hasEnteredAmount = Number.isFinite(numericAmount) && numericAmount > 0;\n const meetsMinDeposit = numericAmount >= effectiveMinDeposit;\n const hasSufficientUsdc =\n walletBalances.usdc == null ? false : numericAmount <= walletBalances.usdc;\n const hasSufficientNative =\n walletBalances.native == null\n ? false\n : walletBalances.native >= requiredNativeForFees;\n\n const validationError = useMemo(() => {\n if (isSolana && !address) {\n return \"Connect a wallet to continue.\";\n }\n\n if (!isSolana && !evmAddress) {\n return \"Connect an EVM wallet to continue.\";\n }\n\n if (walletBalances.error) {\n return walletBalances.error;\n }\n\n if (!tokenSymbol || tokenDecimals == null) {\n return \"Token information unavailable. Please try again later.\";\n }\n\n if (!hasEnteredAmount) {\n return \"Enter an amount to continue.\";\n }\n\n if (\n walletBalances.loading ||\n walletBalances.usdc == null ||\n walletBalances.native == null\n ) {\n return null;\n }\n\n if (!isSolana && !solanaRecipient) {\n return \"Preparing Solana deposit address. Please wait a moment and retry.\";\n }\n\n if (!meetsMinDeposit) {\n return `Minimum deposit is ${effectiveMinDeposit} ${tokenSymbolDisplay}.`;\n }\n\n if (!hasSufficientUsdc) {\n return `Insufficient ${tokenSymbol} balance for this deposit.`;\n }\n\n if (!hasSufficientNative) {\n return `Not enough ${nativeSymbol} to cover network fees.`;\n }\n\n return null;\n }, [\n address,\n evmAddress,\n walletBalances.error,\n walletBalances.loading,\n walletBalances.usdc,\n walletBalances.native,\n hasEnteredAmount,\n hasSufficientNative,\n hasSufficientUsdc,\n meetsMinDeposit,\n tokenSymbol,\n tokenDecimals,\n effectiveMinDeposit,\n isSolana,\n nativeSymbol,\n solanaRecipient,\n tokenSymbolDisplay,\n ]);\n\n const isValidAmount = !walletBalances.loading && validationError === null;\n\n const handleUseMax = () => {\n if (\n walletBalances.usdc == null ||\n walletBalances.usdc <= 0 ||\n tokenDecimals == null\n ) {\n return;\n }\n updateAmount(walletBalances.usdc.toFixed(tokenDecimals));\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n {/* Header Section */}\n <div className=\"flex items-center justify-between mb-4\">\n <h2 className=\"text-sm text-white font-medium\">Deposit From</h2>\n <div className=\"flex items-center space-x-2 rounded-md bg-n1-ww-border h-5 justify-center p-1\">\n {isSolana ? (\n <div className=\"rounded-full flex items-center justify-center bg-black h-3 w-3\">\n <SolanaLogo width={6} height={6} />\n </div>\n ) : (\n <div className=\"w-4 h-4 rounded-full bg-n1-ww-gray-600\"></div>\n )}\n <span className=\"text-white text-xs font-medium\">\n {selectedChainName}\n </span>\n </div>\n </div>\n\n {/* Deposit Information Section */}\n <div className=\"space-y-3 mb-4 text-white text-xs font-light\">\n <div className=\"flex items-center justify-between\">\n <span>Available Balance:</span>\n <span>\n {formattedBalance} {tokenSymbolDisplay}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>{nativeSymbol} Balance:</span>\n <span>\n {formattedNativeBalance} {nativeSymbol}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>Minimum Deposit:</span>\n <span>\n {minDepositDisplay} {tokenSymbolDisplay}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>Gas Fee:</span>\n <span>{gasFeeDisplay}</span>\n </div>\n </div>\n\n <div className=\"h-px bg-n1-ww-border mb-4\"></div>\n\n {/* Amount Input Section */}\n <div className=\"mb-4 flex justify-between w-full\">\n <div className=\"flex items-center gap-3\">\n <div className=\"flex items-center justify-between border border-n1-ww-gray-400 bg-n1-ww-gray-600 flex-1 w-[292px] rounded h-8 px-2\">\n <span className=\"text-white text-sm font-medium\">Amount</span>\n <div className=\"flex items-center space-x-2\">\n <input\n type=\"text\"\n inputMode=\"decimal\"\n value={amount}\n onChange={(e) => {\n const val = e.target.value;\n // Allow empty, or valid decimal numbers\n if (val === \"\" || /^\\d*\\.?\\d*$/.test(val)) {\n updateAmount(val);\n }\n }}\n className=\"text-white font-light text-xs text-right bg-transparent border-none outline-none focus:ring-2 focus:ring-n1-ww-main focus:ring-offset-0 rounded px-1 w-20\"\n />\n <button className=\"border border-n1-ww-gray-400 h-5 text-white text-xs font-light flex items-center justify-center px-1 rounded transition-colors\">\n {tokenSymbolDisplay}\n </button>\n </div>\n </div>\n </div>\n <button\n className=\"border border-n1-ww-gray-400 bg-n1-ww-gray-600 rounded text-white text-sm font-medium px-2 h-8 hover:bg-n1-ww-gray-800 transition-colors w-[68px]\"\n onClick={handleUseMax}\n type=\"button\"\n >\n Max\n </button>\n </div>\n\n {validationError && (\n <p className=\"mb-2 text-xs\" style={{ color: '#f87171' }}>{validationError}</p>\n )}\n\n {/* Deposit Button */}\n <button\n onClick={handleDepositClick}\n disabled={!isValidAmount}\n type=\"button\"\n className={`\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ${isValidAmount\n ? \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\"\n : \"border-n1-ww-border opacity-50 cursor-not-allowed\"\n }\n `}\n >\n <span\n className={`\n font-medium text-sm opacity-90\n ${isValidAmount ? \"text-n1-ww-main\" : \"text-n1-ww-gray-600\"}\n `}\n >\n Deposit\n </span>\n </button>\n </div>\n );\n}\n"]}
|
package/dist/{features → src/features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { WaitingMessageState } from "../types";
|
|
2
2
|
export declare const DEPOSIT_PROGRESS_MESSAGE: WaitingMessageState;
|
|
3
|
+
/**
|
|
4
|
+
* Screen displayed during deposit processing.
|
|
5
|
+
* Shows phase-specific messages (bridge/solana/nord) and transaction details.
|
|
6
|
+
* Displays bridge errors with retry option when applicable.
|
|
7
|
+
*/
|
|
3
8
|
export declare function DepositProgressScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
14
|
+
import { WaitingMessage } from "../components/WaitingMessage";
|
|
15
|
+
import { useDepositFlow } from "../providers";
|
|
16
|
+
import { useOnboardingState } from "../providers/OnboardingStateProvider";
|
|
17
|
+
import { OnboardingStep } from "../types";
|
|
18
|
+
import { clearPendingDeposit, readPendingDeposit } from "../utils/deposit/storage";
|
|
19
|
+
import { logger } from "../../../utils/logger";
|
|
20
|
+
import { useN1WalletContext } from "../../../hooks";
|
|
21
|
+
import { useNetwork } from "../../../providers/N1WalletProvider/NetworkProvider";
|
|
22
|
+
import { useSession } from "../../../providers/N1WalletProvider/SessionProvider";
|
|
23
|
+
import { useWalletConnection } from "../providers/WalletConnectionProvider";
|
|
24
|
+
export var DEPOSIT_PROGRESS_MESSAGE = {
|
|
25
|
+
visible: true,
|
|
26
|
+
title: "Processing Deposit",
|
|
27
|
+
subtitle: "Please wait while we process your deposit",
|
|
28
|
+
isTyping: false,
|
|
29
|
+
};
|
|
30
|
+
var SUBTITLES = {
|
|
31
|
+
bridge: 'Bridging via CCTP. Waiting for bridge confirmation…',
|
|
32
|
+
claim: 'Claiming CCTP deposit. Please sign the transaction in your wallet to continue',
|
|
33
|
+
solana: 'Please sign the transaction in your wallet to continue', // Only for direct Solana deposits
|
|
34
|
+
nord: 'Waiting for N1 to process the deposit...',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Screen displayed during deposit processing.
|
|
38
|
+
* Shows phase-specific messages (bridge/solana/nord) and transaction details.
|
|
39
|
+
* Displays bridge errors with retry option when applicable.
|
|
40
|
+
*/
|
|
41
|
+
export function DepositProgressScreen() {
|
|
42
|
+
var _a = useDepositFlow(), depositProgressPhase = _a.depositProgressPhase, pendingBridgeExplorerUrl = _a.pendingBridgeExplorerUrl, pendingBridgeTx = _a.pendingBridgeTx, pendingMintTx = _a.pendingMintTx, bridgeRetryable = _a.bridgeRetryable, bridgeError = _a.bridgeError, isDepositing = _a.isDepositing, authStatus = _a.authStatus, authStatusMessage = _a.authStatusMessage, authErrorMessage = _a.authErrorMessage, bridgeApprovalPending = _a.bridgeApprovalPending, bridgeApprovalError = _a.bridgeApprovalError, startDeposit = _a.startDeposit;
|
|
43
|
+
var _b = useOnboardingState(), state = _b.state, context = _b.context, actions = _b.actions;
|
|
44
|
+
var nord = useN1WalletContext().nord;
|
|
45
|
+
var _c = useNetwork(), address = _c.solanaAddress, evmAddress = _c.evmAddress, solanaWallet = _c.solanaWallet;
|
|
46
|
+
var nordUser = useSession().nordUser;
|
|
47
|
+
var _d = useWalletConnection(), turnkeyStatus = _d.turnkeyStatus, turnkeyEnabled = _d.turnkeyEnabled;
|
|
48
|
+
// Prevent accumulating auto-retry timers when the effect re-runs frequently.
|
|
49
|
+
var autoRetryTimeoutRef = useRef(null);
|
|
50
|
+
var returnedToChainSelectionRef = useRef(false);
|
|
51
|
+
// Ensure pending timer is cleared on unmount.
|
|
52
|
+
useEffect(function () {
|
|
53
|
+
return function () {
|
|
54
|
+
if (autoRetryTimeoutRef.current) {
|
|
55
|
+
clearTimeout(autoRetryTimeoutRef.current);
|
|
56
|
+
autoRetryTimeoutRef.current = null;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}, []);
|
|
60
|
+
// Log initial state on mount
|
|
61
|
+
useEffect(function () {
|
|
62
|
+
var pending = readPendingDeposit();
|
|
63
|
+
logger.info('[DepositProgressScreen] Component mounted', {
|
|
64
|
+
depositProgressPhase: depositProgressPhase,
|
|
65
|
+
bridgeError: bridgeError,
|
|
66
|
+
bridgeRetryable: bridgeRetryable,
|
|
67
|
+
isDepositing: isDepositing,
|
|
68
|
+
hasPending: !!pending,
|
|
69
|
+
pendingDepositId: pending === null || pending === void 0 ? void 0 : pending.depositId,
|
|
70
|
+
});
|
|
71
|
+
}, []); // Only on mount
|
|
72
|
+
// Check if we're resuming a pending deposit - only check deposit ID and wallet match
|
|
73
|
+
var isResuming = useMemo(function () {
|
|
74
|
+
var _a, _b, _c, _d;
|
|
75
|
+
var pending = readPendingDeposit();
|
|
76
|
+
if (!(pending === null || pending === void 0 ? void 0 : pending.depositId))
|
|
77
|
+
return false;
|
|
78
|
+
var hasWallet = !!(address || evmAddress);
|
|
79
|
+
if (!hasWallet)
|
|
80
|
+
return false;
|
|
81
|
+
var pendingWalletLower = (_b = (_a = pending.wallet) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
|
|
82
|
+
var addressLower = (_c = address === null || address === void 0 ? void 0 : address.toLowerCase()) !== null && _c !== void 0 ? _c : '';
|
|
83
|
+
var evmAddressLower = (_d = evmAddress === null || evmAddress === void 0 ? void 0 : evmAddress.toLowerCase()) !== null && _d !== void 0 ? _d : '';
|
|
84
|
+
return ((addressLower && addressLower === pendingWalletLower) ||
|
|
85
|
+
(evmAddressLower && evmAddressLower === pendingWalletLower));
|
|
86
|
+
}, [address, evmAddress]);
|
|
87
|
+
// Check if the pending deposit is in a failed state (from localStorage)
|
|
88
|
+
var failedDepositInfo = useMemo(function () {
|
|
89
|
+
var pending = readPendingDeposit();
|
|
90
|
+
if (!pending || pending.stage !== 'failed')
|
|
91
|
+
return null;
|
|
92
|
+
return {
|
|
93
|
+
reason: pending.reason || 'The deposit failed. Please try again.',
|
|
94
|
+
depositId: pending.depositId,
|
|
95
|
+
};
|
|
96
|
+
}, [bridgeError, isDepositing]); // Re-check when error state changes
|
|
97
|
+
// Handler to clear failed deposit and start over
|
|
98
|
+
var handleStartOver = useCallback(function () {
|
|
99
|
+
logger.info('[DepositProgressScreen] User clicked Start Over - clearing pending deposit');
|
|
100
|
+
clearPendingDeposit();
|
|
101
|
+
actions.goToChainSelection({ resetSelection: true });
|
|
102
|
+
}, [actions]);
|
|
103
|
+
// SIMPLIFIED: When on DEPOSIT_PROGRESS screen, trigger claim if we have deposit ID
|
|
104
|
+
useEffect(function () {
|
|
105
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
106
|
+
var clearAutoRetry = function () {
|
|
107
|
+
if (autoRetryTimeoutRef.current) {
|
|
108
|
+
clearTimeout(autoRetryTimeoutRef.current);
|
|
109
|
+
autoRetryTimeoutRef.current = null;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
if (state !== OnboardingStep.DEPOSIT_PROGRESS) {
|
|
113
|
+
clearAutoRetry();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
var pending = readPendingDeposit();
|
|
117
|
+
logger.info('[DepositProgressScreen] Effect triggered - checking pending deposit', {
|
|
118
|
+
hasPending: !!pending,
|
|
119
|
+
depositId: pending === null || pending === void 0 ? void 0 : pending.depositId,
|
|
120
|
+
stage: pending === null || pending === void 0 ? void 0 : pending.stage,
|
|
121
|
+
tx: pending === null || pending === void 0 ? void 0 : pending.tx,
|
|
122
|
+
mintTx: pending === null || pending === void 0 ? void 0 : pending.mintTx,
|
|
123
|
+
isDepositing: isDepositing,
|
|
124
|
+
bridgeError: bridgeError,
|
|
125
|
+
depositProgressPhase: depositProgressPhase,
|
|
126
|
+
});
|
|
127
|
+
// If deposit is already confirmed (solana_confirmed), transition to success
|
|
128
|
+
if ((pending === null || pending === void 0 ? void 0 : pending.stage) === 'solana_confirmed') {
|
|
129
|
+
logger.info('[DepositProgressScreen] Deposit already confirmed - transitioning to success', {
|
|
130
|
+
depositId: pending.depositId,
|
|
131
|
+
stage: pending.stage,
|
|
132
|
+
});
|
|
133
|
+
var txId = pending.mintTx || pending.tx || pending.depositId;
|
|
134
|
+
clearPendingDeposit();
|
|
135
|
+
actions.markDepositSuccess({
|
|
136
|
+
transactionId: txId,
|
|
137
|
+
record: {
|
|
138
|
+
transactionId: txId,
|
|
139
|
+
amount: (_a = pending.amount) !== null && _a !== void 0 ? _a : '0',
|
|
140
|
+
tokenSymbol: 'USDC',
|
|
141
|
+
chainId: (_b = pending.chain) !== null && _b !== void 0 ? _b : 'solana',
|
|
142
|
+
chainName: pending.chain === 'solana' ? 'Solana' : ((_c = pending.chain) !== null && _c !== void 0 ? _c : 'Solana'),
|
|
143
|
+
chainNetwork: null,
|
|
144
|
+
timestamp: Date.now(),
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (!(pending === null || pending === void 0 ? void 0 : pending.depositId)) {
|
|
150
|
+
logger.info('[DepositProgressScreen] No pending deposit ID found');
|
|
151
|
+
// If we have a user-facing message (e.g. tx hash already used), keep the user on the
|
|
152
|
+
// progress screen so they can read it. Do not redirect to chain selection.
|
|
153
|
+
if (context.depositError || bridgeError) {
|
|
154
|
+
clearAutoRetry();
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
// If we can't resume (common after refresh during signing), route back to amount input
|
|
158
|
+
// so the user can restart cleanly instead of being stuck on the progress screen.
|
|
159
|
+
if (!returnedToChainSelectionRef.current && !isDepositing) {
|
|
160
|
+
returnedToChainSelectionRef.current = true;
|
|
161
|
+
actions.goToChainSelection({ resetSelection: true });
|
|
162
|
+
}
|
|
163
|
+
clearAutoRetry();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// Check for either EVM or Solana address - bridge deposits can use either
|
|
167
|
+
if (!evmAddress && !address) {
|
|
168
|
+
logger.debug('[DepositProgressScreen] Waiting for wallet address', {
|
|
169
|
+
hasEvmAddress: !!evmAddress,
|
|
170
|
+
hasSolanaAddress: !!address,
|
|
171
|
+
});
|
|
172
|
+
logger.info('[DepositProgressScreen] No wallet address, waiting for wallet connection');
|
|
173
|
+
clearAutoRetry();
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
var pendingWalletLower = (_e = (_d = pending.wallet) === null || _d === void 0 ? void 0 : _d.toLowerCase()) !== null && _e !== void 0 ? _e : '';
|
|
177
|
+
var evmAddressLower = (_f = evmAddress === null || evmAddress === void 0 ? void 0 : evmAddress.toLowerCase()) !== null && _f !== void 0 ? _f : '';
|
|
178
|
+
var addressLower = (_g = address === null || address === void 0 ? void 0 : address.toLowerCase()) !== null && _g !== void 0 ? _g : '';
|
|
179
|
+
var walletMatches = pendingWalletLower && (evmAddressLower === pendingWalletLower ||
|
|
180
|
+
addressLower === pendingWalletLower);
|
|
181
|
+
logger.debug('[DepositProgressScreen] Wallet matching check', {
|
|
182
|
+
walletMatches: walletMatches,
|
|
183
|
+
pendingWallet: pending.wallet,
|
|
184
|
+
evmAddress: evmAddress,
|
|
185
|
+
solanaAddress: address,
|
|
186
|
+
matchType: evmAddressLower === pendingWalletLower ? 'EVM' : (addressLower === pendingWalletLower ? 'Solana' : 'none'),
|
|
187
|
+
});
|
|
188
|
+
logger.info('[DepositProgressScreen] Checking deposit state', {
|
|
189
|
+
walletMatches: walletMatches,
|
|
190
|
+
isDepositing: isDepositing,
|
|
191
|
+
depositProgressPhase: depositProgressPhase,
|
|
192
|
+
depositId: pending.depositId,
|
|
193
|
+
hasBridgeError: !!bridgeError,
|
|
194
|
+
});
|
|
195
|
+
// If we have a deposit ID matching wallet, trigger claim
|
|
196
|
+
// Ignore stage from localStorage - let the claim process determine current state
|
|
197
|
+
// BUT: Only if solanaWallet is ready (needed for claim signing)
|
|
198
|
+
var isEvmFlow = context.entryNetwork === 'evm';
|
|
199
|
+
var turnkeyReady = !turnkeyEnabled || turnkeyStatus === 'ready';
|
|
200
|
+
var canClaim = !isEvmFlow || turnkeyReady;
|
|
201
|
+
// Check if error is retryable and safe to auto-retry (avoid retry loops on non-network errors).
|
|
202
|
+
var isRetryableError = bridgeError && bridgeRetryable;
|
|
203
|
+
var errorLower = (_h = bridgeError === null || bridgeError === void 0 ? void 0 : bridgeError.toLowerCase()) !== null && _h !== void 0 ? _h : '';
|
|
204
|
+
var autoRetryReason = !isRetryableError
|
|
205
|
+
? null
|
|
206
|
+
: errorLower.includes('blockhash expired') || errorLower.includes('blockhash not found')
|
|
207
|
+
? 'blockhash'
|
|
208
|
+
: errorLower.includes('fee payer')
|
|
209
|
+
? 'feePayer'
|
|
210
|
+
: errorLower.includes('server is not available') || errorLower.includes('bridge assist')
|
|
211
|
+
? 'server'
|
|
212
|
+
: errorLower.includes('transaction was not confirmed') || errorLower.includes('timed out')
|
|
213
|
+
? 'timeout'
|
|
214
|
+
: null;
|
|
215
|
+
// Auto-retry if:
|
|
216
|
+
// 1. There's a retryable error (like blockhash expired) - always retry these
|
|
217
|
+
// 2. OR there's no error and all conditions are met
|
|
218
|
+
var shouldAutoRetry = Boolean(autoRetryReason) && !isDepositing && !context.depositError;
|
|
219
|
+
// Important: never auto-trigger claim when an error exists; only auto-retry via the controlled path above.
|
|
220
|
+
var shouldTriggerClaim = !bridgeError && !context.depositError && walletMatches && !isDepositing && solanaWallet && canClaim && nord && nordUser;
|
|
221
|
+
logger.info('[DepositProgressScreen] Claim trigger evaluation', {
|
|
222
|
+
walletMatches: walletMatches,
|
|
223
|
+
isDepositing: isDepositing,
|
|
224
|
+
hasSolanaWallet: !!solanaWallet,
|
|
225
|
+
canClaim: canClaim,
|
|
226
|
+
hasNord: !!nord,
|
|
227
|
+
hasNordUser: !!nordUser,
|
|
228
|
+
shouldTriggerClaim: shouldTriggerClaim,
|
|
229
|
+
bridgeError: bridgeError,
|
|
230
|
+
bridgeRetryable: bridgeRetryable,
|
|
231
|
+
isRetryableError: isRetryableError,
|
|
232
|
+
autoRetryReason: autoRetryReason,
|
|
233
|
+
shouldAutoRetry: shouldAutoRetry,
|
|
234
|
+
});
|
|
235
|
+
// If there's a non-retryable error, don't auto-retry (user must manually retry)
|
|
236
|
+
if (bridgeError && !isRetryableError) {
|
|
237
|
+
clearAutoRetry();
|
|
238
|
+
logger.info('[DepositProgressScreen] Skipping auto-retry due to non-retryable error', {
|
|
239
|
+
bridgeError: bridgeError,
|
|
240
|
+
depositId: pending.depositId,
|
|
241
|
+
});
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Auto-retry for retryable errors (like blockhash expired)
|
|
245
|
+
// Add a small delay to avoid immediate retry loops
|
|
246
|
+
if (shouldAutoRetry && walletMatches && solanaWallet && canClaim && nord && nordUser) {
|
|
247
|
+
// If an auto-retry is already scheduled, don't schedule another one.
|
|
248
|
+
if (autoRetryTimeoutRef.current) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
logger.info('[DepositProgressScreen] Auto-retrying claim due to retryable error', {
|
|
252
|
+
bridgeError: bridgeError,
|
|
253
|
+
depositId: pending.depositId,
|
|
254
|
+
autoRetryReason: autoRetryReason,
|
|
255
|
+
});
|
|
256
|
+
// Small delay to ensure error state is processed, then retry
|
|
257
|
+
autoRetryTimeoutRef.current = setTimeout(function () {
|
|
258
|
+
autoRetryTimeoutRef.current = null;
|
|
259
|
+
logger.info('[DepositProgressScreen] Executing auto-retry now');
|
|
260
|
+
void startDeposit();
|
|
261
|
+
}, 5000);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
// Conditions changed (or error cleared) — cancel any scheduled auto-retry.
|
|
265
|
+
clearAutoRetry();
|
|
266
|
+
// If the pending deposit is already marked as failed in localStorage, don't auto-trigger.
|
|
267
|
+
// The user should manually retry or the error should be shown.
|
|
268
|
+
if (pending.stage === 'failed') {
|
|
269
|
+
logger.info('[DepositProgressScreen] Pending deposit is marked as failed - not auto-triggering', {
|
|
270
|
+
depositId: pending.depositId,
|
|
271
|
+
reason: pending.reason,
|
|
272
|
+
stage: pending.stage,
|
|
273
|
+
});
|
|
274
|
+
clearAutoRetry();
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
// Normal claim trigger (no error or error was cleared)
|
|
278
|
+
if (shouldTriggerClaim) {
|
|
279
|
+
if (!nord || !nordUser) {
|
|
280
|
+
logger.info('[DepositProgressScreen] Waiting for Nord client/session', {
|
|
281
|
+
hasNord: !!nord,
|
|
282
|
+
hasNordUser: !!nordUser,
|
|
283
|
+
depositId: pending.depositId,
|
|
284
|
+
});
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
logger.info('[DepositProgressScreen] Triggering claim for pending deposit', {
|
|
288
|
+
currentPhase: depositProgressPhase,
|
|
289
|
+
depositId: pending.depositId,
|
|
290
|
+
hasBridgeError: !!bridgeError,
|
|
291
|
+
hasSolanaWallet: !!solanaWallet,
|
|
292
|
+
turnkeyStatus: turnkeyStatus,
|
|
293
|
+
});
|
|
294
|
+
void startDeposit();
|
|
295
|
+
}
|
|
296
|
+
else if (walletMatches && !isDepositing && (!solanaWallet || !canClaim)) {
|
|
297
|
+
var missingConditions = [];
|
|
298
|
+
if (!solanaWallet)
|
|
299
|
+
missingConditions.push('solanaWallet');
|
|
300
|
+
if (!canClaim)
|
|
301
|
+
missingConditions.push('canClaim (Turnkey not ready)');
|
|
302
|
+
logger.info('[DepositProgressScreen] Waiting for conditions before triggering claim', {
|
|
303
|
+
missingConditions: missingConditions,
|
|
304
|
+
currentPhase: depositProgressPhase,
|
|
305
|
+
depositId: pending.depositId,
|
|
306
|
+
hasSolanaWallet: !!solanaWallet,
|
|
307
|
+
turnkeyEnabled: turnkeyEnabled,
|
|
308
|
+
turnkeyStatus: turnkeyStatus,
|
|
309
|
+
isEvmFlow: isEvmFlow,
|
|
310
|
+
});
|
|
311
|
+
// Don't call startDeposit - it will be called again when solanaWallet becomes available
|
|
312
|
+
}
|
|
313
|
+
else if (walletMatches && !isDepositing) {
|
|
314
|
+
var missingConditions = [];
|
|
315
|
+
if (!solanaWallet)
|
|
316
|
+
missingConditions.push('solanaWallet');
|
|
317
|
+
if (!canClaim)
|
|
318
|
+
missingConditions.push('canClaim');
|
|
319
|
+
if (!nord)
|
|
320
|
+
missingConditions.push('nord');
|
|
321
|
+
if (!nordUser)
|
|
322
|
+
missingConditions.push('nordUser');
|
|
323
|
+
logger.info('[DepositProgressScreen] Cannot trigger claim - missing conditions', {
|
|
324
|
+
missingConditions: missingConditions,
|
|
325
|
+
depositId: pending.depositId,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
}, [
|
|
329
|
+
state,
|
|
330
|
+
context.entryNetwork,
|
|
331
|
+
startDeposit,
|
|
332
|
+
isDepositing,
|
|
333
|
+
depositProgressPhase,
|
|
334
|
+
evmAddress,
|
|
335
|
+
address,
|
|
336
|
+
bridgeError,
|
|
337
|
+
bridgeRetryable,
|
|
338
|
+
solanaWallet,
|
|
339
|
+
turnkeyStatus,
|
|
340
|
+
turnkeyEnabled,
|
|
341
|
+
nord,
|
|
342
|
+
nordUser
|
|
343
|
+
]);
|
|
344
|
+
var message = useMemo(function () {
|
|
345
|
+
var _a;
|
|
346
|
+
var baseMessage = __assign(__assign({}, DEPOSIT_PROGRESS_MESSAGE), { subtitle: (_a = SUBTITLES[depositProgressPhase]) !== null && _a !== void 0 ? _a : SUBTITLES.solana });
|
|
347
|
+
// If deposit failed, show failed state
|
|
348
|
+
if (failedDepositInfo && !isDepositing) {
|
|
349
|
+
return __assign(__assign({}, baseMessage), { title: "Deposit Failed", subtitle: "Click retry to try again" });
|
|
350
|
+
}
|
|
351
|
+
// If resuming, update the title to indicate we're continuing
|
|
352
|
+
if (isResuming) {
|
|
353
|
+
return __assign(__assign({}, baseMessage), { title: "Continuing Deposit Process" });
|
|
354
|
+
}
|
|
355
|
+
return baseMessage;
|
|
356
|
+
}, [depositProgressPhase, isResuming, failedDepositInfo, isDepositing]);
|
|
357
|
+
var showBridgeDetails = Boolean(bridgeApprovalPending) ||
|
|
358
|
+
Boolean(bridgeApprovalError) ||
|
|
359
|
+
Boolean(pendingBridgeTx) ||
|
|
360
|
+
Boolean(pendingMintTx) ||
|
|
361
|
+
Boolean(bridgeError) ||
|
|
362
|
+
Boolean(failedDepositInfo);
|
|
363
|
+
return (_jsxs("div", { className: "overflow-hidden relative space-y-3", children: [_jsx(WaitingMessage, { message: message, animation: "transfer" }), showBridgeDetails && (_jsxs("div", { className: "text-xs text-white/70 space-y-2", children: [bridgeApprovalPending && (_jsx("div", { className: "text-amber-200/90", children: "Awaiting approval/burn on EVM\u2026" })), bridgeApprovalError && (_jsxs("div", { className: "text-amber-200/90", children: ["Approval/burn failed: ", bridgeApprovalError] })), pendingBridgeTx && (_jsxs("div", { children: ["Bridge tx:", ' ', pendingBridgeExplorerUrl ? (_jsx("a", { className: "underline", href: pendingBridgeExplorerUrl, target: "_blank", rel: "noreferrer", children: pendingBridgeTx })) : (_jsx("span", { children: pendingBridgeTx }))] })), pendingMintTx && (_jsxs("div", { children: ["Mint tx:", ' ', pendingBridgeExplorerUrl ? (_jsx("a", { className: "underline", href: pendingBridgeExplorerUrl, target: "_blank", rel: "noreferrer", children: pendingMintTx })) : (_jsx("span", { children: pendingMintTx }))] })), bridgeError && (_jsxs("div", { className: "text-amber-200/90", children: [bridgeError, bridgeRetryable && (_jsx("button", { type: "button", onClick: startDeposit, className: "ml-2 underline text-white", disabled: isDepositing, children: isDepositing ? 'Retrying…' : 'Retry' })), !isDepositing && (_jsx("button", { type: "button", onClick: handleStartOver, className: "ml-2 underline text-white/70", children: "Start Over" }))] })), failedDepositInfo && !bridgeError && (_jsxs("div", { className: "text-amber-200/90", children: [failedDepositInfo.reason, _jsx("button", { type: "button", onClick: startDeposit, className: "ml-2 underline text-white", disabled: isDepositing, children: isDepositing ? 'Retrying…' : 'Retry' }), _jsx("button", { type: "button", onClick: handleStartOver, className: "ml-2 underline text-white/70", disabled: isDepositing, children: "Start Over" })] }))] })), context.depositError &&
|
|
364
|
+
(!bridgeError ||
|
|
365
|
+
context.depositError.trim().toLowerCase() !== bridgeError.trim().toLowerCase()) && (_jsx("div", { className: "text-xs text-amber-200/90", children: context.depositError })), depositProgressPhase === 'solana' && authStatus === 'loading' && authStatusMessage && (_jsx("div", { className: "text-xs text-white/70", children: authStatusMessage })), depositProgressPhase === 'solana' && authStatus === 'error' && authErrorMessage && (_jsx("div", { className: "text-xs text-amber-200/90", children: authErrorMessage }))] }));
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=06-DepositProgressScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"06-DepositProgressScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/06-DepositProgressScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { WaitingMessage } from \"../components/WaitingMessage\";\nimport { useDepositFlow } from \"../providers\";\nimport { useOnboardingState } from \"../providers/OnboardingStateProvider\";\nimport { OnboardingStep, WaitingMessageState } from \"../types\";\nimport { clearPendingDeposit, readPendingDeposit } from \"../utils/deposit/storage\";\nimport { logger } from \"../../../utils/logger\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { useNetwork } from \"../../../providers/N1WalletProvider/NetworkProvider\";\nimport { useSession } from \"../../../providers/N1WalletProvider/SessionProvider\";\nimport { useWalletConnection } from \"../providers/WalletConnectionProvider\";\n\nexport const DEPOSIT_PROGRESS_MESSAGE: WaitingMessageState = {\n visible: true,\n title: \"Processing Deposit\",\n subtitle: \"Please wait while we process your deposit\",\n isTyping: false,\n};\n\nconst SUBTITLES: Record<'bridge' | 'claim' | 'solana' | 'nord', string> = {\n bridge: 'Bridging via CCTP. Waiting for bridge confirmation…',\n claim: 'Claiming CCTP deposit. Please sign the transaction in your wallet to continue',\n solana: 'Please sign the transaction in your wallet to continue', // Only for direct Solana deposits\n nord: 'Waiting for N1 to process the deposit...',\n};\n\n/**\n * Screen displayed during deposit processing.\n * Shows phase-specific messages (bridge/solana/nord) and transaction details.\n * Displays bridge errors with retry option when applicable.\n */\nexport function DepositProgressScreen() {\n const {\n depositProgressPhase,\n pendingBridgeExplorerUrl,\n pendingBridgeTx,\n pendingMintTx,\n bridgeRetryable,\n bridgeError,\n isDepositing,\n authStatus,\n authStatusMessage,\n authErrorMessage,\n bridgeApprovalPending,\n bridgeApprovalError,\n startDeposit,\n } = useDepositFlow();\n\n const { state, context, actions } = useOnboardingState();\n const { nord } = useN1WalletContext();\n const { solanaAddress: address, evmAddress, solanaWallet } = useNetwork();\n const { nordUser } = useSession();\n const { turnkeyStatus, turnkeyEnabled } = useWalletConnection();\n\n // Prevent accumulating auto-retry timers when the effect re-runs frequently.\n const autoRetryTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const returnedToChainSelectionRef = useRef(false);\n\n // Ensure pending timer is cleared on unmount.\n useEffect(() => {\n return () => {\n if (autoRetryTimeoutRef.current) {\n clearTimeout(autoRetryTimeoutRef.current);\n autoRetryTimeoutRef.current = null;\n }\n };\n }, []);\n\n // Log initial state on mount\n useEffect(() => {\n const pending = readPendingDeposit();\n logger.info('[DepositProgressScreen] Component mounted', {\n depositProgressPhase,\n bridgeError,\n bridgeRetryable,\n isDepositing,\n hasPending: !!pending,\n pendingDepositId: pending?.depositId,\n });\n }, []); // Only on mount\n\n // Check if we're resuming a pending deposit - only check deposit ID and wallet match\n const isResuming = useMemo(() => {\n const pending = readPendingDeposit();\n if (!pending?.depositId) return false;\n\n const hasWallet = !!(address || evmAddress);\n if (!hasWallet) return false;\n\n const pendingWalletLower = pending.wallet?.toLowerCase() ?? '';\n const addressLower = address?.toLowerCase() ?? '';\n const evmAddressLower = evmAddress?.toLowerCase() ?? '';\n\n return (\n (addressLower && addressLower === pendingWalletLower) ||\n (evmAddressLower && evmAddressLower === pendingWalletLower)\n );\n }, [address, evmAddress]);\n\n // Check if the pending deposit is in a failed state (from localStorage)\n const failedDepositInfo = useMemo(() => {\n const pending = readPendingDeposit();\n if (!pending || pending.stage !== 'failed') return null;\n return {\n reason: pending.reason || 'The deposit failed. Please try again.',\n depositId: pending.depositId,\n };\n }, [bridgeError, isDepositing]); // Re-check when error state changes\n\n // Handler to clear failed deposit and start over\n const handleStartOver = useCallback(() => {\n logger.info('[DepositProgressScreen] User clicked Start Over - clearing pending deposit');\n clearPendingDeposit();\n actions.goToChainSelection({ resetSelection: true });\n }, [actions]);\n\n // SIMPLIFIED: When on DEPOSIT_PROGRESS screen, trigger claim if we have deposit ID\n useEffect(() => {\n const clearAutoRetry = () => {\n if (autoRetryTimeoutRef.current) {\n clearTimeout(autoRetryTimeoutRef.current);\n autoRetryTimeoutRef.current = null;\n }\n };\n\n if (state !== OnboardingStep.DEPOSIT_PROGRESS) {\n clearAutoRetry();\n return;\n }\n\n const pending = readPendingDeposit();\n logger.info('[DepositProgressScreen] Effect triggered - checking pending deposit', {\n hasPending: !!pending,\n depositId: pending?.depositId,\n stage: pending?.stage,\n tx: pending?.tx,\n mintTx: pending?.mintTx,\n isDepositing,\n bridgeError,\n depositProgressPhase,\n });\n\n // If deposit is already confirmed (solana_confirmed), transition to success\n if (pending?.stage === 'solana_confirmed') {\n logger.info('[DepositProgressScreen] Deposit already confirmed - transitioning to success', {\n depositId: pending.depositId,\n stage: pending.stage,\n });\n const txId = pending.mintTx || pending.tx || pending.depositId;\n clearPendingDeposit();\n actions.markDepositSuccess({\n transactionId: txId,\n record: {\n transactionId: txId,\n amount: pending.amount ?? '0',\n tokenSymbol: 'USDC',\n chainId: pending.chain ?? 'solana',\n chainName: pending.chain === 'solana' ? 'Solana' : (pending.chain ?? 'Solana'),\n chainNetwork: null,\n timestamp: Date.now(),\n },\n });\n return;\n }\n\n if (!pending?.depositId) {\n logger.info('[DepositProgressScreen] No pending deposit ID found');\n // If we have a user-facing message (e.g. tx hash already used), keep the user on the\n // progress screen so they can read it. Do not redirect to chain selection.\n if (context.depositError || bridgeError) {\n clearAutoRetry();\n return;\n }\n // If we can't resume (common after refresh during signing), route back to amount input\n // so the user can restart cleanly instead of being stuck on the progress screen.\n if (!returnedToChainSelectionRef.current && !isDepositing) {\n returnedToChainSelectionRef.current = true;\n actions.goToChainSelection({ resetSelection: true });\n }\n clearAutoRetry();\n return;\n }\n\n // Check for either EVM or Solana address - bridge deposits can use either\n if (!evmAddress && !address) {\n logger.debug('[DepositProgressScreen] Waiting for wallet address', {\n hasEvmAddress: !!evmAddress,\n hasSolanaAddress: !!address,\n });\n logger.info('[DepositProgressScreen] No wallet address, waiting for wallet connection');\n clearAutoRetry();\n return;\n }\n\n const pendingWalletLower = pending.wallet?.toLowerCase() ?? '';\n const evmAddressLower = evmAddress?.toLowerCase() ?? '';\n const addressLower = address?.toLowerCase() ?? '';\n const walletMatches = pendingWalletLower && (\n evmAddressLower === pendingWalletLower ||\n addressLower === pendingWalletLower\n );\n\n logger.debug('[DepositProgressScreen] Wallet matching check', {\n walletMatches,\n pendingWallet: pending.wallet,\n evmAddress,\n solanaAddress: address,\n matchType: evmAddressLower === pendingWalletLower ? 'EVM' : (addressLower === pendingWalletLower ? 'Solana' : 'none'),\n });\n\n logger.info('[DepositProgressScreen] Checking deposit state', {\n walletMatches,\n isDepositing,\n depositProgressPhase,\n depositId: pending.depositId,\n hasBridgeError: !!bridgeError,\n });\n\n // If we have a deposit ID matching wallet, trigger claim\n // Ignore stage from localStorage - let the claim process determine current state\n // BUT: Only if solanaWallet is ready (needed for claim signing)\n const isEvmFlow = context.entryNetwork === 'evm';\n const turnkeyReady = !turnkeyEnabled || turnkeyStatus === 'ready';\n const canClaim = !isEvmFlow || turnkeyReady;\n\n // Check if error is retryable and safe to auto-retry (avoid retry loops on non-network errors).\n const isRetryableError = bridgeError && bridgeRetryable;\n const errorLower = bridgeError?.toLowerCase() ?? '';\n const autoRetryReason =\n !isRetryableError\n ? null\n : errorLower.includes('blockhash expired') || errorLower.includes('blockhash not found')\n ? 'blockhash'\n : errorLower.includes('fee payer')\n ? 'feePayer'\n : errorLower.includes('server is not available') || errorLower.includes('bridge assist')\n ? 'server'\n : errorLower.includes('transaction was not confirmed') || errorLower.includes('timed out')\n ? 'timeout'\n : null;\n\n // Auto-retry if:\n // 1. There's a retryable error (like blockhash expired) - always retry these\n // 2. OR there's no error and all conditions are met\n const shouldAutoRetry = Boolean(autoRetryReason) && !isDepositing && !context.depositError;\n // Important: never auto-trigger claim when an error exists; only auto-retry via the controlled path above.\n const shouldTriggerClaim = !bridgeError && !context.depositError && walletMatches && !isDepositing && solanaWallet && canClaim && nord && nordUser;\n\n logger.info('[DepositProgressScreen] Claim trigger evaluation', {\n walletMatches,\n isDepositing,\n hasSolanaWallet: !!solanaWallet,\n canClaim,\n hasNord: !!nord,\n hasNordUser: !!nordUser,\n shouldTriggerClaim,\n bridgeError,\n bridgeRetryable,\n isRetryableError,\n autoRetryReason,\n shouldAutoRetry,\n });\n\n // If there's a non-retryable error, don't auto-retry (user must manually retry)\n if (bridgeError && !isRetryableError) {\n clearAutoRetry();\n logger.info('[DepositProgressScreen] Skipping auto-retry due to non-retryable error', {\n bridgeError,\n depositId: pending.depositId,\n });\n return;\n }\n\n // Auto-retry for retryable errors (like blockhash expired)\n // Add a small delay to avoid immediate retry loops\n if (shouldAutoRetry && walletMatches && solanaWallet && canClaim && nord && nordUser) {\n // If an auto-retry is already scheduled, don't schedule another one.\n if (autoRetryTimeoutRef.current) {\n return;\n }\n\n logger.info('[DepositProgressScreen] Auto-retrying claim due to retryable error', {\n bridgeError,\n depositId: pending.depositId,\n autoRetryReason,\n });\n // Small delay to ensure error state is processed, then retry\n autoRetryTimeoutRef.current = setTimeout(() => {\n autoRetryTimeoutRef.current = null;\n logger.info('[DepositProgressScreen] Executing auto-retry now');\n void startDeposit();\n }, 5000);\n return;\n }\n\n // Conditions changed (or error cleared) — cancel any scheduled auto-retry.\n clearAutoRetry();\n\n // If the pending deposit is already marked as failed in localStorage, don't auto-trigger.\n // The user should manually retry or the error should be shown.\n if (pending.stage === 'failed') {\n logger.info('[DepositProgressScreen] Pending deposit is marked as failed - not auto-triggering', {\n depositId: pending.depositId,\n reason: pending.reason,\n stage: pending.stage,\n });\n clearAutoRetry();\n return;\n }\n\n // Normal claim trigger (no error or error was cleared)\n if (shouldTriggerClaim) {\n if (!nord || !nordUser) {\n logger.info('[DepositProgressScreen] Waiting for Nord client/session', {\n hasNord: !!nord,\n hasNordUser: !!nordUser,\n depositId: pending.depositId,\n });\n return;\n }\n\n logger.info('[DepositProgressScreen] Triggering claim for pending deposit', {\n currentPhase: depositProgressPhase,\n depositId: pending.depositId,\n hasBridgeError: !!bridgeError,\n hasSolanaWallet: !!solanaWallet,\n turnkeyStatus,\n });\n void startDeposit();\n } else if (walletMatches && !isDepositing && (!solanaWallet || !canClaim)) {\n const missingConditions: string[] = [];\n if (!solanaWallet) missingConditions.push('solanaWallet');\n if (!canClaim) missingConditions.push('canClaim (Turnkey not ready)');\n\n logger.info('[DepositProgressScreen] Waiting for conditions before triggering claim', {\n missingConditions,\n currentPhase: depositProgressPhase,\n depositId: pending.depositId,\n hasSolanaWallet: !!solanaWallet,\n turnkeyEnabled,\n turnkeyStatus,\n isEvmFlow,\n });\n // Don't call startDeposit - it will be called again when solanaWallet becomes available\n } else if (walletMatches && !isDepositing) {\n const missingConditions: string[] = [];\n if (!solanaWallet) missingConditions.push('solanaWallet');\n if (!canClaim) missingConditions.push('canClaim');\n if (!nord) missingConditions.push('nord');\n if (!nordUser) missingConditions.push('nordUser');\n\n logger.info('[DepositProgressScreen] Cannot trigger claim - missing conditions', {\n missingConditions,\n depositId: pending.depositId,\n });\n }\n }, [\n state,\n context.entryNetwork,\n startDeposit,\n isDepositing,\n depositProgressPhase,\n evmAddress,\n address,\n bridgeError,\n bridgeRetryable,\n solanaWallet,\n turnkeyStatus,\n turnkeyEnabled,\n nord,\n nordUser\n ]);\n\n const message = useMemo(() => {\n const baseMessage = {\n ...DEPOSIT_PROGRESS_MESSAGE,\n subtitle: SUBTITLES[depositProgressPhase] ?? SUBTITLES.solana,\n };\n\n // If deposit failed, show failed state\n if (failedDepositInfo && !isDepositing) {\n return {\n ...baseMessage,\n title: \"Deposit Failed\",\n subtitle: \"Click retry to try again\",\n };\n }\n\n // If resuming, update the title to indicate we're continuing\n if (isResuming) {\n return {\n ...baseMessage,\n title: \"Continuing Deposit Process\",\n };\n }\n\n return baseMessage;\n }, [depositProgressPhase, isResuming, failedDepositInfo, isDepositing]);\n\n const showBridgeDetails =\n Boolean(bridgeApprovalPending) ||\n Boolean(bridgeApprovalError) ||\n Boolean(pendingBridgeTx) ||\n Boolean(pendingMintTx) ||\n Boolean(bridgeError) ||\n Boolean(failedDepositInfo);\n\n return (\n <div className=\"overflow-hidden relative space-y-3\">\n <WaitingMessage message={message} animation=\"transfer\" />\n {showBridgeDetails && (\n <div className=\"text-xs text-white/70 space-y-2\">\n {bridgeApprovalPending && (\n <div className=\"text-amber-200/90\">Awaiting approval/burn on EVM…</div>\n )}\n {bridgeApprovalError && (\n <div className=\"text-amber-200/90\">Approval/burn failed: {bridgeApprovalError}</div>\n )}\n {pendingBridgeTx && (\n <div>\n Bridge tx:{' '}\n {pendingBridgeExplorerUrl ? (\n <a className=\"underline\" href={pendingBridgeExplorerUrl} target=\"_blank\" rel=\"noreferrer\">\n {pendingBridgeTx}\n </a>\n ) : (\n <span>{pendingBridgeTx}</span>\n )}\n </div>\n )}\n {pendingMintTx && (\n <div>\n Mint tx:{' '}\n {pendingBridgeExplorerUrl ? (\n <a className=\"underline\" href={pendingBridgeExplorerUrl} target=\"_blank\" rel=\"noreferrer\">\n {pendingMintTx}\n </a>\n ) : (\n <span>{pendingMintTx}</span>\n )}\n </div>\n )}\n {bridgeError && (\n <div className=\"text-amber-200/90\">\n {bridgeError}\n {bridgeRetryable && (\n <button\n type=\"button\"\n onClick={startDeposit}\n className=\"ml-2 underline text-white\"\n disabled={isDepositing}\n >\n {isDepositing ? 'Retrying…' : 'Retry'}\n </button>\n )}\n {!isDepositing && (\n <button\n type=\"button\"\n onClick={handleStartOver}\n className=\"ml-2 underline text-white/70\"\n >\n Start Over\n </button>\n )}\n </div>\n )}\n {failedDepositInfo && !bridgeError && (\n <div className=\"text-amber-200/90\">\n {failedDepositInfo.reason}\n <button\n type=\"button\"\n onClick={startDeposit}\n className=\"ml-2 underline text-white\"\n disabled={isDepositing}\n >\n {isDepositing ? 'Retrying…' : 'Retry'}\n </button>\n <button\n type=\"button\"\n onClick={handleStartOver}\n className=\"ml-2 underline text-white/70\"\n disabled={isDepositing}\n >\n Start Over\n </button>\n </div>\n )}\n </div>\n )}\n {context.depositError &&\n (!bridgeError ||\n context.depositError.trim().toLowerCase() !== bridgeError.trim().toLowerCase()) && (\n <div className=\"text-xs text-amber-200/90\">{context.depositError}</div>\n )}\n {depositProgressPhase === 'solana' && authStatus === 'loading' && authStatusMessage && (\n <div className=\"text-xs text-white/70\">{authStatusMessage}</div>\n )}\n {depositProgressPhase === 'solana' && authStatus === 'error' && authErrorMessage && (\n <div className=\"text-xs text-amber-200/90\">{authErrorMessage}</div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screen displayed after successful deposit completion.
|
|
3
|
+
* Shows transaction details, amounts, and explorer links.
|
|
4
|
+
* Provides continue/close button based on flow type.
|
|
5
|
+
*/
|
|
6
|
+
export declare function DepositSuccessScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -37,14 +37,20 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
38
38
|
import { useEffect, useState } from "react";
|
|
39
39
|
import { useN1WalletContext } from "../../../hooks";
|
|
40
|
-
import {
|
|
40
|
+
import { shortenAddress } from "../../../utils/shortenString";
|
|
41
41
|
import { useDepositFlow, useOnboardingState } from "../providers";
|
|
42
|
-
import {
|
|
42
|
+
import { getSolanaExplorerUrl } from "../utils/deposit/solanaDepositTransaction";
|
|
43
|
+
import { isNordConfigured } from "../utils/nordUtils";
|
|
43
44
|
// Share icon component reused from Header.tsx
|
|
44
45
|
var ShareIcon = function (_a) {
|
|
45
46
|
var className = _a.className;
|
|
46
47
|
return (_jsxs("svg", { className: className || "h-full w-full", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M5.93066 8.06944L12.3473 1.65277", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), _jsx("path", { d: "M8.06958 1.65277H12.3474V5.93055", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), _jsx("path", { d: "M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" })] }));
|
|
47
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Screen displayed after successful deposit completion.
|
|
51
|
+
* Shows transaction details, amounts, and explorer links.
|
|
52
|
+
* Provides continue/close button based on flow type.
|
|
53
|
+
*/
|
|
48
54
|
export function DepositSuccessScreen() {
|
|
49
55
|
var _this = this;
|
|
50
56
|
var _a = useDepositFlow(), amount = _a.amount, completeDeposit = _a.completeDeposit, transactionResult = _a.transactionResult, transactionId = _a.transactionId;
|
|
@@ -63,13 +69,13 @@ export function DepositSuccessScreen() {
|
|
|
63
69
|
toAddress: "Exchange Account",
|
|
64
70
|
networkName: "Devnet",
|
|
65
71
|
status: "Completed",
|
|
66
|
-
explorerUrl: transactionId ?
|
|
72
|
+
explorerUrl: transactionId ? getSolanaExplorerUrl(transactionId) : "",
|
|
67
73
|
};
|
|
68
74
|
// Get token information from Nord if available
|
|
69
75
|
useEffect(function () {
|
|
70
76
|
if (nord && isNordConfigured(nord)) {
|
|
71
77
|
try {
|
|
72
|
-
var usdcToken = nord.tokens.find(function (t) { return t.symbol === "
|
|
78
|
+
var usdcToken = nord.tokens.find(function (t) { return t.symbol === "USDC_2"; }) || nord.tokens[0];
|
|
73
79
|
if (usdcToken) {
|
|
74
80
|
setTokenSymbol(usdcToken.symbol);
|
|
75
81
|
}
|
|
@@ -83,7 +89,7 @@ export function DepositSuccessScreen() {
|
|
|
83
89
|
var solanaTransactionId = transactionId || fallbackTransaction.transactionId;
|
|
84
90
|
var solanaTransactionIdShort = shortenAddress(solanaTransactionId, 5, 4);
|
|
85
91
|
var solanaExplorerUrl = solanaTransactionId
|
|
86
|
-
?
|
|
92
|
+
? getSolanaExplorerUrl(solanaTransactionId)
|
|
87
93
|
: "";
|
|
88
94
|
// N1 transaction ID (could be derived from transactionResult or generated)
|
|
89
95
|
// For now, using a formatted version or placeholder
|