@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
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as i}from"react-device-detect";import{styled as c}from"styled-components";import{SiweFlow as s}from"../auth-flows/siwe.mjs";import{SiwsFlow as a}from"../auth-flows/siws.mjs";import{shouldProceedtoEmbeddedWalletCreationFlow as l}from"../client/user.mjs";import{PrimaryButton as m}from"../components/Button.mjs";import{FixedGappedContainer as p}from"../components/Layouts.mjs";import{ConnectionLoader as d}from"../components/Loader.mjs";import{ModalFooter as h}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{ConnectorErrors as j,PrivyProviderRpcError as f,WalletTimeoutError as g,UserRejectedConnectionError as w}from"../connectors/errors.mjs";import{isCoinbaseWalletInstalled as E}from"../connectors/is-wallet-installed.mjs";import{userAlreadyHasConnectedCoinbaseWallet as y}from"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import{WalletConnectV2WalletConnector as C}from"../connectors/walletconnect-v2.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as _}from"../constants.mjs";import{PrivyErrorCode as v,PrivyUserLimitReachedError as b}from"../errors.mjs";import T from"../hook-utils/useInterval.mjs";import{useCaptcha as R}from"../hooks/captcha-context.mjs";import{usePrivyInternal as S}from"../hooks/internal-context.mjs";import{usePrivyModal as N}from"../hooks/modal-context.mjs";import{usePrivyContext as k}from"../hooks/privy-context.mjs";import{WALLET_UI_MAP as A}from"../lib/external-wallets/displayHelpers.mjs";import{useHasTabbedAway as O}from"../lib/useHasTabbedAway.mjs";import{BrowserExtensionWallet as x}from"../svg/browser-extension-wallet-icon.mjs";import{sleep as I}from"../utils/index.mjs";import{ModalScreen as L}from"./index.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../lib/siws.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"@ethersproject/logger";import"../errors-9ucGZPEs.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"viem";import"@walletconnect/ethereum-provider";import"../svg/metamask.mjs";import"../svg/wallet-connect.mjs";import"../connectors/ethereum/index.mjs";import"@ethersproject/providers";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"ofetch";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.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/zerion.mjs";const U=e=>e?.privyErrorCode===v.LINKED_TO_ANOTHER_USER?j.ERROR_USER_EXISTS:e instanceof f&&!e.details.default?e.details:e instanceof g?j.ERROR_TIMED_OUT:e instanceof w?j.ERROR_USER_REJECTED_CONNECTION:e?.privyErrorCode===v.CANNOT_LINK_MORE_OF_TYPE?j.ERROR_USER_LIMIT_REACHED:j.ERROR_WALLET_CONNECTION,W=()=>{let c,[d,f]=n(!1),[g,w]=n(!1),[W,D]=n(void 0),{authenticated:H,logout:B}=k(),{app:P,navigate:z,navigateBack:X,lastScreen:q,currentScreen:J,setModalData:K,data:$}=N(),{getAuthFlow:Q,walletConnectionStatus:Y,closePrivyModal:G,initLoginWithWallet:V,loginWithWallet:Z,updateWallets:ee,createAnalyticsEvent:oe}=S(),{walletConnectors:te}=k(),[ne,re]=n(0),{user:ie}=k(),[ce]=n(ie?.linkedAccounts.length||0),[se,ae]=n(""),[le,me]=n(""),[pe,de]=n(!1),{hasTabbedAway:he}=O(),{enabled:ue,token:je}=R(),fe=i&&"wallet_connect_v2"===Y?.connector?.connectorType||i&&"coinbase_wallet"===Y?.connector?.connectorType||i&&"injected"===Y?.connector?.connectorType&&"phantom"===Y?.connector?.walletClientType,ge="connected"===Y?.status,we="switching_to_supported_chain"===Y?.status;r((()=>{let e=Q(),o=e instanceof s||e instanceof a?e:void 0;ge&&!o&&(!ue||je||H?V(Y.connectedWallet,je,$?.login?.disableSignup).then((()=>{de(!0)})):(K({captchaModalData:{callback:e=>V(Y.connectedWallet,e,$?.login?.disableSignup).then((()=>{de(!0)})),userIntentRequired:!1,onSuccessNavigateTo:L.AWAITING_CONNECTION,onErrorNavigateTo:L.ERROR_SCREEN}}),z(L.CAPTCHA_SCREEN,!1))),o&&fe&&ge&&!o.preparedMessage?o.buildMessage():o&&!fe&&ge&&(g||(async()=>{w(!0),D(void 0);try{"wallet_connect_v2"===Y?.connector?.connectorType&&"metamask"===Y?.connector?.walletClientType&&await I(2500),await ye()}catch(e){console.warn("Auto-prompted signature failed",e)}finally{w(!1)}})())}),[ne,ge,pe]),r((()=>{if(ie&&d){let e=_-500;if(P?.legal.requireUsersAcceptTerms&&!ie.hasAcceptedTerms){let o=setTimeout((()=>{z(L.AFFIRMATIVE_CONSENT_SCREEN)}),e);return()=>clearTimeout(o)}if(l(ie,P?.embeddedWallets?.createOnLogin)){let o=setTimeout((()=>{K({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),oe({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"ConnectionStatusScreen"}}),B()},callAuthOnSuccessOnClose:!0}}),z(L.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),e);return()=>clearTimeout(o)}ee();let o=setTimeout((()=>G({shouldCallAuthOnSuccess:!0,isSuccess:!0})),_);return()=>clearTimeout(o)}}),[ie,d]);let Ee=e=>{if(e?.privyErrorCode!==v.ALLOWLIST_REJECTED){if(e?.privyErrorCode===v.USER_LIMIT_REACHED)return console.error(new b(e).toString()),void z(L.USER_LIMIT_REACHED_SCREEN);if(e?.privyErrorCode!==v.USER_DOES_NOT_EXIST)return e?.privyErrorCode===v.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce?(K({accountTransfer:{nonce:e.data?.data?.nonce,account:Q()?.meta.address,displayName:e.data?.data?.account?.displayName,externalWalletMetadata:{walletClientType:Q()?.meta.walletClientType,chainId:Q()?.meta.chainId,connectorType:Q()?.meta.connectorType},linkMethod:"siwe",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void z(L.LINK_CONFLICT_SCREEN)):void D(U(e));z(L.ACCOUNT_NOT_FOUND_SCREEN)}else z(L.ALLOWLIST_REJECTION_SCREEN)};async function ye(){try{await Z(),f(!0)}catch(e){Ee(e)}finally{w(!1)}}r((()=>{Y?.connectError&&Ee(Y?.connectError)}),[Y]),T((()=>{let e="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.redirectUri:void 0;e&&ae(e);let o="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.fallbackUniversalRedirectUri:void 0;o&&me(o)}),Y?.connector instanceof C&&!se?500:null);let Ce=Y?.connector?.connectorType||"injected",_e=Y?.connector?.walletClientType||"unknown",ve=A[_e]?.displayName||Y?.connector?.walletBranding.name||"Browser Extension",be=A[_e]?.logo||Y?.connector?.walletBranding.icon||(o=>/*#__PURE__*/e(x,{...o})),Te="Browser Extension"===ve?ve.toLowerCase():ve;c=d?`Successfully connected with ${Te}`:W?W.message:we?"Switching networks":ge?g&&fe?"Signing":"Sign to verify":`Waiting for ${Te}`;let Re="Don’t see your wallet? Check your other browser windows.";d?Re=ce===(ie?.linkedAccounts.length||0)?"Wallet was already linked.":"You’re good to go!":ne>=2&&W?Re="Unable to connect wallet":W?Re=W.detail:we?Re="Switch your wallet to the requested network.":ge&&fe?Re="Sign the message in your wallet to verify it belongs to you.":"metamask"===_e&&i?Re="Click continue to open and connect MetaMask.":"metamask"===_e?Re="For the best experience, connect only one wallet at a time.":"wallet_connect"===Ce?Re="Open your mobile wallet app to continue":"coinbase_wallet"!==Ce||E()||(Re=y(ie)?"Continue with the Coinbase app. Not the right wallet? Reset your connection below.":"Open the Coinbase app on your phone to continue.");let Se=te?.walletConnectors?.find((e=>"coinbase_wallet"===e.walletClientType)),Ne="coinbase_wallet"===_e&&(y(ie)||W===j.ERROR_USER_EXISTS);/*#__PURE__*/return o(t,{children:[/*#__PURE__*/e(u,{backFn:q&&J!==q?X:void 0}),/*#__PURE__*/o(M,{children:[/*#__PURE__*/e(F,{walletLogo:be,success:d,fail:!!W}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/e("h3",{children:c}),/*#__PURE__*/e("p",{children:Re}),ge||!se||he?null:/*#__PURE__*/o("p",{children:["Still here?"," ",/*#__PURE__*/e("a",{href:se,target:"_blank",style:{textDecoration:"underline"},children:"Try connecting again"}),le&&/*#__PURE__*/o(t,{children:[" ","or"," ",/*#__PURE__*/e("a",{href:le,target:"_blank",style:{textDecoration:"underline"},children:"use this different link"})]})]})]}),Ne?/*#__PURE__*/e(m,{onClick:()=>Se&&Se?.disconnect(),disabled:d,children:"Use a different wallet"}):W==j.ERROR_USER_EXISTS&&J!==q?/*#__PURE__*/e(m,{onClick:X,children:"Use a different wallet"}):ge&&!d&&fe?/*#__PURE__*/e(m,{onClick:()=>{w(!0),ye()},disabled:g,children:g?"Signing":"Sign with your wallet"}):!d&&W?.retryable&&ne<2?/*#__PURE__*/e(m,{onClick:()=>{re(ne+1),D(void 0),ge?(w(!0),ye()):Y?.connectRetry()},disabled:!d&&(!W?.retryable||ne>=2),children:"Retry"}):d||W?null:/*#__PURE__*/e(m,{onClick:()=>{},disabled:!0,children:"Connecting"})]}),/*#__PURE__*/e(h,{})]})};let M=/*#__PURE__*/c.div.withConfig({displayName:"ConnectContainer",componentId:"sc-afad057-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]),D=/*#__PURE__*/c.div.withConfig({displayName:"StackedContainer",componentId:"sc-afad057-1"})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:82px;> div{position:relative;}> div > span{position:absolute;left:-41px;top:-41px;}> div > :last-child{position:absolute;left:-19px;top:-19px;}"]);const F=n=>{let r=n.walletLogo;/*#__PURE__*/return e(t,{children:/*#__PURE__*/e(D,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/e(d,{success:n.success,fail:n.fail}),"string"==typeof r?
1
+ import{jsx as e,jsxs as o,Fragment as t}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{SiweFlow as c}from"../auth-flows/siwe.mjs";import{SiwsFlow as a}from"../auth-flows/siws.mjs";import{shouldProceedtoEmbeddedWalletCreationFlow as l}from"../client/user.mjs";import{PrimaryButton as m}from"../components/Button.mjs";import{FixedGappedContainer as p}from"../components/Layouts.mjs";import{ConnectionLoader as d}from"../components/Loader.mjs";import{ModalFooter as h}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{C as f,P as j,W as g,U as w}from"../errors-l5CH-t4_.mjs";import{isCoinbaseWalletInstalled as E}from"../connectors/is-wallet-installed.mjs";import{userAlreadyHasConnectedCoinbaseWallet as y}from"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import{WalletConnectV2WalletConnector as C}from"../connectors/walletconnect-v2.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as _}from"../constants.mjs";import{PrivyErrorCode as v,PrivyUserLimitReachedError as b}from"../errors.mjs";import T from"../hook-utils/useInterval.mjs";import{useCaptcha as R}from"../hooks/captcha-context.mjs";import{usePrivyInternal as S}from"../hooks/internal-context.mjs";import{usePrivyModal as N}from"../hooks/modal-context.mjs";import{usePrivyContext as k}from"../hooks/privy-context.mjs";import{WALLET_UI_MAP as A}from"../lib/external-wallets/displayHelpers.mjs";import{useHasTabbedAway as O}from"../lib/useHasTabbedAway.mjs";import{BrowserExtensionWallet as x}from"../svg/browser-extension-wallet-icon.mjs";import{sleep as I}from"../utils/index.mjs";import{ModalScreen as L}from"./index.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../lib/siws.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"../connectors/get-legacy-injected-providers.mjs";import"viem";import"@walletconnect/ethereum-provider";import"../svg/metamask.mjs";import"../svg/wallet-connect.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"ofetch";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.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/zerion.mjs";import"../utils/eth/getPublicClient.mjs";const U=e=>e?.privyErrorCode===v.LINKED_TO_ANOTHER_USER?f.ERROR_USER_EXISTS:e instanceof j&&!e.details.default?e.details:e instanceof g?f.ERROR_TIMED_OUT:e instanceof w?f.ERROR_USER_REJECTED_CONNECTION:e?.privyErrorCode===v.CANNOT_LINK_MORE_OF_TYPE?f.ERROR_USER_LIMIT_REACHED:f.ERROR_WALLET_CONNECTION,W=()=>{let s,[d,j]=n(!1),[g,w]=n(!1),[W,D]=n(void 0),{authenticated:H,logout:B}=k(),{app:P,navigate:z,navigateBack:X,lastScreen:q,currentScreen:J,setModalData:K,data:$}=N(),{getAuthFlow:Q,walletConnectionStatus:Y,closePrivyModal:G,initLoginWithWallet:V,loginWithWallet:Z,updateWallets:ee,createAnalyticsEvent:oe}=S(),{walletConnectors:te}=k(),[ne,re]=n(0),{user:ie}=k(),[se]=n(ie?.linkedAccounts.length||0),[ce,ae]=n(""),[le,me]=n(""),[pe,de]=n(!1),{hasTabbedAway:he}=O(),{enabled:ue,token:fe}=R(),je=i&&"wallet_connect_v2"===Y?.connector?.connectorType||i&&"coinbase_wallet"===Y?.connector?.connectorType||i&&"injected"===Y?.connector?.connectorType&&"phantom"===Y?.connector?.walletClientType,ge="connected"===Y?.status,we="switching_to_supported_chain"===Y?.status;r((()=>{let e=Q(),o=e instanceof c||e instanceof a?e:void 0;ge&&!o&&(!ue||fe||H?V(Y.connectedWallet,fe,$?.login?.disableSignup).then((()=>{de(!0)})):(K({captchaModalData:{callback:e=>V(Y.connectedWallet,e,$?.login?.disableSignup).then((()=>{de(!0)})),userIntentRequired:!1,onSuccessNavigateTo:L.AWAITING_CONNECTION,onErrorNavigateTo:L.ERROR_SCREEN}}),z(L.CAPTCHA_SCREEN,!1))),o&&je&&ge&&!o.preparedMessage?o.buildMessage():o&&!je&&ge&&(g||(async()=>{w(!0),D(void 0);try{"wallet_connect_v2"===Y?.connector?.connectorType&&"metamask"===Y?.connector?.walletClientType&&await I(2500),await ye()}catch(e){console.warn("Auto-prompted signature failed",e)}finally{w(!1)}})())}),[ne,ge,pe]),r((()=>{if(ie&&d){let e=_-500;if(P?.legal.requireUsersAcceptTerms&&!ie.hasAcceptedTerms){let o=setTimeout((()=>{z(L.AFFIRMATIVE_CONSENT_SCREEN)}),e);return()=>clearTimeout(o)}if(l(ie,P?.embeddedWallets?.createOnLogin)){let o=setTimeout((()=>{K({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),oe({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"ConnectionStatusScreen"}}),B()},callAuthOnSuccessOnClose:!0}}),z(L.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),e);return()=>clearTimeout(o)}ee();let o=setTimeout((()=>G({shouldCallAuthOnSuccess:!0,isSuccess:!0})),_);return()=>clearTimeout(o)}}),[ie,d]);let Ee=e=>{if(e?.privyErrorCode!==v.ALLOWLIST_REJECTED){if(e?.privyErrorCode===v.USER_LIMIT_REACHED)return console.error(new b(e).toString()),void z(L.USER_LIMIT_REACHED_SCREEN);if(e?.privyErrorCode!==v.USER_DOES_NOT_EXIST)return e?.privyErrorCode===v.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce?(K({accountTransfer:{nonce:e.data?.data?.nonce,account:Q()?.meta.address,displayName:e.data?.data?.account?.displayName,externalWalletMetadata:{walletClientType:Q()?.meta.walletClientType,chainId:Q()?.meta.chainId,connectorType:Q()?.meta.connectorType},linkMethod:"siwe",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void z(L.LINK_CONFLICT_SCREEN)):void D(U(e));z(L.ACCOUNT_NOT_FOUND_SCREEN)}else z(L.ALLOWLIST_REJECTION_SCREEN)};async function ye(){try{await Z(),j(!0)}catch(e){Ee(e)}finally{w(!1)}}r((()=>{Y?.connectError&&Ee(Y?.connectError)}),[Y]),T((()=>{let e="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.redirectUri:void 0;e&&ae(e);let o="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.fallbackUniversalRedirectUri:void 0;o&&me(o)}),Y?.connector instanceof C&&!ce?500:null);let Ce=Y?.connector?.connectorType||"injected",_e=Y?.connector?.walletClientType||"unknown",ve=A[_e]?.displayName||Y?.connector?.walletBranding.name||"Browser Extension",be=A[_e]?.logo||Y?.connector?.walletBranding.icon||(o=>/*#__PURE__*/e(x,{...o})),Te="Browser Extension"===ve?ve.toLowerCase():ve;s=d?`Successfully connected with ${Te}`:W?W.message:we?"Switching networks":ge?g&&je?"Signing":"Sign to verify":`Waiting for ${Te}`;let Re="Don’t see your wallet? Check your other browser windows.";d?Re=se===(ie?.linkedAccounts.length||0)?"Wallet was already linked.":"You’re good to go!":ne>=2&&W?Re="Unable to connect wallet":W?Re=W.detail:we?Re="Switch your wallet to the requested network.":ge&&je?Re="Sign the message in your wallet to verify it belongs to you.":"metamask"===_e&&i?Re="Click continue to open and connect MetaMask.":"metamask"===_e?Re="For the best experience, connect only one wallet at a time.":"wallet_connect"===Ce?Re="Open your mobile wallet app to continue":"coinbase_wallet"!==Ce||E()||(Re=y(ie)?"Continue with the Coinbase app. Not the right wallet? Reset your connection below.":"Open the Coinbase app on your phone to continue.");let Se=te?.walletConnectors?.find((e=>"coinbase_wallet"===e.walletClientType)),Ne="coinbase_wallet"===_e&&(y(ie)||W===f.ERROR_USER_EXISTS);/*#__PURE__*/return o(t,{children:[/*#__PURE__*/e(u,{backFn:q&&J!==q?X:void 0}),/*#__PURE__*/o(M,{children:[/*#__PURE__*/e(F,{walletLogo:be,success:d,fail:!!W}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/e("h3",{children:s}),/*#__PURE__*/e("p",{children:Re}),ge||!ce||he?null:/*#__PURE__*/o("p",{children:["Still here?"," ",/*#__PURE__*/e("a",{href:ce,target:"_blank",style:{textDecoration:"underline"},children:"Try connecting again"}),le&&/*#__PURE__*/o(t,{children:[" ","or"," ",/*#__PURE__*/e("a",{href:le,target:"_blank",style:{textDecoration:"underline"},children:"use this different link"})]})]})]}),Ne?/*#__PURE__*/e(m,{onClick:()=>Se&&Se?.disconnect(),disabled:d,children:"Use a different wallet"}):W==f.ERROR_USER_EXISTS&&J!==q?/*#__PURE__*/e(m,{onClick:X,children:"Use a different wallet"}):ge&&!d&&je?/*#__PURE__*/e(m,{onClick:()=>{w(!0),ye()},disabled:g,children:g?"Signing":"Sign with your wallet"}):!d&&W?.retryable&&ne<2?/*#__PURE__*/e(m,{onClick:()=>{re(ne+1),D(void 0),ge?(w(!0),ye()):Y?.connectRetry()},disabled:!d&&(!W?.retryable||ne>=2),children:"Retry"}):d||W?null:/*#__PURE__*/e(m,{onClick:()=>{},disabled:!0,children:"Connecting"})]}),/*#__PURE__*/e(h,{})]})};let M=/*#__PURE__*/s.div.withConfig({displayName:"ConnectContainer",componentId:"sc-afad057-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]),D=/*#__PURE__*/s.div.withConfig({displayName:"StackedContainer",componentId:"sc-afad057-1"})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:82px;> div{position:relative;}> div > span{position:absolute;left:-41px;top:-41px;}> div > :last-child{position:absolute;left:-19px;top:-19px;}"]);const F=n=>{let r=n.walletLogo;/*#__PURE__*/return e(t,{children:/*#__PURE__*/e(D,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/e(d,{success:n.success,fail:n.fail}),"string"==typeof r?
2
2
  /*#__PURE__*/e("span",{style:{background:`url('${r}')`,height:"38px",width:"38px",borderRadius:"6px",margin:"auto",backgroundSize:"cover"}}):/*#__PURE__*/e(r,{style:{width:"38px",height:"38px"}})]})})})};export{W as ConnectionStatusScreen,F as WalletLoading,U as getErrorDetails};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import{useState as r,useEffect as n,useMemo as s}from"react";import{styled as i}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as c}from"../client/user.mjs";import{RefactorSpacerTop as m,FixedGappedContainer as a,RefactorSpacerBottom as p}from"../components/Layouts.mjs";import{ConnectionLoader as l}from"../components/Loader.mjs";import{ModalFooter as u}from"../components/ModalFooter.mjs";import{ModalHeader as h}from"../components/ModalHeader.mjs";import{ProviderAppLogo as d}from"../components/ProviderAppLogo.mjs";import j from"../components/layout/StackedContainer.mjs";import{useAppConfig as f}from"../configuration/context.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as g}from"../constants.mjs";import{RunEffectOnce as y}from"../effect.mjs";import{PrivyClientError as A,PrivyApiError as C}from"../errors.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as x}from"../hooks/modal-context.mjs";import{useLogout as S}from"../hooks/useLogout.mjs";import{ModalScreen as T}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"../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";import"../hooks/events-context.mjs";import"../hooks/privy-context.mjs";const v=()=>{let i=f(),{data:v,navigate:k,setModalData:w,onUserCloseViaDialogOrKeybindRef:_}=x(),{crossAppAuthFlow:I,updateWallets:O,closePrivyModal:L,createAnalyticsEvent:M}=b(),{logout:N}=S(),[U,F]=r({}),R=v?.crossAppAuth,D={id:R.appId,name:R.name,logoUrl:R.logoUrl},P=new A(`There was an issue connecting your ${D.name} account. Please try again.`),$=new y((async o=>{if(R.popup)try{let e=await I({appId:o,popup:R.popup,action:R.action});F({data:e})}catch(o){o instanceof A?F({error:o}):(o instanceof C&&R.popup&&R.popup.close(),F({error:P}))}else F({error:P})})),W=()=>{U.data&&(O(),R.onSuccess(U.data),L({shouldCallAuthOnSuccess:!0,isSuccess:!0})),R.onError(U.error??new A("User canceled flow")),L({shouldCallAuthOnSuccess:!1,isSuccess:!1})};_.current=W,n((()=>{D.id.length&&$.execute(D.id)}),[D.id]),n((()=>{if(!U.data)return;let o=U.data;if(i.legal.requireUsersAcceptTerms&&!o.hasAcceptedTerms){let o=setTimeout((()=>{k(T.AFFIRMATIVE_CONSENT_SCREEN)}),g);return()=>clearTimeout(o)}if(c(o,i.embeddedWallets?.createOnLogin)){let o=setTimeout((()=>{w({createWallet:{onSuccess:()=>{},onFailure:o=>{console.error(o),M({eventName:"embedded_wallet_creation_failure_logout",payload:{error:o,provider:`privy:${D.id}`,screen:"CrossAppAuthScreen"}}),N()},callAuthOnSuccessOnClose:!0}}),k(T.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),g);return()=>clearTimeout(o)}let e=setTimeout(W,g);return()=>clearTimeout(e)}),[U.data]);let{title:z,subtitle:H}=s((()=>U.data?{title:`Successfully connected with ${D.name}`,subtitle:"You're good to go!"}:U.error?{title:"Authentication failed",subtitle:U.error.message}:{title:`Connecting to ${D.name}`,subtitle:`Please check the pop-up from ${D.name} to continue`}),[U,D.name]);/*#__PURE__*/return o(e,{children:[/*#__PURE__*/t(h,{onClose:W}),/*#__PURE__*/t(m,{}),/*#__PURE__*/o(E,{children:[/*#__PURE__*/t(j,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(l,{success:!!U.data,fail:!!U.error}),/*#__PURE__*/t(d,{name:D.name,logoUrl:D.logoUrl})]})}),/*#__PURE__*/o(a,{children:[/*#__PURE__*/t("h3",{children:z}),/*#__PURE__*/t("p",{children:H})]})]}),/*#__PURE__*/t(p,{}),/*#__PURE__*/t(u,{})]})};let E=/*#__PURE__*/i.div.withConfig({displayName:"ConnectContainer",componentId:"sc-2ae0702a-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:27px;margin-right:27px;gap:24px;"]);export{v as CrossAppAuthScreen};
1
+ import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import{useState as r,useEffect as n,useMemo as i}from"react";import{styled as s}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as c}from"../client/user.mjs";import{RefactorSpacerTop as m,FixedGappedContainer as a,RefactorSpacerBottom as p}from"../components/Layouts.mjs";import{ConnectionLoader as l}from"../components/Loader.mjs";import{ModalFooter as u}from"../components/ModalFooter.mjs";import{ModalHeader as h}from"../components/ModalHeader.mjs";import{ProviderAppLogo as d}from"../components/ProviderAppLogo.mjs";import j from"../components/layout/StackedContainer.mjs";import{useAppConfig as f}from"../configuration/context.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as g}from"../constants.mjs";import{RunEffectOnce as y}from"../effect.mjs";import{PrivyClientError as A,PrivyApiError as C}from"../errors.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as x}from"../hooks/modal-context.mjs";import{useLogout as S}from"../hooks/useLogout.mjs";import{ModalScreen as v}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"../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";import"../hooks/events-context.mjs";import"../hooks/privy-context.mjs";const T=()=>{let s=f(),{data:T,navigate:k,setModalData:w,onUserCloseViaDialogOrKeybindRef:_}=x(),{crossAppAuthFlow:I,updateWallets:O,closePrivyModal:L,createAnalyticsEvent:M}=b(),{logout:N}=S(),[U,F]=r({}),R=T?.crossAppAuth,D={id:R.appId,name:R.name,logoUrl:R.logoUrl},P=new A(`There was an issue connecting your ${D.name} account. Please try again.`),$=new y((async o=>{if(R.popup)try{let e=await I({appId:o,popup:R.popup,action:R.action});F({data:e})}catch(o){o instanceof A?F({error:o}):(o instanceof C&&R.popup&&R.popup.close(),F({error:P}))}else F({error:P})})),W=()=>{U.data&&(O(),R.onSuccess(U.data),L({shouldCallAuthOnSuccess:!0,isSuccess:!0})),R.onError(U.error??new A("User canceled flow")),L({shouldCallAuthOnSuccess:!1,isSuccess:!1})};_.current=W,n((()=>{D.id.length&&$.execute(D.id)}),[D.id]),n((()=>{if(!U.data)return;let o=U.data;if(s.legal.requireUsersAcceptTerms&&!o.hasAcceptedTerms){let o=setTimeout((()=>{k(v.AFFIRMATIVE_CONSENT_SCREEN)}),g);return()=>clearTimeout(o)}if(c(o,s.embeddedWallets?.createOnLogin)){let o=setTimeout((()=>{w({createWallet:{onSuccess:()=>{},onFailure:o=>{console.error(o),M({eventName:"embedded_wallet_creation_failure_logout",payload:{error:o,provider:`privy:${D.id}`,screen:"CrossAppAuthScreen"}}),N()},callAuthOnSuccessOnClose:!0}}),k(v.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),g);return()=>clearTimeout(o)}let e=setTimeout(W,g);return()=>clearTimeout(e)}),[U.data]);let{title:z,subtitle:H}=i((()=>U.data?{title:`Successfully connected with ${D.name}`,subtitle:"You're good to go!"}:U.error?{title:"Authentication failed",subtitle:U.error.message}:{title:`Connecting to ${D.name}`,subtitle:`Please check the pop-up from ${D.name} to continue`}),[U,D.name]);/*#__PURE__*/return o(e,{children:[/*#__PURE__*/t(h,{onClose:W}),/*#__PURE__*/t(m,{}),/*#__PURE__*/o(E,{children:[/*#__PURE__*/t(j,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(l,{success:!!U.data,fail:!!U.error}),/*#__PURE__*/t(d,{name:D.name,logoUrl:D.logoUrl})]})}),/*#__PURE__*/o(a,{children:[/*#__PURE__*/t("h3",{children:z}),/*#__PURE__*/t("p",{children:H})]})]}),/*#__PURE__*/t(p,{}),/*#__PURE__*/t(u,{})]})};let E=/*#__PURE__*/s.div.withConfig({displayName:"ConnectContainer",componentId:"sc-2ae0702a-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:27px;margin-right:27px;gap:24px;"]);export{T as CrossAppAuthScreen};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import e from"@heroicons/react/24/outline/CheckCircleIcon";import r from"@heroicons/react/24/outline/CloudArrowUpIcon";import i from"@heroicons/react/24/outline/ExclamationCircleIcon";import{useState as s,useEffect as c}from"react";import{styled as m}from"styled-components";import{SecondaryButton as a,PrimaryButton as p}from"../components/Button.mjs";import{RefactorSpacerTop as l,HorizontallyCenteredItem as h,ConfigurableSpacer as j,RefactorSpacerBottom as d}from"../components/Layouts.mjs";import{BlobbyFooter as u}from"../components/ModalFooter.mjs";import{ModalHeader as f}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as g}from"../components/ScreenHeader.mjs";import{WalletInfoCard as y}from"../components/ui/wallet/WalletInfoCard.mjs";import{DEFAULT_SUCCESS_SCREEN_LONG_DURATION_MS as w}from"../constants.mjs";import{PrivyClientError as C}from"../errors.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as x}from"../hooks/modal-context.mjs";import{Title as k,SubTitle as v}from"./MfaScreens/StyledComponents.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"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../components/ui/layout/Column.mjs";import"../components/ui/typography/ErrorMessage.mjs";import"../components/ui/typography/LabelXs.mjs";import"../components/ui/wallet/Address.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"ofetch";import"../components/ui/wallet/shared.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";const I=()=>{let{app:m,data:y}=x(),{closePrivyModal:I}=b(),[M,L]=s(!1),[T,B]=s(),{address:E,onDelegate:W,onSuccess:z,onError:H}=y.delegatedActions.consent,N=async()=>{M?z():H(T??new C("User declined delegating actions.")),I({shouldCallAuthOnSuccess:!1})};return c((()=>{if(!M&&!T)return;let o=setTimeout(N,w);return()=>clearTimeout(o)}),[M,T]),/*#__PURE__*/o(t,M||T?{children:[/*#__PURE__*/n(f,{onClose:N}),/*#__PURE__*/n(l,{}),/*#__PURE__*/o(h,{children:[T?/*#__PURE__*/n(i,{stroke:"var(--privy-color-error)",width:"64px",height:"64px"}):/*#__PURE__*/n(e,{stroke:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/n(j,{height:20}),/*#__PURE__*/n(g,{title:T?"Something went wrong":"Success!",description:T?"Please try again.":`You’ve successfully granted delegated action permissions to ${m.name}.`})]}),/*#__PURE__*/n(d,{}),/*#__PURE__*/n(u,{})]}:{children:[/*#__PURE__*/n(f,{closeable:!0,onClose:N}),/*#__PURE__*/n(r,{width:56,height:56,style:{margin:"auto"}}),/*#__PURE__*/n(k,{style:{marginTop:24,color:"var(--privy-color-foreground)"},children:"Enable offline access"}),/*#__PURE__*/o(v,{style:{marginBottom:24,textWrap:"pretty"},children:["By confirming, ",m.name," will be able to use your wallet for you even when you're not around. You can revoke this later."]}),/*#__PURE__*/n(A,{showIcon:!0,address:E,title:"Wallet",isLoading:!1}),/*#__PURE__*/o(S,{style:{marginTop:24},children:[/*#__PURE__*/n(a,{onClick:N,children:"Not now"}),/*#__PURE__*/n(p,{onClick:async()=>{try{await W(),L(!0)}catch(o){B(o)}},children:"Accept"})]}),/*#__PURE__*/n(u,{})]})};let S=/*#__PURE__*/m.div.withConfig({displayName:"ButtonsContainer",componentId:"sc-b99bc0c0-0"})(["display:flex;gap:10px;"]),A=/*#__PURE__*/m(y).withConfig({displayName:"StyledWalletInfoCard",componentId:"sc-b99bc0c0-1"})(["margin-top:1.5rem;"]);export{I as DelegatedActionsConsentScreen};
1
+ import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import e from"@heroicons/react/24/outline/CheckCircleIcon";import r from"@heroicons/react/24/outline/CloudArrowUpIcon";import i from"@heroicons/react/24/outline/ExclamationCircleIcon";import{useState as s,useEffect as c}from"react";import{styled as m}from"styled-components";import{SecondaryButton as a,PrimaryButton as p}from"../components/Button.mjs";import{RefactorSpacerTop as l,HorizontallyCenteredItem as h,ConfigurableSpacer as j,RefactorSpacerBottom as d}from"../components/Layouts.mjs";import{BlobbyFooter as u}from"../components/ModalFooter.mjs";import{ModalHeader as g}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as f}from"../components/ScreenHeader.mjs";import{WalletInfoCard as y}from"../components/ui/wallet/WalletInfoCard.mjs";import{DEFAULT_SUCCESS_SCREEN_LONG_DURATION_MS as C}from"../constants.mjs";import{PrivyClientError as w}from"../errors.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as x}from"../hooks/modal-context.mjs";import{Title as k,SubTitle as v}from"./MfaScreens/StyledComponents.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"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../components/ui/layout/Column.mjs";import"../components/ui/typography/ErrorMessage.mjs";import"../components/ui/typography/LabelXs.mjs";import"../components/ui/wallet/Address.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"../utils/eth/getPublicClient.mjs";import"viem";import"ofetch";import"../components/ui/wallet/shared.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";const I=()=>{let{app:m,data:y}=x(),{closePrivyModal:I}=b(),[M,L]=s(!1),[T,B]=s(),{address:E,onDelegate:P,onSuccess:W,onError:z}=y.delegatedActions.consent,H=async()=>{M?W():z(T??new w("User declined delegating actions.")),I({shouldCallAuthOnSuccess:!1})};return c((()=>{if(!M&&!T)return;let o=setTimeout(H,C);return()=>clearTimeout(o)}),[M,T]),/*#__PURE__*/o(t,M||T?{children:[/*#__PURE__*/n(g,{onClose:H}),/*#__PURE__*/n(l,{}),/*#__PURE__*/o(h,{children:[T?/*#__PURE__*/n(i,{stroke:"var(--privy-color-error)",width:"64px",height:"64px"}):/*#__PURE__*/n(e,{stroke:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/n(j,{height:20}),/*#__PURE__*/n(f,{title:T?"Something went wrong":"Success!",description:T?"Please try again.":`You’ve successfully granted delegated action permissions to ${m.name}.`})]}),/*#__PURE__*/n(d,{}),/*#__PURE__*/n(u,{})]}:{children:[/*#__PURE__*/n(g,{closeable:!0,onClose:H}),/*#__PURE__*/n(r,{width:56,height:56,style:{margin:"auto"}}),/*#__PURE__*/n(k,{style:{marginTop:24,color:"var(--privy-color-foreground)"},children:"Enable offline access"}),/*#__PURE__*/o(v,{style:{marginBottom:24,textWrap:"pretty"},children:["By confirming, ",m.name," will be able to use your wallet for you even when you're not around. You can revoke this later."]}),/*#__PURE__*/n(A,{showIcon:!0,address:E,title:"Wallet",isLoading:!1}),/*#__PURE__*/o(S,{style:{marginTop:24},children:[/*#__PURE__*/n(a,{onClick:H,children:"Not now"}),/*#__PURE__*/n(p,{onClick:async()=>{try{await P(),L(!0)}catch(o){B(o)}},children:"Accept"})]}),/*#__PURE__*/n(u,{})]})};let S=/*#__PURE__*/m.div.withConfig({displayName:"ButtonsContainer",componentId:"sc-b99bc0c0-0"})(["display:flex;gap:10px;"]),A=/*#__PURE__*/m(y).withConfig({displayName:"StyledWalletInfoCard",componentId:"sc-b99bc0c0-1"})(["margin-top:1.5rem;"]);export{I as DelegatedActionsConsentScreen};
@@ -1 +1 @@
1
- import{jsxs as e,Fragment as o,jsx as t}from"react/jsx-runtime";import r from"@heroicons/react/24/solid/XCircleIcon";import{useMemo as n,useState as i,useEffect as s}from"react";import{styled as c}from"styled-components";import{getPrivyWalletWithAddress as a}from"../client/user.mjs";import{PrimaryButton as m}from"../components/Button.mjs";import{CenteredItemWithGap as l}from"../components/Layouts.mjs";import{ModalHeader as p}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as d}from"../components/ScreenHeader.mjs";import{FullScreenLoadingSpinner as h}from"../components/primitives/LoadingSpinner/index.mjs";import{errorIndicatesRecoveryIsNeeded as j}from"../embedded-wallets/errors.mjs";import{usePrivyInternal as u}from"../hooks/internal-context.mjs";import{usePrivyModal as y}from"../hooks/modal-context.mjs";import{usePrivyContext as f}from"../hooks/privy-context.mjs";import{embeddedWalletRecoveryScreen as v}from"../lib/embeddedWalletRecovery.mjs";import{ModalScreen as b}from"./index.mjs";import"@ethersproject/address";import"../components/Loader.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"../embedded-wallets/types.mjs";import"../components/PrefetchedImage.mjs";import"../errors.mjs";import"ofetch";import"../paths.mjs";import"../lib/pkce.mjs";import"jose";import"../crypto.mjs";import"../storage.mjs";const g=()=>{let{authenticated:c,user:g,getAccessToken:A}=f(),{closePrivyModal:C,createAnalyticsEvent:I,walletProxy:x}=u(),{navigate:k,data:S,setModalData:M,onUserCloseViaDialogOrKeybindRef:T}=y(),E=n((()=>Date.now()),[]),[_,P]=i(!1),{onCompleteNavigateTo:D,onFailure:F,shouldForceMFA:L,entropyId:N,entropyIdVerifier:O}=S?.connectWallet,U=e=>{_||(P(!0),F("string"==typeof e?Error(e):e))};s((()=>{let e,o=a(g,N);return c&&o?x?((async()=>{let t=await A();if(!t)return U("User must be authenticated and have a Privy wallet before it can be connected");try{await x.connect({accessToken:t,entropyId:N,entropyIdVerifier:O}),L&&await x.verifyMfa({accessToken:t});let o=(Date.now()-E)/1e3;D===b.EMBEDDED_WALLET_KEY_EXPORT_SCREEN&&o<1?e=setTimeout((()=>{k(D,!1)}),1e3*(1-o)):k(D,!1)}catch(e){if(j(e)&&"privy"===o.recoveryMethod){let e=await A();if(!e)return U("User must be authenticated and have a Privy wallet before it can be recovered");try{I({eventName:"embedded_wallet_pinless_recovery_started",payload:{walletAddress:o.address}});let t=await(x?.recover({accessToken:e,entropyId:N,entropyIdVerifier:O}));t?.entropyId||U(Error("Unable to recover wallet")),D?k(D):C({shouldCallAuthOnSuccess:!1}),I({eventName:"embedded_wallet_recovery_completed",payload:{walletAddress:o.address}}),k(D)}catch(e){U("An error has occurred, please try again.")}}else j(e)&&"privy"!==o.recoveryMethod?(M({...S,recoverWallet:{entropyId:N,entropyIdVerifier:O,onCompleteNavigateTo:D,onFailure:F},recoveryOAuthStatus:{provider:o.recoveryMethod,action:"recover",isInAccountCreateFlow:!1}}),k(v(o.recoveryMethod))):U(e)}})(),()=>clearTimeout(e)):void 0:U("User must be authenticated and have a Privy wallet before it can be connected")}),[c,g,x]);let R=()=>{U("User exited before wallet could be connected"),C({shouldCallAuthOnSuccess:!1})};return T.current=R,/*#__PURE__*/e(o,{children:[/*#__PURE__*/t(p,{onClose:R}),_?/*#__PURE__*/e(o,{children:[/*#__PURE__*/e(l,{children:[/*#__PURE__*/t(r,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}),/*#__PURE__*/t(d,{title:"Something went wrong",description:"We’re on it. Please try again later."})]}),/*#__PURE__*/t(m,{onClick:()=>C({shouldCallAuthOnSuccess:!1}),children:"Close"})]}):/*#__PURE__*/t(h,{}),/*#__PURE__*/t(w,{})]})};let w=/*#__PURE__*/c.div.withConfig({displayName:"BottomSpacing",componentId:"sc-124dbb1c-0"})(["height:44px;"]);export{g as EmbeddedWalletConnectingScreen};
1
+ import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import r from"@heroicons/react/24/solid/XCircleIcon";import{useMemo as n,useState as i,useEffect as s}from"react";import{styled as c}from"styled-components";import{getPrivyWalletWithAddress as m}from"../client/user.mjs";import{PrimaryButton as a}from"../components/Button.mjs";import{CenteredItemWithGap as l}from"../components/Layouts.mjs";import{ModalHeader as p}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as d}from"../components/ScreenHeader.mjs";import{FullScreenLoadingSpinner as h}from"../components/primitives/LoadingSpinner/index.mjs";import{errorIndicatesRecoveryIsNeeded as j}from"../embedded-wallets/errors.mjs";import{usePrivyInternal as u}from"../hooks/internal-context.mjs";import{usePrivyModal as y}from"../hooks/modal-context.mjs";import{usePrivyContext as f}from"../hooks/privy-context.mjs";import{embeddedWalletRecoveryScreen as v}from"../lib/embeddedWalletRecovery.mjs";import{ModalScreen as b}from"./index.mjs";import"viem/utils";import"../components/Loader.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"../embedded-wallets/types.mjs";import"../components/PrefetchedImage.mjs";import"../errors.mjs";import"ofetch";import"../paths.mjs";import"../lib/pkce.mjs";import"jose";import"../crypto.mjs";import"../storage.mjs";const g=()=>{let{authenticated:c,user:g,getAccessToken:A}=f(),{closePrivyModal:C,createAnalyticsEvent:I,walletProxy:x}=u(),{navigate:k,data:S,setModalData:M,onUserCloseViaDialogOrKeybindRef:T}=y(),E=n((()=>Date.now()),[]),[_,P]=i(!1),{onCompleteNavigateTo:D,onFailure:F,shouldForceMFA:L,entropyId:N,entropyIdVerifier:O}=S?.connectWallet,U=o=>{_||(P(!0),F("string"==typeof o?Error(o):o))};s((()=>{let o,e=m(g,N);return c&&e?x?((async()=>{let t=await A();if(!t)return U("User must be authenticated and have a Privy wallet before it can be connected");try{await x.connect({accessToken:t,entropyId:N,entropyIdVerifier:O}),L&&await x.verifyMfa({accessToken:t});let e=(Date.now()-E)/1e3;D===b.EMBEDDED_WALLET_KEY_EXPORT_SCREEN&&e<1?o=setTimeout((()=>{k(D,!1)}),1e3*(1-e)):k(D,!1)}catch(o){if(j(o)&&"privy"===e.recoveryMethod){let o=await A();if(!o)return U("User must be authenticated and have a Privy wallet before it can be recovered");try{I({eventName:"embedded_wallet_pinless_recovery_started",payload:{walletAddress:e.address}});let t=await(x?.recover({accessToken:o,entropyId:N,entropyIdVerifier:O}));t?.entropyId||U(Error("Unable to recover wallet")),D?k(D):C({shouldCallAuthOnSuccess:!1}),I({eventName:"embedded_wallet_recovery_completed",payload:{walletAddress:e.address}}),k(D)}catch(o){U("An error has occurred, please try again.")}}else j(o)&&"privy"!==e.recoveryMethod?(M({...S,recoverWallet:{entropyId:N,entropyIdVerifier:O,onCompleteNavigateTo:D,onFailure:F},recoveryOAuthStatus:{provider:e.recoveryMethod,action:"recover",isInAccountCreateFlow:!1}}),k(v(e.recoveryMethod))):U(o)}})(),()=>clearTimeout(o)):void 0:U("User must be authenticated and have a Privy wallet before it can be connected")}),[c,g,x]);let R=()=>{U("User exited before wallet could be connected"),C({shouldCallAuthOnSuccess:!1})};return T.current=R,/*#__PURE__*/o(e,{children:[/*#__PURE__*/t(p,{onClose:R}),_?/*#__PURE__*/o(e,{children:[/*#__PURE__*/o(l,{children:[/*#__PURE__*/t(r,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}),/*#__PURE__*/t(d,{title:"Something went wrong",description:"We’re on it. Please try again later."})]}),/*#__PURE__*/t(a,{onClick:()=>C({shouldCallAuthOnSuccess:!1}),children:"Close"})]}):/*#__PURE__*/t(h,{}),/*#__PURE__*/t(w,{})]})};let w=/*#__PURE__*/c.div.withConfig({displayName:"BottomSpacing",componentId:"sc-124dbb1c-0"})(["height:44px;"]);export{g as EmbeddedWalletConnectingScreen};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as t,jsx as r}from"react/jsx-runtime";import n from"@heroicons/react/24/solid/CheckCircleIcon";import{useEffect as s}from"react";import{getPrivyEthereumWallet as e}from"../client/user.mjs";import{RefactorSpacerTop as i,CenteredItemWithGap as c,RefactorSpacerBottom as m}from"../components/Layouts.mjs";import{BlobbyFooter as a}from"../components/ModalFooter.mjs";import{ModalHeader as p}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as l}from"../components/ScreenHeader.mjs";import{DEFAULT_SUCCESS_SCREEN_LONG_DURATION_MS as h}from"../constants.mjs";import{usePrivyInternal as j}from"../hooks/internal-context.mjs";import{usePrivyModal as u}from"../hooks/modal-context.mjs";import{usePrivyContext as d}from"../hooks/privy-context.mjs";import"@ethersproject/address";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"../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"../components/PrefetchedImage.mjs";import"./index.mjs";const f=()=>{let{user:f}=d(),{closePrivyModal:y,isNewUserThisSession:g,updateWallets:x}=j(),{app:b,data:k,onUserCloseViaDialogOrKeybindRef:C}=u(),{onSuccess:v,onFailure:S,callAuthOnSuccessOnClose:A}=k.createWallet,w=()=>{let o=e(f);o?(x(),v(o)):S(Error("Failed to create wallet")),y({shouldCallAuthOnSuccess:A})};return s((()=>{let o=setTimeout(w,h);return()=>clearTimeout(o)}),[]),C.current=w,/*#__PURE__*/o(t,{children:[/*#__PURE__*/r(p,{onClose:w}),/*#__PURE__*/r(i,{}),/*#__PURE__*/o(c,{children:[/*#__PURE__*/r(n,{fill:"var(--privy-color-accent)",width:"64px",height:"64px"}),/*#__PURE__*/r(l,{title:g?"Welcome"+(b?.name?` to ${b?.name}`:""):"All set!",description:g?"You’ve successfully created an account.":"Your account is secured."})]}),/*#__PURE__*/r(m,{}),/*#__PURE__*/r(a,{})]})};export{f as EmbeddedWalletCreatedScreen};
1
+ import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import r from"@heroicons/react/24/solid/CheckCircleIcon";import{useEffect as s}from"react";import{getPrivyEthereumWallet as i}from"../client/user.mjs";import{RefactorSpacerTop as e,CenteredItemWithGap as c,RefactorSpacerBottom as m}from"../components/Layouts.mjs";import{BlobbyFooter as a}from"../components/ModalFooter.mjs";import{ModalHeader as p}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as l}from"../components/ScreenHeader.mjs";import{DEFAULT_SUCCESS_SCREEN_LONG_DURATION_MS as h}from"../constants.mjs";import{usePrivyInternal as j}from"../hooks/internal-context.mjs";import{usePrivyModal as u}from"../hooks/modal-context.mjs";import{usePrivyContext as d}from"../hooks/privy-context.mjs";import"viem/utils";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"../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"../components/PrefetchedImage.mjs";import"./index.mjs";const f=()=>{let{user:f}=d(),{closePrivyModal:y,isNewUserThisSession:g,updateWallets:x}=j(),{app:b,data:k,onUserCloseViaDialogOrKeybindRef:v}=u(),{onSuccess:C,onFailure:S,callAuthOnSuccessOnClose:A}=k.createWallet,w=()=>{let o=i(f);o?(x(),C(o)):S(Error("Failed to create wallet")),y({shouldCallAuthOnSuccess:A})};return s((()=>{let o=setTimeout(w,h);return()=>clearTimeout(o)}),[]),v.current=w,/*#__PURE__*/o(t,{children:[/*#__PURE__*/n(p,{onClose:w}),/*#__PURE__*/n(e,{}),/*#__PURE__*/o(c,{children:[/*#__PURE__*/n(r,{fill:"var(--privy-color-accent)",width:"64px",height:"64px"}),/*#__PURE__*/n(l,{title:g?"Welcome"+(b?.name?` to ${b?.name}`:""):"All set!",description:g?"You’ve successfully created an account.":"Your account is secured."})]}),/*#__PURE__*/n(m,{}),/*#__PURE__*/n(a,{})]})};export{f as EmbeddedWalletCreatedScreen};
@@ -1,2 +1,2 @@
1
- import{jsxs as o,Fragment as e,jsx as r}from"react/jsx-runtime";import{useState as t,useEffect as n,useRef as i}from"react";import{styled as s}from"styled-components";import{BlobbyFooter as c}from"../components/ModalFooter.mjs";import{ModalHeader as a}from"../components/ModalHeader.mjs";import{WarningBanner as m}from"../components/ui/banners/WarningBanner.mjs";import{Subtitle as l}from"../components/ui/typography/Subtitle.mjs";import{Title as p}from"../components/ui/typography/Title.mjs";import{WalletInfoCard as d}from"../components/ui/wallet/WalletInfoCard.mjs";import{useAppConfig as h}from"../configuration/context.mjs";import{usePrivyInternal as u}from"../hooks/internal-context.mjs";import{usePrivyModal as y}from"../hooks/modal-context.mjs";import{usePrivyContext as g}from"../hooks/privy-context.mjs";import{constructURL as j}from"../utils/index.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"../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/ExclamationTriangleIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../components/ui/layout/Column.mjs";import"../components/ui/typography/ErrorMessage.mjs";import"../components/ui/typography/LabelXs.mjs";import"../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@ethersproject/providers";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"../components/ui/wallet/shared.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";const f=()=>{let[i,s]=t(null),{authenticated:j,user:f,getAccessToken:b}=g(),{closePrivyModal:x,createAnalyticsEvent:k,clientAnalyticsId:I}=u(),C=h(),{data:A,onUserCloseViaDialogOrKeybindRef:T}=y(),{onFailure:E,onSuccess:S,origin:P,appId:L,appClientId:V,walletToExport:M,primaryWallet:W}=A.keyExport,_=o=>{x({shouldCallAuthOnSuccess:!1}),E("string"==typeof o?Error(o):o)},z=()=>{x({shouldCallAuthOnSuccess:!1}),S(),k({eventName:"embedded_wallet_key_export_completed",payload:{walletAddress:M.address}})};return n((()=>{if(!j||!M)return _("User must be authenticated before exporting their wallet");b().then(s,_)}),[j,f]),T.current=z,/*#__PURE__*/o(e,{children:[/*#__PURE__*/r(a,{onClose:z}),/*#__PURE__*/o(w,{children:[/*#__PURE__*/r(p,{children:"Transfer wallet"}),/*#__PURE__*/o(l,{children:["Either copy your private key or seed phrase to transfer your wallet."," ",/*#__PURE__*/r("a",{href:"https://privy-io.notion.site/Transferring-your-account-9dab9e16c6034a7ab1ff7fa479b02828",target:"blank",rel:"noopener noreferrer",children:"Learn more"})]}),/*#__PURE__*/r(m,{theme:C.appearance.palette.colorScheme,children:"Never share your private key or seed phrase with anyone."}),/*#__PURE__*/r(d,{isLoading:!1,isPulsing:!1,title:"Your wallet",address:M.address,showIcon:!0}),/*#__PURE__*/r("div",{style:{width:"100%"},children:i&&/*#__PURE__*/r(v,{origin:P,appId:L,appClientId:V,accessToken:i,clientAnalyticsId:I,walletToExport:M,primaryWallet:W,dimensions:{height:"44px"}})})]}),/*#__PURE__*/r(c,{})]})};function v(e){let[s,c]=t(e.dimensions.width),[a,m]=t(void 0),l=i(null);n((()=>{if(l.current&&void 0===s){let{width:o}=l.current.getBoundingClientRect();c(o)}let o=getComputedStyle(document.documentElement);m({background:o.getPropertyValue("--privy-color-background"),background2:o.getPropertyValue("--privy-color-background-2"),foreground3:o.getPropertyValue("--privy-color-foreground-3"),foregroundAccent:o.getPropertyValue("--privy-color-foreground-accent"),accent:o.getPropertyValue("--privy-color-accent"),accentDark:o.getPropertyValue("--privy-color-accent-dark"),success:o.getPropertyValue("--privy-color-success")})}),[]);let p="ethereum"===e.walletToExport.chainType&&!e.walletToExport.imported;/*#__PURE__*/return r("div",{ref:l,children:s&&
2
- /*#__PURE__*/o(b,{children:[/*#__PURE__*/r("iframe",{style:{position:"absolute",zIndex:1},width:s,height:e.dimensions.height,allow:"clipboard-write self *",src:j(e.origin,`/apps/${e.appId}/embedded-wallets/export`,{client_id:e.appClientId,primaryAddress:e.primaryWallet.address,address:e.walletToExport.address,walletIndex:e.walletToExport.walletIndex,width:`${s}px`,caid:e.clientAnalyticsId,phrase_export:p,...a},{token:e.accessToken})}),/*#__PURE__*/r(x,{children:"Loading..."}),p&&/*#__PURE__*/r(x,{children:"Loading..."})]})})}let w=/*#__PURE__*/s.div.withConfig({displayName:"EmbeddedWalletScreenContainer",componentId:"sc-eaab13a9-0"})(["display:flex;flex-direction:column;gap:1.25rem;text-align:left;"]),b=/*#__PURE__*/s.div.withConfig({displayName:"ButtonContainer",componentId:"sc-eaab13a9-1"})(["overflow:visible;position:relative;overflow:none;height:44px;display:flex;gap:12px;"]),x=/*#__PURE__*/s.div.withConfig({displayName:"LoadingButton",componentId:"sc-eaab13a9-2"})(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:16px;font-weight:500;border-radius:var(--privy-border-radius-md);background-color:var(--privy-color-background-2);color:var(--privy-color-foreground-3);"]);export{f as EmbeddedWalletKeyExportScreen};
1
+ import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import{useState as r,useEffect as n,useRef as i}from"react";import{styled as s}from"styled-components";import{BlobbyFooter as c}from"../components/ModalFooter.mjs";import{ModalHeader as a}from"../components/ModalHeader.mjs";import{WarningBanner as m}from"../components/ui/banners/WarningBanner.mjs";import{Subtitle as l}from"../components/ui/typography/Subtitle.mjs";import{Title as p}from"../components/ui/typography/Title.mjs";import{WalletInfoCard as d}from"../components/ui/wallet/WalletInfoCard.mjs";import{useAppConfig as h}from"../configuration/context.mjs";import{usePrivyInternal as u}from"../hooks/internal-context.mjs";import{usePrivyModal as g}from"../hooks/modal-context.mjs";import{usePrivyContext as y}from"../hooks/privy-context.mjs";import{constructURL as j}from"../utils/index.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"../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/ExclamationTriangleIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../components/ui/layout/Column.mjs";import"../components/ui/typography/ErrorMessage.mjs";import"../components/ui/typography/LabelXs.mjs";import"../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";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/ui/wallet/shared.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";const f=()=>{let[i,s]=r(null),{authenticated:j,user:f,getAccessToken:w}=y(),{closePrivyModal:x,createAnalyticsEvent:k,clientAnalyticsId:I}=u(),C=h(),{data:A,onUserCloseViaDialogOrKeybindRef:T}=g(),{onFailure:E,onSuccess:S,origin:P,appId:L,appClientId:V,walletToExport:M,primaryWallet:W}=A.keyExport,_=o=>{x({shouldCallAuthOnSuccess:!1}),E("string"==typeof o?Error(o):o)},z=()=>{x({shouldCallAuthOnSuccess:!1}),S(),k({eventName:"embedded_wallet_key_export_completed",payload:{walletAddress:M.address}})};return n((()=>{if(!j||!M)return _("User must be authenticated before exporting their wallet");w().then(s,_)}),[j,f]),T.current=z,/*#__PURE__*/o(e,{children:[/*#__PURE__*/t(a,{onClose:z}),/*#__PURE__*/o(v,{children:[/*#__PURE__*/t(p,{children:"Transfer wallet"}),/*#__PURE__*/o(l,{children:["Either copy your private key or seed phrase to transfer your wallet."," ",/*#__PURE__*/t("a",{href:"https://privy-io.notion.site/Transferring-your-account-9dab9e16c6034a7ab1ff7fa479b02828",target:"blank",rel:"noopener noreferrer",children:"Learn more"})]}),/*#__PURE__*/t(m,{theme:C.appearance.palette.colorScheme,children:"Never share your private key or seed phrase with anyone."}),/*#__PURE__*/t(d,{isLoading:!1,isPulsing:!1,title:"Your wallet",address:M.address,showIcon:!0}),/*#__PURE__*/t("div",{style:{width:"100%"},children:i&&/*#__PURE__*/t(b,{origin:P,appId:L,appClientId:V,accessToken:i,clientAnalyticsId:I,walletToExport:M,primaryWallet:W,dimensions:{height:"44px"}})})]}),/*#__PURE__*/t(c,{})]})};function b(e){let[s,c]=r(e.dimensions.width),[a,m]=r(void 0),l=i(null);n((()=>{if(l.current&&void 0===s){let{width:o}=l.current.getBoundingClientRect();c(o)}let o=getComputedStyle(document.documentElement);m({background:o.getPropertyValue("--privy-color-background"),background2:o.getPropertyValue("--privy-color-background-2"),foreground3:o.getPropertyValue("--privy-color-foreground-3"),foregroundAccent:o.getPropertyValue("--privy-color-foreground-accent"),accent:o.getPropertyValue("--privy-color-accent"),accentDark:o.getPropertyValue("--privy-color-accent-dark"),success:o.getPropertyValue("--privy-color-success")})}),[]);let p="ethereum"===e.walletToExport.chainType&&!e.walletToExport.imported;/*#__PURE__*/return t("div",{ref:l,children:s&&
2
+ /*#__PURE__*/o(w,{children:[/*#__PURE__*/t("iframe",{style:{position:"absolute",zIndex:1},width:s,height:e.dimensions.height,allow:"clipboard-write self *",src:j(e.origin,`/apps/${e.appId}/embedded-wallets/export`,{client_id:e.appClientId,primaryAddress:e.primaryWallet.address,address:e.walletToExport.address,walletIndex:e.walletToExport.walletIndex,width:`${s}px`,caid:e.clientAnalyticsId,phrase_export:p,...a},{token:e.accessToken})}),/*#__PURE__*/t(x,{children:"Loading..."}),p&&/*#__PURE__*/t(x,{children:"Loading..."})]})})}let v=/*#__PURE__*/s.div.withConfig({displayName:"EmbeddedWalletScreenContainer",componentId:"sc-eaab13a9-0"})(["display:flex;flex-direction:column;gap:1.25rem;text-align:left;"]),w=/*#__PURE__*/s.div.withConfig({displayName:"ButtonContainer",componentId:"sc-eaab13a9-1"})(["overflow:visible;position:relative;overflow:none;height:44px;display:flex;gap:12px;"]),x=/*#__PURE__*/s.div.withConfig({displayName:"LoadingButton",componentId:"sc-eaab13a9-2"})(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:16px;font-weight:500;border-radius:var(--privy-border-radius-md);background-color:var(--privy-color-background-2);color:var(--privy-color-foreground-3);"]);export{f as EmbeddedWalletKeyExportScreen};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import r from"@heroicons/react/24/solid/XCircleIcon";import{useState as i,useEffect as n}from"react";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../components/Button.mjs";import{CenteredItemWithGap as m}from"../components/Layouts.mjs";import{ModalHeader as a}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as l}from"../components/ScreenHeader.mjs";import{FullScreenLoadingSpinner as p}from"../components/primitives/LoadingSpinner/index.mjs";import{useAppConfig as h}from"../configuration/context.mjs";import{RunEffectOnce as j}from"../effect.mjs";import{PrivyEmbeddedWalletError as d}from"../errors.mjs";import{usePrivyInternal as u}from"../hooks/internal-context.mjs";import{usePrivyModal as f}from"../hooks/modal-context.mjs";import{usePrivyContext as g}from"../hooks/privy-context.mjs";import{useCreateWallet as y}from"../hooks/useEmbeddedWalletCreate.mjs";import{toEmbeddedWalletSetRecoveryScreen as b}from"../lib/embeddedWalletRecovery.mjs";import{ModalScreen as v}from"./index.mjs";import"../components/Loader.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"../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"ofetch";import"../components/PrefetchedImage.mjs";import"../client/user.mjs";import"@ethersproject/address";import"../paths.mjs";import"../lib/pkce.mjs";import"jose";import"../crypto.mjs";import"../storage.mjs";const w=()=>{let{app:s,setModalData:w,navigate:S,data:x,onUserCloseViaDialogOrKeybindRef:A}=f(),[k,E]=i(""),{embeddedWallets:R}=h(),{authenticated:I,user:O}=g(),{closePrivyModal:W}=u(),{onSuccess:D,onFailure:L,callAuthOnSuccessOnClose:M}=x.createWallet,P=!0===s?.embeddedWallets.requireUserOwnedRecoveryOnCreate,{createWallet:F}=y(),[N,T]=i(null),U=new j((async()=>{try{let o=await F({user:O});if(!o)return;T(o),S(v.EMBEDDED_WALLET_CREATED_SCREEN)}catch(o){E(o.message)}}));return n((()=>I&&O?P?(w({...x,recoverySelection:{...x?.recoverySelection,isInAccountCreateFlow:!0}}),S(b({walletAction:"create",showAutomaticRecovery:!1,availableRecoveryMethods:R.userOwnedRecoveryOptions,legacySetWalletPasswordFlow:!1,isResettingPassword:!1}))):void U.execute():(S(v.LANDING),void L(Error("User must be authenticated before creating a Privy wallet")))),[P,I]),A.current=()=>null,k?/*#__PURE__*/o(e,{children:[/*#__PURE__*/t(a,{closeable:!1}),/*#__PURE__*/o(m,{children:[/*#__PURE__*/t(r,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}),/*#__PURE__*/t(l,{title:"Something went wrong",description:k})]}),/*#__PURE__*/t(c,{onClick:()=>{N?(D(N),W({shouldCallAuthOnSuccess:M})):(L(new d("User wallet creation failed")),W({shouldCallAuthOnSuccess:!1}))},children:"Close"}),/*#__PURE__*/t(C,{})]}):/*#__PURE__*/t(p,{})};let C=/*#__PURE__*/s.div.withConfig({displayName:"BottomSpacing",componentId:"sc-eabafbf4-0"})(["height:44px;"]);export{w as EmbeddedWalletOnAccountCreateScreen};
1
+ import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import r from"@heroicons/react/24/solid/XCircleIcon";import{useState as i,useEffect as n}from"react";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../components/Button.mjs";import{CenteredItemWithGap as m}from"../components/Layouts.mjs";import{ModalHeader as a}from"../components/ModalHeader.mjs";import{CenteredScreenHeader as l}from"../components/ScreenHeader.mjs";import{FullScreenLoadingSpinner as p}from"../components/primitives/LoadingSpinner/index.mjs";import{useAppConfig as h}from"../configuration/context.mjs";import{RunEffectOnce as j}from"../effect.mjs";import{PrivyEmbeddedWalletError as d}from"../errors.mjs";import{usePrivyInternal as u}from"../hooks/internal-context.mjs";import{usePrivyModal as f}from"../hooks/modal-context.mjs";import{usePrivyContext as g}from"../hooks/privy-context.mjs";import{useCreateWallet as y}from"../hooks/useEmbeddedWalletCreate.mjs";import{toEmbeddedWalletSetRecoveryScreen as b}from"../lib/embeddedWalletRecovery.mjs";import{ModalScreen as v}from"./index.mjs";import"../components/Loader.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"../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"ofetch";import"../components/PrefetchedImage.mjs";import"../client/user.mjs";import"viem/utils";import"../paths.mjs";import"../lib/pkce.mjs";import"jose";import"../crypto.mjs";import"../storage.mjs";const w=()=>{let{app:s,setModalData:w,navigate:S,data:x,onUserCloseViaDialogOrKeybindRef:A}=f(),[k,E]=i(""),{embeddedWallets:R}=h(),{authenticated:I,user:O}=g(),{closePrivyModal:W}=u(),{onSuccess:D,onFailure:L,callAuthOnSuccessOnClose:M}=x.createWallet,P=!0===s?.embeddedWallets.requireUserOwnedRecoveryOnCreate,{createWallet:F}=y(),[N,T]=i(null),U=new j((async()=>{try{let o=await F({user:O});if(!o)return;T(o),S(v.EMBEDDED_WALLET_CREATED_SCREEN)}catch(o){E(o.message)}}));return n((()=>I&&O?P?(w({...x,recoverySelection:{...x?.recoverySelection,isInAccountCreateFlow:!0}}),S(b({walletAction:"create",showAutomaticRecovery:!1,availableRecoveryMethods:R.userOwnedRecoveryOptions,legacySetWalletPasswordFlow:!1,isResettingPassword:!1}))):void U.execute():(S(v.LANDING),void L(Error("User must be authenticated before creating a Privy wallet")))),[P,I]),A.current=()=>null,k?/*#__PURE__*/o(e,{children:[/*#__PURE__*/t(a,{closeable:!1}),/*#__PURE__*/o(m,{children:[/*#__PURE__*/t(r,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}),/*#__PURE__*/t(l,{title:"Something went wrong",description:k})]}),/*#__PURE__*/t(c,{onClick:()=>{N?(D(N),W({shouldCallAuthOnSuccess:M})):(L(new d("User wallet creation failed")),W({shouldCallAuthOnSuccess:!1}))},children:"Close"}),/*#__PURE__*/t(C,{})]}):/*#__PURE__*/t(p,{})};let C=/*#__PURE__*/s.div.withConfig({displayName:"BottomSpacing",componentId:"sc-eabafbf4-0"})(["height:44px;"]);export{w as EmbeddedWalletOnAccountCreateScreen};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{ModalScreen as o}from"./index.mjs";import{useState as t,useEffect as r}from"react";import{getPrivyPrimaryWallet as s,getEntropyDetailsFromAccount as n}from"../client/user.mjs";import{PrivyUnauthenticatedError as i,PrivyEmbeddedWalletError as a}from"../errors.mjs";import{usePrivyInternal as c}from"../hooks/internal-context.mjs";import{usePrivyModal as m}from"../hooks/modal-context.mjs";import{usePrivyContext as l}from"../hooks/privy-context.mjs";import{generatePassphrase as d}from"../password.mjs";import{SetWalletPasswordForm as p}from"../components/embedded-wallets/SetWalletPasswordForm/SetWalletPasswordForm.mjs";import"@ethersproject/address";import"ofetch";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";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"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"../components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordForm.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"../components/Layouts.mjs";import"styled-components";import"../components/ModalFooter.mjs";import"../svg/protected-by-privy.mjs";import"../components/ModalHeader.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"../components/embedded-wallets/SetWalletPasswordForm/shared.mjs";import"@heroicons/react/24/outline/ArrowPathIcon";import"@heroicons/react/24/outline/EyeIcon";import"@heroicons/react/24/outline/EyeSlashIcon";import"../components/Button.mjs";import"../components/Loader.mjs";import"../components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordSaved.mjs";import"../components/Checkbox.mjs";import"../components/embedded-wallets/SetWalletPasswordForm/CreateWalletPassword.mjs";import"@heroicons/react/24/outline/KeyIcon";import"@heroicons/react/24/solid/CheckCircleIcon";import"../components/embedded-wallets/SetWalletPasswordForm/SaveWalletPassword.mjs";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"../components/embedded-wallets/SetWalletPasswordForm/SetWalletPasswordComplete.mjs";import"@heroicons/react/24/solid/XCircleIcon";import"../components/ScreenHeader.mjs";import"../components/embedded-wallets/SetWalletPasswordForm/setWalletPassword.hooks.mjs";const h=()=>{let[h,w]=t(null),[u,j]=t(!1),[y,v]=t(null),[f,g]=t(""),{authenticated:b,getAccessToken:P,user:S}=l(),{walletProxy:C,refreshUser:A,closePrivyModal:I,createAnalyticsEvent:M}=c(),{app:_,navigate:x,data:R,onUserCloseViaDialogOrKeybindRef:W}=m(),{onSuccess:k,onFailure:F}=R.createWallet,E=s(S),N="user-passcode"===h?.recoveryMethod,D="user-passcode"===E?.recoveryMethod;r((()=>{b||(x(o.LANDING),F(new i("User must be authenticated before setting a password on a Privy wallet")))}),[b]);let T=()=>y?(F(y),void I({shouldCallAuthOnSuccess:!1})):N?(k(h),void I({shouldCallAuthOnSuccess:!1})):(F(new a("Exited before password was added to wallet")),void I({shouldCallAuthOnSuccess:!1}));W.current=T;/*#__PURE__*/return e(p,{appName:_?.name||"privy",config:{initiatedBy:"user",onCancel:T},error:y?"An error has occurred, please try again.":void 0,buttonLoading:u,buttonHideAnimations:!1,password:f,isResettingPassword:D,onPasswordGenerate:()=>g(d()),onPasswordChange:g,onSubmit:async()=>{N?(k(h),I({shouldCallAuthOnSuccess:!1})):(j(!0),v(null),await(async()=>{let e=await P();if(e&&E?.address&&f&&C)try{M({eventName:"embedded_wallet_set_recovery_started",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D}});let{entropyId:o,entropyIdVerifier:t}=n(E);if(!(await C.setRecovery({accessToken:e,entropyId:o,entropyIdVerifier:t,recoveryPassword:f,recoveryMethod:"user-passcode"})).entropyId)return v(new a("Error setting password on privy wallet")),void M({eventName:"embedded_wallet_set_recovery_failed",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D,reason:"error setting password"}});let r=await A(),i=s(r);if(!i)return v(new a("Error setting password on privy wallet")),void M({eventName:"embedded_wallet_set_recovery_failed",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D,reason:"wallet disconnected"}});w(i),M({eventName:"embedded_wallet_set_recovery_completed",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D}})}catch(e){console.warn(e),v(e instanceof Error?e:Error("Error setting password on privy wallet")),M({eventName:"embedded_wallet_set_password_failed",payload:{walletAddress:E.address,reason:e}})}})(),j(!1))},onClose:T})};export{h as EmbeddedWalletPasswordUpdateScreen};
1
+ import{jsx as e}from"react/jsx-runtime";import{ModalScreen as o}from"./index.mjs";import{useState as t,useEffect as r}from"react";import{getPrivyPrimaryWallet as s,getEntropyDetailsFromAccount as n}from"../client/user.mjs";import{PrivyUnauthenticatedError as i,PrivyEmbeddedWalletError as a}from"../errors.mjs";import{usePrivyInternal as c}from"../hooks/internal-context.mjs";import{usePrivyModal as m}from"../hooks/modal-context.mjs";import{usePrivyContext as l}from"../hooks/privy-context.mjs";import{generatePassphrase as d}from"../password.mjs";import{SetWalletPasswordForm as p}from"../components/embedded-wallets/SetWalletPasswordForm/SetWalletPasswordForm.mjs";import"viem/utils";import"ofetch";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";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"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"../components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordForm.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"../components/Layouts.mjs";import"styled-components";import"../components/ModalFooter.mjs";import"../svg/protected-by-privy.mjs";import"../components/ModalHeader.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"../components/embedded-wallets/SetWalletPasswordForm/shared.mjs";import"@heroicons/react/24/outline/ArrowPathIcon";import"@heroicons/react/24/outline/EyeIcon";import"@heroicons/react/24/outline/EyeSlashIcon";import"../components/Button.mjs";import"../components/Loader.mjs";import"../components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordSaved.mjs";import"../components/Checkbox.mjs";import"../components/embedded-wallets/SetWalletPasswordForm/CreateWalletPassword.mjs";import"@heroicons/react/24/outline/KeyIcon";import"@heroicons/react/24/solid/CheckCircleIcon";import"../components/embedded-wallets/SetWalletPasswordForm/SaveWalletPassword.mjs";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"../components/embedded-wallets/SetWalletPasswordForm/SetWalletPasswordComplete.mjs";import"@heroicons/react/24/solid/XCircleIcon";import"../components/ScreenHeader.mjs";import"../components/embedded-wallets/SetWalletPasswordForm/setWalletPassword.hooks.mjs";const h=()=>{let[h,w]=t(null),[u,j]=t(!1),[y,v]=t(null),[f,g]=t(""),{authenticated:b,getAccessToken:P,user:S}=l(),{walletProxy:C,refreshUser:A,closePrivyModal:I,createAnalyticsEvent:M}=c(),{app:_,navigate:x,data:R,onUserCloseViaDialogOrKeybindRef:W}=m(),{onSuccess:k,onFailure:F}=R.createWallet,E=s(S),N="user-passcode"===h?.recoveryMethod,D="user-passcode"===E?.recoveryMethod;r((()=>{b||(x(o.LANDING),F(new i("User must be authenticated before setting a password on a Privy wallet")))}),[b]);let T=()=>y?(F(y),void I({shouldCallAuthOnSuccess:!1})):N?(k(h),void I({shouldCallAuthOnSuccess:!1})):(F(new a("Exited before password was added to wallet")),void I({shouldCallAuthOnSuccess:!1}));W.current=T;/*#__PURE__*/return e(p,{appName:_?.name||"privy",config:{initiatedBy:"user",onCancel:T},error:y?"An error has occurred, please try again.":void 0,buttonLoading:u,buttonHideAnimations:!1,password:f,isResettingPassword:D,onPasswordGenerate:()=>g(d()),onPasswordChange:g,onSubmit:async()=>{N?(k(h),I({shouldCallAuthOnSuccess:!1})):(j(!0),v(null),await(async()=>{let e=await P();if(e&&E?.address&&f&&C)try{M({eventName:"embedded_wallet_set_recovery_started",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D}});let{entropyId:o,entropyIdVerifier:t}=n(E);if(!(await C.setRecovery({accessToken:e,entropyId:o,entropyIdVerifier:t,recoveryPassword:f,recoveryMethod:"user-passcode"})).entropyId)return v(new a("Error setting password on privy wallet")),void M({eventName:"embedded_wallet_set_recovery_failed",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D,reason:"error setting password"}});let r=await A(),i=s(r);if(!i)return v(new a("Error setting password on privy wallet")),void M({eventName:"embedded_wallet_set_recovery_failed",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D,reason:"wallet disconnected"}});w(i),M({eventName:"embedded_wallet_set_recovery_completed",payload:{walletAddress:E.address,existingRecoveryMethod:E.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:D}})}catch(e){console.warn(e),v(e instanceof Error?e:Error("Error setting password on privy wallet")),M({eventName:"embedded_wallet_set_password_failed",payload:{walletAddress:E.address,reason:e}})}})(),j(!1))},onClose:T})};export{h as EmbeddedWalletPasswordUpdateScreen};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as o,Fragment as e}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/ExclamationTriangleIcon";import i from"@heroicons/react/24/outline/PhoneIcon";import{styled as n}from"styled-components";import{PrimaryButton as a}from"../components/Button.mjs";import{CircleBorder as c}from"../components/CircleBorder.mjs";import{ModalHeader as s}from"../components/ModalHeader.mjs";import m from"../components/layout/StackedContainer.mjs";import{PrivyIframeError as l}from"../embedded-wallets/errors.mjs";import{PrivyError as p,PrivyErrorCode as d,PrivyClientError as h,PrivyApiError as g}from"../errors.mjs";import{useCaptcha as T}from"../hooks/captcha-context.mjs";import{usePrivyModal as j}from"../hooks/modal-context.mjs";import{LockClosed as u}from"../svg/lock-closed.mjs";import{ModalScreen as f}from"./index.mjs";import"../components/Loader.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/internal-context.mjs";import"../hooks/index.mjs";import"../embedded-wallets/types.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";let y=(o,e)=>{let n=/*#__PURE__*/t(r,{height:38,width:38,stroke:"var(--privy-color-error)"});if(o instanceof h)switch(o.privyErrorCode){case d.CLIENT_REQUEST_TIMEOUT:return{title:"Timed out",detail:o.message,ctaText:"Try again",icon:n};case d.INSUFFICIENT_BALANCE:return{title:"Insufficient balance",detail:o.message,ctaText:"Try again",icon:n};case d.TRANSACTION_FAILURE:return{title:"Transaction failure",detail:o.message,ctaText:"Try again",icon:n};default:return{title:"Something went wrong",detail:"Try again later",ctaText:"Try again",icon:n}}else{if(o instanceof l&&"twilio_verification_failed"===o.type)return{title:"Something went wrong",detail:o.message,ctaText:"Try again",icon:/*#__PURE__*/t(i,{height:38,width:38,stroke:"var(--privy-color-error)"})};if(!(o instanceof p))return o instanceof g&&o.status&&[400,422].includes(o.status)?{title:"Something went wrong",detail:o.message,ctaText:"Try again",icon:n}:{title:"Something went wrong",detail:"Try again later",ctaText:"Try again",icon:n};switch(o.privyErrorCode){case d.INVALID_CAPTCHA:return{title:"Something went wrong",detail:"Please try again.",ctaText:"Try again",icon:n};case d.DISALLOWED_LOGIN_METHOD:return{title:"Not allowed",detail:o.message,ctaText:"Try another method",icon:n};case d.ALLOWLIST_REJECTED:return{title:e.errorTitle||"You don't have access to this app",detail:e.errorDetail||"Have you been invited?",ctaText:e.errorCtaText||"Try another account",icon:/*#__PURE__*/t(u,{style:{width:"38px",height:"38px",strokeWidth:"1",stroke:"var(--privy-color-accent)",fill:"var(--privy-color-accent)"}})};case d.CAPTCHA_FAILURE:return{title:"Something went wrong",detail:"You did not pass CAPTCHA. Please try again.",ctaText:"Try again",icon:/*#__PURE__*/t("span",{})};case d.CAPTCHA_TIMEOUT:return{title:"Something went wrong",detail:"Something went wrong! Please try again later.",ctaText:"Try again",icon:/*#__PURE__*/t("span",{})};case d.LINKED_TO_ANOTHER_USER:return{title:"Authentication failed",detail:"This account has already been linked to another user.",ctaText:"Try again",icon:n};case d.NOT_SUPPORTED:return{title:"This region is not supported",detail:"SMS authentication from this region is not available",ctaText:"Try another method",icon:n};case d.TOO_MANY_REQUESTS:return{title:"Request failed",detail:"Too many attempts.",ctaText:"Try again later",icon:n};default:return{title:"Something went wrong",detail:"Try again later",ctaText:"Try again",icon:n}}}};const C=()=>{let{navigate:o,navigateBack:e,data:r,lastScreen:i,currentScreen:n}=j(),a=r?.errorModalData?.previousScreen||(i===n?void 0:i);/*#__PURE__*/return t(w,{error:r?.errorModalData?.error||Error(),backFn:()=>a?o(a,!1):e(),onClick:()=>o(a||f.LANDING,!1)})},w=({error:r,backFn:i,onClick:n})=>{let{reset:l}=T(),{app:h}=j(),g=y(r,h.allowlistConfig);/*#__PURE__*/return o(e,{children:[/*#__PURE__*/t(s,{backFn:i}),/*#__PURE__*/o(x,{children:[/*#__PURE__*/t(m,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(c,{color:"var(--privy-color-error)"}),g.icon]})}),/*#__PURE__*/o(v,{children:[/*#__PURE__*/t("h3",{children:g.title}),/*#__PURE__*/t("p",{children:g.detail})]}),/*#__PURE__*/t(a,{color:"var(--privy-color-error)",onClick:()=>{r instanceof p&&(r.privyErrorCode===d.INVALID_CAPTCHA&&l(),r.privyErrorCode===d.ALLOWLIST_REJECTED&&h.allowlistConfig.errorCtaLink)?window.location.href=h.allowlistConfig.errorCtaLink:n?.()},children:g.ctaText})]})]})};let x=/*#__PURE__*/n.div.withConfig({displayName:"ConnectContainer",componentId:"sc-1d84a574-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;padding-bottom:16px;"]),v=/*#__PURE__*/n.div.withConfig({displayName:"GappedContainer",componentId:"sc-1d84a574-1"})(["display:flex;flex-direction:column;gap:8px;"]);export{C as ErrorScreen,w as ErrorScreenView};
1
+ import{jsx as t,jsxs as o,Fragment as e}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/ExclamationTriangleIcon";import i from"@heroicons/react/24/outline/PhoneIcon";import{styled as n}from"styled-components";import{PrimaryButton as a}from"../components/Button.mjs";import{CircleBorder as c}from"../components/CircleBorder.mjs";import{ModalHeader as s}from"../components/ModalHeader.mjs";import m from"../components/layout/StackedContainer.mjs";import{PrivyIframeError as l}from"../embedded-wallets/errors.mjs";import{PrivyError as p,PrivyErrorCode as d,PrivyClientError as h,PrivyApiError as g}from"../errors.mjs";import{useCaptcha as T}from"../hooks/captcha-context.mjs";import{usePrivyModal as u}from"../hooks/modal-context.mjs";import{LockClosed as j}from"../svg/lock-closed.mjs";import{ModalScreen as f}from"./index.mjs";import"../components/Loader.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/internal-context.mjs";import"../hooks/index.mjs";import"../embedded-wallets/types.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";let y=(o,e)=>{let n=/*#__PURE__*/t(r,{height:38,width:38,stroke:"var(--privy-color-error)"});if(o instanceof h)switch(o.privyErrorCode){case d.CLIENT_REQUEST_TIMEOUT:return{title:"Timed out",detail:o.message,ctaText:"Try again",icon:n};case d.INSUFFICIENT_BALANCE:return{title:"Insufficient balance",detail:o.message,ctaText:"Try again",icon:n};case d.TRANSACTION_FAILURE:return{title:"Transaction failure",detail:o.message,ctaText:"Try again",icon:n};default:return{title:"Something went wrong",detail:"Try again later",ctaText:"Try again",icon:n}}else{if(o instanceof l&&"twilio_verification_failed"===o.type)return{title:"Something went wrong",detail:o.message,ctaText:"Try again",icon:/*#__PURE__*/t(i,{height:38,width:38,stroke:"var(--privy-color-error)"})};if(!(o instanceof p))return o instanceof g&&o.status&&[400,422].includes(o.status)?{title:"Something went wrong",detail:o.message,ctaText:"Try again",icon:n}:{title:"Something went wrong",detail:"Try again later",ctaText:"Try again",icon:n};switch(o.privyErrorCode){case d.INVALID_CAPTCHA:return{title:"Something went wrong",detail:"Please try again.",ctaText:"Try again",icon:n};case d.DISALLOWED_LOGIN_METHOD:return{title:"Not allowed",detail:o.message,ctaText:"Try another method",icon:n};case d.ALLOWLIST_REJECTED:return{title:e.errorTitle||"You don't have access to this app",detail:e.errorDetail||"Have you been invited?",ctaText:e.errorCtaText||"Try another account",icon:/*#__PURE__*/t(j,{style:{width:"38px",height:"38px",strokeWidth:"1",stroke:"var(--privy-color-accent)",fill:"var(--privy-color-accent)"}})};case d.CAPTCHA_FAILURE:return{title:"Something went wrong",detail:"You did not pass CAPTCHA. Please try again.",ctaText:"Try again",icon:/*#__PURE__*/t("span",{})};case d.CAPTCHA_TIMEOUT:return{title:"Something went wrong",detail:"Something went wrong! Please try again later.",ctaText:"Try again",icon:/*#__PURE__*/t("span",{})};case d.LINKED_TO_ANOTHER_USER:return{title:"Authentication failed",detail:"This account has already been linked to another user.",ctaText:"Try again",icon:n};case d.NOT_SUPPORTED:return{title:"This region is not supported",detail:"SMS authentication from this region is not available",ctaText:"Try another method",icon:n};case d.TOO_MANY_REQUESTS:return{title:"Request failed",detail:"Too many attempts.",ctaText:"Try again later",icon:n};default:return{title:"Something went wrong",detail:"Try again later",ctaText:"Try again",icon:n}}}};const C=()=>{let{navigate:o,navigateBack:e,data:r,lastScreen:i,currentScreen:n}=u(),a=r?.errorModalData?.previousScreen||(i===n?void 0:i);/*#__PURE__*/return t(w,{error:r?.errorModalData?.error||Error(),backFn:()=>a?o(a,!1):e(),onClick:()=>o(a||f.LANDING,!1)})},w=({error:r,backFn:i,onClick:n})=>{let{reset:l}=T(),{app:h}=u(),g=y(r,h.allowlistConfig);/*#__PURE__*/return o(e,{children:[/*#__PURE__*/t(s,{backFn:i}),/*#__PURE__*/o(x,{children:[/*#__PURE__*/t(m,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(c,{color:"var(--privy-color-error)"}),g.icon]})}),/*#__PURE__*/o(v,{children:[/*#__PURE__*/t("h3",{children:g.title}),/*#__PURE__*/t("p",{children:g.detail})]}),/*#__PURE__*/t(a,{color:"var(--privy-color-error)",onClick:()=>{r instanceof p&&(r.privyErrorCode===d.INVALID_CAPTCHA&&l(),r.privyErrorCode===d.ALLOWLIST_REJECTED&&h.allowlistConfig.errorCtaLink)?window.location.href=h.allowlistConfig.errorCtaLink:n?.()},children:g.ctaText})]})]})};let x=/*#__PURE__*/n.div.withConfig({displayName:"ConnectContainer",componentId:"sc-1d84a574-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;padding-bottom:16px;"]),v=/*#__PURE__*/n.div.withConfig({displayName:"GappedContainer",componentId:"sc-1d84a574-1"})(["display:flex;flex-direction:column;gap:8px;"]);export{C as ErrorScreen,w as ErrorScreenView};
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as o,jsx as t}from"react/jsx-runtime";import{ModalScreen as r}from"./index.mjs";import{useState as n,useRef as i,useEffect as s}from"react";import{isMobile as a,isIOS as c}from"react-device-detect";import{styled as m}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as l}from"../client/user.mjs";import{PrimaryButton as p}from"../components/Button.mjs";import{CopytoClipboardButton as d}from"../components/CopyToClipboard.mjs";import{RefactorSpacerTop as h,FixedGappedContainer as u,CenteredItem as j,CenteredItemWithPadding as f}from"../components/Layouts.mjs";import{ConnectionLoader as g,Loader as E}from"../components/Loader.mjs";import{ModalFooter as y}from"../components/ModalFooter.mjs";import{ModalHeader as C}from"../components/ModalHeader.mjs";import{OpenLinkButton as T}from"../components/OpenLink.mjs";import{QrCode as v}from"../components/QrCode.mjs";import S from"../components/layout/StackedContainer.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as _}from"../constants.mjs";import{PrivyErrorCode as A,PrivyUserLimitReachedError as N}from"../errors.mjs";import{usePrivyInternal as I}from"../hooks/internal-context.mjs";import{usePrivyModal as b}from"../hooks/modal-context.mjs";import{usePrivyContext as w}from"../hooks/privy-context.mjs";import{Farcaster as x}from"../svg/farcaster.mjs";import{Title as R,SubTitle as k}from"./MfaScreens/StyledComponents.mjs";import"@ethersproject/address";import"../svg/checkmark.mjs";import"../svg/copy.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"qrcode";import"../svg/black-rounded-square.mjs";import"../utils/index.mjs";import"@ethersproject/providers";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";let O="#8a63d2";const L=()=>{let{authenticated:m,logout:L,ready:U,user:M}=w(),{lastScreen:W,navigate:q,navigateBack:H,setModalData:z,app:B}=b(),{getAuthFlow:Q,loginWithFarcaster:P,closePrivyModal:J,createAnalyticsEvent:K}=I(),[V,X]=n(void 0),[Y,G]=n(!1),[Z,$]=n(!1),ee=i([]),oe=Q(),te=oe?.meta.connectUri;return s((()=>{let e=Date.now(),o=setInterval((async()=>{let t=await oe.pollForReady.execute(),n=Date.now()-e;if(t){clearInterval(o),G(!0);try{await P(),$(!0)}catch(e){let o={retryable:!1,message:"Authentication failed"};if(e?.privyErrorCode===A.ALLOWLIST_REJECTED)return void q(r.ALLOWLIST_REJECTION_SCREEN);if(e?.privyErrorCode===A.USER_LIMIT_REACHED)return console.error(new N(e).toString()),void q(r.USER_LIMIT_REACHED_SCREEN);if(e?.privyErrorCode===A.USER_DOES_NOT_EXIST)return void q(r.ACCOUNT_NOT_FOUND_SCREEN);if(e?.privyErrorCode===A.LINKED_TO_ANOTHER_USER)o.detail=e.message??"This account has already been linked to another user.";else{if(e?.privyErrorCode===A.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return z({accountTransfer:{nonce:e.data?.data?.nonce,account:e.data?.data?.subject,displayName:e.data?.data?.account?.displayName,linkMethod:"farcaster",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress,farcasterEmbeddedAddress:e.data?.data?.otherUser?.farcasterEmbeddedAddress}}),void q(r.LINK_CONFLICT_SCREEN);e?.privyErrorCode===A.INVALID_CREDENTIALS?(o.retryable=!0,o.detail="Something went wrong. Try again."):e?.privyErrorCode===A.TOO_MANY_REQUESTS&&(o.detail="Too many requests. Please wait before trying again.")}X(o)}}else n>12e4&&(clearInterval(o),X({retryable:!0,message:"Authentication failed",detail:"The request timed out. Try again."}))}),2e3);return()=>{clearInterval(o),ee.current.forEach((e=>clearTimeout(e)))}}),[]),s((()=>{if(U&&m&&Z&&M){if(B?.legal.requireUsersAcceptTerms&&!M.hasAcceptedTerms){let e=setTimeout((()=>{q(r.AFFIRMATIVE_CONSENT_SCREEN)}),_);return()=>clearTimeout(e)}Z&&(l(M,B?.embeddedWallets.createOnLogin)?ee.current.push(setTimeout((()=>{z({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),K({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"FarcasterConnectStatusScreen"}}),L()},callAuthOnSuccessOnClose:!0}}),q(r.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),_)):ee.current.push(setTimeout((()=>J({shouldCallAuthOnSuccess:!0,isSuccess:!0})),_)))}}),[Z,U,m,M]),/*#__PURE__*/e(o,a||Y?{children:[/*#__PURE__*/t(C,{backFn:W?H:void 0,onClose:J},"header"),/*#__PURE__*/t(h,{}),
2
- /*#__PURE__*/t(o,c?{children:/*#__PURE__*/e(D,{children:[/*#__PURE__*/t(S,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(g,{success:Z,fail:!!V}),/*#__PURE__*/t(x,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/e(u,{children:[/*#__PURE__*/t(R,{children:V?V.message:"Sign in with Farcaster"}),/*#__PURE__*/t(k,{children:V?V.detail:"To sign in with Farcaster, please open the Warpcast app."})]}),te&&/*#__PURE__*/t(p,{onClick:e=>{e.preventDefault(),window.location.href=te},children:"Open Warpcast app"})]})}:{children:/*#__PURE__*/e(F,{children:[/*#__PURE__*/t(S,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(g,{success:Z,fail:!!V}),/*#__PURE__*/t(x,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/e(u,{children:[/*#__PURE__*/t(R,{children:V?V.message:"Signing in with Farcaster"}),/*#__PURE__*/t(k,{children:V?V.detail:"This should only take a moment"}),/*#__PURE__*/t(j,{children:te&&a&&/*#__PURE__*/t(T,{text:"Take me to Warpcast",url:te,color:O})})]})]})}),/*#__PURE__*/t(y,{})]}:{children:[/*#__PURE__*/t(C,{backFn:W?H:void 0,onClose:J},"header"),/*#__PURE__*/t(h,{}),/*#__PURE__*/t(F,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(R,{children:"Sign in with Farcaster"}),/*#__PURE__*/t(k,{children:"Scan with your phone's camera to continue."}),/*#__PURE__*/t(f,{children:te?/*#__PURE__*/t(v,{url:te,size:275,squareLogoElement:x}):/*#__PURE__*/t(E,{})}),/*#__PURE__*/e(j,{children:[/*#__PURE__*/t(k,{children:"Or copy this link and paste it into a phone browser to open the Warpcast app."}),te&&/*#__PURE__*/t(d,{text:te,itemName:"link",color:O})]})]})}),/*#__PURE__*/t(y,{})]})};let F=/*#__PURE__*/m.div.withConfig({displayName:"ConnectContainer",componentId:"sc-5a361367-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:27px;margin-right:27px;gap:24px;"]),D=/*#__PURE__*/m.div.withConfig({displayName:"ConnectContainerButton",componentId:"sc-5a361367-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{L as FarcasterConnectStatusScreen};
1
+ import{jsxs as e,Fragment as o,jsx as t}from"react/jsx-runtime";import{ModalScreen as r}from"./index.mjs";import{useState as n,useRef as i,useEffect as s}from"react";import{isMobile as a,isIOS as c}from"react-device-detect";import{styled as m}from"styled-components";import{shouldProceedtoEmbeddedWalletCreationFlow as l}from"../client/user.mjs";import{PrimaryButton as p}from"../components/Button.mjs";import{CopytoClipboardButton as d}from"../components/CopyToClipboard.mjs";import{RefactorSpacerTop as h,FixedGappedContainer as u,CenteredItem as j,CenteredItemWithPadding as f}from"../components/Layouts.mjs";import{ConnectionLoader as g,Loader as E}from"../components/Loader.mjs";import{ModalFooter as y}from"../components/ModalFooter.mjs";import{ModalHeader as C}from"../components/ModalHeader.mjs";import{OpenLinkButton as v}from"../components/OpenLink.mjs";import{QrCode as T}from"../components/QrCode.mjs";import S from"../components/layout/StackedContainer.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as _}from"../constants.mjs";import{PrivyErrorCode as A,PrivyUserLimitReachedError as N}from"../errors.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as I}from"../hooks/modal-context.mjs";import{usePrivyContext as w}from"../hooks/privy-context.mjs";import{Farcaster as x}from"../svg/farcaster.mjs";import{Title as R,SubTitle as k}from"./MfaScreens/StyledComponents.mjs";import"viem/utils";import"../svg/checkmark.mjs";import"../svg/copy.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"qrcode";import"../svg/black-rounded-square.mjs";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"ofetch";import"../components/PrefetchedImage.mjs";let O="#8a63d2";const L=()=>{let{authenticated:m,logout:L,ready:U,user:M}=w(),{lastScreen:W,navigate:q,navigateBack:H,setModalData:z,app:B}=I(),{getAuthFlow:P,loginWithFarcaster:Q,closePrivyModal:J,createAnalyticsEvent:K}=b(),[V,X]=n(void 0),[Y,G]=n(!1),[Z,$]=n(!1),ee=i([]),oe=P(),te=oe?.meta.connectUri;return s((()=>{let e=Date.now(),o=setInterval((async()=>{let t=await oe.pollForReady.execute(),n=Date.now()-e;if(t){clearInterval(o),G(!0);try{await Q(),$(!0)}catch(e){let o={retryable:!1,message:"Authentication failed"};if(e?.privyErrorCode===A.ALLOWLIST_REJECTED)return void q(r.ALLOWLIST_REJECTION_SCREEN);if(e?.privyErrorCode===A.USER_LIMIT_REACHED)return console.error(new N(e).toString()),void q(r.USER_LIMIT_REACHED_SCREEN);if(e?.privyErrorCode===A.USER_DOES_NOT_EXIST)return void q(r.ACCOUNT_NOT_FOUND_SCREEN);if(e?.privyErrorCode===A.LINKED_TO_ANOTHER_USER)o.detail=e.message??"This account has already been linked to another user.";else{if(e?.privyErrorCode===A.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return z({accountTransfer:{nonce:e.data?.data?.nonce,account:e.data?.data?.subject,displayName:e.data?.data?.account?.displayName,linkMethod:"farcaster",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress,farcasterEmbeddedAddress:e.data?.data?.otherUser?.farcasterEmbeddedAddress}}),void q(r.LINK_CONFLICT_SCREEN);e?.privyErrorCode===A.INVALID_CREDENTIALS?(o.retryable=!0,o.detail="Something went wrong. Try again."):e?.privyErrorCode===A.TOO_MANY_REQUESTS&&(o.detail="Too many requests. Please wait before trying again.")}X(o)}}else n>12e4&&(clearInterval(o),X({retryable:!0,message:"Authentication failed",detail:"The request timed out. Try again."}))}),2e3);return()=>{clearInterval(o),ee.current.forEach((e=>clearTimeout(e)))}}),[]),s((()=>{if(U&&m&&Z&&M){if(B?.legal.requireUsersAcceptTerms&&!M.hasAcceptedTerms){let e=setTimeout((()=>{q(r.AFFIRMATIVE_CONSENT_SCREEN)}),_);return()=>clearTimeout(e)}Z&&(l(M,B?.embeddedWallets.createOnLogin)?ee.current.push(setTimeout((()=>{z({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),K({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"FarcasterConnectStatusScreen"}}),L()},callAuthOnSuccessOnClose:!0}}),q(r.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),_)):ee.current.push(setTimeout((()=>J({shouldCallAuthOnSuccess:!0,isSuccess:!0})),_)))}}),[Z,U,m,M]),/*#__PURE__*/e(o,a||Y?{children:[/*#__PURE__*/t(C,{backFn:W?H:void 0,onClose:J},"header"),/*#__PURE__*/t(h,{}),
2
+ /*#__PURE__*/t(o,c?{children:/*#__PURE__*/e(D,{children:[/*#__PURE__*/t(S,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(g,{success:Z,fail:!!V}),/*#__PURE__*/t(x,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/e(u,{children:[/*#__PURE__*/t(R,{children:V?V.message:"Sign in with Farcaster"}),/*#__PURE__*/t(k,{children:V?V.detail:"To sign in with Farcaster, please open the Warpcast app."})]}),te&&/*#__PURE__*/t(p,{onClick:e=>{e.preventDefault(),window.location.href=te},children:"Open Warpcast app"})]})}:{children:/*#__PURE__*/e(F,{children:[/*#__PURE__*/t(S,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(g,{success:Z,fail:!!V}),/*#__PURE__*/t(x,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/e(u,{children:[/*#__PURE__*/t(R,{children:V?V.message:"Signing in with Farcaster"}),/*#__PURE__*/t(k,{children:V?V.detail:"This should only take a moment"}),/*#__PURE__*/t(j,{children:te&&a&&/*#__PURE__*/t(v,{text:"Take me to Warpcast",url:te,color:O})})]})]})}),/*#__PURE__*/t(y,{})]}:{children:[/*#__PURE__*/t(C,{backFn:W?H:void 0,onClose:J},"header"),/*#__PURE__*/t(h,{}),/*#__PURE__*/t(F,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(R,{children:"Sign in with Farcaster"}),/*#__PURE__*/t(k,{children:"Scan with your phone's camera to continue."}),/*#__PURE__*/t(f,{children:te?/*#__PURE__*/t(T,{url:te,size:275,squareLogoElement:x}):/*#__PURE__*/t(E,{})}),/*#__PURE__*/e(j,{children:[/*#__PURE__*/t(k,{children:"Or copy this link and paste it into a phone browser to open the Warpcast app."}),te&&/*#__PURE__*/t(d,{text:te,itemName:"link",color:O})]})]})}),/*#__PURE__*/t(y,{})]})};let F=/*#__PURE__*/m.div.withConfig({displayName:"ConnectContainer",componentId:"sc-5a361367-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:27px;margin-right:27px;gap:24px;"]),D=/*#__PURE__*/m.div.withConfig({displayName:"ConnectContainerButton",componentId:"sc-5a361367-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{L as FarcasterConnectStatusScreen};
@@ -1,2 +1,2 @@
1
- import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import{useState as r,useRef as n,useEffect as i}from"react";import{isMobile as s,isIOS as c}from"react-device-detect";import{styled as a}from"styled-components";import{PrimaryButton as m}from"../components/Button.mjs";import{CopytoClipboardButton as l}from"../components/CopyToClipboard.mjs";import{RefactorSpacerTop as p,FixedGappedContainer as d,CenteredItem as h,CenteredItemWithPadding as u}from"../components/Layouts.mjs";import{ConnectionLoader as j,Loader as f}from"../components/Loader.mjs";import{ModalFooter as g}from"../components/ModalFooter.mjs";import{ModalHeader as v}from"../components/ModalHeader.mjs";import{OpenLinkButton as y}from"../components/OpenLink.mjs";import{QrCode as k}from"../components/QrCode.mjs";import w from"../components/layout/StackedContainer.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as x}from"../constants.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as C}from"../hooks/modal-context.mjs";import{Farcaster as S}from"../svg/farcaster.mjs";import{Title as I,SubTitle as T}from"./MfaScreens/StyledComponents.mjs";import"../svg/checkmark.mjs";import"../svg/copy.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"qrcode";import"../svg/black-rounded-square.mjs";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";let _="#8a63d2";const A=()=>{let{lastScreen:a,navigateBack:A,data:M,app:L}=C(),{requestFarcasterSignerStatus:O,closePrivyModal:z}=b(),[P,B]=r(void 0),[D,N]=r(!1),[R,W]=r(!1),E=n([]),H=M?.farcasterSigner;i((()=>{let o=Date.now(),e=setInterval((async()=>{if(!H?.public_key)return clearInterval(e),void B({retryable:!0,message:"Connect failed",detail:"Something went wrong. Please try again."});"approved"===H.status&&(clearInterval(e),N(!1),W(!0),E.current.push(setTimeout((()=>z({shouldCallAuthOnSuccess:!1,isSuccess:!0})),x)));let t=await O(H?.public_key),r=Date.now()-o;"approved"===t.status?(clearInterval(e),N(!1),W(!0),E.current.push(setTimeout((()=>z({shouldCallAuthOnSuccess:!1,isSuccess:!0})),x))):r>3e5?(clearInterval(e),B({retryable:!0,message:"Connect failed",detail:"The request timed out. Try again."})):"revoked"===t.status&&(clearInterval(e),B({retryable:!0,message:"Request rejected",detail:"The request was rejected. Please try again."}))}),2e3);return()=>{clearInterval(e),E.current.forEach((o=>clearTimeout(o)))}}),[]);let Q="pending_approval"===H?.status?H.signer_approval_url:void 0;/*#__PURE__*/return o(e,s||D?{children:[/*#__PURE__*/t(v,{backFn:a?A:void 0,onClose:z},"header"),/*#__PURE__*/t(p,{}),
2
- /*#__PURE__*/t(e,c?{children:/*#__PURE__*/o(F,{children:[/*#__PURE__*/t(w,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(j,{success:R,fail:!!P}),/*#__PURE__*/t(S,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/o(d,{children:[/*#__PURE__*/t(I,{children:P?P.message:"Add a signer to Farcaster"}),/*#__PURE__*/t(T,{children:P?P.detail:"This will allow "+L.name+" to add casts, likes, follows, and more on your behalf."})]}),Q&&/*#__PURE__*/t(m,{onClick:o=>{o.preventDefault(),window.location.href=Q},children:"Open Warpcast app"})]})}:{children:/*#__PURE__*/o(q,{children:[/*#__PURE__*/t(w,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(j,{success:R,fail:!!P}),/*#__PURE__*/t(S,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/o(d,{children:[/*#__PURE__*/t(I,{children:P?P.message:"Requesting signer from Farcaster"}),/*#__PURE__*/t(T,{children:P?P.detail:"This should only take a moment"}),/*#__PURE__*/t(h,{children:Q&&s&&/*#__PURE__*/t(y,{text:"Take me to Warpcast",url:Q,color:_})})]})]})}),/*#__PURE__*/t(g,{})]}:{children:[/*#__PURE__*/t(v,{backFn:a?A:void 0,onClose:z},"header"),/*#__PURE__*/t(p,{}),/*#__PURE__*/t(q,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/t(I,{children:"Add a signer to Farcaster"}),/*#__PURE__*/o(T,{children:["This will allow ",L.name," to add casts, likes, follows, and more on your behalf."]}),/*#__PURE__*/t(u,{children:"pending_approval"===H?.status?/*#__PURE__*/t(k,{url:H.signer_approval_url,size:275,squareLogoElement:S}):/*#__PURE__*/t(f,{})}),/*#__PURE__*/o(h,{children:[/*#__PURE__*/t(T,{children:"Or copy this link and paste it into a phone browser to open the Warpcast app."}),"pending_approval"===H?.status&&/*#__PURE__*/t(l,{text:H.signer_approval_url,itemName:"link",color:_})]})]})}),/*#__PURE__*/t(g,{})]})};let q=/*#__PURE__*/a.div.withConfig({displayName:"ConnectContainer",componentId:"sc-6e2c96cd-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:27px;margin-right:27px;gap:24px;"]),F=/*#__PURE__*/a.div.withConfig({displayName:"ConnectContainerButton",componentId:"sc-6e2c96cd-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{A as FarcasterSignerStatusScreen};
1
+ import{jsxs as e,Fragment as o,jsx as t}from"react/jsx-runtime";import{useState as r,useRef as n,useEffect as i}from"react";import{isMobile as s,isIOS as c}from"react-device-detect";import{styled as a}from"styled-components";import{PrimaryButton as m}from"../components/Button.mjs";import{CopytoClipboardButton as l}from"../components/CopyToClipboard.mjs";import{RefactorSpacerTop as p,FixedGappedContainer as d,CenteredItem as h,CenteredItemWithPadding as u}from"../components/Layouts.mjs";import{ConnectionLoader as j,Loader as f}from"../components/Loader.mjs";import{ModalFooter as g}from"../components/ModalFooter.mjs";import{ModalHeader as v}from"../components/ModalHeader.mjs";import{OpenLinkButton as y}from"../components/OpenLink.mjs";import{QrCode as k}from"../components/QrCode.mjs";import w from"../components/layout/StackedContainer.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as x}from"../constants.mjs";import{usePrivyInternal as b}from"../hooks/internal-context.mjs";import{usePrivyModal as C}from"../hooks/modal-context.mjs";import{Farcaster as S}from"../svg/farcaster.mjs";import{Title as I,SubTitle as T}from"./MfaScreens/StyledComponents.mjs";import"../svg/checkmark.mjs";import"../svg/copy.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"qrcode";import"../svg/black-rounded-square.mjs";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";let _="#8a63d2";const A=()=>{let{lastScreen:a,navigateBack:A,data:M,app:L}=C(),{requestFarcasterSignerStatus:O,closePrivyModal:P}=b(),[z,B]=r(void 0),[D,N]=r(!1),[R,W]=r(!1),E=n([]),H=M?.farcasterSigner;i((()=>{let e=Date.now(),o=setInterval((async()=>{if(!H?.public_key)return clearInterval(o),void B({retryable:!0,message:"Connect failed",detail:"Something went wrong. Please try again."});"approved"===H.status&&(clearInterval(o),N(!1),W(!0),E.current.push(setTimeout((()=>P({shouldCallAuthOnSuccess:!1,isSuccess:!0})),x)));let t=await O(H?.public_key),r=Date.now()-e;"approved"===t.status?(clearInterval(o),N(!1),W(!0),E.current.push(setTimeout((()=>P({shouldCallAuthOnSuccess:!1,isSuccess:!0})),x))):r>3e5?(clearInterval(o),B({retryable:!0,message:"Connect failed",detail:"The request timed out. Try again."})):"revoked"===t.status&&(clearInterval(o),B({retryable:!0,message:"Request rejected",detail:"The request was rejected. Please try again."}))}),2e3);return()=>{clearInterval(o),E.current.forEach((e=>clearTimeout(e)))}}),[]);let Q="pending_approval"===H?.status?H.signer_approval_url:void 0;/*#__PURE__*/return e(o,s||D?{children:[/*#__PURE__*/t(v,{backFn:a?A:void 0,onClose:P},"header"),/*#__PURE__*/t(p,{}),
2
+ /*#__PURE__*/t(o,c?{children:/*#__PURE__*/e(F,{children:[/*#__PURE__*/t(w,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(j,{success:R,fail:!!z}),/*#__PURE__*/t(S,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/e(d,{children:[/*#__PURE__*/t(I,{children:z?z.message:"Add a signer to Farcaster"}),/*#__PURE__*/t(T,{children:z?z.detail:"This will allow "+L.name+" to add casts, likes, follows, and more on your behalf."})]}),Q&&/*#__PURE__*/t(m,{onClick:e=>{e.preventDefault(),window.location.href=Q},children:"Open Warpcast app"})]})}:{children:/*#__PURE__*/e(q,{children:[/*#__PURE__*/t(w,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(j,{success:R,fail:!!z}),/*#__PURE__*/t(S,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/e(d,{children:[/*#__PURE__*/t(I,{children:z?z.message:"Requesting signer from Farcaster"}),/*#__PURE__*/t(T,{children:z?z.detail:"This should only take a moment"}),/*#__PURE__*/t(h,{children:Q&&s&&/*#__PURE__*/t(y,{text:"Take me to Warpcast",url:Q,color:_})})]})]})}),/*#__PURE__*/t(g,{})]}:{children:[/*#__PURE__*/t(v,{backFn:a?A:void 0,onClose:P},"header"),/*#__PURE__*/t(p,{}),/*#__PURE__*/t(q,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/t(I,{children:"Add a signer to Farcaster"}),/*#__PURE__*/e(T,{children:["This will allow ",L.name," to add casts, likes, follows, and more on your behalf."]}),/*#__PURE__*/t(u,{children:"pending_approval"===H?.status?/*#__PURE__*/t(k,{url:H.signer_approval_url,size:275,squareLogoElement:S}):/*#__PURE__*/t(f,{})}),/*#__PURE__*/e(h,{children:[/*#__PURE__*/t(T,{children:"Or copy this link and paste it into a phone browser to open the Warpcast app."}),"pending_approval"===H?.status&&/*#__PURE__*/t(l,{text:H.signer_approval_url,itemName:"link",color:_})]})]})}),/*#__PURE__*/t(g,{})]})};let q=/*#__PURE__*/a.div.withConfig({displayName:"ConnectContainer",componentId:"sc-6e2c96cd-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:27px;margin-right:27px;gap:24px;"]),F=/*#__PURE__*/a.div.withConfig({displayName:"ConnectContainerButton",componentId:"sc-6e2c96cd-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{A as FarcasterSignerStatusScreen};
@@ -1,2 +1,2 @@
1
- import{jsxs as o,Fragment as t,jsx as e}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as r}from"react";import{createWalletClient as s,custom as a,publicActions as m,createPublicClient as c,http as l}from"viem";import{RefactorSpacerTop as p,CenteredItemWithGap as d,RefactorSpacerBottom as u}from"../../components/Layouts.mjs";import{BlobbyFooter as h}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as g}from"../../components/ScreenHeader.mjs";import j from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as f}from"../../components/primitives/NeutralSpinner/index.mjs";import{addToDefaultChains as v}from"../../connectors/chains/utils.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as y}from"../../constants.mjs";import{PrivyClientError as w,PrivyErrorCode as b}from"../../errors.mjs";import{usePrivyInternal as I}from"../../hooks/internal-context.mjs";import{usePrivyModal as C}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as S}from"../../hooks/useGetTokenPrice.mjs";import{useWallets as T}from"../../hooks/useWallets.mjs";import{toDisplayName as k}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as N}from"../../lib/funding/analytics.mjs";import{getQuote as x,toGetQuoteInput as A,toEvmTransactionRequestInfoFromQuote as E}from"../../lib/funding/reservoir.mjs";import{RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID as F,RELAY_SOLANA_NATIVE_CURRENCY_ID as L}from"../../lib/solana/index.mjs";import{getNativeCurrencyFromLamports as B,getSolanaFormattedAmounts as P}from"../../lib/solana/transaction.mjs";import{getBalanceForChains as M}from"../../lib/wallets/actions/getBalanceForChains.mjs";import{usePlugins as U}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as R}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as W,getJsonRpcEndpointFromChain as _}from"../../utils/index.mjs";import{ModalScreen as q}from"../index.mjs";import{BridgeNetworkSelectionView as O}from"./BridgeNetworkSelectionView.mjs";import{TransferOrBridgeLoadingScreen as H}from"./TransferOrBridgeLoadingScreen.mjs";import"styled-components";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.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"../../utils/buffer/readBigInt64LE.mjs";import"@ethersproject/providers";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Subtitle.mjs";import"../../components/ui/typography/Title.mjs";import"../../components/ui/wallet/NetworkBalanceCard.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../components/ui/wallet/shared.mjs";import"../../components/ui/wallet/NetworkSelectorPanel.mjs";import"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"../../lib/ethers.mjs";import"@ethersproject/bignumber";import"@ethersproject/units";import"../../ethers-Cz-frLvN.mjs";import"./styles.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";import"../../formatters--YjgN2Dw.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";const $=()=>{let{rpcConfig:$,appId:z,closePrivyModal:D,createAnalyticsEvent:G}=I(),{navigate:V,setModalData:Q,app:X,data:Y}=C(),{wallets:Z}=T(),J=U(),[K,oo]=i(null),[to,eo]=i(null),[no,io]=i([]),[ro,so]=i(0),[ao,mo]=i(!1),[co,lo]=i(!1),[po,uo]=i(!1),[ho,go]=i(!1);if(!Y?.funding||"solana"!==Y.funding.chainType)throw Error("Invalid funding data");let{address:jo,cluster:fo,connectedWalletAddress:vo}=Y.funding,[yo,wo]=i(Y.funding.amount),bo=vo?Z.find((({address:o})=>o===vo)):Z[0],[Io,Co]=i(null);r((()=>{(async()=>{if(!bo)return;let o=await bo.getEthereumProvider();Co(s({account:bo.address,transport:a(o)}).extend(m))})().catch(console.error)}),[bo]);let[So,To]=i(0n),ko=B(So);r((()=>{let o=J(R);o?o.getBalance({address:jo,cluster:fo}).then((o=>To(BigInt(o)))):console.warn("Unable to load solana plugin, skipping balance")}),[]);let[No,xo]=i(),{tokenPrice:Ao}=S("solana"),{fundingAmountInBaseUnit:Eo,fundingAmountInUsd:Fo}=P({amount:yo,fee:0n,tokenPrice:Ao});r((()=>{(async()=>{if(!Io||!bo)return;let o=["testnet","devnet"].includes(fo.name);o&&console.warn("Solana testnets are not supported for bridging");let t=v(X.chains).filter((({testnet:t})=>!!t===o)),e=(await M({chains:t,address:bo.address,appId:z,rpcConfig:$})).filter((o=>o.balance>0n));if(e.length<1)return void oo(new w(`Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));e.sort(((o,t)=>Number(t.balance-o.balance)));let n=(await Promise.allSettled(e.map((async o=>({...o,quote:await x({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:o.chain.id})})}))))).filter((o=>"fulfilled"===o.status)).map((o=>o.value));if(n.length<1)return void oo(new w(`Unable to fetch quotes for bridging. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));let i=n.map((({quote:o,balance:t,chain:e})=>({bridgeTx:E(o),balance:t,chain:e}))).filter((({bridgeTx:o})=>!!o));if(i.length>1)return void io(i);let r=i.at(0);r?(lo(!0),xo({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):oo(new w(`Unable to select bridge option from quotes. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE))})().catch(console.error)}),[Io]),r((()=>{(async()=>{let o,t;if(!Io||!bo||ao||po||!No)return;mo(!0);let e=c({chain:No.chain,transport:l(_(No.chain,$,z))});try{o=await e.prepareTransactionRequest({account:bo.address,to:No.to,chain:No.chain,data:No.data,value:BigInt(No.value??0)})}catch(o){console.error(o),no.length>1&&eo(o.shortMessage??"Something went wrong")}if(o){mo(!1),uo(!0);try{await Io.switchChain({id:No.chain.id})}catch(o){await Io.addChain({chain:No.chain}),await Io.switchChain({id:No.chain.id})}try{t=await Io.sendTransaction(o),G({eventName:N,payload:{provider:"external",status:"success",address:bo.address,chainId:No.chain.id,value:No.value?.toString(),txHash:t}})}catch(o){console.error(o),"TransactionExecutionError"===o.name&&(no.length<1?oo(new w(o.shortMessage,void 0,b.TRANSACTION_FAILURE)):eo(o.shortMessage??"Something went wrong"))}t?(await Io.waitForTransactionReceipt({hash:t}),uo(!1),go(!0)):uo(!1)}else mo(!1)})().catch(console.error)}),[Io,No]),r((()=>{if(!K)return;let o={error:K,previousScreen:q.FUNDING_TRANSFER_FROM_WALLET_SCREEN};Q({funding:Y?.funding,sendTransaction:Y?.sendTransaction,errorModalData:o}),V(q.ERROR_SCREEN,!1)}),[K]);let Lo=bo?k(bo.walletClientType,bo.connectorType,bo.walletClientType)||"wallet":null;if(r((()=>{if(!ho)return;let o=setTimeout(D,y);return()=>clearTimeout(o)}),[ho]),ho/*#__PURE__*/)return o(t,{children:[/*#__PURE__*/e(j,{}),/*#__PURE__*/e(p,{}),/*#__PURE__*/o(d,{children:[/*#__PURE__*/e(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e(g,{title:"Success!",description:`You’ve successfully added ${yo} SOL to your ${X.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e(u,{}),/*#__PURE__*/e(h,{})]});let Bo=no[ro];return no.length>1&&Bo?/*#__PURE__*/e(O,{displayName:Lo,configuredFundingChain:fo,formattedBalance:ko,fundingAmount:yo,fundingCurrency:"SOL",fundingAmountInUsd:Fo,options:no,selectedOption:Bo,isPreparing:ao,isSubmitting:po,addressToFund:jo,fundingWalletAddress:bo?.address||"",errorMessage:to,onSubmit:()=>{Y.funding?.amount!==yo?async function(){if(bo&&Bo)try{let o=await x({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:Bo.chain.id})}),t=E(o);if(!t)throw Error("Invalid transaction request");lo(!0),xo({data:t.data,to:t.to,value:t.value,chain:Bo.chain})}catch(o){console.error(o),oo(new w("Unable to fetch quotes for bridging",o,b.INSUFFICIENT_BALANCE))}}().catch(console.error):xo({to:Bo.bridgeTx.to,data:Bo.bridgeTx.data,value:Bo.bridgeTx.value,chain:Bo.chain})},onSelect:o=>{o!==ro&&(eo(null),so(o))},onAmountChange:wo}):po&&bo?/*#__PURE__*/e(H,{wallet:bo,displayName:Lo,addressToFund:jo,isBridging:co,isErc20Flow:!1,chainId:"solana",chainName:fo.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
1
+ import{jsxs as o,Fragment as t,jsx as e}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as r}from"react";import{createWalletClient as s,custom as a,publicActions as m,createPublicClient as c,http as l}from"viem";import{RefactorSpacerTop as p,CenteredItemWithGap as d,RefactorSpacerBottom as u}from"../../components/Layouts.mjs";import{BlobbyFooter as h}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as g}from"../../components/ScreenHeader.mjs";import j from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as f}from"../../components/primitives/NeutralSpinner/index.mjs";import{addToDefaultChains as v}from"../../connectors/chains/utils.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as y}from"../../constants.mjs";import{PrivyClientError as w,PrivyErrorCode as b}from"../../errors.mjs";import{usePrivyInternal as I}from"../../hooks/internal-context.mjs";import{usePrivyModal as C}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as S}from"../../hooks/useGetTokenPrice.mjs";import{useWallets as T}from"../../hooks/useWallets.mjs";import{toDisplayName as k}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as N}from"../../lib/funding/analytics.mjs";import{getQuote as x,toGetQuoteInput as A,toEvmTransactionRequestInfoFromQuote as E}from"../../lib/funding/reservoir.mjs";import{RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID as F,RELAY_SOLANA_NATIVE_CURRENCY_ID as L}from"../../lib/solana/index.mjs";import{getNativeCurrencyFromLamports as P,getSolanaFormattedAmounts as B}from"../../lib/solana/transaction.mjs";import{getBalanceForChains as M}from"../../lib/wallets/actions/getBalanceForChains.mjs";import{usePlugins as U}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as R}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as W}from"../../utils/index.mjs";import{getJsonRpcEndpointFromChain as _}from"../../utils/eth/getPublicClient.mjs";import{ModalScreen as q}from"../index.mjs";import{BridgeNetworkSelectionView as O}from"./BridgeNetworkSelectionView.mjs";import{TransferOrBridgeLoadingScreen as H}from"./TransferOrBridgeLoadingScreen.mjs";import"styled-components";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.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"../../utils/buffer/readBigInt64LE.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Subtitle.mjs";import"../../components/ui/typography/Title.mjs";import"../../components/ui/wallet/NetworkBalanceCard.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../components/ui/wallet/shared.mjs";import"../../components/ui/wallet/NetworkSelectorPanel.mjs";import"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"../../lib/ethers.mjs";import"./styles.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";import"../../formatters--YjgN2Dw.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";const $=()=>{let{rpcConfig:$,appId:z,closePrivyModal:D,createAnalyticsEvent:G}=I(),{navigate:V,setModalData:Q,app:X,data:Y}=C(),{wallets:Z}=T(),J=U(),[K,oo]=i(null),[to,eo]=i(null),[no,io]=i([]),[ro,so]=i(0),[ao,mo]=i(!1),[co,lo]=i(!1),[po,uo]=i(!1),[ho,go]=i(!1);if(!Y?.funding||"solana"!==Y.funding.chainType)throw Error("Invalid funding data");let{address:jo,cluster:fo,connectedWalletAddress:vo}=Y.funding,[yo,wo]=i(Y.funding.amount),bo=vo?Z.find((({address:o})=>o===vo)):Z[0],[Io,Co]=i(null);r((()=>{(async()=>{if(!bo)return;let o=await bo.getEthereumProvider();Co(s({account:bo.address,transport:a(o)}).extend(m))})().catch(console.error)}),[bo]);let[So,To]=i(0n),ko=P(So);r((()=>{let o=J(R);o?o.getBalance({address:jo,cluster:fo}).then((o=>To(BigInt(o)))):console.warn("Unable to load solana plugin, skipping balance")}),[]);let[No,xo]=i(),{tokenPrice:Ao}=S("solana"),{fundingAmountInBaseUnit:Eo,fundingAmountInUsd:Fo}=B({amount:yo,fee:0n,tokenPrice:Ao});r((()=>{(async()=>{if(!Io||!bo)return;let o=["testnet","devnet"].includes(fo.name);o&&console.warn("Solana testnets are not supported for bridging");let t=v(X.chains).filter((({testnet:t})=>!!t===o)),e=(await M({chains:t,address:bo.address,appId:z,rpcConfig:$})).filter((o=>o.balance>0n));if(e.length<1)return void oo(new w(`Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));e.sort(((o,t)=>Number(t.balance-o.balance)));let n=(await Promise.allSettled(e.map((async o=>({...o,quote:await x({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:o.chain.id})})}))))).filter((o=>"fulfilled"===o.status)).map((o=>o.value));if(n.length<1)return void oo(new w(`Unable to fetch quotes for bridging. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));let i=n.map((({quote:o,balance:t,chain:e})=>({bridgeTx:E(o),balance:t,chain:e}))).filter((({bridgeTx:o})=>!!o));if(i.length>1)return void io(i);let r=i.at(0);r?(lo(!0),xo({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):oo(new w(`Unable to select bridge option from quotes. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE))})().catch(console.error)}),[Io]),r((()=>{(async()=>{let o,t;if(!Io||!bo||ao||po||!No)return;mo(!0);let e=c({chain:No.chain,transport:l(_(No.chain,$,z))});try{o=await e.prepareTransactionRequest({account:bo.address,to:No.to,chain:No.chain,data:No.data,value:BigInt(No.value??0)})}catch(o){console.error(o),no.length>1&&eo(o.shortMessage??"Something went wrong")}if(o){mo(!1),uo(!0);try{await Io.switchChain({id:No.chain.id})}catch(o){await Io.addChain({chain:No.chain}),await Io.switchChain({id:No.chain.id})}try{t=await Io.sendTransaction(o),G({eventName:N,payload:{provider:"external",status:"success",address:bo.address,chainId:No.chain.id,value:No.value?.toString(),txHash:t}})}catch(o){console.error(o),"TransactionExecutionError"===o.name&&(no.length<1?oo(new w(o.shortMessage,void 0,b.TRANSACTION_FAILURE)):eo(o.shortMessage??"Something went wrong"))}t?(await Io.waitForTransactionReceipt({hash:t}),uo(!1),go(!0)):uo(!1)}else mo(!1)})().catch(console.error)}),[Io,No]),r((()=>{if(!K)return;let o={error:K,previousScreen:q.FUNDING_TRANSFER_FROM_WALLET_SCREEN};Q({funding:Y?.funding,sendTransaction:Y?.sendTransaction,errorModalData:o}),V(q.ERROR_SCREEN,!1)}),[K]);let Lo=bo?k(bo.walletClientType,bo.connectorType,bo.walletClientType)||"wallet":null;if(r((()=>{if(!ho)return;let o=setTimeout(D,y);return()=>clearTimeout(o)}),[ho]),ho/*#__PURE__*/)return o(t,{children:[/*#__PURE__*/e(j,{}),/*#__PURE__*/e(p,{}),/*#__PURE__*/o(d,{children:[/*#__PURE__*/e(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e(g,{title:"Success!",description:`You’ve successfully added ${yo} SOL to your ${X.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e(u,{}),/*#__PURE__*/e(h,{})]});let Po=no[ro];return no.length>1&&Po?/*#__PURE__*/e(O,{displayName:Lo,configuredFundingChain:fo,formattedBalance:ko,fundingAmount:yo,fundingCurrency:"SOL",fundingAmountInUsd:Fo,options:no,selectedOption:Po,isPreparing:ao,isSubmitting:po,addressToFund:jo,fundingWalletAddress:bo?.address||"",errorMessage:to,onSubmit:()=>{Y.funding?.amount!==yo?async function(){if(bo&&Po)try{let o=await x({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:Po.chain.id})}),t=E(o);if(!t)throw Error("Invalid transaction request");lo(!0),xo({data:t.data,to:t.to,value:t.value,chain:Po.chain})}catch(o){console.error(o),oo(new w("Unable to fetch quotes for bridging",o,b.INSUFFICIENT_BALANCE))}}().catch(console.error):xo({to:Po.bridgeTx.to,data:Po.bridgeTx.data,value:Po.bridgeTx.value,chain:Po.chain})},onSelect:o=>{o!==ro&&(eo(null),so(o))},onAmountChange:wo}):po&&bo?/*#__PURE__*/e(H,{wallet:bo,displayName:Lo,addressToFund:jo,isBridging:co,isErc20Flow:!1,chainId:"solana",chainName:fo.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
2
  /*#__PURE__*/o(t,{children:[/*#__PURE__*/e(j,{}),/*#__PURE__*/e(f,{}),/*#__PURE__*/e("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e(h,{})]})};export{$ as AwaitingEvmToSolBridgingScreen};