@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":"07-DepositSuccessScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/07-DepositSuccessScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { shortenAddress } from \"../../../utils/shortenString\";\nimport { useDepositFlow, useOnboardingState } from \"../providers\";\nimport { getSolanaExplorerUrl } from \"../utils/deposit/solanaDepositTransaction\";\nimport { isNordConfigured } from \"../utils/nordUtils\";\n\n// Share icon component reused from Header.tsx\nconst ShareIcon = ({ className }: { className?: string }) => (\n <svg\n className={className || \"h-full w-full\"}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.93066 8.06944L12.3473 1.65277\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8.06958 1.65277H12.3474V5.93055\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\n/**\n * Screen displayed after successful deposit completion.\n * Shows transaction details, amounts, and explorer links.\n * Provides continue/close button based on flow type.\n */\nexport function DepositSuccessScreen() {\n const { amount, completeDeposit, transactionResult, transactionId } =\n useDepositFlow();\n const { nord } = useN1WalletContext();\n const { context } = useOnboardingState();\n const [isContinueEnabled] = useState(true);\n const [tokenSymbol, setTokenSymbol] = useState(\"USDC\");\n const [copiedAddress, setCopiedAddress] = useState(false);\n const [showCopyTooltip, setShowCopyTooltip] = useState(false);\n\n const fallbackTransaction = transactionResult ?? {\n success: true,\n transactionId: transactionId ?? \"pending-transaction\",\n amount: amount || \"0\",\n tokenSymbol: \"USDC\",\n fromAddress: \"Debug Wallet\",\n toAddress: \"Exchange Account\",\n networkName: \"Devnet\",\n status: \"Completed\",\n explorerUrl: transactionId ? getSolanaExplorerUrl(transactionId) : \"\",\n };\n\n // Get token information from Nord if available\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n const usdcToken =\n nord.tokens.find((t) => t.symbol === \"USDC_2\") || nord.tokens[0];\n if (usdcToken) {\n setTokenSymbol(usdcToken.symbol);\n }\n } catch (error) {\n console.warn(\"Error getting token information from Nord:\", error);\n }\n }\n }, [nord]);\n\n // Solana transaction ID (from depositSpl)\n const solanaTransactionId =\n transactionId || fallbackTransaction.transactionId;\n const solanaTransactionIdShort = shortenAddress(solanaTransactionId, 5, 4);\n const solanaExplorerUrl = solanaTransactionId\n ? getSolanaExplorerUrl(solanaTransactionId)\n : \"\";\n\n // N1 transaction ID (could be derived from transactionResult or generated)\n // For now, using a formatted version or placeholder\n const n1TransactionId = transactionResult?.transactionId\n ? `n1_${transactionResult.transactionId.substring(0, 8)}`\n : `n1_${solanaTransactionId.substring(0, 8)}`;\n const n1TransactionIdShort = shortenAddress(n1TransactionId, 5, 4);\n // N1 explorer URL (placeholder - adjust based on actual N1 explorer)\n const n1ExplorerUrl = `https://explorer.n1.network/tx/${n1TransactionId}`;\n\n const fromAddressShort = shortenAddress(\n fallbackTransaction.fromAddress,\n 5,\n 4\n );\n const fromAddressFull = fallbackTransaction.fromAddress;\n\n // Handle copy to clipboard for wallet address\n const handleCopyAddress = async () => {\n if (!fromAddressFull || typeof navigator === \"undefined\") return;\n\n const nav = navigator as Navigator & {\n clipboard?: { writeText: (text: string) => Promise<void> };\n };\n\n if (nav.clipboard?.writeText) {\n try {\n await nav.clipboard.writeText(fromAddressFull);\n setCopiedAddress(true);\n setTimeout(() => {\n setCopiedAddress(false);\n }, 1000);\n } catch (error) {\n console.warn(\"Failed to copy address:\", error);\n }\n }\n };\n\n return (\n <div className=\"relative w-full\">\n <div className=\"flex flex-col space-y-4\">\n {/* Amount display */}\n <div className=\"w-full py-4\">\n <div className=\"flex items-center justify-center\">\n <div className=\"text-center flex items-end\">\n <div className=\"text-5xl md:text-6xl tracking-tight text-n1-ww-main font-medium\">\n {Number(amount).toLocaleString()}\n </div>\n <div className=\"h-5 inline-flex items-center justify-center border border-n1-ww-border rounded px-1 py-1 ml-2 mb-1\">\n <span className=\"text-white text-xs font-light\">\n {tokenSymbol}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Transaction details */}\n <div className=\"space-y-3 mb-4\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">Amount:</span>\n <span className=\"text-white text-xs font-light\">\n {Number(amount).toLocaleString()} {tokenSymbol}\n </span>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">Status:</span>\n <div className=\"flex items-center gap-2\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-n1-ww-accent-neon\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"13\"\n height=\"13\"\n rx=\"6.5\"\n stroke=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.7917 4.83199L6.54647 9.9756L6.27917 10.2995L5.97635 10.0059L3.5 7.60561L4.0421 7.0879L6.21563 9.19473L10.1935 4.375L10.7917 4.83199Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"0.5\"\n />\n </svg>\n <span className=\"text-n1-ww-accent-neon text-xs font-light\">\n {fallbackTransaction.status}\n </span>\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">From:</span>\n <div className=\"relative flex items-center gap-1 group\">\n <button\n onClick={handleCopyAddress}\n onMouseEnter={() => !copiedAddress && setShowCopyTooltip(true)}\n onMouseLeave={() => setShowCopyTooltip(false)}\n className=\"text-white text-xs font-light underline cursor-pointer hover:text-n1-ww-main transition-colors\"\n >\n {fromAddressShort}\n </button>\n {(copiedAddress || showCopyTooltip) && (\n <div\n className={`absolute top-full mt-1 left-1/2 -translate-x-1/2 px-2 py-1 bg-n1-ww-gray-800 border border-n1-ww-border rounded text-xs text-white whitespace-nowrap z-10 pointer-events-none ${\n copiedAddress\n ? \"opacity-100\"\n : showCopyTooltip\n ? \"opacity-100\"\n : \"opacity-0\"\n } transition-opacity duration-200`}\n >\n {copiedAddress ? \"Copied!\" : \"Click to copy\"}\n </div>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">\n N1 Transaction ID:\n </span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-white text-xs font-light underline\">\n {n1TransactionIdShort}\n </span>\n {n1ExplorerUrl && (\n <a\n href={n1ExplorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"View N1 transaction on explorer\"\n >\n <ShareIcon />\n </a>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">\n Solana Transaction ID:\n </span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-white text-xs font-light underline\">\n {solanaTransactionIdShort}\n </span>\n {solanaExplorerUrl && (\n <a\n href={solanaExplorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"View transaction on explorer\"\n >\n <ShareIcon />\n </a>\n )}\n </div>\n </div>\n </div>\n\n {/* Separator */}\n <div className=\"h-px bg-n1-ww-border mb-4\"></div>\n\n {/* Continue / Close button */}\n <button\n onClick={isContinueEnabled ? completeDeposit : undefined}\n disabled={!isContinueEnabled}\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 ${\n isContinueEnabled\n ? \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer text-n1-ww-main\"\n : \"border-n1-ww-border opacity-50 cursor-not-allowed text-n1-ww-gray-600\"\n }\n `}\n >\n <span className=\"font-medium text-sm opacity-90\">\n {context.isDepositOnlyFlow ? \"Close\" : \"Continue\"}\n </span>\n </button>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -2,11 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { useDepositFlow } from '../providers';
|
|
4
4
|
import { WaitingMessage } from '../components/WaitingMessage';
|
|
5
|
+
/**
|
|
6
|
+
* Screen that automatically triggers Nord authentication when mounted.
|
|
7
|
+
* Shows loading state and handles authentication errors with retry option.
|
|
8
|
+
*/
|
|
5
9
|
export function AuthLoadingScreen() {
|
|
6
10
|
var _a = useState(false), isHovered = _a[0], setIsHovered = _a[1];
|
|
7
11
|
var authInitiatedRef = useRef(false);
|
|
8
|
-
// Get auth-related state and functions from the deposit flow context
|
|
9
12
|
var _b = useDepositFlow(), performAuth = _b.performAuth, authStatus = _b.authStatus, authErrorMessage = _b.authErrorMessage, authStatusMessage = _b.authStatusMessage;
|
|
13
|
+
// Auto-trigger auth on mount (only once)
|
|
10
14
|
useEffect(function () {
|
|
11
15
|
if (!authInitiatedRef.current) {
|
|
12
16
|
authInitiatedRef.current = true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"08-AuthLoadingScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/08-AuthLoadingScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IACzB,IAAA,KAA4B,QAAQ,CAAU,KAAK,CAAC,EAAnD,SAAS,QAAA,EAAE,YAAY,QAA4B,CAAC;IAC3D,IAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAA,KAKF,cAAc,EAAE,EAJlB,WAAW,iBAAA,EACX,UAAU,gBAAA,EACV,gBAAgB,sBAAA,EAChB,iBAAiB,uBACC,CAAC;IAErB,yCAAyC;IACzC,SAAS,CAAC;QACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;YAChC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,WAAW,GAAG;QAClB,iCAAiC;QACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACrB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EACN,iBAAiB,IAAI,+CAA+C;QACtE,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,cAAc,IAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,GAAI,CAC5D,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,mDAAmD,aAChE,aAAI,SAAS,EAAC,kCAAkC,sCAE3C,EACL,YAAG,SAAS,EAAC,0BAA0B,4EAEnC,EACH,gBAAgB,IAAI,CACnB,YAAG,SAAS,EAAC,sBAAsB,YAAE,gBAAgB,GAAK,CAC3D,EACD,cAAK,SAAS,EAAC,aAAa,YAC1B,iBACE,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACvC,SAAS,EAAE,0RAIR,EACH,KAAK,EAAE;4BACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;yBAClD,0BAGM,GACL,IACF,CACP,GACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDepositFlow } from '../providers';\nimport { WaitingMessage } from '../components/WaitingMessage';\n\n/**\n * Screen that automatically triggers Nord authentication when mounted.\n * Shows loading state and handles authentication errors with retry option.\n */\nexport function AuthLoadingScreen() {\n const [isHovered, setIsHovered] = useState<boolean>(false);\n const authInitiatedRef = useRef(false);\n \n const { \n performAuth,\n authStatus, \n authErrorMessage, \n authStatusMessage\n } = useDepositFlow();\n\n // Auto-trigger auth on mount (only once)\n useEffect(() => {\n if (!authInitiatedRef.current) {\n authInitiatedRef.current = true;\n performAuth();\n }\n }, [performAuth]);\n\n const handleRetry = () => {\n // Reset and retry authentication\n authInitiatedRef.current = false;\n performAuth();\n };\n\n const loadingMessage = {\n visible: true,\n title: 'Authenticating',\n subtitle:\n authStatusMessage || 'Please wait while we create your Nord account',\n isTyping: false,\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n {authStatus !== 'error' ? (\n <WaitingMessage loaderSize={52} message={loadingMessage} />\n ) : (\n <div className=\"flex flex-col items-center text-center space-y-2 \">\n <h3 className=\"text-xl text-white font-semibold\">\n Authentication Failed\n </h3>\n <p className=\"text-sm text-neutral-400\">\n There was an error during authentication. Please try again.\n </p>\n {authErrorMessage && (\n <p className=\"text-xs text-red-400\">{authErrorMessage}</p>\n )}\n <div className=\"pt-4 w-full\">\n <button\n onClick={handleRetry}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n w-full h-8 rounded border bg-transparent flex items-center justify-center font-medium text-sm\n transition-all duration-200 transform\n border-n1-ww-main text-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\n `}\n style={{\n transform: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n Try Again\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useOnboardingState } from '../providers';
|
|
4
|
+
import { useDepositFlow } from '../providers/DepositFlowProvider';
|
|
5
|
+
import { useWalletConnection } from '../providers';
|
|
6
|
+
/**
|
|
7
|
+
* Error screen displayed when the onboarding flow encounters an unrecoverable error.
|
|
8
|
+
* Shows error message, provides retry option, and bridge-specific retry when applicable.
|
|
9
|
+
*/
|
|
10
|
+
export function ErrorScreen() {
|
|
11
|
+
var _a;
|
|
12
|
+
var _b = useOnboardingState(), context = _b.context, actions = _b.actions;
|
|
13
|
+
var _c = useDepositFlow(), depositProgressPhase = _c.depositProgressPhase, bridgeRetryable = _c.bridgeRetryable, startDeposit = _c.startDeposit;
|
|
14
|
+
var _d = useWalletConnection(), retryTurnkeyBootstrap = _d.retryTurnkeyBootstrap, turnkeyEnabled = _d.turnkeyEnabled;
|
|
15
|
+
var message = ((_a = context.error) === null || _a === void 0 ? void 0 : _a.message) ||
|
|
16
|
+
(context.depositError && depositProgressPhase === 'bridge'
|
|
17
|
+
? 'Bridge transaction did not complete. Retry or switch chains.'
|
|
18
|
+
: context.depositError) ||
|
|
19
|
+
'Something went wrong while preparing Nord. Please try again.';
|
|
20
|
+
var handleRetry = useCallback(function () {
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
|
+
// If it's a Turnkey error, retry the bootstrap and go directly to Turnkey auth screen
|
|
23
|
+
var isTurnkeyError = turnkeyEnabled &&
|
|
24
|
+
(((_b = (_a = context.error) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes('turnkey')) ||
|
|
25
|
+
((_d = (_c = context.error) === null || _c === void 0 ? void 0 : _c.message) === null || _d === void 0 ? void 0 : _d.toLowerCase().includes('wallet authorization cancelled')));
|
|
26
|
+
if (isTurnkeyError) {
|
|
27
|
+
// Retry Turnkey bootstrap (resets state to 'idle', which will trigger bootstrap again)
|
|
28
|
+
retryTurnkeyBootstrap();
|
|
29
|
+
// Ensure entryNetwork is set to 'evm' for Turnkey flow
|
|
30
|
+
if (context.entryNetwork !== 'evm') {
|
|
31
|
+
actions.updateContext({ entryNetwork: 'evm' });
|
|
32
|
+
}
|
|
33
|
+
// Navigate directly to Turnkey auth screen
|
|
34
|
+
actions.enterTurnkeyAuth();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// For non-Turnkey errors, reset the flow completely
|
|
38
|
+
actions.resetFlow();
|
|
39
|
+
}
|
|
40
|
+
}, [actions, retryTurnkeyBootstrap, turnkeyEnabled, context.error, context.entryNetwork]);
|
|
41
|
+
return (_jsx("div", { className: "overflow-hidden relative", children: _jsxs("div", { className: "flex flex-col items-center text-center space-y-4", children: [_jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-full text-n1-ww-main", children: _jsxs("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "opacity-90", children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "1.5" }), _jsx("path", { d: "M9 9L15 15M15 9L9 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }) }), _jsxs("div", { className: "space-y-1 max-w-[280px]", children: [_jsx("h3", { className: "text-base font-medium text-white tracking-tight", children: "Unable to Continue" }), _jsx("p", { className: "text-xs text-white/70 leading-relaxed", children: message })] }), _jsx("button", { type: "button", onClick: handleRetry, className: "w-full h-8 rounded border border-n1-ww-main bg-transparent flex font-medium items-center justify-center text-sm text-n1-ww-main transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer", children: "Try Again" }), depositProgressPhase === 'bridge' && bridgeRetryable && (_jsx("button", { type: "button", onClick: startDeposit, className: "w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center text-sm text-white transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer", children: "Retry bridge" }))] }) }));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=09-ErrorScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"09-ErrorScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/09-ErrorScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback } from 'react';\nimport { useOnboardingState } from '../providers';\nimport { useDepositFlow } from '../providers/DepositFlowProvider';\nimport { useWalletConnection } from '../providers';\n\n/**\n * Error screen displayed when the onboarding flow encounters an unrecoverable error.\n * Shows error message, provides retry option, and bridge-specific retry when applicable.\n */\nexport function ErrorScreen() {\n const { context, actions } = useOnboardingState();\n const { depositProgressPhase, bridgeRetryable, startDeposit } = useDepositFlow();\n const { retryTurnkeyBootstrap, turnkeyEnabled } = useWalletConnection();\n\n const message =\n context.error?.message ||\n (context.depositError && depositProgressPhase === 'bridge'\n ? 'Bridge transaction did not complete. Retry or switch chains.'\n : context.depositError) ||\n 'Something went wrong while preparing Nord. Please try again.';\n\n const handleRetry = useCallback(() => {\n // If it's a Turnkey error, retry the bootstrap and go directly to Turnkey auth screen\n const isTurnkeyError = turnkeyEnabled && \n (context.error?.message?.toLowerCase().includes('turnkey') ||\n context.error?.message?.toLowerCase().includes('wallet authorization cancelled'));\n \n if (isTurnkeyError) {\n // Retry Turnkey bootstrap (resets state to 'idle', which will trigger bootstrap again)\n retryTurnkeyBootstrap();\n // Ensure entryNetwork is set to 'evm' for Turnkey flow\n if (context.entryNetwork !== 'evm') {\n actions.updateContext({ entryNetwork: 'evm' });\n }\n // Navigate directly to Turnkey auth screen\n actions.enterTurnkeyAuth();\n } else {\n // For non-Turnkey errors, reset the flow completely\n actions.resetFlow();\n }\n }, [actions, retryTurnkeyBootstrap, turnkeyEnabled, context.error, context.entryNetwork]);\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"flex flex-col items-center text-center space-y-4\">\n <div className=\"flex h-14 w-14 items-center justify-center rounded-full text-n1-ww-main\">\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"opacity-90\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M9 9L15 15M15 9L9 15\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </div>\n <div className=\"space-y-1 max-w-[280px]\">\n <h3 className=\"text-base font-medium text-white tracking-tight\">\n Unable to Continue\n </h3>\n <p className=\"text-xs text-white/70 leading-relaxed\">{message}</p>\n </div>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"w-full h-8 rounded border border-n1-ww-main bg-transparent flex font-medium items-center justify-center text-sm text-n1-ww-main transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n Try Again\n </button>\n {depositProgressPhase === 'bridge' && bridgeRetryable && (\n <button\n type=\"button\"\n onClick={startDeposit}\n className=\"w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center text-sm text-white transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n Retry bridge\n </button>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './00-EntrySelectionScreen';
|
|
2
|
+
export * from './01-ConnectWalletScreen';
|
|
3
|
+
export * from './02-TurnkeyAuthScreen';
|
|
4
|
+
export * from './03-TurnkeyPreparingScreen';
|
|
5
|
+
export * from './04-ChainSelectionScreen';
|
|
6
|
+
export * from './05-AmountInputScreen';
|
|
7
|
+
export * from './06-DepositProgressScreen';
|
|
8
|
+
export * from './07-DepositSuccessScreen';
|
|
9
|
+
export * from './08-AuthLoadingScreen';
|
|
10
|
+
export * from './09-ErrorScreen';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './00-EntrySelectionScreen';
|
|
2
|
+
export * from './01-ConnectWalletScreen';
|
|
3
|
+
export * from './02-TurnkeyAuthScreen';
|
|
4
|
+
export * from './03-TurnkeyPreparingScreen';
|
|
5
|
+
export * from './04-ChainSelectionScreen';
|
|
6
|
+
export * from './05-AmountInputScreen';
|
|
7
|
+
export * from './06-DepositProgressScreen';
|
|
8
|
+
export * from './07-DepositSuccessScreen';
|
|
9
|
+
export * from './08-AuthLoadingScreen';
|
|
10
|
+
export * from './09-ErrorScreen';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './00-EntrySelectionScreen';\nexport * from './01-ConnectWalletScreen';\nexport * from './02-TurnkeyAuthScreen';\nexport * from './03-TurnkeyPreparingScreen';\nexport * from './04-ChainSelectionScreen';\nexport * from './05-AmountInputScreen';\nexport * from './06-DepositProgressScreen';\nexport * from './07-DepositSuccessScreen';\nexport * from './08-AuthLoadingScreen';\nexport * from './09-ErrorScreen';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TurnkeySessionMachine, type TurnkeySessionSnapshot, } from '../../../turnkey/turnkeySessionMachine';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turnkeySessionMachine.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/turnkey/turnkeySessionMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAEtB,MAAM,wCAAwC,CAAC","sourcesContent":["export {\n TurnkeySessionMachine,\n type TurnkeySessionSnapshot,\n} from '../../../turnkey/turnkeySessionMachine';\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
|
2
3
|
/**
|
|
3
4
|
* Shared types for the onboarding flow state machine
|
|
4
5
|
*/
|
|
@@ -6,7 +7,10 @@ import React from 'react';
|
|
|
6
7
|
* Enum representing all possible states in the onboarding flow
|
|
7
8
|
*/
|
|
8
9
|
export declare enum OnboardingStep {
|
|
10
|
+
ENTRY_SELECTION = "ENTRY_SELECTION",
|
|
9
11
|
CONNECTING_WALLET = "CONNECTING_WALLET",
|
|
12
|
+
TURNKEY_AUTH = "TURNKEY_AUTH",
|
|
13
|
+
TURNKEY_PREPARING = "TURNKEY_PREPARING",
|
|
10
14
|
CHAIN_SELECTION = "CHAIN_SELECTION",
|
|
11
15
|
AMOUNT_INPUT = "AMOUNT_INPUT",
|
|
12
16
|
DEPOSIT_PROGRESS = "DEPOSIT_PROGRESS",
|
|
@@ -31,6 +35,8 @@ export interface StoredDepositRecord {
|
|
|
31
35
|
export interface OnboardingContext {
|
|
32
36
|
hasNordAccount: boolean;
|
|
33
37
|
hasActiveSession: boolean;
|
|
38
|
+
hasExistingBalance: boolean;
|
|
39
|
+
entryNetwork: 'evm' | 'solana' | null;
|
|
34
40
|
selectedChain: string | null;
|
|
35
41
|
selectedChainId: string | null;
|
|
36
42
|
selectedChainNetwork: string | null;
|
|
@@ -43,7 +49,7 @@ export interface OnboardingContext {
|
|
|
43
49
|
}
|
|
44
50
|
export interface WalletBalanceState {
|
|
45
51
|
usdc: number | null;
|
|
46
|
-
|
|
52
|
+
native: number | null;
|
|
47
53
|
loading: boolean;
|
|
48
54
|
error: string | null;
|
|
49
55
|
}
|
|
@@ -99,15 +105,36 @@ export interface Chain {
|
|
|
99
105
|
network?: string;
|
|
100
106
|
description?: string;
|
|
101
107
|
}
|
|
102
|
-
export
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
108
|
+
export type DepositProgressPhase = 'bridge' | 'claim' | 'solana' | 'nord';
|
|
109
|
+
export interface ProtonDepositRecord {
|
|
110
|
+
eventIndex?: number | string | null;
|
|
111
|
+
createdAtSlot: number;
|
|
112
|
+
amount: number;
|
|
113
|
+
depositorTokenAccount: string;
|
|
114
|
+
bufferAccount: string;
|
|
115
|
+
recipient: string;
|
|
116
|
+
mint: string;
|
|
106
117
|
}
|
|
107
|
-
export
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
118
|
+
export interface ProtonClientLike {
|
|
119
|
+
depositsForRecipient: (recipient: PublicKey, options: {
|
|
120
|
+
startSlot?: number;
|
|
121
|
+
order: 'desc' | 'asc';
|
|
122
|
+
}) => Promise<ProtonDepositRecord[]>;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Structural type for Solana Connection to avoid version mismatches
|
|
126
|
+
* between @solana/web3.js instances from different packages
|
|
127
|
+
*/
|
|
128
|
+
export interface SolanaConnectionLike {
|
|
129
|
+
getSignatureStatuses: (signatures: string[], config?: {
|
|
130
|
+
searchTransactionHistory?: boolean;
|
|
131
|
+
}) => Promise<{
|
|
132
|
+
context: {
|
|
133
|
+
slot: number;
|
|
134
|
+
};
|
|
135
|
+
value: ({
|
|
136
|
+
slot: number;
|
|
137
|
+
err: unknown;
|
|
138
|
+
} | null)[];
|
|
139
|
+
}>;
|
|
112
140
|
}
|
|
113
|
-
export type ButtonStates = Record<ButtonKey, ButtonState>;
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export var OnboardingStep;
|
|
8
8
|
(function (OnboardingStep) {
|
|
9
|
+
OnboardingStep["ENTRY_SELECTION"] = "ENTRY_SELECTION";
|
|
9
10
|
OnboardingStep["CONNECTING_WALLET"] = "CONNECTING_WALLET";
|
|
11
|
+
OnboardingStep["TURNKEY_AUTH"] = "TURNKEY_AUTH";
|
|
12
|
+
OnboardingStep["TURNKEY_PREPARING"] = "TURNKEY_PREPARING";
|
|
10
13
|
OnboardingStep["CHAIN_SELECTION"] = "CHAIN_SELECTION";
|
|
11
14
|
OnboardingStep["AMOUNT_INPUT"] = "AMOUNT_INPUT";
|
|
12
15
|
OnboardingStep["DEPOSIT_PROGRESS"] = "DEPOSIT_PROGRESS";
|
|
@@ -21,6 +24,8 @@ export var OnboardingStep;
|
|
|
21
24
|
export var initialOnboardingContext = {
|
|
22
25
|
hasNordAccount: false,
|
|
23
26
|
hasActiveSession: false,
|
|
27
|
+
hasExistingBalance: false,
|
|
28
|
+
entryNetwork: null,
|
|
24
29
|
selectedChain: null,
|
|
25
30
|
selectedChainId: null,
|
|
26
31
|
selectedChainNetwork: null,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,cAYX;AAZD,WAAY,cAAc;IACxB,qDAAmC,CAAA;IACnC,yDAAuC,CAAA;IACvC,+CAA6B,CAAA;IAC7B,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,iCAAe,CAAA;AACjB,CAAC,EAZW,cAAc,KAAd,cAAc,QAYzB;AAyCD;;GAEG;AACH,MAAM,CAAC,IAAM,wBAAwB,GAAsB;IACzD,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,IAAI;CAClB,CAAC","sourcesContent":["import React from 'react';\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * Shared types for the onboarding flow state machine\n */\n\n/**\n * Enum representing all possible states in the onboarding flow\n */\nexport enum OnboardingStep {\n ENTRY_SELECTION = 'ENTRY_SELECTION',\n CONNECTING_WALLET = 'CONNECTING_WALLET',\n TURNKEY_AUTH = 'TURNKEY_AUTH',\n TURNKEY_PREPARING = 'TURNKEY_PREPARING',\n CHAIN_SELECTION = 'CHAIN_SELECTION',\n AMOUNT_INPUT = 'AMOUNT_INPUT',\n DEPOSIT_PROGRESS = 'DEPOSIT_PROGRESS',\n DEPOSIT_SUCCESS = 'DEPOSIT_SUCCESS',\n AUTH_LOADING = 'AUTH_LOADING',\n FINAL_SUCCESS = 'FINAL_SUCCESS',\n ERROR = 'ERROR',\n}\n\n\n\n/**\n * Interface representing the onboarding context, containing all data necessary\n * for the onboarding flow\n */\nexport interface StoredDepositRecord {\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n chainId: string;\n chainName: string;\n chainNetwork: string | null;\n timestamp: number;\n}\n\nexport interface OnboardingContext {\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n hasExistingBalance: boolean;\n entryNetwork: 'evm' | 'solana' | null;\n selectedChain: string | null;\n selectedChainId: string | null;\n selectedChainNetwork: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n isDepositOnlyFlow: boolean;\n lastDeposit: StoredDepositRecord | null;\n}\n\nexport interface WalletBalanceState {\n usdc: number | null;\n native: number | null;\n loading: boolean;\n error: string | null;\n}\n\n/**\n * Initial onboarding context with default values\n */\nexport const initialOnboardingContext: OnboardingContext = {\n hasNordAccount: false,\n hasActiveSession: false,\n hasExistingBalance: false,\n entryNetwork: null,\n selectedChain: null,\n selectedChainId: null,\n selectedChainNetwork: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n isDepositOnlyFlow: false,\n lastDeposit: null,\n};\n\nexport interface TableValues {\n amount?: { text: string; visible: boolean; typing: boolean };\n tx: { text: string; visible: boolean; typing: boolean };\n from: { text: string; visible: boolean; typing: boolean };\n to: { text: string; visible: boolean; typing: boolean };\n network: { text: string; visible: boolean; typing: boolean };\n status: { text: string; visible: boolean; typing: boolean };\n}\n\nexport interface WaitingMessageState {\n title: string;\n subtitle: string;\n visible: boolean;\n isTyping: boolean;\n}\n\n/**\n * Interface for a blockchain network\n */\nexport interface Chain {\n id: string;\n name: string;\n logo: string | React.ReactNode;\n network?: string;\n description?: string;\n}\n\nexport type DepositProgressPhase = 'bridge' | 'claim' | 'solana' | 'nord';\n\nexport interface ProtonDepositRecord {\n eventIndex?: number | string | null;\n createdAtSlot: number;\n amount: number;\n depositorTokenAccount: string;\n bufferAccount: string;\n recipient: string;\n mint: string;\n}\n\nexport interface ProtonClientLike {\n depositsForRecipient: (\n recipient: PublicKey,\n options: {\n startSlot?: number;\n order: 'desc' | 'asc';\n }\n ) => Promise<ProtonDepositRecord[]>;\n}\n\n/**\n * Structural type for Solana Connection to avoid version mismatches\n * between @solana/web3.js instances from different packages\n */\nexport interface SolanaConnectionLike {\n getSignatureStatuses: (\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n ) => Promise<{\n context: { slot: number };\n value: ({ slot: number; err: unknown } | null)[];\n }>;\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Re-export from centralized chain utilities
|
|
2
|
+
export { normalizeCctpChain } from '../../../utils/chain';
|
|
3
|
+
/**
|
|
4
|
+
* Formats bridge errors into user-friendly messages.
|
|
5
|
+
*/
|
|
6
|
+
export var formatBridgeError = function (error) {
|
|
7
|
+
var raw = error instanceof Error ? error.message : "".concat(error);
|
|
8
|
+
var normalized = raw.toLowerCase();
|
|
9
|
+
if (normalized.includes('user') && normalized.includes('denied')) {
|
|
10
|
+
return 'You rejected the bridge transaction. Please approve to continue.';
|
|
11
|
+
}
|
|
12
|
+
if (normalized.includes('insufficient')) {
|
|
13
|
+
return 'Bridge failed due to insufficient balance or allowance.';
|
|
14
|
+
}
|
|
15
|
+
if (normalized.includes('timeout') || normalized.includes('attestation')) {
|
|
16
|
+
return 'Bridge confirmation is taking too long. Retry the bridge.';
|
|
17
|
+
}
|
|
18
|
+
if (normalized.includes('invalid') || normalized.includes('payload')) {
|
|
19
|
+
return 'Bridge request was rejected. Please retry the deposit.';
|
|
20
|
+
}
|
|
21
|
+
if (normalized.includes('conflict') || normalized.includes('409')) {
|
|
22
|
+
return 'Bridge request conflicted with an existing deposit. Retry with a fresh deposit.';
|
|
23
|
+
}
|
|
24
|
+
if (normalized.includes('429') || normalized.includes('rate limit')) {
|
|
25
|
+
return 'Service is busy. Please retry in a moment.';
|
|
26
|
+
}
|
|
27
|
+
if (normalized.includes('unauthorized') || normalized.includes('signature')) {
|
|
28
|
+
return 'Request was rejected. Please retry the deposit.';
|
|
29
|
+
}
|
|
30
|
+
return raw || 'Bridge transaction failed. Please retry.';
|
|
31
|
+
};
|
|
32
|
+
// Re-export deriveChainLabel from centralized chain utilities
|
|
33
|
+
export { deriveChainLabel } from '../../../utils/chain';
|
|
34
|
+
//# sourceMappingURL=bridgeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeUtils.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/utils/bridgeUtils.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,KAAc;IAC9C,IAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAG,KAAK,CAAE,CAAC;IAChE,IAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,OAAO,kEAAkE,CAAC;IAC5E,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACxC,OAAO,yDAAyD,CAAC;IACnE,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,OAAO,2DAA2D,CAAC;IACrE,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrE,OAAO,wDAAwD,CAAC;IAClE,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,iFAAiF,CAAC;IAC3F,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACpE,OAAO,4CAA4C,CAAC;IACtD,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5E,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,IAAI,0CAA0C,CAAC;AAC3D,CAAC,CAAC;AAEF,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["// Re-export from centralized chain utilities\nexport { normalizeCctpChain } from '../../../utils/chain';\n\n/**\n * Formats bridge errors into user-friendly messages.\n */\nexport const formatBridgeError = (error: unknown): string => {\n const raw = error instanceof Error ? error.message : `${error}`;\n const normalized = raw.toLowerCase();\n if (normalized.includes('user') && normalized.includes('denied')) {\n return 'You rejected the bridge transaction. Please approve to continue.';\n }\n if (normalized.includes('insufficient')) {\n return 'Bridge failed due to insufficient balance or allowance.';\n }\n if (normalized.includes('timeout') || normalized.includes('attestation')) {\n return 'Bridge confirmation is taking too long. Retry the bridge.';\n }\n if (normalized.includes('invalid') || normalized.includes('payload')) {\n return 'Bridge request was rejected. Please retry the deposit.';\n }\n if (normalized.includes('conflict') || normalized.includes('409')) {\n return 'Bridge request conflicted with an existing deposit. Retry with a fresh deposit.';\n }\n if (normalized.includes('429') || normalized.includes('rate limit')) {\n return 'Service is busy. Please retry in a moment.';\n }\n if (normalized.includes('unauthorized') || normalized.includes('signature')) {\n return 'Request was rejected. Please retry the deposit.';\n }\n return raw || 'Bridge transaction failed. Please retry.';\n};\n\n// Re-export deriveChainLabel from centralized chain utilities\nexport { deriveChainLabel } from '../../../utils/chain';\n\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BridgeKitClient } from '../../cctp/bridgeKitClient';
|
|
2
|
+
export interface WaitForAttestationParams {
|
|
3
|
+
cctpClient: BridgeKitClient;
|
|
4
|
+
bridgeTxId: string;
|
|
5
|
+
sourceChain: string;
|
|
6
|
+
timeoutMs: number;
|
|
7
|
+
retryBackoffMs: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Polls Circle/Iris for attestation data for a given bridge tx.
|
|
11
|
+
* Throws on timeout.
|
|
12
|
+
*/
|
|
13
|
+
export declare const waitForAttestation: ({ cctpClient, bridgeTxId, sourceChain, timeoutMs, retryBackoffMs, }: WaitForAttestationParams) => Promise<{
|
|
14
|
+
attestation: string;
|
|
15
|
+
message: string;
|
|
16
|
+
decodedMessage?: {
|
|
17
|
+
sourceDomain: string;
|
|
18
|
+
destinationDomain: string;
|
|
19
|
+
nonce: string;
|
|
20
|
+
sender: string;
|
|
21
|
+
recipient: string;
|
|
22
|
+
decodedMessageBody?: {
|
|
23
|
+
mintRecipient?: string;
|
|
24
|
+
amount?: string;
|
|
25
|
+
burnToken?: string;
|
|
26
|
+
messageSender?: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
}>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { delay } from './solanaUtils';
|
|
38
|
+
import { logger } from '../../../../utils/logger';
|
|
39
|
+
/**
|
|
40
|
+
* Polls Circle/Iris for attestation data for a given bridge tx.
|
|
41
|
+
* Throws on timeout.
|
|
42
|
+
*/
|
|
43
|
+
export var waitForAttestation = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
44
|
+
var start, lastError, attestationData, error_1, errorMessage;
|
|
45
|
+
var cctpClient = _b.cctpClient, bridgeTxId = _b.bridgeTxId, sourceChain = _b.sourceChain, timeoutMs = _b.timeoutMs, retryBackoffMs = _b.retryBackoffMs;
|
|
46
|
+
return __generator(this, function (_c) {
|
|
47
|
+
switch (_c.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
start = Date.now();
|
|
50
|
+
lastError = null;
|
|
51
|
+
_c.label = 1;
|
|
52
|
+
case 1:
|
|
53
|
+
if (!(Date.now() - start < timeoutMs)) return [3 /*break*/, 7];
|
|
54
|
+
_c.label = 2;
|
|
55
|
+
case 2:
|
|
56
|
+
_c.trys.push([2, 4, , 5]);
|
|
57
|
+
return [4 /*yield*/, cctpClient.getAttestation(bridgeTxId, sourceChain)];
|
|
58
|
+
case 3:
|
|
59
|
+
attestationData = _c.sent();
|
|
60
|
+
if (attestationData) {
|
|
61
|
+
return [2 /*return*/, attestationData];
|
|
62
|
+
}
|
|
63
|
+
return [3 /*break*/, 5];
|
|
64
|
+
case 4:
|
|
65
|
+
error_1 = _c.sent();
|
|
66
|
+
lastError = error_1;
|
|
67
|
+
logger.warn('[BridgeDeposit] Error fetching attestation, retrying...', {
|
|
68
|
+
error: error_1,
|
|
69
|
+
errorMessage: error_1 instanceof Error ? error_1.message : String(error_1),
|
|
70
|
+
});
|
|
71
|
+
return [3 /*break*/, 5];
|
|
72
|
+
case 5: return [4 /*yield*/, delay(retryBackoffMs)];
|
|
73
|
+
case 6:
|
|
74
|
+
_c.sent();
|
|
75
|
+
return [3 /*break*/, 1];
|
|
76
|
+
case 7:
|
|
77
|
+
errorMessage = lastError instanceof Error ? lastError.message : lastError ? String(lastError) : 'unknown error';
|
|
78
|
+
throw new Error("Attestation timeout after ".concat(timeoutMs, "ms (").concat(errorMessage, ")"));
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}); };
|
|
82
|
+
//# sourceMappingURL=attestationUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestationUtils.js","sourceRoot":"","sources":["../../../../../../src/features/onboarding-flow/utils/deposit/attestationUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAUlD;;;GAGG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAG,iEAAO,EAMd;;QALzB,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,cAAc,oBAAA;;;;gBAER,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrB,SAAS,GAAY,IAAI,CAAC;;;qBAEvB,CAAA,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,CAAA;;;;gBAET,qBAAM,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,EAAA;;gBAA1E,eAAe,GAAG,SAAwD;gBAChF,IAAI,eAAe,EAAE,CAAC;oBACpB,sBAAO,eAAe,EAAC;gBACzB,CAAC;;;;gBAED,SAAS,GAAG,OAAK,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE;oBACrE,KAAK,SAAA;oBACL,YAAY,EAAE,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAK,CAAC;iBACrE,CAAC,CAAC;;oBAGL,qBAAM,KAAK,CAAC,cAAc,CAAC,EAAA;;gBAA3B,SAA2B,CAAC;;;gBAGxB,YAAY,GAChB,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,oCAA6B,SAAS,iBAAO,YAAY,MAAG,CAAC,CAAC;;;KAC/E,CAAC","sourcesContent":["import { BridgeKitClient } from '../../cctp/bridgeKitClient';\nimport { delay } from './solanaUtils';\nimport { logger } from '../../../../utils/logger';\n\nexport interface WaitForAttestationParams {\n cctpClient: BridgeKitClient;\n bridgeTxId: string;\n sourceChain: string;\n timeoutMs: number;\n retryBackoffMs: number;\n}\n\n/**\n * Polls Circle/Iris for attestation data for a given bridge tx.\n * Throws on timeout.\n */\nexport const waitForAttestation = async ({\n cctpClient,\n bridgeTxId,\n sourceChain,\n timeoutMs,\n retryBackoffMs,\n}: WaitForAttestationParams) => {\n const start = Date.now();\n let lastError: unknown = null;\n\n while (Date.now() - start < timeoutMs) {\n try {\n const attestationData = await cctpClient.getAttestation(bridgeTxId, sourceChain);\n if (attestationData) {\n return attestationData;\n }\n } catch (error) {\n lastError = error;\n logger.warn('[BridgeDeposit] Error fetching attestation, retrying...', {\n error,\n errorMessage: error instanceof Error ? error.message : String(error),\n });\n }\n\n await delay(retryBackoffMs);\n }\n\n const errorMessage =\n lastError instanceof Error ? lastError.message : lastError ? String(lastError) : 'unknown error';\n throw new Error(`Attestation timeout after ${timeoutMs}ms (${errorMessage})`);\n};\n\n\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { toDepositError } from '../../errors/depositError';
|
|
2
|
+
// Re-export from centralized chain utilities
|
|
3
|
+
export { normalizeCctpChain, deriveChainLabel } from '../../../../utils/chain';
|
|
4
|
+
/**
|
|
5
|
+
* Formats bridge errors into user-friendly messages.
|
|
6
|
+
*/
|
|
7
|
+
export var formatBridgeError = function (error) {
|
|
8
|
+
return toDepositError(error).userMessage;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=bridgeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeUtils.js","sourceRoot":"","sources":["../../../../../../src/features/onboarding-flow/utils/deposit/bridgeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,KAAc;IAC9C,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC3C,CAAC,CAAC","sourcesContent":["import { toDepositError } from '../../errors/depositError';\n\n// Re-export from centralized chain utilities\nexport { normalizeCctpChain, deriveChainLabel } from '../../../../utils/chain';\n\n/**\n * Formats bridge errors into user-friendly messages.\n */\nexport const formatBridgeError = (error: unknown): string => {\n return toDepositError(error).userMessage;\n};\n\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ConfirmClaimAndGetUsdcBalanceParams {
|
|
2
|
+
signature: string | null;
|
|
3
|
+
destinationAddress: string;
|
|
4
|
+
amountHint?: string | number | null;
|
|
5
|
+
skipConfirmation?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Confirms the claim transaction (optional), then reads USDC token balance for the destination address.
|
|
9
|
+
* Returns the amount string that should be deposited to Nord.
|
|
10
|
+
*/
|
|
11
|
+
export declare const confirmClaimAndGetUsdcBalance: ({ signature, destinationAddress, amountHint, skipConfirmation, }: ConfirmClaimAndGetUsdcBalanceParams) => Promise<{
|
|
12
|
+
amount: string;
|
|
13
|
+
txSignature: string | null;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { Connection, PublicKey } from '@solana/web3.js';
|
|
38
|
+
import { getSolanaRpcUrl } from '../../../../config/solana';
|
|
39
|
+
import { mapChainToBridgeKit } from '../../cctp/bridgeKitClient';
|
|
40
|
+
/**
|
|
41
|
+
* Confirms the claim transaction (optional), then reads USDC token balance for the destination address.
|
|
42
|
+
* Returns the amount string that should be deposited to Nord.
|
|
43
|
+
*/
|
|
44
|
+
export var confirmClaimAndGetUsdcBalance = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
45
|
+
var rpcEndpoint, connection, shouldConfirmOnChain, confirmation, solanaChain, usdcMint, owner, tokenAccounts, totalRaw, decimals, _i, _c, acct, parsed, availableUsdc, amountToDeposit;
|
|
46
|
+
var _d, _e, _f, _g, _h;
|
|
47
|
+
var signature = _b.signature, destinationAddress = _b.destinationAddress, amountHint = _b.amountHint, skipConfirmation = _b.skipConfirmation;
|
|
48
|
+
return __generator(this, function (_j) {
|
|
49
|
+
switch (_j.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
rpcEndpoint = process.env.NEXT_PUBLIC_NORD_SOLANA_URL || getSolanaRpcUrl();
|
|
52
|
+
connection = new Connection(rpcEndpoint);
|
|
53
|
+
shouldConfirmOnChain = Boolean(signature) && !skipConfirmation;
|
|
54
|
+
if (!(shouldConfirmOnChain && signature)) return [3 /*break*/, 2];
|
|
55
|
+
return [4 /*yield*/, connection.confirmTransaction(signature, 'finalized')];
|
|
56
|
+
case 1:
|
|
57
|
+
confirmation = _j.sent();
|
|
58
|
+
if ((_d = confirmation.value) === null || _d === void 0 ? void 0 : _d.err) {
|
|
59
|
+
throw new Error('Claim transaction failed on-chain');
|
|
60
|
+
}
|
|
61
|
+
_j.label = 2;
|
|
62
|
+
case 2:
|
|
63
|
+
solanaChain = mapChainToBridgeKit('solana');
|
|
64
|
+
usdcMint = new PublicKey(solanaChain.usdcAddress);
|
|
65
|
+
owner = new PublicKey(destinationAddress);
|
|
66
|
+
return [4 /*yield*/, connection.getParsedTokenAccountsByOwner(owner, { mint: usdcMint })];
|
|
67
|
+
case 3:
|
|
68
|
+
tokenAccounts = _j.sent();
|
|
69
|
+
totalRaw = BigInt(0);
|
|
70
|
+
decimals = 6;
|
|
71
|
+
for (_i = 0, _c = tokenAccounts.value; _i < _c.length; _i++) {
|
|
72
|
+
acct = _c[_i];
|
|
73
|
+
parsed = (_g = (_f = (_e = acct.account.data) === null || _e === void 0 ? void 0 : _e.parsed) === null || _f === void 0 ? void 0 : _f.info) === null || _g === void 0 ? void 0 : _g.tokenAmount;
|
|
74
|
+
if (parsed === null || parsed === void 0 ? void 0 : parsed.amount) {
|
|
75
|
+
decimals = (_h = parsed.decimals) !== null && _h !== void 0 ? _h : decimals;
|
|
76
|
+
totalRaw += BigInt(parsed.amount);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
availableUsdc = Number(totalRaw) / Math.pow(10, decimals);
|
|
80
|
+
// If we are explicitly skipping confirmation (typically "nonce already processed" recovery),
|
|
81
|
+
// do NOT fall back to amountHint. If USDC is not present, it's very likely the user already
|
|
82
|
+
// completed the Nord deposit earlier (or moved funds), so retrying would be misleading.
|
|
83
|
+
if (skipConfirmation && availableUsdc <= 0) {
|
|
84
|
+
throw new Error('No USDC available to deposit. This deposit may already be completed. If your deposit was successful, you can click "Start Over" to clear this state.');
|
|
85
|
+
}
|
|
86
|
+
amountToDeposit = availableUsdc > 0 ? availableUsdc : Number(amountHint !== null && amountHint !== void 0 ? amountHint : 0);
|
|
87
|
+
if (!Number.isFinite(amountToDeposit) || amountToDeposit <= 0) {
|
|
88
|
+
throw new Error('No USDC available after claim to deposit');
|
|
89
|
+
}
|
|
90
|
+
return [2 /*return*/, { amount: amountToDeposit.toString(), txSignature: signature }];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}); };
|
|
94
|
+
//# sourceMappingURL=claimConfirmation.js.map
|