@n1xyz/wallet-widget 0.0.8 → 0.0.9
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/Logic/getPseudoName.js +1 -0
- package/dist/Logic/getPseudoName.js.map +1 -0
- package/dist/Logic/sessionManager.js +1 -0
- package/dist/Logic/sessionManager.js.map +1 -0
- package/dist/Logic/transactionManager.js +1 -0
- package/dist/Logic/transactionManager.js.map +1 -0
- package/dist/Logic/utils.js +1 -0
- package/dist/Logic/utils.js.map +1 -0
- package/dist/Logic/words.js +1 -0
- package/dist/Logic/words.js.map +1 -0
- package/dist/Modal/LoadingFallback.js +1 -0
- package/dist/Modal/LoadingFallback.js.map +1 -0
- package/dist/Modal/N1WalletModal.js +5 -5
- package/dist/Modal/N1WalletModal.js.map +1 -0
- package/dist/Modal/NTSFlow/LoadingFallback.js +1 -0
- package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -0
- package/dist/Modal/NTSFlow/NTSFlow.js +1 -0
- package/dist/Modal/NTSFlow/NTSFlow.js.map +1 -0
- package/dist/Modal/NTSFlow/components/BackButton.js +1 -0
- package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -0
- package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -0
- package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -0
- package/dist/Modal/NTSFlow/index.js +1 -0
- package/dist/Modal/NTSFlow/index.js.map +1 -0
- package/dist/Modal/NTSFlow/views/ConnectView.js +1 -0
- package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +1 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -0
- package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js +1 -0
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/SigningView.js +1 -0
- package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/SuccessView.js +1 -0
- package/dist/Modal/NTSFlow/views/SuccessView.js.map +1 -0
- package/dist/Modal/NordFlow/NordFlow.js +6 -10
- package/dist/Modal/NordFlow/NordFlow.js.map +1 -0
- package/dist/Modal/NordFlow/components/ChainButton.js +1 -0
- package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -0
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +1 -0
- package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -0
- package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -0
- package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -0
- package/dist/Modal/NordFlow/components/MoreButton.js +1 -0
- package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -0
- package/dist/Modal/NordFlow/components/TransactionTable.js +1 -0
- package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -0
- package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -0
- package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -0
- package/dist/Modal/NordFlow/components/index.js +1 -0
- package/dist/Modal/NordFlow/components/index.js.map +1 -0
- package/dist/Modal/NordFlow/constants.js +1 -0
- package/dist/Modal/NordFlow/constants.js.map +1 -0
- package/dist/Modal/NordFlow/hoc/index.js +1 -0
- package/dist/Modal/NordFlow/hoc/index.js.map +1 -0
- package/dist/Modal/NordFlow/hoc/withImageFallback.js +1 -0
- package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/index.js +1 -0
- package/dist/Modal/NordFlow/hooks/index.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +31 -30
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useFlowState.js +44 -22
- package/dist/Modal/NordFlow/hooks/useFlowState.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +19 -16
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -4
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +65 -25
- package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +73 -52
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -0
- package/dist/Modal/NordFlow/index.js +1 -0
- package/dist/Modal/NordFlow/index.js.map +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/index.js +1 -0
- package/dist/Modal/NordFlow/screens/index.js.map +1 -0
- package/dist/Modal/NordFlow/types.js +1 -0
- package/dist/Modal/NordFlow/types.js.map +1 -0
- package/dist/Modal/NordFlow/utils/imageUtils.js +1 -0
- package/dist/Modal/NordFlow/utils/imageUtils.js.map +1 -0
- package/dist/Modal/NordFlow/utils/index.js +1 -0
- package/dist/Modal/NordFlow/utils/index.js.map +1 -0
- package/dist/Modal/NordFlow/utils/nordUtils.js +1 -0
- package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -0
- package/dist/Modal/NordFlow/utils/persistence.js +1 -0
- package/dist/Modal/NordFlow/utils/persistence.js.map +1 -0
- package/dist/Modal/Sidebar/N1Sidebar.js +2 -0
- package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -0
- package/dist/Provider/LazyWalletProvider.js +1 -0
- package/dist/Provider/LazyWalletProvider.js.map +1 -0
- package/dist/Provider/N1WalletProvider.js +3 -12
- package/dist/Provider/N1WalletProvider.js.map +1 -0
- package/dist/Provider/context.js +1 -0
- package/dist/Provider/context.js.map +1 -0
- package/dist/Provider/hooks.js +1 -0
- package/dist/Provider/hooks.js.map +1 -0
- package/dist/Provider/icons/CoinbaseWalletIcon.js +1 -0
- package/dist/Provider/icons/CoinbaseWalletIcon.js.map +1 -0
- package/dist/Provider/icons/ConnectionDotsSVG.js +1 -0
- package/dist/Provider/icons/ConnectionDotsSVG.js.map +1 -0
- package/dist/Provider/icons/MetamaskIcon.js +1 -0
- package/dist/Provider/icons/MetamaskIcon.js.map +1 -0
- package/dist/Provider/icons/PhantomIcon.js +1 -0
- package/dist/Provider/icons/PhantomIcon.js.map +1 -0
- package/dist/Provider/icons/UserIcon.js +1 -0
- package/dist/Provider/icons/UserIcon.js.map +1 -0
- package/dist/Provider/icons/WalletConnectIcon.js +1 -0
- package/dist/Provider/icons/WalletConnectIcon.js.map +1 -0
- package/dist/Provider/index.js +1 -0
- package/dist/Provider/index.js.map +1 -0
- package/dist/Provider/types.js +1 -0
- package/dist/Provider/types.js.map +1 -0
- package/dist/WidgetButton/N1ConnectButton.js +1 -0
- package/dist/WidgetButton/N1ConnectButton.js.map +1 -0
- package/dist/components/Logo.js +1 -0
- package/dist/components/Logo.js.map +1 -0
- package/dist/components/QRCodeLoader.js +1 -0
- package/dist/components/QRCodeLoader.js.map +1 -0
- package/dist/components/logos/ArbitrumLogo.js +1 -0
- package/dist/components/logos/ArbitrumLogo.js.map +1 -0
- package/dist/components/logos/BaseLogo.js +1 -0
- package/dist/components/logos/BaseLogo.js.map +1 -0
- package/dist/components/logos/BeraLogo.js +1 -0
- package/dist/components/logos/BeraLogo.js.map +1 -0
- package/dist/components/logos/BitcoinLogo.js +1 -0
- package/dist/components/logos/BitcoinLogo.js.map +1 -0
- package/dist/components/logos/EVMChainsGroup.js +1 -0
- package/dist/components/logos/EVMChainsGroup.js.map +1 -0
- package/dist/components/logos/EthereumLogo.js +1 -0
- package/dist/components/logos/EthereumLogo.js.map +1 -0
- package/dist/components/logos/HyperliquidLogo.js +1 -0
- package/dist/components/logos/HyperliquidLogo.js.map +1 -0
- package/dist/components/logos/MoreChainsGroup.js +1 -0
- package/dist/components/logos/MoreChainsGroup.js.map +1 -0
- package/dist/components/logos/OptimismLogo.js +1 -0
- package/dist/components/logos/OptimismLogo.js.map +1 -0
- package/dist/components/logos/SolanaLogo.js +1 -0
- package/dist/components/logos/SolanaLogo.js.map +1 -0
- package/dist/components/logos/index.js +1 -0
- package/dist/components/logos/index.js.map +1 -0
- package/dist/config/solana.js +1 -0
- package/dist/config/solana.js.map +1 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -0
- package/dist/errors/types.js +1 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/dynamicImports.js +1 -0
- package/dist/utils/dynamicImports.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +26 -2
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/shortenString.js +1 -0
- package/dist/utils/shortenString.js.map +1 -0
- package/package.json +2 -2
- package/dist/Modal/BackButton.d.ts +0 -3
- package/dist/Modal/BackButton.js +0 -26
- package/dist/Modal/ConnectView.d.ts +0 -1
- package/dist/Modal/ConnectView.js +0 -68
- package/dist/Modal/CreateSessionView.d.ts +0 -1
- package/dist/Modal/CreateSessionView.js +0 -248
- package/dist/Modal/CreateUserView.d.ts +0 -1
- package/dist/Modal/CreateUserView.js +0 -160
- package/dist/Modal/ModalHeader.d.ts +0 -1
- package/dist/Modal/ModalHeader.js +0 -20
- package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +0 -145
- package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +0 -75
- package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +0 -5
- package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +0 -1
- package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +0 -5
- package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +0 -13
- package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +0 -58
- package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +0 -6
- package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +0 -5
- package/dist/Modal/NTSFlow/NordFlow/components/index.js +0 -5
- package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +0 -37
- package/dist/Modal/NTSFlow/NordFlow/constants.js +0 -223
- package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +0 -8
- package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +0 -8
- package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +0 -43
- package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +0 -38
- package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +0 -166
- package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +0 -163
- package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
- package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +0 -101
- package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +0 -193
- package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +0 -69
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +0 -30
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +0 -132
- package/dist/Modal/NTSFlow/NordFlow/index.d.ts +0 -3
- package/dist/Modal/NTSFlow/NordFlow/index.js +0 -3
- package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
- package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
- package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
- package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +0 -20
- package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
- package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
- package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +0 -14
- package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
- package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
- package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +0 -13
- package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +0 -10
- package/dist/Modal/NTSFlow/NordFlow/screens/index.js +0 -10
- package/dist/Modal/NTSFlow/NordFlow/types.d.ts +0 -105
- package/dist/Modal/NTSFlow/NordFlow/types.js +0 -34
- package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +0 -24
- package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +0 -83
- package/dist/Modal/NoWhitelistView.d.ts +0 -1
- package/dist/Modal/NoWhitelistView.js +0 -42
- package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +0 -11
- package/dist/Modal/NordFlow/NordFlowWrapper.js +0 -11
- package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/Modal/NordFlow/WalletConnectionFlow.js +0 -145
- package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/Modal/NordFlow/components/AnimatedButton.js +0 -75
- package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/Modal/NordFlow/hooks/useButtonTyping.js +0 -43
- package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/Modal/NordFlow/hooks/useNordSession.js +0 -391
- package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/Modal/NordFlow/hooks/useTableValues.js +0 -69
- package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +0 -14
- package/dist/Modal/NordFlow/hooks/useWalletConnect.js +0 -221
- package/dist/Modal/NordFlow/index copy.d.ts +0 -1
- package/dist/Modal/NordFlow/index copy.js +0 -1
- package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +0 -5
- package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +0 -17
- package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +0 -153
- package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +0 -47
- package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +0 -62
- package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +0 -1
- package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +0 -116
- package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +0 -5
- package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +0 -138
- package/dist/Modal/SigningView.d.ts +0 -1
- package/dist/Modal/SigningView.js +0 -5
- package/dist/Modal/SuccessView.d.ts +0 -1
- package/dist/Modal/SuccessView.js +0 -10
- package/dist/NordFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/NordFlow/WalletConnectionFlow.js +0 -145
- package/dist/NordFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/NordFlow/components/AnimatedButton.js +0 -75
- package/dist/NordFlow/components/ChainButton.d.ts +0 -7
- package/dist/NordFlow/components/ChainButton.js +0 -5
- package/dist/NordFlow/components/LoadingSquares.d.ts +0 -1
- package/dist/NordFlow/components/LoadingSquares.js +0 -5
- package/dist/NordFlow/components/TransactionTable.d.ts +0 -13
- package/dist/NordFlow/components/TransactionTable.js +0 -58
- package/dist/NordFlow/components/WaitingMessage.d.ts +0 -6
- package/dist/NordFlow/components/WaitingMessage.js +0 -6
- package/dist/NordFlow/components/index.d.ts +0 -5
- package/dist/NordFlow/components/index.js +0 -5
- package/dist/NordFlow/constants.d.ts +0 -37
- package/dist/NordFlow/constants.js +0 -223
- package/dist/NordFlow/hooks/index.d.ts +0 -8
- package/dist/NordFlow/hooks/index.js +0 -8
- package/dist/NordFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/NordFlow/hooks/useButtonTyping.js +0 -43
- package/dist/NordFlow/hooks/useDepositFlow.d.ts +0 -38
- package/dist/NordFlow/hooks/useDepositFlow.js +0 -166
- package/dist/NordFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/NordFlow/hooks/useFlowState.js +0 -163
- package/dist/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
- package/dist/NordFlow/hooks/useInterruptHandler.js +0 -101
- package/dist/NordFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/NordFlow/hooks/useNordSession.js +0 -193
- package/dist/NordFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/NordFlow/hooks/useTableValues.js +0 -69
- package/dist/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/NordFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/NordFlow/hooks/useWalletConnect.d.ts +0 -30
- package/dist/NordFlow/hooks/useWalletConnect.js +0 -132
- package/dist/NordFlow/index.d.ts +0 -3
- package/dist/NordFlow/index.js +0 -3
- package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
- package/dist/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
- package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
- package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
- package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
- package/dist/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
- package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
- package/dist/NordFlow/screens/04-AmountInputScreen.js +0 -20
- package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
- package/dist/NordFlow/screens/05-DepositProgressScreen.js +0 -6
- package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
- package/dist/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
- package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
- package/dist/NordFlow/screens/07-NordAuthScreen.js +0 -14
- package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
- package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
- package/dist/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/NordFlow/screens/10-ErrorScreen.js +0 -13
- package/dist/NordFlow/screens/index.d.ts +0 -10
- package/dist/NordFlow/screens/index.js +0 -10
- package/dist/NordFlow/types.d.ts +0 -105
- package/dist/NordFlow/types.js +0 -34
- package/dist/NordFlow/utils/persistence.d.ts +0 -24
- package/dist/NordFlow/utils/persistence.js +0 -83
- package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/WalletConnectionFlow/WalletConnectionFlow.js +0 -145
- package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/WalletConnectionFlow/components/AnimatedButton.js +0 -75
- package/dist/WalletConnectionFlow/components/ChainButton.d.ts +0 -7
- package/dist/WalletConnectionFlow/components/ChainButton.js +0 -5
- package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +0 -1
- package/dist/WalletConnectionFlow/components/LoadingSquares.js +0 -5
- package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +0 -13
- package/dist/WalletConnectionFlow/components/TransactionTable.js +0 -58
- package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +0 -6
- package/dist/WalletConnectionFlow/components/WaitingMessage.js +0 -6
- package/dist/WalletConnectionFlow/components/index.d.ts +0 -5
- package/dist/WalletConnectionFlow/components/index.js +0 -5
- package/dist/WalletConnectionFlow/constants.d.ts +0 -37
- package/dist/WalletConnectionFlow/constants.js +0 -223
- package/dist/WalletConnectionFlow/hooks/index.d.ts +0 -8
- package/dist/WalletConnectionFlow/hooks/index.js +0 -8
- package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +0 -43
- package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +0 -38
- package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +0 -166
- package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/WalletConnectionFlow/hooks/useFlowState.js +0 -163
- package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +0 -27
- package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +0 -101
- package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/WalletConnectionFlow/hooks/useNordSession.js +0 -193
- package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/WalletConnectionFlow/hooks/useTableValues.js +0 -69
- package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +0 -30
- package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +0 -132
- package/dist/WalletConnectionFlow/index.d.ts +0 -3
- package/dist/WalletConnectionFlow/index.js +0 -3
- package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +0 -17
- package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +0 -47
- package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +0 -7
- package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +0 -6
- package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +0 -99
- package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +0 -14
- package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +0 -18
- package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +0 -13
- package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +0 -28
- package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +0 -7
- package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +0 -17
- package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +0 -6
- package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +0 -99
- package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/ErrorScreen.js +0 -13
- package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +0 -47
- package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +0 -47
- package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +0 -5
- package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +0 -18
- package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +0 -14
- package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/SigningScreen.js +0 -6
- package/dist/WalletConnectionFlow/screens/index.d.ts +0 -10
- package/dist/WalletConnectionFlow/screens/index.js +0 -10
- package/dist/WalletConnectionFlow/types.d.ts +0 -105
- package/dist/WalletConnectionFlow/types.js +0 -34
- package/dist/WalletConnectionFlow/utils/persistence.d.ts +0 -24
- package/dist/WalletConnectionFlow/utils/persistence.js +0 -83
- package/dist/components/LazyLoadWrapper.d.ts +0 -8
- package/dist/components/LazyLoadWrapper.js +0 -17
- package/dist/components/WalletDeposit/AnimatedButton.d.ts +0 -17
- package/dist/components/WalletDeposit/AnimatedButton.js +0 -29
- package/dist/components/WalletDeposit/components/ChainButton.d.ts +0 -7
- package/dist/components/WalletDeposit/components/ChainButton.js +0 -5
- package/dist/components/WalletDeposit/components/LoadingSquares.d.ts +0 -1
- package/dist/components/WalletDeposit/components/LoadingSquares.js +0 -5
- package/dist/components/WalletDeposit/components/TransactionTable.d.ts +0 -13
- package/dist/components/WalletDeposit/components/TransactionTable.js +0 -58
- package/dist/components/WalletDeposit/components/WaitingMessage.d.ts +0 -6
- package/dist/components/WalletDeposit/components/WaitingMessage.js +0 -6
- package/dist/components/WalletDeposit/constants.d.ts +0 -15
- package/dist/components/WalletDeposit/constants.js +0 -32
- package/dist/components/WalletDeposit/hooks.d.ts +0 -9
- package/dist/components/WalletDeposit/hooks.js +0 -185
- package/dist/components/WalletDeposit/index.d.ts +0 -1
- package/dist/components/WalletDeposit/index.js +0 -136
- package/dist/components/WalletDeposit/screens/AmountInputScreen.d.ts +0 -12
- package/dist/components/WalletDeposit/screens/AmountInputScreen.js +0 -18
- package/dist/components/WalletDeposit/screens/AppsTableScreen.d.ts +0 -8
- package/dist/components/WalletDeposit/screens/AppsTableScreen.js +0 -28
- package/dist/components/WalletDeposit/screens/ChainSelectionScreen.d.ts +0 -5
- package/dist/components/WalletDeposit/screens/ChainSelectionScreen.js +0 -8
- package/dist/components/WalletDeposit/screens/InitialScreen.d.ts +0 -9
- package/dist/components/WalletDeposit/screens/InitialScreen.js +0 -18
- package/dist/components/WalletDeposit/screens/SigningScreen.d.ts +0 -6
- package/dist/components/WalletDeposit/screens/SigningScreen.js +0 -6
- package/dist/components/WalletDeposit/screens/SuccessScreen.d.ts +0 -12
- package/dist/components/WalletDeposit/screens/SuccessScreen.js +0 -7
- package/dist/components/WalletDeposit/types.d.ts +0 -48
- package/dist/components/WalletDeposit/types.js +0 -1
- package/dist/config/dynamic.d.ts +0 -20
- package/dist/config/dynamic.js +0 -47
- package/dist/hooks/useSolanaSession.d.ts +0 -17
- package/dist/hooks/useSolanaSession.js +0 -180
- package/dist/utils/lazyLoad.d.ts +0 -3
- package/dist/utils/lazyLoad.js +0 -9
- package/dist/utils/react-shim.d.ts +0 -2
- package/dist/utils/react-shim.js +0 -6
- package/dist/utils/solana-session.d.ts +0 -84
- package/dist/utils/solana-session.js +0 -230
|
@@ -4,3 +4,4 @@ export function WaitingMessage(_a) {
|
|
|
4
4
|
var message = _a.message;
|
|
5
5
|
return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-6", children: [_jsx(LoadingSquares, {}), _jsxs("div", { className: "space-y-2 text-center w-[300px]", children: [_jsxs("h3", { className: "text-xl text-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Waiting for transaction" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.title })] }), _jsxs("div", { className: "text-sm text-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Please sign the transaction in your wallet" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.subtitle })] })] })] }));
|
|
6
6
|
}
|
|
7
|
+
//# sourceMappingURL=WaitingMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaitingMessage.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/WaitingMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,MAAM,UAAU,cAAc,CAAC,EAAgC;QAA9B,OAAO,aAAA;IACtC,OAAO,CACL,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,cAAc,KAAG,EAClB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAI,SAAS,EAAC,oIAAoI,aAChJ,eAAM,SAAS,EAAC,gCAAgC,iBAAa,MAAM,wCAE5D,EACP,cAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,GAC7B,IACH,EACL,eAAK,SAAS,EAAC,gGAAgG,aAC7G,eAAM,SAAS,EAAC,gCAAgC,iBAAa,MAAM,2DAE5D,EACP,cAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,GAChC,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { WaitingMessageState } from '../types';\nimport { LoadingSquares } from './LoadingSquares';\n\ninterface WaitingMessageProps {\n message: WaitingMessageState;\n}\n\nexport function WaitingMessage({ message }: WaitingMessageProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n <LoadingSquares />\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold\">\n <span className=\"opacity-0 absolute select-none\" aria-hidden=\"true\">\n Waiting for transaction\n </span>\n <div className=\"absolute min-w-[280px]\">\n {message.visible && message.title}\n </div>\n </h3>\n <div className=\"text-sm text-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative\">\n <span className=\"opacity-0 absolute select-none\" aria-hidden=\"true\">\n Please sign the transaction in your wallet\n </span>\n <div className=\"absolute min-w-[280px]\">\n {message.visible && message.subtitle}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './LoadingSquares';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowState, StateTransition } from './types';\n\nexport const ANIMATION_EASE = 'cubic-bezier(0.16, 1, 0.3, 1)';\nexport const TYPING_INTERVAL = 50;\nexport const ANIMATION_DURATION = 3000;\n\nexport const MIN_DEPOSIT = 10000;\nexport const MAX_DEPOSIT = 10000;\n\nexport const INITIAL_APPS = Array.from({ length: 20 }, (_, i) => ({\n name: `App${i + 1}`,\n color: '#ff2b1f',\n progress: 0,\n}));\n\n/**\n * Available chains for deposit\n */\nexport const AVAILABLE_CHAINS = [\n {\n id: 'ethereum',\n name: 'Ethereum',\n logo: 'ethereum-logo.svg',\n },\n {\n id: 'solana',\n name: 'Solana',\n logo: 'solana-logo.svg',\n },\n];\n\nexport const CHAINS = [\n {\n id: 'ethereum',\n name: 'Ethereum',\n logo: '/images/chains/ethereum.svg',\n },\n {\n id: 'polygon',\n name: 'Polygon',\n logo: '/images/chains/polygon.svg',\n },\n {\n id: 'arbitrum',\n name: 'Arbitrum',\n logo: '/images/chains/arbitrum.svg',\n },\n {\n id: 'optimism',\n name: 'Optimism',\n logo: '/images/chains/optimism.svg',\n },\n];\n\n/**\n * State machine transitions\n * Defines all possible transitions between states and their conditions\n */\nexport const STATE_TRANSITIONS: StateTransition[] = [\n // From IDLE state\n {\n from: FlowState.IDLE,\n to: FlowState.CONNECTING_WALLET,\n condition: (context) => !context.walletType, // Only if wallet is not connected\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.ERROR,\n // When wallet connection fails\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.CHAIN_SELECTION,\n condition: (context) => context.walletType === 'solana', // If Solana wallet and no Nord account\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.AUTH_LOADING,\n condition: (context) =>\n context.walletType === 'solana' && context.hasNordAccount, // If Solana wallet and no Nord account\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.FINAL_SUCCESS,\n condition: (context) =>\n context.walletType === 'solana' &&\n context.hasNordAccount &&\n context.hasActiveSession, // If Solana wallet and no Nord account\n },\n\n // From ETH_TO_SOL_AUTH state\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.CHAIN_SELECTION,\n condition: (context) => !context.hasNordAccount, // After ETH auth, if no Nord account\n },\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.AUTH_LOADING,\n condition: (context) => context.hasNordAccount && !context.hasActiveSession,\n // After ETH auth, if has Nord account but no active session\n },\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.FINAL_SUCCESS,\n condition: (context) => context.hasNordAccount && context.hasActiveSession,\n // After ETH auth, if has Nord account and active session\n },\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.ERROR,\n // If ETH to SOL auth fails\n },\n\n // From CHAIN_SELECTION state\n {\n from: FlowState.CHAIN_SELECTION,\n to: FlowState.AMOUNT_INPUT,\n // After chain selection\n },\n\n // From AMOUNT_INPUT state\n {\n from: FlowState.AMOUNT_INPUT,\n to: FlowState.DEPOSIT_PROGRESS,\n // After amount input\n },\n {\n from: FlowState.AMOUNT_INPUT,\n to: FlowState.CHAIN_SELECTION,\n // If user goes back to chain selection\n },\n\n // From DEPOSIT_PROGRESS state\n {\n from: FlowState.DEPOSIT_PROGRESS,\n to: FlowState.DEPOSIT_SUCCESS,\n // When deposit is successful\n },\n {\n from: FlowState.DEPOSIT_PROGRESS,\n to: FlowState.ERROR,\n // When deposit fails\n },\n {\n from: FlowState.DEPOSIT_PROGRESS,\n to: FlowState.AMOUNT_INPUT,\n // When deposit fails but we want to allow retry\n },\n\n // From DEPOSIT_SUCCESS state\n {\n from: FlowState.DEPOSIT_SUCCESS,\n to: FlowState.AUTH_LOADING,\n condition: (context) => !context.hasActiveSession, // If no active Nord session\n },\n {\n from: FlowState.DEPOSIT_SUCCESS,\n to: FlowState.FINAL_SUCCESS,\n condition: (context) => context.hasActiveSession, // If active Nord session exists\n },\n {\n from: FlowState.AUTH_LOADING,\n to: FlowState.ERROR,\n // When Nord auth fails to start\n },\n\n // From AUTH_LOADING state\n {\n from: FlowState.AUTH_LOADING,\n to: FlowState.FINAL_SUCCESS,\n // When auth is successful\n },\n {\n from: FlowState.AUTH_LOADING,\n to: FlowState.ERROR,\n // When auth fails\n },\n\n // From ERROR state\n {\n from: FlowState.ERROR,\n to: FlowState.IDLE,\n // When restarting after error\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n FlowState.DEPOSIT_SUCCESS,\n FlowState.AUTH_LOADING,\n ],\n to: FlowState.IDLE,\n // For recovery after interruption\n },\n];\n\n/**\n * Local storage key for persisting flow state\n */\nexport const FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';\n\n/**\n * Time in milliseconds after which a persisted state is considered stale\n */\nexport const STATE_EXPIRY_TIME = 30 * 60 * 1000; // 30 minutes\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hoc/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './withImageFallback';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withImageFallback.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hoc/withImageFallback.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,gBAAkC;IAElC,2DAA2D;IAC3D,IAAM,iBAAiB,GAAgB,UAAC,KAAK;QAC3C,iDAAiD;QACjD,IAAM,WAAW,GAAG,UAAC,IAAqB;YACxC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAM,OAAO,GAAG,IAA0B,CAAC;YAE3C,4DAA4D;YAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,IAAM,KAAkD,OAAO,CAAC,KAAK,EAA7D,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA7C,8CAA+C,CAAgB,CAAC;gBAEtE,OAAO,CACL,KAAC,iBAAiB,aAChB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,IAAI,OAAO,EACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,IAChB,IAAI,EACR,CACH,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EACtB,WAAW,CACZ,CAAC;gBAEF,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,eAAO,OAAO,CAAC,KAAK,GAAI,QAAQ,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,sDAAsD;QACtD,IAAM,iBAAiB,GAAG,KAAC,gBAAgB,eAAK,KAAK,EAAI,CAAC;QAC1D,OAAO,WAAW,CAAC,iBAAiB,CAAuB,CAAC;IAC9D,CAAC,CAAC;IAEF,iCAAiC;IACjC,IAAM,oBAAoB,GACxB,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,iBAAiB,CAAC,WAAW,GAAG,4BAAqB,oBAAoB,MAAG,CAAC;IAE7E,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import React, { ComponentType, forwardRef } from 'react';\nimport { ImageWithFallback } from '../components';\n\n/**\n * A Higher-Order Component (HOC) that adds image fallback functionality to a component\n * @param WrappedComponent The component to wrap\n * @returns A new component with image fallback functionality\n */\nexport function withImageFallback<P extends object>(\n WrappedComponent: ComponentType<P>\n): React.FC<P> {\n // Create a new component that wraps the original component\n const WithImageFallback: React.FC<P> = (props) => {\n // Function to recursively process React elements\n const processNode = (node: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const element = node as React.ReactElement;\n\n // If it's an img element, replace it with ImageWithFallback\n if (element.type === 'img') {\n const { src, alt, width, height, className, ...rest } = element.props;\n\n return (\n <ImageWithFallback\n src={src}\n alt={alt || 'Image'}\n width={width}\n height={height}\n className={className}\n {...rest}\n />\n );\n }\n\n // If it has children, process them recursively\n if (element.props && element.props.children) {\n const children = React.Children.map(\n element.props.children,\n processNode\n );\n\n return React.cloneElement(element, { ...element.props }, children);\n }\n\n return element;\n };\n\n // Render the wrapped component and process its output\n const renderedComponent = <WrappedComponent {...props} />;\n return processNode(renderedComponent) as React.ReactElement;\n };\n\n // Set display name for debugging\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n WithImageFallback.displayName = `withImageFallback(${wrappedComponentName})`;\n\n return WithImageFallback;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './useDepositFlow';\nexport * from './useNordWalletConnect';\nexport * from './useInterruptHandler';\nexport * from './useFlowState';\nexport * from './useNordInstance';\n"]}
|
|
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
37
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
38
38
|
import { FlowState } from '../types';
|
|
39
39
|
import { AVAILABLE_CHAINS } from '../constants';
|
|
40
40
|
import { getExplorerUrl, } from '../../../Logic/transactionManager';
|
|
@@ -60,30 +60,33 @@ export var useDepositFlow = function (options) {
|
|
|
60
60
|
var _e = useState(false), isDepositing = _e[0], setIsDepositing = _e[1];
|
|
61
61
|
var _f = useState(context.transactionId), transactionId = _f[0], setTransactionId = _f[1];
|
|
62
62
|
var _g = useState(null), transactionResult = _g[0], setTransactionResult = _g[1];
|
|
63
|
+
// Use refs to track previous values
|
|
64
|
+
var prevContextRef = useRef(context);
|
|
63
65
|
// Use the nordUser from context, falling back to the one from useNordInstance
|
|
64
66
|
var currentNordUser = nordUser || instanceNordUser;
|
|
67
|
+
// Handle transaction ID changes
|
|
65
68
|
useEffect(function () {
|
|
66
|
-
if (txId)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
if (!txId)
|
|
70
|
+
return;
|
|
71
|
+
// Transition to the appropriate screen based on whether user has an active session
|
|
72
|
+
if (context.hasActiveSession) {
|
|
73
|
+
// If user has an active session, go directly to FINAL_SUCCESS
|
|
74
|
+
transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// Check if there's a sessionId stored in localStorage
|
|
78
|
+
var sessionIdKey = "n1_sessionId_".concat(address);
|
|
79
|
+
var storedSessionId = localStorage.getItem(sessionIdKey);
|
|
80
|
+
if (storedSessionId !== null) {
|
|
81
|
+
// If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
|
|
70
82
|
transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
|
|
71
83
|
}
|
|
72
84
|
else {
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
var storedSessionId = localStorage.getItem(sessionIdKey);
|
|
76
|
-
if (storedSessionId !== null) {
|
|
77
|
-
// If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
|
|
78
|
-
transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first
|
|
82
|
-
transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });
|
|
83
|
-
}
|
|
85
|
+
// If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first
|
|
86
|
+
transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });
|
|
84
87
|
}
|
|
85
|
-
setTxId(null);
|
|
86
88
|
}
|
|
89
|
+
setTxId(null);
|
|
87
90
|
}, [txId, transition, context.hasActiveSession, address]);
|
|
88
91
|
/**
|
|
89
92
|
* Select a chain for deposit
|
|
@@ -125,7 +128,7 @@ export var useDepositFlow = function (options) {
|
|
|
125
128
|
case 0:
|
|
126
129
|
if (isDepositing)
|
|
127
130
|
return [2 /*return*/];
|
|
128
|
-
logger.debug('
|
|
131
|
+
logger.debug('Starting deposit process');
|
|
129
132
|
// Validate input
|
|
130
133
|
if (!selectedChain) {
|
|
131
134
|
handleError(new Error('No chain selected'));
|
|
@@ -203,7 +206,7 @@ export var useDepositFlow = function (options) {
|
|
|
203
206
|
// Update state with transaction result
|
|
204
207
|
setTransactionId(txId_1);
|
|
205
208
|
setTransactionResult(result);
|
|
206
|
-
logger.debug('
|
|
209
|
+
logger.debug('Transaction completed successfully');
|
|
207
210
|
setTxId(txId_1);
|
|
208
211
|
return [2 /*return*/]; // Exit the function early since we've handled everything
|
|
209
212
|
}
|
|
@@ -297,23 +300,20 @@ export var useDepositFlow = function (options) {
|
|
|
297
300
|
* Update state based on context changes
|
|
298
301
|
*/
|
|
299
302
|
useEffect(function () {
|
|
300
|
-
|
|
303
|
+
var prevContext = prevContextRef.current;
|
|
304
|
+
// Only update state if the relevant context values have actually changed
|
|
305
|
+
if (context.selectedChain !== prevContext.selectedChain) {
|
|
301
306
|
setSelectedChain(context.selectedChain);
|
|
302
307
|
}
|
|
303
|
-
if (context.amount !== amount) {
|
|
308
|
+
if (context.amount !== prevContext.amount) {
|
|
304
309
|
setAmount(context.amount);
|
|
305
310
|
}
|
|
306
|
-
if (context.transactionId !== transactionId) {
|
|
311
|
+
if (context.transactionId !== prevContext.transactionId) {
|
|
307
312
|
setTransactionId(context.transactionId);
|
|
308
313
|
}
|
|
309
|
-
|
|
310
|
-
context
|
|
311
|
-
|
|
312
|
-
context.transactionId,
|
|
313
|
-
selectedChain,
|
|
314
|
-
amount,
|
|
315
|
-
transactionId,
|
|
316
|
-
]);
|
|
314
|
+
// Update the ref to the current context
|
|
315
|
+
prevContextRef.current = context;
|
|
316
|
+
}, [context]);
|
|
317
317
|
/**
|
|
318
318
|
* Auto-start deposit if in deposit progress state
|
|
319
319
|
*/
|
|
@@ -384,3 +384,4 @@ export var useDepositFlow = function (options) {
|
|
|
384
384
|
getTransactionDetails: getTransactionDetails,
|
|
385
385
|
};
|
|
386
386
|
};
|
|
387
|
+
//# sourceMappingURL=useDepositFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositFlow.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useDepositFlow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAe,SAAS,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,cAAc,GAEf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,OAwB9B;IACO,IAAA,KAAkB,QAAQ,CAAgB,IAAI,CAAC,EAA9C,IAAI,QAAA,EAAE,OAAO,QAAiC,CAAC;IAC9C,IAAA,KAAK,GAAuC,OAAO,MAA9C,EAAE,OAAO,GAA8B,OAAO,QAArC,EAAE,UAAU,GAAkB,OAAO,WAAzB,EAAE,WAAW,GAAK,OAAO,YAAZ,CAAa;IACtD,IAAA,KAMF,kBAAkB,EAAE,EALtB,OAAO,aAAA,EACP,IAAI,UAAA,EACJ,wBAAwB,8BAAA,EACxB,yBAAyB,+BAAA,EACzB,QAAQ,cACc,CAAC;IACjB,IAAA,WAAW,GAAK,0BAA0B,EAAE,YAAjC,CAAkC;IAC7C,IAAU,gBAAgB,GAAK,eAAe,EAAE,SAAtB,CAAuB;IAEnD,IAAA,KAAoC,QAAQ,CAChD,OAAO,CAAC,aAAa,CACtB,EAFM,aAAa,QAAA,EAAE,gBAAgB,QAErC,CAAC;IACI,IAAA,KAAsB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAA7C,MAAM,QAAA,EAAE,SAAS,QAA4B,CAAC;IAC/C,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAoC,QAAQ,CAChD,OAAO,CAAC,aAAa,CACtB,EAFM,aAAa,QAAA,EAAE,gBAAgB,QAErC,CAAC;IACI,IAAA,KACJ,QAAQ,CAA2B,IAAI,CAAC,EADnC,iBAAiB,QAAA,EAAE,oBAAoB,QACJ,CAAC;IAE3C,oCAAoC;IACpC,IAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvC,8EAA8E;IAC9E,IAAM,eAAe,GAAG,QAAQ,IAAI,gBAAgB,CAAC;IAErD,gCAAgC;IAChC,SAAS,CAAC;QACR,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,mFAAmF;QACnF,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAM,YAAY,GAAG,uBAAgB,OAAO,CAAE,CAAC;YAC/C,IAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,wFAAwF;gBACxF,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,uGAAuG;gBACvG,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1D;;OAEG;IACH,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,OAAe;QACd,IAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,EAApB,CAAoB,CAAC,CAAC;QAE1E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,KAAK,CAAC,yBAAkB,OAAO,CAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC,EACD,CAAC,UAAU,EAAE,WAAW,CAAC,CAC1B,CAAC;IAEF;;OAEG;IACH,IAAM,YAAY,GAAG,WAAW,CAC9B,UAAC,SAAiB;QAChB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,kEAAkE;QAClE,wFAAwF;QACxF,IAAI,KAAK,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;YACrC,6EAA6E;YAC7E,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EACD,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAC3C,CAAC;IAEF;;OAEG;IACH,IAAM,YAAY,GAAG,WAAW,CAAC;;;;;;oBAC/B,IAAI,YAAY;wBAAE,sBAAO;oBAEzB,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBACzC,iBAAiB;oBACjB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,WAAW,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBAC5C,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvC,WAAW,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,WAAW,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBAClD,sBAAO;oBACT,CAAC;oBAED,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;;;;oBAI/B,kBAAkB,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,aAAa,CAAC,GAAG,CAAC;oBAGxD,SAAO,EAAE,CAAC;yBAEV,CAAA,eAAe,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA,EAAjD,yBAAiD;;;;oBAG3C,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAAC,CAAC;oBACpE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;;;;yBAMK,CAAA,OAAO,eAAe,CAAC,UAAU,KAAK,UAAU,CAAA,EAAhD,yBAAgD;oBAC3C,qBAAM,eAAe,CAAC,UAAU,CACrC,UAAU,CAAC,MAAM,CAAC,EAClB,SAAS,CAAC,OAAO,CAClB,EAAA;;oBAHD,MAAI,GAAG,SAGN,CAAC;oBAEE,kBAAkB,GAAG,KAAK,CAAC;oBACtB,CAAC,GAAG,CAAC;;;yBAAE,CAAA,CAAC,GAAG,EAAE,CAAA;oBACL,qBAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC,OAAO,CAAC,CAAA,EAAA;;oBAA3C,MAAM,GAAG,SAAkC;oBACjD,IAAI,MAAM,EAAE,CAAC;wBACX,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,wBAAM;oBACR,CAAC;oBACD,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAzB,CAAyB,CAAC,EAAA;;oBAAzD,SAAyD,CAAC;;;oBANpC,CAAC,EAAE,CAAA;;;oBAS3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACxD,CAAC;oBAED,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAI,CAAC,CAAC;oBAEvD,qCAAqC;oBACrC,IAAI,aAAa,EAAE,CAAC;wBAEZ,MAAM,GAAsB;4BAChC,OAAO,EAAE,IAAI;4BACb,aAAa,EAAE,MAAI;4BACnB,MAAM,QAAA;4BACN,WAAW,EAAE,MAAM,EAAE,0BAA0B;4BAC/C,WAAW,EAAE,OAAO,IAAI,aAAa;4BACrC,SAAS,EACP,kBAAkB,KAAK,aAAa,CAAC,IAAI;gCACvC,CAAC,CAAC,kBAAkB;gCACpB,CAAC,CAAC,aAAa;4BACnB,WAAW,EACT,CAAA,MAAA,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,aAAa,EAA1B,CAA0B,CAAC,0CACxD,IAAI,KAAI,aAAa;4BAC3B,MAAM,EAAE,WAAW;4BACnB,WAAW,EAAE,cAAc,CAAC,MAAI,EAAE,aAAa,CAAC;yBACjD,CAAC;wBAEF,uCAAuC;wBACvC,gBAAgB,CAAC,MAAI,CAAC,CAAC;wBACvB,oBAAoB,CAAC,MAAM,CAAC,CAAC;wBAE7B,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;wBACnD,OAAO,CAAC,MAAI,CAAC,CAAC;wBACd,sBAAO,CAAC,yDAAyD;oBACnE,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACnD,CAAC;;;gBAED,kFAAkF;gBAClF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;;;;oBAGrD,MAAM,CAAC,IAAI,CACT,8DAA8D,EAC9D,cAAY,CACb,CAAC;oBACF,eAAe,CAAC,KAAK,CAAC,CAAC;oBAGjB,YAAY,GAAG,cAAY,YAAY,KAAK;wBAChD,CAAC,CAAC,cAAY,CAAC,OAAO;wBACtB,CAAC,CAAC,2BAA2B,CAAC;oBAEhC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE;wBACjC,YAAY,EAAE,YAAY;qBAC3B,CAAC,CAAC;oBACH,sBAAO,CAAC,aAAa;;;;oBAGvB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAK,CAAC,CAAC;oBACxD,MAAM,OAAK,CAAC;;;oBAGd,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;wBACxC,OAAO,EAAE,CAAC,CAAC,IAAI;wBACf,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;wBACnD,UAAU,EAAE,CAAC,CAAC,OAAO;wBACrB,eAAe,EAAE,CAAC,CAAC,wBAAwB;wBAC3C,gBAAgB,EAAE,CAAC,CAAC,yBAAyB;qBAC9C,CAAC,CAAC;oBAEH,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;;;;oBAGvE,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvB,WAAW,CACT,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CACxE,CAAC;;;;;SAEL,EAAE;QACD,YAAY;QACZ,aAAa;QACb,MAAM;QACN,OAAO;QACP,WAAW;QACX,UAAU;QACV,WAAW;QACX,IAAI;QACJ,wBAAwB;QACxB,yBAAyB;QACzB,eAAe;KAChB,CAAC,CAAC;IAEH;;OAEG;IACH,IAAM,eAAe,GAAG,WAAW,CAAC;QAClC,kEAAkE;QAClE,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAM,YAAY,GAAG,uBAAgB,OAAO,CAAE,CAAC;YAC/C,IAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,wFAAwF;gBACxF,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,2FAA2F;gBAC3F,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,IAAM,sBAAsB,GAAG,WAAW,CAAC;QACzC,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC;QACR,IAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAE3C,yEAAyE;QACzE,IAAI,OAAO,CAAC,aAAa,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACxD,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACxD,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,wCAAwC;QACxC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC;QACR,IACE,KAAK,KAAK,SAAS,CAAC,gBAAgB;YACpC,CAAC,YAAY;YACb,CAAC,aAAa,EACd,CAAC;YACD,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD;;OAEG;IACH,IAAM,qBAAqB,GAAG,WAAW,CAAC;;QACxC,sCAAsC;QACtC,IAAM,kBAAkB,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,aAAa,CAAC,GAAG,CAAC;QAE5D,+CAA+C;QAC/C,IAAM,WAAW,GACf,kBAAkB,KAAK,aAAa,CAAC,IAAI;YACvC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,aAAa,CAAC;QAEpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,mEAAmE;YACnE,OAAO;gBACL,MAAM,EAAE,MAAM,IAAI,GAAG;gBACrB,EAAE,EAAE,aAAa,IAAI,eAAe;gBACpC,IAAI,EAAE,OAAO,IAAI,aAAa;gBAC9B,EAAE,EAAE,WAAW;gBACf,OAAO,EAAE,aAAa;oBACpB,CAAC,CAAC,CAAA,MAAA,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,aAAa,EAA1B,CAA0B,CAAC,0CACxD,IAAI,KAAI,aAAa;oBAC3B,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,YAAY;gBACpB,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,OAAO;YACL,MAAM,EAAE,UAAG,iBAAiB,CAAC,MAAM,cAAI,iBAAiB,CAAC,WAAW,CAAE;YACtE,EAAE,EAAE,iBAAiB,CAAC,aAAa;YACnC,IAAI,EAAE,iBAAiB,CAAC,WAAW;YACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS;YAC/B,OAAO,EAAE,iBAAiB,CAAC,WAAW;YACtC,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,WAAW,EACT,iBAAiB,CAAC,WAAW;gBAC7B,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,IAAI,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC,EAAE;QACD,iBAAiB;QACjB,MAAM;QACN,aAAa;QACb,OAAO;QACP,WAAW;QACX,aAAa;KACd,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,eAAA;QACb,gBAAgB,kBAAA;QAChB,MAAM,QAAA;QACN,SAAS,WAAA;QACT,YAAY,cAAA;QACZ,aAAa,eAAA;QACb,iBAAiB,mBAAA;QACjB,WAAW,aAAA;QACX,YAAY,cAAA;QACZ,YAAY,cAAA;QACZ,eAAe,iBAAA;QACf,sBAAsB,wBAAA;QACtB,qBAAqB,uBAAA;KACtB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { FlowContext, FlowState } from '../types';\nimport { AVAILABLE_CHAINS } from '../constants';\nimport {\n getExplorerUrl,\n TransactionResult,\n} from '../../../Logic/transactionManager';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { isNordConfigured } from '../utils/nordUtils';\nimport { useNordInstance } from './useNordInstance';\nimport { logger } from '../../../utils/logger';\n\n/**\n * Hook for handling the deposit flow\n *\n * @param options Configuration options\n * @returns Deposit flow methods and state\n */\nexport const useDepositFlow = (options: {\n /**\n * Flow state\n */\n state: FlowState;\n /**\n * Flow context\n */\n context: FlowContext;\n /**\n * Transition to a new state\n */\n transition: (\n newState: FlowState,\n contextUpdates?: Partial<FlowContext>\n ) => boolean;\n /**\n * Handle errors\n */\n handleError: (error: Error) => void;\n /**\n * Update context\n */\n updateContext?: (contextUpdates: Partial<FlowContext>) => void;\n}) => {\n const [txId, setTxId] = useState<string | null>(null);\n const { state, context, transition, handleError } = options;\n const {\n address,\n nord,\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n nordUser,\n } = useN1WalletContext();\n const { sessionMode } = useN1WalletInternalContext();\n const { nordUser: instanceNordUser } = useNordInstance();\n\n const [selectedChain, setSelectedChain] = useState<string | null>(\n context.selectedChain\n );\n const [amount, setAmount] = useState(context.amount);\n const [isDepositing, setIsDepositing] = useState(false);\n const [transactionId, setTransactionId] = useState<string | null>(\n context.transactionId\n );\n const [transactionResult, setTransactionResult] =\n useState<TransactionResult | null>(null);\n\n // Use refs to track previous values\n const prevContextRef = useRef(context);\n \n // Use the nordUser from context, falling back to the one from useNordInstance\n const currentNordUser = nordUser || instanceNordUser;\n\n // Handle transaction ID changes\n useEffect(() => {\n if (!txId) return;\n \n // Transition to the appropriate screen based on whether user has an active session\n if (context.hasActiveSession) {\n // If user has an active session, go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS, { transactionId: txId });\n } else {\n // Check if there's a sessionId stored in localStorage\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n\n if (storedSessionId !== null) {\n // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS, { transactionId: txId });\n } else {\n // If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first\n transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });\n }\n }\n setTxId(null);\n }, [txId, transition, context.hasActiveSession, address]);\n\n /**\n * Select a chain for deposit\n */\n const selectChain = useCallback(\n (chainId: string) => {\n const validChain = AVAILABLE_CHAINS.find((chain) => chain.id === chainId);\n\n if (!validChain) {\n handleError(new Error(`Invalid chain: ${chainId}`));\n return;\n }\n\n setSelectedChain(chainId);\n transition(FlowState.AMOUNT_INPUT, { selectedChain: chainId });\n },\n [transition, handleError]\n );\n\n /**\n * Update amount for deposit\n */\n const updateAmount = useCallback(\n (newAmount: string) => {\n setAmount(newAmount);\n // Only update the context without transitioning to the same state\n // This prevents the \"Transition from AMOUNT_INPUT to AMOUNT_INPUT is not allowed\" error\n if (state === FlowState.AMOUNT_INPUT) {\n // Use updateContext function if available to update without state transition\n if (options.updateContext) {\n options.updateContext({ amount: newAmount });\n }\n } else {\n transition(state, { amount: newAmount });\n }\n },\n [state, transition, options.updateContext]\n );\n\n /**\n * Start deposit process\n */\n const startDeposit = useCallback(async () => {\n if (isDepositing) return;\n\n logger.debug('Starting deposit process');\n // Validate input\n if (!selectedChain) {\n handleError(new Error('No chain selected'));\n return;\n }\n\n if (!amount || parseFloat(amount) <= 0) {\n handleError(new Error('Invalid amount'));\n return;\n }\n\n if (!address) {\n handleError(new Error('No wallet address found'));\n return;\n }\n\n setIsDepositing(true);\n transition(FlowState.DEPOSIT_PROGRESS);\n\n try {\n // Ensure we have a valid session mode\n const currentSessionMode = sessionMode ?? N1SessionMode.NTS;\n\n // Use Nord-TS if available\n let txId = '';\n\n if (currentNordUser && nord && isNordConfigured(nord)) {\n try {\n // Find the USDC token\n const usdcToken = nord.tokens.find((t: any) => t.symbol === 'USDC');\n if (!usdcToken) {\n throw new Error('USDC token not found');\n }\n\n // Attempt to perform the deposit using Nord-TS\n // Since we don't know the exact API, we'll use a try-catch approach\n try {\n // Try depositSpl method if it exists\n if (typeof currentNordUser.depositSpl === 'function') {\n txId = await currentNordUser.depositSpl(\n parseFloat(amount),\n usdcToken.tokenId\n );\n\n let accountInitialized = false;\n for (let i = 0; i < 70; i++) {\n const exists = await nord?.accountExists(address);\n if (exists) {\n accountInitialized = true;\n break;\n }\n await new Promise((resolve) => setTimeout(resolve, 5000));\n }\n\n if (!accountInitialized) {\n throw new Error('Account failed to intialize on N1.');\n }\n\n logger.debug('Deposit successful using Nord-TS', txId);\n\n // Make sure we have a valid chain ID\n if (selectedChain) {\n // Create transaction result object immediately after successful deposit\n const result: TransactionResult = {\n success: true,\n transactionId: txId,\n amount,\n tokenSymbol: 'USDC', // Default to USDC for now\n fromAddress: address || 'Your Wallet',\n toAddress:\n currentSessionMode === N1SessionMode.Nord\n ? 'Exchange Account'\n : 'NTS Account',\n networkName:\n AVAILABLE_CHAINS.find((chain) => chain.id === selectedChain)\n ?.name || selectedChain,\n status: 'Completed',\n explorerUrl: getExplorerUrl(txId, selectedChain),\n };\n\n // Update state with transaction result\n setTransactionId(txId);\n setTransactionResult(result);\n\n logger.debug('Transaction completed successfully');\n setTxId(txId);\n return; // Exit the function early since we've handled everything\n } else {\n throw new Error('No chain selected for deposit');\n }\n } else {\n // If depositSpl doesn't exist, throw an error to fall back to mock implementation\n throw new Error('depositSpl method not available');\n }\n } catch (depositError) {\n logger.warn(\n 'Error using depositSpl, falling back to mock implementation:',\n depositError\n );\n setIsDepositing(false);\n \n // Transition back to AMOUNT_INPUT with the error message\n const errorMessage = depositError instanceof Error \n ? depositError.message \n : 'Failed to process deposit';\n \n transition(FlowState.AMOUNT_INPUT, { \n depositError: errorMessage \n });\n return; // Exit early\n }\n } catch (error) {\n logger.error('Error using Nord-TS for deposit:', error);\n throw error;\n }\n } else {\n logger.debug('Nord configuration issue:', {\n hasNord: !!nord,\n isConfigured: nord ? isNordConfigured(nord) : false,\n hasAddress: !!address,\n hasWalletSignFn: !!signMessageWithWalletKey,\n hasSessionSignFn: !!signMessageWithSessionKey,\n });\n\n throw new Error('Nord is not configured or user is not initialized');\n }\n } catch (error) {\n setIsDepositing(false);\n handleError(\n error instanceof Error ? error : new Error('Failed to process deposit')\n );\n }\n }, [\n isDepositing,\n selectedChain,\n amount,\n address,\n sessionMode,\n transition,\n handleError,\n nord,\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n currentNordUser,\n ]);\n\n /**\n * Complete the deposit process and move to the next screen\n */\n const completeDeposit = useCallback(() => {\n // Check if user has an active session to determine the next state\n if (context.hasActiveSession) {\n // If user has an active session, go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS);\n } else {\n // Check if there's a sessionId stored in localStorage\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n\n if (storedSessionId !== null) {\n // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS);\n } else {\n // If user doesn't have an active session and no sessionId in localStorage, go to NORD_AUTH\n transition(FlowState.AUTH_LOADING);\n }\n }\n }, [context.hasActiveSession, transition, address]);\n\n /**\n * Go back to chain selection\n */\n const goBackToChainSelection = useCallback(() => {\n setAmount('');\n transition(FlowState.CHAIN_SELECTION, { amount: '' });\n }, [transition]);\n\n /**\n * Update state based on context changes\n */\n useEffect(() => {\n const prevContext = prevContextRef.current;\n \n // Only update state if the relevant context values have actually changed\n if (context.selectedChain !== prevContext.selectedChain) {\n setSelectedChain(context.selectedChain);\n }\n\n if (context.amount !== prevContext.amount) {\n setAmount(context.amount);\n }\n\n if (context.transactionId !== prevContext.transactionId) {\n setTransactionId(context.transactionId);\n }\n \n // Update the ref to the current context\n prevContextRef.current = context;\n }, [context]);\n\n /**\n * Auto-start deposit if in deposit progress state\n */\n useEffect(() => {\n if (\n state === FlowState.DEPOSIT_PROGRESS &&\n !isDepositing &&\n !transactionId\n ) {\n startDeposit();\n }\n }, [state, isDepositing, transactionId, startDeposit]);\n\n /**\n * Get transaction details for display\n */\n const getTransactionDetails = useCallback(() => {\n // Ensure we have a valid session mode\n const currentSessionMode = sessionMode ?? N1SessionMode.NTS;\n\n // Determine account type based on session mode\n const accountType =\n currentSessionMode === N1SessionMode.Nord\n ? 'Exchange Account'\n : 'NTS Account';\n\n if (!transactionResult) {\n // If we don't have a transaction result yet, return default values\n return {\n amount: amount || '0',\n tx: transactionId || 'Processing...',\n from: address || 'Your Wallet',\n to: accountType,\n network: selectedChain\n ? AVAILABLE_CHAINS.find((chain) => chain.id === selectedChain)\n ?.name || selectedChain\n : 'Unknown',\n status: 'Processing',\n explorerUrl: '',\n };\n }\n\n // Return actual transaction details\n return {\n amount: `${transactionResult.amount} ${transactionResult.tokenSymbol}`,\n tx: transactionResult.transactionId,\n from: transactionResult.fromAddress,\n to: transactionResult.toAddress,\n network: transactionResult.networkName,\n status: transactionResult.status,\n explorerUrl:\n transactionResult.explorerUrl ||\n getExplorerUrl(transactionResult.transactionId, selectedChain || ''),\n };\n }, [\n transactionResult,\n amount,\n transactionId,\n address,\n sessionMode,\n selectedChain,\n ]);\n\n return {\n selectedChain,\n setSelectedChain,\n amount,\n setAmount,\n isDepositing,\n transactionId,\n transactionResult,\n selectChain,\n updateAmount,\n startDeposit,\n completeDeposit,\n goBackToChainSelection,\n getTransactionDetails,\n };\n};\n"]}
|
|
@@ -9,7 +9,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
12
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
13
13
|
import { FlowState, initialFlowContext } from '../types';
|
|
14
14
|
import { STATE_TRANSITIONS } from '../constants';
|
|
15
15
|
import { clearStoredState, loadStateFromLocalStorage, saveStateToLocalStorage, } from '../utils/persistence';
|
|
@@ -20,17 +20,20 @@ import { logger } from '../../../utils/logger';
|
|
|
20
20
|
* @returns Flow state management methods and properties
|
|
21
21
|
*/
|
|
22
22
|
export var useFlowState = function (options) {
|
|
23
|
-
var
|
|
23
|
+
var onStateChange = options.onStateChange, onError = options.onError;
|
|
24
24
|
// Flow state
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
25
|
+
var _a = useState(FlowState.IDLE), state = _a[0], setState = _a[1];
|
|
26
|
+
var _b = useState(null), prevState = _b[0], setPrevState = _b[1];
|
|
27
|
+
var _c = useState(initialFlowContext), context = _c[0], setContext = _c[1];
|
|
28
|
+
var _d = useState(false), isTransitioning = _d[0], setIsTransitioning = _d[1];
|
|
29
|
+
var _e = useState(false), isRecoveryAvailable = _e[0], setIsRecoveryAvailable = _e[1];
|
|
30
|
+
// Use refs to track previous values
|
|
31
|
+
var prevStateRef = useRef(FlowState.IDLE);
|
|
32
|
+
var prevContextRef = useRef(initialFlowContext);
|
|
30
33
|
/**
|
|
31
34
|
* Check if a transition is allowed based on current state and context
|
|
32
35
|
*/
|
|
33
|
-
var canTransition = useCallback(function (targetState,
|
|
36
|
+
var canTransition = useCallback(function (targetState, contextData) {
|
|
34
37
|
return STATE_TRANSITIONS.some(function (transition) {
|
|
35
38
|
var fromMatches = Array.isArray(transition.from)
|
|
36
39
|
? transition.from.includes(state)
|
|
@@ -39,16 +42,20 @@ export var useFlowState = function (options) {
|
|
|
39
42
|
return false;
|
|
40
43
|
}
|
|
41
44
|
if (transition.condition) {
|
|
42
|
-
return transition.condition(
|
|
45
|
+
return transition.condition(contextData);
|
|
43
46
|
}
|
|
44
47
|
return true;
|
|
45
48
|
});
|
|
46
|
-
}, [state
|
|
49
|
+
}, [state]);
|
|
47
50
|
/**
|
|
48
51
|
* Transition to a new state if allowed
|
|
49
52
|
*/
|
|
50
53
|
var transition = useCallback(function (targetState, contextUpdates) {
|
|
51
54
|
if (contextUpdates === void 0) { contextUpdates = {}; }
|
|
55
|
+
// Skip if we're already in the target state and no context updates
|
|
56
|
+
if (targetState === state && Object.keys(contextUpdates).length === 0) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
52
59
|
if (!canTransition(targetState, __assign(__assign({}, context), contextUpdates))) {
|
|
53
60
|
logger.warn("Transition from ".concat(state, " to ").concat(targetState, " is not allowed"));
|
|
54
61
|
return false;
|
|
@@ -63,23 +70,26 @@ export var useFlowState = function (options) {
|
|
|
63
70
|
});
|
|
64
71
|
// Then update state
|
|
65
72
|
setPrevState(state);
|
|
66
|
-
|
|
73
|
+
prevStateRef.current = state;
|
|
74
|
+
logger.debug("Transitioning from ".concat(state, " to ").concat(targetState));
|
|
67
75
|
setState(targetState);
|
|
68
76
|
if (onStateChange) {
|
|
69
77
|
onStateChange(targetState, state);
|
|
70
78
|
}
|
|
71
79
|
setIsTransitioning(false);
|
|
72
80
|
return true;
|
|
73
|
-
}, [canTransition, state, onStateChange]);
|
|
81
|
+
}, [canTransition, state, context, onStateChange]);
|
|
74
82
|
/**
|
|
75
83
|
* Reset flow to initial state
|
|
76
84
|
*/
|
|
77
85
|
var reset = useCallback(function () {
|
|
78
86
|
clearStoredState();
|
|
79
87
|
setContext(initialFlowContext);
|
|
88
|
+
prevContextRef.current = initialFlowContext;
|
|
80
89
|
setPrevState(null);
|
|
81
|
-
logger.debug('
|
|
90
|
+
logger.debug('Resetting flow state to IDLE');
|
|
82
91
|
setState(FlowState.IDLE);
|
|
92
|
+
prevStateRef.current = FlowState.IDLE;
|
|
83
93
|
if (onStateChange) {
|
|
84
94
|
onStateChange(FlowState.IDLE, state);
|
|
85
95
|
}
|
|
@@ -103,8 +113,10 @@ export var useFlowState = function (options) {
|
|
|
103
113
|
return false;
|
|
104
114
|
}
|
|
105
115
|
setContext(savedState.context);
|
|
116
|
+
prevContextRef.current = savedState.context;
|
|
106
117
|
setPrevState(state);
|
|
107
|
-
|
|
118
|
+
prevStateRef.current = state;
|
|
119
|
+
logger.debug("Recovering state: ".concat(savedState.state));
|
|
108
120
|
setState(savedState.state);
|
|
109
121
|
if (onStateChange) {
|
|
110
122
|
onStateChange(savedState.state, state);
|
|
@@ -115,8 +127,25 @@ export var useFlowState = function (options) {
|
|
|
115
127
|
* Update context without state transition
|
|
116
128
|
*/
|
|
117
129
|
var updateContext = useCallback(function (updates) {
|
|
130
|
+
// Skip if no actual updates
|
|
131
|
+
if (Object.keys(updates).length === 0) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
118
134
|
setContext(function (prevContext) {
|
|
135
|
+
// Check if any values are actually changing
|
|
136
|
+
var hasChanges = false;
|
|
137
|
+
// Type-safe way to check for changes
|
|
138
|
+
Object.keys(updates).forEach(function (key) {
|
|
139
|
+
if (updates[key] !== prevContext[key]) {
|
|
140
|
+
hasChanges = true;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
// If nothing is changing, return the previous context
|
|
144
|
+
if (!hasChanges) {
|
|
145
|
+
return prevContext;
|
|
146
|
+
}
|
|
119
147
|
var newContext = __assign(__assign({}, prevContext), updates);
|
|
148
|
+
prevContextRef.current = newContext;
|
|
120
149
|
saveStateToLocalStorage(state, newContext);
|
|
121
150
|
return newContext;
|
|
122
151
|
});
|
|
@@ -133,14 +162,6 @@ export var useFlowState = function (options) {
|
|
|
133
162
|
},
|
|
134
163
|
});
|
|
135
164
|
}, [state, context, updateContext]);
|
|
136
|
-
// Check for recoverable state on mount
|
|
137
|
-
useEffect(function () {
|
|
138
|
-
var hasRecoverable = loadStateFromLocalStorage() !== null;
|
|
139
|
-
setIsRecoveryAvailable(hasRecoverable);
|
|
140
|
-
if (autoRecover && hasRecoverable) {
|
|
141
|
-
recover();
|
|
142
|
-
}
|
|
143
|
-
}, [autoRecover, recover]);
|
|
144
165
|
// Register unload handler to record interruptions
|
|
145
166
|
useEffect(function () {
|
|
146
167
|
var handleBeforeUnload = function () {
|
|
@@ -165,3 +186,4 @@ export var useFlowState = function (options) {
|
|
|
165
186
|
handleError: handleError,
|
|
166
187
|
};
|
|
167
188
|
};
|
|
189
|
+
//# sourceMappingURL=useFlowState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFlowState.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useFlowState.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { FlowContext, FlowState, initialFlowContext } from '../types';\nimport { STATE_TRANSITIONS } from '../constants';\nimport {\n clearStoredState,\n loadStateFromLocalStorage,\n saveStateToLocalStorage,\n} from '../utils/persistence';\nimport { logger } from '../../../utils/logger';\n\n/**\n * Custom hook for managing the wallet connection flow state machine\n * @param options Configuration options\n * @returns Flow state management methods and properties\n */\nexport const useFlowState = (options: {\n /**\n * Whether to automatically recover saved state on initialization\n */\n autoRecover?: boolean;\n /**\n * Callback when state changes\n */\n onStateChange?: (newState: FlowState, prevState: FlowState | null) => void;\n /**\n * Callback when an error occurs\n */\n onError?: (error: Error) => void;\n}) => {\n const { onStateChange, onError } = options;\n\n // Flow state\n const [state, setState] = useState<FlowState>(FlowState.IDLE);\n const [prevState, setPrevState] = useState<FlowState | null>(null);\n const [context, setContext] = useState<FlowContext>(initialFlowContext);\n const [isTransitioning, setIsTransitioning] = useState(false);\n const [isRecoveryAvailable, setIsRecoveryAvailable] = useState(false);\n \n // Use refs to track previous values\n const prevStateRef = useRef<FlowState>(FlowState.IDLE);\n const prevContextRef = useRef<FlowContext>(initialFlowContext);\n\n /**\n * Check if a transition is allowed based on current state and context\n */\n const canTransition = useCallback(\n (targetState: FlowState, contextData: FlowContext): boolean => {\n return STATE_TRANSITIONS.some((transition) => {\n const fromMatches = Array.isArray(transition.from)\n ? transition.from.includes(state)\n : transition.from === state;\n\n if (!fromMatches || transition.to !== targetState) {\n return false;\n }\n\n if (transition.condition) {\n return transition.condition(contextData);\n }\n\n return true;\n });\n },\n [state]\n );\n\n /**\n * Transition to a new state if allowed\n */\n const transition = useCallback(\n (\n targetState: FlowState,\n contextUpdates: Partial<FlowContext> = {}\n ): boolean => {\n // Skip if we're already in the target state and no context updates\n if (targetState === state && Object.keys(contextUpdates).length === 0) {\n return true;\n }\n \n if (!canTransition(targetState, { ...context, ...contextUpdates })) {\n logger.warn(\n `Transition from ${state} to ${targetState} is not allowed`\n );\n return false;\n }\n\n setIsTransitioning(true);\n\n // Update context first\n setContext((prevContext) => {\n const newContext = { ...prevContext, ...contextUpdates };\n\n // Save new state and context to localStorage for recovery\n saveStateToLocalStorage(targetState, newContext);\n\n return newContext;\n });\n\n // Then update state\n setPrevState(state);\n prevStateRef.current = state;\n logger.debug(`Transitioning from ${state} to ${targetState}`);\n setState(targetState);\n\n if (onStateChange) {\n onStateChange(targetState, state);\n }\n\n setIsTransitioning(false);\n return true;\n },\n [canTransition, state, context, onStateChange]\n );\n\n /**\n * Reset flow to initial state\n */\n const reset = useCallback(() => {\n clearStoredState();\n setContext(initialFlowContext);\n prevContextRef.current = initialFlowContext;\n setPrevState(null);\n logger.debug('Resetting flow state to IDLE');\n setState(FlowState.IDLE);\n prevStateRef.current = FlowState.IDLE;\n\n if (onStateChange) {\n onStateChange(FlowState.IDLE, state);\n }\n }, [state, onStateChange]);\n\n /**\n * Handle an error by transitioning to error state\n */\n const handleError = useCallback(\n (error: Error) => {\n if (onError) {\n onError(error);\n }\n\n transition(FlowState.ERROR, { error });\n },\n [transition, onError]\n );\n\n /**\n * Recover state from localStorage\n */\n const recover = useCallback((): boolean => {\n const savedState = loadStateFromLocalStorage();\n\n if (!savedState) {\n setIsRecoveryAvailable(false);\n return false;\n }\n\n setContext(savedState.context);\n prevContextRef.current = savedState.context;\n setPrevState(state);\n prevStateRef.current = state;\n logger.debug(`Recovering state: ${savedState.state}`);\n setState(savedState.state);\n\n if (onStateChange) {\n onStateChange(savedState.state, state);\n }\n\n return true;\n }, [state, onStateChange]);\n\n /**\n * Update context without state transition\n */\n const updateContext = useCallback(\n (updates: Partial<FlowContext>) => {\n // Skip if no actual updates\n if (Object.keys(updates).length === 0) {\n return;\n }\n \n setContext((prevContext) => {\n // Check if any values are actually changing\n let hasChanges = false;\n \n // Type-safe way to check for changes\n (Object.keys(updates) as Array<keyof Partial<FlowContext>>).forEach(key => {\n if (updates[key] !== prevContext[key]) {\n hasChanges = true;\n }\n });\n \n // If nothing is changing, return the previous context\n if (!hasChanges) {\n return prevContext;\n }\n \n const newContext = { ...prevContext, ...updates };\n prevContextRef.current = newContext;\n saveStateToLocalStorage(state, newContext);\n return newContext;\n });\n },\n [state]\n );\n\n /**\n * Record an interruption in the flow (e.g., modal close, page reload)\n */\n const recordInterruption = useCallback(() => {\n updateContext({\n lastInterruption: {\n timestamp: Date.now(),\n state,\n context: { ...context },\n },\n });\n }, [state, context, updateContext]);\n\n // Register unload handler to record interruptions\n useEffect(() => {\n const handleBeforeUnload = () => {\n recordInterruption();\n };\n\n window.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [recordInterruption]);\n\n return {\n state,\n prevState,\n context,\n isTransitioning,\n isRecoveryAvailable,\n transition,\n updateContext,\n reset,\n recover,\n recordInterruption,\n handleError,\n };\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* Hook for handling interruptions during the flow
|
|
4
4
|
*
|
|
@@ -6,12 +6,18 @@ import { useCallback, useEffect, useState } from 'react';
|
|
|
6
6
|
* @returns Interruption handling methods and state
|
|
7
7
|
*/
|
|
8
8
|
export var useInterruptHandler = function (options) {
|
|
9
|
-
var
|
|
9
|
+
var recordInterruption = options.recordInterruption, onClose = options.onClose;
|
|
10
|
+
// Use ref to track previous state
|
|
11
|
+
var prevStateRef = useRef(options.state);
|
|
10
12
|
var _a = useState(false), isClosing = _a[0], setIsClosing = _a[1];
|
|
11
13
|
/**
|
|
12
14
|
* Handle modal close request
|
|
13
15
|
*/
|
|
14
16
|
var handleCloseRequest = useCallback(function () {
|
|
17
|
+
// Skip if already closing
|
|
18
|
+
if (isClosing) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
15
21
|
// Always proceed with closing
|
|
16
22
|
setIsClosing(true);
|
|
17
23
|
recordInterruption();
|
|
@@ -22,12 +28,12 @@ export var useInterruptHandler = function (options) {
|
|
|
22
28
|
}
|
|
23
29
|
}, 300);
|
|
24
30
|
return true;
|
|
25
|
-
}, [recordInterruption, onClose]);
|
|
31
|
+
}, [recordInterruption, onClose, isClosing]);
|
|
26
32
|
/**
|
|
27
33
|
* Handle beforeunload event to record interruptions
|
|
28
34
|
*/
|
|
29
35
|
useEffect(function () {
|
|
30
|
-
var handleBeforeUnload = function (
|
|
36
|
+
var handleBeforeUnload = function () {
|
|
31
37
|
// Record the interruption
|
|
32
38
|
recordInterruption();
|
|
33
39
|
};
|
|
@@ -36,21 +42,18 @@ export var useInterruptHandler = function (options) {
|
|
|
36
42
|
window.removeEventListener('beforeunload', handleBeforeUnload);
|
|
37
43
|
};
|
|
38
44
|
}, [recordInterruption]);
|
|
39
|
-
|
|
40
|
-
* Handle focus events to detect when user returns to the page
|
|
41
|
-
*/
|
|
45
|
+
// Track state changes
|
|
42
46
|
useEffect(function () {
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
}, []);
|
|
47
|
+
var currentState = options.state;
|
|
48
|
+
var prevState = prevStateRef.current;
|
|
49
|
+
// Update ref if state has changed
|
|
50
|
+
if (currentState !== prevState) {
|
|
51
|
+
prevStateRef.current = currentState;
|
|
52
|
+
}
|
|
53
|
+
}, [options.state]);
|
|
52
54
|
return {
|
|
53
55
|
isClosing: isClosing,
|
|
54
56
|
handleCloseRequest: handleCloseRequest,
|
|
55
57
|
};
|
|
56
58
|
};
|
|
59
|
+
//# sourceMappingURL=useInterruptHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInterruptHandler.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useInterruptHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE;;;;;GAKG;AACH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,OAanC;IACS,IAAA,kBAAkB,GAAc,OAAO,mBAArB,EAAE,OAAO,GAAK,OAAO,QAAZ,CAAa;IAEhD,kCAAkC;IAClC,IAAM,YAAY,GAAG,MAAM,CAAY,OAAO,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAElD;;OAEG;IACH,IAAM,kBAAkB,GAAG,WAAW,CAAC;QACrC,0BAA0B;QAC1B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8BAA8B;QAC9B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,kBAAkB,EAAE,CAAC;QAErB,wCAAwC;QACxC,UAAU,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC;QACR,IAAM,kBAAkB,GAAG;YACzB,0BAA0B;YAC1B,kBAAkB,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAE5D,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,sBAAsB;IACtB,SAAS,CAAC;QACR,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,IAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QAEvC,kCAAkC;QAClC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC;QACtC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpB,OAAO;QACL,SAAS,WAAA;QACT,kBAAkB,oBAAA;KACnB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { FlowState } from '../types';\n\n/**\n * Hook for handling interruptions during the flow\n *\n * @param options Configuration options\n * @returns Interruption handling methods and state\n */\nexport const useInterruptHandler = (options: {\n /**\n * Flow state\n */\n state: FlowState;\n /**\n * Record an interruption\n */\n recordInterruption: () => void;\n /**\n * Callback to handle modal close\n */\n onClose?: () => void;\n}) => {\n const { recordInterruption, onClose } = options;\n \n // Use ref to track previous state\n const prevStateRef = useRef<FlowState>(options.state);\n\n const [isClosing, setIsClosing] = useState(false);\n\n /**\n * Handle modal close request\n */\n const handleCloseRequest = useCallback(() => {\n // Skip if already closing\n if (isClosing) {\n return true;\n }\n \n // Always proceed with closing\n setIsClosing(true);\n recordInterruption();\n\n // Delay actual close to allow animation\n setTimeout(() => {\n if (onClose) {\n onClose();\n }\n }, 300);\n\n return true;\n }, [recordInterruption, onClose, isClosing]);\n\n /**\n * Handle beforeunload event to record interruptions\n */\n useEffect(() => {\n const handleBeforeUnload = () => {\n // Record the interruption\n recordInterruption();\n };\n\n window.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [recordInterruption]);\n\n // Track state changes\n useEffect(() => {\n const currentState = options.state;\n const prevState = prevStateRef.current;\n \n // Update ref if state has changed\n if (currentState !== prevState) {\n prevStateRef.current = currentState;\n }\n }, [options.state]);\n\n return {\n isClosing,\n handleCloseRequest,\n };\n};\n"]}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { NordUser } from '@n1xyz/nord-ts';
|
|
2
1
|
/**
|
|
3
2
|
* Hook to access the Nord instance and create a NordUser if needed
|
|
4
3
|
*/
|
|
5
4
|
export declare const useNordInstance: () => {
|
|
6
|
-
nord: import("@n1xyz/nord-ts").Nord | undefined;
|
|
7
|
-
createNordUser: () => Promise<NordUser | null>;
|
|
8
5
|
nordUser: any;
|
|
9
|
-
createTransactionSignFunction: () => (transaction: any) => Promise<any>;
|
|
10
6
|
};
|