@n1xyz/wallet-widget 0.0.4 → 0.0.7
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/README.md +184 -19
- package/dist/Logic/sessionManager.d.ts +53 -0
- package/dist/Logic/sessionManager.js +182 -0
- package/dist/Logic/transactionManager.d.ts +41 -0
- package/dist/Logic/transactionManager.js +196 -0
- package/dist/Logic/utils.js +9 -12
- package/dist/Modal/BackButton.js +1 -1
- package/dist/Modal/ConnectView.js +1 -1
- package/dist/Modal/CreateSessionView.js +1 -1
- package/dist/Modal/LoadingFallback.d.ts +2 -0
- package/dist/Modal/LoadingFallback.js +2 -0
- package/dist/Modal/ModalHeader.js +1 -1
- package/dist/Modal/N1WalletModal.js +88 -82
- package/dist/Modal/NTSFlow/LoadingFallback.d.ts +2 -0
- package/dist/Modal/NTSFlow/LoadingFallback.js +2 -0
- package/dist/Modal/NTSFlow/NTSFlow.d.ts +4 -0
- package/dist/Modal/NTSFlow/NTSFlow.js +34 -0
- package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +9 -0
- package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +145 -0
- package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +14 -0
- package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +75 -0
- package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +7 -0
- package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +5 -0
- package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +1 -0
- package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +5 -0
- package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +13 -0
- package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +58 -0
- package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +6 -0
- package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +6 -0
- package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +5 -0
- package/dist/Modal/NTSFlow/NordFlow/components/index.js +5 -0
- package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +37 -0
- package/dist/Modal/NTSFlow/NordFlow/constants.js +223 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +8 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +8 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +7 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +43 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +38 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +166 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +32 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +163 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +101 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +32 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +193 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +2 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +69 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +89 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +30 -0
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +132 -0
- package/dist/Modal/NTSFlow/NordFlow/index.d.ts +3 -0
- package/dist/Modal/NTSFlow/NordFlow/index.js +3 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +20 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +6 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +14 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +13 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +10 -0
- package/dist/Modal/NTSFlow/NordFlow/screens/index.js +10 -0
- package/dist/Modal/NTSFlow/NordFlow/types.d.ts +105 -0
- package/dist/Modal/NTSFlow/NordFlow/types.js +34 -0
- package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +24 -0
- package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +83 -0
- package/dist/Modal/NTSFlow/components/BackButton.d.ts +3 -0
- package/dist/Modal/NTSFlow/components/BackButton.js +25 -0
- package/dist/Modal/NTSFlow/components/ModalHeader.d.ts +1 -0
- package/dist/Modal/NTSFlow/components/ModalHeader.js +20 -0
- package/dist/Modal/NTSFlow/index.d.ts +1 -0
- package/dist/Modal/NTSFlow/index.js +1 -0
- package/dist/Modal/NTSFlow/views/ConnectView.d.ts +1 -0
- package/dist/Modal/NTSFlow/views/ConnectView.js +68 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +245 -0
- package/dist/Modal/NTSFlow/views/CreateUserView.d.ts +1 -0
- package/dist/Modal/NTSFlow/views/CreateUserView.js +105 -0
- package/dist/Modal/NTSFlow/views/NoWhitelistView.d.ts +1 -0
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js +42 -0
- package/dist/Modal/NTSFlow/views/SigningView.d.ts +1 -0
- package/dist/Modal/NTSFlow/views/SigningView.js +5 -0
- package/dist/Modal/NTSFlow/views/SuccessView.d.ts +1 -0
- package/dist/Modal/NTSFlow/views/SuccessView.js +10 -0
- package/dist/Modal/NoWhitelistView.js +1 -1
- package/dist/Modal/NordFlow/NordFlow.d.ts +9 -0
- package/dist/Modal/NordFlow/NordFlow.js +267 -0
- package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +11 -0
- package/dist/Modal/NordFlow/NordFlowWrapper.js +11 -0
- package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +9 -0
- package/dist/Modal/NordFlow/WalletConnectionFlow.js +145 -0
- package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +14 -0
- package/dist/Modal/NordFlow/components/AnimatedButton.js +75 -0
- package/dist/Modal/NordFlow/components/ChainButton.d.ts +8 -0
- package/dist/Modal/NordFlow/components/ChainButton.js +21 -0
- package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +8 -0
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +18 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.d.ts +17 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +32 -0
- package/dist/Modal/NordFlow/components/LoadingSquares.d.ts +1 -0
- package/dist/Modal/NordFlow/components/LoadingSquares.js +5 -0
- package/dist/Modal/NordFlow/components/MoreButton.d.ts +8 -0
- package/dist/Modal/NordFlow/components/MoreButton.js +18 -0
- package/dist/Modal/NordFlow/components/TransactionTable.d.ts +13 -0
- package/dist/Modal/NordFlow/components/TransactionTable.js +85 -0
- package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +6 -0
- package/dist/Modal/NordFlow/components/WaitingMessage.js +6 -0
- package/dist/Modal/NordFlow/components/index.d.ts +5 -0
- package/dist/Modal/NordFlow/components/index.js +5 -0
- package/dist/Modal/NordFlow/constants.d.ts +37 -0
- package/dist/Modal/NordFlow/constants.js +192 -0
- package/dist/Modal/NordFlow/hoc/index.d.ts +1 -0
- package/dist/Modal/NordFlow/hoc/index.js +1 -0
- package/dist/Modal/NordFlow/hoc/withImageFallback.d.ts +7 -0
- package/dist/Modal/NordFlow/hoc/withImageFallback.js +60 -0
- package/dist/Modal/NordFlow/hooks/index.d.ts +5 -0
- package/dist/Modal/NordFlow/hooks/index.js +5 -0
- package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +7 -0
- package/dist/Modal/NordFlow/hooks/useButtonTyping.js +43 -0
- package/dist/Modal/NordFlow/hooks/useDepositFlow.d.ts +52 -0
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +380 -0
- package/dist/Modal/NordFlow/hooks/useFlowState.d.ts +32 -0
- package/dist/Modal/NordFlow/hooks/useFlowState.js +167 -0
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.d.ts +24 -0
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +56 -0
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +10 -0
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +319 -0
- package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +32 -0
- package/dist/Modal/NordFlow/hooks/useNordSession.js +391 -0
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +14 -0
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +239 -0
- package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +2 -0
- package/dist/Modal/NordFlow/hooks/useTableValues.js +69 -0
- package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
- package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +89 -0
- package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +14 -0
- package/dist/Modal/NordFlow/hooks/useWalletConnect.js +221 -0
- package/dist/Modal/NordFlow/index copy.d.ts +1 -0
- package/dist/Modal/NordFlow/index copy.js +1 -0
- package/dist/Modal/NordFlow/index.d.ts +1 -0
- package/dist/Modal/NordFlow/index.js +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +63 -0
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +12 -0
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +186 -0
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +45 -0
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +121 -0
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +135 -0
- package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +5 -0
- package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +17 -0
- package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +153 -0
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +5 -0
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +36 -0
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +7 -0
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +67 -0
- package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
- package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +47 -0
- package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
- package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +62 -0
- package/dist/Modal/NordFlow/screens/index.d.ts +9 -0
- package/dist/Modal/NordFlow/screens/index.js +9 -0
- package/dist/Modal/NordFlow/types.d.ts +110 -0
- package/dist/Modal/NordFlow/types.js +32 -0
- package/dist/Modal/NordFlow/utils/imageUtils.d.ts +21 -0
- package/dist/Modal/NordFlow/utils/imageUtils.js +109 -0
- package/dist/Modal/NordFlow/utils/index.d.ts +3 -0
- package/dist/Modal/NordFlow/utils/index.js +3 -0
- package/dist/Modal/NordFlow/utils/nordUtils.d.ts +40 -0
- package/dist/Modal/NordFlow/utils/nordUtils.js +63 -0
- package/dist/Modal/NordFlow/utils/persistence.d.ts +24 -0
- package/dist/Modal/NordFlow/utils/persistence.js +83 -0
- package/dist/Modal/Sidebar/N1Sidebar.js +38 -18
- package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +1 -0
- package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +116 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +86 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +6 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +42 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +15 -0
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +1 -0
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +54 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts +5 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +208 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.d.ts +10 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +61 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +29 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.d.ts +11 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +21 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +19 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +23 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +79 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.d.ts +9 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +109 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +29 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.d.ts +9 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +39 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.d.ts +7 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +9 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +8 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +259 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +5 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +138 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +108 -0
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.d.ts +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +182 -0
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +195 -0
- package/dist/NordFlow/WalletConnectionFlow.d.ts +9 -0
- package/dist/NordFlow/WalletConnectionFlow.js +145 -0
- package/dist/NordFlow/components/AnimatedButton.d.ts +14 -0
- package/dist/NordFlow/components/AnimatedButton.js +75 -0
- package/dist/NordFlow/components/ChainButton.d.ts +7 -0
- package/dist/NordFlow/components/ChainButton.js +5 -0
- package/dist/NordFlow/components/LoadingSquares.d.ts +1 -0
- package/dist/NordFlow/components/LoadingSquares.js +5 -0
- package/dist/NordFlow/components/TransactionTable.d.ts +13 -0
- package/dist/NordFlow/components/TransactionTable.js +58 -0
- package/dist/NordFlow/components/WaitingMessage.d.ts +6 -0
- package/dist/NordFlow/components/WaitingMessage.js +6 -0
- package/dist/NordFlow/components/index.d.ts +5 -0
- package/dist/NordFlow/components/index.js +5 -0
- package/dist/NordFlow/constants.d.ts +37 -0
- package/dist/NordFlow/constants.js +223 -0
- package/dist/NordFlow/hooks/index.d.ts +8 -0
- package/dist/NordFlow/hooks/index.js +8 -0
- package/dist/NordFlow/hooks/useButtonTyping.d.ts +7 -0
- package/dist/NordFlow/hooks/useButtonTyping.js +43 -0
- package/dist/NordFlow/hooks/useDepositFlow.d.ts +38 -0
- package/dist/NordFlow/hooks/useDepositFlow.js +166 -0
- package/dist/NordFlow/hooks/useFlowState.d.ts +32 -0
- package/dist/NordFlow/hooks/useFlowState.js +163 -0
- package/dist/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
- package/dist/NordFlow/hooks/useInterruptHandler.js +101 -0
- package/dist/NordFlow/hooks/useNordSession.d.ts +32 -0
- package/dist/NordFlow/hooks/useNordSession.js +193 -0
- package/dist/NordFlow/hooks/useTableValues.d.ts +2 -0
- package/dist/NordFlow/hooks/useTableValues.js +69 -0
- package/dist/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
- package/dist/NordFlow/hooks/useWaitingMessage.js +89 -0
- package/dist/NordFlow/hooks/useWalletConnect.d.ts +30 -0
- package/dist/NordFlow/hooks/useWalletConnect.js +132 -0
- package/dist/NordFlow/index.d.ts +3 -0
- package/dist/NordFlow/index.js +3 -0
- package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
- package/dist/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
- package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
- package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
- package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
- package/dist/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
- package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
- package/dist/NordFlow/screens/04-AmountInputScreen.js +20 -0
- package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
- package/dist/NordFlow/screens/05-DepositProgressScreen.js +6 -0
- package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
- package/dist/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
- package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
- package/dist/NordFlow/screens/07-NordAuthScreen.js +14 -0
- package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
- package/dist/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
- package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
- package/dist/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
- package/dist/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
- package/dist/NordFlow/screens/10-ErrorScreen.js +13 -0
- package/dist/NordFlow/screens/index.d.ts +10 -0
- package/dist/NordFlow/screens/index.js +10 -0
- package/dist/NordFlow/types.d.ts +105 -0
- package/dist/NordFlow/types.js +34 -0
- package/dist/NordFlow/utils/persistence.d.ts +24 -0
- package/dist/NordFlow/utils/persistence.js +83 -0
- package/dist/Provider/LazyWalletProvider.js +81 -42
- package/dist/Provider/N1WalletProvider.d.ts +1 -1
- package/dist/Provider/N1WalletProvider.js +65 -46
- package/dist/Provider/types.d.ts +61 -0
- package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +9 -0
- package/dist/WalletConnectionFlow/WalletConnectionFlow.js +145 -0
- package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +14 -0
- package/dist/WalletConnectionFlow/components/AnimatedButton.js +75 -0
- package/dist/WalletConnectionFlow/components/ChainButton.d.ts +7 -0
- package/dist/WalletConnectionFlow/components/ChainButton.js +5 -0
- package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +1 -0
- package/dist/WalletConnectionFlow/components/LoadingSquares.js +5 -0
- package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +13 -0
- package/dist/WalletConnectionFlow/components/TransactionTable.js +58 -0
- package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +6 -0
- package/dist/WalletConnectionFlow/components/WaitingMessage.js +6 -0
- package/dist/WalletConnectionFlow/components/index.d.ts +5 -0
- package/dist/WalletConnectionFlow/components/index.js +5 -0
- package/dist/WalletConnectionFlow/constants.d.ts +37 -0
- package/dist/WalletConnectionFlow/constants.js +223 -0
- package/dist/WalletConnectionFlow/hooks/index.d.ts +8 -0
- package/dist/WalletConnectionFlow/hooks/index.js +8 -0
- package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +7 -0
- package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +43 -0
- package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +38 -0
- package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +166 -0
- package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +32 -0
- package/dist/WalletConnectionFlow/hooks/useFlowState.js +163 -0
- package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +27 -0
- package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +101 -0
- package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +32 -0
- package/dist/WalletConnectionFlow/hooks/useNordSession.js +193 -0
- package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +2 -0
- package/dist/WalletConnectionFlow/hooks/useTableValues.js +69 -0
- package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +6 -0
- package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +89 -0
- package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +30 -0
- package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +132 -0
- package/dist/WalletConnectionFlow/index.d.ts +3 -0
- package/dist/WalletConnectionFlow/index.js +3 -0
- package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +17 -0
- package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +47 -0
- package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +7 -0
- package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +8 -0
- package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +20 -0
- package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +6 -0
- package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
- package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +99 -0
- package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +14 -0
- package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +20 -0
- package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
- package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +18 -0
- package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +13 -0
- package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +8 -0
- package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +20 -0
- package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +8 -0
- package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +28 -0
- package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +20 -0
- package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +7 -0
- package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +17 -0
- package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +6 -0
- package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +8 -0
- package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +99 -0
- package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/ErrorScreen.js +13 -0
- package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +47 -0
- package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +47 -0
- package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +5 -0
- package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +18 -0
- package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +7 -0
- package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +14 -0
- package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +6 -0
- package/dist/WalletConnectionFlow/screens/SigningScreen.js +6 -0
- package/dist/WalletConnectionFlow/screens/index.d.ts +10 -0
- package/dist/WalletConnectionFlow/screens/index.js +10 -0
- package/dist/WalletConnectionFlow/types.d.ts +105 -0
- package/dist/WalletConnectionFlow/types.js +34 -0
- package/dist/WalletConnectionFlow/utils/persistence.d.ts +24 -0
- package/dist/WalletConnectionFlow/utils/persistence.js +83 -0
- package/dist/components/WalletDeposit/components/TransactionTable.d.ts +9 -2
- package/dist/components/WalletDeposit/components/TransactionTable.js +55 -5
- package/dist/components/WalletDeposit/types.d.ts +5 -0
- package/dist/components/logos/ArbitrumLogo.d.ts +8 -0
- package/dist/components/logos/ArbitrumLogo.js +5 -0
- package/dist/components/logos/BaseLogo.d.ts +8 -0
- package/dist/components/logos/BaseLogo.js +5 -0
- package/dist/components/logos/BeraLogo.d.ts +8 -0
- package/dist/components/logos/BeraLogo.js +5 -0
- package/dist/components/logos/BitcoinLogo.d.ts +8 -0
- package/dist/components/logos/BitcoinLogo.js +5 -0
- package/dist/components/logos/EVMChainsGroup.d.ts +7 -0
- package/dist/components/logos/EVMChainsGroup.js +18 -0
- package/dist/components/logos/EthereumLogo.d.ts +8 -0
- package/dist/components/logos/EthereumLogo.js +5 -0
- package/dist/components/logos/HyperliquidLogo.d.ts +8 -0
- package/dist/components/logos/HyperliquidLogo.js +5 -0
- package/dist/components/logos/MoreChainsGroup.d.ts +7 -0
- package/dist/components/logos/MoreChainsGroup.js +18 -0
- package/dist/components/logos/OptimismLogo.d.ts +8 -0
- package/dist/components/logos/OptimismLogo.js +5 -0
- package/dist/components/logos/SolanaLogo.d.ts +8 -0
- package/dist/components/logos/SolanaLogo.js +5 -0
- package/dist/components/logos/index.d.ts +10 -0
- package/dist/components/logos/index.js +10 -0
- package/dist/config/dynamic.d.ts +20 -0
- package/dist/config/dynamic.js +47 -0
- package/dist/config/solana.d.ts +25 -0
- package/dist/config/solana.js +41 -0
- package/dist/errors/types.d.ts +5 -1
- package/dist/errors/types.js +12 -0
- package/dist/hooks/useSolanaSession.d.ts +17 -0
- package/dist/hooks/useSolanaSession.js +180 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/main.css +1 -1
- package/dist/utils/solana-session.d.ts +84 -0
- package/dist/utils/solana-session.js +230 -0
- package/package.json +14 -11
|
@@ -0,0 +1,267 @@
|
|
|
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 { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
38
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
39
|
+
import Logo from '../../components/Logo';
|
|
40
|
+
import { useN1WalletContext, useN1WalletInternalContext, } from '../../Provider/hooks';
|
|
41
|
+
import { CHAINS } from './constants';
|
|
42
|
+
import { withImageFallback } from './hoc';
|
|
43
|
+
import { useDepositFlow, useFlowState, useInterruptHandler, useNordInstance, useNordWalletConnect, } from './hooks';
|
|
44
|
+
import { AmountInputScreen, AuthLoadingScreen, ChainSelectionScreen, ConnectWalletScreen, DepositProgressScreen, DepositSuccessScreen, ErrorScreen, EvmWalletAuthScreen, FinalSuccessScreen, } from './screens';
|
|
45
|
+
import { FlowState } from './types';
|
|
46
|
+
import { getTokenBalance, isNordConfigured } from './utils/nordUtils';
|
|
47
|
+
import { logger } from '../../utils/logger';
|
|
48
|
+
// Apply the withImageFallback HOC to all screen components
|
|
49
|
+
var EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);
|
|
50
|
+
var EnhancedEvmWalletAuthScreen = withImageFallback(EvmWalletAuthScreen);
|
|
51
|
+
var EnhancedChainSelectionScreen = withImageFallback(ChainSelectionScreen);
|
|
52
|
+
var EnhancedAmountInputScreen = withImageFallback(AmountInputScreen);
|
|
53
|
+
var EnhancedDepositProgressScreen = withImageFallback(DepositProgressScreen);
|
|
54
|
+
var EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);
|
|
55
|
+
var EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);
|
|
56
|
+
var EnhancedFinalSuccessScreen = withImageFallback(FinalSuccessScreen);
|
|
57
|
+
var EnhancedErrorScreen = withImageFallback(ErrorScreen);
|
|
58
|
+
/**
|
|
59
|
+
* Main component for the wallet connection flow
|
|
60
|
+
*/
|
|
61
|
+
export var NordFlow = function (_a) {
|
|
62
|
+
var onClose = _a.onClose;
|
|
63
|
+
// Get session mode from context
|
|
64
|
+
var _b = useN1WalletInternalContext(), sessionMode = _b.sessionMode, faucetUrl = _b.faucetUrl;
|
|
65
|
+
var _c = useN1WalletContext(), balances = _c.balances, nord = _c.nord, nordUser = _c.nordUser;
|
|
66
|
+
var instanceNordUser = useNordInstance().nordUser;
|
|
67
|
+
// Use the nordUser from context, falling back to the one from useNordInstance
|
|
68
|
+
var currentNordUser = nordUser || instanceNordUser;
|
|
69
|
+
// Check if Nord is properly configured
|
|
70
|
+
useEffect(function () {
|
|
71
|
+
if (nord && !isNordConfigured(nord)) {
|
|
72
|
+
logger.warn('Nord is available but not properly configured. Some functionality may be limited.');
|
|
73
|
+
}
|
|
74
|
+
}, [nord]);
|
|
75
|
+
// Handle state changes
|
|
76
|
+
var handleStateChange = useCallback(function (newState, prevState) {
|
|
77
|
+
logger.debug("State changed from ".concat(prevState, " to ").concat(newState));
|
|
78
|
+
}, []);
|
|
79
|
+
// Handle errors
|
|
80
|
+
var handleError = useCallback(function (error) {
|
|
81
|
+
logger.error('Flow error:', error);
|
|
82
|
+
}, []);
|
|
83
|
+
// Initialize flow state
|
|
84
|
+
var _d = useFlowState({
|
|
85
|
+
autoRecover: false, // We'll handle recovery with a prompt
|
|
86
|
+
onStateChange: handleStateChange,
|
|
87
|
+
onError: handleError,
|
|
88
|
+
}), state = _d.state, context = _d.context, transition = _d.transition, updateContext = _d.updateContext, recover = _d.recover, recordInterruption = _d.recordInterruption, handleFlowError = _d.handleError, isRecoveryAvailable = _d.isRecoveryAvailable;
|
|
89
|
+
// Create a wrapped transition function that logs more details
|
|
90
|
+
var enhancedTransition = useCallback(function (newState, contextUpdates) {
|
|
91
|
+
logger.debug("Attempting transition to ".concat(newState), contextUpdates);
|
|
92
|
+
var result = transition(newState, contextUpdates);
|
|
93
|
+
logger.debug("Transition to ".concat(newState, " result:"), result);
|
|
94
|
+
return result;
|
|
95
|
+
}, [transition]);
|
|
96
|
+
// Initialize wallet connection
|
|
97
|
+
var _e = useNordWalletConnect(state, enhancedTransition, // Use enhanced transition instead of regular transition
|
|
98
|
+
context, updateContext, sessionMode || 0), connectWallet = _e.connectWallet, isConnecting = _e.isConnecting;
|
|
99
|
+
// Initialize deposit flow
|
|
100
|
+
var _f = useDepositFlow({
|
|
101
|
+
state: state,
|
|
102
|
+
context: context,
|
|
103
|
+
transition: transition,
|
|
104
|
+
handleError: handleFlowError,
|
|
105
|
+
updateContext: updateContext,
|
|
106
|
+
}), amount = _f.amount, updateAmount = _f.updateAmount, startDeposit = _f.startDeposit, completeDeposit = _f.completeDeposit, getTransactionDetails = _f.getTransactionDetails;
|
|
107
|
+
// Initialize interrupt handler
|
|
108
|
+
var _g = useInterruptHandler({
|
|
109
|
+
state: state,
|
|
110
|
+
recordInterruption: recordInterruption,
|
|
111
|
+
onClose: onClose,
|
|
112
|
+
}), isClosing = _g.isClosing, handleCloseRequest = _g.handleCloseRequest;
|
|
113
|
+
// Check for recovery on mount
|
|
114
|
+
var _h = useState(false), hasAttemptedRecovery = _h[0], setHasAttemptedRecovery = _h[1];
|
|
115
|
+
React.useEffect(function () {
|
|
116
|
+
if (!hasAttemptedRecovery) {
|
|
117
|
+
if (isRecoveryAvailable) {
|
|
118
|
+
// Automatically recover without showing a prompt
|
|
119
|
+
recover();
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// Start at CONNECTING_WALLET so we show the wallet selection screen
|
|
123
|
+
// The actual connection will only happen when the user clicks the button
|
|
124
|
+
transition(FlowState.CONNECTING_WALLET);
|
|
125
|
+
}
|
|
126
|
+
setHasAttemptedRecovery(true);
|
|
127
|
+
}
|
|
128
|
+
}, [hasAttemptedRecovery, isRecoveryAvailable, transition, recover]);
|
|
129
|
+
// For deposit progress message
|
|
130
|
+
var _j = useState({
|
|
131
|
+
visible: true,
|
|
132
|
+
title: 'Processing Deposit',
|
|
133
|
+
subtitle: 'Please wait while we process your deposit',
|
|
134
|
+
isTyping: false,
|
|
135
|
+
}), depositMessage = _j[0], setDepositMessage = _j[1];
|
|
136
|
+
var handleFinish = function () {
|
|
137
|
+
if (onClose) {
|
|
138
|
+
onClose();
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
// Handle chain selection
|
|
142
|
+
var handleChainSelect = useCallback(function (chainId) {
|
|
143
|
+
logger.debug('Chain selected in NordFlow:', chainId);
|
|
144
|
+
// For testnet, we need to use the network ID
|
|
145
|
+
var selectedChain = chainId;
|
|
146
|
+
logger.debug('Transitioning to AMOUNT_INPUT with chain:', selectedChain);
|
|
147
|
+
enhancedTransition(FlowState.AMOUNT_INPUT, {
|
|
148
|
+
selectedChain: selectedChain,
|
|
149
|
+
});
|
|
150
|
+
}, [enhancedTransition]);
|
|
151
|
+
// Get the USDC balance
|
|
152
|
+
var getUsdcBalance = useCallback(function () {
|
|
153
|
+
// Try to get the balance from nordUser if available
|
|
154
|
+
if (currentNordUser) {
|
|
155
|
+
var usdcBalance = getTokenBalance(currentNordUser, 'USDC');
|
|
156
|
+
if (usdcBalance > 0) {
|
|
157
|
+
return usdcBalance;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Fallback to the first balance from the context or a default value
|
|
161
|
+
return balances && balances.length > 0 ? Number(balances[0].balance) : 100;
|
|
162
|
+
}, [currentNordUser, balances]);
|
|
163
|
+
// Function to refresh balances
|
|
164
|
+
var refreshBalance = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
165
|
+
var userAny, error_1, error_2;
|
|
166
|
+
return __generator(this, function (_a) {
|
|
167
|
+
switch (_a.label) {
|
|
168
|
+
case 0:
|
|
169
|
+
_a.trys.push([0, 6, , 7]);
|
|
170
|
+
logger.debug('Refreshing balance...');
|
|
171
|
+
if (!(currentNordUser && nord && isNordConfigured(nord))) return [3 /*break*/, 5];
|
|
172
|
+
_a.label = 1;
|
|
173
|
+
case 1:
|
|
174
|
+
_a.trys.push([1, 4, , 5]);
|
|
175
|
+
userAny = currentNordUser;
|
|
176
|
+
if (!(userAny && typeof userAny.refreshBalances === 'function')) return [3 /*break*/, 3];
|
|
177
|
+
return [4 /*yield*/, userAny.refreshBalances()];
|
|
178
|
+
case 2:
|
|
179
|
+
_a.sent();
|
|
180
|
+
logger.debug('Balances refreshed using Nord-TS');
|
|
181
|
+
return [2 /*return*/];
|
|
182
|
+
case 3: return [3 /*break*/, 5];
|
|
183
|
+
case 4:
|
|
184
|
+
error_1 = _a.sent();
|
|
185
|
+
logger.warn('Error refreshing balances using Nord-TS, falling back to default method:', error_1);
|
|
186
|
+
return [3 /*break*/, 5];
|
|
187
|
+
case 5:
|
|
188
|
+
logger.debug('Balance refreshed using default method');
|
|
189
|
+
return [3 /*break*/, 7];
|
|
190
|
+
case 6:
|
|
191
|
+
error_2 = _a.sent();
|
|
192
|
+
logger.error('Error refreshing balance:', error_2);
|
|
193
|
+
return [3 /*break*/, 7];
|
|
194
|
+
case 7: return [2 /*return*/];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}); }, [currentNordUser, nord]);
|
|
198
|
+
// Get available chains from Nord if possible
|
|
199
|
+
var getAvailableChains = useCallback(function () {
|
|
200
|
+
if (nord &&
|
|
201
|
+
isNordConfigured(nord) &&
|
|
202
|
+
nord.markets &&
|
|
203
|
+
nord.markets.length > 0) {
|
|
204
|
+
// Map Nord markets to chains format
|
|
205
|
+
return nord.markets.map(function (market) { return ({
|
|
206
|
+
id: market.marketId.toString(),
|
|
207
|
+
name: market.symbol,
|
|
208
|
+
// Use a placeholder or dynamically generated logo instead of non-existent assets
|
|
209
|
+
logo: market.symbol.toLowerCase(), // Just use the symbol as an identifier
|
|
210
|
+
}); });
|
|
211
|
+
}
|
|
212
|
+
// Fallback to predefined chains
|
|
213
|
+
return CHAINS;
|
|
214
|
+
}, [nord]);
|
|
215
|
+
// Render the appropriate screen based on the current state
|
|
216
|
+
var renderScreen = function () {
|
|
217
|
+
switch (state) {
|
|
218
|
+
case FlowState.CONNECTING_WALLET:
|
|
219
|
+
return (_jsx(EnhancedConnectWalletScreen, { onConnectWallet: connectWallet, isConnecting: isConnecting }));
|
|
220
|
+
case FlowState.CHAIN_SELECTION:
|
|
221
|
+
var availableChains = getAvailableChains();
|
|
222
|
+
return (_jsx(EnhancedChainSelectionScreen, { chains: availableChains, onChainSelect: handleChainSelect }));
|
|
223
|
+
case FlowState.ETH_TO_SOL_AUTH:
|
|
224
|
+
return (_jsx(EnhancedEvmWalletAuthScreen, { onAuth: function () { return transition(FlowState.CHAIN_SELECTION); } }));
|
|
225
|
+
case FlowState.AMOUNT_INPUT:
|
|
226
|
+
return (_jsx(EnhancedAmountInputScreen, { amount: amount, onAmountChange: updateAmount, onContinue: startDeposit, balance: getUsdcBalance(), faucetUrl: faucetUrl, refreshBalance: refreshBalance }));
|
|
227
|
+
case FlowState.DEPOSIT_PROGRESS:
|
|
228
|
+
return _jsx(EnhancedDepositProgressScreen, { message: depositMessage });
|
|
229
|
+
case FlowState.DEPOSIT_SUCCESS:
|
|
230
|
+
// Get transaction details from the deposit flow
|
|
231
|
+
var txDetails = getTransactionDetails();
|
|
232
|
+
// Create table values from transaction details
|
|
233
|
+
var updatedTableValues = {
|
|
234
|
+
amount: { text: txDetails.amount, visible: true, typing: false },
|
|
235
|
+
tx: { text: txDetails.tx, visible: true, typing: false },
|
|
236
|
+
from: { text: txDetails.from, visible: true, typing: false },
|
|
237
|
+
to: { text: txDetails.to, visible: true, typing: false },
|
|
238
|
+
network: { text: txDetails.network, visible: true, typing: false },
|
|
239
|
+
status: { text: txDetails.status, visible: true, typing: false },
|
|
240
|
+
};
|
|
241
|
+
return (_jsx(EnhancedDepositSuccessScreen, { amount: amount, tableValues: updatedTableValues, onContinue: completeDeposit }));
|
|
242
|
+
case FlowState.AUTH_LOADING:
|
|
243
|
+
return (_jsx(EnhancedAuthLoadingScreen, { onAuthComplete: function (success) {
|
|
244
|
+
if (success) {
|
|
245
|
+
// Update the context first
|
|
246
|
+
updateContext({ hasActiveSession: true });
|
|
247
|
+
// Then transition to success
|
|
248
|
+
transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true });
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// Handle auth failure
|
|
252
|
+
handleFlowError(new Error('Authentication failed'));
|
|
253
|
+
}
|
|
254
|
+
} }));
|
|
255
|
+
case FlowState.FINAL_SUCCESS:
|
|
256
|
+
return _jsx(EnhancedFinalSuccessScreen, { onDone: handleFinish });
|
|
257
|
+
case FlowState.ERROR:
|
|
258
|
+
return (_jsx(EnhancedErrorScreen, { error: context.error, onRetry: function () {
|
|
259
|
+
// Logic to go back to appropriate state based on error
|
|
260
|
+
transition(FlowState.CONNECTING_WALLET);
|
|
261
|
+
}, onCancel: handleFinish }));
|
|
262
|
+
default:
|
|
263
|
+
return (_jsxs("div", { className: "flex flex-col items-center justify-center p-8 space-y-4", children: [_jsxs("div", { className: "relative w-12 h-12", children: [_jsx("div", { className: "absolute inset-0 border-2 border-gray-200 dark:border-gray-800 border-b-main rounded-full animate-spin-slow" }), _jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: _jsx("div", { className: "w-2 h-2 bg-main rounded-full animate-pulse" }) })] }), _jsx("p", { className: "text-gray-700 dark:text-gray-300 text-sm font-medium", children: "Loading" })] }));
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
return (_jsx("div", { className: "z-50 flex items-center justify-center overflow-auto font-era ".concat(isClosing ? 'animate-fade-out' : 'animate-fade-in'), children: _jsxs("div", { className: "bg-gray-50 dark:bg-gray-950 relative border border-gray-200 dark:border-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96", children: [_jsx("div", { className: "p-6 border-b border-gray-200 dark:border-gray-800 w-full max-w-2xl mx-auto", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "flex items-center gap-3", children: _jsx("div", { className: "w-6 h-6 text-gray-50", children: _jsx(Logo, { size: 24 }) }) }), _jsx("button", { onClick: handleCloseRequest, className: "\n text-neutral-400 hover:text-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800\n flex items-center justify-center\n ", children: _jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) }) })] }) }), _jsx("div", { className: "wallet-connection-flow-content p-6 overflow-hidden", children: renderScreen() })] }) }));
|
|
267
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface NordFlowWrapperProps {
|
|
3
|
+
onClose?: () => void;
|
|
4
|
+
appId: string;
|
|
5
|
+
darkMode?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Wrapper component for NordFlow that sets the isNordflow flag
|
|
9
|
+
*/
|
|
10
|
+
export declare const NordFlowWrapper: React.FC<NordFlowWrapperProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { N1WalletProvider } from '../../Provider/N1WalletProvider';
|
|
3
|
+
import { N1SessionMode } from '../../Provider/types';
|
|
4
|
+
import { NordFlow } from './NordFlow';
|
|
5
|
+
/**
|
|
6
|
+
* Wrapper component for NordFlow that sets the isNordflow flag
|
|
7
|
+
*/
|
|
8
|
+
export var NordFlowWrapper = function (_a) {
|
|
9
|
+
var onClose = _a.onClose, appId = _a.appId, _b = _a.darkMode, darkMode = _b === void 0 ? true : _b;
|
|
10
|
+
return (_jsx(N1WalletProvider, { providedSessionMode: N1SessionMode.Nord, appId: appId, darkMode: darkMode, isNordflow: true, children: _jsx(NordFlow, { onClose: onClose }) }));
|
|
11
|
+
};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useCallback, useState } from 'react';
|
|
3
|
+
import Logo from '../components/Logo';
|
|
4
|
+
import { CHAINS } from './constants';
|
|
5
|
+
import { useDepositFlow, useFlowState, useInterruptHandler, useNordSession, useWalletConnect } from './hooks';
|
|
6
|
+
import { AmountInputScreen, AuthLoadingScreen, ChainSelectionScreen, ConnectWalletScreen, DepositProgressScreen, DepositSuccessScreen, ErrorScreen, EvmWalletAuthScreen, FinalSuccessScreen, NordAuthScreen } from './screens';
|
|
7
|
+
import { FlowState } from './types';
|
|
8
|
+
var ConfirmationDialog = function (_a) {
|
|
9
|
+
var onConfirm = _a.onConfirm, onCancel = _a.onCancel;
|
|
10
|
+
return (_jsx("div", { className: "fixed inset-0 bg-gray-50 dark:bg-gray-950 flex items-center justify-center z-50 font-era overflow-auto", children: _jsxs("div", { className: "bg-gray-50 dark:bg-gray-950 relative border border-gray-200 dark:border-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity] animate-fade-in", children: [_jsx("div", { className: "p-6 border-b border-gray-200 dark:border-gray-800", children: _jsx("div", { className: "flex items-center justify-between", children: _jsx("div", { className: "flex items-center gap-3", children: _jsx("h2", { className: "text-xl text-gray-700 dark:text-gray-300", children: "Confirm Close" }) }) }) }), _jsxs("div", { className: "p-6 overflow-hidden relative", children: [_jsx("p", { className: "text-gray-700 dark:text-gray-300 text-center mb-6", children: "Are you sure you want to close? This operation is in progress." }), _jsxs("div", { className: "flex flex-col space-y-3", children: [_jsx("button", { onClick: onConfirm, className: "group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center \n transition-all duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n cursor-pointer border-gray-200 dark:border-neutral-800 hover:border-gray-400 dark:hover:border-white/60\n text-gray-800 dark:text-gray-200", children: "Yes, close" }), _jsx("button", { onClick: onCancel, className: "group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center \n transition-all duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n cursor-pointer border-gray-200 dark:border-neutral-800 hover:border-gray-400 dark:hover:border-white/60\n text-gray-800 dark:text-gray-200", children: "No, continue" })] })] })] }) }));
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Main component for the wallet connection flow
|
|
14
|
+
*/
|
|
15
|
+
export var WalletConnectionFlow = function (_a) {
|
|
16
|
+
var onClose = _a.onClose;
|
|
17
|
+
// Handle state changes
|
|
18
|
+
var handleStateChange = useCallback(function (newState, prevState) {
|
|
19
|
+
console.log("State changed from ".concat(prevState, " to ").concat(newState));
|
|
20
|
+
}, []);
|
|
21
|
+
// Handle errors
|
|
22
|
+
var handleError = useCallback(function (error) {
|
|
23
|
+
console.error('Flow error:', error);
|
|
24
|
+
}, []);
|
|
25
|
+
// Initialize flow state
|
|
26
|
+
var _b = useFlowState({
|
|
27
|
+
autoRecover: false, // We'll handle recovery with a prompt
|
|
28
|
+
onStateChange: handleStateChange,
|
|
29
|
+
onError: handleError,
|
|
30
|
+
}), state = _b.state, context = _b.context, transition = _b.transition, updateContext = _b.updateContext, recover = _b.recover, recordInterruption = _b.recordInterruption, handleFlowError = _b.handleError, isRecoveryAvailable = _b.isRecoveryAvailable;
|
|
31
|
+
// Initialize wallet connection
|
|
32
|
+
var _c = useWalletConnect({
|
|
33
|
+
state: state,
|
|
34
|
+
context: context,
|
|
35
|
+
transition: transition,
|
|
36
|
+
handleError: handleFlowError,
|
|
37
|
+
}), isConnecting = _c.isConnecting, connectWallet = _c.connectWallet;
|
|
38
|
+
// Initialize Nord session
|
|
39
|
+
var hasNordAccount = useNordSession({
|
|
40
|
+
state: state,
|
|
41
|
+
context: context,
|
|
42
|
+
transition: transition,
|
|
43
|
+
handleError: handleFlowError,
|
|
44
|
+
}).hasNordAccount;
|
|
45
|
+
// Initialize deposit flow
|
|
46
|
+
var _d = useDepositFlow({
|
|
47
|
+
state: state,
|
|
48
|
+
context: context,
|
|
49
|
+
transition: transition,
|
|
50
|
+
handleError: handleFlowError,
|
|
51
|
+
updateContext: updateContext,
|
|
52
|
+
}), selectedChain = _d.selectedChain, amount = _d.amount, isDepositing = _d.isDepositing, transactionId = _d.transactionId, selectChain = _d.selectChain, updateAmount = _d.updateAmount, startDeposit = _d.startDeposit, goBackToChainSelection = _d.goBackToChainSelection;
|
|
53
|
+
// Initialize interrupt handler
|
|
54
|
+
var _e = useInterruptHandler({
|
|
55
|
+
state: state,
|
|
56
|
+
recordInterruption: recordInterruption,
|
|
57
|
+
onClose: onClose,
|
|
58
|
+
}), isClosing = _e.isClosing, showConfirmation = _e.showConfirmation, handleCloseRequest = _e.handleCloseRequest, confirmClose = _e.confirmClose, cancelClose = _e.cancelClose;
|
|
59
|
+
// Check for recovery on mount
|
|
60
|
+
var _f = useState(false), hasAttemptedRecovery = _f[0], setHasAttemptedRecovery = _f[1];
|
|
61
|
+
React.useEffect(function () {
|
|
62
|
+
if (!hasAttemptedRecovery) {
|
|
63
|
+
if (isRecoveryAvailable) {
|
|
64
|
+
// Automatically recover without showing a prompt
|
|
65
|
+
recover();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Start at CONNECTING_WALLET so we show the wallet selection screen
|
|
69
|
+
// The actual connection will only happen when the user clicks the button
|
|
70
|
+
transition(FlowState.CONNECTING_WALLET);
|
|
71
|
+
}
|
|
72
|
+
setHasAttemptedRecovery(true);
|
|
73
|
+
}
|
|
74
|
+
}, [hasAttemptedRecovery, isRecoveryAvailable, transition, recover]);
|
|
75
|
+
// For deposit progress message
|
|
76
|
+
var _g = useState({
|
|
77
|
+
visible: true,
|
|
78
|
+
title: 'Processing Deposit',
|
|
79
|
+
subtitle: 'Please wait while we process your deposit',
|
|
80
|
+
isTyping: false
|
|
81
|
+
}), depositMessage = _g[0], setDepositMessage = _g[1];
|
|
82
|
+
// Mock table values for success screen
|
|
83
|
+
var tableValues = {
|
|
84
|
+
tx: { text: transactionId || '0x123...456', visible: true, typing: false },
|
|
85
|
+
from: { text: 'Your Wallet', visible: true, typing: false },
|
|
86
|
+
to: { text: 'Nord Account', visible: true, typing: false },
|
|
87
|
+
network: { text: 'Ethereum', visible: true, typing: false },
|
|
88
|
+
status: { text: 'Completed', visible: true, typing: false }
|
|
89
|
+
};
|
|
90
|
+
var handleFinish = function () {
|
|
91
|
+
if (onClose) {
|
|
92
|
+
onClose();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
// Render confirmation dialog if needed
|
|
96
|
+
var renderConfirmationDialog = function () {
|
|
97
|
+
if (!showConfirmation)
|
|
98
|
+
return null;
|
|
99
|
+
return (_jsx(ConfirmationDialog, { onConfirm: confirmClose, onCancel: cancelClose }));
|
|
100
|
+
};
|
|
101
|
+
// Render current screen based on state
|
|
102
|
+
var renderScreen = function () {
|
|
103
|
+
switch (state) {
|
|
104
|
+
case FlowState.IDLE:
|
|
105
|
+
case FlowState.CONNECTING_WALLET:
|
|
106
|
+
return (_jsx(ConnectWalletScreen, { onConnectWallet: connectWallet, isConnecting: isConnecting }));
|
|
107
|
+
case FlowState.ETH_TO_SOL_AUTH:
|
|
108
|
+
return (_jsx(EvmWalletAuthScreen, { onAuth: function () { return transition(FlowState.CHAIN_SELECTION); } }));
|
|
109
|
+
case FlowState.CHAIN_SELECTION:
|
|
110
|
+
return (_jsx(ChainSelectionScreen, { chains: CHAINS, onChainSelect: selectChain }));
|
|
111
|
+
case FlowState.AMOUNT_INPUT:
|
|
112
|
+
return (_jsx(AmountInputScreen, { amount: amount, onAmountChange: updateAmount, onContinue: startDeposit, balance: 100 }));
|
|
113
|
+
case FlowState.DEPOSIT_PROGRESS:
|
|
114
|
+
return (_jsx(DepositProgressScreen, { message: depositMessage, percentComplete: 75 }));
|
|
115
|
+
case FlowState.DEPOSIT_SUCCESS:
|
|
116
|
+
return (_jsx(DepositSuccessScreen, { amount: amount, tableValues: tableValues, onContinue: function () { return transition(FlowState.NORD_AUTH); } }));
|
|
117
|
+
case FlowState.NORD_AUTH:
|
|
118
|
+
return (_jsx(NordAuthScreen, { hasNordAccount: hasNordAccount, onCreateAccount: function () { return transition(FlowState.AUTH_LOADING, { hasNordAccount: false }); }, onLogin: function () { return transition(FlowState.AUTH_LOADING, { hasNordAccount: true }); } }));
|
|
119
|
+
case FlowState.AUTH_LOADING:
|
|
120
|
+
return (_jsx(AuthLoadingScreen, { isCreatingAccount: !hasNordAccount, onAuthComplete: function (success) {
|
|
121
|
+
if (success) {
|
|
122
|
+
console.log('Auth complete callback in WalletConnectionFlow, transitioning to FINAL_SUCCESS');
|
|
123
|
+
// Update the context first
|
|
124
|
+
updateContext({ hasActiveSession: true });
|
|
125
|
+
// Then transition to success
|
|
126
|
+
transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true });
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// Handle auth failure
|
|
130
|
+
handleFlowError(new Error('Authentication failed'));
|
|
131
|
+
}
|
|
132
|
+
} }));
|
|
133
|
+
case FlowState.FINAL_SUCCESS:
|
|
134
|
+
return (_jsx(FinalSuccessScreen, { onDone: handleFinish }));
|
|
135
|
+
case FlowState.ERROR:
|
|
136
|
+
return (_jsx(ErrorScreen, { error: context.error, onRetry: function () {
|
|
137
|
+
// Logic to go back to appropriate state based on error
|
|
138
|
+
transition(FlowState.CONNECTING_WALLET);
|
|
139
|
+
}, onCancel: handleFinish }));
|
|
140
|
+
default:
|
|
141
|
+
return _jsx("div", { children: "Loading..." });
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
return (_jsx("div", { className: "z-50 flex items-center justify-center overflow-auto font-era ".concat(isClosing ? 'animate-fade-out' : 'animate-fade-in'), children: _jsxs("div", { className: "bg-gray-50 dark:bg-gray-950 relative border border-gray-200 dark:border-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96", children: [_jsx("div", { className: "p-6 border-b border-gray-200 dark:border-gray-800 w-full max-w-2xl mx-auto", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "flex items-center gap-3", children: _jsx("div", { className: "w-6 h-6 text-gray-50", children: _jsx(Logo, { size: 24 }) }) }), _jsx("button", { onClick: handleCloseRequest, className: "\n text-neutral-400 hover:text-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800\n flex items-center justify-center\n ", children: _jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) }) })] }) }), _jsxs("div", { className: "wallet-connection-flow-content p-6 overflow-hidden", children: [renderConfirmationDialog(), renderScreen()] })] }) }));
|
|
145
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ButtonKey, ButtonStates } from '../types';
|
|
2
|
+
interface AnimatedButtonProps {
|
|
3
|
+
onClick: () => void;
|
|
4
|
+
text: string;
|
|
5
|
+
isTyping: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
onMouseEnter?: () => void;
|
|
8
|
+
onMouseLeave?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const AnimatedButton: ({ onClick, text, isTyping, disabled, onMouseEnter, onMouseLeave, }: AnimatedButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const useButtonTyping: (buttonStates: ButtonStates, setButtonStates: React.Dispatch<React.SetStateAction<ButtonStates>>, buttonConfigs: Record<ButtonKey, {
|
|
12
|
+
text: string;
|
|
13
|
+
}>) => void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useState } from 'react';
|
|
14
|
+
import { ANIMATION_EASE } from '../constants';
|
|
15
|
+
var formatButtonText = function (text) {
|
|
16
|
+
return text.split('').join(' ');
|
|
17
|
+
};
|
|
18
|
+
export var AnimatedButton = function (_a) {
|
|
19
|
+
var onClick = _a.onClick, text = _a.text, isTyping = _a.isTyping, _b = _a.disabled, disabled = _b === void 0 ? false : _b, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave;
|
|
20
|
+
var _c = useState(false), isHovered = _c[0], setIsHovered = _c[1];
|
|
21
|
+
var _d = useState(false), isPressed = _d[0], setIsPressed = _d[1];
|
|
22
|
+
var handleMouseEnter = function () {
|
|
23
|
+
setIsHovered(true);
|
|
24
|
+
onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
|
|
25
|
+
};
|
|
26
|
+
var handleMouseLeave = function () {
|
|
27
|
+
setIsHovered(false);
|
|
28
|
+
setIsPressed(false);
|
|
29
|
+
onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
|
|
30
|
+
};
|
|
31
|
+
return (_jsxs("button", { onClick: onClick, disabled: disabled, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseDown: function () { return setIsPressed(true); }, onMouseUp: function () { return setIsPressed(false); }, className: "group relative w-full overflow-hidden rounded-md border-2 ".concat(disabled
|
|
32
|
+
? 'border-gray-200 dark:border-gray-800 bg-gray-100 dark:bg-neutral-950 cursor-not-allowed'
|
|
33
|
+
: isPressed
|
|
34
|
+
? 'border-main bg-main/10 dark:bg-main/5'
|
|
35
|
+
: isHovered
|
|
36
|
+
? 'border-main bg-gray-100 dark:bg-neutral-950'
|
|
37
|
+
: 'border-gray-200 dark:border-gray-800 bg-gray-100 dark:bg-neutral-950 hover:border-main', " py-4 text-center \n transition-all duration-300 ease-[").concat(ANIMATION_EASE, "]"), children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-transparent via-main/10 to-transparent -translate-x-full group-hover:animate-shimmer", style: {
|
|
38
|
+
backgroundSize: '200% 100%',
|
|
39
|
+
} }), _jsx("div", { className: "relative flex items-center justify-center", children: _jsx("span", { className: "text-lg font-medium tracking-wide ".concat(disabled
|
|
40
|
+
? 'text-gray-400 dark:text-gray-600'
|
|
41
|
+
: isPressed
|
|
42
|
+
? 'text-main'
|
|
43
|
+
: isHovered
|
|
44
|
+
? 'text-main'
|
|
45
|
+
: 'text-gray-700 dark:text-gray-300 group-hover:text-main', " transition-colors duration-300"), children: isTyping ? (_jsxs("span", { className: "inline-flex items-center", children: [_jsx("span", { className: "tracking-widest", children: formatButtonText(text) }), _jsx("span", { className: "ml-1 h-5 w-0.5 bg-main animate-cursor-blink" })] })) : (text || '\u00A0') }) })] }));
|
|
46
|
+
};
|
|
47
|
+
export var useButtonTyping = function (buttonStates, setButtonStates, buttonConfigs) {
|
|
48
|
+
var BUTTON_CONFIGS = buttonConfigs || {
|
|
49
|
+
deposit: { text: 'Deposit' },
|
|
50
|
+
continue: { text: 'Continue' },
|
|
51
|
+
openApp: { text: 'Launch' },
|
|
52
|
+
};
|
|
53
|
+
useState(function () {
|
|
54
|
+
Object.entries(buttonStates).forEach(function (_a) {
|
|
55
|
+
var key = _a[0], state = _a[1];
|
|
56
|
+
if (state.isTyping) {
|
|
57
|
+
var config_1 = BUTTON_CONFIGS[key];
|
|
58
|
+
var index_1 = 0;
|
|
59
|
+
var interval_1 = setInterval(function () {
|
|
60
|
+
if (index_1 <= config_1.text.length) {
|
|
61
|
+
setButtonStates(function (prev) {
|
|
62
|
+
var _a;
|
|
63
|
+
return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { text: config_1.text.slice(0, index_1) }), _a)));
|
|
64
|
+
});
|
|
65
|
+
index_1++;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
clearInterval(interval_1);
|
|
69
|
+
}
|
|
70
|
+
}, 50);
|
|
71
|
+
return function () { return clearInterval(interval_1); };
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Chain } from '../types';
|
|
2
|
+
interface ChainButtonProps {
|
|
3
|
+
chain: Chain;
|
|
4
|
+
onClick: (chainId: string) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function ChainButton({ chain, onClick, disabled, }: ChainButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ImageWithFallback } from './ImageWithFallback';
|
|
3
|
+
export function ChainButton(_a) {
|
|
4
|
+
var chain = _a.chain, onClick = _a.onClick, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
|
|
5
|
+
var handleClick = function () {
|
|
6
|
+
if (!disabled) {
|
|
7
|
+
onClick(chain.id);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-gray-50 dark:bg-gray-950 border-2 border-gray-100 dark:border-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
+
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-gray-900';
|
|
12
|
+
var disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
13
|
+
var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
|
|
14
|
+
var imageClasses = disabled
|
|
15
|
+
? 'opacity-50 grayscale'
|
|
16
|
+
: 'opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200';
|
|
17
|
+
var textClasses = disabled
|
|
18
|
+
? 'mt-4 font-medium text-gray-400 dark:text-gray-500'
|
|
19
|
+
: 'mt-4 font-medium text-gray-600 dark:text-gray-400 group-hover:text-red-500 dark:group-hover:text-gray-50 transition-colors duration-200';
|
|
20
|
+
return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [typeof chain.logo === 'string' ? (_jsx(ImageWithFallback, { src: chain.logo, width: 48, height: 48, alt: chain.name, className: imageClasses, fallbackClassName: "w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200", fallbackBgColor: "bg-main/10 dark:bg-main/20", fallbackTextColor: "text-main dark:text-main" })) : (_jsx("div", { className: imageClasses, children: chain.logo })), _jsx("span", { className: textClasses, children: chain.name })] }));
|
|
21
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Chain } from '../types';
|
|
2
|
+
interface EVMChainsButtonProps {
|
|
3
|
+
chain: Chain;
|
|
4
|
+
onClick: (chainId: string) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function EVMChainsButton({ chain, onClick, disabled, }: EVMChainsButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EVMChainsGroup } from '../../../components/logos';
|
|
3
|
+
export function EVMChainsButton(_a) {
|
|
4
|
+
var chain = _a.chain, onClick = _a.onClick, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
|
|
5
|
+
var handleClick = function () {
|
|
6
|
+
if (!disabled) {
|
|
7
|
+
onClick(chain.id);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-gray-50 dark:bg-gray-950 border-2 border-gray-100 dark:border-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
+
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-gray-900';
|
|
12
|
+
var disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
13
|
+
var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
|
|
14
|
+
var textClasses = disabled
|
|
15
|
+
? 'mt-4 font-medium text-gray-400 dark:text-gray-500'
|
|
16
|
+
: 'mt-4 font-medium text-gray-600 dark:text-gray-400 group-hover:text-red-500 dark:group-hover:text-gray-50 transition-colors duration-200';
|
|
17
|
+
return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsx(EVMChainsGroup, { size: 32, className: disabled ? 'opacity-50 grayscale' : 'opacity-90' }), _jsx("span", { className: textClasses, children: chain.name })] }));
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ImageWithFallbackProps {
|
|
3
|
+
src: string;
|
|
4
|
+
alt: string;
|
|
5
|
+
width?: number | string;
|
|
6
|
+
height?: number | string;
|
|
7
|
+
className?: string;
|
|
8
|
+
fallbackClassName?: string;
|
|
9
|
+
fallbackText?: string;
|
|
10
|
+
fallbackBgColor?: string;
|
|
11
|
+
fallbackTextColor?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A component that renders an image with a fallback div when the image is not available
|
|
15
|
+
*/
|
|
16
|
+
export declare const ImageWithFallback: React.FC<ImageWithFallbackProps>;
|
|
17
|
+
export {};
|