@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":"claimConfirmation.js","sourceRoot":"","sources":["../../../../../../src/features/onboarding-flow/utils/deposit/claimConfirmation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AASjE;;;GAGG;AACH,MAAM,CAAC,IAAM,6BAA6B,GAAG,iEAAO,EAKd;;;QAJpC,SAAS,eAAA,EACT,kBAAkB,wBAAA,EAClB,UAAU,gBAAA,EACV,gBAAgB,sBAAA;;;;gBAEV,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,eAAe,EAAE,CAAC;gBAC3E,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;gBAEzC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;qBACjE,CAAA,oBAAoB,IAAI,SAAS,CAAA,EAAjC,wBAAiC;gBACd,qBAAM,UAAU,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAA;;gBAA1E,YAAY,GAAG,SAA2D;gBAChF,IAAI,MAAA,YAAY,CAAC,KAAK,0CAAE,GAAG,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACvD,CAAC;;;gBAGG,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC5C,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAClD,KAAK,GAAG,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBAG1B,qBAAM,UAAU,CAAC,6BAA6B,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAA;;gBAAzF,aAAa,GAAG,SAAyE;gBAE3F,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrB,QAAQ,GAAG,CAAC,CAAC;gBAEjB,WAAsC,EAAnB,KAAA,aAAa,CAAC,KAAK,EAAnB,cAAmB,EAAnB,IAAmB,EAAE,CAAC;oBAA9B,IAAI;oBACP,MAAM,GAAG,MAAA,MAAA,MAAC,IAAI,CAAC,OAAO,CAAC,IAAY,0CAAE,MAAM,0CAAE,IAAI,0CAAE,WAAW,CAAC;oBACrE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,CAAC;wBACnB,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,QAAQ,CAAC;wBACvC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBAEK,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAA,EAAE,EAAI,QAAQ,CAAA,CAAC;gBACxD,6FAA6F;gBAC7F,4FAA4F;gBAC5F,wFAAwF;gBACxF,IAAI,gBAAgB,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,sJAAsJ,CAAC,CAAC;gBAC1K,CAAC;gBAEK,eAAe,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,CAAC,CAAC;gBAEpF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBAED,sBAAO,EAAE,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAC;;;KACvE,CAAC","sourcesContent":["import { Connection, PublicKey } from '@solana/web3.js';\nimport { getSolanaRpcUrl } from '../../../../config/solana';\nimport { mapChainToBridgeKit } from '../../cctp/bridgeKitClient';\n\nexport interface ConfirmClaimAndGetUsdcBalanceParams {\n signature: string | null;\n destinationAddress: string;\n amountHint?: string | number | null;\n skipConfirmation?: boolean;\n}\n\n/**\n * Confirms the claim transaction (optional), then reads USDC token balance for the destination address.\n * Returns the amount string that should be deposited to Nord.\n */\nexport const confirmClaimAndGetUsdcBalance = async ({\n signature,\n destinationAddress,\n amountHint,\n skipConfirmation,\n}: ConfirmClaimAndGetUsdcBalanceParams): Promise<{ amount: string; txSignature: string | null }> => {\n const rpcEndpoint = process.env.NEXT_PUBLIC_NORD_SOLANA_URL || getSolanaRpcUrl();\n const connection = new Connection(rpcEndpoint);\n\n const shouldConfirmOnChain = Boolean(signature) && !skipConfirmation;\n if (shouldConfirmOnChain && signature) {\n const confirmation = await connection.confirmTransaction(signature, 'finalized');\n if (confirmation.value?.err) {\n throw new Error('Claim transaction failed on-chain');\n }\n }\n\n const solanaChain = mapChainToBridgeKit('solana');\n const usdcMint = new PublicKey(solanaChain.usdcAddress);\n const owner = new PublicKey(destinationAddress);\n\n // Use parsed token accounts to avoid SPL decoding issues in some environments.\n const tokenAccounts = await connection.getParsedTokenAccountsByOwner(owner, { mint: usdcMint });\n\n let totalRaw = BigInt(0);\n let decimals = 6;\n\n for (const acct of tokenAccounts.value) {\n const parsed = (acct.account.data as any)?.parsed?.info?.tokenAmount;\n if (parsed?.amount) {\n decimals = parsed.decimals ?? decimals;\n totalRaw += BigInt(parsed.amount);\n }\n }\n\n const availableUsdc = Number(totalRaw) / 10 ** decimals;\n // If we are explicitly skipping confirmation (typically \"nonce already processed\" recovery),\n // do NOT fall back to amountHint. If USDC is not present, it's very likely the user already\n // completed the Nord deposit earlier (or moved funds), so retrying would be misleading.\n if (skipConfirmation && availableUsdc <= 0) {\n throw new Error('No USDC available to deposit. This deposit may already be completed. If your deposit was successful, you can click \"Start Over\" to clear this state.');\n }\n\n const amountToDeposit = availableUsdc > 0 ? availableUsdc : Number(amountHint ?? 0);\n\n if (!Number.isFinite(amountToDeposit) || amountToDeposit <= 0) {\n throw new Error('No USDC available after claim to deposit');\n }\n\n return { amount: amountToDeposit.toString(), txSignature: signature };\n};\n\n\n"]}
@@ -0,0 +1,25 @@
1
+ type SolanaWalletLike = {
2
+ chain?: string;
3
+ getSigner: () => Promise<{
4
+ signTransaction?: (tx: unknown) => Promise<unknown>;
5
+ } | null>;
6
+ };
7
+ export interface SubmitClaimWithRetryParams {
8
+ depositId: string;
9
+ message: string;
10
+ attestation: string;
11
+ sourceChain: string;
12
+ destinationAddress: string;
13
+ lookupTableAddress: string;
14
+ solanaWallet: SolanaWalletLike;
15
+ fallbackWallet: string;
16
+ fallbackAmount: string;
17
+ bridgeTx: string;
18
+ attestationId: string | null;
19
+ }
20
+ /**
21
+ * Submits a claim to Bridge Assist. If the deposit does not exist on the server (404),
22
+ * it will create it and retry once.
23
+ */
24
+ export declare const submitClaimWithRetry: (params: SubmitClaimWithRetryParams) => Promise<string>;
25
+ export {};
@@ -0,0 +1,212 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { Buffer } from 'buffer';
38
+ import { PublicKey, VersionedTransaction } from '@solana/web3.js';
39
+ import { BridgeAssistError } from '../../bridge-assist/types';
40
+ import { createBridgeDeposit, fetchServerFeePayer, submitBridgeClaim } from '../../bridge-assist';
41
+ import { constructCctpClaimTx, hashVersionedTransaction } from '../../cctp/solanaClaim';
42
+ import { delay } from './solanaUtils';
43
+ var FEE_PAYER_WAIT_MAX_MS = 60000;
44
+ var FEE_PAYER_BACKOFF_MS = [1000, 2000, 5000, 10000, 15000];
45
+ var fetchServerFeePayerWithRetry = function () { return __awaiter(void 0, void 0, void 0, function () {
46
+ var startedAt, attempt, lastError, feePayer, e_1, backoff;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ startedAt = Date.now();
51
+ attempt = 0;
52
+ lastError = null;
53
+ _a.label = 1;
54
+ case 1:
55
+ if (!(Date.now() - startedAt < FEE_PAYER_WAIT_MAX_MS)) return [3 /*break*/, 7];
56
+ _a.label = 2;
57
+ case 2:
58
+ _a.trys.push([2, 4, , 5]);
59
+ return [4 /*yield*/, fetchServerFeePayer()];
60
+ case 3:
61
+ feePayer = _a.sent();
62
+ if (feePayer)
63
+ return [2 /*return*/, feePayer];
64
+ return [3 /*break*/, 5];
65
+ case 4:
66
+ e_1 = _a.sent();
67
+ lastError = e_1;
68
+ // If the server is unreachable (network/CORS), surface immediately so UI can show it and auto-retry.
69
+ if (e_1 instanceof BridgeAssistError && e_1.status == null) {
70
+ throw e_1;
71
+ }
72
+ return [3 /*break*/, 5];
73
+ case 5:
74
+ backoff = FEE_PAYER_BACKOFF_MS[Math.min(attempt, FEE_PAYER_BACKOFF_MS.length - 1)];
75
+ attempt += 1;
76
+ return [4 /*yield*/, delay(backoff)];
77
+ case 6:
78
+ _a.sent();
79
+ return [3 /*break*/, 1];
80
+ case 7:
81
+ if (lastError instanceof BridgeAssistError) {
82
+ throw lastError;
83
+ }
84
+ throw new Error('Server fee payer not available');
85
+ }
86
+ });
87
+ }); };
88
+ var buildSignAndSubmitClaimTx = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
89
+ var signer, feePayer, built, tx, blockhash, lastValidBlockHeight, signed, userKey, accountKeys, sigIndex, sig, userSignatureBase64, txHash, submission;
90
+ var depositId = _b.depositId, message = _b.message, attestation = _b.attestation, sourceChain = _b.sourceChain, destinationAddress = _b.destinationAddress, lookupTableAddress = _b.lookupTableAddress, solanaWallet = _b.solanaWallet;
91
+ return __generator(this, function (_c) {
92
+ switch (_c.label) {
93
+ case 0:
94
+ if (!lookupTableAddress) {
95
+ throw new Error('CCTP lookup table not configured (NEXT_PUBLIC_CCTP_LOOKUP_TABLE_ADDRESS)');
96
+ }
97
+ if (!depositId)
98
+ throw new Error('Missing deposit ID for claim transaction');
99
+ if (!solanaWallet)
100
+ throw new Error('Solana wallet not connected. Please connect your wallet to finish the claim.');
101
+ if (solanaWallet.chain && solanaWallet.chain !== 'SOL') {
102
+ throw new Error('Connected wallet is not a Solana wallet');
103
+ }
104
+ return [4 /*yield*/, solanaWallet.getSigner()];
105
+ case 1:
106
+ signer = _c.sent();
107
+ if (!(signer === null || signer === void 0 ? void 0 : signer.signTransaction)) {
108
+ throw new Error('Connected wallet cannot sign transactions');
109
+ }
110
+ return [4 /*yield*/, fetchServerFeePayerWithRetry()];
111
+ case 2:
112
+ feePayer = _c.sent();
113
+ return [4 /*yield*/, constructCctpClaimTx({
114
+ message: message,
115
+ attestation: attestation,
116
+ sourceChain: sourceChain,
117
+ destinationAddress: destinationAddress,
118
+ feePayer: feePayer,
119
+ userAddress: destinationAddress,
120
+ lookupTableAddress: lookupTableAddress,
121
+ rpcUrl: process.env.NEXT_PUBLIC_NORD_SOLANA_URL,
122
+ })];
123
+ case 3:
124
+ built = _c.sent();
125
+ if (!built) {
126
+ throw new Error('Failed to build claim transaction locally');
127
+ }
128
+ tx = built.tx, blockhash = built.blockhash, lastValidBlockHeight = built.lastValidBlockHeight;
129
+ return [4 /*yield*/, signer.signTransaction(tx)];
130
+ case 4:
131
+ signed = _c.sent();
132
+ if (!(signed instanceof VersionedTransaction)) {
133
+ throw new Error('Lookup-table claims require a VersionedTransaction');
134
+ }
135
+ userKey = new PublicKey(destinationAddress);
136
+ accountKeys = signed.message.staticAccountKeys;
137
+ sigIndex = accountKeys.findIndex(function (k) { return k.equals(userKey); });
138
+ if (sigIndex < 0) {
139
+ throw new Error('User pubkey not found in transaction account keys');
140
+ }
141
+ sig = signed.signatures[sigIndex];
142
+ if (!sig) {
143
+ throw new Error('User signature missing after signing');
144
+ }
145
+ userSignatureBase64 = Buffer.from(sig).toString('base64');
146
+ txHash = hashVersionedTransaction(signed);
147
+ return [4 /*yield*/, submitBridgeClaim(depositId, {
148
+ message: message,
149
+ attestation: attestation,
150
+ sourceChain: sourceChain,
151
+ destinationAddress: destinationAddress,
152
+ lookupTableAddress: lookupTableAddress,
153
+ blockhash: blockhash,
154
+ lastValidBlockHeight: lastValidBlockHeight,
155
+ userSignature: userSignatureBase64,
156
+ txHash: txHash,
157
+ })];
158
+ case 5:
159
+ submission = _c.sent();
160
+ if (!(submission === null || submission === void 0 ? void 0 : submission.tx)) {
161
+ throw new Error('Bridge Assist did not return a transaction signature');
162
+ }
163
+ return [2 /*return*/, submission.tx];
164
+ }
165
+ });
166
+ }); };
167
+ /**
168
+ * Submits a claim to Bridge Assist. If the deposit does not exist on the server (404),
169
+ * it will create it and retry once.
170
+ */
171
+ export var submitClaimWithRetry = function (params) { return __awaiter(void 0, void 0, void 0, function () {
172
+ var error_1, status_1, retryAfterMs;
173
+ var _a, _b;
174
+ return __generator(this, function (_c) {
175
+ switch (_c.label) {
176
+ case 0:
177
+ _c.trys.push([0, 2, , 8]);
178
+ return [4 /*yield*/, buildSignAndSubmitClaimTx(params)];
179
+ case 1: return [2 /*return*/, _c.sent()];
180
+ case 2:
181
+ error_1 = _c.sent();
182
+ if (!(error_1 instanceof BridgeAssistError)) return [3 /*break*/, 5];
183
+ status_1 = typeof error_1.status === 'number' ? error_1.status : undefined;
184
+ if (!((typeof status_1 === 'number' && status_1 >= 500) || status_1 == null)) return [3 /*break*/, 5];
185
+ retryAfterMs = ((_a = error_1.retryAfter) !== null && _a !== void 0 ? _a : 3) * 1000;
186
+ return [4 /*yield*/, delay(Math.min(Math.max(retryAfterMs, 1000), 15000))];
187
+ case 3:
188
+ _c.sent();
189
+ return [4 /*yield*/, buildSignAndSubmitClaimTx(params)];
190
+ case 4: return [2 /*return*/, _c.sent()];
191
+ case 5:
192
+ if (!(error_1 instanceof BridgeAssistError) || error_1.status !== 404) {
193
+ throw error_1;
194
+ }
195
+ return [4 /*yield*/, createBridgeDeposit({
196
+ wallet: params.fallbackWallet,
197
+ chain: params.sourceChain,
198
+ solanaAddress: params.destinationAddress,
199
+ amount: params.fallbackAmount,
200
+ bridgeTx: params.bridgeTx,
201
+ depositId: params.depositId,
202
+ attestationId: (_b = params.attestationId) !== null && _b !== void 0 ? _b : undefined,
203
+ })];
204
+ case 6:
205
+ _c.sent();
206
+ return [4 /*yield*/, buildSignAndSubmitClaimTx(params)];
207
+ case 7: return [2 /*return*/, _c.sent()];
208
+ case 8: return [2 /*return*/];
209
+ }
210
+ });
211
+ }); };
212
+ //# sourceMappingURL=claimSubmission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimSubmission.js","sourceRoot":"","sources":["../../../../../../src/features/onboarding-flow/utils/deposit/claimSubmission.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from 'buffer';\nimport { PublicKey, VersionedTransaction } from '@solana/web3.js';\nimport { BridgeAssistError } from '../../bridge-assist/types';\nimport { createBridgeDeposit, fetchServerFeePayer, submitBridgeClaim } from '../../bridge-assist';\nimport { constructCctpClaimTx, hashVersionedTransaction } from '../../cctp/solanaClaim';\nimport { delay } from './solanaUtils';\n\nconst FEE_PAYER_WAIT_MAX_MS = 60_000;\nconst FEE_PAYER_BACKOFF_MS = [1000, 2000, 5000, 10_000, 15_000];\n\nconst fetchServerFeePayerWithRetry = async (): Promise<string> => {\n const startedAt = Date.now();\n let attempt = 0;\n let lastError: unknown = null;\n while (Date.now() - startedAt < FEE_PAYER_WAIT_MAX_MS) {\n try {\n const feePayer = await fetchServerFeePayer();\n if (feePayer) return feePayer;\n } catch (e) {\n lastError = e;\n // If the server is unreachable (network/CORS), surface immediately so UI can show it and auto-retry.\n if (e instanceof BridgeAssistError && e.status == null) {\n throw e;\n }\n }\n const backoff = FEE_PAYER_BACKOFF_MS[Math.min(attempt, FEE_PAYER_BACKOFF_MS.length - 1)];\n attempt += 1;\n await delay(backoff);\n }\n if (lastError instanceof BridgeAssistError) {\n throw lastError;\n }\n throw new Error('Server fee payer not available');\n};\n\ntype SolanaWalletLike = {\n chain?: string;\n getSigner: () => Promise<{ signTransaction?: (tx: unknown) => Promise<unknown> } | null>;\n};\n\nexport interface SubmitClaimWithRetryParams {\n depositId: string;\n message: string;\n attestation: string;\n sourceChain: string;\n destinationAddress: string;\n lookupTableAddress: string;\n solanaWallet: SolanaWalletLike;\n fallbackWallet: string;\n fallbackAmount: string;\n bridgeTx: string;\n attestationId: string | null;\n}\n\nconst buildSignAndSubmitClaimTx = async ({\n depositId,\n message,\n attestation,\n sourceChain,\n destinationAddress,\n lookupTableAddress,\n solanaWallet,\n}: Omit<SubmitClaimWithRetryParams, 'fallbackWallet' | 'fallbackAmount' | 'bridgeTx' | 'attestationId'>): Promise<string> => {\n if (!lookupTableAddress) {\n throw new Error('CCTP lookup table not configured (NEXT_PUBLIC_CCTP_LOOKUP_TABLE_ADDRESS)');\n }\n if (!depositId) throw new Error('Missing deposit ID for claim transaction');\n if (!solanaWallet) throw new Error('Solana wallet not connected. Please connect your wallet to finish the claim.');\n if (solanaWallet.chain && solanaWallet.chain !== 'SOL') {\n throw new Error('Connected wallet is not a Solana wallet');\n }\n\n const signer = await solanaWallet.getSigner();\n if (!signer?.signTransaction) {\n throw new Error('Connected wallet cannot sign transactions');\n }\n\n // Bridge Assist fee payer may briefly be unavailable during server startup.\n // Poll with backoff to avoid pausing the flow.\n const feePayer = await fetchServerFeePayerWithRetry();\n\n const built = await constructCctpClaimTx({\n message,\n attestation,\n sourceChain,\n destinationAddress,\n feePayer,\n userAddress: destinationAddress,\n lookupTableAddress,\n rpcUrl: process.env.NEXT_PUBLIC_NORD_SOLANA_URL,\n });\n\n if (!built) {\n throw new Error('Failed to build claim transaction locally');\n }\n\n const { tx, blockhash, lastValidBlockHeight } = built;\n const signed = await signer.signTransaction(tx as any);\n if (!(signed instanceof VersionedTransaction)) {\n throw new Error('Lookup-table claims require a VersionedTransaction');\n }\n\n // Extract user signature from VersionedTransaction signatures\n const userKey = new PublicKey(destinationAddress);\n const accountKeys = signed.message.staticAccountKeys;\n const sigIndex = accountKeys.findIndex((k) => k.equals(userKey));\n if (sigIndex < 0) {\n throw new Error('User pubkey not found in transaction account keys');\n }\n const sig = signed.signatures[sigIndex];\n if (!sig) {\n throw new Error('User signature missing after signing');\n }\n\n const userSignatureBase64 = Buffer.from(sig).toString('base64');\n const txHash = hashVersionedTransaction(signed as any);\n\n const submission = await submitBridgeClaim(depositId, {\n message,\n attestation,\n sourceChain,\n destinationAddress,\n lookupTableAddress,\n blockhash,\n lastValidBlockHeight,\n userSignature: userSignatureBase64,\n txHash,\n });\n\n if (!submission?.tx) {\n throw new Error('Bridge Assist did not return a transaction signature');\n }\n\n return submission.tx;\n};\n\n/**\n * Submits a claim to Bridge Assist. If the deposit does not exist on the server (404),\n * it will create it and retry once.\n */\nexport const submitClaimWithRetry = async (params: SubmitClaimWithRetryParams): Promise<string> => {\n try {\n return await buildSignAndSubmitClaimTx(params);\n } catch (error) {\n // If Bridge Assist temporarily unavailable, retry once with backoff.\n if (error instanceof BridgeAssistError) {\n const status = typeof error.status === 'number' ? error.status : undefined;\n if ((typeof status === 'number' && status >= 500) || status == null) {\n const retryAfterMs = (error.retryAfter ?? 3) * 1000;\n await delay(Math.min(Math.max(retryAfterMs, 1000), 15_000));\n return await buildSignAndSubmitClaimTx(params);\n }\n }\n if (!(error instanceof BridgeAssistError) || error.status !== 404) {\n throw error;\n }\n\n await createBridgeDeposit({\n wallet: params.fallbackWallet,\n chain: params.sourceChain,\n solanaAddress: params.destinationAddress,\n amount: params.fallbackAmount,\n bridgeTx: params.bridgeTx,\n depositId: params.depositId,\n attestationId: params.attestationId ?? undefined,\n });\n\n return await buildSignAndSubmitClaimTx(params);\n }\n};\n\n\n"]}
@@ -0,0 +1,37 @@
1
+ import { PendingDepositStage, PendingDepositState } from './storage';
2
+ export interface DepositStatus {
3
+ stage: PendingDepositStage;
4
+ tx?: string | null;
5
+ reason?: string | null;
6
+ bridgeTx?: string | null;
7
+ mintTx?: string | null;
8
+ attestationId?: string | null;
9
+ depositId?: string | null;
10
+ }
11
+ export type DepositStatusFetcher = (depositId: string) => Promise<DepositStatus | null>;
12
+ export interface DepositPollerOptions {
13
+ fetchStatus: DepositStatusFetcher;
14
+ intervalMs?: number;
15
+ maxIntervalMs?: number;
16
+ jitterMs?: number;
17
+ readStorage?: () => PendingDepositState | null;
18
+ writeStorage?: (state: PendingDepositState) => PendingDepositState | void;
19
+ clearStorage?: () => void;
20
+ onStatus?: (status: DepositStatus) => void;
21
+ onError?: (error: unknown) => void;
22
+ }
23
+ export interface DepositPoller {
24
+ start: (depositId: string) => void;
25
+ stop: () => void;
26
+ isRunning: () => boolean;
27
+ }
28
+ /**
29
+ * Creates a deposit poller that tracks deposit status through bridge stages.
30
+ *
31
+ * Features:
32
+ * - Exponential backoff on errors (doubles interval up to maxIntervalMs)
33
+ * - Jittered intervals to prevent request synchronization
34
+ * - Storage-based state reconciliation between server and client
35
+ * - Auto-stops on completion (solana_confirmed) or failure
36
+ */
37
+ export declare const createDepositPoller: (options: DepositPollerOptions) => DepositPoller;
@@ -0,0 +1,199 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { advancePendingDeposit, clearPendingDeposit, reconcileStages, readPendingDeposit, writePendingDeposit, } from './storage';
38
+ var DEFAULT_INTERVAL_MS = 3000;
39
+ var DEFAULT_MAX_INTERVAL_MS = 15000;
40
+ var DEFAULT_JITTER_MS = 250;
41
+ /**
42
+ * Adds random jitter to polling intervals to prevent synchronized requests.
43
+ */
44
+ var addJitter = function (base, jitterMs) {
45
+ if (jitterMs <= 0) {
46
+ return base;
47
+ }
48
+ var jitter = Math.floor(Math.random() * jitterMs);
49
+ return base + jitter;
50
+ };
51
+ /**
52
+ * Creates a deposit poller that tracks deposit status through bridge stages.
53
+ *
54
+ * Features:
55
+ * - Exponential backoff on errors (doubles interval up to maxIntervalMs)
56
+ * - Jittered intervals to prevent request synchronization
57
+ * - Storage-based state reconciliation between server and client
58
+ * - Auto-stops on completion (solana_confirmed) or failure
59
+ */
60
+ export var createDepositPoller = function (options) {
61
+ var _a, _b, _c, _d, _e, _f;
62
+ var readStorageFn = (_a = options.readStorage) !== null && _a !== void 0 ? _a : readPendingDeposit;
63
+ var writeStorageFn = (_b = options.writeStorage) !== null && _b !== void 0 ? _b : writePendingDeposit;
64
+ var clearStorageFn = (_c = options.clearStorage) !== null && _c !== void 0 ? _c : clearPendingDeposit;
65
+ var intervalMs = (_d = options.intervalMs) !== null && _d !== void 0 ? _d : DEFAULT_INTERVAL_MS;
66
+ var maxIntervalMs = (_e = options.maxIntervalMs) !== null && _e !== void 0 ? _e : DEFAULT_MAX_INTERVAL_MS;
67
+ var jitterMs = (_f = options.jitterMs) !== null && _f !== void 0 ? _f : DEFAULT_JITTER_MS;
68
+ var activeDepositId = null;
69
+ var timer = null;
70
+ var currentInterval = intervalMs;
71
+ var running = false;
72
+ var stop = function () {
73
+ running = false;
74
+ activeDepositId = null;
75
+ if (timer) {
76
+ clearTimeout(timer);
77
+ timer = null;
78
+ }
79
+ };
80
+ var scheduleNext = function () {
81
+ if (!running || !activeDepositId) {
82
+ return;
83
+ }
84
+ var delay = addJitter(currentInterval, jitterMs);
85
+ timer = setTimeout(poll, delay);
86
+ };
87
+ var poll = function () { return __awaiter(void 0, void 0, void 0, function () {
88
+ var serverStatus, localState, localStage, nextStage, workingState, created, created, error_1;
89
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
90
+ return __generator(this, function (_p) {
91
+ switch (_p.label) {
92
+ case 0:
93
+ if (!activeDepositId) {
94
+ stop();
95
+ return [2 /*return*/];
96
+ }
97
+ _p.label = 1;
98
+ case 1:
99
+ _p.trys.push([1, 3, 4, 5]);
100
+ return [4 /*yield*/, options.fetchStatus(activeDepositId)];
101
+ case 2:
102
+ serverStatus = _p.sent();
103
+ localState = readStorageFn();
104
+ localStage = (_a = localState === null || localState === void 0 ? void 0 : localState.stage) !== null && _a !== void 0 ? _a : 'initiated';
105
+ nextStage = reconcileStages(localStage, serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.stage);
106
+ // Safety check: stop if local state contains a different deposit ID
107
+ if (localState && localState.depositId !== activeDepositId) {
108
+ stop();
109
+ return [2 /*return*/];
110
+ }
111
+ if (serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.stage) {
112
+ (_b = options.onStatus) === null || _b === void 0 ? void 0 : _b.call(options, serverStatus);
113
+ }
114
+ workingState = localState;
115
+ if (!workingState && serverStatus) {
116
+ created = writeStorageFn({
117
+ depositId: activeDepositId,
118
+ wallet: '',
119
+ chain: '',
120
+ amount: '',
121
+ stage: serverStatus.stage,
122
+ tx: (_c = serverStatus.tx) !== null && _c !== void 0 ? _c : null,
123
+ reason: (_d = serverStatus.reason) !== null && _d !== void 0 ? _d : null,
124
+ updatedAt: Date.now(),
125
+ });
126
+ workingState =
127
+ (_e = created) !== null && _e !== void 0 ? _e : readStorageFn();
128
+ }
129
+ // Handle failure: persist error state and stop polling
130
+ if (nextStage === 'failed') {
131
+ if (workingState) {
132
+ advancePendingDeposit(workingState, { stage: 'failed', reason: serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.reason });
133
+ }
134
+ else {
135
+ created = writeStorageFn({
136
+ depositId: activeDepositId,
137
+ wallet: '',
138
+ chain: '',
139
+ amount: '',
140
+ stage: 'failed',
141
+ tx: (_f = serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.tx) !== null && _f !== void 0 ? _f : null,
142
+ reason: (_g = serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.reason) !== null && _g !== void 0 ? _g : null,
143
+ updatedAt: Date.now(),
144
+ });
145
+ workingState =
146
+ (_h = created) !== null && _h !== void 0 ? _h : readStorageFn();
147
+ }
148
+ stop();
149
+ return [2 /*return*/];
150
+ }
151
+ if (workingState) {
152
+ advancePendingDeposit(workingState, {
153
+ stage: nextStage,
154
+ tx: (_k = (_j = serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.tx) !== null && _j !== void 0 ? _j : workingState.tx) !== null && _k !== void 0 ? _k : null,
155
+ reason: (_m = (_l = serverStatus === null || serverStatus === void 0 ? void 0 : serverStatus.reason) !== null && _l !== void 0 ? _l : workingState.reason) !== null && _m !== void 0 ? _m : null,
156
+ });
157
+ }
158
+ // Completion: clear storage and stop polling
159
+ if (nextStage === 'solana_confirmed') {
160
+ clearStorageFn();
161
+ stop();
162
+ return [2 /*return*/];
163
+ }
164
+ // Reset interval on success
165
+ currentInterval = intervalMs;
166
+ return [3 /*break*/, 5];
167
+ case 3:
168
+ error_1 = _p.sent();
169
+ // Exponential backoff on errors
170
+ currentInterval = Math.min(currentInterval * 2, maxIntervalMs);
171
+ (_o = options.onError) === null || _o === void 0 ? void 0 : _o.call(options, error_1);
172
+ return [3 /*break*/, 5];
173
+ case 4:
174
+ scheduleNext();
175
+ return [7 /*endfinally*/];
176
+ case 5: return [2 /*return*/];
177
+ }
178
+ });
179
+ }); };
180
+ var start = function (depositId) {
181
+ if (!depositId) {
182
+ throw new Error('Deposit id is required to start polling');
183
+ }
184
+ if (activeDepositId === depositId && running) {
185
+ return;
186
+ }
187
+ stop();
188
+ activeDepositId = depositId;
189
+ running = true;
190
+ currentInterval = intervalMs;
191
+ void poll();
192
+ };
193
+ return {
194
+ start: start,
195
+ stop: stop,
196
+ isRunning: function () { return running; },
197
+ };
198
+ };
199
+ //# sourceMappingURL=depositPolling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositPolling.js","sourceRoot":"","sources":["../../../../../../src/features/onboarding-flow/utils/deposit/depositPolling.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PendingDepositStage,\n PendingDepositState,\n advancePendingDeposit,\n clearPendingDeposit,\n reconcileStages,\n readPendingDeposit,\n writePendingDeposit,\n} from './storage';\n\nexport interface DepositStatus {\n stage: PendingDepositStage;\n tx?: string | null;\n reason?: string | null;\n bridgeTx?: string | null;\n mintTx?: string | null;\n attestationId?: string | null;\n depositId?: string | null;\n}\n\nexport type DepositStatusFetcher = (depositId: string) => Promise<DepositStatus | null>;\n\nexport interface DepositPollerOptions {\n fetchStatus: DepositStatusFetcher;\n intervalMs?: number;\n maxIntervalMs?: number;\n jitterMs?: number;\n readStorage?: () => PendingDepositState | null;\n writeStorage?: (state: PendingDepositState) => PendingDepositState | void;\n clearStorage?: () => void;\n onStatus?: (status: DepositStatus) => void;\n onError?: (error: unknown) => void;\n}\n\nconst DEFAULT_INTERVAL_MS = 3_000;\nconst DEFAULT_MAX_INTERVAL_MS = 15_000;\nconst DEFAULT_JITTER_MS = 250;\n\n/**\n * Adds random jitter to polling intervals to prevent synchronized requests.\n */\nconst addJitter = (base: number, jitterMs: number): number => {\n if (jitterMs <= 0) {\n return base;\n }\n const jitter = Math.floor(Math.random() * jitterMs);\n return base + jitter;\n};\n\nexport interface DepositPoller {\n start: (depositId: string) => void;\n stop: () => void;\n isRunning: () => boolean;\n}\n\n/**\n * Creates a deposit poller that tracks deposit status through bridge stages.\n *\n * Features:\n * - Exponential backoff on errors (doubles interval up to maxIntervalMs)\n * - Jittered intervals to prevent request synchronization\n * - Storage-based state reconciliation between server and client\n * - Auto-stops on completion (solana_confirmed) or failure\n */\nexport const createDepositPoller = (options: DepositPollerOptions): DepositPoller => {\n const readStorageFn = options.readStorage ?? readPendingDeposit;\n const writeStorageFn = options.writeStorage ?? writePendingDeposit;\n const clearStorageFn = options.clearStorage ?? clearPendingDeposit;\n const intervalMs = options.intervalMs ?? DEFAULT_INTERVAL_MS;\n const maxIntervalMs = options.maxIntervalMs ?? DEFAULT_MAX_INTERVAL_MS;\n const jitterMs = options.jitterMs ?? DEFAULT_JITTER_MS;\n\n let activeDepositId: string | null = null;\n let timer: ReturnType<typeof setTimeout> | null = null;\n let currentInterval = intervalMs;\n let running = false;\n\n const stop = () => {\n running = false;\n activeDepositId = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n const scheduleNext = () => {\n if (!running || !activeDepositId) {\n return;\n }\n const delay = addJitter(currentInterval, jitterMs);\n timer = setTimeout(poll, delay);\n };\n\n const poll = async () => {\n if (!activeDepositId) {\n stop();\n return;\n }\n try {\n const serverStatus = await options.fetchStatus(activeDepositId);\n const localState = readStorageFn();\n const localStage = localState?.stage ?? 'initiated';\n const nextStage = reconcileStages(localStage, serverStatus?.stage);\n\n // Safety check: stop if local state contains a different deposit ID\n if (localState && localState.depositId !== activeDepositId) {\n stop();\n return;\n }\n\n if (serverStatus?.stage) {\n options.onStatus?.(serverStatus);\n }\n\n let workingState = localState;\n if (!workingState && serverStatus) {\n const created = writeStorageFn({\n depositId: activeDepositId,\n wallet: '',\n chain: '',\n amount: '',\n stage: serverStatus.stage,\n tx: serverStatus.tx ?? null,\n reason: serverStatus.reason ?? null,\n updatedAt: Date.now(),\n });\n workingState =\n (created as PendingDepositState | undefined | null) ?? readStorageFn();\n }\n\n // Handle failure: persist error state and stop polling\n if (nextStage === 'failed') {\n if (workingState) {\n advancePendingDeposit(workingState, { stage: 'failed', reason: serverStatus?.reason });\n } else {\n const created = writeStorageFn({\n depositId: activeDepositId,\n wallet: '',\n chain: '',\n amount: '',\n stage: 'failed',\n tx: serverStatus?.tx ?? null,\n reason: serverStatus?.reason ?? null,\n updatedAt: Date.now(),\n });\n workingState =\n (created as PendingDepositState | undefined | null) ?? readStorageFn();\n }\n stop();\n return;\n }\n\n if (workingState) {\n advancePendingDeposit(workingState, {\n stage: nextStage,\n tx: serverStatus?.tx ?? workingState.tx ?? null,\n reason: serverStatus?.reason ?? workingState.reason ?? null,\n });\n }\n\n // Completion: clear storage and stop polling\n if (nextStage === 'solana_confirmed') {\n clearStorageFn();\n stop();\n return;\n }\n\n // Reset interval on success\n currentInterval = intervalMs;\n } catch (error) {\n // Exponential backoff on errors\n currentInterval = Math.min(currentInterval * 2, maxIntervalMs);\n options.onError?.(error);\n } finally {\n scheduleNext();\n }\n };\n\n const start = (depositId: string) => {\n if (!depositId) {\n throw new Error('Deposit id is required to start polling');\n }\n if (activeDepositId === depositId && running) {\n return;\n }\n stop();\n activeDepositId = depositId;\n running = true;\n currentInterval = intervalMs;\n void poll();\n };\n\n return {\n start,\n stop,\n isRunning: () => running,\n };\n};\n"]}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Interface that matches the EIP-1193 request method signature.
3
+ */
4
+ interface Eip1193Provider {
5
+ request: (args: {
6
+ method: string;
7
+ params?: any[] | any;
8
+ }) => Promise<any>;
9
+ }
10
+ /**
11
+ * Intercepts EIP-1193 provider requests to capture transaction hashes for specific actions.
12
+ * This is used to capture the "Burn" transaction hash in CCTP flows *before* the
13
+ * high-level BridgeKit client resolves, allowing for immediate UI updates and state persistence.
14
+ */
15
+ export declare class EvmTxInterceptor {
16
+ private capturedTx;
17
+ private readonly callback;
18
+ constructor(onTxCaptured: (txHash: string) => void);
19
+ /**
20
+ * Wraps an EIP-1193 provider (or generic wallet object with a request method)
21
+ * to intercept eth_sendTransaction and eth_sendRawTransaction calls.
22
+ */
23
+ wrap(provider: Eip1193Provider | any): any;
24
+ private inspectRequest;
25
+ private shouldIgnoreTransaction;
26
+ }
27
+ export {};