@n1xyz/wallet-widget 0.0.9 → 0.0.11

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.
Files changed (180) hide show
  1. package/dist/Logic/transactionManager.d.ts +1 -1
  2. package/dist/Logic/transactionManager.js +1 -1
  3. package/dist/Logic/transactionManager.js.map +1 -1
  4. package/dist/Modal/LoadingFallback.js +1 -1
  5. package/dist/Modal/LoadingFallback.js.map +1 -1
  6. package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
  7. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
  8. package/dist/Modal/NTSFlow/components/BackButton.js +2 -2
  9. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
  10. package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
  11. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
  12. package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
  13. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
  14. package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
  15. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
  16. package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
  17. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
  18. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
  19. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
  20. package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
  21. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
  22. package/dist/Modal/NordFlow/NordFlow.js +22 -228
  23. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  24. package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
  25. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
  26. package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
  27. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
  28. package/dist/Modal/NordFlow/components/Header.d.ts +10 -0
  29. package/dist/Modal/NordFlow/components/Header.js +11 -0
  30. package/dist/Modal/NordFlow/components/Header.js.map +1 -0
  31. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
  32. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
  33. package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
  34. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
  35. package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
  36. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
  37. package/dist/Modal/NordFlow/components/TransactionTable.js +7 -10
  38. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  39. package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
  40. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
  41. package/dist/Modal/NordFlow/components/index.d.ts +1 -0
  42. package/dist/Modal/NordFlow/components/index.js +1 -0
  43. package/dist/Modal/NordFlow/components/index.js.map +1 -1
  44. package/dist/Modal/NordFlow/constants.js +116 -95
  45. package/dist/Modal/NordFlow/constants.js.map +1 -1
  46. package/dist/Modal/NordFlow/context/DepositContext.d.ts +27 -0
  47. package/dist/Modal/NordFlow/context/DepositContext.js +308 -0
  48. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -0
  49. package/dist/Modal/NordFlow/context/FlowContext.d.ts +23 -0
  50. package/dist/Modal/NordFlow/context/FlowContext.js +125 -0
  51. package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -0
  52. package/dist/Modal/NordFlow/context/NordProvider.d.ts +10 -0
  53. package/dist/Modal/NordFlow/context/NordProvider.js +14 -0
  54. package/dist/Modal/NordFlow/context/NordProvider.js.map +1 -0
  55. package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +20 -0
  56. package/dist/Modal/NordFlow/context/WalletConnectContext.js +214 -0
  57. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -0
  58. package/dist/Modal/NordFlow/context/deposit/types.d.ts +26 -0
  59. package/dist/Modal/NordFlow/context/deposit/types.js +2 -0
  60. package/dist/Modal/NordFlow/context/deposit/types.js.map +1 -0
  61. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +7 -0
  62. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +113 -0
  63. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +1 -0
  64. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +20 -0
  65. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +235 -0
  66. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +1 -0
  67. package/dist/Modal/NordFlow/context/index.d.ts +5 -0
  68. package/dist/Modal/NordFlow/context/index.js +8 -0
  69. package/dist/Modal/NordFlow/context/index.js.map +1 -0
  70. package/dist/Modal/NordFlow/hooks/index.d.ts +3 -5
  71. package/dist/Modal/NordFlow/hooks/index.js +3 -5
  72. package/dist/Modal/NordFlow/hooks/index.js.map +1 -1
  73. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +2 -4
  74. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -1
  75. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -6
  76. package/dist/Modal/NordFlow/hooks/useNordInstance.js +2 -358
  77. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -1
  78. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -1
  79. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -1
  80. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -1
  81. package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +6 -0
  82. package/dist/Modal/NordFlow/screens/00-IdleScreen.js +9 -0
  83. package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -0
  84. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -6
  85. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +12 -6
  86. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  87. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +1 -5
  88. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +13 -16
  89. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
  90. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +1 -7
  91. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +11 -9
  92. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
  93. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +1 -13
  94. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +59 -31
  95. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
  96. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +1 -6
  97. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +9 -4
  98. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
  99. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +1 -8
  100. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +18 -7
  101. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
  102. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +1 -6
  103. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +15 -121
  104. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
  105. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
  106. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +10 -5
  107. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
  108. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +1 -7
  109. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +9 -9
  110. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
  111. package/dist/Modal/NordFlow/screens/index.d.ts +1 -0
  112. package/dist/Modal/NordFlow/screens/index.js +1 -0
  113. package/dist/Modal/NordFlow/screens/index.js.map +1 -1
  114. package/dist/Modal/NordFlow/types.d.ts +0 -5
  115. package/dist/Modal/NordFlow/types.js +0 -1
  116. package/dist/Modal/NordFlow/types.js.map +1 -1
  117. package/dist/Modal/NordFlow/utils/index.d.ts +0 -1
  118. package/dist/Modal/NordFlow/utils/index.js +0 -1
  119. package/dist/Modal/NordFlow/utils/index.js.map +1 -1
  120. package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
  121. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
  122. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
  123. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
  124. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
  125. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
  126. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
  127. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
  128. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
  129. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
  130. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
  131. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
  132. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
  133. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
  134. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
  135. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
  136. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
  137. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
  138. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
  139. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
  140. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
  141. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
  142. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
  143. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
  144. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
  145. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
  146. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
  147. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
  148. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
  149. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
  150. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
  151. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
  152. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
  153. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
  154. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
  155. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
  156. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
  157. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
  158. package/dist/Provider/LazyWalletProvider.js +2 -0
  159. package/dist/Provider/LazyWalletProvider.js.map +1 -1
  160. package/dist/Provider/N1WalletProvider.js +48 -63
  161. package/dist/Provider/N1WalletProvider.js.map +1 -1
  162. package/dist/Provider/WalletErrorBoundary.d.ts +10 -0
  163. package/dist/Provider/WalletErrorBoundary.js +39 -0
  164. package/dist/Provider/WalletErrorBoundary.js.map +1 -0
  165. package/dist/Provider/hooks/useNordUserInitialization.d.ts +20 -0
  166. package/dist/Provider/hooks/useNordUserInitialization.js +293 -0
  167. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -0
  168. package/dist/Provider/types.d.ts +2 -0
  169. package/dist/Provider/types.js.map +1 -1
  170. package/dist/Provider/useN1WalletProvider.d.ts +37 -0
  171. package/dist/Provider/useN1WalletProvider.js +398 -0
  172. package/dist/Provider/useN1WalletProvider.js.map +1 -0
  173. package/dist/components/QRCodeLoader.js +1 -1
  174. package/dist/components/QRCodeLoader.js.map +1 -1
  175. package/dist/components/logos/EVMChainsGroup.js +1 -1
  176. package/dist/components/logos/EVMChainsGroup.js.map +1 -1
  177. package/dist/components/logos/MoreChainsGroup.js +1 -1
  178. package/dist/components/logos/MoreChainsGroup.js.map +1 -1
  179. package/dist/main.css +1 -1
  180. package/package.json +1 -1
@@ -31,18 +31,18 @@ export function TransactionTable(_a) {
31
31
  }
32
32
  }
33
33
  if (key === 'tx') {
34
- return 'text-primary-600 dark:text-primary-400 text-xs font-medium hover:text-primary-700 dark:hover:text-primary-300 transition-colors duration-200';
34
+ return 'text-n1-main-600 dark:text-n1-main-400 text-xs font-medium hover:text-n1-main-700 dark:hover:text-n1-main-300 transition-colors duration-200';
35
35
  }
36
36
  if (key === 'network') {
37
37
  return 'text-purple-600 dark:text-purple-400 font-medium';
38
38
  }
39
39
  if (key === 'from' || key === 'to') {
40
- return 'text-gray-800 dark:text-gray-200 text-xs font-medium hover:text-primary-600 dark:hover:text-primary-400 transition-colors duration-200';
40
+ return 'text-n1-gray-800 dark:text-n1-gray-200 text-xs font-medium hover:text-n1-main-600 dark:hover:text-n1-main-400 transition-colors duration-200';
41
41
  }
42
42
  if (key === 'amount') {
43
43
  return 'text-green-600 dark:text-emerald-500 font-semibold';
44
44
  }
45
- return 'text-gray-900 dark:text-gray-50 font-medium';
45
+ return 'text-n1-gray-900 dark:text-n1-gray-50 font-medium';
46
46
  };
47
47
  // Format display value with ellipsis for long text
48
48
  var getDisplayValue = function (key, value) {
@@ -56,11 +56,8 @@ export function TransactionTable(_a) {
56
56
  };
57
57
  // Get explorer URL for transaction ID or address
58
58
  var getExplorerLink = function (key, value) {
59
- var _a;
60
- // Extract network from tableValues to determine which explorer to use
61
- var network = ((_a = tableValues.network) === null || _a === void 0 ? void 0 : _a.text) || 'solana-mainnet';
62
59
  if (key === 'tx') {
63
- return getExplorerUrl(value, network);
60
+ return getExplorerUrl(value);
64
61
  }
65
62
  if (key === 'from') {
66
63
  return "https://explorer.solana.com/address/".concat(value, "?cluster=devnet");
@@ -77,10 +74,10 @@ export function TransactionTable(_a) {
77
74
  var indexB = fieldOrder.indexOf(keyB);
78
75
  return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);
79
76
  });
80
- return (_jsxs("div", { className: "relative w-full h-full bg-gray-100 dark:bg-gray-950 border border-gray-200 dark:border-gray-800 p-5 rounded-sm flex flex-col justify-center", children: [onClose && (_jsx("button", { onClick: onClose, className: "absolute top-3 right-2 text-gray-500 dark:text-gray-600 hover:text-gray-500 dark:hover:text-gray-300 transition-colors duration-200 focus:outline-none", "aria-label": "Close details", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), _jsx("div", { className: "space-y-3 text-sm pt-5", children: sortedEntries.map(function (_a) {
77
+ return (_jsxs("div", { className: "relative w-full h-full bg-n1-gray-100 dark:bg-n1-gray-950 border border-n1-gray-200 dark:border-n1-gray-800 p-5 rounded-sm flex flex-col justify-center", children: [onClose && (_jsx("button", { onClick: onClose, className: "absolute top-3 right-2 text-n1-gray-500 dark:text-n1-gray-600 hover:text-n1-gray-500 dark:hover:text-n1-gray-300 transition-colors duration-200 focus:outline-none", "aria-label": "Close details", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), _jsx("div", { className: "space-y-3 text-sm pt-5", children: sortedEntries.map(function (_a) {
81
78
  var key = _a[0], value = _a[1];
82
- return (_jsxs("div", { className: "flex items-center justify-between py-2 ", children: [_jsx("span", { className: "text-gray-500 dark:text-gray-400 font-medium min-w-[120px]", children: getLabel(key) }), _jsxs("div", { className: "relative transition-all duration-300 ".concat(value.visible ? 'opacity-100' : 'opacity-0', " max-w-[65%] text-right flex-1"), children: [(key === 'tx' || key === 'from') &&
83
- getExplorerLink(key, value.text) ? (_jsxs("a", { href: getExplorerLink(key, value.text), target: "_blank", rel: "noopener noreferrer", className: "".concat(getValueStyles(key, value.text), " break-all inline-block group"), title: value.text, children: [_jsx("span", { className: "underline hover:font-bold", children: getDisplayValue(key, value.text) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] })) : (_jsx("span", { className: "".concat(getValueStyles(key, value.text), " break-all inline-block"), title: value.text, children: value.text })), value.typing && (_jsx("span", { className: "inline-block ml-1 w-[2px] h-[14px] bg-primary-500 dark:bg-primary-400 animate-pulse" }))] })] }, key));
79
+ return (_jsxs("div", { className: "flex items-center justify-between py-2 ", children: [_jsx("span", { className: "text-n1-gray-500 dark:text-n1-gray-400 font-medium min-w-[120px]", children: getLabel(key) }), _jsxs("div", { className: "relative transition-all duration-300 ".concat(value.visible ? 'opacity-100' : 'opacity-0', " max-w-[65%] text-right flex-1"), children: [(key === 'tx' || key === 'from') &&
80
+ getExplorerLink(key, value.text) ? (_jsxs("a", { href: getExplorerLink(key, value.text), target: "_blank", rel: "noopener noreferrer", className: "".concat(getValueStyles(key, value.text), " break-all inline-block group"), title: value.text, children: [_jsx("span", { className: "underline hover:font-bold", children: getDisplayValue(key, value.text) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] })) : (_jsx("span", { className: "".concat(getValueStyles(key, value.text), " break-all inline-block"), title: value.text, children: value.text })), value.typing && (_jsx("span", { className: "inline-block ml-1 w-[2px] h-[14px] bg-n1-main-500 dark:bg-n1-main-400 n1-animate-pulse" }))] })] }, key));
84
81
  }) })] }));
85
82
  }
86
83
  //# sourceMappingURL=TransactionTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionTable.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/TransactionTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import { TableValues } from '../types';\nimport { shortenAddress } from '../utils/nordUtils';\nimport { getExplorerUrl } from '../../../Logic/transactionManager';\n\ninterface TransactionTableProps {\n tableValues: TableValues & {\n amount?: { text: string; visible: boolean; typing: boolean };\n };\n onClose?: () => void;\n}\n\nexport function TransactionTable({\n tableValues,\n onClose,\n}: TransactionTableProps) {\n // Friendly labels for the keys\n const getLabel = (key: string) => {\n const labels: Record<string, string> = {\n amount: 'Amount',\n tx: 'Transaction ID',\n from: 'From',\n to: 'To',\n network: 'Network',\n status: 'Status',\n };\n\n return labels[key] || key;\n };\n\n // Get appropriate color for values based on key\n const getValueStyles = (key: string, value: string) => {\n if (key === 'status') {\n if (\n value.toLowerCase().includes('success') ||\n value.toLowerCase().includes('confirmed')\n ) {\n return 'text-green-500 dark:text-emerald-500 font-medium';\n }\n if (value.toLowerCase().includes('pending')) {\n return 'text-amber-500 dark:text-amber-400 font-medium';\n }\n if (\n value.toLowerCase().includes('fail') ||\n value.toLowerCase().includes('error')\n ) {\n return 'text-red-500 dark:text-red-400 font-medium';\n }\n }\n\n if (key === 'tx') {\n return 'text-primary-600 dark:text-primary-400 text-xs font-medium hover:text-primary-700 dark:hover:text-primary-300 transition-colors duration-200';\n }\n\n if (key === 'network') {\n return 'text-purple-600 dark:text-purple-400 font-medium';\n }\n\n if (key === 'from' || key === 'to') {\n return 'text-gray-800 dark:text-gray-200 text-xs font-medium hover:text-primary-600 dark:hover:text-primary-400 transition-colors duration-200';\n }\n\n if (key === 'amount') {\n return 'text-green-600 dark:text-emerald-500 font-semibold';\n }\n\n return 'text-gray-900 dark:text-gray-50 font-medium';\n };\n\n // Format display value with ellipsis for long text\n const getDisplayValue = (key: string, value: string) => {\n if (key === 'tx') {\n return shortenAddress(value, 5, 4);\n }\n\n if (key === 'from' || key === 'to') {\n return shortenAddress(value, 5, 4);\n }\n\n return value;\n };\n\n // Get explorer URL for transaction ID or address\n const getExplorerLink = (key: string, value: string) => {\n // Extract network from tableValues to determine which explorer to use\n const network = tableValues.network?.text || 'solana-mainnet';\n\n if (key === 'tx') {\n return getExplorerUrl(value, network);\n }\n\n if (key === 'from') {\n return `https://explorer.solana.com/address/${value}?cluster=devnet`;\n }\n\n return '';\n };\n\n // Order of fields to display\n const fieldOrder = ['amount', 'status', 'network', 'from', 'to', 'tx'];\n\n // Sort entries based on fieldOrder\n const sortedEntries = Object.entries(tableValues).sort(([keyA], [keyB]) => {\n const indexA = fieldOrder.indexOf(keyA);\n const indexB = fieldOrder.indexOf(keyB);\n return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);\n });\n\n return (\n <div className=\"relative w-full h-full bg-gray-100 dark:bg-gray-950 border border-gray-200 dark:border-gray-800 p-5 rounded-sm flex flex-col justify-center\">\n {onClose && (\n <button\n onClick={onClose}\n className=\"absolute top-3 right-2 text-gray-500 dark:text-gray-600 hover:text-gray-500 dark:hover:text-gray-300 transition-colors duration-200 focus:outline-none\"\n aria-label=\"Close details\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n <div className=\"space-y-3 text-sm pt-5\">\n {sortedEntries.map(([key, value]) => (\n <div key={key} className=\"flex items-center justify-between py-2 \">\n <span className=\"text-gray-500 dark:text-gray-400 font-medium min-w-[120px]\">\n {getLabel(key)}\n </span>\n <div\n className={`relative transition-all duration-300 ${value.visible ? 'opacity-100' : 'opacity-0'} max-w-[65%] text-right flex-1`}\n >\n {(key === 'tx' || key === 'from') &&\n getExplorerLink(key, value.text) ? (\n <a\n href={getExplorerLink(key, value.text)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${getValueStyles(key, value.text)} break-all inline-block group`}\n title={value.text}\n >\n <span className=\"underline hover:font-bold\">\n {getDisplayValue(key, value.text)}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n </a>\n ) : (\n <span\n className={`${getValueStyles(key, value.text)} break-all inline-block`}\n title={value.text}\n >\n {value.text}\n </span>\n )}\n {value.typing && (\n <span className=\"inline-block ml-1 w-[2px] h-[14px] bg-primary-500 dark:bg-primary-400 animate-pulse\"></span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"TransactionTable.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/TransactionTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import { TableValues } from '../types';\nimport { shortenAddress } from '../utils/nordUtils';\nimport { getExplorerUrl } from '../../../Logic/transactionManager';\n\ninterface TransactionTableProps {\n tableValues: TableValues & {\n amount?: { text: string; visible: boolean; typing: boolean };\n };\n onClose?: () => void;\n}\n\nexport function TransactionTable({\n tableValues,\n onClose,\n}: TransactionTableProps) {\n // Friendly labels for the keys\n const getLabel = (key: string) => {\n const labels: Record<string, string> = {\n amount: 'Amount',\n tx: 'Transaction ID',\n from: 'From',\n to: 'To',\n network: 'Network',\n status: 'Status',\n };\n\n return labels[key] || key;\n };\n\n // Get appropriate color for values based on key\n const getValueStyles = (key: string, value: string) => {\n if (key === 'status') {\n if (\n value.toLowerCase().includes('success') ||\n value.toLowerCase().includes('confirmed')\n ) {\n return 'text-green-500 dark:text-emerald-500 font-medium';\n }\n if (value.toLowerCase().includes('pending')) {\n return 'text-amber-500 dark:text-amber-400 font-medium';\n }\n if (\n value.toLowerCase().includes('fail') ||\n value.toLowerCase().includes('error')\n ) {\n return 'text-red-500 dark:text-red-400 font-medium';\n }\n }\n\n if (key === 'tx') {\n return 'text-n1-main-600 dark:text-n1-main-400 text-xs font-medium hover:text-n1-main-700 dark:hover:text-n1-main-300 transition-colors duration-200';\n }\n\n if (key === 'network') {\n return 'text-purple-600 dark:text-purple-400 font-medium';\n }\n\n if (key === 'from' || key === 'to') {\n return 'text-n1-gray-800 dark:text-n1-gray-200 text-xs font-medium hover:text-n1-main-600 dark:hover:text-n1-main-400 transition-colors duration-200';\n }\n\n if (key === 'amount') {\n return 'text-green-600 dark:text-emerald-500 font-semibold';\n }\n\n return 'text-n1-gray-900 dark:text-n1-gray-50 font-medium';\n };\n\n // Format display value with ellipsis for long text\n const getDisplayValue = (key: string, value: string) => {\n if (key === 'tx') {\n return shortenAddress(value, 5, 4);\n }\n\n if (key === 'from' || key === 'to') {\n return shortenAddress(value, 5, 4);\n }\n\n return value;\n };\n\n // Get explorer URL for transaction ID or address\n const getExplorerLink = (key: string, value: string) => {\n\n if (key === 'tx') {\n return getExplorerUrl(value);\n }\n\n if (key === 'from') {\n return `https://explorer.solana.com/address/${value}?cluster=devnet`;\n }\n\n return '';\n };\n\n // Order of fields to display\n const fieldOrder = ['amount', 'status', 'network', 'from', 'to', 'tx'];\n\n // Sort entries based on fieldOrder\n const sortedEntries = Object.entries(tableValues).sort(([keyA], [keyB]) => {\n const indexA = fieldOrder.indexOf(keyA);\n const indexB = fieldOrder.indexOf(keyB);\n return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);\n });\n\n return (\n <div className=\"relative w-full h-full bg-n1-gray-100 dark:bg-n1-gray-950 border border-n1-gray-200 dark:border-n1-gray-800 p-5 rounded-sm flex flex-col justify-center\">\n {onClose && (\n <button\n onClick={onClose}\n className=\"absolute top-3 right-2 text-n1-gray-500 dark:text-n1-gray-600 hover:text-n1-gray-500 dark:hover:text-n1-gray-300 transition-colors duration-200 focus:outline-none\"\n aria-label=\"Close details\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n <div className=\"space-y-3 text-sm pt-5\">\n {sortedEntries.map(([key, value]) => (\n <div key={key} className=\"flex items-center justify-between py-2 \">\n <span className=\"text-n1-gray-500 dark:text-n1-gray-400 font-medium min-w-[120px]\">\n {getLabel(key)}\n </span>\n <div\n className={`relative transition-all duration-300 ${value.visible ? 'opacity-100' : 'opacity-0'} max-w-[65%] text-right flex-1`}\n >\n {(key === 'tx' || key === 'from') &&\n getExplorerLink(key, value.text) ? (\n <a\n href={getExplorerLink(key, value.text)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${getValueStyles(key, value.text)} break-all inline-block group`}\n title={value.text}\n >\n <span className=\"underline hover:font-bold\">\n {getDisplayValue(key, value.text)}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n </a>\n ) : (\n <span\n className={`${getValueStyles(key, value.text)} break-all inline-block`}\n title={value.text}\n >\n {value.text}\n </span>\n )}\n {value.typing && (\n <span className=\"inline-block ml-1 w-[2px] h-[14px] bg-n1-main-500 dark:bg-n1-main-400 n1-animate-pulse\"></span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
@@ -2,6 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { LoadingSquares } from './LoadingSquares';
3
3
  export function WaitingMessage(_a) {
4
4
  var message = _a.message;
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 })] })] })] }));
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-n1-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-n1-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
7
  //# sourceMappingURL=WaitingMessage.js.map
@@ -1 +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"]}
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,uIAAuI,aACnJ,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,mGAAmG,aAChH,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-n1-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-n1-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"]}
@@ -3,3 +3,4 @@ export * from './ChainButton';
3
3
  export * from './LoadingSquares';
4
4
  export * from './TransactionTable';
5
5
  export * from './WaitingMessage';
6
+ export * from './Header';
@@ -3,4 +3,5 @@ export * from './ChainButton';
3
3
  export * from './LoadingSquares';
4
4
  export * from './TransactionTable';
5
5
  export * from './WaitingMessage';
6
+ export * from './Header';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +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"]}
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;AACjC,cAAc,UAAU,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './LoadingSquares';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\nexport * from './Header';\n"]}
@@ -51,130 +51,151 @@ export var CHAINS = [
51
51
  * Defines all possible transitions between states and their conditions
52
52
  */
53
53
  export var STATE_TRANSITIONS = [
54
- // From IDLE state
54
+ // Global recovery transition (can happen from any state upon recovery)
55
55
  {
56
- from: FlowState.IDLE,
56
+ from: [
57
+ FlowState.ERROR,
58
+ FlowState.IDLE,
59
+ ],
57
60
  to: FlowState.CONNECTING_WALLET,
58
- condition: function (context) { return !context.walletType; }, // Only if wallet is not connected
59
- },
60
- {
61
- from: FlowState.CONNECTING_WALLET,
62
- to: FlowState.ERROR,
63
- // When wallet connection fails
64
- },
65
- {
66
- from: FlowState.CONNECTING_WALLET,
67
- to: FlowState.CHAIN_SELECTION,
68
- condition: function (context) { return context.walletType === 'solana'; }, // If Solana wallet and no Nord account
69
- },
70
- {
71
- from: FlowState.CONNECTING_WALLET,
72
- to: FlowState.AUTH_LOADING,
73
61
  condition: function (context) {
74
- return context.walletType === 'solana' && context.hasNordAccount;
75
- }, // If Solana wallet and no Nord account
62
+ return !context.hasActiveSession
63
+ && !context.hasNordAccount;
64
+ }
76
65
  },
66
+ // Global recovery transition (can happen from any state upon recovery)
77
67
  {
78
- from: FlowState.CONNECTING_WALLET,
79
- to: FlowState.FINAL_SUCCESS,
68
+ from: [
69
+ FlowState.ERROR,
70
+ FlowState.IDLE,
71
+ FlowState.CONNECTING_WALLET,
72
+ ],
73
+ to: FlowState.ETH_TO_SOL_AUTH,
80
74
  condition: function (context) {
81
- return context.walletType === 'solana' &&
82
- context.hasNordAccount &&
83
- context.hasActiveSession;
84
- }, // If Solana wallet and no Nord account
75
+ return !context.hasActiveSession
76
+ && !context.hasNordAccount
77
+ && context.walletType !== 'solana';
78
+ }
85
79
  },
86
- // From ETH_TO_SOL_AUTH state
80
+ // Global recovery transition (can happen from any state upon recovery)
87
81
  {
88
- from: FlowState.ETH_TO_SOL_AUTH,
82
+ from: [
83
+ FlowState.ERROR,
84
+ FlowState.IDLE,
85
+ FlowState.CONNECTING_WALLET,
86
+ FlowState.ETH_TO_SOL_AUTH,
87
+ ],
89
88
  to: FlowState.CHAIN_SELECTION,
90
- condition: function (context) { return !context.hasNordAccount; }, // After ETH auth, if no Nord account
91
- },
92
- {
93
- from: FlowState.ETH_TO_SOL_AUTH,
94
- to: FlowState.AUTH_LOADING,
95
- condition: function (context) { return context.hasNordAccount && !context.hasActiveSession; },
96
- // After ETH auth, if has Nord account but no active session
97
- },
98
- {
99
- from: FlowState.ETH_TO_SOL_AUTH,
100
- to: FlowState.FINAL_SUCCESS,
101
- condition: function (context) { return context.hasNordAccount && context.hasActiveSession; },
102
- // After ETH auth, if has Nord account and active session
103
- },
104
- {
105
- from: FlowState.ETH_TO_SOL_AUTH,
106
- to: FlowState.ERROR,
107
- // If ETH to SOL auth fails
89
+ condition: function (context) {
90
+ return !context.hasActiveSession
91
+ && !context.hasNordAccount;
92
+ }
108
93
  },
109
- // From CHAIN_SELECTION state
94
+ // Global recovery transition (can happen from any state upon recovery)
110
95
  {
111
- from: FlowState.CHAIN_SELECTION,
96
+ from: [
97
+ FlowState.ERROR,
98
+ FlowState.IDLE,
99
+ FlowState.CONNECTING_WALLET,
100
+ FlowState.ETH_TO_SOL_AUTH,
101
+ FlowState.CHAIN_SELECTION,
102
+ FlowState.AMOUNT_INPUT,
103
+ ],
112
104
  to: FlowState.AMOUNT_INPUT,
113
- // After chain selection
105
+ condition: function (context) {
106
+ return !context.hasActiveSession
107
+ && !context.hasNordAccount;
108
+ }
114
109
  },
115
- // From AMOUNT_INPUT state
110
+ // Global recovery transition (can happen from any state upon recovery)
116
111
  {
117
- from: FlowState.AMOUNT_INPUT,
112
+ from: [
113
+ FlowState.ERROR,
114
+ FlowState.IDLE,
115
+ FlowState.CONNECTING_WALLET,
116
+ FlowState.ETH_TO_SOL_AUTH,
117
+ FlowState.CHAIN_SELECTION,
118
+ FlowState.AMOUNT_INPUT,
119
+ ],
118
120
  to: FlowState.DEPOSIT_PROGRESS,
119
- // After amount input
120
- },
121
- {
122
- from: FlowState.AMOUNT_INPUT,
123
- to: FlowState.CHAIN_SELECTION,
124
- // If user goes back to chain selection
121
+ condition: function (context) {
122
+ return !context.hasActiveSession
123
+ && !context.hasNordAccount;
124
+ }
125
125
  },
126
- // From DEPOSIT_PROGRESS state
126
+ // Global recovery transition (can happen from any state upon recovery)
127
127
  {
128
- from: FlowState.DEPOSIT_PROGRESS,
128
+ from: [
129
+ FlowState.ERROR,
130
+ FlowState.IDLE,
131
+ FlowState.CONNECTING_WALLET,
132
+ FlowState.ETH_TO_SOL_AUTH,
133
+ FlowState.CHAIN_SELECTION,
134
+ FlowState.AMOUNT_INPUT,
135
+ FlowState.DEPOSIT_PROGRESS,
136
+ ],
129
137
  to: FlowState.DEPOSIT_SUCCESS,
130
- // When deposit is successful
131
- },
132
- {
133
- from: FlowState.DEPOSIT_PROGRESS,
134
- to: FlowState.ERROR,
135
- // When deposit fails
136
- },
137
- {
138
- from: FlowState.DEPOSIT_PROGRESS,
139
- to: FlowState.AMOUNT_INPUT,
140
- // When deposit fails but we want to allow retry
138
+ condition: function (context) {
139
+ return !context.hasActiveSession
140
+ && context.hasNordAccount;
141
+ }
141
142
  },
142
- // From DEPOSIT_SUCCESS state
143
+ // Global recovery transition (can happen from any state upon recovery)
143
144
  {
144
- from: FlowState.DEPOSIT_SUCCESS,
145
+ from: [
146
+ FlowState.IDLE,
147
+ FlowState.CONNECTING_WALLET,
148
+ FlowState.ETH_TO_SOL_AUTH,
149
+ FlowState.CHAIN_SELECTION,
150
+ FlowState.AMOUNT_INPUT,
151
+ FlowState.DEPOSIT_PROGRESS,
152
+ FlowState.DEPOSIT_SUCCESS,
153
+ FlowState.ERROR,
154
+ ],
145
155
  to: FlowState.AUTH_LOADING,
146
- condition: function (context) { return !context.hasActiveSession; }, // If no active Nord session
147
- },
148
- {
149
- from: FlowState.DEPOSIT_SUCCESS,
150
- to: FlowState.FINAL_SUCCESS,
151
- condition: function (context) { return context.hasActiveSession; }, // If active Nord session exists
152
- },
153
- {
154
- from: FlowState.AUTH_LOADING,
155
- to: FlowState.ERROR,
156
- // When Nord auth fails to start
156
+ condition: function (context) {
157
+ return !context.hasActiveSession
158
+ && context.hasNordAccount;
159
+ }
157
160
  },
158
- // From AUTH_LOADING state
161
+ // Global recovery transition (can happen from any state upon recovery)
159
162
  {
160
- from: FlowState.AUTH_LOADING,
163
+ from: [
164
+ FlowState.IDLE,
165
+ FlowState.CONNECTING_WALLET,
166
+ FlowState.ETH_TO_SOL_AUTH,
167
+ FlowState.CHAIN_SELECTION,
168
+ FlowState.AMOUNT_INPUT,
169
+ FlowState.DEPOSIT_PROGRESS,
170
+ FlowState.DEPOSIT_SUCCESS,
171
+ FlowState.AUTH_LOADING,
172
+ FlowState.ERROR,
173
+ ],
161
174
  to: FlowState.FINAL_SUCCESS,
162
- // When auth is successful
163
- },
164
- {
165
- from: FlowState.AUTH_LOADING,
166
- to: FlowState.ERROR,
167
- // When auth fails
175
+ condition: function (context) {
176
+ return context.hasActiveSession
177
+ && context.hasNordAccount;
178
+ }
168
179
  },
169
- // From ERROR state
180
+ // Global recovery transition (can happen from any state upon recovery)
170
181
  {
171
- from: FlowState.ERROR,
182
+ from: [
183
+ FlowState.CONNECTING_WALLET,
184
+ FlowState.ETH_TO_SOL_AUTH,
185
+ FlowState.CHAIN_SELECTION,
186
+ FlowState.AMOUNT_INPUT,
187
+ FlowState.DEPOSIT_PROGRESS,
188
+ FlowState.DEPOSIT_SUCCESS,
189
+ FlowState.AUTH_LOADING,
190
+ FlowState.FINAL_SUCCESS,
191
+ FlowState.ERROR,
192
+ ],
172
193
  to: FlowState.IDLE,
173
- // When restarting after error
174
194
  },
175
195
  // Global recovery transition (can happen from any state upon recovery)
176
196
  {
177
197
  from: [
198
+ FlowState.IDLE,
178
199
  FlowState.CONNECTING_WALLET,
179
200
  FlowState.ETH_TO_SOL_AUTH,
180
201
  FlowState.CHAIN_SELECTION,
@@ -182,9 +203,9 @@ export var STATE_TRANSITIONS = [
182
203
  FlowState.DEPOSIT_PROGRESS,
183
204
  FlowState.DEPOSIT_SUCCESS,
184
205
  FlowState.AUTH_LOADING,
206
+ FlowState.FINAL_SUCCESS,
185
207
  ],
186
- to: FlowState.IDLE,
187
- // For recovery after interruption
208
+ to: FlowState.ERROR,
188
209
  },
189
210
  ];
190
211
  /**
@@ -1 +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"]}
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\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n ],\n to: FlowState.CONNECTING_WALLET,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n ],\n to: FlowState.ETH_TO_SOL_AUTH,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n && context.walletType !== 'solana'\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n ],\n to: FlowState.CHAIN_SELECTION,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n ],\n to: FlowState.AMOUNT_INPUT,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n ],\n to: FlowState.DEPOSIT_PROGRESS,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n ],\n to: FlowState.DEPOSIT_SUCCESS,\n condition: (context) =>\n !context.hasActiveSession\n && context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.IDLE,\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.ERROR,\n ],\n to: FlowState.AUTH_LOADING,\n condition: (context) =>\n !context.hasActiveSession\n && context.hasNordAccount\n },\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.IDLE,\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 FlowState.ERROR,\n ],\n to: FlowState.FINAL_SUCCESS,\n condition: (context) =>\n context.hasActiveSession\n && context.hasNordAccount\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 FlowState.FINAL_SUCCESS,\n FlowState.ERROR,\n ],\n to: FlowState.IDLE,\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.IDLE,\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 FlowState.FINAL_SUCCESS,\n ],\n to: FlowState.ERROR,\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,27 @@
1
+ import React from 'react';
2
+ import { TransactionResult } from '../../../Logic/transactionManager';
3
+ export interface DepositContextValue {
4
+ amount: string;
5
+ isDepositing: boolean;
6
+ transactionId: string | null;
7
+ transactionResult: TransactionResult | null;
8
+ authStatus: 'loading' | 'success' | 'error';
9
+ authErrorMessage: string | null;
10
+ authStatusMessage: string | null;
11
+ updateAmount: (newAmount: string) => void;
12
+ startDeposit: () => Promise<void>;
13
+ completeDeposit: () => void;
14
+ performAuth: () => Promise<void>;
15
+ }
16
+ interface DepositProviderProps {
17
+ children: React.ReactNode;
18
+ }
19
+ /**
20
+ * Provider component for the deposit context
21
+ */
22
+ export declare const DepositProvider: React.FC<DepositProviderProps>;
23
+ /**
24
+ * Hook to use the deposit context
25
+ */
26
+ export declare const useDepositContext: () => DepositContextValue;
27
+ export {};