@privy-io/react-auth 1.97.0 → 2.0.0-beta-20241218005049

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 (333) hide show
  1. package/dist/cjs/abstract-smart-wallets.js +1 -1
  2. package/dist/cjs/actions/importWallet.js +1 -1
  3. package/dist/cjs/auth-flows/farcaster.js +1 -1
  4. package/dist/cjs/auth-flows/telegram.js +1 -1
  5. package/dist/cjs/client/user.js +1 -1
  6. package/dist/cjs/client.js +1 -1
  7. package/dist/cjs/components/Captcha.js +1 -1
  8. package/dist/cjs/components/ConnectEmailForm.js +1 -1
  9. package/dist/cjs/components/LoginModal.js +1 -1
  10. package/dist/cjs/components/QrCode.js +2 -2
  11. package/dist/cjs/components/UpdateEmailForm.js +1 -1
  12. package/dist/cjs/components/embedded-wallets/PriceDisplay.js +3 -3
  13. package/dist/cjs/components/embedded-wallets/SolanaTransactionDetails.js +1 -1
  14. package/dist/cjs/components/embedded-wallets/TransactionDetails.js +2 -2
  15. package/dist/cjs/components/embedded-wallets/TransactionDetailsWrapper.js +1 -1
  16. package/dist/cjs/components/embedded-wallets/TransactionTotal.js +1 -1
  17. package/dist/cjs/components/embedded-wallets/WalletLink.js +1 -1
  18. package/dist/cjs/components/embedded-wallets/index.js +1 -1
  19. package/dist/cjs/components/ui/wallet/Address.js +1 -1
  20. package/dist/cjs/components/ui/wallet/WalletInfoCard.js +1 -1
  21. package/dist/cjs/components/ui/wallet/WalletInfoCard.story.js +1 -1
  22. package/dist/cjs/connectors/coinbase.js +1 -1
  23. package/dist/cjs/connectors/embedded.js +1 -1
  24. package/dist/cjs/connectors/embeddedProvider.js +1 -1
  25. package/dist/cjs/connectors/errors.js +1 -1
  26. package/dist/cjs/connectors/ethereum/EthereumNullConnector.js +1 -1
  27. package/dist/cjs/connectors/ethereum/index.js +1 -1
  28. package/dist/cjs/connectors/index.js +1 -1
  29. package/dist/cjs/connectors/injected.js +1 -1
  30. package/dist/cjs/connectors/metamask.js +1 -1
  31. package/dist/cjs/connectors/phantom-solana.js +1 -1
  32. package/dist/cjs/connectors/phantom.js +1 -1
  33. package/dist/cjs/connectors/privyProxyProvider.js +1 -1
  34. package/dist/cjs/connectors/solana/SolanaNullConnector.js +1 -1
  35. package/dist/cjs/connectors/solana/index.js +1 -1
  36. package/dist/cjs/connectors/solana/toSolanaWalletConnectors.js +1 -1
  37. package/dist/cjs/connectors/walletconnect-registry.js +1 -1
  38. package/dist/cjs/connectors/walletconnect-v2.js +1 -1
  39. package/dist/cjs/constants.js +1 -1
  40. package/dist/cjs/embedded-wallets/EmbeddedWalletIframe.js +1 -1
  41. package/dist/cjs/embedded-wallets/delegated-actions.js +1 -1
  42. package/dist/cjs/embedded-wallets/rpc/index.js +1 -1
  43. package/dist/cjs/embedded-wallets/solana/provider.js +1 -1
  44. package/dist/cjs/errors-42YzokZM.js +1 -0
  45. package/dist/cjs/hooks/captcha-context.js +1 -1
  46. package/dist/cjs/hooks/privy-context.js +1 -1
  47. package/dist/cjs/hooks/privy-provider.js +1 -1
  48. package/dist/cjs/hooks/smart-wallets-provider.js +1 -1
  49. package/dist/cjs/hooks/useEmbeddedWalletCreate.js +1 -1
  50. package/dist/cjs/hooks/useFormattedBalances.js +1 -1
  51. package/dist/cjs/hooks/useImportWallet.js +1 -1
  52. package/dist/cjs/hooks/useLinkWithSiwe.js +1 -1
  53. package/dist/cjs/hooks/useLoginWithEmail.js +1 -1
  54. package/dist/cjs/hooks/useLoginWithOAuth.js +1 -1
  55. package/dist/cjs/hooks/useLoginWithPasskey.js +1 -1
  56. package/dist/cjs/hooks/useLoginWithSms.js +1 -1
  57. package/dist/cjs/hooks/usePrivy.js +1 -1
  58. package/dist/cjs/hooks/useSolanaWallets.js +1 -1
  59. package/dist/cjs/hooks/useWalletBalance.js +1 -1
  60. package/dist/cjs/index.js +1 -1
  61. package/dist/cjs/lib/abstract-smart-wallets.js +1 -1
  62. package/dist/cjs/lib/erc20/actions/getErc20TokenInfo.js +1 -1
  63. package/dist/cjs/lib/ethers.js +1 -1
  64. package/dist/cjs/lib/smart-wallets.js +1 -1
  65. package/dist/cjs/lib/viem/prepareTransactionRequest.js +1 -0
  66. package/dist/cjs/lib/viem/toViemTransactionSerializable.js +1 -0
  67. package/dist/cjs/lib/wallets/actions/getBalanceForChains.js +1 -1
  68. package/dist/cjs/lib/wallets/actions/getErc20Balance.js +1 -1
  69. package/dist/cjs/privy-components/user-pill/Account.js +1 -1
  70. package/dist/cjs/privy-components/user-pill/PrimaryAccount.js +1 -1
  71. package/dist/cjs/privy-components/user-pill/PrimaryWallet.js +1 -1
  72. package/dist/cjs/privy-components/user-pill/UserMenu.js +1 -1
  73. package/dist/cjs/privy-components/user-pill/UserPill.js +2 -2
  74. package/dist/cjs/privy-components/user-pill/UserPill.test.js +1 -1
  75. package/dist/cjs/privy-components/user-pill/screens/AccountScreen.js +1 -1
  76. package/dist/cjs/privy-components/user-pill/screens/LinkedAccountsScreen.js +1 -1
  77. package/dist/cjs/privy-components/user-pill/screens/MenuScreen.js +1 -1
  78. package/dist/cjs/privy-components/wallets-pill/ActiveWalletCard.js +1 -1
  79. package/dist/cjs/privy-components/wallets-pill/ConnectWalletView.js +1 -1
  80. package/dist/cjs/privy-components/wallets-pill/SelectActiveWalletView.js +1 -1
  81. package/dist/cjs/privy-components/wallets-pill/WalletCardView.js +1 -1
  82. package/dist/cjs/privy-components/wallets-pill/WalletsDialog.js +1 -1
  83. package/dist/cjs/privy-components/wallets-pill/useActiveWallet.js +1 -1
  84. package/dist/cjs/privy-provider-KA3u5fWE.js +2 -0
  85. package/dist/cjs/screens/AccountTransferScreen/EmbeddedWalletInfoView.js +1 -1
  86. package/dist/cjs/screens/AccountTransferScreen/LinkConflictScreen.js +1 -1
  87. package/dist/cjs/screens/AffirmativeConsentScreen.js +1 -1
  88. package/dist/cjs/screens/AwaitingPasswordlessCodeScreen.js +1 -1
  89. package/dist/cjs/screens/CaptchaScreen.js +1 -1
  90. package/dist/cjs/screens/ConnectOnlyAuthenticatedScreen.js +1 -1
  91. package/dist/cjs/screens/ConnectOnlyLandingScreen.js +1 -1
  92. package/dist/cjs/screens/ConnectOnlyStatusScreen.js +1 -1
  93. package/dist/cjs/screens/ConnectionStatusScreen.js +2 -2
  94. package/dist/cjs/screens/CrossAppAuthScreen.js +1 -1
  95. package/dist/cjs/screens/DelegatedActionsConsentScreen.js +1 -1
  96. package/dist/cjs/screens/EmbeddedWalletConnectingScreen.js +1 -1
  97. package/dist/cjs/screens/EmbeddedWalletCreatedScreen.js +1 -1
  98. package/dist/cjs/screens/EmbeddedWalletKeyExportScreen.js +2 -2
  99. package/dist/cjs/screens/EmbeddedWalletOnAccountCreateScreen.js +1 -1
  100. package/dist/cjs/screens/EmbeddedWalletPasswordUpdateScreen.js +1 -1
  101. package/dist/cjs/screens/ErrorScreen.js +1 -1
  102. package/dist/cjs/screens/FarcasterConnectStatusScreen.js +2 -2
  103. package/dist/cjs/screens/FarcasterSignerStatusScreen.js +2 -2
  104. package/dist/cjs/screens/Funding/AwaitingEvmToSolBridgingScreen.js +1 -1
  105. package/dist/cjs/screens/Funding/AwaitingExternalSolanaTransferScreen.js +2 -2
  106. package/dist/cjs/screens/Funding/AwaitingExternalTransferScreen.js +1 -1
  107. package/dist/cjs/screens/Funding/AwaitingSolToEvmBridgingScreen.js +1 -1
  108. package/dist/cjs/screens/Funding/BridgeNetworkSelectionView.js +1 -1
  109. package/dist/cjs/screens/Funding/FundingEditAmountScreen.js +1 -1
  110. package/dist/cjs/screens/Funding/FundingMethodSelectionScreen.js +1 -1
  111. package/dist/cjs/screens/Funding/ManualTransferScreen.js +1 -1
  112. package/dist/cjs/screens/Funding/TransferFromWalletScreen.js +1 -1
  113. package/dist/cjs/screens/Funding/TransferOrBridgeLoadingScreen.js +1 -1
  114. package/dist/cjs/screens/LandingScreen/ConnectOrCreateScreen.js +1 -1
  115. package/dist/cjs/screens/LandingScreen/CustomLandingScreenView.js +1 -1
  116. package/dist/cjs/screens/LandingScreen/EmailButton.js +1 -1
  117. package/dist/cjs/screens/LandingScreen/FarcasterButton.js +1 -1
  118. package/dist/cjs/screens/LandingScreen/LandingScreen.js +1 -1
  119. package/dist/cjs/screens/LandingScreen/LandingScreenView.js +1 -1
  120. package/dist/cjs/screens/LandingScreen/PasskeyLink.js +1 -1
  121. package/dist/cjs/screens/LandingScreen/SmsButton.js +1 -1
  122. package/dist/cjs/screens/LandingScreen/SocialButton.js +1 -1
  123. package/dist/cjs/screens/LandingScreen/TelegramButton.js +1 -1
  124. package/dist/cjs/screens/LinkEmailScreen.js +1 -1
  125. package/dist/cjs/screens/LinkWalletScreen.js +1 -1
  126. package/dist/cjs/screens/MfaScreens/EnrollPasskey.js +1 -1
  127. package/dist/cjs/screens/MfaScreens/EnrollSms.js +1 -1
  128. package/dist/cjs/screens/MfaScreens/EnrollTotp.js +1 -1
  129. package/dist/cjs/screens/MfaScreens/MfaEnrollmentFlowScreen.js +1 -1
  130. package/dist/cjs/screens/MfaScreens/MfaVerifyFlowScreen.js +1 -1
  131. package/dist/cjs/screens/MfaScreens/VerifyWithPasskey.js +1 -1
  132. package/dist/cjs/screens/OAuthStatusScreen.js +1 -1
  133. package/dist/cjs/screens/Recovery/PasswordRecoveryScreen.js +1 -1
  134. package/dist/cjs/screens/Recovery/RecoveryPasswordCreateScreen.js +1 -1
  135. package/dist/cjs/screens/Recovery/RecoverySelectionScreen.js +1 -1
  136. package/dist/cjs/screens/Recovery/SetAutomaticRecoveryScreen.js +1 -1
  137. package/dist/cjs/screens/SendSolanaTransactionScreen/SendSolanaTransactionScreen.js +1 -1
  138. package/dist/cjs/screens/SendSolanaTransactionScreen/SolanaTransactionReceiptView.js +1 -1
  139. package/dist/cjs/screens/SendTransactionScreen/SendTransactionScreen.js +1 -1
  140. package/dist/cjs/screens/SendTransactionScreen/SendTransactionScreenView.js +1 -1
  141. package/dist/cjs/screens/SendTransactionScreen/TransactionDetail.js +1 -1
  142. package/dist/cjs/screens/SendTransactionScreen/TransactionErrorView.js +1 -1
  143. package/dist/cjs/screens/SendTransactionScreen/TransactionReceiptView.js +1 -1
  144. package/dist/cjs/screens/SendTransactionScreen/index.js +1 -1
  145. package/dist/cjs/screens/SendTransactionScreen/usePrepareTransaction.js +1 -1
  146. package/dist/cjs/screens/SignRequestScreen.js +1 -1
  147. package/dist/cjs/screens/TelegramAuthScreen.js +1 -1
  148. package/dist/cjs/screens/UpdateEmailScreen.js +1 -1
  149. package/dist/cjs/session.js +1 -1
  150. package/dist/cjs/smart-wallets.js +1 -1
  151. package/dist/cjs/solana.js +1 -1
  152. package/dist/cjs/svg/qr-codes.js +1 -1
  153. package/dist/cjs/ui.js +1 -1
  154. package/dist/cjs/utils/eth/getPublicClient.js +1 -0
  155. package/dist/cjs/utils/index.js +1 -1
  156. package/dist/dts/index.d.mts +701 -96
  157. package/dist/dts/index.d.ts +701 -96
  158. package/dist/dts/solana.d.mts +2 -4
  159. package/dist/dts/solana.d.ts +2 -4
  160. package/dist/dts/{types-DIHtez5D.d.mts → types-BPlIk19Q.d.mts} +4 -8
  161. package/dist/dts/{types-DIHtez5D.d.ts → types-BPlIk19Q.d.ts} +4 -8
  162. package/dist/dts/ui.d.mts +1 -3
  163. package/dist/dts/ui.d.ts +1 -3
  164. package/dist/dts/{useFundSolanaWallet-BQJ4tqWZ.d.mts → useFundSolanaWallet-DfyLcX1R.d.mts} +6 -5
  165. package/dist/dts/{useFundSolanaWallet-BQJ4tqWZ.d.ts → useFundSolanaWallet-DfyLcX1R.d.ts} +6 -5
  166. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  167. package/dist/esm/actions/importWallet.mjs +1 -1
  168. package/dist/esm/auth-flows/farcaster.mjs +1 -1
  169. package/dist/esm/auth-flows/telegram.mjs +1 -1
  170. package/dist/esm/client/user.mjs +1 -1
  171. package/dist/esm/client.mjs +1 -1
  172. package/dist/esm/components/Captcha.mjs +1 -1
  173. package/dist/esm/components/ConnectEmailForm.mjs +1 -1
  174. package/dist/esm/components/LoginModal.mjs +1 -1
  175. package/dist/esm/components/QrCode.mjs +2 -2
  176. package/dist/esm/components/UpdateEmailForm.mjs +1 -1
  177. package/dist/esm/components/embedded-wallets/PriceDisplay.mjs +3 -3
  178. package/dist/esm/components/embedded-wallets/SolanaTransactionDetails.mjs +1 -1
  179. package/dist/esm/components/embedded-wallets/TransactionDetails.mjs +2 -2
  180. package/dist/esm/components/embedded-wallets/TransactionDetailsWrapper.mjs +1 -1
  181. package/dist/esm/components/embedded-wallets/TransactionTotal.mjs +1 -1
  182. package/dist/esm/components/embedded-wallets/WalletLink.mjs +1 -1
  183. package/dist/esm/components/embedded-wallets/index.mjs +1 -1
  184. package/dist/esm/components/ui/wallet/Address.mjs +1 -1
  185. package/dist/esm/components/ui/wallet/WalletInfoCard.mjs +1 -1
  186. package/dist/esm/components/ui/wallet/WalletInfoCard.story.mjs +1 -1
  187. package/dist/esm/connectors/coinbase.mjs +1 -1
  188. package/dist/esm/connectors/embedded.mjs +1 -1
  189. package/dist/esm/connectors/embeddedProvider.mjs +1 -1
  190. package/dist/esm/connectors/errors.mjs +1 -1
  191. package/dist/esm/connectors/ethereum/EthereumNullConnector.mjs +1 -1
  192. package/dist/esm/connectors/ethereum/index.mjs +1 -1
  193. package/dist/esm/connectors/index.mjs +1 -1
  194. package/dist/esm/connectors/injected.mjs +1 -1
  195. package/dist/esm/connectors/metamask.mjs +1 -1
  196. package/dist/esm/connectors/phantom-solana.mjs +1 -1
  197. package/dist/esm/connectors/phantom.mjs +1 -1
  198. package/dist/esm/connectors/privyProxyProvider.mjs +1 -1
  199. package/dist/esm/connectors/solana/SolanaNullConnector.mjs +1 -1
  200. package/dist/esm/connectors/solana/index.mjs +1 -1
  201. package/dist/esm/connectors/solana/toSolanaWalletConnectors.mjs +1 -1
  202. package/dist/esm/connectors/walletconnect-registry.mjs +1 -1
  203. package/dist/esm/connectors/walletconnect-v2.mjs +1 -1
  204. package/dist/esm/constants.mjs +1 -1
  205. package/dist/esm/embedded-wallets/EmbeddedWalletIframe.mjs +1 -1
  206. package/dist/esm/embedded-wallets/delegated-actions.mjs +1 -1
  207. package/dist/esm/embedded-wallets/rpc/index.mjs +1 -1
  208. package/dist/esm/embedded-wallets/solana/provider.mjs +1 -1
  209. package/dist/esm/errors-l5CH-t4_.mjs +1 -0
  210. package/dist/esm/hooks/captcha-context.mjs +1 -1
  211. package/dist/esm/hooks/privy-context.mjs +1 -1
  212. package/dist/esm/hooks/privy-provider.mjs +1 -1
  213. package/dist/esm/hooks/smart-wallets-provider.mjs +1 -1
  214. package/dist/esm/hooks/useEmbeddedWalletCreate.mjs +1 -1
  215. package/dist/esm/hooks/useFormattedBalances.mjs +1 -1
  216. package/dist/esm/hooks/useImportWallet.mjs +1 -1
  217. package/dist/esm/hooks/useLinkWithSiwe.mjs +1 -1
  218. package/dist/esm/hooks/useLoginWithEmail.mjs +1 -1
  219. package/dist/esm/hooks/useLoginWithOAuth.mjs +1 -1
  220. package/dist/esm/hooks/useLoginWithPasskey.mjs +1 -1
  221. package/dist/esm/hooks/useLoginWithSms.mjs +1 -1
  222. package/dist/esm/hooks/usePrivy.mjs +1 -1
  223. package/dist/esm/hooks/useSolanaWallets.mjs +1 -1
  224. package/dist/esm/hooks/useWalletBalance.mjs +1 -1
  225. package/dist/esm/index.mjs +1 -1
  226. package/dist/esm/lib/abstract-smart-wallets.mjs +1 -1
  227. package/dist/esm/lib/erc20/actions/getErc20TokenInfo.mjs +1 -1
  228. package/dist/esm/lib/ethers.mjs +1 -1
  229. package/dist/esm/lib/smart-wallets.mjs +1 -1
  230. package/dist/esm/lib/viem/prepareTransactionRequest.mjs +1 -0
  231. package/dist/esm/lib/viem/toViemTransactionSerializable.mjs +1 -0
  232. package/dist/esm/lib/wallets/actions/getBalanceForChains.mjs +1 -1
  233. package/dist/esm/lib/wallets/actions/getErc20Balance.mjs +1 -1
  234. package/dist/esm/privy-components/user-pill/Account.mjs +1 -1
  235. package/dist/esm/privy-components/user-pill/PrimaryAccount.mjs +1 -1
  236. package/dist/esm/privy-components/user-pill/PrimaryWallet.mjs +1 -1
  237. package/dist/esm/privy-components/user-pill/UserMenu.mjs +1 -1
  238. package/dist/esm/privy-components/user-pill/UserPill.mjs +2 -2
  239. package/dist/esm/privy-components/user-pill/UserPill.test.mjs +1 -1
  240. package/dist/esm/privy-components/user-pill/screens/AccountScreen.mjs +1 -1
  241. package/dist/esm/privy-components/user-pill/screens/LinkedAccountsScreen.mjs +1 -1
  242. package/dist/esm/privy-components/user-pill/screens/MenuScreen.mjs +1 -1
  243. package/dist/esm/privy-components/wallets-pill/ActiveWalletCard.mjs +1 -1
  244. package/dist/esm/privy-components/wallets-pill/ConnectWalletView.mjs +1 -1
  245. package/dist/esm/privy-components/wallets-pill/SelectActiveWalletView.mjs +1 -1
  246. package/dist/esm/privy-components/wallets-pill/WalletCardView.mjs +1 -1
  247. package/dist/esm/privy-components/wallets-pill/WalletsDialog.mjs +1 -1
  248. package/dist/esm/privy-components/wallets-pill/useActiveWallet.mjs +1 -1
  249. package/dist/esm/privy-provider-F6v2m9Y2.mjs +2 -0
  250. package/dist/esm/screens/AccountTransferScreen/EmbeddedWalletInfoView.mjs +1 -1
  251. package/dist/esm/screens/AccountTransferScreen/LinkConflictScreen.mjs +1 -1
  252. package/dist/esm/screens/AffirmativeConsentScreen.mjs +1 -1
  253. package/dist/esm/screens/AwaitingPasswordlessCodeScreen.mjs +1 -1
  254. package/dist/esm/screens/CaptchaScreen.mjs +1 -1
  255. package/dist/esm/screens/ConnectOnlyAuthenticatedScreen.mjs +1 -1
  256. package/dist/esm/screens/ConnectOnlyLandingScreen.mjs +1 -1
  257. package/dist/esm/screens/ConnectOnlyStatusScreen.mjs +1 -1
  258. package/dist/esm/screens/ConnectionStatusScreen.mjs +1 -1
  259. package/dist/esm/screens/CrossAppAuthScreen.mjs +1 -1
  260. package/dist/esm/screens/DelegatedActionsConsentScreen.mjs +1 -1
  261. package/dist/esm/screens/EmbeddedWalletConnectingScreen.mjs +1 -1
  262. package/dist/esm/screens/EmbeddedWalletCreatedScreen.mjs +1 -1
  263. package/dist/esm/screens/EmbeddedWalletKeyExportScreen.mjs +2 -2
  264. package/dist/esm/screens/EmbeddedWalletOnAccountCreateScreen.mjs +1 -1
  265. package/dist/esm/screens/EmbeddedWalletPasswordUpdateScreen.mjs +1 -1
  266. package/dist/esm/screens/ErrorScreen.mjs +1 -1
  267. package/dist/esm/screens/FarcasterConnectStatusScreen.mjs +2 -2
  268. package/dist/esm/screens/FarcasterSignerStatusScreen.mjs +2 -2
  269. package/dist/esm/screens/Funding/AwaitingEvmToSolBridgingScreen.mjs +1 -1
  270. package/dist/esm/screens/Funding/AwaitingExternalSolanaTransferScreen.mjs +2 -2
  271. package/dist/esm/screens/Funding/AwaitingExternalTransferScreen.mjs +2 -2
  272. package/dist/esm/screens/Funding/AwaitingSolToEvmBridgingScreen.mjs +1 -1
  273. package/dist/esm/screens/Funding/BridgeNetworkSelectionView.mjs +1 -1
  274. package/dist/esm/screens/Funding/FundingEditAmountScreen.mjs +1 -1
  275. package/dist/esm/screens/Funding/FundingMethodSelectionScreen.mjs +1 -1
  276. package/dist/esm/screens/Funding/ManualTransferScreen.mjs +1 -1
  277. package/dist/esm/screens/Funding/TransferFromWalletScreen.mjs +1 -1
  278. package/dist/esm/screens/Funding/TransferOrBridgeLoadingScreen.mjs +1 -1
  279. package/dist/esm/screens/LandingScreen/ConnectOrCreateScreen.mjs +1 -1
  280. package/dist/esm/screens/LandingScreen/CustomLandingScreenView.mjs +1 -1
  281. package/dist/esm/screens/LandingScreen/EmailButton.mjs +1 -1
  282. package/dist/esm/screens/LandingScreen/FarcasterButton.mjs +1 -1
  283. package/dist/esm/screens/LandingScreen/LandingScreen.mjs +1 -1
  284. package/dist/esm/screens/LandingScreen/LandingScreenView.mjs +1 -1
  285. package/dist/esm/screens/LandingScreen/PasskeyLink.mjs +1 -1
  286. package/dist/esm/screens/LandingScreen/SmsButton.mjs +1 -1
  287. package/dist/esm/screens/LandingScreen/SocialButton.mjs +1 -1
  288. package/dist/esm/screens/LandingScreen/TelegramButton.mjs +1 -1
  289. package/dist/esm/screens/LinkEmailScreen.mjs +1 -1
  290. package/dist/esm/screens/LinkWalletScreen.mjs +1 -1
  291. package/dist/esm/screens/MfaScreens/EnrollPasskey.mjs +1 -1
  292. package/dist/esm/screens/MfaScreens/EnrollSms.mjs +1 -1
  293. package/dist/esm/screens/MfaScreens/EnrollTotp.mjs +1 -1
  294. package/dist/esm/screens/MfaScreens/MfaEnrollmentFlowScreen.mjs +1 -1
  295. package/dist/esm/screens/MfaScreens/MfaVerifyFlowScreen.mjs +1 -1
  296. package/dist/esm/screens/MfaScreens/VerifyWithPasskey.mjs +1 -1
  297. package/dist/esm/screens/OAuthStatusScreen.mjs +1 -1
  298. package/dist/esm/screens/Recovery/PasswordRecoveryScreen.mjs +1 -1
  299. package/dist/esm/screens/Recovery/RecoveryPasswordCreateScreen.mjs +1 -1
  300. package/dist/esm/screens/Recovery/RecoverySelectionScreen.mjs +1 -1
  301. package/dist/esm/screens/Recovery/SetAutomaticRecoveryScreen.mjs +1 -1
  302. package/dist/esm/screens/SendSolanaTransactionScreen/SendSolanaTransactionScreen.mjs +1 -1
  303. package/dist/esm/screens/SendSolanaTransactionScreen/SolanaTransactionReceiptView.mjs +1 -1
  304. package/dist/esm/screens/SendTransactionScreen/SendTransactionScreen.mjs +1 -1
  305. package/dist/esm/screens/SendTransactionScreen/SendTransactionScreenView.mjs +1 -1
  306. package/dist/esm/screens/SendTransactionScreen/TransactionDetail.mjs +1 -1
  307. package/dist/esm/screens/SendTransactionScreen/TransactionErrorView.mjs +1 -1
  308. package/dist/esm/screens/SendTransactionScreen/TransactionReceiptView.mjs +1 -1
  309. package/dist/esm/screens/SendTransactionScreen/index.mjs +1 -1
  310. package/dist/esm/screens/SendTransactionScreen/usePrepareTransaction.mjs +1 -1
  311. package/dist/esm/screens/SignRequestScreen.mjs +1 -1
  312. package/dist/esm/screens/TelegramAuthScreen.mjs +1 -1
  313. package/dist/esm/screens/UpdateEmailScreen.mjs +1 -1
  314. package/dist/esm/session.mjs +1 -1
  315. package/dist/esm/smart-wallets.mjs +1 -1
  316. package/dist/esm/solana.mjs +1 -1
  317. package/dist/esm/svg/qr-codes.mjs +1 -1
  318. package/dist/esm/ui.mjs +1 -1
  319. package/dist/esm/utils/eth/getPublicClient.mjs +1 -0
  320. package/dist/esm/utils/index.mjs +1 -1
  321. package/package.json +1 -13
  322. package/dist/cjs/errors-3fxlG6WB.js +0 -1
  323. package/dist/cjs/ethers-De6TACnn.js +0 -1
  324. package/dist/cjs/index-DNFBYH7-.js +0 -1
  325. package/dist/cjs/lib/polygonGasStation.js +0 -1
  326. package/dist/cjs/privy-provider-CCAJu2BJ.js +0 -2
  327. package/dist/cjs/screens/SendTransactionScreen/EthersTransactionError.js +0 -1
  328. package/dist/esm/errors-9ucGZPEs.mjs +0 -1
  329. package/dist/esm/ethers-Cz-frLvN.mjs +0 -1
  330. package/dist/esm/index-B3QfI7v9.mjs +0 -1
  331. package/dist/esm/lib/polygonGasStation.mjs +0 -1
  332. package/dist/esm/privy-provider-Ddew1epi.mjs +0 -2
  333. package/dist/esm/screens/SendTransactionScreen/EthersTransactionError.mjs +0 -1
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{createStore as a}from"mipd";import{useState as r,useRef as n,useEffect as i,useMemo as o}from"react";import{isAndroid as s}from"react-device-detect";import{getAddress as l}from"viem/utils";import{CustomJwtAccountFlow as c}from"./auth-flows/custom-jwt-account.mjs";import{UpdateEmailFlow as d,EmailFlow as u}from"./auth-flows/email.mjs";import{FarcasterFlow as h}from"./auth-flows/farcaster.mjs";import{GuestFlow as p}from"./auth-flows/guest.mjs";import{PasskeyFlow as w}from"./auth-flows/passkey.mjs";import{SiweFlow as m}from"./auth-flows/siwe.mjs";import{SiwsFlow as y}from"./auth-flows/siws.mjs";import{UpdateSmsFlow as f,SmsFlow as g}from"./auth-flows/sms.mjs";import{TelegramAuthFlow as E,detectCompletingTelegramFlow as _}from"./auth-flows/telegram.mjs";import{v4 as A}from"uuid";import{AccessToken as v}from"./accessToken.mjs";import{getEntropyDetailsFromAccount as T,convertUserResponseToUser as C,getPrivySolanaWallet as I,getPrivyPrimaryWallet as k,getEntropyDetailsFromUser as W,getPrivyEthereumWallet as N,getPrivyEthereumHDWallets as b,getImportedPrivyEthereumWallet as U,shouldProceedtoEmbeddedWalletCreationFlow as O,getLatestPrivyEthereumWallet as S,getEthereumSigningAndRootWallet as R,getSolanaSigningAndRootWallet as P}from"./client/user.mjs";import M from"eventemitter3";import{CONNECTORS_STATE_KEY as L,CONNECTIONS_HISTORY_KEY as D,DEFAULT_PRIVY_API_URL as F,DEFAULT_API_TIMEOUT_MS as x,CLIENT_ANALYTICS_ID_KEY as j,CUSTOMER_ACCESS_TOKEN_STORAGE_KEY as B,PRIVY_ACCESS_TOKEN_STORAGE_KEY as V,getGuestCredentialStorageKey as H,HEADLESS_OAUTH_KEY as K,OAUTH_DISABLE_SIGNUP_KEY as z,STATE_CODE_KEY as G,WALLET_PROXY_TIMEOUT as q,FORKED_TOKEN_STORAGE_KEY as $}from"./constants.mjs";import Y,{isLocalStorageAccessible as X}from"./storage.mjs";import{generateTypedDataWithDomainType as Q,toHex as J,detectInjectedConnectors as Z,formatChainIdToCAIP2 as ee}from"./utils/index.mjs";import{CoinbaseWalletConnector as te}from"./connectors/coinbase.mjs";import{EmbeddedWalletConnector as ae}from"./connectors/embedded.mjs";import{isSupportedEthereumRpcMethod as re}from"./embedded-wallets/rpc/types.mjs";import{Captcha as ne}from"./components/Captcha.mjs";import{LoginModal as ie}from"./components/LoginModal.mjs";import{TelegramLoginButton as oe}from"./components/TelegramLoginButton.mjs";import{PrivyAppConfigProvider as se,useAppConfig as le,useIsServerConfigLoaded as ce}from"./configuration/context.mjs";import{areWalletArraysEqual as de}from"./connectors/areWalletArraysEqual.mjs";import{P as ue}from"./errors-l5CH-t4_.mjs";import{isPhantomInstalled as he}from"./connectors/is-wallet-installed.mjs";import{isBaseConnectedEthereumWallet as pe}from"./connectors/isBaseConnectedEthereumWallet.mjs";import{isSolanaWalletConnector as we,isBaseConnectedSolanaWallet as me}from"./connectors/solana/index.mjs";import{WalletConnectV2WalletConnector as ye}from"./connectors/walletconnect-v2.mjs";import{EmbeddedWalletIframe as fe}from"./embedded-wallets/EmbeddedWalletIframe.mjs";import{isWalletDelegated as ge,getDelegatedWalletsData as Ee,getRootWalletDataForDelegation as _e,getDelegatedWalletsForUser as Ae}from"./embedded-wallets/delegated-actions.mjs";import{errorIndicatesRecoveryIsNeeded as ve}from"./embedded-wallets/errors.mjs";import{sendTransaction as Te}from"./embedded-wallets/rpc/index.mjs";import{PrivyClientError as Ce,formatApiError as Ie,formatPrivyError as ke,PrivyErrorCode as We,PrivyNotReadyError as Ne,PrivyConnectorError as be,PrivyError as Ue}from"./errors.mjs";import{signSolanaTransaction as Oe,sendSolanaTransaction as Se}from"./embedded-wallets/solana/transaction.mjs";import{extractChainIdFromCAIP2 as Re}from"./lib/caip2.mjs";import{USE_BROADCAST_CHANNEL_EVENT_TYPE as Pe,isPrivyTheOAuthProvider as Me,CROSS_APP_BROADCAST_CHANNEL_NAME as Le}from"./lib/cross-app/index.mjs";import{getCrossAppAuthorizationUrl as De,authenticateCrossAppAccount as Fe,getProviderAppMetadata as xe}from"./lib/cross-app/authFlow.mjs";import{popupCrossAppAuthFlow as je}from"./lib/cross-app/popupCrossAppAuthFlow.mjs";import{sendCrossAppRequest as Be}from"./lib/cross-app/sendCrossAppRequest.mjs";import{getRecoveryAuthorizationUrl as Ve,authenticateRecovery as He,embeddedWalletRecoveryScreen as Ke,toEmbeddedWalletSetRecoveryScreen as ze}from"./lib/embeddedWalletRecovery.mjs";import{FUNDING_SCREENS as Ge,fundingScreenMethodMap as qe}from"./lib/funding/index.mjs";import{isFundingEnabled as $e}from"./lib/funding/isFundingEnabled.mjs";import Ye from"./lib/isEmbeddedWebview.mjs";import{triggerPopup as Xe}from"./lib/popup/triggerPopup.mjs";import{popupOAuthFlow as Qe}from"./lib/popupOAuthFlow.mjs";import{prepareSiweMessageWithNonce as Je}from"./lib/siwe.mjs";import{decodeSolanaTransaction as Ze,createSolanaTransactionReceipt as et}from"./lib/solana/transaction.mjs";import{toDisplayFromAccountType as tt}from"./lib/toDisplayFromAccountType.mjs";import{prepareTransactionRequest as at}from"./lib/viem/prepareTransactionRequest.mjs";import{transformResponseToSnakeCase as rt}from"./passkeys/transformResponseToSnakeCase.mjs";import{PrivyPluginProvider as nt,usePlugins as it}from"./plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as ot}from"./plugins/solana-funding/id.mjs";import{RecentlyUsedAccountProvider as st}from"./recent-login/context.mjs";import{ModalScreen as lt}from"./screens/index.mjs";import{Hide as ct}from"./screens/LandingScreen/styles.mjs";import{GlobalStyle as dt}from"./styles.mjs";import{getPublicClient as ut}from"./utils/eth/getPublicClient.mjs";import{notImplemented as ht}from"./hooks/index.mjs";import{CaptchaProvider as pt}from"./hooks/captcha-context.mjs";import{privyEventsDefault as wt,emitPrivyEvent as mt,PrivyEventsContext as yt}from"./hooks/events-context.mjs";import{InternalPrivyContext as ft}from"./hooks/internal-context.mjs";import{ModalProvider as gt}from"./hooks/modal-context.mjs";import{PrivyContext as Et}from"./hooks/privy-context.mjs";import{UseWalletsContext as _t}from"./hooks/useWallets.mjs";import{prepareSolanaFundingModalData as At,prepareFundingModalData as vt}from"./lib/funding/prepareFundingModalData.mjs";import{detectCompletingOAuthFlow as Tt}from"./auth-flows/oauth/detectCompletingOAuthFlow.mjs";import{OAuthFlow as Ct}from"./auth-flows/oauth/OAuthFlow.mjs";import{toViemTransactionSerializable as It}from"./lib/viem/toViemTransactionSerializable.mjs";import{getRpcTimeout as kt}from"./connectors/getRpcTimeout.mjs";import{EmbeddedProviderError as Wt}from"./connectors/providerTypes.mjs";import{isEthereumWalletConnector as Nt}from"./connectors/ethereum/index.mjs";import{LegacyInjectedWalletConnector as bt,Injected6963WalletConnector as Ut}from"./connectors/injected.mjs";import{MetamaskWalletConnector as Ot}from"./connectors/metamask.mjs";import{PhantomEthereumNullWalletConnector as St}from"./connectors/phantom.mjs";import{PhantomSolanaNullWalletConnector as Rt}from"./connectors/phantom-solana.mjs";import{PrivyProxyProvider as Pt}from"./connectors/privyProxyProvider.mjs";import{Http as Mt}from"./http.mjs";import{getPaymasterContext as Lt}from"./lib/smart-wallet-helpers.mjs";import{transformOptionsToCamelCase as Dt}from"./passkeys/transformOptionsToCamelCase.mjs";import{mfaPasswordlessSmsInitPath as Ft,mfaPasskeyInitPath as xt,acceptTermsPath as jt,unlinkEmailPath as Bt,unlinkPhonePath as Vt,unlinkWalletPath as Ht,siwsUnlinkWalletPath as Kt,unlinkOAuthPath as zt,unlinkFarcasterPath as Gt,telegramAccountUnlinkPath as qt,unlinkPasskeyPath as $t,delegatedActionsRevokePath as Yt,analyticsEventsPath as Xt,moonpayPluginOnRampPath as Qt,coinbaseOnRampInitPath as Jt,coinbaseOnRampStatusPath as Zt,siweInitPath as ea,siweAuthenticatePath as ta,siweLinkPath as aa,smartWalletLinkPath as ra,siwsInitPath as na,siwsAuthenticatePath as ia,transferOAuthPath as oa,telegramAccountTransferPath as sa,transferFarcasterPath as la,transferWalletPath as ca,transferPhonePath as da,transferEmailPath as ua,siwsLinkPath as ha}from"./paths.mjs";import{AccessTokenTypes as pa,Session as wa}from"./session.mjs";class ma extends M{async handleSendTransaction(e){if(!e.params||!Array.isArray(e.params))throw new Wt(`Invalid params for ${e.method}`,4200);let t=e.params[0];if(!await Sa()||!this.address)throw new Wt("Disconnected",4900);return(await Ma(t,void 0,void 0,this.address)).hash}handleSwitchEthereumChain(e){let t;if(!e.params||!Array.isArray(e.params))throw new Wt(`Invalid params for ${e.method}`,4200);if("string"==typeof e.params[0])t=e.params[0];else{if(!("chainId"in e.params[0])||"string"!=typeof e.params[0].chainId)throw new Wt(`Invalid params for ${e.method}`,4200);t=e.params[0].chainId}this.chainId=Number(t),this.publicClient=ut(this.chainId,this.chains,this.rpcConfig,{appId:this.appId}),this.emit("chainChanged",t)}async handlePersonalSign(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for personal_sign");let t=e.params[0],a=e.params[1];return await Ra(t,void 0,a)}async handleSignedTypedData(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_signTypedData_v4");let t=e.params[0],a="string"==typeof e.params[1]?JSON.parse(e.params[1]):e.params[1];return await Pa(Q(a),void 0,t)}async handleEstimateGas(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_estimateGas");delete e.params[0].gasPrice,delete e.params[0].maxFeePerGas,delete e.params[0].maxPriorityFeePerGas;let t={...e.params[0],chainId:J(this.chainId)};return await this.publicClient.estimateGas(It(t))}async request(e){switch(console.debug("Embedded1193Provider.request() called with args",e),e.method){case"eth_accounts":case"eth_requestAccounts":return this.address?[this.address]:[];case"eth_chainId":return J(this.chainId);case"eth_estimateGas":return this.handleEstimateGas(e);case"eth_sendTransaction":return this.handleSendTransaction(e);case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(e);case"personal_sign":return this.handlePersonalSign(e);case"eth_signTypedData_v4":return this.handleSignedTypedData(e)}if(!re(e.method))return this.publicClient.request({method:e.method,params:e.params});{let t=await Sa();if(await La(),!t||!this.address)throw new Wt("Disconnected",4900);try{return(await this.walletProxy.rpc({accessToken:t,entropyId:this.entropyId,entropyIdVerifier:this.entropyIdVerifier,chainType:"ethereum",hdWalletIndex:this.walletIndex,request:{method:e.method,params:e.params}})).response.data}catch(e){throw console.error(e),new Wt("Disconnected",4900)}}}constructor({walletProxy:e,address:t,entropyId:a,entropyIdVerifier:r,rpcConfig:n,chains:i,appId:o,chainId:s=1,walletIndex:l}){super(),this.walletProxy=e,this.address=t,this.entropyId=a,this.entropyIdVerifier=r,this.chainId=s,this.rpcConfig=n,this.chains=i,this.publicClient=ut(s,this.chains,n,{appId:o}),this.rpcTimeoutDuration=kt(n,"privy"),this.appId=o,this.walletIndex=l}}class ya extends M{get wallets(){let e=new Set,t=this.walletConnectors.flatMap((e=>e.wallets)).sort(((e,t)=>e.connectedAt&&t.connectedAt?t.connectedAt-e.connectedAt:0)).filter((t=>{let a=`${t.address}${t.walletClientType}${t.connectorType}`;return!e.has(a)&&(e.add(a),!0)})),a=t.findIndex((e=>e.address===(this.activeWallet?this.activeWallet:"unknown")));return a>=0&&t.unshift(t.splice(a,1)[0]),t}async initialize(){if(this.initialized)return;Y.get(L)&&(Y.getKeys().forEach((e=>{e.startsWith("walletconnect")&&Y.del(e)})),Y.del(L));let e=Z({store:this.store,walletList:this.walletList,externalWalletConfig:this.externalWalletConfig,walletChainType:this.walletChainType}).then((e=>{e.forEach((({type:e,eip6963InjectedProvider:t,legacyInjectedProvider:a})=>{this.createEthereumWalletConnector("injected",e,{eip6963InjectedProvider:t,legacyInjectedProvider:a})}))}));this.walletList.includes("coinbase_wallet")&&this.createEthereumWalletConnector("coinbase_wallet","coinbase_wallet"),!he()&&this.walletList.includes("phantom")&&(["ethereum-only","ethereum-and-solana"].includes(this.walletChainType)&&this.createEthereumWalletConnector("phantom","phantom"),["ethereum-and-solana","solana-only"].includes(this.walletChainType)&&this.addWalletConnector(new Rt)),this.externalWalletConfig.walletConnect.enabled&&this.createEthereumWalletConnector("wallet_connect_v2","unknown"),this.externalWalletConfig.solana.connectors?.get().forEach(this.addSolanaWalletConnector),this.externalWalletConfig.solana.connectors?._setOnConnectorsUpdated?.((e=>{e?.forEach(this.addSolanaWalletConnector)})),await e,this.initialized=!0}findWalletConnector(e,t){return"wallet_connect_v2"===e?this.walletConnectors.filter(Nt).find((t=>t.connectorType===e))??null:this.walletConnectors.filter(Nt).find((a=>a.connectorType===e&&a.walletClientType===t))??null}findSolanaWalletConnector(e,t){return this.walletConnectors.filter(we).find((a=>a.connectorType===e&&a.walletClientType===t))??null}findEmbeddedWalletConnectors(){return this.walletConnectors.filter((e=>"embedded"===e.connectorType))}onInitialized(e){e.wallets.forEach((e=>{let t=this.storedConnections.find((t=>t.address===e.address&&t.connectorType===e.connectorType&&t.walletClientType===e.walletClientType));t&&(e.connectedAt=t.connectedAt)})),this.saveConnectionHistory(),this.emit("walletsUpdated"),this.emit("connectorInitialized")}onWalletsUpdated(e){e.initialized&&(this.saveConnectionHistory(),this.emit("walletsUpdated"))}addEmbeddedWalletConnectors({walletProxy:e,rootWallet:t,embeddedWallets:a,defaultChain:r,appId:n}){for(let i of a){let a=this.findEmbeddedWalletConnectors().find((e=>e.walletIndex===i.walletIndex));if(a&&Nt(a))a.proxyProvider.walletProxy=e;else{let{entropyId:a,entropyIdVerifier:o}=T(t),s=new ae({provider:new ma({walletProxy:e,address:i.address,entropyId:a,entropyIdVerifier:o,rpcConfig:this.rpcConfig,chains:this.chains,appId:n,chainId:r.id,walletIndex:i.walletIndex}),chains:this.chains,defaultChain:r,rpcConfig:this.rpcConfig,imported:!1,walletIndex:i.walletIndex});this.addWalletConnector(s)}}}addImportedWalletConnector(e,t,a,r){let n=this.findWalletConnector("embedded_imported","privy");if(n&&Nt(n))n.proxyProvider.walletProxy=e;else{let n=new ae({provider:new ma({walletProxy:e,address:t,entropyId:t,entropyIdVerifier:"ethereum-address-verifier",walletIndex:0,rpcConfig:this.rpcConfig,chains:this.chains,appId:r,chainId:a.id}),chains:this.chains,walletIndex:0,defaultChain:a,rpcConfig:this.rpcConfig,imported:!0});this.addWalletConnector(n)}}removeEmbeddedWalletConnectors(){this.walletConnectors=this.walletConnectors.filter((e=>"embedded"!==e.connectorType)),this.saveConnectionHistory(),this.storedConnections=fa(),this.emit("walletsUpdated")}removeImportedWalletConnector(){let e=this.findWalletConnector("embedded_imported","privy");if(e){let t=this.walletConnectors.indexOf(e);this.walletConnectors.splice(t,1),this.saveConnectionHistory(),this.storedConnections=fa(),this.emit("walletsUpdated")}}async createEthereumWalletConnector(e,t,a){let r=this.findWalletConnector(e,t);if(r&&Nt(r))return r instanceof ye&&r.resetConnection(t),r;let n=(()=>"injected"!==e?"coinbase_wallet"===e?new te(this.chains,this.defaultChain,this.rpcConfig,this.externalWalletConfig,this.privyAppName,this.privyAppLogo):"phantom"===e?new St(this.defaultChain):new ye(this.walletConnectCloudProjectId,this.rpcConfig,this.chains,this.defaultChain,this.shouldEnforceDefaultChainOnConnect,this.privyAppId,this.privyAppName,t):"metamask"===t&&a?.eip6963InjectedProvider?new Ot(this.chains,this.defaultChain,this.rpcConfig,a?.eip6963InjectedProvider,"metamask"):"metamask"===t&&a?.legacyInjectedProvider?new bt(this.chains,this.defaultChain,this.rpcConfig,a?.legacyInjectedProvider,"metamask"):"phantom"===t&&a?.legacyInjectedProvider?new bt(this.chains,this.defaultChain,this.rpcConfig,a?.legacyInjectedProvider,"phantom"):a?.legacyInjectedProvider&&"unknown_browser_extension"===t?new bt(this.chains,this.defaultChain,this.rpcConfig,a?.legacyInjectedProvider):a?.eip6963InjectedProvider?new Ut(this.chains,this.defaultChain,this.rpcConfig,a?.eip6963InjectedProvider,t):void 0)();return n&&this.addWalletConnector(n),n||null}addWalletConnector(e){this.walletConnectors.push(e),e.on("initialized",(()=>this.onInitialized(e))),e.on("walletsUpdated",(()=>this.onWalletsUpdated(e))),e.initialize().catch((e=>{console.debug("Failed to initialize connector",e)}))}saveConnectionHistory(){let e=this.wallets.map((e=>({address:e.address,connectorType:e.connectorType,walletClientType:e.walletClientType,connectedAt:e.connectedAt})));Y.put(D,e)}async activeWalletSign(e){let t=this.wallets,a=t.length>0?t[0]:null;return a&&pe(a)?a.sign(e):null}setActiveWallet(e){this.activeWallet=l(e),this.emit("walletsUpdated")}constructor(e,t,a,r,n,i,o,s,l,c,d,u){super(),this.addSolanaWalletConnector=async e=>{this.findSolanaWalletConnector("solana_adapter",e.walletClientType)||this.addWalletConnector(e)},this.getEthereumProvider=()=>{let e=this.wallets[0],t=this.walletConnectors.find((t=>t.wallets.find((t=>t.address===e?.address))));return e&&t?t.proxyProvider:new Pt},this.privyAppId=e,this.walletConnectCloudProjectId=t,this.rpcConfig=a,this.chains=r,this.defaultChain=n,this.walletConnectors=[],this.initialized=!1,this.store=i,this.walletList=o,this.shouldEnforceDefaultChainOnConnect=s,this.externalWalletConfig=l,this.privyAppName=c,this.privyAppLogo=d,this.walletChainType=u||"ethereum-only",this.storedConnections=fa()}}const fa=()=>{let e=Y.get(D);return e&&Array.isArray(e)&&e.map((e=>(e=>e&&"string"==typeof e.address&&"string"==typeof e.connectorType&&"string"==typeof e.walletClientType&&"number"==typeof e.connectedAt)(e))).every(Boolean)?e:[]};let ga;var Ea=0,_a="__private_"+Ea+++"__getOrGenerateClientAnalyticsId";class Aa{initializeConnectorManager({walletConnectCloudProjectId:e,rpcConfig:t,chains:a,defaultChain:r,store:n,walletList:i,shouldEnforceDefaultChainOnConnect:o,externalWalletConfig:s,appName:l,walletChainType:c}){this.connectors||(this.connectors=new ya(this.appId,e,t,a,r,n,i,o,s,l,void 0,c))}generateApi(){let e=new Mt({appId:this.appId,appClientId:this.appClientId,client:this,defaults:{baseURL:this.apiUrl,timeout:this.timeout}});return this.session.api=e,e}updateApiUrl(e){this.apiUrl=e||this.fallbackApiUrl,this.api=this.generateApi(),e&&(this.useServerCookies=!0)}authenticate(){if(!this.authFlow)throw new Ce("No auth flow in progress.");return this.session.authenticate(this.authFlow)}async link(){if(!this.authFlow)throw new Ce("No auth flow in progress.");let{oAuthTokens:e}=await this.session.link(this.authFlow);return{user:await this.getAuthenticatedUser(),oAuthTokens:e}}storeProviderAccessToken(e,t){this.session.storeProviderAccessToken(e,t)}getProviderAccessToken(e){return this.session.getProviderAccessToken(e)}async logout(){await this.session.destroy(),this.authFlow=void 0}clearProviderAcccessTokens(e){e.linkedAccounts.filter((e=>"cross_app"===e.type)).forEach((e=>{this.storeProviderAccessToken(e.providerApp.id,null)}))}startAuthFlow(e){return e.api=this.api,this.authFlow=e,this.authFlow}async initMfaSmsVerification(){try{await this.api.post(Ft,{action:"verify"})}catch(e){throw Ie(e)}}async initMfaPasskeyVerification(){try{let e=await this.api.post(xt,{});return Dt(e.options)}catch(e){throw Ie(e)}}async getCrossAppProviderDetails(e){try{return this._cachedProviderAppDetails[e]||(this._cachedProviderAppDetails[e]=await this.api.get(`/api/v1/apps/${e}/cross-app/details`)),this._cachedProviderAppDetails[e]}catch(e){console.error("Error fetching cross app provider details",e)}}async acceptTerms(){try{let e=await this.api.post(jt,{});return C(e)}catch(e){throw ke(e)}}async unlinkEmail(e){try{let t=await this.api.post(Bt,{address:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async unlinkPhone(e){try{let t=await this.api.post(Vt,{phoneNumber:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async unlinkEthereumWallet(e){try{let t=await this.api.post(Ht,{address:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async unlinkSolanaWallet(e){try{let t=await this.api.post(Kt,{address:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async unlinkOAuth(e,t){try{let a=await this.api.post(zt,{provider:e,subject:t});return await this.getAuthenticatedUser()??C(a)}catch(e){throw ke(e)}}async unlinkFarcaster(e){try{let t=await this.api.post(Gt,{fid:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async unlinkTelegram(e){try{let t=await this.api.post(qt,{telegram_user_id:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async unlinkPasskey(e){try{let t=await this.api.post($t,{credential_id:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw ke(e)}}async revokeDelegatedWallet(){try{await this.api.post(Yt,{})}catch(e){throw ke(e)}}async createAnalyticsEvent({eventName:e,payload:t,timestamp:a,options:r}){if("undefined"!=typeof window)try{this.clientAnalyticsId||console.warn("No client analytics id set, refusing to send analytics event"),await this.api.post(Xt,{event_name:e,client_id:this.clientAnalyticsId,payload:{...t||{},clientTimestamp:a?a.toISOString():(new Date).toISOString()}},{retry:-1,keepalive:r?.keepAlive??!1})}catch(e){}}async signMoonpayOnRampUrl(e){try{return this.api.post(Qt,e)}catch(e){throw ke(e)}}async initCoinbaseOnRamp(e){try{return this.api.post(Jt,e)}catch(e){throw ke(e)}}async getCoinbaseOnRampStatus({partnerUserId:e}){try{return this.api.get(`${Zt}?partnerUserId=${e}`)}catch(e){throw ke(e)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()||this.session.hasRecoveryCredentials()?this.session.refresh():null}async getAccessToken(e){return await this.getPrivyAccessToken(e)||await this.getCustomerAccessToken(e)}async getCustomerAccessToken(e){return await this._getToken(pa.CUSTOMER,e)}async getPrivyAccessToken(e){return await this._getToken(pa.PRIVY,e)}async _getToken(e,t){return this.session.getToken(e)?this.session.hasActiveAccessToken(e)?this.session.hasRefreshCredentials(e)?v.parse(this.session.getToken(e))?.appId!==this.appId?(await this.logout(),null):this.session.getToken(e):(this.session.destroyLocalState(),null):!t?.disableAutoRefresh&&this.session.hasRefreshCredentials(e)?(await this.session.refresh(),this.session.getToken(e)):null:null}async getSmartWalletsConfig(){try{let e={},t=this.session.token;t&&(e.authorization=`Bearer ${t}`);let a=await this.api.get(`/api/v1/apps/${this.appId}/smart_wallets`,{baseURL:this.fallbackApiUrl,headers:e});return a.enabled?{enabled:a.enabled,smartWalletType:a.smart_wallet_type,configuredNetworks:a.configured_networks.map((e=>({chainId:e.chain_id,bundlerUrl:e.bundler_url,paymasterUrl:e.paymaster_url,paymasterContext:Lt(e.paymaster_url,e.paymaster_context)})))}:{enabled:a.enabled}}catch(e){throw ke(e)}}async getServerConfig(){try{let e={},t=this.session.token;t&&(e.authorization=`Bearer ${t}`);let a=await this.api.get(`/api/v1/apps/${this.appId}`,{baseURL:this.fallbackApiUrl,headers:e}),r=a.telegram_auth_config?{botId:a.telegram_auth_config.bot_id,botName:a.telegram_auth_config.bot_name,linkEnabled:a.telegram_auth_config.link_enabled,seamlessAuthEnabled:a.telegram_auth_config.seamless_auth_enabled}:void 0,n=a.funding_config?{methods:a.funding_config.methods,options:a.funding_config.options,defaultRecommendedAmount:a.funding_config.default_recommended_amount,defaultRecommendedCurrency:a.funding_config.default_recommended_currency,promptFundingOnWalletCreation:a.funding_config.prompt_funding_on_wallet_creation,crossChainBridgingEnabled:a.funding_config.cross_chain_bridging_enabled}:void 0;return{id:a.id,name:a.name,verificationKey:a.verification_key,logoUrl:a.logo_url||void 0,accentColor:a.accent_color||void 0,showWalletLoginFirst:a.show_wallet_login_first,allowlistConfig:{errorTitle:a.allowlist_config.error_title,errorDetail:a.allowlist_config.error_detail,errorCtaText:a.allowlist_config.cta_text,errorCtaLink:a.allowlist_config.cta_link},walletAuth:a.wallet_auth,solanaWalletAuth:a.solana_wallet_auth,emailAuth:a.email_auth,smsAuth:a.sms_auth,googleOAuth:a.google_oauth,twitterOAuth:a.twitter_oauth,discordOAuth:a.discord_oauth,githubOAuth:a.github_oauth,spotifyOAuth:a.spotify_oauth,instagramOAuth:a.instagram_oauth,tiktokOAuth:a.tiktok_oauth,linkedinOAuth:a.linkedin_oauth,appleOAuth:a.apple_oauth,farcasterAuth:a.farcaster_auth,passkeyAuth:a.passkey_auth,telegramAuth:a.telegram_auth,disablePlusEmails:a.disable_plus_emails,termsAndConditionsUrl:a.terms_and_conditions_url,embeddedWalletConfig:{createOnLogin:a.embedded_wallet_config?.create_on_login,userOwnedRecoveryOptions:a.embedded_wallet_config.user_owned_recovery_options,requireUserOwnedRecoveryOnCreate:a.embedded_wallet_config.require_user_owned_recovery_on_create},privacyPolicyUrl:a.privacy_policy_url,requireUsersAcceptTerms:a.require_users_accept_terms,customApiUrl:a.custom_api_url,walletConnectCloudProjectId:a.wallet_connect_cloud_project_id,fiatOnRampEnabled:a.fiat_on_ramp_enabled,captchaEnabled:a.captcha_enabled,captchaSiteKey:a.captcha_site_key,createdAt:new Date(1e3*a.created_at),updatedAt:new Date(1e3*a.updated_at),mfaMethods:a.mfa_methods,enforceWalletUis:a.enforce_wallet_uis,legacyWalletUiConfig:a.legacy_wallet_ui_config,telegramAuthConfiguration:r,fundingConfig:n}}catch(e){throw ke(e)}}async getUsdTokenPrice(e){try{return(await this.api.get(`/api/v1/token_price?chainId=${e.id}&tokenSymbol=${e.nativeCurrency.symbol}`)).usd}catch(t){return void console.error(`Unable to fetch token price for chain with id ${e.id}`)}}async getUsdPriceForSol(){try{return(await this.api.get("/api/v1/token_price?chainId=0&tokenSymbol=SOL")).usd}catch(e){return void console.error("Unable to fetch token price for SOL")}}async requestFarcasterSignerStatus(e){try{return await this.api.post("/api/v1/farcaster/signer/status",{ed25519_public_key:e})}catch(e){throw console.error("Unable to fetch Farcaster signer status"),e}}async forkSession(){return await this.session.forkSession()}async generateSiweNonce({address:e,captchaToken:t}){try{return(await this.api.post(ea,{address:e,token:t})).nonce}catch(e){throw ke(e)}}async authenticateWithSiweInternal({message:e,signature:t,chainId:a,walletClientType:r,connectorType:n,mode:i}){return await this.api.post(ta,{message:e,signature:t,chainId:a,walletClientType:r,connectorType:n,mode:i})}async linkWithSiweInternal({message:e,signature:t,chainId:a,walletClientType:r,connectorType:n}){return await this.api.post(aa,{message:e,signature:t,chainId:a,walletClientType:r,connectorType:n})}async linkSmartWallet({message:e,signature:t,smartWalletType:a}){try{let r=await this.api.post(ra,{message:e,signature:t,smart_wallet_type:a});return C(r)}catch(e){throw ke(e)}}async linkWithSiwe({message:e,signature:t,chainId:a,walletClientType:r,connectorType:n}){try{let i=await this.linkWithSiweInternal({message:e,signature:t,chainId:a,walletClientType:r,connectorType:n});return C(i)}catch(e){throw ke(e)}}async generateSiwsNonce({address:e,captchaToken:t}){try{return(await this.api.post(na,{address:e,token:t})).nonce}catch(e){throw ke(e)}}async authenticateWithSiwsInternal({message:e,signature:t,walletClientType:a,connectorType:r,mode:n}){return await this.api.post(ia,{message:e,signature:t,walletClientType:a,connectorType:r,mode:n})}async sendAccountTransferRequest({nonce:e,account:t,accountType:a,externalWalletMetadata:r,telegramAuthResult:n,farcasterEmbeddedAddress:i,oAuthUserInfo:o}){try{let s,l;switch(a){case"email":s=ua,l={nonce:e,email:t};break;case"sms":s=da,l={nonce:e,phoneNumber:t};break;case"siwe":if(s=ca,!r)throw Error("Wallet parameters must be defined");l={nonce:e,address:t,...r};break;case"farcaster":s=la,l={nonce:e,farcaster_id:t,farcaster_embedded_address:i};break;case"telegram":s=sa,l={nonce:e,telegram_auth_result:n};break;case"custom":case"guest":case"passkey":throw Error("Invalid transfer account type");default:s=oa,l={nonce:e,userInfo:o}}let c=await this.api.post(s,l);return await this.getAuthenticatedUser()??C(c)}catch(e){throw ke(e)}}async linkWithSiwsInternal({message:e,signature:t,walletClientType:a,connectorType:r}){return await this.api.post(ha,{message:e,signature:t,walletClientType:a,connectorType:r})}async linkWithSiws({message:e,signature:t,walletClientType:a,connectorType:r}){try{let n=await this.linkWithSiwsInternal({message:e,signature:t,walletClientType:a,connectorType:r});return C(n)}catch(e){throw ke(e)}}constructor({apiUrl:e=F,appId:t,appClientId:a,timeout:r=x}){Object.defineProperty(this,_a,{value:va}),this._cachedProviderAppDetails={},this.apiUrl=e,this.fallbackApiUrl=this.apiUrl,this.useServerCookies=e!==F&&e.startsWith("https://privy."),this.timeout=r,this.appId=t,this.appClientId=a,this.clientAnalyticsId=function(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}(this,_a)[_a](),ga||(ga=new wa),this.session=ga,this.api=this.generateApi(),this.session.client=this}}function va(){if("undefined"==typeof window)return null;try{let e=Y.get(j);if("string"==typeof e&&e.length>0)return e}catch(e){}let e=A();try{return Y.put(j,e),e}catch(t){return e}}class Ta{async handleSignMessage(e){if(!e.params||"string"!=typeof e.params.message)throw Error("Message must be provided as a string for Solana signMessage RPC");return await Fa({message:e.params.message})}async request(e){if(console.debug("EmbeddedSolanaProvider.request() called with args",e),!await Sa())throw Error("User must be authenticated to use embedded Solana wallet");if(!await Da())throw new Ce("Unable to connect to Solana embedded wallet");if("signMessage"===e.method)return await this.handleSignMessage(e);throw Error("Embedded Solana provider does not yet support this RPC method.")}constructor(e,t){this.walletProxy=e,this.address=t}}let Ca,Ia,ka,Wa,Na,ba,Ua;function Oa(){return Ca?Ca.getCustomerAccessToken():Promise.resolve(Y.get(B)||null)}async function Sa(){return Ca?Ca.getAccessToken():Promise.resolve(Y.get(V)||Y.get(B)||null)}const Ra=(e,t,a)=>Ia(e,t,a),Pa=(e,t,a)=>ka(e,t,a),Ma=(e,t,a,r)=>Wa(e,t,a,r),La=()=>Na(),Da=()=>ba(),Fa=({message:e})=>Ua({message:e});const xa=({config:t,...a})=>{var r;if("undefined"!=typeof window&&0>["localhost","127.0.0.1"].indexOf(window.location.hostname)&&"https:"!==window.location.protocol)throw new Ce("Embedded wallet is only available over HTTPS");if("string"!=typeof(r=a.appId)||25!==r.length)throw new Ce("Cannot initialize the Privy provider with an invalid Privy app ID");Ca||(Ca=new Aa({appId:a.appId,appClientId:a.clientId,apiUrl:a.apiUrl}));let n=Object.assign({},t);return void 0!==a.createPrivyWalletOnLogin&&void 0===n.embeddedWallets?.createOnLogin&&(n.embeddedWallets||(n.embeddedWallets={}),n.embeddedWallets.createOnLogin=a.createPrivyWalletOnLogin?"users-without-wallets":"off"),void 0!==a.createPrivyWalletOnLogin&&t?.embeddedWallets?.createOnLogin&&console.warn("Both `createPrivyWalletOnLogin` and `config.embeddedWallets.createOnLogin` are set. `createPrivyWalletOnLogin` is deprecated and should be removed."),/*#__PURE__*/e(se,{client:Ca,clientConfig:n,legacyCreateEmbeddedWalletFlag:a.createPrivyWalletOnLogin,children:/*#__PURE__*/e(nt,{children:/*#__PURE__*/e(ja,{...a,client:Ca})})})};let ja=A=>{let v=A.client,C=it(),[M,L]=r(!1),[D,x]=r(!1),[B,V]=r(!1),[Z,te]=r(null),[ae,re]=r([]),[se,we]=r([]),[Ie,ke]=r(null),nt=n(ae),[It,kt]=r(!1),[Wt,Nt]=r(null),[bt,Ut]=r(!1),[Ot,St]=r({status:"disconnected",connectedWallet:null,connectError:null,connector:null,connectRetry:ht}),[Rt,Pt]=r({status:"initial"}),[Mt,Lt]=r({status:"initial"}),[Dt,Ft]=r({status:"initial"}),[xt,jt]=r({status:"initial"}),[Bt,Vt]=r({status:"initial"}),[Ht,Kt]=r(null),zt=le(),Gt=ce(),[qt,$t]=r(!0),[Yt,Xt]=r({}),[Qt,Jt]=r(null),[Zt,ea]=r(null),[ta,aa]=r(!1),[ra,na]=r(!1),[ia,oa]=r(zt.customAuth?.enabled?{status:"initial"}:{status:"not-enabled"}),sa=n(null),la=n(null),ca=n(wt),[da,ua]=r(!1);v.onStoreCustomerAccessToken=e=>{e&&mt(ca,"accessToken","onAccessTokenGranted",e)},v.onDeleteCustomerAccessToken=()=>{te(null),V(!1),mt(ca,"accessToken","onAccessTokenRemoved")};let ha=n(null),pa=n(null),wa=n(!1),ma=({showWalletUIs:e,typedData:t})=>wa.current?wa.current:void 0!==e?!e:void 0!==zt.embeddedWallets.showWalletUIs?!zt.embeddedWallets.showWalletUIs:t?zt.embeddedWallets.noPromptOnSignature||(zt.legacyWalletUiConfig??!1):!!zt.embeddedWallets.noPromptOnSignature,ya=e=>{Nt(e),setTimeout((()=>{L(!0)}),15),v.createAnalyticsEvent({eventName:"modal_open",payload:{initialScreen:e}})},fa=e=>{"off"!==zt.embeddedWallets.createOnLogin&&$t(!0),ya(e)};i((()=>{let e=I(Z);if(!e||!Ht)return void ke(null);let t={type:"solana",imported:!1,address:e.address,connectedAt:Date.now(),walletClientType:"privy",connectorType:"embedded",walletIndex:e.walletIndex??void 0,meta:{name:"Privy Wallet",icon:void 0,id:"io.privy.solana.wallet"},linked:!0,fund(){throw new Ce("'fund' is deprecated for Solana wallets - use 'fundWallet' instead")},unlink:()=>{throw new Ce("Cannot unlink an embedded Solana wallet")},getProvider:async()=>new Ta(Ht,e.address),async signMessage(e){let t=await Sa(),a=k(Z);if(!t||!Ht||!a)throw new Ce("Must have valid access token and Privy wallet to send transaction",We.MUST_BE_AUTHENTICATED);if(!await Ja.recoverPrimaryWallet().catch((()=>!1)))throw new Ce("Wallet couldn't be connected",We.UNKNOWN_CONNECT_WALLET_ERROR);let{entropyId:r,entropyIdVerifier:n}=T(a),{response:i}=await Ht.rpc({accessToken:t,entropyId:r,entropyIdVerifier:n,chainType:"solana",hdWalletIndex:this.walletIndex??0,request:{method:"signMessage",params:{message:Buffer.from(e).toString("base64")}}});return Buffer.from(i.data.signature,"base64")},async sendTransaction(e,t,a){let{signature:r}=await za({transaction:e,connection:t,transactionOptions:a,wallet:this});return r},async signTransaction(e){let t=await Sa();if(!t||!Ht)throw new Ce("Must have valid access token and Privy wallet to send transaction",We.MUST_BE_AUTHENTICATED);if(!await Ja.recoverPrimaryWallet().catch((()=>!1)))throw new Ce("Wallet couldn't be connected",We.UNKNOWN_CONNECT_WALLET_ERROR);let{entropyId:a,entropyIdVerifier:r}=W(Z);return await Oe({tx:e,accessToken:t,walletProxy:Ht,entropyId:a,entropyIdVerifier:r,transactingWalletAddress:this.address,transactingWalletIndex:this.walletIndex??0}),e},loginOrLink:async()=>{throw new Ce("Cannot login or link with an embedded Solana wallet")},disconnect:()=>{ke(null)},isConnected:async()=>!0};ke(t)}),[Ht,Z]),i((()=>{if(!Z)return void v.connectors?.removeEmbeddedWalletConnectors();let e=N(Z),t=b(Z),a=U(Z);e&&t.length||v.connectors?.removeEmbeddedWalletConnectors(),a||v.connectors?.removeImportedWalletConnector(),v.connectors?Ht?(e&&v.connectors.addEmbeddedWalletConnectors({walletProxy:Ht,rootWallet:e,embeddedWallets:t,defaultChain:zt.defaultChain,appId:A.appId}),a&&v.connectors.addImportedWalletConnector(Ht,a.address,zt.defaultChain,A.appId)):console.debug("Failed to add embedded wallet connector: Wallet proxy not initialized"):console.debug("Failed to add embedded wallet connector: Client connectors not initialized")}),[Ht,Z]),i((()=>{Ht&&Zt?.(Ht)}),[Ht]);let ga=n();i((()=>{(async()=>{if(!zt.customAuth?.enabled)return void oa({status:"not-enabled"});$t(!0);let{getCustomAccessToken:e,isLoading:t}=zt.customAuth;if(D&&!t&&"loading"!==ia.status){oa({status:"loading"});try{let t=await e();if(t===ga.current)return void oa({status:"done"});if(!t&&B)return ga.current=t,await Qa.logout(),oa({status:"done"}),void mt(ca,"customAuth","onUnauthenticated");if(!t)return ga.current=t,void oa({status:"done"});v.startAuthFlow(new c(t));let{user:a,isNewUser:r}=await v.authenticate();if(!a)return await Qa.logout(),oa({status:"error",error:new Ce("Failed to sync with custom auth provider")}),void mt(ca,"customAuth","onUnauthenticated");void 0!==r&&mt(ca,"login","onComplete",a,r,!1,"custom",null),ga.current=t,mt(ca,"customAuth","onAuthenticated",{user:a}),oa({status:"done"}),te(a||null),kt(r||!1),V(!0),na(!0)}catch(e){if(console.warn(e),await Qa.logout(),mt(ca,"customAuth","onUnauthenticated"),"User already exists with provided custom JWT account."===e.message)return void oa({status:"initial"});mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),oa({status:"error",error:e})}}})()}),["initial"===ia.status,zt.customAuth?.enabled,zt.customAuth?.getCustomAccessToken,zt.customAuth?.isLoading,D,B]),i((()=>{ra&&Ht&&Z&&O(Z,zt.embeddedWallets.createOnLogin)&&(na(!1),ja(Z,q).catch(console.error))}),[ra&&Ht&&Z]),i((()=>{if(zt.externalWallets.solana.connectors)return zt.externalWallets.solana.connectors.onMount(),()=>zt.externalWallets.solana.connectors?.onUnmount()}),[zt.externalWallets.solana.connectors]),i((()=>{!D&&Gt&&async function(){let e,t=Ea(),r=_a();(()=>{let e=new URLSearchParams(window.location.search).get("privy_token");if(!e)return;Y.put($,e);let t=new URL(window.location.href);t.searchParams.delete("privy_token"),window.history.pushState({},"",t)})();let n=a();v.initializeConnectorManager({walletConnectCloudProjectId:zt.walletConnectCloudProjectId,rpcConfig:zt.rpcConfig,chains:zt.chains,defaultChain:zt.defaultChain,store:n,walletList:zt.appearance.walletList,shouldEnforceDefaultChainOnConnect:zt.shouldEnforceDefaultChainOnConnect,externalWalletConfig:zt.externalWallets,appName:zt.name??"Privy",walletChainType:zt.appearance.walletChainType}),v.connectors?.on("connectorInitialized",(()=>{e&&clearTimeout(e);let t=v.connectors.walletConnectors.length,a=v.connectors.walletConnectors.reduce(((e,t)=>e+(t.initialized?1:0)),0);a===t?ua(!0):e=setTimeout((()=>{console.debug({message:"Unable to initialize all expected connectors before timeout",initialized:a,expected:t}),ua(!0)}),1500)})),v.connectors?.initialize().then((()=>{Pa()}));let i=await v.getAuthenticatedUser(),o=!!i;zt.legal.requireUsersAcceptTerms&&i&&!i.hasAcceptedTerms?(await v.logout(),Ja.setReadyToTrue(!0),mt(ca,"logout","onSuccess")):(zt.customAuth?.enabled||(V(!!i),i&&mt(ca,"login","onComplete",i,!1,!0,null,null),te(i)),t?pa.current=o?"link":"login":r&&!o?(pa.current="login",Xt({telegramAuthModalData:{seamlessAuth:!0}}),fa(lt.TELEGRAM_AUTH_SCREEN)):Ja.setReadyToTrue(!!i))}()}),[v,Qt,D,Gt]),i((()=>{if(D){if(!Z||!Z.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType)))return void aa(!0);aa(!!ae.find((e=>"privy"===e.walletClientType)))}}),[D,Z,ae]);let Ea=()=>{let e=Tt();return e.inProgress&&e.popupFlow?window.opener.location.origin!==window.location.origin?void window.opener.postMessage({type:"PRIVY_OAUTH_ERROR",error:"Origins between parent and child windows do not match."}):"error"===e.authorizationCode?void window.opener.postMessage({type:"PRIVY_OAUTH_ERROR",error:"Something went wrong. Try again."}):void window.opener.postMessage({type:"PRIVY_OAUTH_RESPONSE",stateCode:e.stateCode,authorizationCode:e.authorizationCode}):(e.inProgress&&Me(e.provider)&&!e.popupFlow&&(new BroadcastChannel(Le).postMessage({type:"PRIVY_OAUTH_RESPONSE",stateCode:e.stateCode,authorizationCode:e.authorizationCode}),window.close()),!!e.inProgress&&!!e.withPrivyUi&&(v.startAuthFlow(new Ct(e)),fa(lt.AWAITING_OAUTH_SCREEN),!0))},_a=()=>{let e=_();if(!e||!zt.loginMethods.telegram||!zt.loginConfig.telegramAuthConfiguration?.seamlessAuthEnabled)return;let t=new E;return v.startAuthFlow(t),"login-url"===e.flowType&&(t.meta.telegramWebAppData=void 0,t.meta.telegramAuthResult=e.authData),"web-app"===e.flowType&&(t.meta.telegramAuthResult=void 0,t.meta.telegramWebAppData=e.authData),!0},Aa=async(e,t,a,r)=>{va(await(v.connectors?.createEthereumWalletConnector(e,t))||null,t,a,r)};async function va(e,t,a,r){if(!e)return St({status:"disconnected",connectedWallet:null,connectError:new be("Unable to connect to wallet."),connector:null,connectRetry:ht}),r?.(null,a);St({status:"disconnected",connectedWallet:null,connectError:null,connector:e,connectRetry:ht}),e instanceof ye&&t&&await e.resetConnection(t),St({connector:e,status:"connecting",connectedWallet:null,connectError:null,connectRetry:()=>va(e,t,a,r)});try{let t=await e.connect({showPrompt:!0});if((!t||pe(t))&&zt.shouldEnforceDefaultChainOnConnect&&!zt.chains.find((e=>e.id===Number(t?.chainId.replace("eip155:",""))))&&("wallet_connect_v2"!==t?.connectorType||"metamask"!==t?.walletClientType)){St((t=>({...t,connector:e,status:"switching_to_supported_chain",connectedWallet:null,connectError:null,connectRetry:ht})));try{await(t?.switchChain(zt.defaultChain.id)),t&&(t.chainId=ee(J(zt.defaultChain.id)))}catch{console.warn(`Unable to switch to default chain: ${zt.defaultChain.id}`)}}return St((e=>({...e,status:"connected",connectedWallet:t,connectError:null,connectRetry:ht}))),t&&mt(ca,"connectWallet","onSuccess",(e.chainType,t)),r?.(t,a)}catch(e){return e instanceof Ue?(console.warn(e.cause?e.cause:e.message),mt(ca,"connectWallet","onError",e.privyErrorCode||We.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),mt(ca,"connectWallet","onError",We.UNKNOWN_CONNECT_WALLET_ERROR)),St((t=>({...t,status:"disconnected",connectedWallet:null,connectError:e}))),r?.(null,a)}}let Oa=async(e,t,a)=>{if(null===e||!pe(e))return;let r=new m(e,v,t,a);v.startAuthFlow(r)},Ra=async(e,t)=>{if(null===e||!me(e))return;let a=new y(e,v,t);v.startAuthFlow(a)},Pa=()=>{let e=new URLSearchParams(window.location.search),t=e.get("privy_connector"),a=e.get("privy_wallet_client");if(!t||!a)return;if("phantom"!==a||he()||fa(lt.LOGIN_FAILED_SCREEN),!v.connectors)throw new Ce("Connector not initialized");ya(lt.AWAITING_CONNECTION);let r=new URL(window.location.href);r.searchParams.delete("privy_connector"),r.searchParams.delete("privy_wallet_client"),window.history.pushState({},"",r),Aa(t,a,void 0,Oa)};i((()=>{D&&B&&null===Z&&v.getAuthenticatedUser().then(te)}),[D,B,Z,v]);let Ma=e=>{if(!B)throw mt(ca,"linkAccount","onError",We.MUST_BE_AUTHENTICATED,{linkMethod:e}),new Ce("User must be authenticated before linking an account.")},La=()=>{Ma("siwe"),ha.current="siwe",pa.current="link",ya(lt.LINK_WALLET_SCREEN)},Da=e=>{if(!B||!Z)return!1;if("privy"===e.walletClientType)return!0;for(let t of Z.linkedAccounts)if("wallet"===t.type&&t.address===e.address&&"privy"!==t.walletClientType)return!0;return!1},Fa=async e=>{let t;if(!v.connectors)throw new Ce("Connector not initialized");t="ethereum"===e.type?v.connectors.findWalletConnector(e.connectorType,e.walletClientType)||null:v.connectors.findSolanaWalletConnector(e.connectorType,e.walletClientType)||null,St((a=>({...a,connector:t,status:"connected",connectedWallet:e,connectError:null,connectRetry:ht}))),zt.captchaEnabled&&!B?(Xt({captchaModalData:{callback:t=>pe(e)?Oa(e,t):Ra(e,t),userIntentRequired:!1,onSuccessNavigateTo:lt.AWAITING_CONNECTION,onErrorNavigateTo:lt.ERROR_SCREEN}}),fa(lt.CAPTCHA_SCREEN)):(pe(e)?await Oa(e):await Ra(e),fa(lt.AWAITING_CONNECTION))},xa=()=>{re((e=>{let t=v.connectors?.wallets.filter(pe).map((e=>({...e,linked:Da(e),loginOrLink:async()=>{if(!await e.isConnected())throw new Ce("Wallet is not connected");if("embedded"===e.connectorType&&"privy"===e.walletClientType)throw new Ce("Cannot link or login with embedded wallet");Fa(e)},fund:async t=>{await Ja.fundWallet(e.address,t)},unlink:async()=>{if(!B)throw new Ce("User is not authenticated.");if("embedded"===e.connectorType&&"privy"===e.walletClientType)throw new Ce("Cannot unlink an embedded wallet");te(await v.unlinkEthereumWallet(e.address))}})))||[];return de(e,t)?e:t})),we((e=>{let t=v.connectors?.wallets.filter(me).map((e=>({...e,linked:Da(e),loginOrLink:async()=>{if(!await e.isConnected())throw new Ce("Wallet is not connected");if("embedded"===e.connectorType&&"privy"===e.walletClientType)throw new Ce("Cannot link or login with embedded wallet");Fa(e)},fund:async()=>{throw new Ce("'fund' is deprecated for Solana wallets - use 'fundWallet' instead")},unlink:async()=>{if(!B)throw new Ce("User is not authenticated.");if("embedded"===e.connectorType&&"privy"===e.walletClientType)throw new Ce("Cannot unlink an embedded wallet");te(await v.unlinkSolanaWallet(e.address))}})))||[];return de(e,t)?e:t}))};i((()=>{xa()}),[Z?.linkedAccounts,B,D]),i((()=>{if(D){if(!v.connectors)throw new Ce("Connector not initialized");xa(),v.connectors.on("walletsUpdated",xa)}}),[D]),i((()=>{[...zt.loginMethodsAndOrder?.primary??[],...zt.loginMethodsAndOrder?.overflow??[]].filter((e=>e.startsWith("privy:"))).forEach((e=>v.getCrossAppProviderDetails(e.replace("privy:",""))))}),[!!v]),i((()=>{let e;if(!ae[0])return;let t=ae[0],a=nt.current.find((e=>e.address===t.address));if(e="privy"===t.walletClientType?Z?.linkedAccounts.find((e=>"wallet"===e.type&&e.address===t.address&&"privy"===e.walletClientType)):Z?.linkedAccounts.find((e=>"wallet"===e.type&&e.address===t.address&&"privy"!==e.walletClientType)),!a&&e){let t=Object.assign({},Z);t.wallet=e&&{address:e.address,chainType:e.chainType,chainId:e.chainId,walletClient:e.walletClient,walletClientType:e.walletClientType,connectorType:e.connectorType,imported:e.imported,delegated:e.delegated,walletIndex:e.walletIndex},te(t)}nt.current=ae}),[ae]);let ja=async(e,t,a)=>{let r=N(e),n=I(e);if(a&&"walletIndex"in a)return Va(e,t,a.walletIndex,r,n);let i=a&&"createAdditional"in a&&a.createAdditional;if(r&&!i)throw mt(ca,"createWallet","onError",We.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");let[o,s]=await Promise.all([Ja.initializeWalletProxy(t),Sa()]);if(!o&&zt.customAuth?.enabled)throw mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(!o||!s||zt.embeddedWallets?.requireUserOwnedRecoveryOnCreate)return Ba();if(!r)return console.log("solanaWallet",n),await o.create({accessToken:s,solanaAddress:n?.address}),Ha(0);{let t=(S(e)?.walletIndex??0)+1,{entropyId:a,entropyIdVerifier:r}=T(k(e));return await Ja.recoverPrimaryWallet(),await o.addWallet({accessToken:s,entropyId:a,entropyIdVerifier:r,chainType:"ethereum",hdWalletIndex:t}),Ha(t)}},Ba=async()=>new Promise(((e,t)=>{$t(!0),Xt({createWallet:{onSuccess:t=>{mt(ca,"createWallet","onSuccess",t),e(t)},onFailure:e=>{mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),t(e)},callAuthOnSuccessOnClose:!1}}),ya(lt.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)})),Va=async(e,t,a,r,n)=>{if(a<0)throw mt(ca,"createWallet","onError",We.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${a}) is invalid.`);let[i,o]=await Promise.all([Ja.initializeWalletProxy(t),Sa()]);if(!i&&zt.customAuth?.enabled)throw mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(!i||!o||zt.embeddedWallets?.requireUserOwnedRecoveryOnCreate){if(0==a)return Ba();throw mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Create wallet UI can only be displayed when walletIndex is 0.")}if(0==a){if(r)return r;await i.create({accessToken:o,solanaAddress:n?.address})}else{if(!r)throw mt(ca,"createWallet","onError",We.EMBEDDED_WALLET_CREATE_ERROR),Error("A user must have a wallet at HD index 0 before creating a wallet at greater HD indices.");let t=b(e).find((e=>e.walletIndex===a));if(t)return t;let{entropyId:n,entropyIdVerifier:s}=T(k(e));await Ja.recoverPrimaryWallet(),await i.addWallet({accessToken:o,entropyId:n,entropyIdVerifier:s,chainType:"ethereum",hdWalletIndex:a})}return Ha(a)},Ha=async e=>{let t=b(await Ja.refreshUser()).find((t=>t.walletIndex===e));if(!t)throw mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to create wallet");return mt(ca,"createWallet","onSuccess",t),t},Ka=(e,t,a,r)=>new Promise((async(n,i)=>{let{requesterAppId:o}=t||{};if(!B||!Z)return mt(ca,"sendTransaction","onError",We.MUST_BE_AUTHENTICATED),void i(Error("User must be authenticated before signing with a Privy wallet"));let s=r??N(Z)?.address;if(!s)throw new Ce("User must have an embedded wallet to send a transaction.");let{signingWallet:c,rootWallet:d}=R(Z,s);if(!d||!c)return mt(ca,"sendTransaction","onError",We.EMBEDDED_WALLET_NOT_FOUND),void i(Error("Must have a Privy wallet before signing"));$t(!0);let u=Za.wallets.find((e=>"privy"===e.walletClientType&&l(e.address)===l(c.address))),h=await(u?.getEthereumProvider());if(!u||!h)throw new Ce(`Cannot sendTransaction before embedded wallet ${c.address} is connected`);let p=e.chainId?Number(e.chainId):Re(u.chainId);(e=>{if(!zt.chains.map((e=>e.id)).includes(e))throw new be(`Chain ID ${e} is not supported. It must be added to the config.supportedChains property of the PrivyProvider.`,We.UNSUPPORTED_CHAIN_ID)})(p);let w={...e,from:e.from??c.address,chainId:p};if(ma({showWalletUIs:t?.showWalletUIs}))(async()=>{let e=await Sa();if(!e||!Ht)return mt(ca,"sendTransaction","onError",We.EMBEDDED_WALLET_NOT_FOUND),void i(Error("Must have valid access token and Privy wallet to send transaction"));try{if(!await Ja.recoverPrimaryWallet())return mt(ca,"sendTransaction","onError",We.UNKNOWN_CONNECT_WALLET_ERROR),void i(Error("Unable to connect to wallet"));let t=ut(w.chainId,zt.chains,zt.rpcConfig,{appId:A.appId}),a=await at(w,t,w.from),{entropyId:r,entropyIdVerifier:s}=T(d),l=await Te({accessToken:e,entropyId:r,entropyIdVerifier:s,transactingWallet:c,walletProxy:Ht,transactionRequest:a,publicClient:t,requesterAppId:o});mt(ca,"sendTransaction","onSuccess",{hash:l}),n({hash:l})}catch(e){mt(ca,"sendTransaction","onError",We.TRANSACTION_FAILURE),i(e)}})();else{let{entropyId:e,entropyIdVerifier:r}=T(d),s={entropyId:e,entropyIdVerifier:r,onCompleteNavigateTo:lt.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:e=>{mt(ca,"sendTransaction","onError",We.UNKNOWN_CONNECT_WALLET_ERROR),i(e)}},l=$e(zt)?vt({address:c.address,appConfig:zt,fundWalletConfig:a,methodScreen:lt.FUNDING_METHOD_SELECTION_SCREEN,chainIdOverride:w.chainId,comingFromSendTransactionScreen:!0}):void 0;Xt({connectWallet:s,sendTransaction:{transactionRequest:w,transactingWallet:c,entropyId:e,entropyIdVerifier:r,onSuccess:e=>{mt(ca,"sendTransaction","onSuccess",e),n(e)},onFailure:e=>{mt(ca,"sendTransaction","onError",We.TRANSACTION_FAILURE),i(e)},uiOptions:t||{},fundWalletConfig:a,requesterAppId:o},funding:l}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)}})),za=({transaction:e,connection:t,transactionOptions:a,fundWalletConfig:r,uiOptions:n,wallet:i})=>new Promise((async(o,s)=>{let{requesterAppId:l}=n||{};if(!B||!Z)return mt(ca,"sendSolanaTransaction","onError",We.MUST_BE_AUTHENTICATED),void s(new Ce("User must be authenticated before signing with a Privy wallet",We.MUST_BE_AUTHENTICATED));let c=i?Z.linkedAccounts.find((e=>"wallet"===e.type&&e.address===i.address)):I(Z);if(!c)return mt(ca,"sendSolanaTransaction","onError",We.EMBEDDED_WALLET_NOT_FOUND),void s(new Ce("Must have a Privy wallet before signing",We.EMBEDDED_WALLET_NOT_FOUND));$t(!0);let d=i??Ie,u=await(d?.isConnected());if(!d||!u)throw mt(ca,"sendSolanaTransaction","onError",We.EMBEDDED_WALLET_NOT_FOUND),new Ce(`Cannot sendSolanaTransaction before embedded wallet ${c.address} is connected`,We.EMBEDDED_WALLET_NOT_FOUND);if(ma({showWalletUIs:n?.showWalletUIs}))(async()=>{let r=await Sa();if(!r||!Ht)return mt(ca,"sendSolanaTransaction","onError",We.EMBEDDED_WALLET_NOT_FOUND),void s(new Ce("Must have valid access token and Privy wallet to send transaction",We.EMBEDDED_WALLET_NOT_FOUND));try{if(!await Ja.recoverPrimaryWallet())return mt(ca,"sendSolanaTransaction","onError",We.UNKNOWN_CONNECT_WALLET_ERROR),void s(new Ce("Unable to connect to wallet",We.UNKNOWN_CONNECT_WALLET_ERROR));if(ma({showWalletUIs:n?.showWalletUIs})){let{instructions:a}=await Ze(e,t);a.every((e=>e.hasFunds))||(mt(ca,"sendSolanaTransaction","onError",We.INSUFFICIENT_BALANCE),s(new Ce("Solana wallet has insufficient funds for this transaction.",We.INSUFFICIENT_BALANCE)))}let{entropyId:i,entropyIdVerifier:l}=W(Z),{signature:d,receipt:u}=await Se({accessToken:r,tx:e,connection:t,walletProxy:Ht,transactionOptions:a,entropyId:i,entropyIdVerifier:l,transactingWalletAddress:c.address,transactingWalletIndex:c.walletIndex??0}),h=et(d,u);mt(ca,"sendSolanaTransaction","onSuccess",h),o(h)}catch(e){mt(ca,"sendSolanaTransaction","onError",We.TRANSACTION_FAILURE),s(e)}})();else{let{entropyId:i,entropyIdVerifier:d}=T(c),u={entropyId:i,entropyIdVerifier:d,onCompleteNavigateTo:lt.EMBEDDED_WALLET_SEND_SOLANA_TRANSACTION_SCREEN,onFailure:e=>{mt(ca,"sendSolanaTransaction","onError",We.UNKNOWN_CONNECT_WALLET_ERROR),s(e)}},h=At({address:c.address,appConfig:zt,methodScreen:lt.FUNDING_METHOD_SELECTION_SCREEN,fundWalletConfig:r,comingFromSendTransactionScreen:!0});Xt({connectWallet:u,sendSolanaTransaction:{transactionRequest:e,connection:t,transactionOptions:a,transactingWallet:c,onSuccess:e=>{mt(ca,"sendSolanaTransaction","onSuccess",e),o(e)},onFailure:e=>{mt(ca,"sendSolanaTransaction","onError",We.TRANSACTION_FAILURE),s(e)},uiOptions:n||{},requesterAppId:l},funding:h}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)}}));function Ga(){return new Promise((async(e,t)=>{let a=await Sa();if(!a||!Ht)throw Error("Must have valid access token to enroll in MFA");try{await Ht.verifyMfa({accessToken:a}),e()}catch(e){t(e)}}))}let qa=e=>e?.linkedAccounts.filter((e=>null!==e.latestVerifiedAt&&!("wallet"===e.type&&"privy"===e.walletClientType))).sort(((e,t)=>t.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0],$a=e=>{let t=Z?.linkedAccounts.filter((t=>t.type===e)).length??0,{displayName:a,loginMethod:r}=tt(e);if("passkey"===e&&t>=5||"passkey"!==e&&t>=1)throw mt(ca,"linkAccount","onError",We.CANNOT_LINK_MORE_OF_TYPE,{linkMethod:r}),new Ce(`User already has an account of type ${a} linked.`)};async function Ya({showAutomaticRecovery:e=!1,legacySetWalletPasswordFlow:t=!1}){Nt(null);let a=t?"setWalletPassword":"setWalletRecovery";if(!B||!Z)throw mt(ca,a,"onError",We.MUST_BE_AUTHENTICATED),Error("User must be authenticated before adding recovery method to Privy wallet");let r=k(Z);if(!r||!Ht)throw mt(ca,a,"onError",We.EMBEDDED_WALLET_NOT_FOUND),Error("Must have a Privy wallet to add a recovery method");try{await Ga()}catch(e){throw mt(ca,a,"onError",We.MISSING_MFA_CREDENTIALS),e}return new Promise(((n,i)=>{$t(!0);let o={onSuccess:e=>{mt(ca,a,"onSuccess","user-passcode",e),n(e)},onFailure:e=>{mt(ca,a,"onError",We.USER_EXITED_SET_PASSWORD_FLOW),i(e)},callAuthOnSuccessOnClose:!1},s="user-passcode"===r.recoveryMethod,l=ze({walletAction:"update",availableRecoveryMethods:zt.embeddedWallets.userOwnedRecoveryOptions,legacySetWalletPasswordFlow:t,isResettingPassword:s,showAutomaticRecovery:e}),{entropyId:c,entropyIdVerifier:d}=T(r);Xt({setWalletPassword:o,recoverWallet:{entropyId:c,entropyIdVerifier:d,onFailure:i},createWallet:o,connectWallet:{onCompleteNavigateTo:l,shouldForceMFA:!1,entropyId:c,entropyIdVerifier:d,onFailure:e=>{mt(ca,a,"onError",We.UNKNOWN_CONNECT_WALLET_ERROR),i(e)}},recoverySelection:{isInAccountCreateFlow:!1,isResettingPassword:s}}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)}))}async function Xa({appId:e,action:t}){let a=await Sa();if("link"===t&&!a)throw mt(ca,"linkAccount","onError",We.MUST_BE_AUTHENTICATED,{linkMethod:`privy:${e}`}),new Ce("User must be authenticated before linking an account.");if("login"===t&&a)throw mt(ca,"login","onError",We.UNKNOWN_AUTH_ERROR),new Ce("Attempted to log in, but user is already logged in. Use a `link` helper instead.");ha.current=`privy:${e}`,pa.current=t;let r=Xe();return v.createAnalyticsEvent({eventName:"cross_app_auth_started",payload:{providerAppId:e}}),new Promise((async(a,n)=>{let{name:i,logoUrl:o}=await xe({api:v.api,providerAppId:e,requesterAppId:zt.id});Xt({crossAppAuth:{appId:e,name:i,logoUrl:o,action:t,popup:r,onSuccess:a,onError:n}}),fa(lt.CROSS_APP_AUTH_SCREEN)}))}let Qa={ready:D,authenticated:B,user:Z,walletConnectors:v.connectors||null,connectWallet:e=>{e&&"target"in e&&e&&(e=void 0),Xt({externalConnectWallet:{walletList:e?.walletList&&e?.walletList.length>0?e.walletList:void 0,suggestedAddress:e?.suggestedAddress}}),ya(B?lt.CONNECT_ONLY_AUTHENTICATED_SCREEN:lt.CONNECT_ONLY_LANDING_SCREEN)},linkWallet:La,startCrossAppAuthFlow:Xa,linkEmail:()=>{Ma("email"),$a("email"),ha.current="email",pa.current="link",ya(lt.LINK_EMAIL_SCREEN)},linkPhone:()=>{Ma("sms"),$a("phone"),ha.current="sms",pa.current="link",ya(lt.LINK_PHONE_SCREEN)},linkGoogle:async()=>{Ma("google"),$a("google_oauth"),pa.current="link",await Ja.initLoginWithOAuth("google")},linkTwitter:async()=>{Ma("twitter"),$a("twitter_oauth"),pa.current="link",await Ja.initLoginWithOAuth("twitter")},linkDiscord:async()=>{Ma("discord"),$a("discord_oauth"),pa.current="link",await Ja.initLoginWithOAuth("discord")},linkGithub:async()=>{Ma("github"),$a("github_oauth"),pa.current="link",await Ja.initLoginWithOAuth("github")},linkSpotify:async()=>{Ma("spotify"),$a("spotify_oauth"),pa.current="link",await Ja.initLoginWithOAuth("spotify")},linkInstagram:async()=>{Ma("instagram"),$a("instagram_oauth"),pa.current="link",await Ja.initLoginWithOAuth("instagram")},linkTiktok:async()=>{Ma("tiktok"),$a("tiktok_oauth"),pa.current="link",await Ja.initLoginWithOAuth("tiktok")},linkLinkedIn:async()=>{Ma("linkedin"),$a("linkedin_oauth"),pa.current="link",await Ja.initLoginWithOAuth("linkedin")},linkApple:async()=>{Ma("apple"),$a("apple_oauth"),pa.current="link",await Ja.initLoginWithOAuth("apple")},linkPasskey:async()=>{Ma("passkey"),$a("passkey"),await Ja.initLinkWithPasskey(),ya(lt.LINK_PASSKEY_SCREEN)},linkTelegram:async()=>{Ma("telegram"),$a("telegram"),pa.current="link",ha.current="telegram",await Ja.initLoginWithTelegram(),ya(lt.TELEGRAM_AUTH_SCREEN)},linkFarcaster:async()=>{Ma("farcaster"),$a("farcaster"),await Ja.initLoginWithFarcaster(),pa.current="link",ha.current="farcaster",ya(lt.AWAITING_FARCASTER_CONNECTION)},updateEmail:()=>{if(Ma("email"),!Z?.email)throw new Ce("User does not have an email linked to their account.");pa.current="update",ha.current="email",ya(lt.UPDATE_EMAIL_SCREEN)},updatePhone:()=>{if(Ma("sms"),!Z?.phone)throw new Ce("User does not have a phone number linked to their account.");pa.current="update",ha.current="sms",ya(lt.UPDATE_PHONE_SCREEN)},login:async e=>{e&&"target"in e&&e&&(e=void 0);let t="Attempted to log in, but user is already logged in. Use a `link` helper instead.";if(!D){let e=await new Promise((e=>{Jt((t=>e.bind(t)))}));if(Jt(null),e)return void console.warn(t)}!Z||Z.isGuest?(pa.current="login",Xt({login:e}),fa(lt.LANDING)):console.warn(t)},connectOrCreateWallet:async()=>{D||(await new Promise((e=>{Jt((()=>e))})),Jt(null)),B?console.warn("User must be unauthenticated to `connectOrCreateWallet`"):(pa.current="login",fa(lt.CONNECT_OR_CREATE))},logout:async()=>{if(pa.current=null,ha.current=null,Z&&v.clearProviderAcccessTokens(Z),Nt(null),await v.logout(),Z&&Ht)try{await Ht.clearMfa({userId:Z.id})}catch(e){}te(null),V(!1),mt(ca,"logout","onSuccess"),L(!1),Y.del(j),Y.del(H(zt.id))},getAccessToken:()=>v.getCustomerAccessToken(),unlinkWallet:async e=>{let t;return te(t=e.startsWith("0x")?await v.unlinkEthereumWallet(e):await v.unlinkSolanaWallet(e)),t},unlinkEmail:async e=>{let t=await v.unlinkEmail(e);return te(t),t},unlinkPhone:async e=>{let t=await v.unlinkPhone(e);return te(t),t},unlinkGoogle:async e=>{let t=await v.unlinkOAuth("google",e);return te(t),t},unlinkTwitter:async e=>{let t=await v.unlinkOAuth("twitter",e);return te(t),t},unlinkDiscord:async e=>{let t=await v.unlinkOAuth("discord",e);return te(t),t},unlinkGithub:async e=>{let t=await v.unlinkOAuth("github",e);return te(t),t},unlinkSpotify:async e=>{let t=await v.unlinkOAuth("spotify",e);return te(t),t},unlinkInstagram:async e=>{let t=await v.unlinkOAuth("instagram",e);return te(t),t},unlinkTiktok:async e=>{let t=await v.unlinkOAuth("tiktok",e);return te(t),t},unlinkLinkedIn:async e=>{let t=await v.unlinkOAuth("linkedin",e);return te(t),t},unlinkApple:async e=>{let t=await v.unlinkOAuth("apple",e);return te(t),t},unlinkFarcaster:async e=>{let t=await v.unlinkFarcaster(e);return te(t),t},unlinkTelegram:async e=>{let t=await v.unlinkTelegram(e);return te(t),t},unlinkPasskey:async e=>{let t=await v.unlinkPasskey(e);return te(t),t},unlinkCrossAppAccount:async({subject:e})=>{let t=Z?.linkedAccounts.find((t=>"cross_app"===t.type&&t.subject===e))?.providerApp;if(!t)throw new Ce("Invalid subject");v.storeProviderAccessToken(t.id,null);let a=await v.unlinkOAuth(`privy:${t.id}`,e);return te(a),a},setActiveWallet:async e=>{let t=ae.find((t=>l(t.address)===l(e))),a=Z?.linkedAccounts.find((t=>"wallet"===t.type&&l(t.address)===l(e)));if(t&&await t.isConnected())if(t.linked){let e=Object.assign({},Z);e.wallet=a&&{address:a.address,chainType:a.chainType,chainId:a.chainId,walletClient:a.walletClient,walletClientType:a.walletClientType,connectorType:a.connectorType,imported:a.imported,delegated:a.delegated,walletIndex:a.walletIndex},te(e)}else t.loginOrLink();else Xt({externalConnectWallet:{suggestedAddress:e}}),La()},forkSession:()=>v.forkSession(),createWallet:async e=>{if(e&&"target"in e&&e&&(e=void 0),!B||!Z)throw mt(ca,"createWallet","onError",We.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return ja(Z,15e3,e)},setWalletRecovery:async e=>Ya({legacySetWalletPasswordFlow:!1,showAutomaticRecovery:e?.showAutomaticRecovery??!1}),setWalletPassword:async()=>Ya({legacySetWalletPasswordFlow:!0,showAutomaticRecovery:!1}),signMessage:(e,t,a)=>new Promise((async(r,n)=>{let{requesterAppId:i}=t||{};if(!B||!Z)return mt(ca,"signMessage","onError",We.MUST_BE_AUTHENTICATED),void n(Error("User must be authenticated before signing with a Privy wallet"));let o=a??N(Z)?.address;if(!o)throw new Ce("User must have an embedded wallet to sign a message.");let{signingWallet:s,rootWallet:l}=R(Z,o);if(!s||!l)return mt(ca,"signMessage","onError",We.EMBEDDED_WALLET_NOT_FOUND),void n(Error("Must have a Privy wallet before signing"));if("string"!=typeof e||e.length<1)return mt(ca,"signMessage","onError",We.INVALID_MESSAGE),void n(Error("Message must be a non-empty string"));$t(!0);let c=async()=>{if(!B)throw Error("User must be authenticated before signing with a Privy wallet");let t=await Sa();if(!Ht||!t||!await Ja.recoverPrimaryWallet())throw Error("Unable to connect to wallet");v.createAnalyticsEvent({eventName:"embedded_wallet_sign_message_started",payload:{walletAddress:s.address,requesterAppId:i}});let{entropyId:a,entropyIdVerifier:r}=T(l),{response:n}=await Ht.rpc({accessToken:t,entropyId:a,entropyIdVerifier:r,chainType:"ethereum",hdWalletIndex:s.walletIndex??0,requesterAppId:i,request:{method:"personal_sign",params:[e,s.address]}}),o=n.data;return v.createAnalyticsEvent({eventName:"embedded_wallet_sign_message_completed",payload:{walletAddress:s.address,requesterAppId:i}}),o};if(ma({showWalletUIs:t?.showWalletUIs}))try{let e=await c();mt(ca,"signMessage","onSuccess",e),r(e)}catch(e){mt(ca,"signMessage","onError",We.UNABLE_TO_SIGN),n(e??new ue("Unable to sign message"))}else{let{entropyId:a,entropyIdVerifier:i}=T(l);Xt({signMessage:{method:"personal_sign",data:e,confirmAndSign:c,onSuccess:e=>{mt(ca,"signMessage","onSuccess",e),r(e)},onFailure:e=>{mt(ca,"signMessage","onError",We.UNABLE_TO_SIGN),n(e)},uiOptions:t||{}},connectWallet:{entropyId:a,entropyIdVerifier:i,onCompleteNavigateTo:lt.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:e=>{mt(ca,"signMessage","onError",We.UNKNOWN_CONNECT_WALLET_ERROR),n(e)}}}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)}})),signTypedData:(e,t,a)=>new Promise((async(r,n)=>{let{requesterAppId:i}=t||{};if(!B||!Z)return mt(ca,"signTypedData","onError",We.MUST_BE_AUTHENTICATED),void n(Error("User must be authenticated before signing with a Privy wallet"));let o=a??N(Z)?.address;if(!o)throw new Ce("User must have an embedded wallet to sign a message.");let{signingWallet:s,rootWallet:l}=R(Z,o);if(!l||!s)return mt(ca,"signTypedData","onError",We.EMBEDDED_WALLET_NOT_FOUND),void n(Error("Must have a Privy wallet before signing"));$t(!0);let c=Q(e),d=async()=>{if(!B)throw Error("User must be authenticated before signing with a Privy wallet");let e=await Sa();if(!Ht||!e||!await Ja.recoverPrimaryWallet())throw Error("Unable to connect to wallet");v.createAnalyticsEvent({eventName:"embedded_wallet_sign_typed_data_started",payload:{walletAddress:s.address,requesterAppId:i}});let{entropyId:t,entropyIdVerifier:a}=T(l),{response:r}=await Ht.rpc({accessToken:e,entropyId:t,entropyIdVerifier:a,chainType:"ethereum",hdWalletIndex:s.walletIndex??0,requesterAppId:i,request:{method:"eth_signTypedData_v4",params:[s.address,c]}}),n=r.data;return v.createAnalyticsEvent({eventName:"embedded_wallet_sign_typed_data_completed",payload:{walletAddress:s.address,requesterAppId:i}}),n};if(ma({showWalletUIs:t?.showWalletUIs,typedData:!0}))try{let e=await d();mt(ca,"signTypedData","onSuccess",e),r(e)}catch(e){mt(ca,"signTypedData","onError",We.UNABLE_TO_SIGN),n(e??new ue("Unable to sign message"))}else{let{entropyId:e,entropyIdVerifier:a}=T(l);Xt({signMessage:{method:"eth_signTypedData_v4",data:c,confirmAndSign:d,onSuccess:e=>{mt(ca,"signTypedData","onSuccess",e),r(e)},onFailure:e=>{mt(ca,"signTypedData","onError",We.UNABLE_TO_SIGN),n(e)},uiOptions:t||{}},connectWallet:{entropyId:e,entropyIdVerifier:a,onCompleteNavigateTo:lt.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:e=>{mt(ca,"signMessage","onError",We.UNKNOWN_CONNECT_WALLET_ERROR),n(e)}}}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)}})),sendTransaction:async(e,t,a,r)=>await Ka(e,t,a,r),sendSolanaTransaction:async(e,t,a,r,n)=>await za({transaction:e,connection:t,transactionOptions:r,uiOptions:a,fundWalletConfig:n,wallet:Ie??void 0}),exportWallet:e=>new Promise((async(t,a)=>{if(!B||!Z)return void a(Error("User must be authenticated before exporting their Privy wallet"));e&&"target"in e&&e&&(e=void 0);let r=e?.address??N(Z)?.address;if(!r)return void a(Error("User does not have an HD Ethereum wallet. To export an imported wallet, pass the `address` of the wallet to `exportWallet`."));let{signingWallet:n,rootWallet:i}=R(Z,r);if(!n||!i)return void a(Error("Must have a Privy wallet before exporting"));$t(!0);let{entropyId:o,entropyIdVerifier:s}=T(i),l={entropyId:o,entropyIdVerifier:s,onCompleteNavigateTo:lt.EMBEDDED_WALLET_KEY_EXPORT_SCREEN,onFailure:a,shouldForceMFA:!0};Xt(Yt),await Sa()&&Ht?Ht?(Xt({keyExport:{appId:A.appId,appClientId:A.clientId,origin:v.apiUrl,walletToExport:n,primaryWallet:i,onSuccess:t,onFailure:a},connectWallet:l}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)):a(Error("Must have a Privy wallet before exporting")):a(Error("Must have valid access token to enroll in MFA"))})),promptMfa:Ga,async init(e){switch(e){case"sms":return void await v.initMfaSmsVerification();case"passkey":return await v.initMfaPasskeyVerification();case"totp":return;default:throw Error(`Unsupported MFA method: ${e}`)}},async submit(e,t){switch(e){case"totp":case"sms":if("string"!=typeof t)throw new Ce("Invalid MFA code");sa.current?.resolve({mfaMethod:e,mfaCode:t,relyingParty:window.origin}),await new Promise(((e,t)=>{la.current={resolve:e,reject:t}}));break;case"passkey":if("string"==typeof t)throw new Ce("Invalid authenticator response");let a=await import("@simplewebauthn/browser"),r=rt(await a.startAuthentication(t));sa.current?.resolve({mfaMethod:e,mfaCode:r,relyingParty:window.origin}),await new Promise(((e,t)=>{la.current={resolve:e,reject:t}}));break;default:throw sa.current?.reject(new Ce("Unsupported MFA method")),new Ce(`Unsupported MFA method: ${e}`)}},cancel(){sa.current?.reject(new Ce("MFA canceled"))},async initEnrollmentWithSms(e){let t=await Sa();if(!t||!Ht)throw Error("Must have valid access token to enroll in MFA");await Ht.initEnrollMfa({method:"sms",accessToken:t,phoneNumber:e.phoneNumber})},enrollInMfa:e=>new Promise(((t,a)=>{if(!e)return Ja.closePrivyModal(),void t();zt.mfa.noPromptOnMfaRequired&&console.warn("[Privy Warning] Triggering the 'showMfaEnrollmentModal' function when 'noPromptOnMfaRequired' is set to true is unexpected. If this is intentional, ensure that you are building custom UIs for MFA verification."),Xt({mfaEnrollmentFlow:{mfaMethods:zt.mfa.methods,onSuccess:t,onFailure:a}}),ya(lt.MFA_ENROLLMENT_FLOW_SCREEN)})),async initEnrollmentWithTotp(){let e=await Sa();if(!e||!Ht)throw Error("Must have valid access token to enroll in MFA");let t=await Ht.initEnrollMfa({method:"totp",accessToken:e});return{secret:t.secret,authUrl:t.authUrl}},async submitEnrollmentWithSms(e){let t=await Sa();if(!t||!Ht)throw Error("Must have valid access token to enroll in MFA");await Ht.submitEnrollMfa({method:"sms",accessToken:t,phoneNumber:e.phoneNumber,code:e.mfaCode}),te(await v.getAuthenticatedUser())},async submitEnrollmentWithTotp(e){let t=await Sa();if(!t||!Ht)throw Error("Must have valid access token to enroll in MFA");await Ht.submitEnrollMfa({method:"totp",accessToken:t,code:e.mfaCode}),te(await v.getAuthenticatedUser())},async initEnrollmentWithPasskey(){},async submitEnrollmentWithPasskey({credentialIds:e}){let t=await Sa();if(!t||!Ht)throw Error("Must have valid access token to enroll in MFA");await Ht.submitEnrollMfa({method:"passkey",accessToken:t,credentialIds:e}),te(await v.getAuthenticatedUser())},async unenroll(e){let t=await Sa();if(!t||!Ht)throw Error("Must have valid access token to remove MFA");"passkey"===e?await Ht.submitEnrollMfa({method:"passkey",accessToken:t,credentialIds:[]}):await Ht.unenrollMfa({method:e,accessToken:t}),te(await v.getAuthenticatedUser())},requestFarcasterSignerFromWarpcast:async()=>{let e=await Sa(),t=Z?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!e)throw Error("Must have valid access token to connect with Farcaster");if(!Ht||!t)throw Error("Must have an embedded wallet to use Farcaster signers");if(!Z?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");if(!await Ja.recoverPrimaryWallet())throw Error("Unable to connect to wallet");let a=await Ht.initFarcasterSigner({address:t.address,hdWalletIndex:null,accessToken:e,mfaCode:null,mfaMethod:null,relyingParty:window.origin});"approved"===a.status&&te(await v.getAuthenticatedUser()||Z||null),Xt({farcasterSigner:a}),ya(lt.AWAITING_FARCASTER_SIGNER)},getFarcasterSignerPublicKey:async()=>{let e,t=await Sa(),a=Z?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!t)throw Error("Must have valid access token to connect with Farcaster");if(!Ht||!a)throw Error("Must have an embedded wallet to use Farcaster signers");if(!Z?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");if(!await Ja.recoverPrimaryWallet())throw Error("Unable to connect to wallet");if(!Z.farcaster?.signerPublicKey)throw Error("Must have a Farcaster signer public key to sign");return e=Z.farcaster.signerPublicKey.slice(2),Uint8Array.from(e.match(/.{1,2}/g).map((e=>parseInt(e,16))))},signFarcasterMessage:async e=>{let t=await Sa(),a=Z?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!t)throw Error("Must have valid access token to connect with Farcaster");if(!Ht||!a)throw Error("Must have an embedded wallet to use Farcaster signers");if(!Z?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");if(!await Ja.recoverPrimaryWallet())throw Error("Unable to connect to wallet");if(!Z.farcaster?.signerPublicKey)throw Error("Must have a Farcaster signer public key to sign");let r=await import("@simplewebauthn/browser"),n=await Ht.signFarcasterMessage({address:a.address,hdWalletIndex:null,accessToken:t,mfaCode:null,mfaMethod:null,payload:{hash:r.bufferToBase64URLString(e)},fid:BigInt(Z.farcaster.fid),relyingParty:window.origin});return new Uint8Array(r.base64URLStringToBuffer(n.signature))},createGuestAccount:async()=>{if(Z&&!Z.isGuest)throw Error("User cannot already be authenticated to create a guest account");return Z?.isGuest?Z:Ja.loginWithGuestAccountFlow()},signMessageWithCrossAppWallet(e,{address:t}){let a=Z?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t))));return Be({user:Z,client:v,address:t,requesterAppId:zt.id,request:{method:a?"privy_signSmartWalletMessage":"personal_sign",params:[e,t]},reconnect:Xa})},signTypedDataWithCrossAppWallet(e,{address:t}){let a=Z?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t)))),r=Q(e);return Be({user:Z,client:v,address:t,requesterAppId:zt.id,request:{method:a?"privy_signSmartWalletTypedData":"eth_signTypedData_v4",params:[t,r]},reconnect:Xa})},sendTransactionWithCrossAppWallet(e,{address:t}){let a=Z?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t))));return Be({user:Z,client:v,address:t,requesterAppId:zt.id,request:{method:a?"privy_sendSmartWalletTx":"eth_sendTransaction",params:[e]},reconnect:Xa})},isModalOpen:M,mfaMethods:zt.mfa.methods};Ia=Qa.signMessage,ka=Qa.signTypedData,Wa=async(...e)=>await Ka(...e);let Ja={isNewUserThisSession:It,pendingTransaction:null,walletConnectionStatus:Ot,connectors:v.connectors?.walletConnectors??[],solanaWallets:se,rpcConfig:zt.rpcConfig,chains:zt.chains,appId:A.appId,showFiatPrices:"native-token"!==zt.embeddedWallets.priceDisplay.primary,clientAnalyticsId:v.clientAnalyticsId,customAuthStatus:ia,noPromptOnSignature:wa,emailOtpState:Mt,setEmailOtpState:Lt,smsOtpState:Dt,setSmsOtpState:Ft,oAuthState:Bt,setOAuthState:Vt,siweState:xt,setSiweState:jt,isHeadlessOAuthLoading:bt,nativeTokenSymbolForChainId:e=>zt.chains.find((t=>t.id===Number(e)))?.nativeCurrency.symbol,initializeWalletProxy:async e=>{if(Ht)return Ht;let t=new Promise((e=>{ea((()=>t=>e(t)))})),a=new Promise((t=>setTimeout((()=>t(null)),e))),r=await Promise.race([t,a]);return ea(null),r},getAuthFlow:()=>v.authFlow,getAuthMeta:()=>v.authFlow?.meta,client:v,closePrivyModal:async(e={shouldCallAuthOnSuccess:!0,isSuccess:!1})=>{let t,a=D&&B&&Z;a&&ha.current&&(t=qa(Z)),"login"===pa.current?e.shouldCallAuthOnSuccess&&a&&ha.current?(mt(ca,"login","onComplete",Z,It,!1,ha.current,t??null),A.onSuccess?.(Z,It)):mt(ca,"login","onError",We.USER_EXITED_AUTH_FLOW):"link"===pa.current&&t?e.isSuccess&&a&&ha.current?mt(ca,"linkAccount","onSuccess",Z,ha.current,t):ha.current&&mt(ca,"linkAccount","onError",We.USER_EXITED_LINK_FLOW,{linkMethod:ha.current}):"update"===pa.current&&t&&(e.isSuccess&&a&&ha.current?mt(ca,"update","onSuccess",Z,ha.current,t):ha.current&&mt(ca,"update","onError",We.USER_EXITED_UPDATE_FLOW,{linkMethod:ha.current}));let r=Wt&&Ge.includes(Wt),n=Wt===lt.ERROR_SCREEN&&Yt.errorModalData&&Ge.includes(Yt.errorModalData.previousScreen);if((r||n)&&Yt.funding){let e,t=qe[Wt]??null;if("solana"===Yt.funding.chainType){let a=C(ot);if(!a)return void console.warn("Unable to load solana plugin, skipping balance");try{e=BigInt(await a.getBalance({address:Yt.funding.address,cluster:Yt.funding.cluster}))}catch{console.error("Unable to pull wallet balance")}mt(ca,"fundSolanaWallet","onUserExited",{address:Yt.funding.address,cluster:Yt.funding.cluster,fundingMethod:t,balance:e})}else{let a=ut(Yt.funding.chain.id,zt.chains,zt.rpcConfig,{appId:A.appId});try{e=await a.getBalance({address:Yt.funding.address})}catch{console.error("Unable to pull wallet balance")}mt(ca,"fundWallet","onUserExited",{address:Yt.funding.address,chain:Yt.funding.chain,fundingMethod:t,balance:e})}}Xt({...Yt,externalConnectWallet:{suggestedAddress:void 0}}),pa.current=null,ha.current=null,kt(!1),L(!1),setTimeout((()=>{v.authFlow=void 0}),200),v.createAnalyticsEvent({eventName:"modal_closed"})},solanaSignMessage:async({message:e})=>new Promise((async(t,a)=>{let r=async()=>{let t=await v.getAccessToken();if(!t)throw Error("User must be authenticated to use their embedded wallet.");if(!Ie)throw Error("User must have an embedded Solana wallet to sign messages for Solana.");let a=Ja.walletProxy??await Ja.initializeWalletProxy(15e3);if(!a)throw Error("Failed to initialize embedded wallet proxy.");let{entropyId:r,entropyIdVerifier:n}=W(Z),{response:i}=await a.rpc({accessToken:t,entropyId:r,entropyIdVerifier:n,chainType:"solana",hdWalletIndex:Ie.walletIndex??0,request:{method:"signMessage",params:{message:e}}});return i.data.signature};if(ma({showWalletUIs:void 0}))try{let e=await r();t({signature:e})}catch(e){a(e)}else Xt({signMessage:{method:"solana_signMessage",data:e,confirmAndSign:r,onSuccess:e=>{t({signature:e})},onFailure:e=>{a(e)},uiOptions:{}}}),fa(lt.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN)})),openPrivyModal:ya,connectWallet:va,initLoginWithWallet:async(e,t,a)=>{pe(e)?(ha.current="siwe",Oa(e,t,a)):(ha.current="siws",Ra(e,t))},loginWithWallet:async()=>{let e,t,a;if(!D)throw new Ne;if(v.authFlow instanceof m?e="siwe":v.authFlow instanceof y&&(e="siws"),!e)throw new Ce("Must initialize SIWE/SIWS flow first.");if(null!==await v.getAccessToken())try{({user:t}=await v.link()),ha.current=e}catch(t){throw mt(ca,"linkAccount","onError",t.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:e}),t}else try{({user:t,isNewUser:a}=await v.authenticate()),ha.current=e}catch(e){throw mt(ca,"login","onError",e.privyErrorCode||We.GENERIC_CONNECT_WALLET_ERROR),e}te(t||Z||null),kt(a||!1),V(!0)},delegateWallet:async({address:e,chainType:t})=>new Promise((async(a,r)=>{let n=await Sa();if(!B||!Z||!n)throw new Ce("User must be authenticated and have an embedded wallet to delegate actions.");if("solana"!==t&&"ethereum"!==t)throw new Ce("Only Solana and Ethereum embedded wallets are supported for delegation and revocation.");let i=Ja.walletProxy??await Ja.initializeWalletProxy(15e3);if(!i)throw new Ce("Wallet proxy not initialized.");if(ge({address:e,chainType:t,user:Z}))throw new Ce(`Wallet with address ${e} is already delegated.`);let o=Ee({address:e,user:Z}),s=_e({address:e,user:Z});await Ja.recoverPrimaryWallet(),Xt({delegatedActions:{consent:{address:e,onDelegate:async()=>{await i.createDelegatedAction({accessToken:n,rootWallet:s,delegatedWallets:[o]}),await Ja.refreshUser()},onSuccess:async()=>{a()},onError:async e=>{r(e)}}}}),ya(lt.EMBEDDED_WALLET_DELEGATED_ACTIONS_CONSENT_SCREEN)})),revokeDelegatedWallets:async()=>new Promise((async(e,t)=>{if(!B||!Z)throw new Ce("User must be authenticated and have an embedded wallet to revoke a delegated wallet.");if(0===Ae(Z).length)throw new Ce("User has no delegated wallets to revoke.");Xt({delegatedActions:{revoke:{onRevoke:async()=>{await v.revokeDelegatedWallet(),await Ja.refreshUser()},onSuccess:async()=>{e()},onError:async e=>{t(e)}}}}),ya(lt.EMBEDDED_WALLET_DELEGATED_ACTIONS_REVOKE_SCREEN)})),initLoginWithFarcaster:async(e,t)=>{let a=new h(e,t);v.startAuthFlow(a);try{ha.current="farcaster",await a.initializeFarcasterConnect()}catch(e){throw"login"===pa.current?mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR):"link"===pa.current&&mt(ca,"linkAccount","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR,{linkMethod:"farcaster"}),e}},loginWithFarcaster:async()=>{let e,t;if(!D)throw new Ne;if(!(v.authFlow instanceof h))throw new Ce("Must initialize Farcaster flow first.");if(null!==await v.getAccessToken())try{({user:e}=await v.link()),ha.current="farcaster"}catch(e){throw mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:"farcaster"}),e}else try{({user:e,isNewUser:t}=await v.authenticate()),ha.current="farcaster"}catch(e){throw mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}te(e||null),kt(t||!1),V(!0)},async loginWithGuestAccountFlow(){let e=new p(this.appId);v.startAuthFlow(e);try{pa.current="login",ha.current="guest";let{user:e,isNewUser:t}=await v.authenticate();if(t=t||!1,!e)throw new Ce("Unable to authenticate guest account");if(O(e,zt.embeddedWallets.createOnLogin))try{await ja(e,15e3),e=await Ja.refreshUser()}catch(t){te(e),console.warn("Unable to create embedded wallet for guest account")}else te(e);return kt(t),V(!0),mt(ca,"login","onComplete",e,t,!1,"guest",null),e}catch(e){throw mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}},async crossAppAuthFlow({appId:e,popup:t,action:a}){let r=`privy:${e}`;ha.current=r;let{url:n,stateCode:i,codeVerifier:o}=await De({api:v.api,appId:e});if(!n)throw v.createAnalyticsEvent({eventName:"cross_app_auth_error",payload:{error:"Unable to open cross-app auth popup",appId:e}}),new Ce("No authorization URL returned for cross-app auth.");try{let s=await je({url:n,popup:t,provider:r}),l=s.stateCode,c=s.authorizationCode;if(l!==i)throw v.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:r,storedStateCode:i??"",returnedStateCode:l??""}}),new Ce("Unexpected auth flow. This may be a phishing attempt.",void 0,We.OAUTH_UNEXPECTED);let d=await Fe({appId:e,codeVerifier:o,stateCode:l,authorizationCode:c,action:a,client:v});d&&v.storeProviderAccessToken(e,d);let u=await Ja.refreshUser();if(!u)throw new Ce("Unable to update user");return v.createAnalyticsEvent({eventName:"cross_app_auth_completed",payload:{providerAppId:e}}),u}catch(e){throw v.createAnalyticsEvent({eventName:"cross_app_auth_error",payload:{error:e.toString(),provider:r}}),e}},async initLoginWithOAuth(e,t,a){if(ha.current=e,!X())return void fa(lt.IN_APP_BROWSER_LOGIN_NOT_POSSIBLE);if("google"===e&&Ye(window.navigator.userAgent))return void fa(lt.IN_APP_BROWSER_LOGIN_NOT_POSSIBLE);"twitter"===e&&window.opener&&window.opener.postMessage({type:Pe},"*"),Y.del(K),Y.del(z);let r=new Ct({provider:e,disableSignup:!!a,withPrivyUi:!0});t&&r.addCaptchaToken(t),v.startAuthFlow(r);let n=await v.authFlow.getAuthorizationUrl();n&&n.url&&("twitter"===e&&s&&(n.url=n.url.replace("x.com","twitter.com")),window.location.assign(n.url))},async initLoginWithTelegram(e,t){if(!D)throw new Ne;ha.current="telegram";let a=new E(e,t);v.startAuthFlow(a),a.meta.telegramWebAppData=void 0,a.meta.telegramAuthResult=await new Promise(((e,t)=>zt.loginConfig.telegramAuthConfiguration?window.Telegram?void window.Telegram.Login.auth({bot_id:zt.loginConfig.telegramAuthConfiguration.botId,request_access:!0},(a=>a?e(a):t(new Ce("Telegram auth failed or was canceled by the client")))):t(new Ce("Telegram was not initialized")):t(new Ce("Telegram Auth configuration is not loaded"))))},async loginWithTelegram(e){let t,a;if(!(v.authFlow instanceof E))throw new Ce("Must initialize Telegram flow before calling loginWithTelegram");if(v.authFlow.meta.captchaToken||=e,"login"===pa.current)try{let e=await v.authenticate();t=e.user,a=e.isNewUser,ha.current="telegram"}catch(e){throw mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}else{if("link"!==pa.current)throw new Ce("Unknown auth intent");try{t=(await v.link()).user,ha.current="telegram"}catch(e){throw mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:"telegram"}),e}}te(t),kt(a||!1),V(!0)},async recoveryOAuthFlow(e,t,a){let r,n;function i(t){if(!t)throw v.createAnalyticsEvent({eventName:"recovery_oauth_error",payload:{error:"Unable to open recovery OAuth popup",provider:e}}),new Ce("Recovery OAuth failed")}switch(e){case"google-drive":{let t,o,{url:s,codeVerifier:l,stateCode:c}=await Ve({api:Ca.api,provider:e});i(s);try{let r=await Qe({url:s,popup:a,provider:e});if(t=r.stateCode,o=r.authorizationCode,t!==c)throw v.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:e,storedStateCode:c??"",returnedStateCode:t??""}}),new Ce("Unexpected auth flow. This may be a phishing attempt.",void 0,We.OAUTH_UNEXPECTED)}catch(t){throw v.createAnalyticsEvent({eventName:"recovery_oauth_error",payload:{error:t.toString(),provider:e}}),new Ce("Recovery OAuth failed")}[r,n]=await Promise.all([Sa(),He({api:Ca.api,provider:e,codeVerifier:l,stateCode:t,authorizationCode:o})]);break}case"icloud":{let{url:t}=await Ve({api:Ca.api,provider:e});i(t);let{ckWebAuthToken:o}=await Qe({url:t,popup:a,provider:e});n=o,r=await Sa()}}if(!Ht)throw new Ce("Cannot connect to wallet proxy");if(!r)throw new Ce("Unable to authorize user");switch(t){case"recover":{let t=Yt.recoverWallet?.entropyId,a=Yt.recoverWallet?.entropyIdVerifier;if(!t||!a)throw new Ce("Recovery OAuth failed");v.createAnalyticsEvent({eventName:"embedded_wallet_recovery_started",payload:{walletAddress:t,recoveryMethod:e}}),await Ht.recover({accessToken:r,entropyId:t,entropyIdVerifier:a,recoveryAccessToken:n}),v.createAnalyticsEvent({eventName:"embedded_wallet_recovery_completed",payload:{walletAddress:t,recoveryMethod:e}});break}case"create-wallet":{v.createAnalyticsEvent({eventName:"embedded_wallet_creation_started"}),await Ht.create({accessToken:r,recoveryAccessToken:n,recoveryMethod:e});let t=N(await Ja.refreshUser());if(!t)throw mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to create wallet");v.createAnalyticsEvent({eventName:"embedded_wallet_creation_completed",payload:{walletAddress:t.address}}),mt(ca,"createWallet","onSuccess",t);break}case"set-recovery":{let t=k(Z);if(!t)throw mt(ca,"setWalletRecovery","onError",We.EMBEDDED_WALLET_NOT_FOUND),Error("Embedded wallet not found");v.createAnalyticsEvent({eventName:"embedded_wallet_set_recovery_started",payload:{walletAddress:t.address,existingRecoveryMethod:t.recoveryMethod,targetRecoveryMethod:e}});let{entropyId:a,entropyIdVerifier:i}=T(t);await Ht.setRecovery({accessToken:r,entropyId:a,entropyIdVerifier:i,recoveryMethod:e,recoveryAccessToken:n});let o=k(await Ja.refreshUser());if(!o)throw mt(ca,"createWallet","onError",We.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to set recovery on wallet");v.createAnalyticsEvent({eventName:"embedded_wallet_set_recovery_completed",payload:{walletAddress:t.address,existingRecoveryMethod:t.recoveryMethod,targetRecoveryMethod:e}}),mt(ca,"setWalletRecovery","onSuccess",e,o);break}default:throw new Ce("Unsupported recovery action")}},async loginWithOAuth(e){let t,a,r;if(!(v.authFlow instanceof Ct))throw new Ce("Must initialize OAuth flow before calling loginWithOAuth");let n=Y.get(G),i=v.authFlow.meta.stateCode;if(n!==i)throw v.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:e,storedStateCode:n??"",returnedStateCode:i??""}}),new Ce("Unexpected auth flow. This may be a phishing attempt.",void 0,We.OAUTH_UNEXPECTED);if(null!==await v.getAccessToken())try{let a=await v.link();t=a.user,r=a.oAuthTokens,ha.current=e}catch(t){throw mt(ca,"linkAccount","onError",t.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:e}),t}else try{let n=await v.authenticate();t=n.user,a=n.isNewUser,r=n.oAuthTokens,ha.current=e}catch(t){throw"login"===pa.current?mt(ca,"login","onError",t.privyErrorCode||We.UNKNOWN_AUTH_ERROR):"link"===pa.current&&mt(ca,"linkAccount","onError",t.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:e}),t}return te(t),kt(a||!1),V(!0),r&&t&&mt(ca,"oAuthAuthorization","onOAuthTokenGrant",r,{user:t}),r},passkeyAuthState:Rt,setPasskeyAuthState:Pt,async initLoginWithPasskey({captchaToken:e,withPrivyUi:t}){let a=new w({captchaToken:e,setPasskeyAuthState:Pt});v.startAuthFlow(a),pa.current="login";try{ha.current="passkey",Pt({status:"generating-challenge"}),await a.initAuthenticationFlow(t),Pt({status:"awaiting-passkey"})}catch(e){throw Pt({status:"error",error:e}),mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}},async loginWithPasskey(){let e,t;if(!D)throw new Ne;if(!(v.authFlow instanceof w))throw new Ce("Must initialize Passkey flow first.");if("passkey"!==ha.current){let e=new Ce("Must init login with Passkey flow first.");throw Pt({status:"error",error:e}),e}let a=await Sa();try{ha.current="passkey",Pt({status:"awaiting-passkey"}),({user:e,isNewUser:t}=await v.authenticate())}catch(e){throw Pt({status:"error",error:e}),mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}te(e),kt(t||!1),V(!0),Pt({status:"done"});let r=e?.linkedAccounts.find((({type:e})=>"passkey"===e))||null;return{user:e,isNewUser:t||!1,wasAlreadyAuthenticated:!!a,loginAccount:r}},async initLinkWithPasskey(e){let t=new w({captchaToken:e});v.startAuthFlow(t),pa.current="link",ha.current="passkey",Pt({status:"generating-challenge"});try{await t.initLinkFlow(),Pt({status:"awaiting-passkey"})}catch(e){throw mt(ca,"linkAccount","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),Pt({status:"error",error:e}),e}},async linkWithPasskey(){let e;if(!D)throw new Ne;if(!(v.authFlow instanceof w))throw new Ce("Must initialize Passkey flow first.");if("passkey"!==ha.current)throw new Ce("Must init login with Passkey flow first.");try{ha.current="passkey",({user:e}=await v.link())}catch(e){throw mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:"passkey"}),e}return te(e||Z||null),Pt({status:"done"}),e},async initLoginWithHeadlessOAuth(e,t,a){if(!X())throw Error("It looks like you're using an in-app browser. To log in, please try again using an external browser.");if("google"===e&&Ye(window.navigator.userAgent))throw Error("It looks like you're using an in-app browser. To log in, please try again using an external browser.");let r=new Ct({provider:e,withPrivyUi:!1,disableSignup:a??!1});t&&r.addCaptchaToken(t),Vt({status:"loading"});let n=await v.startAuthFlow(r).getAuthorizationUrl();n?.url&&window.location.assign(n.url)},async loginWithHeadlessOAuth(e){let t,a,r;Ut(!0),Vt({status:"loading"}),v.startAuthFlow(new Ct(e));let n=Y.get(G),i=e.stateCode;if(n!==i)throw v.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:e.provider,storedStateCode:n??"",returnedStateCode:i??""}}),Ut(!1),new Ce("Unexpected auth flow. This may be a phishing attempt.",void 0,We.OAUTH_UNEXPECTED);if(null!==await v.getAccessToken())try{({user:t,oAuthTokens:r}=await v.link()),ha.current=e.provider;let a=qa(t);t&&a&&mt(ca,"linkAccount","onSuccess",t,ha.current,a)}catch(t){throw Ut(!1),mt(ca,"linkAccount","onError",t.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:e.provider}),t}else try{({user:t,isNewUser:a,oAuthTokens:r}=await v.authenticate()),ha.current=e.provider;let n=qa(t);t&&n&&void 0!==a&&mt(ca,"login","onComplete",t,a,!1,ha.current,n)}catch(e){throw Ut(!1),Vt({status:"error",error:e}),mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}return te(t),kt(a||!1),V(!0),Ut(!1),Vt({status:"done"}),r&&t&&mt(ca,"oAuthAuthorization","onOAuthTokenGrant",r,{user:t}),t??void 0},initLoginWithEmail:async({email:e,captchaToken:t,disableSignup:a,withPrivyUi:r})=>{let n=new u({email:e,captchaToken:t,disableSignup:a});v.startAuthFlow(n);try{ha.current="email",Lt({status:"sending-code"}),await n.sendCodeEmail({withPrivyUi:r}),Lt({status:"awaiting-code-input"})}catch(e){throw Lt({status:"error",error:e}),"login"===pa.current?mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR):"link"===pa.current&&mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:"email"}),e}},initUpdateEmail:async(e,t,a)=>{let r=new d(e,t,a);v.startAuthFlow(r);try{await r.sendCodeEmail({withPrivyUi:!0})}catch(e){mt(ca,"update","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR,{linkMethod:ha.current})}},initUpdatePhone:async(e,t,a)=>{let r=new f(e,t,a);v.startAuthFlow(r);try{await r.sendSmsCode({withPrivyUi:!0})}catch(e){mt(ca,"update","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR,{linkMethod:ha.current})}},initLoginWithSms:async({phoneNumber:e,captchaToken:t,disableSignup:a,withPrivyUi:r})=>{Ft({status:"sending-code"});let n=new g({phoneNumber:e,captchaToken:t,disableSignup:a});v.startAuthFlow(n);try{ha.current="sms",await n.sendSmsCode({withPrivyUi:r}),Ft({status:"awaiting-code-input"})}catch(e){throw Ft({status:"error",error:e}),"login"===pa.current?mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR):"link"===pa.current&&mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:"sms"}),e}},resendEmailCode:async()=>{await(v.authFlow?.sendCodeEmail({withPrivyUi:!0}))},resendSmsCode:async()=>{await(v.authFlow?.sendSmsCode({withPrivyUi:!0}))},loginWithCode:async e=>{let t,a;function r(e){v.authFlow instanceof u?Lt(e):v.authFlow instanceof g&&Ft(e)}if(r({status:"submitting-code"}),!D){let e=new Ne;throw r({status:"error",error:e}),e}if(v.authFlow instanceof u)v.authFlow.meta.emailCode=e.trim();else{if(!(v.authFlow instanceof g)){let e=new Ce("Must initialize a passwordless code flow first");throw r({status:"error",error:e}),e}v.authFlow.meta.smsCode=e.trim()}let n=await Sa();if("link"===pa.current)try{({user:t}=await v.link())}catch(e){throw r({status:"error",error:e}),mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:ha.current}),e}else if("update"===pa.current)try{({user:t}=await v.link())}catch(e){throw r({status:"error",error:e}),mt(ca,"update","onError",e.privyErrorCode||We.FAILED_TO_UPDATE_ACCOUNT,{linkMethod:ha.current}),e}else try{({user:t,isNewUser:a}=await v.authenticate())}catch(e){throw r({status:"error",error:e}),mt(ca,"login","onError",e.privyErrorCode||We.UNKNOWN_AUTH_ERROR),e}let i=t||Z;te(i||null),kt(a||!1),V(!0),r({status:"done"});let o=null;return v.authFlow instanceof u?o=i?.linkedAccounts.find((({type:e})=>"email"===e))||null:v.authFlow instanceof g&&(o=i?.linkedAccounts.find((({type:e})=>"phone"===e))||null),{user:i,isNewUser:a||!1,wasAlreadyAuthenticated:!!n,linkedAccount:o}},generateSiweMessage:async({address:e,chainId:t,captchaToken:a})=>{pa.current="link",ha.current="siwe",jt({status:"generating-message"});let r=await v.generateSiweNonce({address:e,captchaToken:a});return jt({status:"awaiting-signature"}),Je({address:e,chainId:t.replace("eip155:",""),nonce:r})},generateSiweMessageForSmartWallet:async({address:e,chainId:t})=>{let a=await v.generateSiweNonce({address:e});return Je({address:e,chainId:t.replace("eip155:",""),nonce:a})},linkSmartWallet:async({message:e,signature:t,smartWalletType:a})=>{let r;try{r=await v.linkSmartWallet({message:e,signature:t,smartWalletType:a}),r=await Ja.refreshUser()??r}catch(e){throw e}te(r||Z||null)},linkWithSiwe:async({message:e,signature:t,chainId:a,walletClientType:r,connectorType:n})=>{let i;Ma("siwe");let o=null;try{jt({status:"submitting-signature"}),i=await v.linkWithSiwe({message:e,signature:t,chainId:a,walletClientType:r,connectorType:n}),i=await Ja.refreshUser()??i,jt({status:"done"}),(o=qa(i)||null)&&mt(ca,"linkAccount","onSuccess",i,"siwe",o)}catch(e){throw mt(ca,"linkAccount","onError",e.privyErrorCode||We.FAILED_TO_LINK_ACCOUNT,{linkMethod:"siwe"}),pa.current=null,ha.current=null,jt({status:"error",error:e}),e}let s=i||Z;return te(s||null),pa.current=null,ha.current=null,{user:s,linkedAccount:o}},refreshUser:async()=>{let e=await v.getAuthenticatedUser();return V(!!e),te(e),e},walletProxy:Ht,createAnalyticsEvent:({eventName:e,payload:t,timestamp:a})=>v.createAnalyticsEvent({eventName:e,payload:t,timestamp:a}),acceptTerms:async()=>{let e=await v.acceptTerms();return te(e),e},getUsdTokenPrice:e=>v.getUsdTokenPrice(e),getUsdPriceForSol:()=>v.getUsdPriceForSol(),recoverPrimaryWallet:async e=>new Promise((async(t,a)=>{let r=k(e?.user??Z)||U(e?.user??Z),n=await Sa();if(!n||!Ht||!r)return void a(Error("Must have valid access token and Privy wallet to recover wallet"));$t(!0);let{entropyId:i,entropyIdVerifier:o}=T(r);try{await Ht.connect({accessToken:n,entropyId:i,entropyIdVerifier:o}),t(!0)}catch(e){ve(e)&&"privy"===r.recoveryMethod?(v.createAnalyticsEvent({eventName:"embedded_wallet_pinless_recovery_started",payload:{walletAddress:r.address}}),(await Ht.recover({entropyId:i,entropyIdVerifier:o,accessToken:n})).entropyId||a(Error("Unable to recover wallet")),v.createAnalyticsEvent({eventName:"embedded_wallet_recovery_completed",payload:{walletAddress:r.address}}),t(!0)):ve(e)&&"privy"!==r.recoveryMethod?(Xt({recoverWallet:{entropyId:i,entropyIdVerifier:o,onFailure:a,onSuccess:()=>t(!0)},recoveryOAuthStatus:{provider:r.recoveryMethod,action:"recover"}}),ya(Ke(r.recoveryMethod))):a(e)}})),embeddedSolanaWallet:Ie,createEmbeddedSolanaWallet:async()=>{$t(!0);let e=await Sa(),t=await Ja.refreshUser(),a=I(t),r=N(t);if(!t||!e)throw new Ce("User must be logged in to create a Solana wallet");if(a)throw new Ce("User already has an embedded Solana wallet.");r&&await Ja.recoverPrimaryWallet({user:t});let n=await Ja.initializeWalletProxy(15e3);if(!n)throw new Ce("Unable to initialize wallet proxy");v.createAnalyticsEvent({eventName:"embedded_solana_wallet_creation_started"});try{await n.createSolana({accessToken:e,ethereumAddress:r?.address});let t=await Ja.refreshUser(),a=I(t);if(!a)throw new Ce("Could not get Solana wallet for user");return v.createAnalyticsEvent({eventName:"embedded_solana_wallet_creation_completed",payload:{walletAddress:a.address}}),a}catch(e){throw v.createAnalyticsEvent({eventName:"embedded_solana_wallet_creation_failed"}),new Ce("Failed to create Solana embedded wallet with error ",e)}},exportSolanaWallet:e=>new Promise((async(t,a)=>{if(!B||!Z)return void a(Error("User must be authenticated before exporting their Privy wallet"));let r=e?.address??I(Z)?.address;if(!r)return void a(Error("User does not have an HD Solana wallet."));let{signingWallet:n,rootWallet:i}=P(Z,r);if(!n||!i)return void a(Error("Must have a Privy wallet before exporting"));if($t(!0),!await Sa()||!Ht)return void a(Error("Must have valid access token to enroll in MFA"));if(!Ht)return void a(Error("Must have a Privy wallet before exporting"));let{entropyId:o,entropyIdVerifier:s}=T(i);Xt({connectWallet:{entropyId:o,entropyIdVerifier:s,onCompleteNavigateTo:lt.EMBEDDED_WALLET_KEY_EXPORT_SCREEN,onFailure:a,shouldForceMFA:!0},keyExport:{appId:A.appId,appClientId:A.clientId,origin:v.apiUrl,walletToExport:n,primaryWallet:i,onSuccess:t,onFailure:a}}),ya(lt.EMBEDDED_WALLET_CONNECTING_SCREEN)})),setReadyToTrue:e=>{x(!0),Qt?.(e)},updateWallets:()=>xa(),fundWallet:async(e,t)=>{let a=lt.FUNDING_METHOD_SELECTION_SCREEN;Xt({funding:vt({address:e,appConfig:zt,fundWalletConfig:t,methodScreen:a})}),ya(a)},openModal:ya,requestFarcasterSignerStatus:async e=>{let t=await Sa(),a=Z?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!t)throw Error("Must have valid access token to connect with Farcaster");if(!Ht||!a)throw Error("Must have an embedded wallet to use Farcaster signers");if(!Z?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");let r=await v.requestFarcasterSignerStatus(e);return"approved"===r.status&&te(await v.getAuthenticatedUser()||Z||null),r},connectCoinbaseSmartWallet:async()=>{zt.externalWallets.coinbaseWallet.connectionOptions="smartWalletOnly";let e=v.connectors?.findWalletConnector("coinbase_wallet","coinbase_smart_wallet")||v.connectors?.findWalletConnector("coinbase_wallet","coinbase_wallet");if(e)return e.updateConnectionPreference("smartWalletOnly"),va(e);await Aa("coinbase_wallet","coinbase_smart_wallet")},initiateAccountTransfer:async({nonce:e,account:t,accountType:a,externalWalletMetadata:r,telegramAuthResult:n,farcasterEmbeddedAddress:i,oAuthUserInfo:o})=>{try{let s=await v.sendAccountTransferRequest({nonce:e,account:t,accountType:a,externalWalletMetadata:r,telegramAuthResult:n,farcasterEmbeddedAddress:i,oAuthUserInfo:o});return te(s),s}catch(e){throw e}}};Na=Ja.recoverPrimaryWallet,ba=Ja.recoverPrimaryWallet,Ua=Ja.solanaSignMessage;let Za=o((()=>({wallets:ae,ready:ta&&da})),[ae,ta,da]),er=v.authFlow instanceof E,tr=!zt.headless&&zt.captchaEnabled&&!B&&(D||er);/*#__PURE__*/return e(Et.Provider,{value:Qa,children:/*#__PURE__*/e(yt.Provider,{value:ca,children:/*#__PURE__*/e(_t.Provider,{value:Za,children:/*#__PURE__*/e(pt,{...zt,children:/*#__PURE__*/t(ft.Provider,{value:Ja,children:[/*#__PURE__*/e(st,{children:/*#__PURE__*/t(gt,{data:Yt,setModalData:Xt,setInitialScreen:Nt,initialScreen:Wt,authenticated:B,open:M,children:[A.children,tr&&/*#__PURE__*/e(ne,{delayedExecution:!1}),/*#__PURE__*/e(dt,{theme:{...zt.appearance.palette||{}}}),!zt.render.standalone&&/*#__PURE__*/e(ie,{open:M})]})}),qt&&Gt?/*#__PURE__*/e(fe,{appId:A.appId,appClientId:A.clientId,clientAnalyticsId:v.clientAnalyticsId,origin:v.apiUrl,mfaMethods:Z?.mfaMethods,mfaPromise:sa,mfaSubmitPromise:la,onLoad:Kt,onLoadFailed:()=>null}):null,zt.loginConfig.telegramAuthConfiguration&&
2
+ /*#__PURE__*/e(ct,{$if:!0,children:/*#__PURE__*/e(oe,{scriptHost:A.apiUrl||F,botUsername:zt.loginConfig.telegramAuthConfiguration.botName})})]})})})})})};export{ya as C,ma as E,xa as P,Aa as a,Ta as b,Sa as c,Ra as d,Pa as e,Ma as f,Oa as g,La as h,Da as i,Fa as j,fa as l};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as r,jsx as n}from"react/jsx-runtime";import t from"@heroicons/react/24/outline/WalletIcon";import{BlobbyFooter as e}from"../../components/ModalFooter.mjs";import{ModalHeader as s}from"../../components/ModalHeader.mjs";import{Address as i}from"../../components/ui/wallet/Address.mjs";import{useAppConfig as c}from"../../configuration/context.mjs";import{AccountTransferButton as m}from"./AccountTransferButton.mjs";import{ConnectContainer as a,GappedContainer as p,ListContainer as l,ListItem as h,DisclosedAccountContainer as j,StyledCopyIcon as d,CircleContainer as u,StyledExclamationCircleIcon as f}from"./styled.mjs";import"styled-components";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/internal-context.mjs";import"react";import"../../hooks/index.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../utils/index.mjs";import"@ethersproject/providers";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../errors.mjs";import"ofetch";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"@heroicons/react/24/outline/ExclamationCircleIcon";let g=()=>/*#__PURE__*/n(u,{children:/*#__PURE__*/n(f,{iconSize:60})});const y=({address:u,onClose:f,onRetry:y,onTransfer:b,isTransferring:k,transferSuccess:x})=>{let{defaultChain:C}=c(),w=C.blockExplorers?.default.url??"https://etherscan.io";/*#__PURE__*/return o(r,{children:[/*#__PURE__*/n(s,{onClose:f,backFn:y}),/*#__PURE__*/o(a,{children:[/*#__PURE__*/n(g,{}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/n("h3",{children:"Check account assets before transferring"}),/*#__PURE__*/n("p",{children:"Before transferring, ensure there are no assets in the other account. Assets in that account will not transfer automatically and may be lost."}),/*#__PURE__*/o(l,{children:[/*#__PURE__*/n("p",{children:" To check your balance, you can:"}),/*#__PURE__*/n(h,{children:"Log out and log back into the other account, or "}),/*#__PURE__*/o(h,{children:["Copy your wallet address and use a"," ",/*#__PURE__*/n("u",{children:/*#__PURE__*/n("a",{target:"_blank",href:w,children:"block explorer"})})," ","to see if the account holds any assets."]})]}),/*#__PURE__*/o(j,{onClick:()=>navigator.clipboard.writeText(u).catch(console.error),children:[/*#__PURE__*/n(t,{color:"var(--privy-color-foreground-1)",strokeWidth:2,height:"28px",width:"28px"}),/*#__PURE__*/n(i,{address:u,showCopyIcon:!1}),/*#__PURE__*/n(d,{})]}),/*#__PURE__*/n(m,{onTransfer:b,isTransferring:k,transferSuccess:x})]})]}),/*#__PURE__*/n(e,{})]})};export{y as EmbeddedWalletInfoView};
1
+ import{jsxs as o,Fragment as r,jsx as n}from"react/jsx-runtime";import t from"@heroicons/react/24/outline/WalletIcon";import{BlobbyFooter as e}from"../../components/ModalFooter.mjs";import{ModalHeader as i}from"../../components/ModalHeader.mjs";import{Address as s}from"../../components/ui/wallet/Address.mjs";import{useAppConfig as c}from"../../configuration/context.mjs";import{AccountTransferButton as m}from"./AccountTransferButton.mjs";import{ConnectContainer as a,GappedContainer as l,ListContainer as p,ListItem as h,DisclosedAccountContainer as j,StyledCopyIcon as d,CircleContainer as u,StyledExclamationCircleIcon as f}from"./styled.mjs";import"styled-components";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/internal-context.mjs";import"react";import"../../hooks/index.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../utils/index.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../errors.mjs";import"ofetch";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"@heroicons/react/24/outline/ExclamationCircleIcon";let g=()=>/*#__PURE__*/n(u,{children:/*#__PURE__*/n(f,{iconSize:60})});const y=({address:u,onClose:f,onRetry:y,onTransfer:b,isTransferring:k,transferSuccess:x})=>{let{defaultChain:C}=c(),w=C.blockExplorers?.default.url??"https://etherscan.io";/*#__PURE__*/return o(r,{children:[/*#__PURE__*/n(i,{onClose:f,backFn:y}),/*#__PURE__*/o(a,{children:[/*#__PURE__*/n(g,{}),/*#__PURE__*/o(l,{children:[/*#__PURE__*/n("h3",{children:"Check account assets before transferring"}),/*#__PURE__*/n("p",{children:"Before transferring, ensure there are no assets in the other account. Assets in that account will not transfer automatically and may be lost."}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/n("p",{children:" To check your balance, you can:"}),/*#__PURE__*/n(h,{children:"Log out and log back into the other account, or "}),/*#__PURE__*/o(h,{children:["Copy your wallet address and use a"," ",/*#__PURE__*/n("u",{children:/*#__PURE__*/n("a",{target:"_blank",href:w,children:"block explorer"})})," ","to see if the account holds any assets."]})]}),/*#__PURE__*/o(j,{onClick:()=>navigator.clipboard.writeText(u).catch(console.error),children:[/*#__PURE__*/n(t,{color:"var(--privy-color-foreground-1)",strokeWidth:2,height:"28px",width:"28px"}),/*#__PURE__*/n(s,{address:u,showCopyIcon:!1}),/*#__PURE__*/n(d,{})]}),/*#__PURE__*/n(m,{onTransfer:b,isTransferring:k,transferSuccess:x})]})]}),/*#__PURE__*/n(e,{})]})};export{y as EmbeddedWalletInfoView};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as r,Fragment as e}from"react/jsx-runtime";import{ModalScreen as n}from"../index.mjs";import t from"@heroicons/react/24/outline/ExclamationTriangleIcon";import s from"@heroicons/react/24/outline/WalletIcon";import{useState as c}from"react";import{PrimaryButton as i,SecondaryButton as a}from"../../components/Button.mjs";import{CircleBorder as m}from"../../components/CircleBorder.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{ModalHeader as d}from"../../components/ModalHeader.mjs";import p from"../../components/layout/StackedContainer.mjs";import{Address as h}from"../../components/ui/wallet/Address.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as f}from"../../hooks/modal-context.mjs";import j from"../../lib/capitalizeFirstLetter.mjs";import{AccountTransferButton as T}from"./AccountTransferButton.mjs";import{EmbeddedWalletInfoView as g}from"./EmbeddedWalletInfoView.mjs";import{ConnectContainer as y,GappedContainer as k,DisclosedAccountContainer as C,StyledExclamationCircleIcon as b}from"./styled.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../hooks/index.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../utils/index.mjs";import"@ethersproject/providers";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../errors.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"@heroicons/react/24/outline/ExclamationCircleIcon";const A=()=>{let{initiateAccountTransfer:r,closePrivyModal:e}=u(),{data:t,navigate:s,lastScreen:i,setModalData:a}=f(),[m,l]=c(void 0),[d,p]=c(!1),[h,j]=c(!1),T=async()=>{try{if(!t?.accountTransfer?.nonce||!t?.accountTransfer?.account)throw Error("missing account transfer inputs");j(!0),await r({nonce:t?.accountTransfer?.nonce,account:t?.accountTransfer?.account,accountType:t?.accountTransfer?.linkMethod,externalWalletMetadata:t?.accountTransfer?.externalWalletMetadata,telegramAuthResult:t?.accountTransfer?.telegramAuthResult,farcasterEmbeddedAddress:t?.accountTransfer?.farcasterEmbeddedAddress,oAuthUserInfo:t?.accountTransfer?.oAuthUserInfo}),p(!0),j(!1),setTimeout(e,1e3)}catch(o){a({errorModalData:{error:o,previousScreen:i||n.LINK_CONFLICT_SCREEN}}),s(n.ERROR_SCREEN,!0)}};return m?/*#__PURE__*/o(g,{address:m,onClose:e,onRetry:()=>l(void 0),onTransfer:T,isTransferring:h,transferSuccess:d}):/*#__PURE__*/o(v,{onClose:e,onInfo:()=>l(t?.accountTransfer?.embeddedWalletAddress),onContinue:()=>l(t?.accountTransfer?.embeddedWalletAddress),onTransfer:T,isTransferring:h,transferSuccess:d,data:t})},v=({onClose:n,onContinue:s,onInfo:c,onTransfer:h,transferSuccess:u,isTransferring:f,data:g})=>{if(!g?.accountTransfer?.linkMethod||!g?.accountTransfer?.displayName)return;let C={method:g?.accountTransfer?.linkMethod,handle:g?.accountTransfer?.displayName,disclosedAccount:g?.accountTransfer?.embeddedWalletAddress?{type:"wallet",handle:g?.accountTransfer?.embeddedWalletAddress}:void 0};/*#__PURE__*/return r(e,{children:[/*#__PURE__*/o(d,{closeable:!0}),/*#__PURE__*/r(y,{children:[/*#__PURE__*/o(p,{children:/*#__PURE__*/r("div",{children:[/*#__PURE__*/o(m,{color:"var(--privy-color-error)"}),/*#__PURE__*/o(t,{height:38,width:38,stroke:"var(--privy-color-error)"})]})}),/*#__PURE__*/r(k,{children:[/*#__PURE__*/r("h3",{children:[function(o){switch(o){case"sms":return"Phone number";case"email":return"Email address";case"siwe":return"Wallet address";case"linkedin":return"LinkedIn profile";case"google":case"apple":case"discord":case"github":case"instagram":case"spotify":case"tiktok":case"twitter":case"telegram":case"farcaster":return`${j(o.replace("_oauth",""))} profile`;default:return o}}(C.method)," is associated with another account"]}),/*#__PURE__*/r("p",{children:["Do you want to transfer",/*#__PURE__*/o("b",{children:C.handle?` ${C.handle}`:""})," to this account instead? This will delete your other account."]}),/*#__PURE__*/o(I,{onClick:c,disclosedAccount:C.disclosedAccount})]}),/*#__PURE__*/r(k,{style:{gap:12,marginTop:12},children:[g?.accountTransfer?.embeddedWalletAddress?/*#__PURE__*/o(i,{onClick:s,children:"Continue"}):/*#__PURE__*/o(T,{onTransfer:h,transferSuccess:u,isTransferring:f}),/*#__PURE__*/o(a,{onClick:n,children:"No thanks"})]})]}),/*#__PURE__*/o(l,{})]})};function I({disclosedAccount:e,onClick:n}){return e?/*#__PURE__*/r(C,{onClick:n,children:[/*#__PURE__*/o(s,{color:"var(--privy-color-foreground-1)",strokeWidth:2,height:"28px",width:"28px"}),/*#__PURE__*/o(h,{address:e.handle,showCopyIcon:!1}),/*#__PURE__*/o(b,{iconSize:15})]}):null}export{A as LinkConflictScreen,v as LinkConflictScreenView};
1
+ import{jsx as o,jsxs as r,Fragment as e}from"react/jsx-runtime";import{ModalScreen as n}from"../index.mjs";import t from"@heroicons/react/24/outline/ExclamationTriangleIcon";import s from"@heroicons/react/24/outline/WalletIcon";import{useState as c}from"react";import{PrimaryButton as i,SecondaryButton as a}from"../../components/Button.mjs";import{CircleBorder as m}from"../../components/CircleBorder.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{ModalHeader as d}from"../../components/ModalHeader.mjs";import p from"../../components/layout/StackedContainer.mjs";import{Address as h}from"../../components/ui/wallet/Address.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as f}from"../../hooks/modal-context.mjs";import j from"../../lib/capitalizeFirstLetter.mjs";import{AccountTransferButton as T}from"./AccountTransferButton.mjs";import{EmbeddedWalletInfoView as g}from"./EmbeddedWalletInfoView.mjs";import{ConnectContainer as y,GappedContainer as k,DisclosedAccountContainer as C,StyledExclamationCircleIcon as b}from"./styled.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../hooks/index.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../utils/index.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../errors.mjs";import"ofetch";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../components/PrefetchedImage.mjs";import"@heroicons/react/24/outline/ExclamationCircleIcon";const A=()=>{let{initiateAccountTransfer:r,closePrivyModal:e}=u(),{data:t,navigate:s,lastScreen:i,setModalData:a}=f(),[m,l]=c(void 0),[d,p]=c(!1),[h,j]=c(!1),T=async()=>{try{if(!t?.accountTransfer?.nonce||!t?.accountTransfer?.account)throw Error("missing account transfer inputs");j(!0),await r({nonce:t?.accountTransfer?.nonce,account:t?.accountTransfer?.account,accountType:t?.accountTransfer?.linkMethod,externalWalletMetadata:t?.accountTransfer?.externalWalletMetadata,telegramAuthResult:t?.accountTransfer?.telegramAuthResult,farcasterEmbeddedAddress:t?.accountTransfer?.farcasterEmbeddedAddress,oAuthUserInfo:t?.accountTransfer?.oAuthUserInfo}),p(!0),j(!1),setTimeout(e,1e3)}catch(o){a({errorModalData:{error:o,previousScreen:i||n.LINK_CONFLICT_SCREEN}}),s(n.ERROR_SCREEN,!0)}};return m?/*#__PURE__*/o(g,{address:m,onClose:e,onRetry:()=>l(void 0),onTransfer:T,isTransferring:h,transferSuccess:d}):/*#__PURE__*/o(v,{onClose:e,onInfo:()=>l(t?.accountTransfer?.embeddedWalletAddress),onContinue:()=>l(t?.accountTransfer?.embeddedWalletAddress),onTransfer:T,isTransferring:h,transferSuccess:d,data:t})},v=({onClose:n,onContinue:s,onInfo:c,onTransfer:h,transferSuccess:u,isTransferring:f,data:g})=>{if(!g?.accountTransfer?.linkMethod||!g?.accountTransfer?.displayName)return;let C={method:g?.accountTransfer?.linkMethod,handle:g?.accountTransfer?.displayName,disclosedAccount:g?.accountTransfer?.embeddedWalletAddress?{type:"wallet",handle:g?.accountTransfer?.embeddedWalletAddress}:void 0};/*#__PURE__*/return r(e,{children:[/*#__PURE__*/o(d,{closeable:!0}),/*#__PURE__*/r(y,{children:[/*#__PURE__*/o(p,{children:/*#__PURE__*/r("div",{children:[/*#__PURE__*/o(m,{color:"var(--privy-color-error)"}),/*#__PURE__*/o(t,{height:38,width:38,stroke:"var(--privy-color-error)"})]})}),/*#__PURE__*/r(k,{children:[/*#__PURE__*/r("h3",{children:[function(o){switch(o){case"sms":return"Phone number";case"email":return"Email address";case"siwe":return"Wallet address";case"linkedin":return"LinkedIn profile";case"google":case"apple":case"discord":case"github":case"instagram":case"spotify":case"tiktok":case"twitter":case"telegram":case"farcaster":return`${j(o.replace("_oauth",""))} profile`;default:return o}}(C.method)," is associated with another account"]}),/*#__PURE__*/r("p",{children:["Do you want to transfer",/*#__PURE__*/o("b",{children:C.handle?` ${C.handle}`:""})," to this account instead? This will delete your other account."]}),/*#__PURE__*/o(I,{onClick:c,disclosedAccount:C.disclosedAccount})]}),/*#__PURE__*/r(k,{style:{gap:12,marginTop:12},children:[g?.accountTransfer?.embeddedWalletAddress?/*#__PURE__*/o(i,{onClick:s,children:"Continue"}):/*#__PURE__*/o(T,{onTransfer:h,transferSuccess:u,isTransferring:f}),/*#__PURE__*/o(a,{onClick:n,children:"No thanks"})]})]}),/*#__PURE__*/o(l,{})]})};function I({disclosedAccount:e,onClick:n}){return e?/*#__PURE__*/r(C,{onClick:n,children:[/*#__PURE__*/o(s,{color:"var(--privy-color-foreground-1)",strokeWidth:2,height:"28px",width:"28px"}),/*#__PURE__*/o(h,{address:e.handle,showCopyIcon:!1}),/*#__PURE__*/o(b,{iconSize:15})]}):null}export{A as LinkConflictScreen,v as LinkConflictScreenView};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as n,Fragment as e}from"react/jsx-runtime";import{ModalScreen as t}from"./index.mjs";import r from"@heroicons/react/24/outline/ArrowTopRightOnSquareIcon";import i from"@heroicons/react/24/solid/DocumentCheckIcon";import{styled as s}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as c}from"../client/user.mjs";import{SecondaryButton as m,PrimaryButton as a}from"../components/Button.mjs";import{BlobbyFooter as l}from"../components/ModalFooter.mjs";import{ModalHeader as p}from"../components/ModalHeader.mjs";import{usePrivyInternal as h}from"../hooks/internal-context.mjs";import{usePrivyModal as j}from"../hooks/modal-context.mjs";import{usePrivyContext as d}from"../hooks/privy-context.mjs";import{LoginMethodContainer as u,LoginMethodButtonLink as f}from"./LandingScreen/styles.mjs";import{Title as y,SubTitle as g}from"./MfaScreens/StyledComponents.mjs";import"@ethersproject/address";import"../components/Loader.mjs";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";const C=()=>{let{user:n,logout:e}=d(),{app:r,onUserCloseViaDialogOrKeybindRef:i,setModalData:s,navigate:m}=j(),{acceptTerms:a,closePrivyModal:l,createAnalyticsEvent:p}=h(),u=o=>{o?.preventDefault(),l({shouldCallAuthOnSuccess:!1}),e()};i.current=u;/*#__PURE__*/return o(v,{termsAndConditionsUrl:r?.legal.termsAndConditionsUrl,privacyPolicyUrl:r?.legal.privacyPolicyUrl,onAccept:async o=>{o.preventDefault(),await a(),n&&c(n,r?.embeddedWallets?.createOnLogin)?(s({createWallet:{onSuccess:()=>{},onFailure:o=>{console.error(o),p({eventName:"embedded_wallet_creation_failure_logout",payload:{error:o,screen:"AffirmativeConsentScreen"}}),e()},callAuthOnSuccessOnClose:!0}}),m(t.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)):l()},onDecline:u})},v=({termsAndConditionsUrl:t,privacyPolicyUrl:s,onAccept:c,onDecline:h})=>/*#__PURE__*/n(e,{children:[/*#__PURE__*/o(p,{closeable:!1}),/*#__PURE__*/o(i,{width:56,height:56,fill:"var(--privy-color-accent)",style:{margin:"auto"}}),/*#__PURE__*/o(y,{style:{marginTop:24},children:"One last step"}),/*#__PURE__*/o(g,{children:"By signing up, you agree to our terms and privacy policy."}),/*#__PURE__*/n(u,{style:{marginTop:24},children:[t&&/*#__PURE__*/n(f,{target:"_blank",href:t,children:["View Terms ",/*#__PURE__*/o(r,{style:{marginLeft:"auto"}})]}),s&&/*#__PURE__*/n(f,{target:"_blank",href:s,children:["View Privacy Policy ",/*#__PURE__*/o(r,{style:{marginLeft:"auto"}})]})]}),/*#__PURE__*/n(A,{style:{marginTop:24},children:[/*#__PURE__*/o(m,{onClick:h,children:"No thanks"}),/*#__PURE__*/o(a,{onClick:c,children:"Accept"})]}),/*#__PURE__*/o(l,{})]});let A=/*#__PURE__*/s.div.withConfig({displayName:"ButtonsContainer",componentId:"sc-4aff18c8-0"})(["display:flex;gap:10px;"]);export{C as AffirmativeConsentScreen,v as View};
1
+ import{jsx as o,jsxs as n,Fragment as t}from"react/jsx-runtime";import{ModalScreen as e}from"./index.mjs";import r from"@heroicons/react/24/outline/ArrowTopRightOnSquareIcon";import i from"@heroicons/react/24/solid/DocumentCheckIcon";import{styled as s}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as c}from"../client/user.mjs";import{SecondaryButton as m,PrimaryButton as a}from"../components/Button.mjs";import{BlobbyFooter as l}from"../components/ModalFooter.mjs";import{ModalHeader as p}from"../components/ModalHeader.mjs";import{usePrivyInternal as h}from"../hooks/internal-context.mjs";import{usePrivyModal as j}from"../hooks/modal-context.mjs";import{usePrivyContext as d}from"../hooks/privy-context.mjs";import{LoginMethodContainer as u,LoginMethodButtonLink as f}from"./LandingScreen/styles.mjs";import{Title as y,SubTitle as g}from"./MfaScreens/StyledComponents.mjs";import"viem/utils";import"../components/Loader.mjs";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";const v=()=>{let{user:n,logout:t}=d(),{app:r,onUserCloseViaDialogOrKeybindRef:i,setModalData:s,navigate:m}=j(),{acceptTerms:a,closePrivyModal:l,createAnalyticsEvent:p}=h(),u=o=>{o?.preventDefault(),l({shouldCallAuthOnSuccess:!1}),t()};i.current=u;/*#__PURE__*/return o(C,{termsAndConditionsUrl:r?.legal.termsAndConditionsUrl,privacyPolicyUrl:r?.legal.privacyPolicyUrl,onAccept:async o=>{o.preventDefault(),await a(),n&&c(n,r?.embeddedWallets?.createOnLogin)?(s({createWallet:{onSuccess:()=>{},onFailure:o=>{console.error(o),p({eventName:"embedded_wallet_creation_failure_logout",payload:{error:o,screen:"AffirmativeConsentScreen"}}),t()},callAuthOnSuccessOnClose:!0}}),m(e.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)):l()},onDecline:u})},C=({termsAndConditionsUrl:e,privacyPolicyUrl:s,onAccept:c,onDecline:h})=>/*#__PURE__*/n(t,{children:[/*#__PURE__*/o(p,{closeable:!1}),/*#__PURE__*/o(i,{width:56,height:56,fill:"var(--privy-color-accent)",style:{margin:"auto"}}),/*#__PURE__*/o(y,{style:{marginTop:24},children:"One last step"}),/*#__PURE__*/o(g,{children:"By signing up, you agree to our terms and privacy policy."}),/*#__PURE__*/n(u,{style:{marginTop:24},children:[e&&/*#__PURE__*/n(f,{target:"_blank",href:e,children:["View Terms ",/*#__PURE__*/o(r,{style:{marginLeft:"auto"}})]}),s&&/*#__PURE__*/n(f,{target:"_blank",href:s,children:["View Privacy Policy ",/*#__PURE__*/o(r,{style:{marginLeft:"auto"}})]})]}),/*#__PURE__*/n(A,{style:{marginTop:24},children:[/*#__PURE__*/o(m,{onClick:h,children:"No thanks"}),/*#__PURE__*/o(a,{onClick:c,children:"Accept"})]}),/*#__PURE__*/o(l,{})]});let A=/*#__PURE__*/s.div.withConfig({displayName:"ButtonsContainer",componentId:"sc-4aff18c8-0"})(["display:flex;gap:10px;"]);export{v as AffirmativeConsentScreen,C as View};
@@ -1,2 +1,2 @@
1
- import{jsxs as e,jsx as o,Fragment as r}from"react/jsx-runtime";import t from"@heroicons/react/20/solid/CheckIcon";import i from"@heroicons/react/24/outline/EnvelopeIcon";import n from"@heroicons/react/24/outline/PhoneIcon";import{useState as c,useEffect as a}from"react";import{isMobile as s}from"react-device-detect";import{styled as l}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as m}from"../client/user.mjs";import{HorizontallyCenteredItem as p}from"../components/Layouts.mjs";import{BlobbyFooter as d}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as h}from"../components/ScreenHeader.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as f}from"../constants.mjs";import{PrivyApiError as v,PrivyErrorCode as y,PrivyUserLimitReachedError as g}from"../errors.mjs";import{usePrivyInternal as E}from"../hooks/internal-context.mjs";import{usePrivyModal as x}from"../hooks/modal-context.mjs";import{usePrivyContext as C}from"../hooks/privy-context.mjs";import{ModalScreen as j}from"./index.mjs";import"@ethersproject/address";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";let N=Array(6).fill("");var _,b,T=((_=T||{})[_.RESET_AFTER_DELAY=0]="RESET_AFTER_DELAY",_[_.CLEAR_ON_NEXT_VALID_INPUT=1]="CLEAR_ON_NEXT_VALID_INPUT",_),S=((b=S||{})[b.EMAIL=0]="EMAIL",b[b.SMS=1]="SMS",b);const A=()=>{let{app:l,navigate:_,lastScreen:b,navigateBack:T,setModalData:S,onUserCloseViaDialogOrKeybindRef:A}=x(),{closePrivyModal:M,resendEmailCode:U,resendSmsCode:W,getAuthMeta:F,loginWithCode:P,updateWallets:$,createAnalyticsEvent:H}=E(),{authenticated:z,logout:B,user:q}=C(),[K,V]=c(N),[X,Y]=c(!1),[Q,G]=c(null),[J,Z]=c(null),[ee,oe]=c(0);A.current=()=>null;let re=F()?.email?0:1,te=f-500;a((()=>{if(ee){let e=setTimeout((()=>{oe(ee-1)}),1e3);return()=>clearTimeout(e)}}),[ee]),a((()=>{if(z&&X&&q){if(l?.legal.requireUsersAcceptTerms&&!q.hasAcceptedTerms){let e=setTimeout((()=>{_(j.AFFIRMATIVE_CONSENT_SCREEN)}),te);return()=>clearTimeout(e)}if(m(q,l?.embeddedWallets?.createOnLogin)){let e=setTimeout((()=>{S({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),H({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AwaitingPasswordlessCodeScreen"}}),B()},callAuthOnSuccessOnClose:!0}}),_(j.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),te);return()=>clearTimeout(e)}{$();let e=setTimeout((()=>M({shouldCallAuthOnSuccess:!0,isSuccess:!0})),f);return()=>clearTimeout(e)}}}),[z,X,q]),a((()=>{if(Q&&0===J){let e=setTimeout((()=>{V(N),G(null);let e=document.querySelector("input[name=code-0]");e?.focus()}),1400);return()=>clearTimeout(e)}}),[Q]);let ie=e=>{e.preventDefault();let o=e.currentTarget.value.replace(" ","");if(""===o)return;if(isNaN(Number(o)))return G("Code should be numeric"),void Z(1);G(null),Z(null);let r=Number(e.currentTarget.name?.charAt(5)),t=[...o||[""]].slice(0,6-r),i=[...K.slice(0,r),...t,...K.slice(r+t.length)];V(i);let n=Math.min(Math.max(r+t.length,0),5);if(!isNaN(Number(e.currentTarget.value))){let e=document.querySelector(`input[name=code-${n}]`);e?.focus()}if(i.every((e=>e&&!isNaN(+e)))){let e=document.querySelector(`input[name=code-${n}]`);e?.blur(),P(i.join("")).then((()=>Y(!0))).catch((e=>{if(e instanceof v&&e.privyErrorCode===y.INVALID_CREDENTIALS)G("Invalid or expired verification code");else if(e instanceof v&&e.privyErrorCode===y.CANNOT_LINK_MORE_OF_TYPE)G(e.message);else{if(e instanceof v&&e.privyErrorCode===y.USER_LIMIT_REACHED)return console.error(new g(e).toString()),void _(j.USER_LIMIT_REACHED_SCREEN);if(e instanceof v&&e.privyErrorCode===y.USER_DOES_NOT_EXIST)return void _(j.ACCOUNT_NOT_FOUND_SCREEN);if(e instanceof v&&e.privyErrorCode===y.LINKED_TO_ANOTHER_USER)return S({errorModalData:{error:e,previousScreen:b??j.AWAITING_PASSWORDLESS_CODE}}),void _(j.ERROR_SCREEN,!1);if(e instanceof v&&e.privyErrorCode===y.DISALLOWED_PLUS_EMAIL)return S({inlineError:{error:e}}),void _(j.CONNECT_OR_CREATE,!1);if(e instanceof v&&e.privyErrorCode===y.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return S({accountTransfer:{nonce:e.data?.data?.nonce,account:0===re?F()?.email:F()?.phoneNumber,displayName:e.data?.data?.account?.displayName,linkMethod:0===re?"email":"sms",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void _(j.LINK_CONFLICT_SCREEN);G("Issue verifying code")}Z(0)}))}},ne=0==re?/*#__PURE__*/o(i,{color:"var(--privy-color-accent)",strokeWidth:2,height:"48px",width:"48px"}):
1
+ import{jsxs as e,jsx as o,Fragment as r}from"react/jsx-runtime";import t from"@heroicons/react/20/solid/CheckIcon";import i from"@heroicons/react/24/outline/EnvelopeIcon";import n from"@heroicons/react/24/outline/PhoneIcon";import{useState as c,useEffect as a}from"react";import{isMobile as s}from"react-device-detect";import{styled as l}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as m}from"../client/user.mjs";import{HorizontallyCenteredItem as p}from"../components/Layouts.mjs";import{BlobbyFooter as d}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as h}from"../components/ScreenHeader.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as f}from"../constants.mjs";import{PrivyApiError as v,PrivyErrorCode as y,PrivyUserLimitReachedError as g}from"../errors.mjs";import{usePrivyInternal as E}from"../hooks/internal-context.mjs";import{usePrivyModal as x}from"../hooks/modal-context.mjs";import{usePrivyContext as C}from"../hooks/privy-context.mjs";import{ModalScreen as j}from"./index.mjs";import"viem/utils";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";let N=Array(6).fill("");var _,b,T=((_=T||{})[_.RESET_AFTER_DELAY=0]="RESET_AFTER_DELAY",_[_.CLEAR_ON_NEXT_VALID_INPUT=1]="CLEAR_ON_NEXT_VALID_INPUT",_),S=((b=S||{})[b.EMAIL=0]="EMAIL",b[b.SMS=1]="SMS",b);const A=()=>{let{app:l,navigate:_,lastScreen:b,navigateBack:T,setModalData:S,onUserCloseViaDialogOrKeybindRef:A}=x(),{closePrivyModal:M,resendEmailCode:U,resendSmsCode:W,getAuthMeta:F,loginWithCode:P,updateWallets:$,createAnalyticsEvent:H}=E(),{authenticated:z,logout:B,user:q}=C(),[K,V]=c(N),[X,Y]=c(!1),[Q,G]=c(null),[J,Z]=c(null),[ee,oe]=c(0);A.current=()=>null;let re=F()?.email?0:1,te=f-500;a((()=>{if(ee){let e=setTimeout((()=>{oe(ee-1)}),1e3);return()=>clearTimeout(e)}}),[ee]),a((()=>{if(z&&X&&q){if(l?.legal.requireUsersAcceptTerms&&!q.hasAcceptedTerms){let e=setTimeout((()=>{_(j.AFFIRMATIVE_CONSENT_SCREEN)}),te);return()=>clearTimeout(e)}if(m(q,l?.embeddedWallets?.createOnLogin)){let e=setTimeout((()=>{S({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),H({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AwaitingPasswordlessCodeScreen"}}),B()},callAuthOnSuccessOnClose:!0}}),_(j.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),te);return()=>clearTimeout(e)}{$();let e=setTimeout((()=>M({shouldCallAuthOnSuccess:!0,isSuccess:!0})),f);return()=>clearTimeout(e)}}}),[z,X,q]),a((()=>{if(Q&&0===J){let e=setTimeout((()=>{V(N),G(null);let e=document.querySelector("input[name=code-0]");e?.focus()}),1400);return()=>clearTimeout(e)}}),[Q]);let ie=e=>{e.preventDefault();let o=e.currentTarget.value.replace(" ","");if(""===o)return;if(isNaN(Number(o)))return G("Code should be numeric"),void Z(1);G(null),Z(null);let r=Number(e.currentTarget.name?.charAt(5)),t=[...o||[""]].slice(0,6-r),i=[...K.slice(0,r),...t,...K.slice(r+t.length)];V(i);let n=Math.min(Math.max(r+t.length,0),5);if(!isNaN(Number(e.currentTarget.value))){let e=document.querySelector(`input[name=code-${n}]`);e?.focus()}if(i.every((e=>e&&!isNaN(+e)))){let e=document.querySelector(`input[name=code-${n}]`);e?.blur(),P(i.join("")).then((()=>Y(!0))).catch((e=>{if(e instanceof v&&e.privyErrorCode===y.INVALID_CREDENTIALS)G("Invalid or expired verification code");else if(e instanceof v&&e.privyErrorCode===y.CANNOT_LINK_MORE_OF_TYPE)G(e.message);else{if(e instanceof v&&e.privyErrorCode===y.USER_LIMIT_REACHED)return console.error(new g(e).toString()),void _(j.USER_LIMIT_REACHED_SCREEN);if(e instanceof v&&e.privyErrorCode===y.USER_DOES_NOT_EXIST)return void _(j.ACCOUNT_NOT_FOUND_SCREEN);if(e instanceof v&&e.privyErrorCode===y.LINKED_TO_ANOTHER_USER)return S({errorModalData:{error:e,previousScreen:b??j.AWAITING_PASSWORDLESS_CODE}}),void _(j.ERROR_SCREEN,!1);if(e instanceof v&&e.privyErrorCode===y.DISALLOWED_PLUS_EMAIL)return S({inlineError:{error:e}}),void _(j.CONNECT_OR_CREATE,!1);if(e instanceof v&&e.privyErrorCode===y.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return S({accountTransfer:{nonce:e.data?.data?.nonce,account:0===re?F()?.email:F()?.phoneNumber,displayName:e.data?.data?.account?.displayName,linkMethod:0===re?"email":"sms",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void _(j.LINK_CONFLICT_SCREEN);G("Issue verifying code")}Z(0)}))}},ne=0==re?/*#__PURE__*/o(i,{color:"var(--privy-color-accent)",strokeWidth:2,height:"48px",width:"48px"}):
2
2
  /*#__PURE__*/o(n,{color:"var(--privy-color-accent)",strokeWidth:2,height:"40px",width:"40px"}),ce=/*#__PURE__*/e("p",0==re?{children:["Please check ",/*#__PURE__*/o(D,{children:F()?.email})," for an email from privy.io and enter your code below."]}:{children:["Please check ",/*#__PURE__*/o(D,{children:F()?.phoneNumber})," for a message from ",l?.name||"Privy"," and enter your code below."]});/*#__PURE__*/return e(r,{children:[/*#__PURE__*/o(u,{backFn:()=>T()},"header"),/*#__PURE__*/e(I,{children:[/*#__PURE__*/o(h,{title:"Enter confirmation code",description:ce,icon:ne}),/*#__PURE__*/e(p,{children:[/*#__PURE__*/e(R,{children:[/*#__PURE__*/o(k,{$fail:!!Q,$success:X,children:/*#__PURE__*/o("span",{children:Q||(X?"Success!":"")})}),/*#__PURE__*/o("div",{children:K.map(((e,r)=>/*#__PURE__*/o("input",{name:`code-${r}`,type:"text",value:K[r],onChange:ie,onKeyUp:e=>{"Backspace"===e.key&&(e=>{if(1===J&&(G(null),Z(null)),V([...K.slice(0,e),"",...K.slice(e+1)]),e>0){let o=document.querySelector(`input[name=code-${e-1}]`);o?.focus()}})(r)},inputMode:"numeric",autoFocus:0===r,pattern:"[0-9]",className:`${X?"success":""} ${Q?"fail":""}`,autoComplete:s?"one-time-code":"off"},r)))})]}),/*#__PURE__*/e(w,{children:[/*#__PURE__*/e("span",{children:["Didn't get ",0==re?"an email":"a message","?"]}),ee?/*#__PURE__*/e(L,{children:[/*#__PURE__*/o(t,{color:"var(--privy-color-foreground)",strokeWidth:1.33,height:"12px",width:"12px"}),/*#__PURE__*/o("span",{children:"Code sent"})]}):/*#__PURE__*/o(O,{children:/*#__PURE__*/o("button",{onClick:async()=>{oe(30),0==re?await U():await W()},children:"Resend code"})})]})]})]}),/*#__PURE__*/o(d,{})]})};let I=/*#__PURE__*/l.div.withConfig({displayName:"PasswordlessCodeContainer",componentId:"sc-463c12b2-0"})(["display:flex;flex-direction:column;align-items:flex-start;justify-content:center;margin:auto;gap:16px;flex-grow:1;"]),R=/*#__PURE__*/l.div.withConfig({displayName:"CodeInput",componentId:"sc-463c12b2-1"})(["display:flex;flex-direction:column;width:100%;gap:8px;> div:last-child{display:flex;justify-content:center;gap:0.5rem;width:100%;border-radius:var(--privy-border-radius-md);> input{border:1px solid var(--privy-color-foreground-4);background:var(--privy-color-background);border-radius:var(--privy-border-radius-md);padding:8px 10px;height:58px;width:46px;text-align:center;font-size:18px;}> input:focus{border:1px solid var(--privy-color-accent);}> input:invalid{border:1px solid var(--privy-color-error);}> input.success{border:1px solid var(--privy-color-success);}> input.fail{border:1px solid var(--privy-color-error);animation:shake 180ms;animation-iteration-count:2;}}@keyframes shake{0%{transform:translate(1px,0px);}33%{transform:translate(-1px,0px);}67%{transform:translate(-1px,0px);}100%{transform:translate(1px,0px);}}"]),k=/*#__PURE__*/l.div.withConfig({displayName:"InputHelp",componentId:"sc-463c12b2-2"})(["line-height:20px;height:20px;font-size:13px;color:",";display:flex;justify-content:flex-end;width:100%;"],(e=>e.$success?"var(--privy-color-success)":e.$fail?"var(--privy-color-error)":"var(--privy-color-foreground-3)")),w=/*#__PURE__*/l.div.withConfig({displayName:"HelpText",componentId:"sc-463c12b2-3"})(["font-size:13px;color:var(--privy-color-foreground);display:flex;gap:8px;align-items:center;width:100%;margin-top:16px;padding-bottom:32px;"]),O=/*#__PURE__*/l.div.withConfig({displayName:"ResendButtonContainer",componentId:"sc-463c12b2-4"})(["color:var(--privy-color-accent);padding:2px 0;> button{text-decoration:underline;}"]),L=/*#__PURE__*/l.div.withConfig({displayName:"Badge",componentId:"sc-463c12b2-5"})(["display:flex;align-items:center;justify-content:center;border-radius:var(--privy-border-radius-sm);padding:2px 8px;gap:4px;background:var(--privy-color-background-2);color:var(--privy-color-foreground-2);"]),D=/*#__PURE__*/l.span.withConfig({displayName:"BoldWrappingSpan",componentId:"sc-463c12b2-6"})(["font-weight:500;word-break:break-all;"]);export{A as AwaitingPasswordlessCodeScreen};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{ModalScreen as r}from"./index.mjs";import n from"@heroicons/react/24/solid/CheckCircleIcon";import i from"@heroicons/react/24/solid/XCircleIcon";import{useRef as s,useState as c,useEffect as a}from"react";import{styled as m}from"styled-components";import{PrimaryButton as p}from"../components/Button.mjs";import{FixedGappedContainer as l}from"../components/Layouts.mjs";import{ModalFooter as h}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{WrappedLoader as d}from"../components/WrappedLoader.mjs";import{useCaptcha as j,CaptchaError as f}from"../hooks/captcha-context.mjs";import{usePrivyModal as g}from"../hooks/modal-context.mjs";import"../components/Loader.mjs";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/internal-context.mjs";import"../hooks/index.mjs";import"../errors.mjs";import"ofetch";import"../utils/index.mjs";import"@ethersproject/providers";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../components/PrefetchedImage.mjs";const y=()=>{let{lastScreen:m,currentScreen:y,data:k,navigateBack:b,navigate:x,setModalData:v}=g(),{status:w,token:I,waitForResult:S,reset:R,execute:T}=j(),A=s([]),N=o=>{A.current=[o,...A.current]},[M,E]=c(!0);a((()=>(N(setTimeout(E,1e3,!1)),()=>{A.current.forEach((o=>clearTimeout(o))),A.current=[]})),[]);let[L,P]=c(""),[q,D]=c("Checking that you are a human..."),[F,H]=c(/*#__PURE__*/o(p,{onClick:()=>{},disabled:!0,children:"Continue"})),[z,B]=c(!1),[X,G]=c(3),O=k?.captchaModalData,Q=async o=>{try{await(O?.callback(o)),O?.onSuccessNavigateTo&&x(O?.onSuccessNavigateTo,!1)}catch(o){if(o instanceof f)return;v({errorModalData:{error:o,previousScreen:m||r.LANDING}}),x(O?.onErrorNavigateTo||r.ERROR_SCREEN,!1)}};a((()=>{"success"===w?N(setTimeout((async()=>{let o=await S();!o||O?.userIntentRequired||Q(o)}),1e3)):"ready"===w&&N(setTimeout((()=>{"ready"===w&&T()}),500))}),[w]),a((()=>{if(!M)switch(w){case"success":P("Success!"),D("CAPTCHA passed successfully."),H(/*#__PURE__*/o(p,{onClick:()=>{B(!0),Q(I)},disabled:!O?.userIntentRequired,loading:z,children:O?.userIntentRequired?"Continue":"Continuing..."}));break;case"loading":P(""),D("Checking that you are a human..."),H(/*#__PURE__*/o(p,{onClick:()=>{},disabled:!0,children:"Continue"}));break;case"error":P("Something went wrong"),X<=0?(D("If you use an adblocker or VPN, try disabling and re-attempting."),H(null)):(D("You did not pass CAPTCHA. Please try again."),H(/*#__PURE__*/o(p,{onClick:V,children:"Retry"})))}}),[w,M,z]);let V=async()=>{if(X<=0)return;G((o=>o-1)),R(),T();let o=await S();!o||O?.userIntentRequired||Q(o)};/*#__PURE__*/return t(e,{children:[/*#__PURE__*/o(u,{backFn:m&&y!==m?b:void 0}),/*#__PURE__*/t(C,{children:["success"===w?/*#__PURE__*/o(n,{fill:"var(--privy-color-success)",width:"64px",height:"64px"}):"error"===w?/*#__PURE__*/o(i,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}):/*#__PURE__*/o(d,{}),/*#__PURE__*/t(l,{children:[L?/*#__PURE__*/o("h3",{children:L}):null,/*#__PURE__*/o("p",{children:q})]}),F]}),/*#__PURE__*/o(h,{})]})};let C=/*#__PURE__*/m.div.withConfig({displayName:"CaptchaContainer",componentId:"sc-9afcf974-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{y as CaptchaScreen};
1
+ import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{ModalScreen as n}from"./index.mjs";import r from"@heroicons/react/24/solid/CheckCircleIcon";import i from"@heroicons/react/24/solid/XCircleIcon";import{useRef as s,useState as c,useEffect as a}from"react";import{styled as m}from"styled-components";import{PrimaryButton as p}from"../components/Button.mjs";import{FixedGappedContainer as l}from"../components/Layouts.mjs";import{ModalFooter as h}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{WrappedLoader as d}from"../components/WrappedLoader.mjs";import{useCaptcha as j,CaptchaError as f}from"../hooks/captcha-context.mjs";import{usePrivyModal as g}from"../hooks/modal-context.mjs";import"../components/Loader.mjs";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/internal-context.mjs";import"../hooks/index.mjs";import"../errors.mjs";import"ofetch";import"../utils/index.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../utils/eth/getPublicClient.mjs";import"viem";import"../components/PrefetchedImage.mjs";const y=()=>{let{lastScreen:m,currentScreen:y,data:k,navigateBack:b,navigate:x,setModalData:v}=g(),{status:w,token:I,waitForResult:S,reset:R,execute:T}=j(),A=s([]),N=o=>{A.current=[o,...A.current]},[M,P]=c(!0);a((()=>(N(setTimeout(P,1e3,!1)),()=>{A.current.forEach((o=>clearTimeout(o))),A.current=[]})),[]);let[E,L]=c(""),[q,D]=c("Checking that you are a human..."),[F,H]=c(/*#__PURE__*/o(p,{onClick:()=>{},disabled:!0,children:"Continue"})),[z,B]=c(!1),[X,G]=c(3),O=k?.captchaModalData,Q=async o=>{try{await(O?.callback(o)),O?.onSuccessNavigateTo&&x(O?.onSuccessNavigateTo,!1)}catch(o){if(o instanceof f)return;v({errorModalData:{error:o,previousScreen:m||n.LANDING}}),x(O?.onErrorNavigateTo||n.ERROR_SCREEN,!1)}};a((()=>{"success"===w?N(setTimeout((async()=>{let o=await S();!o||O?.userIntentRequired||Q(o)}),1e3)):"ready"===w&&N(setTimeout((()=>{"ready"===w&&T()}),500))}),[w]),a((()=>{if(!M)switch(w){case"success":L("Success!"),D("CAPTCHA passed successfully."),H(/*#__PURE__*/o(p,{onClick:()=>{B(!0),Q(I)},disabled:!O?.userIntentRequired,loading:z,children:O?.userIntentRequired?"Continue":"Continuing..."}));break;case"loading":L(""),D("Checking that you are a human..."),H(/*#__PURE__*/o(p,{onClick:()=>{},disabled:!0,children:"Continue"}));break;case"error":L("Something went wrong"),X<=0?(D("If you use an adblocker or VPN, try disabling and re-attempting."),H(null)):(D("You did not pass CAPTCHA. Please try again."),H(/*#__PURE__*/o(p,{onClick:V,children:"Retry"})))}}),[w,M,z]);let V=async()=>{if(X<=0)return;G((o=>o-1)),R(),T();let o=await S();!o||O?.userIntentRequired||Q(o)};/*#__PURE__*/return t(e,{children:[/*#__PURE__*/o(u,{backFn:m&&y!==m?b:void 0}),/*#__PURE__*/t(C,{children:["success"===w?/*#__PURE__*/o(r,{fill:"var(--privy-color-success)",width:"64px",height:"64px"}):"error"===w?/*#__PURE__*/o(i,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}):/*#__PURE__*/o(d,{}),/*#__PURE__*/t(l,{children:[E?/*#__PURE__*/o("h3",{children:E}):null,/*#__PURE__*/o("p",{children:q})]}),F]}),/*#__PURE__*/o(h,{})]})};let C=/*#__PURE__*/m.div.withConfig({displayName:"CaptchaContainer",componentId:"sc-9afcf974-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{y as CaptchaScreen};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as t,jsx as e}from"react/jsx-runtime";import{BlobbyFooter as n}from"../components/ModalFooter.mjs";import{ModalHeader as s}from"../components/ModalHeader.mjs";import{PaddedScreenHeader as i}from"../components/ScreenHeader.mjs";import{usePrivyInternal as r}from"../hooks/internal-context.mjs";import{usePrivyModal as m}from"../hooks/modal-context.mjs";import{formatWalletAddress as c}from"../utils/index.mjs";import{toWalletButtons as a,WalletButtonList as p}from"./LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as l}from"./LandingScreen/styles.mjs";import"styled-components";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"@ethersproject/providers";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"./LandingScreen/EmptyWalletView.mjs";import"./LandingScreen/WalletButton.mjs";import"react-device-detect";import"../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../lib/external-wallets/displayHelpers.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../lib/isEmbeddedWebview.mjs";import"../recent-login/context.mjs";import"../hooks/events-context.mjs";import"../storage.mjs";const j=()=>{let{app:j,data:h}=m(),d=h?.externalConnectWallet?.suggestedAddress,g=d?`Connect the wallet with address ${c(d)} ${j?.name?`to ${j.name}.`:"."}`:`Connect a wallet to ${j?.name}`,{connectors:u}=r(),w=a({walletList:h?.externalConnectWallet?.walletList??j.appearance.walletList,walletChainType:j.appearance.walletChainType,connectors:u,connectOnly:!0,ignore:j.appearance.walletList,walletConnectEnabled:j.externalWallets.walletConnect.enabled});/*#__PURE__*/return o(t,{children:[/*#__PURE__*/e(s,{},"header"),w.length>0&&/*#__PURE__*/e(i,{title:"Connect your wallet",description:g}),/*#__PURE__*/e(l,{children:/*#__PURE__*/e(p,{wallets:w})}),/*#__PURE__*/e(n,{})]})};export{j as ConnectOnlyAuthenticatedScreen};
1
+ import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import{BlobbyFooter as e}from"../components/ModalFooter.mjs";import{ModalHeader as i}from"../components/ModalHeader.mjs";import{PaddedScreenHeader as s}from"../components/ScreenHeader.mjs";import{usePrivyInternal as r}from"../hooks/internal-context.mjs";import{usePrivyModal as m}from"../hooks/modal-context.mjs";import{formatWalletAddress as c}from"../utils/index.mjs";import{toWalletButtons as a,WalletButtonList as p}from"./LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as l}from"./LandingScreen/styles.mjs";import"styled-components";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"../utils/eth/getPublicClient.mjs";import"viem";import"./LandingScreen/EmptyWalletView.mjs";import"./LandingScreen/WalletButton.mjs";import"react-device-detect";import"../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../lib/external-wallets/displayHelpers.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../lib/isEmbeddedWebview.mjs";import"../recent-login/context.mjs";import"../hooks/events-context.mjs";import"../storage.mjs";const j=()=>{let{app:j,data:h}=m(),d=h?.externalConnectWallet?.suggestedAddress,g=d?`Connect the wallet with address ${c(d)} ${j?.name?`to ${j.name}.`:"."}`:`Connect a wallet to ${j?.name}`,{connectors:u}=r(),w=a({walletList:h?.externalConnectWallet?.walletList??j.appearance.walletList,walletChainType:j.appearance.walletChainType,connectors:u,connectOnly:!0,ignore:j.appearance.walletList,walletConnectEnabled:j.externalWallets.walletConnect.enabled});/*#__PURE__*/return o(t,{children:[/*#__PURE__*/n(i,{},"header"),w.length>0&&/*#__PURE__*/n(s,{title:"Connect your wallet",description:g}),/*#__PURE__*/n(l,{children:/*#__PURE__*/n(p,{wallets:w})}),/*#__PURE__*/n(e,{})]})};export{j as ConnectOnlyAuthenticatedScreen};
@@ -1 +1 @@
1
- import{jsxs as o,jsx as t,Fragment as e}from"react/jsx-runtime";import{TermsAndConditions as n,BlobbyFooter as s}from"../components/ModalFooter.mjs";import{ModalHeader as i}from"../components/ModalHeader.mjs";import{ScreenHeader as r}from"../components/ScreenHeader.mjs";import{Address as m}from"../components/ui/wallet/Address.mjs";import{usePrivyInternal as c}from"../hooks/internal-context.mjs";import{usePrivyModal as a}from"../hooks/modal-context.mjs";import{toWalletButtons as p,WalletButtonList as l}from"./LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as j}from"./LandingScreen/styles.mjs";import"styled-components";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../utils/index.mjs";import"@ethersproject/providers";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"./LandingScreen/EmptyWalletView.mjs";import"./LandingScreen/WalletButton.mjs";import"react-device-detect";import"../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../lib/external-wallets/displayHelpers.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../lib/isEmbeddedWebview.mjs";import"../recent-login/context.mjs";import"../hooks/events-context.mjs";import"../storage.mjs";const h=()=>{let{app:h,data:d}=a(),g=d?.externalConnectWallet?.suggestedAddress,u=g?/*#__PURE__*/o("span",{children:["Connect the wallet with address ",/*#__PURE__*/t(m,{showCopyIcon:!1,address:g})," ",h?.name?`to ${h.name}.`:"."]}):`Connect a wallet to your ${h?.name} account`,{connectors:w}=c(),b=p({walletList:d?.externalConnectWallet?.walletList??h.appearance.walletList,walletChainType:h.appearance.walletChainType,connectors:w,connectOnly:!0,ignore:h.appearance.walletList,walletConnectEnabled:h.externalWallets.walletConnect.enabled});/*#__PURE__*/return o(e,{children:[/*#__PURE__*/t(i,{},"header"),b.length>0&&/*#__PURE__*/t(r,{title:"Connect your wallet",description:u}),/*#__PURE__*/t(j,{children:/*#__PURE__*/t(l,{wallets:b})}),h&&/*#__PURE__*/t(n,{app:h,alwaysShowImplicitConsent:!0}),/*#__PURE__*/t(s,{})]})};export{h as ConnectOnlyLandingScreen};
1
+ import{jsxs as o,jsx as t,Fragment as n}from"react/jsx-runtime";import{TermsAndConditions as e,BlobbyFooter as i}from"../components/ModalFooter.mjs";import{ModalHeader as s}from"../components/ModalHeader.mjs";import{ScreenHeader as r}from"../components/ScreenHeader.mjs";import{Address as m}from"../components/ui/wallet/Address.mjs";import{usePrivyInternal as c}from"../hooks/internal-context.mjs";import{usePrivyModal as a}from"../hooks/modal-context.mjs";import{toWalletButtons as p,WalletButtonList as l}from"./LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as j}from"./LandingScreen/styles.mjs";import"styled-components";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../utils/index.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"../utils/eth/getPublicClient.mjs";import"viem";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"./LandingScreen/EmptyWalletView.mjs";import"./LandingScreen/WalletButton.mjs";import"react-device-detect";import"../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../lib/external-wallets/displayHelpers.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../lib/isEmbeddedWebview.mjs";import"../recent-login/context.mjs";import"../hooks/events-context.mjs";import"../storage.mjs";const h=()=>{let{app:h,data:d}=a(),g=d?.externalConnectWallet?.suggestedAddress,u=g?/*#__PURE__*/o("span",{children:["Connect the wallet with address ",/*#__PURE__*/t(m,{showCopyIcon:!1,address:g})," ",h?.name?`to ${h.name}.`:"."]}):`Connect a wallet to your ${h?.name} account`,{connectors:w}=c(),b=p({walletList:d?.externalConnectWallet?.walletList??h.appearance.walletList,walletChainType:h.appearance.walletChainType,connectors:w,connectOnly:!0,ignore:h.appearance.walletList,walletConnectEnabled:h.externalWallets.walletConnect.enabled});/*#__PURE__*/return o(n,{children:[/*#__PURE__*/t(s,{},"header"),b.length>0&&/*#__PURE__*/t(r,{title:"Connect your wallet",description:u}),/*#__PURE__*/t(j,{children:/*#__PURE__*/t(l,{wallets:b})}),h&&/*#__PURE__*/t(e,{app:h,alwaysShowImplicitConsent:!0}),/*#__PURE__*/t(i,{})]})};export{h as ConnectOnlyLandingScreen};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as s}from"react-device-detect";import{styled as i}from"styled-components";import{PrimaryButton as c}from"../components/Button.mjs";import{FixedGappedContainer as m}from"../components/Layouts.mjs";import{ModalFooter as a}from"../components/ModalFooter.mjs";import{ModalHeader as l}from"../components/ModalHeader.mjs";import{ConnectorErrors as p}from"../connectors/errors.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as j}from"../constants.mjs";import{usePrivyInternal as h}from"../hooks/internal-context.mjs";import{usePrivyModal as d}from"../hooks/modal-context.mjs";import{WALLET_UI_MAP as u}from"../lib/external-wallets/displayHelpers.mjs";import{BrowserExtensionWallet as g}from"../svg/browser-extension-wallet-icon.mjs";import{WalletLoading as w,getErrorDetails as f}from"./ConnectionStatusScreen.mjs";import"../components/Loader.mjs";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"@ethersproject/logger";import"../errors.mjs";import"ofetch";import"../errors-9ucGZPEs.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../auth-flows/siwe.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../auth-flows/siws.mjs";import"../lib/siws.mjs";import"../client/user.mjs";import"@ethersproject/address";import"../connectors/is-wallet-installed.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import"viem";import"../connectors/walletconnect-v2.mjs";import"@walletconnect/ethereum-provider";import"../utils/index.mjs";import"@ethersproject/providers";import"../connectors/ethereum/index.mjs";import"../storage.mjs";import"../connectors/areWalletArraysEqual.mjs";import"../connectors/isBaseConnectedEthereumWallet.mjs";import"../connectors/base.mjs";import"eventemitter3";import"../connectors/getRpcTimeout.mjs";import"../connectors/privyProxyProvider.mjs";import"../connectors/walletconnect-registry.mjs";import"../hook-utils/useInterval.mjs";import"../hooks/captcha-context.mjs";import"../hooks/privy-context.mjs";import"../lib/useHasTabbedAway.mjs";const y=()=>{let i,{navigateBack:y,navigate:b,lastScreen:k,currentScreen:C,data:x,setModalData:S}=d(),{walletConnectionStatus:T,closePrivyModal:A}=h(),[E,I]=n(void 0),[M,R]=n(0),W="connected"===T?.status,_="switching_to_supported_chain"===T?.status;r((()=>{if(W){let o;if(x?.externalConnectWallet?.onCompleteNavigateTo){let t=x.externalConnectWallet.onCompleteNavigateTo,e=T.connectedWallet?.address;o=setTimeout((()=>{x.funding&&S({...x,funding:{...x.funding,connectedWalletAddress:e}}),b(t({walletChainType:T.connector?.chainType}))}),j)}else o=setTimeout(A,j);return()=>clearTimeout(o)}}),[W]);r((()=>{var o;T?.connectError&&(o=T?.connectError,I(f(o)))}),[T]);let B=T?.connector?.connectorType||"injected",H=T?.connector?.walletClientType||"unknown",L=u[H]?.displayName||T?.connector?.walletBranding.name||"Browser Extension",z=u[H]?.logo||T?.connector?.walletBranding.icon||(t=>/*#__PURE__*/o(g,{...t})),F="Browser Extension"===L?L.toLowerCase():L;i=W?`Successfully connected with ${F}`:E?E.message:_?"Switching networks":`Waiting for ${F}`;let N="Don’t see your wallet? Check your other browser windows.";return W?N="You’re good to go!":M>=2&&E?N="Unable to connect wallet":E?N=E.detail:_?N="Switch your wallet to the requested network.":"metamask"===H&&s?N="Click to continue to open and connect MetaMask.":"metamask"===H?N="For the best experience, connect only one wallet at a time.":"wallet_connect_v2"===B?N="Open your mobile wallet app to continue":"coinbase_wallet"===B&&(N="Open the Coinbase app on your phone to continue."),/*#__PURE__*/t(e,{children:[/*#__PURE__*/o(l,{backFn:C===k?void 0:y}),/*#__PURE__*/t(v,{children:[/*#__PURE__*/o(w,{walletLogo:z,success:W,fail:!!E}),/*#__PURE__*/t(m,{children:[/*#__PURE__*/o("h3",{children:i}),/*#__PURE__*/o("p",{children:N})]}),E==p.ERROR_USER_EXISTS?/*#__PURE__*/o(c,{onClick:y,children:"Use a different wallet"}):!W&&E?.retryable&&M<2?/*#__PURE__*/o(c,{onClick:()=>{R(M+1),I(void 0),T?.connectRetry()},disabled:!W&&(!E?.retryable||M>=2),children:"Retry"}):!W&&E&&M>=2?/*#__PURE__*/o(c,{onClick:y,children:"Use a different wallet"}):null]}),/*#__PURE__*/o(a,{})]})};let v=/*#__PURE__*/i.div.withConfig({displayName:"ConnectContainer",componentId:"sc-1346f57-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{y as ConnectOnlyStatusScreen};
1
+ import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as i}from"react-device-detect";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../components/Button.mjs";import{FixedGappedContainer as m}from"../components/Layouts.mjs";import{ModalFooter as a}from"../components/ModalFooter.mjs";import{ModalHeader as l}from"../components/ModalHeader.mjs";import{C as p}from"../errors-l5CH-t4_.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as j}from"../constants.mjs";import{usePrivyInternal as h}from"../hooks/internal-context.mjs";import{usePrivyModal as d}from"../hooks/modal-context.mjs";import{WALLET_UI_MAP as u}from"../lib/external-wallets/displayHelpers.mjs";import{BrowserExtensionWallet as g}from"../svg/browser-extension-wallet-icon.mjs";import{WalletLoading as w,getErrorDetails as f}from"./ConnectionStatusScreen.mjs";import"../components/Loader.mjs";import"../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../hooks/index.mjs";import"../errors.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../auth-flows/siwe.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../auth-flows/siws.mjs";import"../lib/siws.mjs";import"../client/user.mjs";import"viem/utils";import"../connectors/is-wallet-installed.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import"viem";import"../connectors/walletconnect-v2.mjs";import"@walletconnect/ethereum-provider";import"../utils/index.mjs";import"../utils/eth/getPublicClient.mjs";import"../connectors/ethereum/index.mjs";import"../storage.mjs";import"../connectors/areWalletArraysEqual.mjs";import"../connectors/isBaseConnectedEthereumWallet.mjs";import"../connectors/base.mjs";import"eventemitter3";import"../connectors/getRpcTimeout.mjs";import"../connectors/privyProxyProvider.mjs";import"../connectors/walletconnect-registry.mjs";import"../hook-utils/useInterval.mjs";import"../hooks/captcha-context.mjs";import"../hooks/privy-context.mjs";import"../lib/useHasTabbedAway.mjs";const y=()=>{let s,{navigateBack:y,navigate:b,lastScreen:C,currentScreen:k,data:x,setModalData:S}=d(),{walletConnectionStatus:T,closePrivyModal:A}=h(),[E,I]=n(void 0),[M,R]=n(0),W="connected"===T?.status,_="switching_to_supported_chain"===T?.status;r((()=>{if(W){let o;if(x?.externalConnectWallet?.onCompleteNavigateTo){let t=x.externalConnectWallet.onCompleteNavigateTo,e=T.connectedWallet?.address;o=setTimeout((()=>{x.funding&&S({...x,funding:{...x.funding,connectedWalletAddress:e}}),b(t({walletChainType:T.connector?.chainType}))}),j)}else o=setTimeout(A,j);return()=>clearTimeout(o)}}),[W]);r((()=>{var o;T?.connectError&&(o=T?.connectError,I(f(o)))}),[T]);let B=T?.connector?.connectorType||"injected",H=T?.connector?.walletClientType||"unknown",L=u[H]?.displayName||T?.connector?.walletBranding.name||"Browser Extension",P=u[H]?.logo||T?.connector?.walletBranding.icon||(t=>/*#__PURE__*/o(g,{...t})),z="Browser Extension"===L?L.toLowerCase():L;s=W?`Successfully connected with ${z}`:E?E.message:_?"Switching networks":`Waiting for ${z}`;let F="Don’t see your wallet? Check your other browser windows.";return W?F="You’re good to go!":M>=2&&E?F="Unable to connect wallet":E?F=E.detail:_?F="Switch your wallet to the requested network.":"metamask"===H&&i?F="Click to continue to open and connect MetaMask.":"metamask"===H?F="For the best experience, connect only one wallet at a time.":"wallet_connect_v2"===B?F="Open your mobile wallet app to continue":"coinbase_wallet"===B&&(F="Open the Coinbase app on your phone to continue."),/*#__PURE__*/t(e,{children:[/*#__PURE__*/o(l,{backFn:k===C?void 0:y}),/*#__PURE__*/t(v,{children:[/*#__PURE__*/o(w,{walletLogo:P,success:W,fail:!!E}),/*#__PURE__*/t(m,{children:[/*#__PURE__*/o("h3",{children:s}),/*#__PURE__*/o("p",{children:F})]}),E==p.ERROR_USER_EXISTS?/*#__PURE__*/o(c,{onClick:y,children:"Use a different wallet"}):!W&&E?.retryable&&M<2?/*#__PURE__*/o(c,{onClick:()=>{R(M+1),I(void 0),T?.connectRetry()},disabled:!W&&(!E?.retryable||M>=2),children:"Retry"}):!W&&E&&M>=2?/*#__PURE__*/o(c,{onClick:y,children:"Use a different wallet"}):null]}),/*#__PURE__*/o(a,{})]})};let v=/*#__PURE__*/s.div.withConfig({displayName:"ConnectContainer",componentId:"sc-1346f57-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{y as ConnectOnlyStatusScreen};