@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 @@
1
+ {"version":3,"file":"StorageService.js","sourceRoot":"","sources":["../../../../src/services/storage/StorageService.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Storage Service\n *\n * Unified abstraction for localStorage operations.\n * Handles browser/server environments, provides typed getters/setters,\n * and centralizes all storage logic.\n */\n\nimport { logger } from '../../utils/logger';\nimport {\n ACTIVE_PENDING_DEPOSIT_KEY,\n TURNKEY_SESSION_KEY,\n TURNKEY_CLIENT_WALLET_KEY,\n PENDING_DEPOSITS_META_KEY,\n getLastDepositKey,\n} from './keys';\nimport type {\n PendingDepositState,\n StoredPendingDeposit,\n StoredDepositRecord,\n StoredTurnkeySession,\n LegacyPendingDeposit,\n PendingDepositStage,\n} from './types';\nimport { DEPOSIT_STAGE_ORDER, getStageRank } from './types';\n\n// ============================================\n// STORAGE BACKEND\n// ============================================\n\ntype StorageLike = Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;\n\n/** In-memory fallback for Node/test environments */\nconst memoryStorage: StorageLike = (() => {\n const map = new Map<string, string>();\n return {\n getItem: (k: string) => (map.has(k) ? (map.get(k) as string) : null),\n setItem: (k: string, v: string) => {\n map.set(k, v);\n },\n removeItem: (k: string) => {\n map.delete(k);\n },\n };\n})();\n\n/** Get the appropriate storage backend */\nconst getStorage = (): StorageLike => {\n if (typeof globalThis !== 'undefined' && typeof (globalThis as any).localStorage !== 'undefined') {\n const ls = (globalThis as any).localStorage as Storage;\n if (ls && typeof ls.getItem === 'function') {\n return ls;\n }\n }\n return memoryStorage;\n};\n\n// ============================================\n// DEPOSIT TTL CONSTANTS\n// ============================================\n\nconst MAX_DEPOSIT_TTL_MS = 48 * 60 * 60 * 1000; // 48 hours\nconst FAILED_DEPOSIT_TTL_MS = 30 * 60 * 1000; // 30 minutes\n\n// ============================================\n// STORAGE SERVICE\n// ============================================\n\nexport const StorageService = {\n // ============================================\n // PENDING DEPOSIT OPERATIONS\n // ============================================\n\n /**\n * Read the active pending deposit from storage.\n * Returns null if expired or invalid.\n */\n readPendingDeposit(now: number = Date.now()): PendingDepositState | null {\n const storage = getStorage();\n const raw = storage.getItem(ACTIVE_PENDING_DEPOSIT_KEY);\n if (!raw) return null;\n\n try {\n const parsed = JSON.parse(raw) as StoredPendingDeposit;\n if (!parsed || typeof parsed !== 'object') return null;\n if (!parsed.depositId || !parsed.wallet) return null;\n\n const stage: PendingDepositStage =\n parsed.stage && DEPOSIT_STAGE_ORDER.includes(parsed.stage) ? parsed.stage : 'initiated';\n\n const updatedAt = parsed.updatedAt ?? now;\n const ttl = stage === 'failed' ? FAILED_DEPOSIT_TTL_MS : MAX_DEPOSIT_TTL_MS;\n\n if (now - updatedAt > ttl) {\n this.clearPendingDeposit();\n return null;\n }\n\n return {\n depositId: parsed.depositId,\n wallet: parsed.wallet,\n chain: parsed.chain || '',\n amount: parsed.amount ?? '',\n stage,\n tx: parsed.tx ?? null,\n mintTx: parsed.mintTx ?? null,\n attestationId: parsed.attestationId ?? null,\n explorerUrl: parsed.explorerUrl ?? null,\n reason: parsed.reason ?? null,\n updatedAt,\n };\n } catch {\n this.clearPendingDeposit();\n return null;\n }\n },\n\n /**\n * Write a pending deposit to storage.\n */\n writePendingDeposit(state: PendingDepositState, now: number = Date.now()): PendingDepositState {\n const storage = getStorage();\n\n const stored: StoredPendingDeposit = {\n depositId: state.depositId,\n wallet: state.wallet,\n chain: state.chain,\n amount: state.amount,\n stage: state.stage,\n tx: state.tx ?? null,\n mintTx: state.mintTx ?? null,\n attestationId: state.attestationId ?? null,\n explorerUrl: state.explorerUrl ?? null,\n reason: state.reason ?? null,\n updatedAt: now,\n };\n\n try {\n storage.setItem(ACTIVE_PENDING_DEPOSIT_KEY, JSON.stringify(stored));\n } catch (e) {\n logger.warn('[StorageService] Failed to write pending deposit', { error: e });\n }\n\n return { ...state, updatedAt: now };\n },\n\n /**\n * Clear the active pending deposit.\n */\n clearPendingDeposit(): void {\n const storage = getStorage();\n storage.removeItem(ACTIVE_PENDING_DEPOSIT_KEY);\n },\n\n // ============================================\n // COMPLETED DEPOSIT OPERATIONS\n // ============================================\n\n /**\n * Save a completed deposit record for a wallet address.\n */\n saveLastDeposit(address: string | null | undefined, record: StoredDepositRecord): void {\n if (!address || !record || !record.transactionId) return;\n const storage = getStorage();\n\n try {\n storage.setItem(getLastDepositKey(address), JSON.stringify(record));\n } catch (e) {\n logger.warn('[StorageService] Failed to save last deposit', { error: e });\n }\n },\n\n /**\n * Read the last completed deposit for a wallet address.\n */\n readLastDeposit(address: string | null | undefined): StoredDepositRecord | null {\n if (!address) return null;\n const storage = getStorage();\n\n try {\n const raw = storage.getItem(getLastDepositKey(address));\n if (!raw) return null;\n return JSON.parse(raw) as StoredDepositRecord;\n } catch {\n storage.removeItem(getLastDepositKey(address));\n return null;\n }\n },\n\n /**\n * Clear the last deposit record for a wallet address.\n */\n clearLastDeposit(address: string | null | undefined): void {\n if (!address) return;\n const storage = getStorage();\n storage.removeItem(getLastDepositKey(address));\n },\n\n // ============================================\n // TURNKEY SESSION OPERATIONS\n // ============================================\n\n /**\n * Read the stored Turnkey session.\n */\n readTurnkeySession(address?: string | null): StoredTurnkeySession | null {\n const storage = getStorage();\n\n try {\n const raw = storage.getItem(TURNKEY_SESSION_KEY);\n if (!raw) return null;\n\n const parsed = JSON.parse(raw) as StoredTurnkeySession;\n if (!parsed || typeof parsed !== 'object' || !parsed.sessionKey) {\n return null;\n }\n\n // If address provided, validate it matches\n if (address) {\n const normalized = address.toLowerCase();\n const sessionAddress = parsed.evmAddress?.toLowerCase();\n if (sessionAddress && sessionAddress !== normalized) {\n return null;\n }\n }\n\n return parsed;\n } catch (e) {\n logger.warn('[StorageService] Failed to read Turnkey session', { error: e });\n return null;\n }\n },\n\n /**\n * Write a Turnkey session to storage.\n */\n writeTurnkeySession(session: StoredTurnkeySession): void {\n const storage = getStorage();\n\n try {\n storage.setItem(TURNKEY_SESSION_KEY, JSON.stringify(session));\n } catch (e) {\n logger.warn('[StorageService] Failed to write Turnkey session', { error: e });\n }\n },\n\n /**\n * Clear the stored Turnkey session and client address.\n * If address is provided, only clears if it matches the stored session.\n * If no address is provided, unconditionally clears both.\n */\n clearTurnkeySession(address?: string | null): void {\n const storage = getStorage();\n\n // If address provided, only clear if it matches\n if (address) {\n const session = this.readTurnkeySession();\n if (session && session.evmAddress?.toLowerCase() !== address.toLowerCase()) {\n return;\n }\n }\n\n storage.removeItem(TURNKEY_SESSION_KEY);\n storage.removeItem(TURNKEY_CLIENT_WALLET_KEY);\n },\n\n /**\n * Read the stored Turnkey client wallet address.\n */\n readTurnkeyClientAddress(): string | null {\n const storage = getStorage();\n try {\n const raw = storage.getItem(TURNKEY_CLIENT_WALLET_KEY);\n return raw ? raw.toLowerCase() : null;\n } catch {\n return null;\n }\n },\n\n /**\n * Write the Turnkey client wallet address.\n * Pass null to clear the stored address.\n */\n writeTurnkeyClientAddress(address: string | null): void {\n const storage = getStorage();\n\n try {\n if (address) {\n storage.setItem(TURNKEY_CLIENT_WALLET_KEY, address.toLowerCase());\n } else {\n storage.removeItem(TURNKEY_CLIENT_WALLET_KEY);\n }\n } catch {\n // ignore\n }\n },\n\n /**\n * Update the Solana account for an existing Turnkey session.\n */\n updateTurnkeySolanaAccount(\n address: string,\n solanaAccount: { walletId: string; account: { address: string; addressFormat?: string } }\n ): void {\n const session = this.readTurnkeySession(address);\n if (!session) return;\n\n session.solanaAccount = solanaAccount;\n this.writeTurnkeySession(session);\n },\n\n // ============================================\n // LEGACY PENDING DEPOSITS (for migration)\n // ============================================\n\n /**\n * Read legacy pending deposits array.\n */\n readLegacyPendingDeposits(): LegacyPendingDeposit[] {\n const storage = getStorage();\n\n try {\n const raw = storage.getItem(PENDING_DEPOSITS_META_KEY);\n if (!raw) return [];\n const parsed = JSON.parse(raw);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n return [];\n }\n },\n\n /**\n * Clear legacy pending deposits array.\n */\n clearLegacyPendingDeposits(): void {\n const storage = getStorage();\n storage.removeItem(PENDING_DEPOSITS_META_KEY);\n },\n\n // ============================================\n // UTILITIES\n // ============================================\n\n /**\n * Reconcile local and remote deposit stages.\n * Returns the more advanced stage (unless remote is 'failed').\n */\n reconcileStages(\n localStage: PendingDepositStage,\n remoteStage: PendingDepositStage | null | undefined\n ): PendingDepositStage {\n if (!remoteStage) return localStage;\n if (remoteStage === 'failed') return 'failed';\n const localRank = getStageRank(localStage);\n const remoteRank = getStageRank(remoteStage);\n return remoteRank > localRank ? remoteStage : localStage;\n },\n\n /**\n * Advance a pending deposit to a new stage.\n * Prevents stage regression (except to 'failed').\n */\n advancePendingDeposit(\n previous: PendingDepositState,\n updates: Partial<Omit<PendingDepositState, 'depositId' | 'wallet' | 'chain'>> & {\n stage: PendingDepositStage;\n },\n now: number = Date.now()\n ): PendingDepositState {\n const prevRank = getStageRank(previous.stage);\n const nextRank = getStageRank(updates.stage);\n\n if (updates.stage !== 'failed' && nextRank < prevRank) {\n throw new Error(`Cannot regress pending deposit stage from ${previous.stage} to ${updates.stage}`);\n }\n\n const merged: PendingDepositState = {\n ...previous,\n ...updates,\n tx: updates.tx ?? previous.tx ?? null,\n mintTx: updates.mintTx ?? previous.mintTx ?? null,\n attestationId: updates.attestationId ?? previous.attestationId ?? null,\n explorerUrl: updates.explorerUrl ?? previous.explorerUrl ?? null,\n reason: updates.reason ?? previous.reason ?? null,\n stage: updates.stage,\n updatedAt: now,\n };\n\n return this.writePendingDeposit(merged, now);\n },\n\n /**\n * Create a new pending deposit draft.\n */\n createPendingDepositDraft(params: {\n depositId: string;\n wallet: string;\n chain: string;\n amount: string;\n now?: number;\n }): PendingDepositState {\n const now = params.now ?? Date.now();\n return this.writePendingDeposit(\n {\n depositId: params.depositId,\n wallet: params.wallet,\n chain: params.chain,\n amount: params.amount,\n stage: 'initiated',\n tx: null,\n mintTx: null,\n attestationId: null,\n explorerUrl: null,\n reason: null,\n updatedAt: now,\n },\n now\n );\n },\n};\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Storage Service Exports
3
+ *
4
+ * Public API for the storage abstraction layer.
5
+ */
6
+ export { StorageService } from './StorageService';
7
+ export { LAST_DEPOSIT_KEY_PREFIX, PENDING_DEPOSIT_KEY_PREFIX, ACTIVE_PENDING_DEPOSIT_KEY, PENDING_DEPOSITS_META_KEY, TURNKEY_SESSION_KEY, TURNKEY_CLIENT_WALLET_KEY, SESSION_INITIALIZED_KEY, getLastDepositKey, getPendingDepositKey, } from './keys';
8
+ export type { PendingDepositStage, PendingDepositState, StoredPendingDeposit, StoredDepositRecord, LegacyPendingDeposit, StoredSolanaAccount, StoredTurnkeySession, } from './types';
9
+ export { DEPOSIT_STAGE_ORDER, getStageRank } from './types';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Storage Service Exports
3
+ *
4
+ * Public API for the storage abstraction layer.
5
+ */
6
+ export { StorageService } from './StorageService';
7
+ // Export keys for direct access if needed
8
+ export { LAST_DEPOSIT_KEY_PREFIX, PENDING_DEPOSIT_KEY_PREFIX, ACTIVE_PENDING_DEPOSIT_KEY, PENDING_DEPOSITS_META_KEY, TURNKEY_SESSION_KEY, TURNKEY_CLIENT_WALLET_KEY, SESSION_INITIALIZED_KEY, getLastDepositKey, getPendingDepositKey, } from './keys';
9
+ export { DEPOSIT_STAGE_ORDER, getStageRank } from './types';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,0CAA0C;AAC1C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAahB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC","sourcesContent":["/**\n * Storage Service Exports\n *\n * Public API for the storage abstraction layer.\n */\n\nexport { StorageService } from './StorageService';\n\n// Export keys for direct access if needed\nexport {\n LAST_DEPOSIT_KEY_PREFIX,\n PENDING_DEPOSIT_KEY_PREFIX,\n ACTIVE_PENDING_DEPOSIT_KEY,\n PENDING_DEPOSITS_META_KEY,\n TURNKEY_SESSION_KEY,\n TURNKEY_CLIENT_WALLET_KEY,\n SESSION_INITIALIZED_KEY,\n getLastDepositKey,\n getPendingDepositKey,\n} from './keys';\n\n// Export types\nexport type {\n PendingDepositStage,\n PendingDepositState,\n StoredPendingDeposit,\n StoredDepositRecord,\n LegacyPendingDeposit,\n StoredSolanaAccount,\n StoredTurnkeySession,\n} from './types';\n\nexport { DEPOSIT_STAGE_ORDER, getStageRank } from './types';\n"]}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Storage Keys
3
+ *
4
+ * All localStorage key constants used throughout the wallet widget.
5
+ * Centralizing keys here prevents typos and makes it easy to track storage usage.
6
+ */
7
+ /** Prefix for last completed deposit per wallet address */
8
+ export declare const LAST_DEPOSIT_KEY_PREFIX = "n1_last_deposit_";
9
+ /** Prefix for pending deposit per wallet (legacy) */
10
+ export declare const PENDING_DEPOSIT_KEY_PREFIX = "n1_pending_deposit_";
11
+ /** Single active pending deposit (global) */
12
+ export declare const ACTIVE_PENDING_DEPOSIT_KEY = "n1_active_pending_deposit";
13
+ /** Legacy pending deposits array */
14
+ export declare const PENDING_DEPOSITS_META_KEY = "n1_pending_deposits";
15
+ /** Turnkey session storage (v1 format) */
16
+ export declare const TURNKEY_SESSION_KEY = "n1_turnkey_session_v1";
17
+ /** Turnkey client wallet address */
18
+ export declare const TURNKEY_CLIENT_WALLET_KEY = "n1_turnkey_client_wallet";
19
+ /** Session initialization flag */
20
+ export declare const SESSION_INITIALIZED_KEY = "n1_session_initialized";
21
+ /**
22
+ * Generate the storage key for a wallet's last completed deposit.
23
+ */
24
+ export declare const getLastDepositKey: (address: string) => string;
25
+ /**
26
+ * Generate the storage key for a wallet's pending deposit (legacy).
27
+ */
28
+ export declare const getPendingDepositKey: (wallet: string) => string;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Storage Keys
3
+ *
4
+ * All localStorage key constants used throughout the wallet widget.
5
+ * Centralizing keys here prevents typos and makes it easy to track storage usage.
6
+ */
7
+ // ============================================
8
+ // DEPOSIT KEYS
9
+ // ============================================
10
+ /** Prefix for last completed deposit per wallet address */
11
+ export var LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';
12
+ /** Prefix for pending deposit per wallet (legacy) */
13
+ export var PENDING_DEPOSIT_KEY_PREFIX = 'n1_pending_deposit_';
14
+ /** Single active pending deposit (global) */
15
+ export var ACTIVE_PENDING_DEPOSIT_KEY = 'n1_active_pending_deposit';
16
+ /** Legacy pending deposits array */
17
+ export var PENDING_DEPOSITS_META_KEY = 'n1_pending_deposits';
18
+ // ============================================
19
+ // TURNKEY SESSION KEYS
20
+ // ============================================
21
+ /** Turnkey session storage (v1 format) */
22
+ export var TURNKEY_SESSION_KEY = 'n1_turnkey_session_v1';
23
+ /** Turnkey client wallet address */
24
+ export var TURNKEY_CLIENT_WALLET_KEY = 'n1_turnkey_client_wallet';
25
+ // ============================================
26
+ // SESSION KEYS
27
+ // ============================================
28
+ /** Session initialization flag */
29
+ export var SESSION_INITIALIZED_KEY = 'n1_session_initialized';
30
+ // ============================================
31
+ // KEY GENERATORS
32
+ // ============================================
33
+ /**
34
+ * Generate the storage key for a wallet's last completed deposit.
35
+ */
36
+ export var getLastDepositKey = function (address) {
37
+ return "".concat(LAST_DEPOSIT_KEY_PREFIX).concat(address.toLowerCase());
38
+ };
39
+ /**
40
+ * Generate the storage key for a wallet's pending deposit (legacy).
41
+ */
42
+ export var getPendingDepositKey = function (wallet) {
43
+ return "".concat(PENDING_DEPOSIT_KEY_PREFIX).concat(wallet.toLowerCase());
44
+ };
45
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/services/storage/keys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,2DAA2D;AAC3D,MAAM,CAAC,IAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAE1D,qDAAqD;AACrD,MAAM,CAAC,IAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAEhE,6CAA6C;AAC7C,MAAM,CAAC,IAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAEtE,oCAAoC;AACpC,MAAM,CAAC,IAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C,0CAA0C;AAC1C,MAAM,CAAC,IAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D,oCAAoC;AACpC,MAAM,CAAC,IAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAEpE,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,kCAAkC;AAClC,MAAM,CAAC,IAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,OAAe;IAC/C,OAAA,UAAG,uBAAuB,SAAG,OAAO,CAAC,WAAW,EAAE,CAAE;AAApD,CAAoD,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,MAAc;IACjD,OAAA,UAAG,0BAA0B,SAAG,MAAM,CAAC,WAAW,EAAE,CAAE;AAAtD,CAAsD,CAAC","sourcesContent":["/**\n * Storage Keys\n *\n * All localStorage key constants used throughout the wallet widget.\n * Centralizing keys here prevents typos and makes it easy to track storage usage.\n */\n\n// ============================================\n// DEPOSIT KEYS\n// ============================================\n\n/** Prefix for last completed deposit per wallet address */\nexport const LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';\n\n/** Prefix for pending deposit per wallet (legacy) */\nexport const PENDING_DEPOSIT_KEY_PREFIX = 'n1_pending_deposit_';\n\n/** Single active pending deposit (global) */\nexport const ACTIVE_PENDING_DEPOSIT_KEY = 'n1_active_pending_deposit';\n\n/** Legacy pending deposits array */\nexport const PENDING_DEPOSITS_META_KEY = 'n1_pending_deposits';\n\n// ============================================\n// TURNKEY SESSION KEYS\n// ============================================\n\n/** Turnkey session storage (v1 format) */\nexport const TURNKEY_SESSION_KEY = 'n1_turnkey_session_v1';\n\n/** Turnkey client wallet address */\nexport const TURNKEY_CLIENT_WALLET_KEY = 'n1_turnkey_client_wallet';\n\n// ============================================\n// SESSION KEYS\n// ============================================\n\n/** Session initialization flag */\nexport const SESSION_INITIALIZED_KEY = 'n1_session_initialized';\n\n// ============================================\n// KEY GENERATORS\n// ============================================\n\n/**\n * Generate the storage key for a wallet's last completed deposit.\n */\nexport const getLastDepositKey = (address: string): string =>\n `${LAST_DEPOSIT_KEY_PREFIX}${address.toLowerCase()}`;\n\n/**\n * Generate the storage key for a wallet's pending deposit (legacy).\n */\nexport const getPendingDepositKey = (wallet: string): string =>\n `${PENDING_DEPOSIT_KEY_PREFIX}${wallet.toLowerCase()}`;\n"]}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Storage Types
3
+ *
4
+ * TypeScript types for all data stored in localStorage.
5
+ */
6
+ /** Stages of a pending deposit */
7
+ export type PendingDepositStage = 'initiated' | 'bridge_submitted' | 'bridge_confirmed' | 'solana_submitted' | 'solana_confirmed' | 'failed';
8
+ /** Pending deposit state (full runtime representation) */
9
+ export interface PendingDepositState {
10
+ depositId: string;
11
+ wallet: string;
12
+ chain: string;
13
+ amount: string;
14
+ stage: PendingDepositStage;
15
+ tx?: string | null;
16
+ mintTx?: string | null;
17
+ attestationId?: string | null;
18
+ explorerUrl?: string | null;
19
+ reason?: string | null;
20
+ updatedAt: number;
21
+ }
22
+ /** Stored format for pending deposit (persisted to localStorage) */
23
+ export interface StoredPendingDeposit {
24
+ depositId: string;
25
+ wallet: string;
26
+ chain?: string;
27
+ amount?: string;
28
+ stage?: PendingDepositStage;
29
+ tx?: string | null;
30
+ mintTx?: string | null;
31
+ attestationId?: string | null;
32
+ explorerUrl?: string | null;
33
+ reason?: string | null;
34
+ updatedAt?: number;
35
+ }
36
+ /** Record of a completed deposit */
37
+ export interface StoredDepositRecord {
38
+ transactionId: string;
39
+ amount: string;
40
+ timestamp: number;
41
+ chain?: string;
42
+ explorerUrl?: string;
43
+ }
44
+ /** Legacy pending deposit format (from pendingDepositStorage.ts) */
45
+ export interface LegacyPendingDeposit {
46
+ depositId: string;
47
+ bridgeTx: string;
48
+ amount: string;
49
+ timestamp: number;
50
+ status: 'pending' | 'submitted' | 'completed' | 'failed';
51
+ attestationId?: string | null;
52
+ sourceChain?: string;
53
+ destinationChain?: string;
54
+ }
55
+ /** Solana account info stored with Turnkey session */
56
+ export interface StoredSolanaAccount {
57
+ walletId: string;
58
+ account: {
59
+ address: string;
60
+ addressFormat?: string;
61
+ };
62
+ }
63
+ /** Turnkey session entry stored in localStorage */
64
+ export interface StoredTurnkeySession {
65
+ sessionKey: string;
66
+ evmAddress?: string | null;
67
+ solanaAccount?: StoredSolanaAccount | null;
68
+ session?: unknown;
69
+ }
70
+ /** Ordered list of deposit stages for comparison */
71
+ export declare const DEPOSIT_STAGE_ORDER: PendingDepositStage[];
72
+ /** Get numeric rank of a deposit stage */
73
+ export declare const getStageRank: (stage: PendingDepositStage) => number;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Storage Types
3
+ *
4
+ * TypeScript types for all data stored in localStorage.
5
+ */
6
+ // ============================================
7
+ // STAGE UTILITIES
8
+ // ============================================
9
+ /** Ordered list of deposit stages for comparison */
10
+ export var DEPOSIT_STAGE_ORDER = [
11
+ 'initiated',
12
+ 'bridge_submitted',
13
+ 'bridge_confirmed',
14
+ 'solana_submitted',
15
+ 'solana_confirmed',
16
+ 'failed',
17
+ ];
18
+ /** Get numeric rank of a deposit stage */
19
+ export var getStageRank = function (stage) {
20
+ var index = DEPOSIT_STAGE_ORDER.indexOf(stage);
21
+ return index === -1 ? 0 : index;
22
+ };
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/storage/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuFH,+CAA+C;AAC/C,kBAAkB;AAClB,+CAA+C;AAE/C,oDAAoD;AACpD,MAAM,CAAC,IAAM,mBAAmB,GAA0B;IACxD,WAAW;IACX,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,QAAQ;CACT,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,KAA0B;IACrD,IAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC,CAAC","sourcesContent":["/**\n * Storage Types\n *\n * TypeScript types for all data stored in localStorage.\n */\n\n// ============================================\n// DEPOSIT TYPES\n// ============================================\n\n/** Stages of a pending deposit */\nexport type PendingDepositStage =\n | 'initiated'\n | 'bridge_submitted'\n | 'bridge_confirmed'\n | 'solana_submitted'\n | 'solana_confirmed'\n | 'failed';\n\n/** Pending deposit state (full runtime representation) */\nexport interface PendingDepositState {\n depositId: string;\n wallet: string;\n chain: string;\n amount: string;\n stage: PendingDepositStage;\n tx?: string | null;\n mintTx?: string | null;\n attestationId?: string | null;\n explorerUrl?: string | null;\n reason?: string | null;\n updatedAt: number;\n}\n\n/** Stored format for pending deposit (persisted to localStorage) */\nexport interface StoredPendingDeposit {\n depositId: string;\n wallet: string;\n chain?: string;\n amount?: string;\n stage?: PendingDepositStage;\n tx?: string | null;\n mintTx?: string | null;\n attestationId?: string | null;\n explorerUrl?: string | null;\n reason?: string | null;\n updatedAt?: number;\n}\n\n/** Record of a completed deposit */\nexport interface StoredDepositRecord {\n transactionId: string;\n amount: string;\n timestamp: number;\n chain?: string;\n explorerUrl?: string;\n}\n\n/** Legacy pending deposit format (from pendingDepositStorage.ts) */\nexport interface LegacyPendingDeposit {\n depositId: string;\n bridgeTx: string;\n amount: string;\n timestamp: number;\n status: 'pending' | 'submitted' | 'completed' | 'failed';\n attestationId?: string | null;\n sourceChain?: string;\n destinationChain?: string;\n}\n\n// ============================================\n// TURNKEY SESSION TYPES\n// ============================================\n\n/** Solana account info stored with Turnkey session */\nexport interface StoredSolanaAccount {\n walletId: string;\n account: {\n address: string;\n addressFormat?: string;\n };\n}\n\n/** Turnkey session entry stored in localStorage */\nexport interface StoredTurnkeySession {\n sessionKey: string;\n evmAddress?: string | null;\n solanaAccount?: StoredSolanaAccount | null;\n session?: unknown;\n}\n\n// ============================================\n// STAGE UTILITIES\n// ============================================\n\n/** Ordered list of deposit stages for comparison */\nexport const DEPOSIT_STAGE_ORDER: PendingDepositStage[] = [\n 'initiated',\n 'bridge_submitted',\n 'bridge_confirmed',\n 'solana_submitted',\n 'solana_confirmed',\n 'failed',\n];\n\n/** Get numeric rank of a deposit stage */\nexport const getStageRank = (stage: PendingDepositStage): number => {\n const index = DEPOSIT_STAGE_ORDER.indexOf(stage);\n return index === -1 ? 0 : index;\n};\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * N1 Wallet Store - Public API
3
+ *
4
+ * This is the main entry point for the store module.
5
+ */
6
+ export { useWalletStore, getWalletActions } from './store';
7
+ export { selectDynamicSdkReady, selectBootstrapComplete, selectIsReady, selectIsBootstrapping, selectHasActiveSession, selectHasSessionKeys, selectNeedsAuthentication, selectHasSolanaWallet, selectHasEvmWallet, selectHasAnyWallet, selectIsSolanaMode, selectIsEvmMode, selectPrimaryAddress, selectModalVisible, selectModalOpen, selectModalClosing, selectCanOpenModal, selectSigningReady, selectTurnkeyEnabled, selectCanTrade, selectCanDeposit, } from './selectors';
8
+ export type { WalletStore, WalletStoreState, WalletStoreActions, SigningSlice, SigningActions, SessionSlice, SessionActions, SigningFunction, WalletSlice, WalletActions, WalletNetwork, UISlice, UIActions, ConfigSlice, ConfigActions, ColorOverride, } from './types';
@@ -0,0 +1,24 @@
1
+ /**
2
+ * N1 Wallet Store - Public API
3
+ *
4
+ * This is the main entry point for the store module.
5
+ */
6
+ // Main store hook
7
+ export { useWalletStore, getWalletActions } from './store';
8
+ // Selectors for common derived state
9
+ export {
10
+ // Bootstrap selectors
11
+ selectDynamicSdkReady, selectBootstrapComplete, selectIsReady, selectIsBootstrapping,
12
+ // Session selectors
13
+ selectHasActiveSession, selectHasSessionKeys, selectNeedsAuthentication,
14
+ // Wallet/Network selectors
15
+ selectHasSolanaWallet, selectHasEvmWallet, selectHasAnyWallet, selectIsSolanaMode, selectIsEvmMode, selectPrimaryAddress,
16
+ // Modal selectors
17
+ selectModalVisible, selectModalOpen, selectModalClosing, selectCanOpenModal,
18
+ // Signing selectors
19
+ selectSigningReady,
20
+ // Config selectors
21
+ selectTurnkeyEnabled,
22
+ // Composite selectors
23
+ selectCanTrade, selectCanDeposit, } from './selectors';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3D,qCAAqC;AACrC,OAAO;AACH,sBAAsB;AACtB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACb,qBAAqB;AACrB,oBAAoB;AACpB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB;AACzB,2BAA2B;AAC3B,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,oBAAoB;AACpB,kBAAkB;AAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,cAAc,EACd,gBAAgB,GACnB,MAAM,aAAa,CAAC","sourcesContent":["/**\n * N1 Wallet Store - Public API\n *\n * This is the main entry point for the store module.\n */\n\n// Main store hook\nexport { useWalletStore, getWalletActions } from './store';\n\n// Selectors for common derived state\nexport {\n // Bootstrap selectors\n selectDynamicSdkReady,\n selectBootstrapComplete,\n selectIsReady,\n selectIsBootstrapping,\n // Session selectors\n selectHasActiveSession,\n selectHasSessionKeys,\n selectNeedsAuthentication,\n // Wallet/Network selectors\n selectHasSolanaWallet,\n selectHasEvmWallet,\n selectHasAnyWallet,\n selectIsSolanaMode,\n selectIsEvmMode,\n selectPrimaryAddress,\n // Modal selectors\n selectModalVisible,\n selectModalOpen,\n selectModalClosing,\n selectCanOpenModal,\n // Signing selectors\n selectSigningReady,\n // Config selectors\n selectTurnkeyEnabled,\n // Composite selectors\n selectCanTrade,\n selectCanDeposit,\n} from './selectors';\n\n// Types\nexport type {\n WalletStore,\n WalletStoreState,\n WalletStoreActions,\n SigningSlice,\n SigningActions,\n SessionSlice,\n SessionActions,\n SigningFunction,\n WalletSlice,\n WalletActions,\n WalletNetwork,\n UISlice,\n UIActions,\n ConfigSlice,\n ConfigActions,\n ColorOverride,\n} from './types';\n"]}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Store Selectors
3
+ *
4
+ * Reusable selector functions for common state derivations.
5
+ * These help reduce duplication and ensure consistent logic across the app.
6
+ *
7
+ * Usage:
8
+ * ```ts
9
+ * import { useWalletStore } from './store';
10
+ * import { selectIsReady, selectHasActiveSession } from './selectors';
11
+ *
12
+ * function MyComponent() {
13
+ * const isReady = useWalletStore(selectIsReady);
14
+ * const hasSession = useWalletStore(selectHasActiveSession);
15
+ * }
16
+ * ```
17
+ */
18
+ import type { WalletStore } from './types';
19
+ /**
20
+ * Check if the Dynamic SDK has fully loaded and is ready.
21
+ */
22
+ export declare const selectDynamicSdkReady: (state: WalletStore) => boolean;
23
+ /**
24
+ * Check if bootstrap process has completed (all services ready).
25
+ */
26
+ export declare const selectBootstrapComplete: (state: WalletStore) => boolean;
27
+ /**
28
+ * Check if the widget is fully ready for user interaction.
29
+ * Requires: Dynamic SDK loaded AND bootstrap complete.
30
+ */
31
+ export declare const selectIsReady: (state: WalletStore) => boolean;
32
+ /**
33
+ * Check if bootstrap is currently in progress.
34
+ */
35
+ export declare const selectIsBootstrapping: (state: WalletStore) => boolean;
36
+ /**
37
+ * Check if user has an active authenticated session.
38
+ */
39
+ export declare const selectHasActiveSession: (state: WalletStore) => boolean;
40
+ /**
41
+ * Check if session keys are available for signing.
42
+ */
43
+ export declare const selectHasSessionKeys: (state: WalletStore) => boolean;
44
+ /**
45
+ * Check if user is connected but not yet authenticated (needs to complete auth flow).
46
+ */
47
+ export declare const selectNeedsAuthentication: (state: WalletStore) => boolean;
48
+ /**
49
+ * Check if a Solana wallet is connected.
50
+ */
51
+ export declare const selectHasSolanaWallet: (state: WalletStore) => boolean;
52
+ /**
53
+ * Check if an EVM wallet is connected.
54
+ */
55
+ export declare const selectHasEvmWallet: (state: WalletStore) => boolean;
56
+ /**
57
+ * Check if any wallet is connected (Solana or EVM).
58
+ */
59
+ export declare const selectHasAnyWallet: (state: WalletStore) => boolean;
60
+ /**
61
+ * Check if wallet is in Solana mode.
62
+ */
63
+ export declare const selectIsSolanaMode: (state: WalletStore) => boolean;
64
+ /**
65
+ * Check if wallet is in EVM mode.
66
+ */
67
+ export declare const selectIsEvmMode: (state: WalletStore) => boolean;
68
+ /**
69
+ * Get the primary wallet address (Solana if available, otherwise EVM).
70
+ */
71
+ export declare const selectPrimaryAddress: (state: WalletStore) => string | null;
72
+ /**
73
+ * Check if modal is currently visible (any non-closed state).
74
+ */
75
+ export declare const selectModalVisible: (state: WalletStore) => boolean;
76
+ /**
77
+ * Check if modal is fully open and interactive.
78
+ */
79
+ export declare const selectModalOpen: (state: WalletStore) => boolean;
80
+ /**
81
+ * Check if modal is in closing animation.
82
+ */
83
+ export declare const selectModalClosing: (state: WalletStore) => boolean;
84
+ /**
85
+ * Check if modal can be opened (not in cooldown).
86
+ */
87
+ export declare const selectCanOpenModal: (state: WalletStore) => boolean;
88
+ /**
89
+ * Check if all signing functions are available.
90
+ */
91
+ export declare const selectSigningReady: (state: WalletStore) => boolean;
92
+ /**
93
+ * Check if Turnkey is enabled for this deployment.
94
+ */
95
+ export declare const selectTurnkeyEnabled: (state: WalletStore) => boolean;
96
+ /**
97
+ * Check if user can perform trading operations.
98
+ * Requires: Ready, has session, and signing functions available.
99
+ */
100
+ export declare const selectCanTrade: (state: WalletStore) => boolean;
101
+ /**
102
+ * Check if user can initiate a deposit flow.
103
+ * Requires: Ready, has wallet, and modal is not in cooldown.
104
+ */
105
+ export declare const selectCanDeposit: (state: WalletStore) => boolean;
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Store Selectors
3
+ *
4
+ * Reusable selector functions for common state derivations.
5
+ * These help reduce duplication and ensure consistent logic across the app.
6
+ *
7
+ * Usage:
8
+ * ```ts
9
+ * import { useWalletStore } from './store';
10
+ * import { selectIsReady, selectHasActiveSession } from './selectors';
11
+ *
12
+ * function MyComponent() {
13
+ * const isReady = useWalletStore(selectIsReady);
14
+ * const hasSession = useWalletStore(selectHasActiveSession);
15
+ * }
16
+ * ```
17
+ */
18
+ // ============================================
19
+ // BOOTSTRAP SELECTORS
20
+ // ============================================
21
+ /**
22
+ * Check if the Dynamic SDK has fully loaded and is ready.
23
+ */
24
+ export var selectDynamicSdkReady = function (state) {
25
+ return state.session.dynamicSdkLoaded === true;
26
+ };
27
+ /**
28
+ * Check if bootstrap process has completed (all services ready).
29
+ */
30
+ export var selectBootstrapComplete = function (state) {
31
+ return state.bootstrap.bootstrapCompletedAt !== null;
32
+ };
33
+ /**
34
+ * Check if the widget is fully ready for user interaction.
35
+ * Requires: Dynamic SDK loaded AND bootstrap complete.
36
+ */
37
+ export var selectIsReady = function (state) {
38
+ return selectDynamicSdkReady(state) && selectBootstrapComplete(state);
39
+ };
40
+ /**
41
+ * Check if bootstrap is currently in progress.
42
+ */
43
+ export var selectIsBootstrapping = function (state) {
44
+ return state.bootstrap.bootstrapStartedAt !== null &&
45
+ state.bootstrap.bootstrapCompletedAt === null;
46
+ };
47
+ // ============================================
48
+ // SESSION SELECTORS
49
+ // ============================================
50
+ /**
51
+ * Check if user has an active authenticated session.
52
+ */
53
+ export var selectHasActiveSession = function (state) {
54
+ return state.session.isConnected === true &&
55
+ state.session.nordUser !== null &&
56
+ state.session.nordUser.sessionId !== undefined;
57
+ };
58
+ /**
59
+ * Check if session keys are available for signing.
60
+ */
61
+ export var selectHasSessionKeys = function (state) {
62
+ return state.session.sessionPubKey !== null;
63
+ };
64
+ /**
65
+ * Check if user is connected but not yet authenticated (needs to complete auth flow).
66
+ */
67
+ export var selectNeedsAuthentication = function (state) {
68
+ return state.session.isConnected === true &&
69
+ (state.session.nordUser === null || state.session.nordUser.sessionId === undefined);
70
+ };
71
+ // ============================================
72
+ // WALLET/NETWORK SELECTORS
73
+ // ============================================
74
+ /**
75
+ * Check if a Solana wallet is connected.
76
+ */
77
+ export var selectHasSolanaWallet = function (state) {
78
+ return state.wallet.solanaWallet !== null && state.wallet.solanaAddress !== '';
79
+ };
80
+ /**
81
+ * Check if an EVM wallet is connected.
82
+ */
83
+ export var selectHasEvmWallet = function (state) {
84
+ return state.wallet.evmWallet !== null && state.wallet.evmAddress !== null;
85
+ };
86
+ /**
87
+ * Check if any wallet is connected (Solana or EVM).
88
+ */
89
+ export var selectHasAnyWallet = function (state) {
90
+ return selectHasSolanaWallet(state) || selectHasEvmWallet(state);
91
+ };
92
+ /**
93
+ * Check if wallet is in Solana mode.
94
+ */
95
+ export var selectIsSolanaMode = function (state) {
96
+ return state.wallet.network === 'solana';
97
+ };
98
+ /**
99
+ * Check if wallet is in EVM mode.
100
+ */
101
+ export var selectIsEvmMode = function (state) {
102
+ return state.wallet.network === 'evm';
103
+ };
104
+ /**
105
+ * Get the primary wallet address (Solana if available, otherwise EVM).
106
+ */
107
+ export var selectPrimaryAddress = function (state) {
108
+ if (state.wallet.solanaAddress)
109
+ return state.wallet.solanaAddress;
110
+ if (state.wallet.evmAddress)
111
+ return state.wallet.evmAddress;
112
+ return null;
113
+ };
114
+ // ============================================
115
+ // MODAL SELECTORS
116
+ // ============================================
117
+ /**
118
+ * Check if modal is currently visible (any non-closed state).
119
+ */
120
+ export var selectModalVisible = function (state) {
121
+ return state.ui.modalState !== 'closed';
122
+ };
123
+ /**
124
+ * Check if modal is fully open and interactive.
125
+ */
126
+ export var selectModalOpen = function (state) {
127
+ return state.ui.modalState === 'open';
128
+ };
129
+ /**
130
+ * Check if modal is in closing animation.
131
+ */
132
+ export var selectModalClosing = function (state) {
133
+ return state.ui.modalState === 'closing';
134
+ };
135
+ /**
136
+ * Check if modal can be opened (not in cooldown).
137
+ */
138
+ export var selectCanOpenModal = function (state) {
139
+ return state.ui.modalState === 'closed' &&
140
+ Date.now() >= state.ui.modalCooldownUntil;
141
+ };
142
+ // ============================================
143
+ // SIGNING SELECTORS
144
+ // ============================================
145
+ /**
146
+ * Check if all signing functions are available.
147
+ */
148
+ export var selectSigningReady = function (state) {
149
+ return state.signing.signMessageWithSessionKey !== null &&
150
+ state.signing.signMessageWithWalletKey !== null &&
151
+ state.signing.signTransactionWithWalletKey !== null;
152
+ };
153
+ // ============================================
154
+ // CONFIG SELECTORS
155
+ // ============================================
156
+ /**
157
+ * Check if Turnkey is enabled for this deployment.
158
+ */
159
+ export var selectTurnkeyEnabled = function (state) {
160
+ return state.config.turnkeyEnabled === true;
161
+ };
162
+ // ============================================
163
+ // COMPOSITE SELECTORS
164
+ // ============================================
165
+ /**
166
+ * Check if user can perform trading operations.
167
+ * Requires: Ready, has session, and signing functions available.
168
+ */
169
+ export var selectCanTrade = function (state) {
170
+ return selectIsReady(state) &&
171
+ selectHasActiveSession(state) &&
172
+ selectSigningReady(state);
173
+ };
174
+ /**
175
+ * Check if user can initiate a deposit flow.
176
+ * Requires: Ready, has wallet, and modal is not in cooldown.
177
+ */
178
+ export var selectCanDeposit = function (state) {
179
+ return selectIsReady(state) &&
180
+ selectHasAnyWallet(state) &&
181
+ selectCanOpenModal(state);
182
+ };
183
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/store/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Store Selectors\n *\n * Reusable selector functions for common state derivations.\n * These help reduce duplication and ensure consistent logic across the app.\n *\n * Usage:\n * ```ts\n * import { useWalletStore } from './store';\n * import { selectIsReady, selectHasActiveSession } from './selectors';\n *\n * function MyComponent() {\n * const isReady = useWalletStore(selectIsReady);\n * const hasSession = useWalletStore(selectHasActiveSession);\n * }\n * ```\n */\n\nimport type { WalletStore } from './types';\n\n// ============================================\n// BOOTSTRAP SELECTORS\n// ============================================\n\n/**\n * Check if the Dynamic SDK has fully loaded and is ready.\n */\nexport const selectDynamicSdkReady = (state: WalletStore): boolean =>\n state.session.dynamicSdkLoaded === true;\n\n/**\n * Check if bootstrap process has completed (all services ready).\n */\nexport const selectBootstrapComplete = (state: WalletStore): boolean =>\n state.bootstrap.bootstrapCompletedAt !== null;\n\n/**\n * Check if the widget is fully ready for user interaction.\n * Requires: Dynamic SDK loaded AND bootstrap complete.\n */\nexport const selectIsReady = (state: WalletStore): boolean =>\n selectDynamicSdkReady(state) && selectBootstrapComplete(state);\n\n/**\n * Check if bootstrap is currently in progress.\n */\nexport const selectIsBootstrapping = (state: WalletStore): boolean =>\n state.bootstrap.bootstrapStartedAt !== null &&\n state.bootstrap.bootstrapCompletedAt === null;\n\n// ============================================\n// SESSION SELECTORS\n// ============================================\n\n/**\n * Check if user has an active authenticated session.\n */\nexport const selectHasActiveSession = (state: WalletStore): boolean =>\n state.session.isConnected === true &&\n state.session.nordUser !== null &&\n state.session.nordUser.sessionId !== undefined;\n\n/**\n * Check if session keys are available for signing.\n */\nexport const selectHasSessionKeys = (state: WalletStore): boolean =>\n state.session.sessionPubKey !== null;\n\n/**\n * Check if user is connected but not yet authenticated (needs to complete auth flow).\n */\nexport const selectNeedsAuthentication = (state: WalletStore): boolean =>\n state.session.isConnected === true &&\n (state.session.nordUser === null || state.session.nordUser.sessionId === undefined);\n\n// ============================================\n// WALLET/NETWORK SELECTORS\n// ============================================\n\n/**\n * Check if a Solana wallet is connected.\n */\nexport const selectHasSolanaWallet = (state: WalletStore): boolean =>\n state.wallet.solanaWallet !== null && state.wallet.solanaAddress !== '';\n\n/**\n * Check if an EVM wallet is connected.\n */\nexport const selectHasEvmWallet = (state: WalletStore): boolean =>\n state.wallet.evmWallet !== null && state.wallet.evmAddress !== null;\n\n/**\n * Check if any wallet is connected (Solana or EVM).\n */\nexport const selectHasAnyWallet = (state: WalletStore): boolean =>\n selectHasSolanaWallet(state) || selectHasEvmWallet(state);\n\n/**\n * Check if wallet is in Solana mode.\n */\nexport const selectIsSolanaMode = (state: WalletStore): boolean =>\n state.wallet.network === 'solana';\n\n/**\n * Check if wallet is in EVM mode.\n */\nexport const selectIsEvmMode = (state: WalletStore): boolean =>\n state.wallet.network === 'evm';\n\n/**\n * Get the primary wallet address (Solana if available, otherwise EVM).\n */\nexport const selectPrimaryAddress = (state: WalletStore): string | null => {\n if (state.wallet.solanaAddress) return state.wallet.solanaAddress;\n if (state.wallet.evmAddress) return state.wallet.evmAddress;\n return null;\n};\n\n// ============================================\n// MODAL SELECTORS\n// ============================================\n\n/**\n * Check if modal is currently visible (any non-closed state).\n */\nexport const selectModalVisible = (state: WalletStore): boolean =>\n state.ui.modalState !== 'closed';\n\n/**\n * Check if modal is fully open and interactive.\n */\nexport const selectModalOpen = (state: WalletStore): boolean =>\n state.ui.modalState === 'open';\n\n/**\n * Check if modal is in closing animation.\n */\nexport const selectModalClosing = (state: WalletStore): boolean =>\n state.ui.modalState === 'closing';\n\n/**\n * Check if modal can be opened (not in cooldown).\n */\nexport const selectCanOpenModal = (state: WalletStore): boolean =>\n state.ui.modalState === 'closed' &&\n Date.now() >= state.ui.modalCooldownUntil;\n\n// ============================================\n// SIGNING SELECTORS\n// ============================================\n\n/**\n * Check if all signing functions are available.\n */\nexport const selectSigningReady = (state: WalletStore): boolean =>\n state.signing.signMessageWithSessionKey !== null &&\n state.signing.signMessageWithWalletKey !== null &&\n state.signing.signTransactionWithWalletKey !== null;\n\n// ============================================\n// CONFIG SELECTORS\n// ============================================\n\n/**\n * Check if Turnkey is enabled for this deployment.\n */\nexport const selectTurnkeyEnabled = (state: WalletStore): boolean =>\n state.config.turnkeyEnabled === true;\n\n// ============================================\n// COMPOSITE SELECTORS\n// ============================================\n\n/**\n * Check if user can perform trading operations.\n * Requires: Ready, has session, and signing functions available.\n */\nexport const selectCanTrade = (state: WalletStore): boolean =>\n selectIsReady(state) &&\n selectHasActiveSession(state) &&\n selectSigningReady(state);\n\n/**\n * Check if user can initiate a deposit flow.\n * Requires: Ready, has wallet, and modal is not in cooldown.\n */\nexport const selectCanDeposit = (state: WalletStore): boolean =>\n selectIsReady(state) &&\n selectHasAnyWallet(state) &&\n selectCanOpenModal(state);\n"]}