@n1xyz/wallet-widget 0.0.34 → 0.0.35-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/dist/bridge-assist/cctp-solana.d.ts +33 -0
  2. package/dist/bridge-assist/cctp-solana.js +392 -0
  3. package/dist/bridge-assist/cctp-solana.js.map +1 -0
  4. package/dist/main.css +1 -2
  5. package/dist/src/adapters/evm.d.ts +39 -0
  6. package/dist/src/adapters/evm.js +338 -0
  7. package/dist/src/adapters/evm.js.map +1 -0
  8. package/dist/src/adapters/factory.d.ts +37 -0
  9. package/dist/src/adapters/factory.js +82 -0
  10. package/dist/src/adapters/factory.js.map +1 -0
  11. package/dist/src/adapters/index.d.ts +33 -0
  12. package/dist/src/adapters/index.js +36 -0
  13. package/dist/src/adapters/index.js.map +1 -0
  14. package/dist/src/adapters/solana.d.ts +37 -0
  15. package/dist/src/adapters/solana.js +359 -0
  16. package/dist/src/adapters/solana.js.map +1 -0
  17. package/dist/src/adapters/types.d.ts +160 -0
  18. package/dist/src/adapters/types.js +20 -0
  19. package/dist/src/adapters/types.js.map +1 -0
  20. package/dist/src/animations/N1Loader.js.map +1 -0
  21. package/dist/src/animations/N1Loader.json +1 -0
  22. package/dist/src/animations/Processing.js.map +1 -0
  23. package/dist/src/animations/Processing.json +1 -0
  24. package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
  25. package/dist/{components → src/components}/LoadingFallback.js +3 -0
  26. package/dist/src/components/LoadingFallback.js.map +1 -0
  27. package/dist/{components → src/components}/Logo.d.ts +4 -0
  28. package/dist/{components → src/components}/Logo.js +4 -0
  29. package/dist/src/components/Logo.js.map +1 -0
  30. package/dist/src/components/N1ConnectButton.d.ts +13 -0
  31. package/dist/src/components/N1ConnectButton.js +66 -0
  32. package/dist/src/components/N1ConnectButton.js.map +1 -0
  33. package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
  34. package/dist/src/components/logos/BaseLogo.js +6 -0
  35. package/dist/src/components/logos/BaseLogo.js.map +1 -0
  36. package/dist/src/components/logos/BeraLogo.js.map +1 -0
  37. package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
  38. package/dist/src/components/logos/EthereumLogo.js.map +1 -0
  39. package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
  40. package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
  41. package/dist/src/components/logos/OptimismLogo.js.map +1 -0
  42. package/dist/src/components/logos/SolanaLogo.js.map +1 -0
  43. package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
  44. package/dist/src/components/logos/index.js.map +1 -0
  45. package/dist/src/config/chains.d.ts +18 -0
  46. package/dist/src/config/chains.js +58 -0
  47. package/dist/src/config/chains.js.map +1 -0
  48. package/dist/src/config/dynamic.js +18 -0
  49. package/dist/src/config/dynamic.js.map +1 -0
  50. package/dist/src/config/solana.js.map +1 -0
  51. package/dist/src/config/turnkey.d.ts +2 -0
  52. package/dist/{config → src/config}/turnkey.js +9 -12
  53. package/dist/src/config/turnkey.js.map +1 -0
  54. package/dist/src/context/n1-wallet-context.js.map +1 -0
  55. package/dist/src/errors/types.d.ts +72 -0
  56. package/dist/src/errors/types.js +140 -0
  57. package/dist/src/errors/types.js.map +1 -0
  58. package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
  59. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
  60. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
  61. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
  62. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  63. package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
  64. package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
  65. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  66. package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
  67. package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
  68. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  69. package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
  70. package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
  71. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  72. package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
  73. package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
  74. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  75. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
  76. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
  77. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  78. package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
  79. package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
  80. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  81. package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
  82. package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
  83. package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
  84. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
  85. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
  86. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  87. package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
  88. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  89. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  90. package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
  91. package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
  92. package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
  93. package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
  94. package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
  95. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
  96. package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
  97. package/dist/src/features/onboarding-flow/components/Header.js +69 -0
  98. package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
  99. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  100. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
  101. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
  102. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  103. package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
  104. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  105. package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
  106. package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
  107. package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
  108. package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
  109. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
  110. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
  111. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  112. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
  113. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
  114. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  115. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
  116. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
  117. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  118. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
  119. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
  120. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  121. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
  122. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
  123. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  124. package/dist/src/features/onboarding-flow/index.js.map +1 -0
  125. package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
  126. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
  127. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  128. package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
  129. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
  130. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  131. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
  132. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
  133. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  134. package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
  135. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
  136. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  137. package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
  138. package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
  139. package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
  140. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
  141. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
  142. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  143. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
  144. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
  145. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  146. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
  147. package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
  148. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  149. package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.js +8 -1
  150. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  151. package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +8 -1
  152. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  153. package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +11 -11
  154. package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.js +59 -29
  155. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  156. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
  157. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
  158. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  159. package/dist/{features → src/features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts +5 -0
  160. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
  161. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  162. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
  163. package/dist/{features → src/features}/onboarding-flow/screens/07-DepositSuccessScreen.js +11 -5
  164. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  165. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
  166. package/dist/{features → src/features}/onboarding-flow/screens/08-AuthLoadingScreen.js +5 -1
  167. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  168. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
  169. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
  170. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  171. package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
  172. package/dist/src/features/onboarding-flow/screens/index.js +11 -0
  173. package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
  174. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
  175. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
  176. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  177. package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
  178. package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
  179. package/dist/src/features/onboarding-flow/types.js.map +1 -0
  180. package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
  181. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
  182. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  183. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
  184. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
  185. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  186. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
  187. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
  188. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  189. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
  190. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
  191. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  192. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
  193. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
  194. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  195. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
  196. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
  197. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  198. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
  199. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
  200. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  201. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
  202. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
  203. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  204. package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
  205. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
  206. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  207. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
  208. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
  209. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  210. package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
  211. package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
  212. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  213. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
  214. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
  215. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  216. package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
  217. package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
  218. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  219. package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
  220. package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
  221. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  222. package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
  223. package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
  224. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  225. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
  226. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
  227. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  228. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
  229. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
  230. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  231. package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
  232. package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
  233. package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
  234. package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
  235. package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
  236. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  237. package/dist/src/hooks/index.js.map +1 -0
  238. package/dist/src/hooks/useN1Wallet.d.ts +12 -0
  239. package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
  240. package/dist/src/hooks/useN1Wallet.js.map +1 -0
  241. package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
  242. package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
  243. package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
  244. package/dist/src/index.d.ts +9 -0
  245. package/dist/src/index.js +16 -0
  246. package/dist/src/index.js.map +1 -0
  247. package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
  248. package/dist/src/providers/LazyWalletProvider.js +404 -0
  249. package/dist/src/providers/LazyWalletProvider.js.map +1 -0
  250. package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
  251. package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
  252. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  253. package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
  254. package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
  255. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  256. package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
  257. package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
  258. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  259. package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
  260. package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
  261. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  262. package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
  263. package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
  264. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  265. package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
  266. package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
  267. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  268. package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
  269. package/dist/src/providers/N1WalletProvider/index.js +27 -0
  270. package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
  271. package/dist/src/providers/N1WalletProvider.d.ts +17 -0
  272. package/dist/src/providers/N1WalletProvider.js +102 -0
  273. package/dist/src/providers/N1WalletProvider.js.map +1 -0
  274. package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
  275. package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -0
  276. package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
  277. package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
  278. package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
  279. package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
  280. package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
  281. package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
  282. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
  283. package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
  284. package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
  285. package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
  286. package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
  287. package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
  288. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
  289. package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
  290. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
  291. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  292. package/dist/src/services/bootstrap/index.d.ts +13 -0
  293. package/dist/src/services/bootstrap/index.js +16 -0
  294. package/dist/src/services/bootstrap/index.js.map +1 -0
  295. package/dist/src/services/bootstrap/types.d.ts +92 -0
  296. package/dist/src/services/bootstrap/types.js +7 -0
  297. package/dist/src/services/bootstrap/types.js.map +1 -0
  298. package/dist/src/services/storage/StorageService.d.ts +98 -0
  299. package/dist/src/services/storage/StorageService.js +360 -0
  300. package/dist/src/services/storage/StorageService.js.map +1 -0
  301. package/dist/src/services/storage/index.d.ts +9 -0
  302. package/dist/src/services/storage/index.js +10 -0
  303. package/dist/src/services/storage/index.js.map +1 -0
  304. package/dist/src/services/storage/keys.d.ts +28 -0
  305. package/dist/src/services/storage/keys.js +45 -0
  306. package/dist/src/services/storage/keys.js.map +1 -0
  307. package/dist/src/services/storage/types.d.ts +73 -0
  308. package/dist/src/services/storage/types.js +23 -0
  309. package/dist/src/services/storage/types.js.map +1 -0
  310. package/dist/src/store/index.d.ts +8 -0
  311. package/dist/src/store/index.js +24 -0
  312. package/dist/src/store/index.js.map +1 -0
  313. package/dist/src/store/selectors.d.ts +105 -0
  314. package/dist/src/store/selectors.js +183 -0
  315. package/dist/src/store/selectors.js.map +1 -0
  316. package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
  317. package/dist/src/store/slices/bootstrapSlice.js +78 -0
  318. package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
  319. package/dist/src/store/slices/configSlice.d.ts +7 -0
  320. package/dist/src/store/slices/configSlice.js +14 -0
  321. package/dist/src/store/slices/configSlice.js.map +1 -0
  322. package/dist/src/store/slices/index.d.ts +10 -0
  323. package/dist/src/store/slices/index.js +10 -0
  324. package/dist/src/store/slices/index.js.map +1 -0
  325. package/dist/src/store/slices/sessionSlice.d.ts +7 -0
  326. package/dist/src/store/slices/sessionSlice.js +17 -0
  327. package/dist/src/store/slices/sessionSlice.js.map +1 -0
  328. package/dist/src/store/slices/signingSlice.d.ts +7 -0
  329. package/dist/src/store/slices/signingSlice.js +14 -0
  330. package/dist/src/store/slices/signingSlice.js.map +1 -0
  331. package/dist/src/store/slices/uiSlice.d.ts +9 -0
  332. package/dist/src/store/slices/uiSlice.js +25 -0
  333. package/dist/src/store/slices/uiSlice.js.map +1 -0
  334. package/dist/src/store/slices/walletSlice.d.ts +7 -0
  335. package/dist/src/store/slices/walletSlice.js +21 -0
  336. package/dist/src/store/slices/walletSlice.js.map +1 -0
  337. package/dist/src/store/store.d.ts +50 -0
  338. package/dist/src/store/store.js +259 -0
  339. package/dist/src/store/store.js.map +1 -0
  340. package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
  341. package/dist/src/store/subscriptions/depositPersistence.js +106 -0
  342. package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
  343. package/dist/src/store/subscriptions/index.d.ts +34 -0
  344. package/dist/src/store/subscriptions/index.js +73 -0
  345. package/dist/src/store/subscriptions/index.js.map +1 -0
  346. package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
  347. package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
  348. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
  349. package/dist/src/store/types.d.ts +166 -0
  350. package/dist/src/store/types.js +7 -0
  351. package/dist/src/store/types.js.map +1 -0
  352. package/dist/src/styles/cdn-fonts.d.ts +12 -0
  353. package/dist/src/styles/cdn-fonts.js +63 -0
  354. package/dist/src/styles/cdn-fonts.js.map +1 -0
  355. package/dist/src/styles/embedded-main-css.d.ts +2 -0
  356. package/dist/src/styles/embedded-main-css.js +3 -0
  357. package/dist/src/styles/embedded-main-css.js.map +1 -0
  358. package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
  359. package/dist/src/turnkey/TurnkeyProvider.js +695 -0
  360. package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
  361. package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
  362. package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
  363. package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
  364. package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
  365. package/dist/src/turnkey/createWalletProvider.js +286 -0
  366. package/dist/src/turnkey/createWalletProvider.js.map +1 -0
  367. package/dist/src/turnkey/index.d.ts +3 -0
  368. package/dist/src/turnkey/index.js +3 -0
  369. package/dist/src/turnkey/index.js.map +1 -0
  370. package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
  371. package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
  372. package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
  373. package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
  374. package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
  375. package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
  376. package/dist/{turnkey → src/turnkey}/types.d.ts +21 -8
  377. package/dist/src/turnkey/types.js +12 -0
  378. package/dist/src/turnkey/types.js.map +1 -0
  379. package/dist/{types → src/types}/wallet.d.ts +39 -13
  380. package/dist/src/types/wallet.js.map +1 -0
  381. package/dist/src/utils/address.d.ts +130 -0
  382. package/dist/src/utils/address.js +274 -0
  383. package/dist/src/utils/address.js.map +1 -0
  384. package/dist/src/utils/chain.d.ts +89 -0
  385. package/dist/src/utils/chain.js +282 -0
  386. package/dist/src/utils/chain.js.map +1 -0
  387. package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
  388. package/dist/{utils → src/utils}/ed25519.js +4 -19
  389. package/dist/src/utils/ed25519.js.map +1 -0
  390. package/dist/src/utils/errors.d.ts +68 -0
  391. package/dist/src/utils/errors.js +190 -0
  392. package/dist/src/utils/errors.js.map +1 -0
  393. package/dist/src/utils/events.d.ts +124 -0
  394. package/dist/src/utils/events.js +155 -0
  395. package/dist/src/utils/events.js.map +1 -0
  396. package/dist/src/utils/formatAmount.d.ts +4 -0
  397. package/dist/src/utils/formatAmount.js +9 -0
  398. package/dist/src/utils/formatAmount.js.map +1 -0
  399. package/dist/src/utils/logger.d.ts +45 -0
  400. package/dist/{utils → src/utils}/logger.js +68 -2
  401. package/dist/src/utils/logger.js.map +1 -0
  402. package/dist/src/utils/shortenString.d.ts +5 -0
  403. package/dist/src/utils/shortenString.js +16 -0
  404. package/dist/src/utils/shortenString.js.map +1 -0
  405. package/package.json +37 -15
  406. package/dist/animations/N1Loader.js.map +0 -1
  407. package/dist/animations/Processing.js.map +0 -1
  408. package/dist/components/LoadingFallback.js.map +0 -1
  409. package/dist/components/Logo.js.map +0 -1
  410. package/dist/components/N1ConnectButton.d.ts +0 -5
  411. package/dist/components/N1ConnectButton.js +0 -49
  412. package/dist/components/N1ConnectButton.js.map +0 -1
  413. package/dist/components/logos/ArbitrumLogo.js.map +0 -1
  414. package/dist/components/logos/BaseLogo.js +0 -6
  415. package/dist/components/logos/BaseLogo.js.map +0 -1
  416. package/dist/components/logos/BeraLogo.js.map +0 -1
  417. package/dist/components/logos/BitcoinLogo.js.map +0 -1
  418. package/dist/components/logos/EthereumLogo.js.map +0 -1
  419. package/dist/components/logos/HyperliquidLogo.js.map +0 -1
  420. package/dist/components/logos/OptimismLogo.js.map +0 -1
  421. package/dist/components/logos/SolanaLogo.js.map +0 -1
  422. package/dist/components/logos/ZeroOneLogo.js.map +0 -1
  423. package/dist/components/logos/index.js.map +0 -1
  424. package/dist/config/chains.d.ts +0 -0
  425. package/dist/config/chains.js +0 -2
  426. package/dist/config/chains.js.map +0 -1
  427. package/dist/config/dynamic.js +0 -13
  428. package/dist/config/dynamic.js.map +0 -1
  429. package/dist/config/solana.js.map +0 -1
  430. package/dist/config/turnkey.d.ts +0 -2
  431. package/dist/config/turnkey.js.map +0 -1
  432. package/dist/config.d.ts +0 -2
  433. package/dist/config.js +0 -3
  434. package/dist/config.js.map +0 -1
  435. package/dist/context/n1-wallet-context.js.map +0 -1
  436. package/dist/errors/types.d.ts +0 -25
  437. package/dist/errors/types.js +0 -77
  438. package/dist/errors/types.js.map +0 -1
  439. package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
  440. package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  441. package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
  442. package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
  443. package/dist/features/onboarding-flow/components/Header.js +0 -45
  444. package/dist/features/onboarding-flow/components/Header.js.map +0 -1
  445. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  446. package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  447. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  448. package/dist/features/onboarding-flow/components/index.js.map +0 -1
  449. package/dist/features/onboarding-flow/index.js.map +0 -1
  450. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
  451. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  452. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
  453. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  454. package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  455. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
  456. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  457. package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
  458. package/dist/features/onboarding-flow/providers/index.js.map +0 -1
  459. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  460. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
  461. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  462. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts +0 -31
  463. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +0 -100
  464. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
  465. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
  466. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
  467. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
  468. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
  469. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
  470. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
  471. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.d.ts +0 -3
  472. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
  473. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
  474. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +0 -6
  475. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +0 -360
  476. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
  477. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
  478. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +0 -136
  479. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
  480. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
  481. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +0 -31
  482. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
  483. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +0 -31
  484. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
  485. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -1
  486. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
  487. package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
  488. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
  489. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
  490. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -1
  491. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
  492. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +0 -1
  493. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +0 -18
  494. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +0 -1
  495. package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -1
  496. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +0 -14
  497. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
  498. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +0 -1
  499. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +0 -18
  500. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +0 -1
  501. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +0 -1
  502. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +0 -18
  503. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +0 -1
  504. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +0 -1
  505. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +0 -18
  506. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +0 -1
  507. package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
  508. package/dist/features/onboarding-flow/screens/index.js +0 -8
  509. package/dist/features/onboarding-flow/screens/index.js.map +0 -1
  510. package/dist/features/onboarding-flow/types.js.map +0 -1
  511. package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
  512. package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
  513. package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
  514. package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
  515. package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
  516. package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
  517. package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
  518. package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
  519. package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
  520. package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
  521. package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  522. package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
  523. package/dist/features/onboarding-flow/utils/session.js +0 -69
  524. package/dist/features/onboarding-flow/utils/session.js.map +0 -1
  525. package/dist/features/onboarding-flow/utils/transaction.js +0 -8
  526. package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
  527. package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
  528. package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
  529. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  530. package/dist/features/turnkey/createTurnkeyWallet.d.ts +0 -25
  531. package/dist/features/turnkey/createTurnkeyWallet.js +0 -119
  532. package/dist/features/turnkey/createTurnkeyWallet.js.map +0 -1
  533. package/dist/hooks/index.js.map +0 -1
  534. package/dist/hooks/useN1Wallet.d.ts +0 -2
  535. package/dist/hooks/useN1Wallet.js.map +0 -1
  536. package/dist/hooks/useNordUserInitialization.d.ts +0 -1
  537. package/dist/hooks/useNordUserInitialization.js.map +0 -1
  538. package/dist/index.d.ts +0 -7
  539. package/dist/index.js +0 -8
  540. package/dist/index.js.map +0 -1
  541. package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
  542. package/dist/polyfills/windowEthereumGuard.js +0 -28
  543. package/dist/polyfills/windowEthereumGuard.js.map +0 -1
  544. package/dist/providers/LazyWalletProvider.d.ts +0 -1
  545. package/dist/providers/LazyWalletProvider.js +0 -230
  546. package/dist/providers/LazyWalletProvider.js.map +0 -1
  547. package/dist/providers/N1WalletProvider.d.ts +0 -3
  548. package/dist/providers/N1WalletProvider.js +0 -267
  549. package/dist/providers/N1WalletProvider.js.map +0 -1
  550. package/dist/providers/ShadowRootWrapper.js.map +0 -1
  551. package/dist/providers/TurnkeyProviderBridge.d.ts +0 -7
  552. package/dist/providers/TurnkeyProviderBridge.js +0 -20
  553. package/dist/providers/TurnkeyProviderBridge.js.map +0 -1
  554. package/dist/providers/WalletErrorBoundary.js.map +0 -1
  555. package/dist/styles/embedded-main-css.d.ts +0 -2
  556. package/dist/styles/embedded-main-css.js +0 -3
  557. package/dist/styles/embedded-main-css.js.map +0 -1
  558. package/dist/turnkey/TurnkeyProvider.d.ts +0 -9
  559. package/dist/turnkey/TurnkeyProvider.js +0 -378
  560. package/dist/turnkey/TurnkeyProvider.js.map +0 -1
  561. package/dist/turnkey/createWalletProvider.d.ts +0 -3
  562. package/dist/turnkey/createWalletProvider.js +0 -180
  563. package/dist/turnkey/createWalletProvider.js.map +0 -1
  564. package/dist/turnkey/index.d.ts +0 -3
  565. package/dist/turnkey/index.js +0 -3
  566. package/dist/turnkey/index.js.map +0 -1
  567. package/dist/turnkey/types.js +0 -8
  568. package/dist/turnkey/types.js.map +0 -1
  569. package/dist/types/wallet.js.map +0 -1
  570. package/dist/utils/ed25519.js.map +0 -1
  571. package/dist/utils/getPseudoName.d.ts +0 -1
  572. package/dist/utils/getPseudoName.js +0 -5826
  573. package/dist/utils/getPseudoName.js.map +0 -1
  574. package/dist/utils/logger.d.ts +0 -21
  575. package/dist/utils/logger.js.map +0 -1
  576. package/dist/utils/shortenString.d.ts +0 -2
  577. package/dist/utils/shortenString.js +0 -9
  578. package/dist/utils/shortenString.js.map +0 -1
  579. package/dist/utils/turnkeySessionStorage.d.ts +0 -3
  580. package/dist/utils/turnkeySessionStorage.js +0 -33
  581. package/dist/utils/turnkeySessionStorage.js.map +0 -1
  582. package/dist/utils/words.d.ts +0 -9
  583. package/dist/utils/words.js +0 -93572
  584. package/dist/utils/words.js.map +0 -1
  585. /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
  586. /package/dist/{animations → src/animations}/N1Loader.js +0 -0
  587. /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
  588. /package/dist/{animations → src/animations}/Processing.js +0 -0
  589. /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
  590. /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
  591. /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
  592. /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
  593. /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
  594. /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
  595. /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
  596. /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
  597. /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
  598. /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
  599. /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
  600. /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
  601. /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
  602. /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
  603. /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
  604. /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
  605. /package/dist/{components → src/components}/logos/index.d.ts +0 -0
  606. /package/dist/{components → src/components}/logos/index.js +0 -0
  607. /package/dist/{config → src/config}/dynamic.d.ts +0 -0
  608. /package/dist/{config → src/config}/solana.d.ts +0 -0
  609. /package/dist/{config → src/config}/solana.js +0 -0
  610. /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
  611. /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
  612. /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  613. /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +0 -0
  614. /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.js +0 -0
  615. /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
  616. /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
  617. /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
  618. /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
  619. /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
  620. /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
  621. /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
  622. /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
  623. /package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -0
  624. /package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -0
  625. /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  626. /package/dist/{hooks → src/hooks}/index.js +0 -0
  627. /package/dist/{types → src/types}/wallet.js +0 -0
@@ -0,0 +1,319 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, } from 'react';
4
+ import { logger } from '../../utils/logger';
5
+ import { EVENTS, createModalEvent } from '../../utils/events';
6
+ import { useWalletStore, getWalletActions } from '../../store';
7
+ import { MODAL_COOLDOWN_MS } from '../../store/slices/uiSlice';
8
+ // ---------------------------------------------------------------------------
9
+ // Context
10
+ // ---------------------------------------------------------------------------
11
+ var ModalContext = createContext(null);
12
+ // ---------------------------------------------------------------------------
13
+ // Hooks
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Hook to access modal state and actions.
17
+ * Must be used within a ModalProvider.
18
+ */
19
+ export function useModal() {
20
+ var context = useContext(ModalContext);
21
+ if (!context) {
22
+ throw new Error('useModal must be used within a ModalProvider');
23
+ }
24
+ return context;
25
+ }
26
+ /**
27
+ * Hook to access modal state only (no actions).
28
+ * Useful for components that only need to read state.
29
+ */
30
+ export function useModalState() {
31
+ var _a = useModal(), showLogin = _a.showLogin, isOpen = _a.isOpen, isClosing = _a.isClosing, viewMode = _a.viewMode, depositFlowRequestId = _a.depositFlowRequestId, modalState = _a.modalState, showDynamicWidget = _a.showDynamicWidget, dynamicHandleLogOut = _a.dynamicHandleLogOut, disconnectWalletHandler = _a.disconnectWalletHandler, walletConnectCancelledHandler = _a.walletConnectCancelledHandler;
32
+ return { showLogin: showLogin, isOpen: isOpen, isClosing: isClosing, viewMode: viewMode, depositFlowRequestId: depositFlowRequestId, modalState: modalState, showDynamicWidget: showDynamicWidget, dynamicHandleLogOut: dynamicHandleLogOut, disconnectWalletHandler: disconnectWalletHandler, walletConnectCancelledHandler: walletConnectCancelledHandler };
33
+ }
34
+ /**
35
+ * Hook to access modal actions only (no state).
36
+ * Useful for components that only need to trigger actions.
37
+ */
38
+ export function useModalActions() {
39
+ var _a = useModal(), openModal = _a.openModal, closeModal = _a.closeModal, onCloseComplete = _a.onCloseComplete, setViewMode = _a.setViewMode, startDepositFlow = _a.startDepositFlow, setShowDynamicWidget = _a.setShowDynamicWidget, setDynamicHandleLogOut = _a.setDynamicHandleLogOut, setDisconnectWalletHandler = _a.setDisconnectWalletHandler, setWalletConnectCancelledHandler = _a.setWalletConnectCancelledHandler;
40
+ return { openModal: openModal, closeModal: closeModal, onCloseComplete: onCloseComplete, setViewMode: setViewMode, startDepositFlow: startDepositFlow, setShowDynamicWidget: setShowDynamicWidget, setDynamicHandleLogOut: setDynamicHandleLogOut, setDisconnectWalletHandler: setDisconnectWalletHandler, setWalletConnectCancelledHandler: setWalletConnectCancelledHandler };
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // State Machine Helpers
44
+ // ---------------------------------------------------------------------------
45
+ /**
46
+ * Valid state transitions for the modal state machine.
47
+ */
48
+ var VALID_TRANSITIONS = {
49
+ closed: ['opening'],
50
+ opening: ['open', 'closed'],
51
+ open: ['closing'],
52
+ closing: ['closed'],
53
+ };
54
+ /**
55
+ * Check if a transition is valid.
56
+ */
57
+ function isValidTransition(from, to) {
58
+ var _a, _b;
59
+ return (_b = (_a = VALID_TRANSITIONS[from]) === null || _a === void 0 ? void 0 : _a.includes(to)) !== null && _b !== void 0 ? _b : false;
60
+ }
61
+ // ---------------------------------------------------------------------------
62
+ // Provider
63
+ // ---------------------------------------------------------------------------
64
+ /**
65
+ * ModalProvider manages all modal-related state via a state machine.
66
+ *
67
+ * State Machine:
68
+ * closed → opening (user clicks connect)
69
+ * opening → open (SDK ready)
70
+ * opening → closed (cancelled before ready)
71
+ * open → closing (user closes modal)
72
+ * closing → closed (animation complete, cooldown starts)
73
+ *
74
+ * Responsibilities:
75
+ * - Modal state machine transitions
76
+ * - Cooldown protection between open/close cycles
77
+ * - Deposit-only flow initiation
78
+ * - Deferred modal open until Dynamic SDK is ready
79
+ *
80
+ * Does NOT handle:
81
+ * - Wallet connection state
82
+ * - Session/signing state
83
+ * - Network/chain state
84
+ * - Theming/styling
85
+ */
86
+ export function ModalProvider(_a) {
87
+ // -------------------------------------------------------------------------
88
+ // State from Store (UI slice)
89
+ // -------------------------------------------------------------------------
90
+ var children = _a.children;
91
+ var modalState = useWalletStore(function (state) { return state.ui.modalState; });
92
+ var viewMode = useWalletStore(function (state) { return state.ui.viewMode; });
93
+ var depositFlowRequestId = useWalletStore(function (state) { return state.ui.depositFlowRequestId; });
94
+ var modalCooldownUntil = useWalletStore(function (state) { return state.ui.modalCooldownUntil; });
95
+ var showDynamicWidget = useWalletStore(function (state) { return state.ui.showDynamicWidget; });
96
+ var dynamicHandleLogOut = useWalletStore(function (state) { return state.ui.dynamicHandleLogOut; });
97
+ var disconnectWalletHandler = useWalletStore(function (state) { return state.ui.disconnectWalletHandler; });
98
+ var walletConnectCancelledHandler = useWalletStore(function (state) { return state.ui.walletConnectCancelledHandler; });
99
+ // -------------------------------------------------------------------------
100
+ // Dependencies from Store (session slice) - no more prop drilling!
101
+ // -------------------------------------------------------------------------
102
+ var dynamicSdkHasLoaded = useWalletStore(function (state) { return state.session.dynamicSdkLoaded; });
103
+ var nordUser = useWalletStore(function (state) { return state.session.nordUser; });
104
+ // Derived state for backwards compatibility
105
+ var showLogin = modalState !== 'closed';
106
+ var isOpen = modalState === 'open';
107
+ var isClosing = modalState === 'closing';
108
+ // Get stable action references
109
+ var storeActions = getWalletActions().ui;
110
+ // Ref for pending open requests (when SDK not ready)
111
+ var pendingOpenRef = useRef(false);
112
+ // -------------------------------------------------------------------------
113
+ // State Machine Transitions
114
+ // -------------------------------------------------------------------------
115
+ /**
116
+ * Transition to a new modal state with validation.
117
+ */
118
+ var transition = useCallback(function (to) {
119
+ var from = useWalletStore.getState().ui.modalState;
120
+ if (!isValidTransition(from, to)) {
121
+ logger.warn('[ModalProvider] Invalid transition', { from: from, to: to });
122
+ return false;
123
+ }
124
+ logger.debug('[ModalProvider] Transition', { from: from, to: to });
125
+ storeActions.setModalState(to);
126
+ // Log events for analytics
127
+ if (to === 'open') {
128
+ logger.event(createModalEvent(EVENTS.MODAL.OPEN, {}));
129
+ }
130
+ else if (to === 'closed' && from === 'closing') {
131
+ logger.event(createModalEvent(EVENTS.MODAL.CLOSE, {}));
132
+ }
133
+ return true;
134
+ }, [storeActions]);
135
+ // -------------------------------------------------------------------------
136
+ // Modal Actions
137
+ // -------------------------------------------------------------------------
138
+ /**
139
+ * Opens the modal. Handles cooldown and SDK readiness.
140
+ */
141
+ var openModal = useCallback(function () {
142
+ var currentState = useWalletStore.getState().ui.modalState;
143
+ var cooldownUntil = useWalletStore.getState().ui.modalCooldownUntil;
144
+ logger.debug('[ModalProvider] openModal called', {
145
+ currentState: currentState,
146
+ dynamicSdkHasLoaded: dynamicSdkHasLoaded,
147
+ cooldownUntil: cooldownUntil,
148
+ now: Date.now(),
149
+ });
150
+ // Already open or opening
151
+ if (currentState !== 'closed') {
152
+ logger.debug('[ModalProvider] openModal ignored - not in closed state');
153
+ return;
154
+ }
155
+ // Check cooldown
156
+ if (Date.now() < cooldownUntil) {
157
+ logger.debug('[ModalProvider] openModal blocked by cooldown');
158
+ return;
159
+ }
160
+ // Defer if SDK not ready
161
+ if (!dynamicSdkHasLoaded) {
162
+ logger.debug('[ModalProvider] openModal deferred - SDK not ready');
163
+ pendingOpenRef.current = true;
164
+ transition('opening');
165
+ return;
166
+ }
167
+ // Transition to opening, then immediately to open
168
+ transition('opening');
169
+ // Since SDK is ready, go directly to open
170
+ transition('open');
171
+ }, [dynamicSdkHasLoaded, transition]);
172
+ /**
173
+ * Effect: When Dynamic SDK becomes ready, complete pending open.
174
+ */
175
+ useEffect(function () {
176
+ var currentState = useWalletStore.getState().ui.modalState;
177
+ if (dynamicSdkHasLoaded && currentState === 'opening') {
178
+ logger.debug('[ModalProvider] SDK ready, completing open transition');
179
+ pendingOpenRef.current = false;
180
+ transition('open');
181
+ }
182
+ }, [dynamicSdkHasLoaded, transition]);
183
+ /**
184
+ * Closes the modal (starts closing animation).
185
+ */
186
+ var closeModal = useCallback(function () {
187
+ var currentState = useWalletStore.getState().ui.modalState;
188
+ logger.debug('[ModalProvider] closeModal called', { currentState: currentState });
189
+ if (currentState === 'opening') {
190
+ // Cancel before fully open
191
+ transition('closed');
192
+ return;
193
+ }
194
+ if (currentState === 'open') {
195
+ transition('closing');
196
+ return;
197
+ }
198
+ logger.debug('[ModalProvider] closeModal ignored - not in open/opening state');
199
+ }, [transition]);
200
+ /**
201
+ * Called when close animation completes.
202
+ */
203
+ var onCloseComplete = useCallback(function () {
204
+ var currentState = useWalletStore.getState().ui.modalState;
205
+ if (currentState !== 'closing') {
206
+ logger.debug('[ModalProvider] onCloseComplete ignored - not in closing state');
207
+ return;
208
+ }
209
+ // Start cooldown
210
+ var cooldownUntil = Date.now() + MODAL_COOLDOWN_MS;
211
+ storeActions.setModalCooldownUntil(cooldownUntil);
212
+ logger.debug('[ModalProvider] Cooldown started', { cooldownUntil: cooldownUntil });
213
+ // Complete transition
214
+ transition('closed');
215
+ }, [storeActions, transition]);
216
+ /**
217
+ * Sets the view mode for debug overrides.
218
+ */
219
+ var setViewMode = useCallback(function (mode) {
220
+ storeActions.setViewMode(mode);
221
+ }, [storeActions]);
222
+ /**
223
+ * Register the Dynamic SDK widget show function.
224
+ */
225
+ var setShowDynamicWidget = useCallback(function (fn) {
226
+ storeActions.setShowDynamicWidget(fn);
227
+ }, [storeActions]);
228
+ /**
229
+ * Register the Dynamic SDK logout function.
230
+ */
231
+ var setDynamicHandleLogOut = useCallback(function (fn) {
232
+ storeActions.setDynamicHandleLogOut(fn);
233
+ }, [storeActions]);
234
+ /**
235
+ * Register the disconnect wallet handler.
236
+ */
237
+ var setDisconnectWalletHandler = useCallback(function (fn) {
238
+ storeActions.setDisconnectWalletHandler(fn);
239
+ }, [storeActions]);
240
+ /**
241
+ * Register the wallet connect cancelled handler.
242
+ */
243
+ var setWalletConnectCancelledHandler = useCallback(function (fn) {
244
+ storeActions.setWalletConnectCancelledHandler(fn);
245
+ }, [storeActions]);
246
+ // -------------------------------------------------------------------------
247
+ // Deposit-Only Flow
248
+ // -------------------------------------------------------------------------
249
+ /**
250
+ * Initiates a deposit-only flow for users with active sessions.
251
+ * Returns false if no authenticated session exists, triggering fallback to regular flow.
252
+ */
253
+ var startDepositFlow = useCallback(function () {
254
+ if (!nordUser || !nordUser.sessionId) {
255
+ logger.warn('[ModalProvider] startDepositFlow called without authenticated session; falling back to regular flow');
256
+ openModal();
257
+ return false;
258
+ }
259
+ var currentRequestId = useWalletStore.getState().ui.depositFlowRequestId;
260
+ logger.debug('[ModalProvider] starting deposit-only flow', {
261
+ hasSession: Boolean(nordUser.sessionId),
262
+ });
263
+ storeActions.setDepositFlowRequestId(currentRequestId + 1);
264
+ openModal();
265
+ return true;
266
+ }, [nordUser, openModal, storeActions]);
267
+ // -------------------------------------------------------------------------
268
+ // Context Value
269
+ // -------------------------------------------------------------------------
270
+ var value = useMemo(function () { return ({
271
+ // Derived state
272
+ showLogin: showLogin,
273
+ isOpen: isOpen,
274
+ isClosing: isClosing,
275
+ viewMode: viewMode,
276
+ depositFlowRequestId: depositFlowRequestId,
277
+ modalState: modalState,
278
+ showDynamicWidget: showDynamicWidget,
279
+ dynamicHandleLogOut: dynamicHandleLogOut,
280
+ disconnectWalletHandler: disconnectWalletHandler,
281
+ walletConnectCancelledHandler: walletConnectCancelledHandler,
282
+ // Actions
283
+ openModal: openModal,
284
+ closeModal: closeModal,
285
+ onCloseComplete: onCloseComplete,
286
+ setViewMode: setViewMode,
287
+ startDepositFlow: startDepositFlow,
288
+ setShowDynamicWidget: setShowDynamicWidget,
289
+ setDynamicHandleLogOut: setDynamicHandleLogOut,
290
+ setDisconnectWalletHandler: setDisconnectWalletHandler,
291
+ setWalletConnectCancelledHandler: setWalletConnectCancelledHandler,
292
+ }); }, [
293
+ showLogin,
294
+ isOpen,
295
+ isClosing,
296
+ viewMode,
297
+ depositFlowRequestId,
298
+ modalState,
299
+ showDynamicWidget,
300
+ dynamicHandleLogOut,
301
+ disconnectWalletHandler,
302
+ walletConnectCancelledHandler,
303
+ openModal,
304
+ closeModal,
305
+ onCloseComplete,
306
+ setViewMode,
307
+ startDepositFlow,
308
+ setShowDynamicWidget,
309
+ setDynamicHandleLogOut,
310
+ setDisconnectWalletHandler,
311
+ setWalletConnectCancelledHandler,
312
+ ]);
313
+ return _jsx(ModalContext.Provider, { value: value, children: children });
314
+ }
315
+ // ---------------------------------------------------------------------------
316
+ // Exports
317
+ // ---------------------------------------------------------------------------
318
+ export { ModalContext };
319
+ //# sourceMappingURL=ModalProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/ModalProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { N1ModalViewMode } from '../../types/wallet';\nimport { logger } from '../../utils/logger';\nimport { EVENTS, createModalEvent } from '../../utils/events';\nimport { useWalletStore, getWalletActions, WalletStore } from '../../store';\nimport { MODAL_COOLDOWN_MS } from '../../store/slices/uiSlice';\nimport type { ModalState, ShowDynamicWidgetFn, DynamicLogoutFn, DisconnectWalletFn, WalletConnectCancelledFn } from '../../store/types';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface ModalStateValues {\n /** Whether the modal is visible (opening, open, or closing) */\n showLogin: boolean;\n /** Whether the modal is fully open and interactive */\n isOpen: boolean;\n /** Whether the modal is in the process of closing (for animations) */\n isClosing: boolean;\n /** Current view mode for the modal (debug override or Automatic) */\n viewMode: N1ModalViewMode;\n /** Monotonically increasing ID to trigger deposit-only flows */\n depositFlowRequestId: number;\n /** Raw modal state for advanced use cases */\n modalState: ModalState;\n /** Function to show/hide the Dynamic SDK wallet widget */\n showDynamicWidget: ShowDynamicWidgetFn;\n /** Function to handle Dynamic SDK logout */\n dynamicHandleLogOut: DynamicLogoutFn;\n /** Handler called when wallet is disconnected */\n disconnectWalletHandler: DisconnectWalletFn;\n /** Handler called when wallet connection is cancelled */\n walletConnectCancelledHandler: WalletConnectCancelledFn;\n}\n\nexport interface ModalActions {\n /**\n * Opens the modal (transitions: closed → opening → open).\n * Subject to cooldown and SDK readiness checks.\n */\n openModal: () => void;\n /**\n * Closes the modal (transitions: open → closing → closed).\n * Triggers exit animation and cooldown.\n */\n closeModal: () => void;\n /**\n * Called when close animation completes.\n * Transitions: closing → closed, starts cooldown.\n */\n onCloseComplete: () => void;\n /**\n * Sets the view mode for debug overrides.\n * Use N1ModalViewMode.Automatic for normal operation.\n */\n setViewMode: (mode: N1ModalViewMode) => void;\n /**\n * Initiates a deposit-only flow for authenticated users.\n * Returns true if the flow was started, false if fallback to regular flow.\n */\n startDepositFlow: () => boolean;\n /**\n * Register the Dynamic SDK widget show function.\n */\n setShowDynamicWidget: (fn: ShowDynamicWidgetFn) => void;\n /**\n * Register the Dynamic SDK logout function.\n */\n setDynamicHandleLogOut: (fn: DynamicLogoutFn) => void;\n /**\n * Register the disconnect wallet handler.\n */\n setDisconnectWalletHandler: (fn: DisconnectWalletFn) => void;\n /**\n * Register the wallet connect cancelled handler.\n */\n setWalletConnectCancelledHandler: (fn: WalletConnectCancelledFn) => void;\n}\n\nexport interface ModalContextValue extends ModalStateValues, ModalActions {}\n\nexport interface ModalProviderProps {\n children: React.ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst ModalContext = createContext<ModalContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access modal state and actions.\n * Must be used within a ModalProvider.\n */\nexport function useModal(): ModalContextValue {\n const context = useContext(ModalContext);\n if (!context) {\n throw new Error('useModal must be used within a ModalProvider');\n }\n return context;\n}\n\n/**\n * Hook to access modal state only (no actions).\n * Useful for components that only need to read state.\n */\nexport function useModalState(): ModalStateValues {\n const { showLogin, isOpen, isClosing, viewMode, depositFlowRequestId, modalState, showDynamicWidget, dynamicHandleLogOut, disconnectWalletHandler, walletConnectCancelledHandler } = useModal();\n return { showLogin, isOpen, isClosing, viewMode, depositFlowRequestId, modalState, showDynamicWidget, dynamicHandleLogOut, disconnectWalletHandler, walletConnectCancelledHandler };\n}\n\n/**\n * Hook to access modal actions only (no state).\n * Useful for components that only need to trigger actions.\n */\nexport function useModalActions(): ModalActions {\n const { openModal, closeModal, onCloseComplete, setViewMode, startDepositFlow, setShowDynamicWidget, setDynamicHandleLogOut, setDisconnectWalletHandler, setWalletConnectCancelledHandler } = useModal();\n return { openModal, closeModal, onCloseComplete, setViewMode, startDepositFlow, setShowDynamicWidget, setDynamicHandleLogOut, setDisconnectWalletHandler, setWalletConnectCancelledHandler };\n}\n\n// ---------------------------------------------------------------------------\n// State Machine Helpers\n// ---------------------------------------------------------------------------\n\n/**\n * Valid state transitions for the modal state machine.\n */\nconst VALID_TRANSITIONS: Record<ModalState, ModalState[]> = {\n closed: ['opening'],\n opening: ['open', 'closed'],\n open: ['closing'],\n closing: ['closed'],\n};\n\n/**\n * Check if a transition is valid.\n */\nfunction isValidTransition(from: ModalState, to: ModalState): boolean {\n return VALID_TRANSITIONS[from]?.includes(to) ?? false;\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * ModalProvider manages all modal-related state via a state machine.\n *\n * State Machine:\n * closed → opening (user clicks connect)\n * opening → open (SDK ready)\n * opening → closed (cancelled before ready)\n * open → closing (user closes modal)\n * closing → closed (animation complete, cooldown starts)\n *\n * Responsibilities:\n * - Modal state machine transitions\n * - Cooldown protection between open/close cycles\n * - Deposit-only flow initiation\n * - Deferred modal open until Dynamic SDK is ready\n *\n * Does NOT handle:\n * - Wallet connection state\n * - Session/signing state\n * - Network/chain state\n * - Theming/styling\n */\nexport function ModalProvider({ children }: ModalProviderProps) {\n // -------------------------------------------------------------------------\n // State from Store (UI slice)\n // -------------------------------------------------------------------------\n\n const modalState = useWalletStore((state: WalletStore) => state.ui.modalState);\n const viewMode = useWalletStore((state: WalletStore) => state.ui.viewMode);\n const depositFlowRequestId = useWalletStore((state: WalletStore) => state.ui.depositFlowRequestId);\n const modalCooldownUntil = useWalletStore((state: WalletStore) => state.ui.modalCooldownUntil);\n const showDynamicWidget = useWalletStore((state: WalletStore) => state.ui.showDynamicWidget);\n const dynamicHandleLogOut = useWalletStore((state: WalletStore) => state.ui.dynamicHandleLogOut);\n const disconnectWalletHandler = useWalletStore((state: WalletStore) => state.ui.disconnectWalletHandler);\n const walletConnectCancelledHandler = useWalletStore((state: WalletStore) => state.ui.walletConnectCancelledHandler);\n\n // -------------------------------------------------------------------------\n // Dependencies from Store (session slice) - no more prop drilling!\n // -------------------------------------------------------------------------\n\n const dynamicSdkHasLoaded = useWalletStore((state: WalletStore) => state.session.dynamicSdkLoaded);\n const nordUser = useWalletStore((state: WalletStore) => state.session.nordUser);\n\n // Derived state for backwards compatibility\n const showLogin = modalState !== 'closed';\n const isOpen = modalState === 'open';\n const isClosing = modalState === 'closing';\n\n // Get stable action references\n const storeActions = getWalletActions().ui;\n\n // Ref for pending open requests (when SDK not ready)\n const pendingOpenRef = useRef(false);\n\n // -------------------------------------------------------------------------\n // State Machine Transitions\n // -------------------------------------------------------------------------\n\n /**\n * Transition to a new modal state with validation.\n */\n const transition = useCallback(\n (to: ModalState) => {\n const from = useWalletStore.getState().ui.modalState;\n\n if (!isValidTransition(from, to)) {\n logger.warn('[ModalProvider] Invalid transition', { from, to });\n return false;\n }\n\n logger.debug('[ModalProvider] Transition', { from, to });\n storeActions.setModalState(to);\n\n // Log events for analytics\n if (to === 'open') {\n logger.event(createModalEvent(EVENTS.MODAL.OPEN, {}));\n } else if (to === 'closed' && from === 'closing') {\n logger.event(createModalEvent(EVENTS.MODAL.CLOSE, {}));\n }\n\n return true;\n },\n [storeActions]\n );\n\n // -------------------------------------------------------------------------\n // Modal Actions\n // -------------------------------------------------------------------------\n\n /**\n * Opens the modal. Handles cooldown and SDK readiness.\n */\n const openModal = useCallback(() => {\n const currentState = useWalletStore.getState().ui.modalState;\n const cooldownUntil = useWalletStore.getState().ui.modalCooldownUntil;\n\n logger.debug('[ModalProvider] openModal called', {\n currentState,\n dynamicSdkHasLoaded,\n cooldownUntil,\n now: Date.now(),\n });\n\n // Already open or opening\n if (currentState !== 'closed') {\n logger.debug('[ModalProvider] openModal ignored - not in closed state');\n return;\n }\n\n // Check cooldown\n if (Date.now() < cooldownUntil) {\n logger.debug('[ModalProvider] openModal blocked by cooldown');\n return;\n }\n\n // Defer if SDK not ready\n if (!dynamicSdkHasLoaded) {\n logger.debug('[ModalProvider] openModal deferred - SDK not ready');\n pendingOpenRef.current = true;\n transition('opening');\n return;\n }\n\n // Transition to opening, then immediately to open\n transition('opening');\n // Since SDK is ready, go directly to open\n transition('open');\n }, [dynamicSdkHasLoaded, transition]);\n\n /**\n * Effect: When Dynamic SDK becomes ready, complete pending open.\n */\n useEffect(() => {\n const currentState = useWalletStore.getState().ui.modalState;\n\n if (dynamicSdkHasLoaded && currentState === 'opening') {\n logger.debug('[ModalProvider] SDK ready, completing open transition');\n pendingOpenRef.current = false;\n transition('open');\n }\n }, [dynamicSdkHasLoaded, transition]);\n\n /**\n * Closes the modal (starts closing animation).\n */\n const closeModal = useCallback(() => {\n const currentState = useWalletStore.getState().ui.modalState;\n\n logger.debug('[ModalProvider] closeModal called', { currentState });\n\n if (currentState === 'opening') {\n // Cancel before fully open\n transition('closed');\n return;\n }\n\n if (currentState === 'open') {\n transition('closing');\n return;\n }\n\n logger.debug('[ModalProvider] closeModal ignored - not in open/opening state');\n }, [transition]);\n\n /**\n * Called when close animation completes.\n */\n const onCloseComplete = useCallback(() => {\n const currentState = useWalletStore.getState().ui.modalState;\n\n if (currentState !== 'closing') {\n logger.debug('[ModalProvider] onCloseComplete ignored - not in closing state');\n return;\n }\n\n // Start cooldown\n const cooldownUntil = Date.now() + MODAL_COOLDOWN_MS;\n storeActions.setModalCooldownUntil(cooldownUntil);\n logger.debug('[ModalProvider] Cooldown started', { cooldownUntil });\n\n // Complete transition\n transition('closed');\n }, [storeActions, transition]);\n\n /**\n * Sets the view mode for debug overrides.\n */\n const setViewMode = useCallback(\n (mode: N1ModalViewMode) => {\n storeActions.setViewMode(mode);\n },\n [storeActions]\n );\n\n /**\n * Register the Dynamic SDK widget show function.\n */\n const setShowDynamicWidget = useCallback(\n (fn: ShowDynamicWidgetFn) => {\n storeActions.setShowDynamicWidget(fn);\n },\n [storeActions]\n );\n\n /**\n * Register the Dynamic SDK logout function.\n */\n const setDynamicHandleLogOut = useCallback(\n (fn: DynamicLogoutFn) => {\n storeActions.setDynamicHandleLogOut(fn);\n },\n [storeActions]\n );\n\n /**\n * Register the disconnect wallet handler.\n */\n const setDisconnectWalletHandler = useCallback(\n (fn: DisconnectWalletFn) => {\n storeActions.setDisconnectWalletHandler(fn);\n },\n [storeActions]\n );\n\n /**\n * Register the wallet connect cancelled handler.\n */\n const setWalletConnectCancelledHandler = useCallback(\n (fn: WalletConnectCancelledFn) => {\n storeActions.setWalletConnectCancelledHandler(fn);\n },\n [storeActions]\n );\n\n // -------------------------------------------------------------------------\n // Deposit-Only Flow\n // -------------------------------------------------------------------------\n\n /**\n * Initiates a deposit-only flow for users with active sessions.\n * Returns false if no authenticated session exists, triggering fallback to regular flow.\n */\n const startDepositFlow = useCallback(() => {\n if (!nordUser || !nordUser.sessionId) {\n logger.warn(\n '[ModalProvider] startDepositFlow called without authenticated session; falling back to regular flow'\n );\n openModal();\n return false;\n }\n\n const currentRequestId = useWalletStore.getState().ui.depositFlowRequestId;\n\n logger.debug('[ModalProvider] starting deposit-only flow', {\n hasSession: Boolean(nordUser.sessionId),\n });\n\n storeActions.setDepositFlowRequestId(currentRequestId + 1);\n openModal();\n return true;\n }, [nordUser, openModal, storeActions]);\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<ModalContextValue>(\n () => ({\n // Derived state\n showLogin,\n isOpen,\n isClosing,\n viewMode,\n depositFlowRequestId,\n modalState,\n showDynamicWidget,\n dynamicHandleLogOut,\n disconnectWalletHandler,\n walletConnectCancelledHandler,\n // Actions\n openModal,\n closeModal,\n onCloseComplete,\n setViewMode,\n startDepositFlow,\n setShowDynamicWidget,\n setDynamicHandleLogOut,\n setDisconnectWalletHandler,\n setWalletConnectCancelledHandler,\n }),\n [\n showLogin,\n isOpen,\n isClosing,\n viewMode,\n depositFlowRequestId,\n modalState,\n showDynamicWidget,\n dynamicHandleLogOut,\n disconnectWalletHandler,\n walletConnectCancelledHandler,\n openModal,\n closeModal,\n onCloseComplete,\n setViewMode,\n startDepositFlow,\n setShowDynamicWidget,\n setDynamicHandleLogOut,\n setDisconnectWalletHandler,\n setWalletConnectCancelledHandler,\n ]\n );\n\n return <ModalContext.Provider value={value}>{children}</ModalContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { ModalContext };\n"]}
@@ -0,0 +1,88 @@
1
+ import React from 'react';
2
+ import type { SolanaWalletAdapter, EVMWalletAdapter } from '../../adapters';
3
+ import type { Balance } from '../../types/wallet';
4
+ export type WalletNetworkType = 'solana' | 'evm' | null;
5
+ export interface NetworkState {
6
+ /** Current active wallet network */
7
+ walletNetwork: WalletNetworkType;
8
+ /** Whether the wallet is in Solana mode */
9
+ isSolanaMode: boolean;
10
+ /** Whether the wallet is in EVM mode */
11
+ isEvmMode: boolean;
12
+ /** Solana wallet address */
13
+ solanaAddress: string;
14
+ /** EVM wallet address */
15
+ evmAddress: string | null;
16
+ /** Current EVM chain identifier */
17
+ evmChain: string | null;
18
+ /** User's preferred wallet network (before wallet connects) */
19
+ preferredWalletNetwork: WalletNetworkType;
20
+ /** The connected Solana wallet instance */
21
+ solanaWallet: any;
22
+ /** The connected EVM wallet instance */
23
+ evmWallet: any;
24
+ /** Unified Solana wallet adapter (null if not connected) */
25
+ solanaAdapter: SolanaWalletAdapter | null;
26
+ /** Unified EVM wallet adapter (null if not connected) */
27
+ evmAdapter: EVMWalletAdapter | null;
28
+ /** Token balances from the wallet */
29
+ balances: Balance[];
30
+ }
31
+ export interface NetworkActions {
32
+ /** Set the Solana wallet address */
33
+ setSolanaAddress: (address: string) => void;
34
+ /** Set the EVM wallet address */
35
+ setEvmAddress: React.Dispatch<React.SetStateAction<string | null>>;
36
+ /** Set the current EVM chain */
37
+ setEvmChain: React.Dispatch<React.SetStateAction<string | null>>;
38
+ /** Set the preferred wallet network */
39
+ setPreferredWalletNetwork: (network: WalletNetworkType) => void;
40
+ /** Set the Solana wallet instance */
41
+ setSolanaWallet: (wallet: any) => void;
42
+ /** Set the EVM wallet instance */
43
+ setEvmWallet: (wallet: any) => void;
44
+ /** Set the token balances */
45
+ setBalances: (balances: Balance[]) => void;
46
+ }
47
+ export interface NetworkContextValue extends NetworkState, NetworkActions {
48
+ }
49
+ export interface NetworkProviderProps {
50
+ children: React.ReactNode;
51
+ }
52
+ declare const NetworkContext: React.Context<NetworkContextValue | null>;
53
+ /**
54
+ * Hook to access network state and actions.
55
+ * Must be used within a NetworkProvider.
56
+ */
57
+ export declare function useNetwork(): NetworkContextValue;
58
+ /**
59
+ * Hook to access network state only (no actions).
60
+ * Useful for components that only need to read state.
61
+ */
62
+ export declare function useNetworkState(): NetworkState;
63
+ /**
64
+ * Hook to access network actions only (no state).
65
+ * Useful for components that only need to trigger actions.
66
+ */
67
+ export declare function useNetworkActions(): NetworkActions;
68
+ /**
69
+ * NetworkProvider manages wallet network state.
70
+ *
71
+ * Responsibilities:
72
+ * - Track which network is active (Solana vs EVM)
73
+ * - Store wallet addresses for both networks
74
+ * - Store wallet instances
75
+ * - Derive isSolanaMode/isEvmMode from walletNetwork
76
+ * - Auto-detect network from connected wallet
77
+ *
78
+ * Does NOT handle:
79
+ * - Modal state
80
+ * - Session/authentication state
81
+ * - Signing functions
82
+ * - Theming
83
+ *
84
+ * NOTE: Uses clean Zustand approach - reads/writes directly from store.
85
+ * TurnkeyProvider was fixed to not reset during bootstrap, preventing race conditions.
86
+ */
87
+ export declare function NetworkProvider({ children }: NetworkProviderProps): import("react/jsx-runtime").JSX.Element;
88
+ export { NetworkContext };