@n1xyz/wallet-widget 0.0.28 → 0.0.30

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 (169) hide show
  1. package/README.md +89 -11
  2. package/dist/Logic/sessionManager.js +8 -8
  3. package/dist/Logic/sessionManager.js.map +1 -1
  4. package/dist/Logic/transactionManager.d.ts +0 -22
  5. package/dist/Logic/transactionManager.js +0 -189
  6. package/dist/Logic/transactionManager.js.map +1 -1
  7. package/dist/Logic/utils.d.ts +3 -7
  8. package/dist/Logic/utils.js +3 -186
  9. package/dist/Logic/utils.js.map +1 -1
  10. package/dist/Modal/LoadingFallback.js +1 -1
  11. package/dist/Modal/LoadingFallback.js.map +1 -1
  12. package/dist/Modal/N1WalletModal.d.ts +1 -1
  13. package/dist/Modal/N1WalletModal.js +50 -205
  14. package/dist/Modal/N1WalletModal.js.map +1 -1
  15. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -1
  16. package/dist/Modal/NordFlow/NordFlow.js +44 -17
  17. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  18. package/dist/Modal/NordFlow/components/ChainButton.d.ts +5 -2
  19. package/dist/Modal/NordFlow/components/ChainButton.js +16 -13
  20. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
  21. package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +2 -1
  22. package/dist/Modal/NordFlow/components/EVMChainsButton.js +11 -9
  23. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
  24. package/dist/Modal/NordFlow/components/Header.d.ts +3 -1
  25. package/dist/Modal/NordFlow/components/Header.js +38 -4
  26. package/dist/Modal/NordFlow/components/Header.js.map +1 -1
  27. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
  28. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
  29. package/dist/Modal/NordFlow/components/MoreButton.d.ts +1 -1
  30. package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
  31. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
  32. package/dist/Modal/NordFlow/components/TransactionTable.d.ts +1 -1
  33. package/dist/Modal/NordFlow/components/TransactionTable.js +11 -11
  34. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  35. package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +3 -1
  36. package/dist/Modal/NordFlow/components/WaitingMessage.js +14 -3
  37. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
  38. package/dist/Modal/NordFlow/components/index.d.ts +0 -1
  39. package/dist/Modal/NordFlow/components/index.js +0 -1
  40. package/dist/Modal/NordFlow/components/index.js.map +1 -1
  41. package/dist/Modal/NordFlow/constants.js +12 -48
  42. package/dist/Modal/NordFlow/constants.js.map +1 -1
  43. package/dist/Modal/NordFlow/context/DepositContext.js +112 -41
  44. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -1
  45. package/dist/Modal/NordFlow/context/FlowContext.d.ts +1 -0
  46. package/dist/Modal/NordFlow/context/FlowContext.js +99 -6
  47. package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -1
  48. package/dist/Modal/NordFlow/context/WalletConnectContext.js +76 -20
  49. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -1
  50. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -1
  51. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.d.ts +18 -0
  52. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js +181 -0
  53. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js.map +1 -0
  54. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -1
  55. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +10 -15
  56. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  57. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.d.ts +1 -0
  58. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js +115 -0
  59. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js.map +1 -0
  60. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.d.ts +4 -0
  61. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js +298 -0
  62. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js.map +1 -0
  63. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.d.ts +1 -0
  64. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js +29 -0
  65. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js.map +1 -0
  66. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.d.ts +1 -0
  67. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js +131 -0
  68. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js.map +1 -0
  69. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.d.ts +1 -0
  70. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js +37 -0
  71. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js.map +1 -0
  72. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.d.ts +5 -0
  73. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js +39 -0
  74. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js.map +1 -0
  75. package/dist/Modal/NordFlow/screens/08-ErrorScreen.d.ts +1 -0
  76. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js +68 -0
  77. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js.map +1 -0
  78. package/dist/Modal/NordFlow/screens/index.d.ts +5 -9
  79. package/dist/Modal/NordFlow/screens/index.js +5 -9
  80. package/dist/Modal/NordFlow/screens/index.js.map +1 -1
  81. package/dist/Modal/NordFlow/types.d.ts +13 -3
  82. package/dist/Modal/NordFlow/types.js +4 -3
  83. package/dist/Modal/NordFlow/types.js.map +1 -1
  84. package/dist/Modal/NordFlow/utils/depositStorage.d.ts +4 -0
  85. package/dist/Modal/NordFlow/utils/depositStorage.js +48 -0
  86. package/dist/Modal/NordFlow/utils/depositStorage.js.map +1 -0
  87. package/dist/Modal/NordFlow/utils/nordUtils.d.ts +1 -1
  88. package/dist/Modal/NordFlow/utils/nordUtils.js +1 -1
  89. package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -1
  90. package/dist/Provider/LazyWalletProvider.d.ts +1 -1
  91. package/dist/Provider/LazyWalletProvider.js +38 -38
  92. package/dist/Provider/LazyWalletProvider.js.map +1 -1
  93. package/dist/Provider/N1WalletProvider.d.ts +2 -1
  94. package/dist/Provider/N1WalletProvider.js +85 -82
  95. package/dist/Provider/N1WalletProvider.js.map +1 -1
  96. package/dist/Provider/ShadowRootWrapper.d.ts +1 -1
  97. package/dist/Provider/WalletErrorBoundary.d.ts +9 -2
  98. package/dist/Provider/WalletErrorBoundary.js +19 -1
  99. package/dist/Provider/WalletErrorBoundary.js.map +1 -1
  100. package/dist/Provider/hooks/useNordUserInitialization.js +87 -35
  101. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
  102. package/dist/Provider/icons/CoinbaseWalletIcon.d.ts +1 -1
  103. package/dist/Provider/icons/ConnectionDotsSVG.d.ts +1 -1
  104. package/dist/Provider/icons/MetamaskIcon.d.ts +1 -1
  105. package/dist/Provider/icons/PhantomIcon.d.ts +1 -1
  106. package/dist/Provider/icons/UserIcon.d.ts +1 -1
  107. package/dist/Provider/icons/WalletConnectIcon.d.ts +1 -1
  108. package/dist/Provider/types.d.ts +18 -16
  109. package/dist/Provider/types.js +8 -2
  110. package/dist/Provider/types.js.map +1 -1
  111. package/dist/WidgetButton/N1ConnectButton.d.ts +1 -1
  112. package/dist/WidgetButton/N1ConnectButton.js +29 -10
  113. package/dist/WidgetButton/N1ConnectButton.js.map +1 -1
  114. package/dist/animations/N1Loader.d.ts +11 -0
  115. package/dist/animations/N1Loader.js +42 -0
  116. package/dist/animations/N1Loader.js.map +1 -0
  117. package/dist/animations/N1Loader.json +1 -0
  118. package/dist/animations/Processing.d.ts +11 -0
  119. package/dist/animations/Processing.js +42 -0
  120. package/dist/animations/Processing.js.map +1 -0
  121. package/dist/animations/Processing.json +1 -0
  122. package/dist/components/Logo.d.ts +2 -1
  123. package/dist/components/Logo.js +5 -2
  124. package/dist/components/Logo.js.map +1 -1
  125. package/dist/components/QRCodeLoader.d.ts +1 -1
  126. package/dist/components/QRCodeLoader.js +1 -1
  127. package/dist/components/QRCodeLoader.js.map +1 -1
  128. package/dist/components/logos/EVMChainsGroup.js +1 -1
  129. package/dist/components/logos/EVMChainsGroup.js.map +1 -1
  130. package/dist/components/logos/MoreChainsGroup.js +1 -1
  131. package/dist/components/logos/MoreChainsGroup.js.map +1 -1
  132. package/dist/components/logos/index.d.ts +0 -2
  133. package/dist/components/logos/index.js +0 -2
  134. package/dist/components/logos/index.js.map +1 -1
  135. package/dist/config/solana.d.ts +3 -15
  136. package/dist/config/solana.js +6 -29
  137. package/dist/config/solana.js.map +1 -1
  138. package/dist/embedded-main-css.d.ts +1 -1
  139. package/dist/embedded-main-css.js +1 -1
  140. package/dist/embedded-main-css.js.map +1 -1
  141. package/dist/fonts/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
  142. package/dist/fonts/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
  143. package/dist/fonts/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
  144. package/dist/fonts/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
  145. package/dist/fonts/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
  146. package/dist/fonts/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
  147. package/dist/fonts/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
  148. package/dist/fonts/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
  149. package/dist/fonts/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
  150. package/dist/fonts/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
  151. package/dist/fonts/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
  152. package/dist/fonts/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
  153. package/dist/fonts/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
  154. package/dist/fonts/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
  155. package/dist/index.d.ts +2 -0
  156. package/dist/index.js +2 -0
  157. package/dist/index.js.map +1 -1
  158. package/dist/main.css +2 -2
  159. package/dist/polyfills/windowEthereumGuard.d.ts +6 -0
  160. package/dist/polyfills/windowEthereumGuard.js +28 -0
  161. package/dist/polyfills/windowEthereumGuard.js.map +1 -0
  162. package/dist/utils/dynamicNord.d.ts +2 -0
  163. package/dist/utils/dynamicNord.js +59 -0
  164. package/dist/utils/dynamicNord.js.map +1 -0
  165. package/dist/utils/ed25519.d.ts +8 -0
  166. package/dist/utils/ed25519.js +87 -0
  167. package/dist/utils/ed25519.js.map +1 -0
  168. package/package.json +26 -11
  169. package/dist/utils/dynamicImports.d.ts +0 -25
@@ -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-n1-ww-gray-800 dark:text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-600 dark:hover:text-n1-ww-main-400 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-ww-gray-800 dark:text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-600 dark:hover:text-n1-ww-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-ww-gray-900 dark:text-n1-ww-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-ww-gray-100 dark:bg-n1-ww-gray-950 border border-n1-ww-gray-200 dark:border-n1-ww-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-ww-gray-500 dark:text-n1-ww-gray-600 hover:text-n1-ww-gray-500 dark:hover:text-n1-ww-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-ww-gray-500 dark:text-n1-ww-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-ww-main-500 dark:bg-n1-ww-main-400 n1-ww-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-emerald-500 font-medium';\n }\n if (value.toLowerCase().includes('pending')) {\n return 'text-amber-400 font-medium';\n }\n if (\n value.toLowerCase().includes('fail') ||\n value.toLowerCase().includes('error')\n ) {\n return 'text-red-400 font-medium';\n }\n }\n\n if (key === 'tx') {\n return 'text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-400 transition-colors duration-200';\n }\n\n if (key === 'network') {\n return 'text-purple-400 font-medium';\n }\n\n if (key === 'from' || key === 'to') {\n return 'text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-400 transition-colors duration-200';\n }\n\n if (key === 'amount') {\n return 'text-emerald-500 font-semibold';\n }\n\n return 'text-n1-ww-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-ww-gray-950 border border-n1-ww-border 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-ww-gray-600 hover:text-n1-ww-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-ww-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-ww-main-400 n1-ww-animate-pulse\"></span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import { WaitingMessageState } from '../types';
2
2
  interface WaitingMessageProps {
3
3
  message: WaitingMessageState;
4
+ loaderSize?: number;
5
+ animation?: 'loader' | 'transfer';
4
6
  }
5
- export declare function WaitingMessage({ message }: WaitingMessageProps): JSX.Element;
7
+ export declare function WaitingMessage({ message, loaderSize, animation, }: WaitingMessageProps): import("react/jsx-runtime").JSX.Element;
6
8
  export {};
@@ -1,7 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { LoadingSquares } from './LoadingSquares';
2
+ import { N1LoaderAnimation } from '../../../animations/N1Loader';
3
+ import { SolanaLogo } from '../../../components/logos';
4
+ import Logo from '../../../components/Logo';
3
5
  export function WaitingMessage(_a) {
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-n1-ww-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-ww-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
+ var message = _a.message, _b = _a.loaderSize, loaderSize = _b === void 0 ? 48 : _b, _c = _a.animation, animation = _c === void 0 ? 'loader' : _c;
7
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center", children: [animation === 'loader' ? (_jsx(N1LoaderAnimation, { size: loaderSize })) : (_jsx(TransferWaveAnimation, {})), _jsxs("div", { className: "text-center w-[300px] my-4", children: [_jsx("h3", { className: "text-sm text-white transition-all duration-300 h-[32px] flex items-center justify-center relative", children: _jsx("div", { className: "absolute", children: message.visible && message.title }) }), _jsx("div", { className: "text-xs flex items-center justify-center relative mt-2 font-light", children: _jsx("div", { className: "absolute", children: message.visible && message.subtitle }) })] })] }));
6
8
  }
9
+ var DOT_INDICES = Array.from({ length: 7 }, function (_, index) { return index; });
10
+ var TransferWaveAnimation = function () { return (_jsx("div", { className: "flex w-full items-center justify-center", "aria-label": "Solana deposit moving into N1", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "relative h-7 w-7 rounded-full bg-gradient-to-br from-black via-neutral-900 to-neutral-800 p-px shadow-[0_12px_30px_rgba(0,0,0,0.6)]", children: _jsx("div", { className: "flex h-full w-full items-center justify-center rounded-full bg-black text-white", children: _jsx(SolanaLogo, { width: 14, height: 14 }) }) }), _jsx("div", { className: "flex items-center gap-[3px]", children: DOT_INDICES.map(function (index) {
11
+ return (_jsx("span", { className: "n1-ww-animate-transfer-dot n1-ww-force-motion rounded-full bg-n1-ww-main/90 shadow-[0_0_10px_rgba(245,94,43,0.45)]", style: {
12
+ width: '2.5px',
13
+ height: '2.5px',
14
+ animationDelay: "".concat(index * 0.12, "s"),
15
+ animationDuration: '1.6s',
16
+ }, "aria-hidden": "true" }, "wave-dot-".concat(index)));
17
+ }) }), _jsx("div", { className: "relative h-7 w-7 rounded-full bg-n1-ww-gray-800/70 p-px shadow-[0_12px_30px_rgba(0,0,0,0.6)]", children: _jsx("div", { className: "flex h-full w-full items-center justify-center rounded-full bg-[#1b1b1b]", children: _jsx(Logo, { size: 12, className: "text-n1-ww-main/90" }) }) })] }) })); };
7
18
  //# 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,0IAA0I,aACtJ,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,sGAAsG,aACnH,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-ww-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-ww-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,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAQ5C,MAAM,UAAU,cAAc,CAAC,EAIT;QAHpB,OAAO,aAAA,EACP,kBAAe,EAAf,UAAU,mBAAG,EAAE,KAAA,EACf,iBAAoB,EAApB,SAAS,mBAAG,QAAQ,KAAA;IAEpB,OAAO,CACL,eAAK,SAAS,EAAC,2CAA2C,aACvD,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CACxB,KAAC,iBAAiB,IAAC,IAAI,EAAE,UAAU,GAAI,CACxC,CAAC,CAAC,CAAC,CACF,KAAC,qBAAqB,KAAG,CAC1B,EACD,eAAK,SAAS,EAAC,4BAA4B,aACzC,aAAI,SAAS,EAAC,mGAAmG,YAC/G,cAAK,SAAS,EAAC,UAAU,YACtB,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,GAC7B,GACH,EACL,cAAK,SAAS,EAAC,mEAAmE,YAChF,cAAK,SAAS,EAAC,UAAU,YACtB,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,GAChC,GACF,IACF,IACF,CACP,CAAC;AACJ,CAAC;AAED,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;AAEnE,IAAM,qBAAqB,GAAG,cAAM,OAAA,CAClC,cACE,SAAS,EAAC,yCAAyC,gBACxC,+BAA+B,YAE1C,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,qIAAqI,YAClJ,cAAK,SAAS,EAAC,iFAAiF,YAC9F,KAAC,UAAU,IAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,GACjC,GACF,EACN,cAAK,SAAS,EAAC,6BAA6B,YACzC,WAAW,CAAC,GAAG,CAAC,UAAC,KAAK;oBACrB,OAAO,CACL,eAEE,SAAS,EAAC,oHAAoH,EAC9H,KAAK,EAAE;4BACL,KAAK,EAAE,OAAO;4BACd,MAAM,EAAE,OAAO;4BACf,cAAc,EAAE,UAAG,KAAK,GAAG,IAAI,MAAG;4BAClC,iBAAiB,EAAE,MAAM;yBAC1B,iBACW,MAAM,IARb,mBAAY,KAAK,CAAE,CASxB,CACH,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,cAAK,SAAS,EAAC,8FAA8F,YAC3G,cAAK,SAAS,EAAC,0EAA0E,YACvF,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,oBAAoB,GAAG,GAC7C,GACF,IACF,GACF,CACP,EAnCmC,CAmCnC,CAAC","sourcesContent":["import { WaitingMessageState } from '../types';\nimport { N1LoaderAnimation } from '../../../animations/N1Loader';\nimport { SolanaLogo } from '../../../components/logos';\nimport Logo from '../../../components/Logo';\n\ninterface WaitingMessageProps {\n message: WaitingMessageState;\n loaderSize?: number;\n animation?: 'loader' | 'transfer';\n}\n\nexport function WaitingMessage({\n message,\n loaderSize = 48,\n animation = 'loader',\n}: WaitingMessageProps) {\n return (\n <div className=\"flex flex-col items-center justify-center\">\n {animation === 'loader' ? (\n <N1LoaderAnimation size={loaderSize} />\n ) : (\n <TransferWaveAnimation />\n )}\n <div className=\"text-center w-[300px] my-4\">\n <h3 className=\"text-sm text-white transition-all duration-300 h-[32px] flex items-center justify-center relative\"> \n <div className=\"absolute\">\n {message.visible && message.title}\n </div>\n </h3>\n <div className=\"text-xs flex items-center justify-center relative mt-2 font-light\">\n <div className=\"absolute\">\n {message.visible && message.subtitle}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nconst DOT_INDICES = Array.from({ length: 7 }, (_, index) => index);\n\nconst TransferWaveAnimation = () => (\n <div\n className=\"flex w-full items-center justify-center\"\n aria-label=\"Solana deposit moving into N1\"\n >\n <div className=\"flex items-center gap-2\">\n <div className=\"relative h-7 w-7 rounded-full bg-gradient-to-br from-black via-neutral-900 to-neutral-800 p-px shadow-[0_12px_30px_rgba(0,0,0,0.6)]\">\n <div className=\"flex h-full w-full items-center justify-center rounded-full bg-black text-white\">\n <SolanaLogo width={14} height={14} />\n </div>\n </div>\n <div className=\"flex items-center gap-[3px]\">\n {DOT_INDICES.map((index) => {\n return (\n <span\n key={`wave-dot-${index}`}\n className=\"n1-ww-animate-transfer-dot n1-ww-force-motion rounded-full bg-n1-ww-main/90 shadow-[0_0_10px_rgba(245,94,43,0.45)]\"\n style={{\n width: '2.5px',\n height: '2.5px',\n animationDelay: `${index * 0.12}s`,\n animationDuration: '1.6s',\n }}\n aria-hidden=\"true\"\n />\n );\n })}\n </div>\n <div className=\"relative h-7 w-7 rounded-full bg-n1-ww-gray-800/70 p-px shadow-[0_12px_30px_rgba(0,0,0,0.6)]\">\n <div className=\"flex h-full w-full items-center justify-center rounded-full bg-[#1b1b1b]\">\n <Logo size={12} className=\"text-n1-ww-main/90\" />\n </div>\n </div>\n </div>\n </div>\n);\n"]}
@@ -1,6 +1,5 @@
1
1
  export * from './ImageWithFallback';
2
2
  export * from './ChainButton';
3
- export * from './LoadingSquares';
4
3
  export * from './TransactionTable';
5
4
  export * from './WaitingMessage';
6
5
  export * from './Header';
@@ -1,6 +1,5 @@
1
1
  export * from './ImageWithFallback';
2
2
  export * from './ChainButton';
3
- export * from './LoadingSquares';
4
3
  export * from './TransactionTable';
5
4
  export * from './WaitingMessage';
6
5
  export * from './Header';
@@ -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;AACjC,cAAc,UAAU,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './LoadingSquares';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\nexport * from './Header';\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,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\nexport * from './Header';\n"]}
@@ -55,7 +55,6 @@ export var STATE_TRANSITIONS = [
55
55
  {
56
56
  from: [
57
57
  FlowState.ERROR,
58
- FlowState.IDLE,
59
58
  ],
60
59
  to: FlowState.CONNECTING_WALLET,
61
60
  condition: function (context) {
@@ -63,27 +62,16 @@ export var STATE_TRANSITIONS = [
63
62
  && !context.hasNordAccount;
64
63
  }
65
64
  },
66
- // Global recovery transition (can happen from any state upon recovery)
65
+ // Allow navigating back to chain selection from the amount input screen
67
66
  {
68
- from: [
69
- FlowState.ERROR,
70
- FlowState.IDLE,
71
- FlowState.CONNECTING_WALLET,
72
- ],
73
- to: FlowState.ETH_TO_SOL_AUTH,
74
- condition: function (context) {
75
- return !context.hasActiveSession
76
- && !context.hasNordAccount
77
- && context.walletType !== 'solana';
78
- }
67
+ from: FlowState.AMOUNT_INPUT,
68
+ to: FlowState.CHAIN_SELECTION,
79
69
  },
80
70
  // Global recovery transition (can happen from any state upon recovery)
81
71
  {
82
72
  from: [
83
73
  FlowState.ERROR,
84
- FlowState.IDLE,
85
74
  FlowState.CONNECTING_WALLET,
86
- FlowState.ETH_TO_SOL_AUTH,
87
75
  ],
88
76
  to: FlowState.CHAIN_SELECTION,
89
77
  condition: function (context) {
@@ -95,57 +83,52 @@ export var STATE_TRANSITIONS = [
95
83
  {
96
84
  from: [
97
85
  FlowState.ERROR,
98
- FlowState.IDLE,
99
86
  FlowState.CONNECTING_WALLET,
100
- FlowState.ETH_TO_SOL_AUTH,
101
87
  FlowState.CHAIN_SELECTION,
102
88
  FlowState.AMOUNT_INPUT,
103
89
  ],
104
90
  to: FlowState.AMOUNT_INPUT,
105
91
  condition: function (context) {
106
- return !context.hasActiveSession
107
- && !context.hasNordAccount;
92
+ return context.isDepositOnlyFlow
93
+ || (!context.hasActiveSession
94
+ && !context.hasNordAccount);
108
95
  }
109
96
  },
110
97
  // Global recovery transition (can happen from any state upon recovery)
111
98
  {
112
99
  from: [
113
100
  FlowState.ERROR,
114
- FlowState.IDLE,
115
101
  FlowState.CONNECTING_WALLET,
116
- FlowState.ETH_TO_SOL_AUTH,
117
102
  FlowState.CHAIN_SELECTION,
118
103
  FlowState.AMOUNT_INPUT,
119
104
  ],
120
105
  to: FlowState.DEPOSIT_PROGRESS,
121
106
  condition: function (context) {
122
- return !context.hasActiveSession
123
- && !context.hasNordAccount;
107
+ return context.isDepositOnlyFlow
108
+ || (!context.hasActiveSession
109
+ && !context.hasNordAccount);
124
110
  }
125
111
  },
126
112
  // Global recovery transition (can happen from any state upon recovery)
127
113
  {
128
114
  from: [
129
115
  FlowState.ERROR,
130
- FlowState.IDLE,
131
116
  FlowState.CONNECTING_WALLET,
132
- FlowState.ETH_TO_SOL_AUTH,
133
117
  FlowState.CHAIN_SELECTION,
134
118
  FlowState.AMOUNT_INPUT,
135
119
  FlowState.DEPOSIT_PROGRESS,
136
120
  ],
137
121
  to: FlowState.DEPOSIT_SUCCESS,
138
122
  condition: function (context) {
139
- return !context.hasActiveSession
140
- && context.hasNordAccount;
123
+ return context.isDepositOnlyFlow
124
+ || (!context.hasActiveSession
125
+ && context.hasNordAccount);
141
126
  }
142
127
  },
143
128
  // Global recovery transition (can happen from any state upon recovery)
144
129
  {
145
130
  from: [
146
- FlowState.IDLE,
147
131
  FlowState.CONNECTING_WALLET,
148
- FlowState.ETH_TO_SOL_AUTH,
149
132
  FlowState.CHAIN_SELECTION,
150
133
  FlowState.AMOUNT_INPUT,
151
134
  FlowState.DEPOSIT_PROGRESS,
@@ -161,9 +144,7 @@ export var STATE_TRANSITIONS = [
161
144
  // Global recovery transition (can happen from any state upon recovery)
162
145
  {
163
146
  from: [
164
- FlowState.IDLE,
165
147
  FlowState.CONNECTING_WALLET,
166
- FlowState.ETH_TO_SOL_AUTH,
167
148
  FlowState.CHAIN_SELECTION,
168
149
  FlowState.AMOUNT_INPUT,
169
150
  FlowState.DEPOSIT_PROGRESS,
@@ -181,23 +162,6 @@ export var STATE_TRANSITIONS = [
181
162
  {
182
163
  from: [
183
164
  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
- ],
193
- to: FlowState.IDLE,
194
- },
195
- // Global recovery transition (can happen from any state upon recovery)
196
- {
197
- from: [
198
- FlowState.IDLE,
199
- FlowState.CONNECTING_WALLET,
200
- FlowState.ETH_TO_SOL_AUTH,
201
165
  FlowState.CHAIN_SELECTION,
202
166
  FlowState.AMOUNT_INPUT,
203
167
  FlowState.DEPOSIT_PROGRESS,
@@ -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\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"]}
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 ],\n to: FlowState.CONNECTING_WALLET,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Allow navigating back to chain selection from the amount input screen\n {\n from: FlowState.AMOUNT_INPUT,\n to: FlowState.CHAIN_SELECTION,\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.CONNECTING_WALLET,\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.CONNECTING_WALLET,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n ],\n to: FlowState.AMOUNT_INPUT,\n condition: (context) =>\n context.isDepositOnlyFlow\n || (\n !context.hasActiveSession\n && !context.hasNordAccount\n )\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.CONNECTING_WALLET,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n ],\n to: FlowState.DEPOSIT_PROGRESS,\n condition: (context) =>\n context.isDepositOnlyFlow\n || (\n !context.hasActiveSession\n && !context.hasNordAccount\n )\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.CONNECTING_WALLET,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n ],\n to: FlowState.DEPOSIT_SUCCESS,\n condition: (context) =>\n context.isDepositOnlyFlow\n || (\n !context.hasActiveSession\n && context.hasNordAccount\n )\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.CONNECTING_WALLET,\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.CONNECTING_WALLET,\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.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"]}
@@ -37,10 +37,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  import { jsx as _jsx } from "react/jsx-runtime";
38
38
  import { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
39
39
  import { getExplorerUrl, } from '../../../Logic/transactionManager';
40
- import { useN1WalletContext, useN1WalletInternalContext, } from '../../../Provider/hooks';
40
+ import { useN1WalletContext } from '../../../Provider/hooks';
41
41
  import { logger } from '../../../utils/logger';
42
+ import { AVAILABLE_CHAINS } from '../constants';
42
43
  import { FlowState } from '../types';
43
44
  import { useFlowStateContext } from './FlowContext';
45
+ import { clearLastDepositRecord, saveLastDepositRecord } from '../utils/depositStorage';
44
46
  // Create the context with a default value
45
47
  var DepositContext = createContext(undefined);
46
48
  /**
@@ -49,10 +51,9 @@ var DepositContext = createContext(undefined);
49
51
  export var DepositProvider = function (_a) {
50
52
  var children = _a.children;
51
53
  // Get flow state context
52
- var _b = useFlowStateContext(), state = _b.state, context = _b.context, transition = _b.transition, updateContext = _b.updateContext;
54
+ var _b = useFlowStateContext(), state = _b.state, context = _b.context, transition = _b.transition, updateContext = _b.updateContext, isDebugOverride = _b.isDebugOverride;
53
55
  // Get wallet context
54
- var _c = useN1WalletContext(), address = _c.address, nord = _c.nord, signMessageWithSessionKey = _c.signMessageWithSessionKey, nordUser = _c.nordUser;
55
- var sessionMode = useN1WalletInternalContext().sessionMode;
56
+ var _c = useN1WalletContext(), address = _c.address, nord = _c.nord, nordUser = _c.nordUser;
56
57
  // chain
57
58
  var _d = useState(context.selectedChain), selectedChain = _d[0], setSelectedChain = _d[1];
58
59
  // transaction & deposit
@@ -73,6 +74,8 @@ export var DepositProvider = function (_a) {
73
74
  logger.error('Flow error:', error);
74
75
  transition(FlowState.ERROR, { error: error });
75
76
  }, [transition]);
77
+ var authInFlightRef = useRef(false);
78
+ var waitingForNordUserRef = useRef(false);
76
79
  /**
77
80
  * Authenticate session
78
81
  */
@@ -81,12 +84,22 @@ export var DepositProvider = function (_a) {
81
84
  return __generator(this, function (_a) {
82
85
  switch (_a.label) {
83
86
  case 0:
84
- _a.trys.push([0, 3, , 4]);
87
+ if (authInFlightRef.current) {
88
+ return [2 /*return*/];
89
+ }
90
+ authInFlightRef.current = true;
91
+ _a.label = 1;
92
+ case 1:
93
+ _a.trys.push([1, 4, 5, 6]);
85
94
  // Step 1: Tell user to sign transaction
86
95
  setAuthStatusMessage('Please sign the transaction to authenticate your session');
87
96
  if (!nordUser) {
88
- throw new Error('Nord user is not initialized');
97
+ waitingForNordUserRef.current = true;
98
+ setAuthStatus('loading');
99
+ setAuthStatusMessage('Preparing your Nord session…');
100
+ return [2 /*return*/];
89
101
  }
102
+ waitingForNordUserRef.current = false;
90
103
  // Step 2: Call nordUser.refreshSession and get sessionId
91
104
  setAuthStatusMessage('Session is being authenticated...');
92
105
  sessionPubKey = nordUser.sessionPubKey;
@@ -94,13 +107,14 @@ export var DepositProvider = function (_a) {
94
107
  throw new Error('Session public key is not available');
95
108
  }
96
109
  // Refresh the session
97
- return [4 /*yield*/, nordUser.refreshSession(sessionPubKey)];
98
- case 1:
110
+ return [4 /*yield*/, nordUser.refreshSession()];
111
+ case 2:
99
112
  // Refresh the session
100
113
  _a.sent();
101
114
  return [4 /*yield*/, nordUser.updateAccountId()];
102
- case 2:
115
+ case 3:
103
116
  _a.sent();
117
+ console.log('nordUser', nordUser);
104
118
  sessionId = nordUser.sessionId;
105
119
  if (!sessionId) {
106
120
  throw new Error('Failed to get session ID after refresh');
@@ -120,17 +134,33 @@ export var DepositProvider = function (_a) {
120
134
  setTimeout(function () {
121
135
  transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true, hasNordAccount: true });
122
136
  }, 100);
123
- return [3 /*break*/, 4];
124
- case 3:
137
+ return [3 /*break*/, 6];
138
+ case 4:
125
139
  error_1 = _a.sent();
126
140
  console.error('Authentication error:', error_1);
127
141
  setAuthStatus('error');
128
142
  setAuthErrorMessage(error_1 instanceof Error ? error_1.message : 'Unknown error occurred');
129
- return [3 /*break*/, 4];
130
- case 4: return [2 /*return*/];
143
+ return [3 /*break*/, 6];
144
+ case 5:
145
+ authInFlightRef.current = false;
146
+ return [7 /*endfinally*/];
147
+ case 6: return [2 /*return*/];
131
148
  }
132
149
  });
133
- }); }, [updateContext, transition, address, nordUser]);
150
+ }); }, [
151
+ updateContext,
152
+ transition,
153
+ address,
154
+ nordUser,
155
+ setAuthStatus,
156
+ setAuthStatusMessage,
157
+ setAuthErrorMessage,
158
+ ]);
159
+ useEffect(function () {
160
+ if (waitingForNordUserRef.current && nordUser) {
161
+ performAuth();
162
+ }
163
+ }, [nordUser, performAuth]);
134
164
  /**
135
165
  * Update amount for deposit
136
166
  */
@@ -147,9 +177,10 @@ export var DepositProvider = function (_a) {
147
177
  * Start deposit process
148
178
  */
149
179
  var startDeposit = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
150
- var usdcToken, txId, accountInitialized, i, exists, result, depositError_1, errorMessage;
151
- return __generator(this, function (_a) {
152
- switch (_a.label) {
180
+ var usdcToken, txId, accountInitialized, i, exists, result, depositRecord, depositError_1, errorMessage;
181
+ var _a, _b, _c;
182
+ return __generator(this, function (_d) {
183
+ switch (_d.label) {
153
184
  case 0:
154
185
  if (isDepositing)
155
186
  return [2 /*return*/];
@@ -160,29 +191,29 @@ export var DepositProvider = function (_a) {
160
191
  }
161
192
  setIsDepositing(true);
162
193
  transition(FlowState.DEPOSIT_PROGRESS);
163
- _a.label = 1;
194
+ _d.label = 1;
164
195
  case 1:
165
- _a.trys.push([1, 8, , 9]);
196
+ _d.trys.push([1, 8, , 9]);
166
197
  usdcToken = nord.tokens.find(function (t) { return t.symbol === 'USDC'; });
167
198
  return [4 /*yield*/, nordUser.depositSpl(parseFloat(amount), usdcToken.tokenId)];
168
199
  case 2:
169
- txId = _a.sent();
200
+ txId = _d.sent();
170
201
  accountInitialized = false;
171
202
  i = 0;
172
- _a.label = 3;
203
+ _d.label = 3;
173
204
  case 3:
174
205
  if (!(i < 70)) return [3 /*break*/, 7];
175
206
  return [4 /*yield*/, (nord === null || nord === void 0 ? void 0 : nord.getUser({ pubkey: address }))];
176
207
  case 4:
177
- exists = _a.sent();
208
+ exists = _d.sent();
178
209
  if (exists) {
179
210
  accountInitialized = true;
180
211
  return [3 /*break*/, 7];
181
212
  }
182
213
  return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 5000); })];
183
214
  case 5:
184
- _a.sent();
185
- _a.label = 6;
215
+ _d.sent();
216
+ _d.label = 6;
186
217
  case 6:
187
218
  i++;
188
219
  return [3 /*break*/, 3];
@@ -202,14 +233,28 @@ export var DepositProvider = function (_a) {
202
233
  status: 'Completed',
203
234
  explorerUrl: getExplorerUrl(txId),
204
235
  };
236
+ depositRecord = {
237
+ transactionId: txId,
238
+ amount: amount,
239
+ tokenSymbol: 'USDC',
240
+ chainId: (_a = context.selectedChainId) !== null && _a !== void 0 ? _a : (selectedChain !== null && selectedChain !== void 0 ? selectedChain : 'solana'),
241
+ chainName: (_b = context.selectedChain) !== null && _b !== void 0 ? _b : (selectedChain !== null && selectedChain !== void 0 ? selectedChain : 'Solana'),
242
+ chainNetwork: (_c = context.selectedChainNetwork) !== null && _c !== void 0 ? _c : null,
243
+ timestamp: Date.now(),
244
+ };
245
+ saveLastDepositRecord(address, depositRecord);
205
246
  // Update state with transaction result
206
247
  setTransactionId(txId);
207
248
  setTransactionResult(result);
208
249
  logger.debug('Transaction completed successfully');
209
- transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId, hasNordAccount: true });
250
+ transition(FlowState.DEPOSIT_SUCCESS, {
251
+ transactionId: txId,
252
+ hasNordAccount: true,
253
+ lastDeposit: depositRecord,
254
+ });
210
255
  return [3 /*break*/, 9];
211
256
  case 8:
212
- depositError_1 = _a.sent();
257
+ depositError_1 = _d.sent();
213
258
  logger.warn('Error using depositSpl, falling back to mock implementation:', depositError_1);
214
259
  setIsDepositing(false);
215
260
  errorMessage = depositError_1 instanceof Error
@@ -227,36 +272,42 @@ export var DepositProvider = function (_a) {
227
272
  selectedChain,
228
273
  amount,
229
274
  address,
230
- sessionMode,
231
275
  transition,
232
276
  handleError,
233
277
  nord,
234
- signMessageWithSessionKey,
235
278
  nordUser,
279
+ context.selectedChain,
280
+ context.selectedChainId,
281
+ context.selectedChainNetwork,
236
282
  ]);
237
283
  /**
238
284
  * Complete the deposit process and move to the next screen
239
285
  */
240
286
  var completeDeposit = useCallback(function () {
287
+ clearLastDepositRecord(address);
288
+ updateContext({ lastDeposit: null });
289
+ if (context.isDepositOnlyFlow) {
290
+ transition(FlowState.FINAL_SUCCESS, {
291
+ hasNordAccount: true,
292
+ hasActiveSession: true,
293
+ isDepositOnlyFlow: false,
294
+ });
295
+ return;
296
+ }
241
297
  // Check if user has an active session to determine the next state
242
298
  if (context.hasActiveSession) {
243
299
  // If user has an active session, go directly to FINAL_SUCCESS
244
- transition(FlowState.FINAL_SUCCESS, { hasNordAccount: true, hasActiveSession: true });
300
+ transition(FlowState.FINAL_SUCCESS, {
301
+ hasNordAccount: true,
302
+ hasActiveSession: true,
303
+ isDepositOnlyFlow: false,
304
+ });
245
305
  }
246
306
  else {
247
- // Check if there's a sessionId stored in localStorage
248
- var sessionIdKey = "n1_sessionId_".concat(address);
249
- var storedSessionId = localStorage.getItem(sessionIdKey);
250
- if (storedSessionId !== null) {
251
- // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
252
- transition(FlowState.FINAL_SUCCESS, { hasNordAccount: true, hasActiveSession: true });
253
- }
254
- else {
255
- // If user doesn't have an active session and no sessionId in localStorage, go to NORD_AUTH
256
- transition(FlowState.AUTH_LOADING, { hasNordAccount: true });
257
- }
307
+ // If user doesn't have an active session, go to authentication flow
308
+ transition(FlowState.AUTH_LOADING, { hasNordAccount: true });
258
309
  }
259
- }, [context.hasActiveSession, transition, address]);
310
+ }, [context.hasActiveSession, context.isDepositOnlyFlow, transition, address, updateContext]);
260
311
  // Create the context value
261
312
  var contextValue = {
262
313
  amount: amount,
@@ -289,6 +340,26 @@ export var DepositProvider = function (_a) {
289
340
  // Update the ref to the current context
290
341
  prevContextRef.current = context;
291
342
  }, [context]);
343
+ useEffect(function () {
344
+ var _a, _b, _c, _d;
345
+ if (!isDebugOverride || state !== FlowState.DEPOSIT_SUCCESS || transactionResult) {
346
+ return;
347
+ }
348
+ var mockTransactionId = (_a = context.transactionId) !== null && _a !== void 0 ? _a : 'debug-tx-12345';
349
+ var fallbackChain = (_d = (_b = context.selectedChain) !== null && _b !== void 0 ? _b : (_c = AVAILABLE_CHAINS[0]) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : 'Solana';
350
+ setTransactionId(mockTransactionId);
351
+ setTransactionResult({
352
+ success: true,
353
+ transactionId: mockTransactionId,
354
+ amount: context.amount || '1,250',
355
+ tokenSymbol: 'USDC',
356
+ fromAddress: address || 'Debug Wallet',
357
+ toAddress: 'Nord Account',
358
+ networkName: fallbackChain,
359
+ status: 'Completed',
360
+ explorerUrl: getExplorerUrl(mockTransactionId),
361
+ });
362
+ }, [isDebugOverride, state, transactionResult, context, address]);
292
363
  return (_jsx(DepositContext.Provider, { value: contextValue, children: children }));
293
364
  };
294
365
  /**