@privy-io/react-auth 3.11.1-beta-20260122161812 → 3.12.0

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 (416) hide show
  1. package/dist/cjs/AccountNotFoundScreen-BBWWze9O.js +1 -0
  2. package/dist/cjs/{Address-BJFF-dMG.js → Address-6qDWL5TN.js} +4 -4
  3. package/dist/cjs/AffirmativeConsentScreen-CCwAwjH1.js +6 -0
  4. package/dist/cjs/AllowlistRejectionScreen-DEMYbzGA.js +1 -0
  5. package/dist/cjs/AuthenticateWithWalletScreen-dBvBC7MB.js +1 -0
  6. package/dist/cjs/AwaitingEvmToSolBridgingScreen-D9NwI47L.js +2 -0
  7. package/dist/cjs/AwaitingExternalEthereumTransferScreen-D_0NulpI.js +2 -0
  8. package/dist/cjs/AwaitingPasswordlessCodeScreen-B4HAKL4-.js +103 -0
  9. package/dist/cjs/AwaitingSolToEvmBridgingScreen-CnuLLTC0.js +2 -0
  10. package/dist/cjs/{BridgeNetworkSelectionView-BNv-V9G2.js → BridgeNetworkSelectionView-DKA06V8u.js} +11 -11
  11. package/dist/cjs/CaptchaScreen-N-ueJQF3.js +1 -0
  12. package/dist/cjs/CoinbaseOnrampStatusScreen-06yaO6r4.js +16 -0
  13. package/dist/cjs/ConnectEmailForm-DZrCSv9t.js +3 -0
  14. package/dist/cjs/ConnectLedgerScreen-C7vGQocf.js +9 -0
  15. package/dist/cjs/ConnectOnlyLandingScreen-_9y9kOsT.js +1 -0
  16. package/dist/cjs/ConnectOnlyStatusScreen-mZHx4a7S.js +1 -0
  17. package/dist/cjs/ConnectOrCreateScreen-Cp4uExOd.js +1 -0
  18. package/dist/cjs/{ConnectPhoneForm-C8JEoPHB.js → ConnectPhoneForm-BWSmRonl.js} +1 -1
  19. package/dist/cjs/{ConnectWalletView-bug4GgVZ.js → ConnectWalletView-Bh1DK9t5.js} +6 -6
  20. package/dist/cjs/ConnectionStatusScreen-B27DUsGt.js +7 -0
  21. package/dist/cjs/CrossAppAuthScreen-BbLFbCdU.js +1 -0
  22. package/dist/cjs/CustomLandingScreenView-DP1fJrBU.js +23 -0
  23. package/dist/cjs/DelegatedActionsConsentScreen-DzWruJOn.js +1 -0
  24. package/dist/cjs/DelegatedActionsRevokeScreen-D-TwUXyj.js +1 -0
  25. package/dist/cjs/EmbeddedWalletConnectingScreen-CYav4Mjb.js +1 -0
  26. package/dist/cjs/EmbeddedWalletCreatedScreen-m0t_c_AA.js +1 -0
  27. package/dist/cjs/EmbeddedWalletKeyExportScreen-_4GMdJuo.js +40 -0
  28. package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-B5-JBZRJ.js +1 -0
  29. package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-CITAy3i6.js +1 -0
  30. package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-DG5LKyjo.js +1 -0
  31. package/dist/cjs/{EnrollTotp-BpzRLjKc.js → EnrollTotp-leOB_B4o.js} +8 -8
  32. package/dist/cjs/ErrorScreen-xNDIVXx8.js +4 -0
  33. package/dist/cjs/{FarcasterConnectStatusScreen-DuOFuio7.js → FarcasterConnectStatusScreen-Bzmd4izn.js} +9 -9
  34. package/dist/cjs/FarcasterSignerStatusScreen-Cxoi54pp.js +29 -0
  35. package/dist/cjs/FundSolWalletWithExternalSolanaWallet-BCyBv_xe.js +2 -0
  36. package/dist/cjs/{FundWalletMethodHeader-Dn7FrcOp.js → FundWalletMethodHeader-YwNCXAU_.js} +1 -1
  37. package/dist/cjs/FundingEditAmountScreen-CDlb4Acx.js +1 -0
  38. package/dist/cjs/FundingMethodSelectionScreen-DlPxjsJq.js +1 -0
  39. package/dist/cjs/InAppBrowserLoginNotPossible-Bdx0vKyA.js +1 -0
  40. package/dist/cjs/InstallWalletScreen-Cshn01eK.js +1 -0
  41. package/dist/cjs/LandingScreen-0FdwpJ9w.js +1 -0
  42. package/dist/cjs/{LinkConflictScreen-8h7pmzsL.js → LinkConflictScreen-BCzS7Szr.js} +7 -7
  43. package/dist/cjs/LinkEmailScreen-B7rxdQso.js +1 -0
  44. package/dist/cjs/{LinkPasskeyScreen-cUu7WCqn.js → LinkPasskeyScreen-o4qdrAL3.js} +10 -10
  45. package/dist/cjs/LinkPhoneScreen-DweFqlM1.js +1 -0
  46. package/dist/cjs/LoginFailedScreen-mHcvCBEz.js +1 -0
  47. package/dist/cjs/ManualTransferScreen-CfYgtyLD.js +1 -0
  48. package/dist/cjs/MfaAuthEnrollmentFlowScreen-D631h0XW.js +1 -0
  49. package/dist/cjs/MfaAuthVerifyFlowScreen-BZ3IyqAd.js +1 -0
  50. package/dist/cjs/MfaEnrollmentFlowScreen-_tNeX5lT.js +1 -0
  51. package/dist/cjs/MfaVerifyFlowScreen-D_7nkuBq.js +1 -0
  52. package/dist/cjs/{ModalHeader-7knkCFjH.js → ModalHeader-C5O9gNUP.js} +1 -1
  53. package/dist/cjs/{MoonpayStatusScreen-BWA_sZnz.js → MoonpayStatusScreen-DoFbZ_0d.js} +3 -3
  54. package/dist/cjs/OAuthStatusScreen-BZY7BiP5.js +1 -0
  55. package/dist/cjs/PasskeySelectSignupOrLogin-C3k_ixTz.js +1 -0
  56. package/dist/cjs/PasskeyStatusScreen-BX-SOBDr.js +3 -0
  57. package/dist/cjs/PasswordRecoveryScreen-VZQDtt5v.js +20 -0
  58. package/dist/cjs/{QrCode-DPcePk5I.js → QrCode-CLd3Ytk7.js} +3 -3
  59. package/dist/cjs/RecoveryOAuthStatusScreen-DKYx6ECd.js +1 -0
  60. package/dist/cjs/RecoveryPasswordCreateScreen-DP0xOBMA.js +1 -0
  61. package/dist/cjs/RecoverySelectionScreen-Bw9_M6y0.js +7 -0
  62. package/dist/cjs/{Screen-uapp8UP4.js → Screen-BSwlHqPg.js} +4 -4
  63. package/dist/cjs/{ScreenLayout-BENEZm1m.js → ScreenLayout-BtVIYAso.js} +1 -1
  64. package/dist/cjs/SetAutomaticRecoveryScreen-SUOUjBk4.js +14 -0
  65. package/dist/cjs/{SetWalletPasswordForm-NMSn8MW-.js → SetWalletPasswordForm-Gkq-DskE.js} +3 -3
  66. package/dist/cjs/SignRequestScreen-BNcy6yU_.js +26 -0
  67. package/dist/cjs/{StandardSignAndSendTransactionScreen-C0Af9uPz.js → StandardSignAndSendTransactionScreen-z_EUNaeD.js} +3 -3
  68. package/dist/cjs/TelegramAuthScreen-DV8KYJMX.js +1 -0
  69. package/dist/cjs/{TransactionDetails-BCQvuSov.js → TransactionDetails-DYow9ihU.js} +4 -4
  70. package/dist/cjs/{TransactionErrorView-DhdW4Ka8.js → TransactionErrorView-yUMJqqF2.js} +4 -4
  71. package/dist/cjs/TransferFromWalletScreen-Duk7CEcq.js +31 -0
  72. package/dist/cjs/TransferOrBridgeLoadingScreen-DuBLyfE1.js +6 -0
  73. package/dist/cjs/UpdateEmailScreen-DRJv5CZs.js +1 -0
  74. package/dist/cjs/UpdatePhoneScreen-C3myqOv0.js +1 -0
  75. package/dist/cjs/UserLimitReachedScreen-l_e6Vhr0.js +1 -0
  76. package/dist/cjs/{WalletInfoCard-DLnujds6.js → WalletInfoCard-CHEynRZS.js} +4 -4
  77. package/dist/cjs/{WalletInterstitialScreen-CMMSgAk9.js → WalletInterstitialScreen-BgoDwKIp.js} +1 -1
  78. package/dist/cjs/WalletLink-CZLtiI7E.js +22 -0
  79. package/dist/cjs/WalletOverflowButton-FlgoA77a.js +1 -0
  80. package/dist/cjs/abstract-smart-wallets.js +1 -1
  81. package/dist/cjs/{context-P14IM76D.js → context-BeSQM-Ma.js} +1 -1
  82. package/dist/cjs/ethers-XrYC9HG-.js +1 -0
  83. package/dist/cjs/extended-chains.js +1 -1
  84. package/dist/cjs/farcaster.js +1 -1
  85. package/dist/cjs/frame-Oz7volks.js +1 -0
  86. package/dist/cjs/{get-is-unified-wallet-DL_nMXp5.js → get-is-unified-wallet-BwdzQwn_.js} +1 -1
  87. package/dist/cjs/getErc20Balance-CN3JMVjF.js +1 -0
  88. package/dist/cjs/getErc20TokenInfo-DxDd_HN6.js +1 -0
  89. package/dist/cjs/getPublicClient-BsmZyCGX.js +1 -0
  90. package/dist/cjs/index-0-2WrPDo.js +12 -0
  91. package/dist/cjs/index-CzmnSRoa.js +174 -0
  92. package/dist/cjs/{index-BypMyGGH.js → index-W2ZSukRW.js} +1 -1
  93. package/dist/cjs/index.js +1 -1
  94. package/dist/cjs/{internal-context-NWsAL807.js → internal-context-BJv4f_bO.js} +1 -1
  95. package/dist/cjs/internal.js +1 -1
  96. package/dist/cjs/prepareFundingModalData-DDf6xLze.js +1 -0
  97. package/dist/cjs/{reservoir-CQGyEBb7.js → reservoir-Bx0HQwbb.js} +1 -1
  98. package/dist/cjs/{shared-CoZLntA9.js → shared-BcueHfN-.js} +6 -6
  99. package/dist/cjs/shouldProceedtoEmbeddedWalletCreationFlow-j6p9PEm-.js +1 -0
  100. package/dist/cjs/smart-wallets-BBh3vgRq.js +1 -0
  101. package/dist/cjs/smart-wallets.js +1 -1
  102. package/dist/cjs/solana.js +1 -1
  103. package/dist/cjs/{styles-DtykMHfN.js → styles-Csarwypj.js} +1 -1
  104. package/dist/cjs/to-ui-error-C4aac_aM.js +4 -0
  105. package/dist/cjs/ui.js +37 -37
  106. package/dist/cjs/use-export-wallet-C9HWu0Dq.js +1 -0
  107. package/dist/cjs/{use-sign-with-user-signer-BcAsQTGF.js → use-sign-with-user-signer-Cu_6Bx7m.js} +1 -1
  108. package/dist/cjs/useActiveWallet-vlXeDPzp.js +185 -0
  109. package/dist/cjs/{useGetSolPrice-C986iVoO.js → useGetSolPrice-Ca32VAbF.js} +1 -1
  110. package/dist/cjs/{useGetTokenPrice-cA2TnAzD.js → useGetTokenPrice-DJpJnTij.js} +1 -1
  111. package/dist/cjs/{useI18n-D4jKEXmt.js → useI18n-CnsBjm9v.js} +1 -1
  112. package/dist/cjs/usePrivy-Bx2PKTrU.js +1 -0
  113. package/dist/cjs/{useSolanaRpcClient-hHdPoMRE.js → useSolanaRpcClient-CYMWkK7E.js} +1 -1
  114. package/dist/cjs/useWalletBalance-DI8AY31i.js +1 -0
  115. package/dist/cjs/useWallets-BwB7ALB8.js +1 -0
  116. package/dist/cjs/useWallets-DMyuB5aJ.js +1 -0
  117. package/dist/dts/{events-context-vKnpI7Js.d.mts → events-context-DeukTtar.d.mts} +1 -1
  118. package/dist/dts/{events-context-vKnpI7Js.d.ts → events-context-DeukTtar.d.ts} +1 -1
  119. package/dist/dts/extended-chains.d.mts +1 -1
  120. package/dist/dts/extended-chains.d.ts +1 -1
  121. package/dist/dts/farcaster.d.mts +1 -1
  122. package/dist/dts/farcaster.d.ts +1 -1
  123. package/dist/dts/index.d.mts +40 -4
  124. package/dist/dts/index.d.ts +40 -4
  125. package/dist/dts/internal.d.mts +1 -1
  126. package/dist/dts/internal.d.ts +1 -1
  127. package/dist/dts/smart-wallets.d.mts +1 -1
  128. package/dist/dts/smart-wallets.d.ts +1 -1
  129. package/dist/dts/solana.d.mts +3 -3
  130. package/dist/dts/solana.d.ts +3 -3
  131. package/dist/dts/{types-DAzgcrBH.d.mts → types-FifkyCQc.d.mts} +2 -1
  132. package/dist/dts/{types-DAzgcrBH.d.ts → types-FifkyCQc.d.ts} +2 -1
  133. package/dist/dts/ui.d.mts +1 -1
  134. package/dist/dts/ui.d.ts +1 -1
  135. package/dist/esm/AccountNotFoundScreen-C6S8_GyN.mjs +1 -0
  136. package/dist/esm/Address-QmAVCQtO.mjs +17 -0
  137. package/dist/esm/AffirmativeConsentScreen-QfJBfI_f.mjs +6 -0
  138. package/dist/esm/AllowlistRejectionScreen-CX57yv4U.mjs +1 -0
  139. package/dist/esm/AuthenticateWithWalletScreen-CZJ-aWhZ.mjs +1 -0
  140. package/dist/esm/AwaitingEvmToSolBridgingScreen-C1CMtT4Y.mjs +2 -0
  141. package/dist/esm/AwaitingExternalEthereumTransferScreen-DX91STcF.mjs +2 -0
  142. package/dist/esm/AwaitingPasswordlessCodeScreen-BuExr50N.mjs +103 -0
  143. package/dist/esm/AwaitingSolToEvmBridgingScreen-Bm1i_2qW.mjs +2 -0
  144. package/dist/esm/BridgeNetworkSelectionView-DQGcampg.mjs +69 -0
  145. package/dist/esm/CaptchaScreen-B-hFDb5f.mjs +1 -0
  146. package/dist/esm/CoinbaseOnrampStatusScreen-OHm2RUBv.mjs +16 -0
  147. package/dist/esm/ConnectEmailForm-Df5OtmDR.mjs +3 -0
  148. package/dist/esm/ConnectLedgerScreen-BHLYW-F3.mjs +9 -0
  149. package/dist/esm/ConnectOnlyLandingScreen-C6nzEwpN.mjs +1 -0
  150. package/dist/esm/ConnectOnlyStatusScreen-CremlXDY.mjs +1 -0
  151. package/dist/esm/ConnectOrCreateScreen-262UvCdD.mjs +1 -0
  152. package/dist/esm/{ConnectPhoneForm-C1eL0VZH.mjs → ConnectPhoneForm-BMtTIItD.mjs} +1 -1
  153. package/dist/esm/{ConnectWalletView-BtuPwm-c.mjs → ConnectWalletView-BMjEKo1_.mjs} +6 -6
  154. package/dist/esm/ConnectionStatusScreen-mk5beBL7.mjs +7 -0
  155. package/dist/esm/CrossAppAuthScreen-BXjEJQv6.mjs +1 -0
  156. package/dist/esm/CustomLandingScreenView-BlDfJaDr.mjs +23 -0
  157. package/dist/esm/DelegatedActionsConsentScreen-ANmQe-9G.mjs +1 -0
  158. package/dist/esm/DelegatedActionsRevokeScreen-D9X7mWmI.mjs +1 -0
  159. package/dist/esm/EmbeddedWalletConnectingScreen-2g-RrIvW.mjs +1 -0
  160. package/dist/esm/EmbeddedWalletCreatedScreen-BXTAv4_-.mjs +1 -0
  161. package/dist/esm/EmbeddedWalletKeyExportScreen-DYVHVHOj.mjs +40 -0
  162. package/dist/esm/EmbeddedWalletOnAccountCreateScreen-CYyMoMFF.mjs +1 -0
  163. package/dist/esm/EmbeddedWalletPasswordUpdateScreen-oT5ZcPQV.mjs +1 -0
  164. package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-BQcHDyuV.mjs +1 -0
  165. package/dist/esm/{EnrollTotp-Bk2mWeF6.mjs → EnrollTotp-DVLg14UT.mjs} +8 -8
  166. package/dist/esm/ErrorScreen-CLfeO5pd.mjs +4 -0
  167. package/dist/esm/{FarcasterConnectStatusScreen-CHItJej_.mjs → FarcasterConnectStatusScreen-CUO9DKCJ.mjs} +7 -7
  168. package/dist/esm/FarcasterSignerStatusScreen-B135UOnV.mjs +28 -0
  169. package/dist/esm/FundSolWalletWithExternalSolanaWallet-DO3ttgom.mjs +1 -0
  170. package/dist/esm/{FundWalletMethodHeader-B3nAPYAR.mjs → FundWalletMethodHeader-PIxwFzzh.mjs} +1 -1
  171. package/dist/esm/FundingEditAmountScreen-BRQb2ffL.mjs +1 -0
  172. package/dist/esm/FundingMethodSelectionScreen-DTt1Z5RI.mjs +1 -0
  173. package/dist/esm/InAppBrowserLoginNotPossible-DH96QD2c.mjs +1 -0
  174. package/dist/esm/InstallWalletScreen-PnK6VfrP.mjs +1 -0
  175. package/dist/esm/LandingScreen-D_EvjOHf.mjs +1 -0
  176. package/dist/esm/{LinkConflictScreen-DmFrdpwb.mjs → LinkConflictScreen-B94e_-2N.mjs} +7 -7
  177. package/dist/esm/LinkEmailScreen-CT8gAQr3.mjs +1 -0
  178. package/dist/esm/LinkPasskeyScreen-DYfWSjKR.mjs +105 -0
  179. package/dist/esm/LinkPhoneScreen-ccrKA6tf.mjs +1 -0
  180. package/dist/esm/LoginFailedScreen-BwgxhbMf.mjs +1 -0
  181. package/dist/esm/ManualTransferScreen-DgCG2P3B.mjs +1 -0
  182. package/dist/esm/MfaAuthEnrollmentFlowScreen-CNVUTOnE.mjs +1 -0
  183. package/dist/esm/MfaAuthVerifyFlowScreen-2nvvFipu.mjs +1 -0
  184. package/dist/esm/MfaEnrollmentFlowScreen-DfnIqNNU.mjs +1 -0
  185. package/dist/esm/MfaVerifyFlowScreen-BwerwBz5.mjs +1 -0
  186. package/dist/esm/{ModalHeader-cnW8OaHH.mjs → ModalHeader-rCMpqA2a.mjs} +4 -4
  187. package/dist/esm/MoonpayStatusScreen-D5fRCEb3.mjs +16 -0
  188. package/dist/esm/OAuthStatusScreen-DtLgYw89.mjs +1 -0
  189. package/dist/esm/PasskeySelectSignupOrLogin-QoPhmagh.mjs +1 -0
  190. package/dist/esm/PasskeyStatusScreen-DzjU3ZVT.mjs +3 -0
  191. package/dist/esm/PasswordRecoveryScreen-LZYGRBkP.mjs +20 -0
  192. package/dist/esm/{QrCode-BVe4kf2z.mjs → QrCode-DjnQgnaZ.mjs} +3 -3
  193. package/dist/esm/RecoveryOAuthStatusScreen-DKfp8Udh.mjs +1 -0
  194. package/dist/esm/RecoveryPasswordCreateScreen-D4DI5Bom.mjs +1 -0
  195. package/dist/esm/RecoverySelectionScreen-B2V3518x.mjs +7 -0
  196. package/dist/esm/{Screen-DgjLPjok.mjs → Screen-CV2tt2Ap.mjs} +11 -11
  197. package/dist/esm/{ScreenLayout-x3-Xgy2E.mjs → ScreenLayout-DF3DCKOK.mjs} +1 -1
  198. package/dist/esm/SetAutomaticRecoveryScreen-C6cFVbSx.mjs +14 -0
  199. package/dist/esm/{SetWalletPasswordForm-Deqef3mc.mjs → SetWalletPasswordForm-ChA4tW4Y.mjs} +4 -4
  200. package/dist/esm/SignRequestScreen-BslfKJ1N.mjs +26 -0
  201. package/dist/esm/{StandardSignAndSendTransactionScreen-BGAjDFes.mjs → StandardSignAndSendTransactionScreen-D4OBsj5k.mjs} +3 -3
  202. package/dist/esm/TelegramAuthScreen-BJq5f_Rq.mjs +1 -0
  203. package/dist/esm/{TransactionDetails-8R96szrm.mjs → TransactionDetails-BP142O9n.mjs} +4 -4
  204. package/dist/esm/TransactionErrorView-BwwGMqSj.mjs +166 -0
  205. package/dist/esm/TransferFromWalletScreen-BHH0YcI4.mjs +31 -0
  206. package/dist/esm/TransferOrBridgeLoadingScreen-VLQTcf_6.mjs +6 -0
  207. package/dist/esm/UpdateEmailScreen-CMFBvYz5.mjs +1 -0
  208. package/dist/esm/UpdatePhoneScreen-DmhHcNq3.mjs +1 -0
  209. package/dist/esm/UserLimitReachedScreen-DNqgCf3B.mjs +1 -0
  210. package/dist/esm/{WalletInfoCard-CR6-S95l.mjs → WalletInfoCard-ChBHG5L5.mjs} +3 -3
  211. package/dist/esm/WalletInterstitialScreen-RS89fm6t.mjs +1 -0
  212. package/dist/esm/WalletLink-CN4enmsE.mjs +22 -0
  213. package/dist/esm/WalletOverflowButton-B-nEN4GW.mjs +1 -0
  214. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  215. package/dist/esm/context-LVpDfP2H.mjs +1 -0
  216. package/dist/esm/ethers-BQ45eiVv.mjs +1 -0
  217. package/dist/esm/extended-chains.mjs +1 -1
  218. package/dist/esm/farcaster.mjs +1 -1
  219. package/dist/esm/{frame-cjQkGswH.mjs → frame-uzTmvtww.mjs} +1 -1
  220. package/dist/esm/get-is-unified-wallet-CNcx75Dp.mjs +1 -0
  221. package/dist/esm/getErc20Balance-DA4dGV9O.mjs +1 -0
  222. package/dist/esm/getErc20TokenInfo-CxatSwzi.mjs +1 -0
  223. package/dist/esm/getPublicClient-B4uPLKn-.mjs +1 -0
  224. package/dist/esm/{index-0TRQs0PD.mjs → index-2knYP69D.mjs} +3 -3
  225. package/dist/esm/index-DNz_w3-G.mjs +174 -0
  226. package/dist/esm/{index-Cp1MRWbr.mjs → index-DoasOxbi.mjs} +1 -1
  227. package/dist/esm/index.mjs +1 -1
  228. package/dist/esm/{internal-context-D4S2Sfvt.mjs → internal-context-Z-fyxadS.mjs} +1 -1
  229. package/dist/esm/internal.mjs +1 -1
  230. package/dist/esm/{paths-BzM95ysC.mjs → paths-3HW55qZg.mjs} +1 -1
  231. package/dist/esm/prepareFundingModalData-DjTxAoJ1.mjs +1 -0
  232. package/dist/esm/reservoir-0wfhnc0j.mjs +1 -0
  233. package/dist/esm/{shared-C0CllI3K.mjs → shared-DwO5pr5t.mjs} +1 -1
  234. package/dist/esm/shouldProceedtoEmbeddedWalletCreationFlow-Cv_C9s3_.mjs +1 -0
  235. package/dist/esm/smart-wallets-9LKzbfWj.mjs +1 -0
  236. package/dist/esm/smart-wallets.mjs +1 -1
  237. package/dist/esm/solana.mjs +1 -1
  238. package/dist/esm/{styles-Fji1ReGu.mjs → styles-BNn7MnP1.mjs} +1 -1
  239. package/dist/esm/to-ui-error-CCqAdorW.mjs +4 -0
  240. package/dist/esm/ui.mjs +37 -37
  241. package/dist/esm/use-export-wallet-DllHf-2F.mjs +1 -0
  242. package/dist/esm/{use-sign-with-user-signer--95w9BaG.mjs → use-sign-with-user-signer-Do5Oi_rb.mjs} +1 -1
  243. package/dist/esm/useActiveWallet-RZ4w-uGq.mjs +185 -0
  244. package/dist/esm/{useGetSolPrice-usp7QcwI.mjs → useGetSolPrice-DwwjjGbd.mjs} +1 -1
  245. package/dist/esm/{useGetTokenPrice-DgKSvh6T.mjs → useGetTokenPrice-DERdsrmf.mjs} +1 -1
  246. package/dist/esm/{useI18n-DleS41MU.mjs → useI18n-Dk9y58cU.mjs} +1 -1
  247. package/dist/esm/usePrivy-Dj52a5sp.mjs +1 -0
  248. package/dist/esm/useSolanaRpcClient-B7UDPdLi.mjs +1 -0
  249. package/dist/esm/useWalletBalance-CRXiZUj2.mjs +1 -0
  250. package/dist/esm/useWallets-DlGuNtGR.mjs +1 -0
  251. package/dist/esm/useWallets-cSQYA-Jk.mjs +1 -0
  252. package/package.json +6 -6
  253. package/dist/cjs/AccountNotFoundScreen-Clo67iWH.js +0 -1
  254. package/dist/cjs/AffirmativeConsentScreen-2FGovWDj.js +0 -6
  255. package/dist/cjs/AllowlistRejectionScreen-BLcPF2_b.js +0 -1
  256. package/dist/cjs/AuthenticateWithWalletScreen-ByOwd0gq.js +0 -1
  257. package/dist/cjs/AwaitingEvmToSolBridgingScreen-D_dh3tgw.js +0 -2
  258. package/dist/cjs/AwaitingExternalEthereumTransferScreen-CB4SnTRS.js +0 -2
  259. package/dist/cjs/AwaitingPasswordlessCodeScreen-D43lCvaw.js +0 -103
  260. package/dist/cjs/AwaitingSolToEvmBridgingScreen-ppOL2XCp.js +0 -2
  261. package/dist/cjs/CaptchaScreen-oTaZlLej.js +0 -1
  262. package/dist/cjs/CoinbaseOnrampStatusScreen-CO97CoDr.js +0 -16
  263. package/dist/cjs/ConnectEmailForm-DAA-nxD6.js +0 -3
  264. package/dist/cjs/ConnectLedgerScreen-3SrqHJBl.js +0 -9
  265. package/dist/cjs/ConnectOnlyLandingScreen-DkR-VnS2.js +0 -1
  266. package/dist/cjs/ConnectOnlyStatusScreen-Cafk-5gS.js +0 -1
  267. package/dist/cjs/ConnectOrCreateScreen-DttF-fCs.js +0 -1
  268. package/dist/cjs/ConnectionStatusScreen-BfU_d8ZK.js +0 -7
  269. package/dist/cjs/CrossAppAuthScreen-Bs_x-Isw.js +0 -1
  270. package/dist/cjs/CustomLandingScreenView-B93ZDqp2.js +0 -23
  271. package/dist/cjs/DelegatedActionsConsentScreen-Cx5lj2BJ.js +0 -1
  272. package/dist/cjs/DelegatedActionsRevokeScreen-BEucV6g6.js +0 -1
  273. package/dist/cjs/EmbeddedWalletConnectingScreen-BjZ_7QsX.js +0 -1
  274. package/dist/cjs/EmbeddedWalletCreatedScreen-CbmJzZZL.js +0 -1
  275. package/dist/cjs/EmbeddedWalletKeyExportScreen-CdMuowdD.js +0 -40
  276. package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-C_EBP_oR.js +0 -1
  277. package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-DQhHO_tI.js +0 -1
  278. package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-C1dTDHuI.js +0 -1
  279. package/dist/cjs/ErrorScreen-CPDISQKp.js +0 -4
  280. package/dist/cjs/FarcasterSignerStatusScreen-BYnokloK.js +0 -29
  281. package/dist/cjs/FundSolWalletWithExternalSolanaWallet-D-pMJTgQ.js +0 -2
  282. package/dist/cjs/FundingEditAmountScreen-CGYBcgzY.js +0 -1
  283. package/dist/cjs/FundingMethodSelectionScreen-32rXIiuR.js +0 -1
  284. package/dist/cjs/InAppBrowserLoginNotPossible-Wz6tWwN4.js +0 -1
  285. package/dist/cjs/InstallWalletScreen-C6na1HMV.js +0 -1
  286. package/dist/cjs/LandingScreen-GYoGjPT7.js +0 -1
  287. package/dist/cjs/LinkEmailScreen-Bz6DBn1S.js +0 -1
  288. package/dist/cjs/LinkPhoneScreen-BFB7atSV.js +0 -1
  289. package/dist/cjs/LoginFailedScreen-C3X4o4W8.js +0 -1
  290. package/dist/cjs/ManualTransferScreen-Bx5GRcIk.js +0 -1
  291. package/dist/cjs/MfaAuthEnrollmentFlowScreen-D8DE5e8S.js +0 -1
  292. package/dist/cjs/MfaAuthVerifyFlowScreen-BeJSdbHB.js +0 -1
  293. package/dist/cjs/MfaEnrollmentFlowScreen-0X-6htEq.js +0 -1
  294. package/dist/cjs/MfaVerifyFlowScreen-BgdY97r7.js +0 -1
  295. package/dist/cjs/OAuthStatusScreen-DZbrwgcX.js +0 -1
  296. package/dist/cjs/PasskeySelectSignupOrLogin-DWW-VE2d.js +0 -1
  297. package/dist/cjs/PasskeyStatusScreen-DiieGaFn.js +0 -3
  298. package/dist/cjs/PasswordRecoveryScreen-OhRzyQhB.js +0 -20
  299. package/dist/cjs/RecoveryOAuthStatusScreen-DPPwIU7C.js +0 -1
  300. package/dist/cjs/RecoveryPasswordCreateScreen-Bg-E6CB6.js +0 -1
  301. package/dist/cjs/RecoverySelectionScreen-CauE_byN.js +0 -7
  302. package/dist/cjs/SetAutomaticRecoveryScreen-59UByZZC.js +0 -14
  303. package/dist/cjs/SignRequestScreen-CYQvIjLY.js +0 -26
  304. package/dist/cjs/TelegramAuthScreen-DxghStcs.js +0 -1
  305. package/dist/cjs/TransferFromWalletScreen-DSMlo8kv.js +0 -31
  306. package/dist/cjs/TransferOrBridgeLoadingScreen-D9t_WQ5r.js +0 -6
  307. package/dist/cjs/UpdateEmailScreen-CrTIJ16u.js +0 -1
  308. package/dist/cjs/UpdatePhoneScreen-DQzmlkOL.js +0 -1
  309. package/dist/cjs/UserLimitReachedScreen-BQxNahAD.js +0 -1
  310. package/dist/cjs/WalletLink-Bg4We2eg.js +0 -22
  311. package/dist/cjs/WalletOverflowButton-aYewWDKS.js +0 -1
  312. package/dist/cjs/ethers-BlKEtatO.js +0 -1
  313. package/dist/cjs/frame-BmNfc9mp.js +0 -1
  314. package/dist/cjs/getErc20Balance-CP3UfGGz.js +0 -1
  315. package/dist/cjs/getErc20TokenInfo-CVfH_czS.js +0 -1
  316. package/dist/cjs/index-LczlN1Dt.js +0 -12
  317. package/dist/cjs/private-privy-provider-hH9v0z7o.js +0 -358
  318. package/dist/cjs/shouldProceedtoEmbeddedWalletCreationFlow-Cp0BucAr.js +0 -1
  319. package/dist/cjs/smart-wallets-DUl8PaqV.js +0 -1
  320. package/dist/cjs/state-DMsGOICm.js +0 -1
  321. package/dist/cjs/stripUrlOAuthParamsAndRemoveStateCode-2iUOCDfo.js +0 -1
  322. package/dist/cjs/to-ui-error-caFMQ6I1.js +0 -4
  323. package/dist/cjs/use-create-wallet-without-fallback-CrxEFfhb.js +0 -1
  324. package/dist/cjs/use-export-wallet-DeI8q3KQ.js +0 -1
  325. package/dist/cjs/useActiveWallet-BySNV0ev.js +0 -1
  326. package/dist/cjs/useLogout-zT9OSxoO.js +0 -1
  327. package/dist/cjs/useMfa-KC6CWm9H.js +0 -1
  328. package/dist/cjs/useMfaEnrollment-DA9sTwf_.js +0 -1
  329. package/dist/cjs/useWalletBalance-8waYUAmD.js +0 -1
  330. package/dist/cjs/useWallets-2ejSMVGq.js +0 -1
  331. package/dist/esm/AccountNotFoundScreen-Cn6aKFIC.mjs +0 -1
  332. package/dist/esm/Address-CDF4d_Ha.mjs +0 -17
  333. package/dist/esm/AffirmativeConsentScreen-DwMHTAWp.mjs +0 -6
  334. package/dist/esm/AllowlistRejectionScreen-CtVeBy5G.mjs +0 -1
  335. package/dist/esm/AuthenticateWithWalletScreen-CqqsqfqZ.mjs +0 -1
  336. package/dist/esm/AwaitingEvmToSolBridgingScreen-CLkDS6o-.mjs +0 -2
  337. package/dist/esm/AwaitingExternalEthereumTransferScreen-Is2FdGJS.mjs +0 -2
  338. package/dist/esm/AwaitingPasswordlessCodeScreen-CAwXjOBS.mjs +0 -103
  339. package/dist/esm/AwaitingSolToEvmBridgingScreen-BDhpWAv1.mjs +0 -2
  340. package/dist/esm/BridgeNetworkSelectionView-C5xaiL3n.mjs +0 -69
  341. package/dist/esm/CaptchaScreen-CZCosLCJ.mjs +0 -1
  342. package/dist/esm/CoinbaseOnrampStatusScreen-DxbYHDRy.mjs +0 -16
  343. package/dist/esm/ConnectEmailForm-c2xnQzqc.mjs +0 -3
  344. package/dist/esm/ConnectLedgerScreen-CmspFZG8.mjs +0 -9
  345. package/dist/esm/ConnectOnlyLandingScreen-JXhxU6Je.mjs +0 -1
  346. package/dist/esm/ConnectOnlyStatusScreen-CZO6dxUB.mjs +0 -1
  347. package/dist/esm/ConnectOrCreateScreen-DHwSpwLa.mjs +0 -1
  348. package/dist/esm/ConnectionStatusScreen-d8tOwFAz.mjs +0 -7
  349. package/dist/esm/CrossAppAuthScreen-CNvQYKBN.mjs +0 -1
  350. package/dist/esm/CustomLandingScreenView-82pnUZOi.mjs +0 -23
  351. package/dist/esm/DelegatedActionsConsentScreen-D2cB2Jqt.mjs +0 -1
  352. package/dist/esm/DelegatedActionsRevokeScreen-DIdnDrIo.mjs +0 -1
  353. package/dist/esm/EmbeddedWalletConnectingScreen-DNDkMjZg.mjs +0 -1
  354. package/dist/esm/EmbeddedWalletCreatedScreen-6rmCkBPR.mjs +0 -1
  355. package/dist/esm/EmbeddedWalletKeyExportScreen-CrrImf0B.mjs +0 -40
  356. package/dist/esm/EmbeddedWalletOnAccountCreateScreen-MTCypdEY.mjs +0 -1
  357. package/dist/esm/EmbeddedWalletPasswordUpdateScreen-o-ONaPrc.mjs +0 -1
  358. package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-BpRZwJZg.mjs +0 -1
  359. package/dist/esm/ErrorScreen-C891Rurl.mjs +0 -4
  360. package/dist/esm/FarcasterSignerStatusScreen-P3NEju7D.mjs +0 -28
  361. package/dist/esm/FundSolWalletWithExternalSolanaWallet-CGZdr_3E.mjs +0 -1
  362. package/dist/esm/FundingEditAmountScreen-B0MYigL_.mjs +0 -1
  363. package/dist/esm/FundingMethodSelectionScreen-CNJYvozR.mjs +0 -1
  364. package/dist/esm/InAppBrowserLoginNotPossible-CVyW-cIh.mjs +0 -1
  365. package/dist/esm/InstallWalletScreen-Bfo00Txs.mjs +0 -1
  366. package/dist/esm/LandingScreen-tAGl1tss.mjs +0 -1
  367. package/dist/esm/LinkEmailScreen-C_G_4bbm.mjs +0 -1
  368. package/dist/esm/LinkPasskeyScreen-DhD51WvM.mjs +0 -105
  369. package/dist/esm/LinkPhoneScreen-Bi5gcAMm.mjs +0 -1
  370. package/dist/esm/LoginFailedScreen-DbAdNYji.mjs +0 -1
  371. package/dist/esm/ManualTransferScreen-CR2QvdVh.mjs +0 -1
  372. package/dist/esm/MfaAuthEnrollmentFlowScreen-BEotfobF.mjs +0 -1
  373. package/dist/esm/MfaAuthVerifyFlowScreen-Cygjr5sH.mjs +0 -1
  374. package/dist/esm/MfaEnrollmentFlowScreen-jupYBcsQ.mjs +0 -1
  375. package/dist/esm/MfaVerifyFlowScreen-B8ONcY5T.mjs +0 -1
  376. package/dist/esm/MoonpayStatusScreen-BjmXS-jc.mjs +0 -16
  377. package/dist/esm/OAuthStatusScreen-YcgvWTtC.mjs +0 -1
  378. package/dist/esm/PasskeySelectSignupOrLogin-Db4EFSYE.mjs +0 -1
  379. package/dist/esm/PasskeyStatusScreen-CR-3RNXX.mjs +0 -3
  380. package/dist/esm/PasswordRecoveryScreen-BnD1OdcX.mjs +0 -20
  381. package/dist/esm/RecoveryOAuthStatusScreen-DhLx5fOQ.mjs +0 -1
  382. package/dist/esm/RecoveryPasswordCreateScreen-BHOh-fE-.mjs +0 -1
  383. package/dist/esm/RecoverySelectionScreen-1seYQLsM.mjs +0 -7
  384. package/dist/esm/SetAutomaticRecoveryScreen-CZLgLNlt.mjs +0 -14
  385. package/dist/esm/SignRequestScreen-EwmYkZZk.mjs +0 -26
  386. package/dist/esm/TelegramAuthScreen-BMWr2M6a.mjs +0 -1
  387. package/dist/esm/TransactionErrorView-CcY_O062.mjs +0 -166
  388. package/dist/esm/TransferFromWalletScreen-BTsyTZMc.mjs +0 -31
  389. package/dist/esm/TransferOrBridgeLoadingScreen-DZ1diPi7.mjs +0 -6
  390. package/dist/esm/UpdateEmailScreen-DyXsKvGA.mjs +0 -1
  391. package/dist/esm/UpdatePhoneScreen-erzZ8qOI.mjs +0 -1
  392. package/dist/esm/UserLimitReachedScreen-CfiHSh4t.mjs +0 -1
  393. package/dist/esm/WalletInterstitialScreen-DCg6fl5S.mjs +0 -1
  394. package/dist/esm/WalletLink-CTp4jR2d.mjs +0 -22
  395. package/dist/esm/WalletOverflowButton-i2nGLvV0.mjs +0 -1
  396. package/dist/esm/context-i_OKSUqt.mjs +0 -1
  397. package/dist/esm/ethers-Cr0T35kS.mjs +0 -1
  398. package/dist/esm/get-is-unified-wallet-Bon2jknh.mjs +0 -1
  399. package/dist/esm/getErc20Balance-BDNkB-EL.mjs +0 -1
  400. package/dist/esm/getErc20TokenInfo-79BQbhYn.mjs +0 -1
  401. package/dist/esm/private-privy-provider-B2_rZ8aq.mjs +0 -358
  402. package/dist/esm/reservoir-DNdkSA7R.mjs +0 -1
  403. package/dist/esm/shouldProceedtoEmbeddedWalletCreationFlow-CDHNJbN9.mjs +0 -1
  404. package/dist/esm/smart-wallets-BNt96zAq.mjs +0 -1
  405. package/dist/esm/state-BG13el3v.mjs +0 -1
  406. package/dist/esm/stripUrlOAuthParamsAndRemoveStateCode-9jsyCRfN.mjs +0 -1
  407. package/dist/esm/to-ui-error-C46oK5ox.mjs +0 -4
  408. package/dist/esm/use-create-wallet-without-fallback-CY32SGw2.mjs +0 -1
  409. package/dist/esm/use-export-wallet-CWry8VMl.mjs +0 -1
  410. package/dist/esm/useActiveWallet-D-T43q8N.mjs +0 -1
  411. package/dist/esm/useLogout-CHtNPDaK.mjs +0 -1
  412. package/dist/esm/useMfa-D20h0FBp.mjs +0 -1
  413. package/dist/esm/useMfaEnrollment-BOyHpB2c.mjs +0 -1
  414. package/dist/esm/useSolanaRpcClient-O9yIYVIZ.mjs +0 -1
  415. package/dist/esm/useWalletBalance-CMO_I7jz.mjs +0 -1
  416. package/dist/esm/useWallets-B3ZcS4km.mjs +0 -1
@@ -0,0 +1,185 @@
1
+ import{useEffect as e,useState as t,createContext as n,useContext as i,useMemo as a,useCallback as r}from"react";import{create as l}from"zustand";import{u as o,n as s,o as c,p as d}from"./context-LVpDfP2H.mjs";import{styled as h,css as p}from"styled-components";import{jsx as u,jsxs as m}from"react/jsx-runtime";import*as w from"react-device-detect";import{c as f,u as y,f as g,d as b,S as v}from"./prepareFundingModalData-DjTxAoJ1.mjs";import{u as x}from"./events-context-CI0iqAXA.mjs";import{isAddress as k}from"viem";import{getAddress as C,toHex as _}from"viem/utils";import{P as T,u as P}from"./internal-context-Z-fyxadS.mjs";import{a as W}from"./getPublicClient-B4uPLKn-.mjs";import{P as z}from"./get-is-unified-wallet-CNcx75Dp.mjs";import{u as $}from"./useWallets-DlGuNtGR.mjs";const S=l((()=>({listings:[],loading:!1}))),I=S.setState,j=e=>S.getState().listings.find((({slug:t})=>N(t)===N(e))),E=e=>{let t;try{t=new URL(e).hostname}catch(e){return}return S.getState().listings.find((({homepage:e})=>{let n;try{n=new URL(e).hostname}catch(e){return!1}return t.includes(n)}))},D=(t=!0)=>{let n=o(),i=S((e=>e.listings)),a=S((e=>e.loading)),r=!!i.length;return e((()=>{t&&!r&&(I({listings:[],loading:!0}),(async e=>{let t=new URL("v3/wallets","https://explorer-api.walletconnect.com");t.searchParams.append("projectId",e);let n=await fetch(t);return n.ok?Object.values((await n.json()).listings).sort((({slug:e},{slug:t})=>"rainbow"===e&&"metamask"===t?1:"metamask"===e||"rainbow"===e?-1:1)):(console.debug(`Failed to fetch WalletConnect listings: ${await n.text().catch((()=>"No response."))}`),[])})(n.walletConnectCloudProjectId).then((e=>I({listings:e,loading:!1}))).catch((e=>{console.error(e),I({listings:[],loading:!1})})))}),[t,r,n.walletConnectCloudProjectId]),{listings:i,loading:a}},O=e=>{let{listings:t}=D();return t.find((({slug:t})=>N(t)===N(e)))};function N(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function M(e){return["wallet_connect","backpack","binance","binanceus","bitget_wallet","bybit_wallet","cryptocom","haha_wallet","jupiter","metamask","okx_wallet","phantom","rabby_wallet","rainbow","ronin_wallet","safe","solflare","uniswap","zerion","kraken_wallet"].some((t=>e?.includes(t)))}const A=e=>e.isApexWallet?"Apex Wallet":e.isAvalanche?"Core Wallet":e.isBackpack?"Backpack":e.isBifrost?"Bifrost Wallet":e.isBitKeep?"BitKeep":e.isBitski?"Bitski":e.isBlockWallet?"BlockWallet":e.isBraveWallet?"Brave Wallet":e.isClover?"Clover":e.isCoin98?"Coin98 Wallet":e.isCoinbaseWallet?"Coinbase Wallet":e.isDawn?"Dawn Wallet":e.isDefiant?"Defiant":e.isDesig?"Desig Wallet":e.isEnkrypt?"Enkrypt":e.isExodus?"Exodus":e.isFordefi?"Fordefi":e.isFrame?"Frame":e.isFrontier?"Frontier Wallet":e.isGamestop?"GameStop Wallet":e.isHaqqWallet?"HAQQ Wallet":e.isHyperPay?"HyperPay Wallet":e.isImToken?"ImToken":e.isHaloWallet?"Halo Wallet":e.isKuCoinWallet?"KuCoin Wallet":e.isMathWallet?"MathWallet":e.isNovaWallet?"Nova Wallet":e.isOkxWallet||e.isOKExWallet?"OKX Wallet":e.isOneInchIOSWallet||e.isOneInchAndroidWallet?"1inch Wallet":e.isOneKey?"OneKey Wallet":e.isOpera?"Opera":e.isPhantom||"isPhantom"in e?"Phantom":e.isPortal?"Ripio Portal":e.isRabby?"Rabby Wallet":e.isRainbow?"Rainbow":e.isSafePal?"SafePal Wallet":e.isStatus?"Status":e.isSubWallet?"SubWallet":e.isTalisman?"Talisman":e.isTally||e.isTaho?"Taho":e.isTokenPocket?"TokenPocket":e.isTokenary?"Tokenary":e.isTrust||e.isTrustWallet?"Trust Wallet":e.isTTWallet?"TTWallet":e.isXDEFI?"XDEFI Wallet":e.isZeal?"Zeal":e.isZerion?"Zerion":e.isMetaMask?"MetaMask":void 0,L=(e,t)=>{if(!e.isMetaMask)return!1;if(e.isMetaMask&&!t)return!0;if(e.isBraveWallet&&!e._events&&!e._state||"MetaMask"!==A(e))return!1;if(e.providers)for(let t of e.providers)if(!L(t))return!1;return!0},F=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers)for(let t of e.ethereum.providers)if(t&&t.isCoinbaseWallet)return!0;return!1},B=(e,t)=>{let n=[],i=[];for(let[a,r]of e.entries())a<t?n.push(r):i.push(r);return[n,i]},U=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),R=(e,t)=>{let n=e.slice(0),i=[];for(;n.length;)i.push(n.splice(0,t));return i},q=(e,t=3,n=4,i="ethereum")=>{if(!e)return"";let a="ethereum"===i?2:0;return t+n+a+3>=e.length?e:`${e.slice(0,a+t)}...${e.slice(e.length-n,e.length)}`},K=(e,t=3,n=4)=>q(e,t,n,"solana"),H=e=>new Promise((t=>setTimeout(t,e)));function Z(e,{interval:t=100,timeout:n=5e3}={}){return new Promise(((i,a)=>{let r,l=0,o=()=>{l>=n?a("Max attempts reached without result"):(r=e(),l+=t,null==r?setTimeout(o,t):i(r))};o()}))}const X=(e,t={})=>{let n=t.delayMs||150,i=t.maxAttempts||270;return new Promise((async(a,r)=>{let l=!1,o=0;for(;!l&&o<i;){if(t.abortSignal?.aborted)return;e().then((e=>{l=!0,a(e)}),((...e)=>{l=!0,r(...e)})),o+=1,await H(n)}l||r(Error("Exceeded max attempts before resolving function"))}))},G=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),J=e=>"string"==typeof e?e:"0x"+e.toString(16);async function Q({store:e,walletList:t,externalWalletConfig:n,walletChainType:i,timeout:a=3e3}){let r=!1,l=window;return new Promise((o=>{function s(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",s);let a=e.getProviders();console.debug("Detected injected providers:",a.map((e=>e.info)));let l=[];for(let e of a)t.includes("coinbase_wallet")&&"com.coinbase.wallet"===e.info.rdns||"solana-only"===i&&"app.phantom"===e.info.rdns||l.push({type:e.info.name.toLowerCase().replace(/\s/g,"_"),eip6963InjectedProvider:e});if("solana-only"!==i)for(let e of function(){let e=window,t=e.ethereum;if(!t)return[];let n=[];if(t.providers?.length)for(let e of t.providers)e&&n.push(e);return n.push(e.ethereum),n}()){let t=A(e);if(!a.some((e=>e.info.name===t))){if(L(e,!0)&&!l.find((e=>"metamask"===e.type))){l.push({type:"metamask",legacyInjectedProvider:e});continue}if("Phantom"===t&&!l.find((e=>"phantom"===e.type))){l.push({type:"phantom",legacyInjectedProvider:e});continue}if("Coinbase Wallet"===t&&!l.find((e=>"coinbase_wallet"===e.type&&"smartWalletOnly"!==n.coinbaseWallet?.config?.preference?.options))){l.push({type:"coinbase_wallet",legacyInjectedProvider:e});continue}l.find((e=>"unknown_browser_extension"===e.type))||l.push({type:"unknown_browser_extension",legacyInjectedProvider:e})}}o(l)}l.ethereum?s():(window.addEventListener("ethereum#initialized",s,{once:!0}),setTimeout((()=>{s()}),a))}))}function V(e){return`eip155:${String(Number(e))}`}const Y=(e,t,n,i)=>{let a=Number(e),r=t.find((e=>e.id===a));if(!r)throw new T(`Unsupported chainId ${e}`,4901);return W(r,n,i)},ee=(e,t)=>{let n=Number(e),i=t.find((e=>e.id===n));if(!i)throw new T(`Unsupported chainId ${e}`,4901);return i.blockExplorers?.default.url},te=e=>{let t={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},n=e.types.EIP712Domain??Object.entries(e.domain).map((([e,n])=>{if(null!=n&&"string"==typeof e&&e in t)return{name:e,type:t[e]}})).filter((e=>void 0!==e));return{...e,types:{...e.types,EIP712Domain:n}}};function ne(e,{min:t,max:n}){return Math.min(Math.max(e,t),n)}const ie=e=>e?.map((e=>({signer_id:e.signerId,override_policy_ids:e.policyIds})));function ae(e){return"ethereum"===e.type}function re(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let i=e[n],a=t[n];if(i?.address!==a?.address||i&&a&&ae(i)&&ae(a)&&i?.chainId!==a?.chainId||i?.connectorType!==a?.connectorType||i?.connectedAt!==a?.connectedAt||i?.walletClientType!==a?.walletClientType||i?.isConnected!==a?.isConnected||i?.linked!==a?.linked)return!1}return!0}const le=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||s;function oe(e){return"ethereum"===e.chainType}class se extends f{buildConnectedWallet(e,t,n,i){let a=async()=>!!this.wallets.find((t=>C(t.address)===C(e)));return{type:"ethereum",address:C(e),chainId:t,meta:n,imported:i,switchChain:async n=>{let i,r;if(!a)throw new T("Wallet is not currently connected.");let l=this.wallets.find((t=>C(t.address)===C(e)))?.chainId;if(!l)throw new T("Unable to determine current chainId.");if("number"==typeof n?(i=`0x${n.toString(16)}`,r=n):(i=n,r=Number(n)),l===V(i))return;let o=this.chains.find((e=>e.id===r));if(!o)throw new T(`Unsupported chainId: ${n}`);let s=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:i}]})};try{return await s()}catch(e){if(((e,t)=>{switch(t){case"coinbase_wallet":case"base_account":return e.message.includes("addEthereumChain");case"rabby_wallet":return e.message.includes("Unrecognized chain ID");default:return 4902===e.code||e.message?.includes("4902")}})(e,this.walletClientType))return"rabby_wallet"===this.walletClientType&&await H(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:i,chainName:o.name,nativeCurrency:o.nativeCurrency,rpcUrls:[o.rpcUrls.default?.http[0]??""],blockExplorerUrls:[o.blockExplorers?.default.url??""]}]}),s();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new T(`Rainbow does not support the chainId ${t}`);throw e}},connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:a,getEthereumProvider:async()=>{if(!await a())throw new T("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new T("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t,n=e;try{if(void 0===n){let e=await X((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});console.debug(`eth_accounts for ${this.walletClientType}:`,e),Array.isArray(e)&&(n=e)}}catch(e){console.debug("Wallet did not respond to eth_accounts. Defaulting to prefetched accounts.",e)}if(!n||!Array.isArray(n)||n.length<=0||!n[0])return;let i=n[0];if(!k(i))return void console.warn(`Invalid ethereum address reported by ${this.walletClientType}: ${i}`);let a=C(i),r=[];if("privy"===this.walletClientType){let e=y.get(c(a));this.chains.find((t=>t.id===Number(e)))||(y.del(c(a)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){console.warn(`Unable to switch embedded wallet to chain ID ${t} on initialization`)}}else try{let e=await X((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(console.debug(`eth_chainId for ${this.walletClientType}:`,e),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){console.warn(`Failed to get chainId from provider, defaulting to ${d}`,e),t=d}let l=V(t);if(!r.find((e=>C(e.address)===a))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};r.push(this.buildConnectedWallet(C(i),l,e,"embedded_imported"===this.connectorType))}re(r,this.wallets)||(this.wallets=r,this.emit("walletsUpdated"))}async getConnectedWallet(){let e=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt)).find((t=>e.find((e=>C(e)===C(t.address)))))||null}async isConnected(){let e=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}async sign(e){return await this.connect({showPrompt:!1}),this.proxyProvider.request({method:"personal_sign",params:[_(e),this.wallets[0]?.address]})}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}constructor(e,t,n,i){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{this.wallets.forEach((t=>{t.chainId=V(e),"privy"===this.walletClientType&&y.put(c(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await H(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=n,this.rpcConfig=i,this.rpcTimeoutDuration=le(i,e),this.connected=!1,this.initialized=!1}}class ce{on(e,t){if(this.walletProvider)return this.walletProvider.on(e,t);this._subscriptions.push({eventName:e,listener:t})}async request(e){if(!this.walletProvider)throw new T(`A wallet request of type ${e.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(e),this.walletTimeout()]).catch((e=>{throw g(e)}))}constructor(e,t){this.removeListener=(e,t)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(e,t)}catch(e){console.warn("Unable to remove wallet provider listener")}},this.walletTimeout=(e=new b,t=this.rpcTimeoutDuration)=>new Promise(((n,i)=>setTimeout((()=>{i(e)}),t))),this.setWalletProvider=e=>{this.walletProvider&&this._subscriptions.forEach((e=>{this.removeListener(e.eventName,e.listener)})),this.walletProvider=e,this._subscriptions.forEach((e=>{this.walletProvider?.on(e.eventName,e.listener)}))},this.walletProvider=e,this.rpcTimeoutDuration=t||s,this._subscriptions=[]}}const de=n=>{let[i,a]=t("auto");return e((()=>{let e=new ResizeObserver((e=>{a(e[0]?.contentRect.height??"auto")}));return n.current&&e.observe(n.current),()=>{n.current&&e.unobserve(n.current)}}),[n.current]),i},he=h.div`
2
+ text-align: left;
3
+ flex-grow: 1;
4
+ `,pe=h.div`
5
+ display: flex;
6
+ flex-direction: column;
7
+ justify-content: flex-end;
8
+ flex-grow: 1;
9
+ `,ue=h.div`
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: 8px;
13
+
14
+ /* for Internet Explorer, Edge */
15
+ -ms-overflow-style: none;
16
+
17
+ /* for Firefox */
18
+ scrollbar-width: none;
19
+
20
+ /* for Chrome, Safari, and Opera */
21
+ &::-webkit-scrollbar {
22
+ display: none;
23
+ }
24
+ `,me=h(ue)`
25
+ ${e=>"light"===e.$colorScheme?"background: linear-gradient(var(--privy-color-background), var(--privy-color-background) 70%) bottom, linear-gradient(rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0.06)) bottom;":"dark"===e.$colorScheme?"background: linear-gradient(var(--privy-color-background), var(--privy-color-background) 70%) bottom, linear-gradient(rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 0.06)) bottom;":void 0}
26
+
27
+ background-repeat: no-repeat;
28
+ background-size:
29
+ 100% 32px,
30
+ 100% 16px;
31
+ background-attachment: local, scroll;
32
+ max-height: 400px;
33
+ overflow-y: auto;
34
+ scrollbar-width: none;
35
+ padding: 3px;
36
+ `;let we=p`
37
+ && {
38
+ width: 100%;
39
+ font-size: 16px;
40
+ line-height: 24px;
41
+ min-height: 56px;
42
+
43
+ /* Tablet and Up */
44
+ @media (min-width: 440px) {
45
+ font-size: 14px;
46
+ }
47
+
48
+ display: flex;
49
+ gap: 12px;
50
+ align-items: center;
51
+ color: var(--privy-color-foreground);
52
+
53
+ padding: 10px 12px;
54
+ border: 1px solid var(--privy-color-foreground-4) !important;
55
+ border-radius: var(--privy-border-radius-md);
56
+ transition: background-color 200ms ease;
57
+
58
+ cursor: pointer;
59
+
60
+ &:hover {
61
+ background-color: var(--privy-color-background-2);
62
+ }
63
+
64
+ &:disabled {
65
+ cursor: pointer;
66
+ background-color: var(--privy-color-background-2);
67
+ }
68
+ }
69
+ `;const fe=h.div`
70
+ text-align: center;
71
+ font-size: 14px;
72
+ margin-bottom: 24px;
73
+ `,ye=h.button.attrs({className:"login-method-button"})`
74
+ ${we}
75
+ `;h.a`
76
+ ${we}
77
+ `;const ge=h.div`
78
+ width: 32px;
79
+ height: 32px;
80
+ border-radius: ${e=>e.$fullSize?"0":"4px"};
81
+ background: ${e=>e.$fullSize?"transparent":"var(--privy-color-background-2)"};
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: center;
85
+ flex-shrink: 0;
86
+
87
+ svg {
88
+ width: ${e=>e.$fullSize?"32px":"18px"};
89
+ height: ${e=>e.$fullSize?"32px":"18px"};
90
+ color: ${e=>e.$fullSize?"inherit":"var(--privy-color-icon-muted)"};
91
+ }
92
+ `,be=h.div`
93
+ width: 100%;
94
+ height: 100%;
95
+ min-height: inherit;
96
+ display: flex;
97
+ flex-direction: column;
98
+ ${e=>e.$if?"display: none;":""}
99
+ `,ve=h.div`
100
+ width: 100%;
101
+ height: 100%;
102
+ padding: ${e=>e.$withPadding?"64px 0px":"0px"};
103
+ `,xe=h.div`
104
+ display: flex;
105
+ flex-direction: column;
106
+ align-items: center;
107
+ justify-content: center;
108
+ margin-bottom: 32px;
109
+ gap: 12px;
110
+ & h3 {
111
+ font-size: 18px;
112
+ font-style: normal;
113
+ font-weight: 600;
114
+ line-height: 24px;
115
+ }
116
+ & p {
117
+ max-width: 300px;
118
+ font-size: 14px;
119
+ font-style: normal;
120
+ font-weight: 400;
121
+ line-height: 20px;
122
+ }
123
+ `,ke=({success:e,fail:t})=>/*#__PURE__*/m(_e,{children:[/*#__PURE__*/u(Ce,{children:/*#__PURE__*/u(Pe,{className:e?"success":t?"fail":""})}),/*#__PURE__*/u(Ce,{children:/*#__PURE__*/u(Te,{className:e?"success":t?"fail":""})})]});let Ce=h.span`
124
+ && {
125
+ position: absolute;
126
+ top: 0;
127
+ left: 0;
128
+ z-index: 2;
129
+ }
130
+ `,_e=h.span`
131
+ position: relative;
132
+ width: 82px;
133
+ height: 82px;
134
+ display: inline-block;
135
+ `;const Te=h.span`
136
+ && {
137
+ width: 82px;
138
+ height: 82px;
139
+ border-width: 4px;
140
+ border-style: solid;
141
+ border-color: ${e=>e.color??"var(--privy-color-icon-subtle)"};
142
+ border-bottom-color: transparent;
143
+ border-radius: 50%;
144
+ display: inline-block;
145
+ box-sizing: border-box;
146
+ animation: rotation 1.2s linear infinite;
147
+ transition: border-color 800ms;
148
+ }
149
+
150
+ @keyframes rotation {
151
+ 0% {
152
+ transform: rotate(0deg);
153
+ }
154
+ 100% {
155
+ transform: rotate(360deg);
156
+ }
157
+ }
158
+
159
+ &&&.success {
160
+ border-color: var(--privy-color-icon-success);
161
+ border-bottom-color: var(--privy-color-icon-success);
162
+ }
163
+
164
+ &&&.fail {
165
+ border-color: var(--privy-color-icon-error);
166
+ border-bottom-color: var(--privy-color-icon-error);
167
+ }
168
+ `,Pe=h(Te)`
169
+ && {
170
+ border-bottom-color: ${e=>e.color??"var(--privy-color-border-default)"};
171
+ border-color: ${e=>e.color??"var(--privy-color-border-default)"};
172
+ animation: none;
173
+ opacity: 0.5;
174
+ }
175
+ `,We=e=>/*#__PURE__*/u(ze,{color:e.color||"var(--privy-color-foreground-3)"});let ze=h(Te)`
176
+ && {
177
+ height: 1rem;
178
+ width: 1rem;
179
+ margin: 2px 0;
180
+ border-width: 1.5px;
181
+
182
+ /* Override default Loader to match button transitions */
183
+ transition: border-color 200ms ease;
184
+ }
185
+ `;const $e=["metamask","phantom","brave_wallet","rainbow","uniswap_wallet_extension","uniswap_extension","rabby_wallet","bybit_wallet","ronin_wallet","haha_wallet","crypto.com_wallet_extension","crypto.com_onchain","binance","bitget_wallet","coinbase_wallet","coinbase_smart_wallet","base_account","metamask","trust","safe","rainbow","uniswap","zerion","argent","spot","omni","cryptocom","blockchain","safepal","bitget_wallet","zengo","1inch","binance","exodus","mew_wallet","alphawallet","keyring_pro","mathwallet","unstoppable","obvious","ambire","internet_money_wallet","coin98","abc_wallet","arculus_wallet","haha","cling_wallet","broearn","copiosa","burrito_wallet","enjin_wallet","plasma_wallet","avacus","bee","pitaka","pltwallet","minerva","kryptogo","prema","slingshot","kriptonio","timeless","secux","bitizen","blocto","okx_wallet","safemoon","rabby_wallet","bybit_wallet","ronin_wallet","haha_wallet","privy","unknown","phantom","solflare","glow","backpack","jupiter","mobile_wallet_adapter"],Se=Object.freeze({phantom:{client:"phantom",name:"Phantom",installLink:w.isFirefox?"https://addons.mozilla.org/en-US/firefox/addon/phantom-app/":"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa?hl=en",chainTypes:["ethereum","solana"],get isInstalled(){if("phantom"in window){let e=window;if(e?.phantom?.ethereum?.isPhantom&&e?.phantom?.ethereum?.chainId||e?.phantom?.solana?.isPhantom)return!0}return!1},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=je({client:this.client,isSolana:t,connectOnly:n});return`${e?"phantom://":"https://phantom.app/ul/"}browse/${i}?ref=${i}`}},solflare:{client:"solflare",name:"Solflare",installLink:w.isFirefox?"https://addons.mozilla.org/es/firefox/addon/solflare-wallet/":"https://chromewebstore.google.com/detail/solflare-wallet/bhhhlbepdkbapadjdnnojkbgioiodbic",chainTypes:["solana"],get isInstalled(){return"solflare"in window&&!!window?.solflare?.isSolflare},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=je({client:this.client,isSolana:t,connectOnly:n});return`${e?"solflare://ul/v1/":"https://solflare.com/ul/v1/"}browse/${i}?ref=${i}`}},jupiter:{client:"jupiter",name:"Jupiter Wallet",installLink:"https://chromewebstore.google.com/detail/jupiter-wallet/iledlaeogohbilgbfhmbgkgmpplbfboh",chainTypes:["solana"],get isInstalled(){return"jupiter"in window&&!!window?.jupiter?.isJupiter},getMobileRedirect({isSolana:e,connectOnly:t}){let n=je({client:this.client,isSolana:e,connectOnly:t});return`jupjupjup://jup.ag/browse/${n}?ref=${n}`}},backpack:{client:"backpack",name:"Backpack",installLink:"https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof",chainTypes:["ethereum","solana"],get isInstalled(){return!(!("backpack"in window)||!window?.backpack?.ethereum?.isBackpack&&!window?.backpack?.solana?.isBackpack)},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=je({client:this.client,isSolana:t,connectOnly:n});return`${e?"backpack://ul/v1/":"https://backpack.app/ul/v1/"}browse/${i}?ref=${i}`}},okx_wallet:{client:"okx_wallet",name:"OKX Wallet",installLink:"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",chainTypes:["ethereum","solana"],get isInstalled(){return"okxwallet"in window&&!!window?.okxwallet?.isOkxWallet},getMobileRedirect({isSolana:e,connectOnly:t}){return`okx://wallet/dapp/url?dappUrl=${je({client:this.client,isSolana:e,connectOnly:t})}`}}});function Ie({connectorType:e,walletClientType:t}){for(let n of $e)if(e===n||t===n)return Se[n]}function je({client:e,isSolana:t,connectOnly:n}){let i=new URL(window.location.href);return i.searchParams.set("privy_connector",t?"solana_adapter":"injected"),i.searchParams.set("privy_wallet_client",e),i.searchParams.set("privy_connect_only",String(n)),encodeURIComponent(i.href.replace(/\/$/g,""))}class Ee extends v{get walletBranding(){return{id:this.id,name:this.name,icon:this.icon}}async initialize(){this.initialized=!0,this.emit("initialized")}async connect(){throw Error("connect called for an uninstalled wallet via the SolanaNullConnector")}constructor({id:e,name:t,icon:n}){super({name:t},!1),this.connectorType="null",this.proxyProvider=new ce(void 0,s),this.disconnect=async()=>{throw Error("disconnect called for an uninstalled wallet via the SolanaNullConnector")},this.promptConnection=async()=>{throw Error("promptConnection called for an uninstalled wallet via the SolanaNullConnector")},this.id=e,this.name=t,this.icon=n}}function De(e){return"solana"===e.chainType}function Oe(e){return"solana"===e.type}let Ne=/*#__PURE__*/n({});const Me=({children:n})=>{let i=o(),[a,r]=t({});return x("login",{onComplete:({loginAccount:e})=>{e&&"passkey"!==e.type&&"cross_app"!==e.type&&("wallet"!==e.type||"privy"!==e.walletClientType)&&(y.put(Ae(i.id),e.type),"wallet"===e.type?(y.put(Le(i.id),e.walletClientType),y.put(Fe(i.id),e.chainType),r({accountType:e.type,walletClientType:e.walletClientType,chainType:e.chainType})):(y.del(Le(i.id)),y.del(Fe(i.id)),r({accountType:e.type})))}}),e((()=>{if(!i.id)return;let e=y.get(Ae(i.id)),t=y.get(Le(i.id)),n=y.get(Fe(i.id));e&&r("wallet"===e?{accountType:e,walletClientType:t,chainType:n}:{accountType:e})}),[i.id]),/*#__PURE__*/u(Ne.Provider,{value:a,children:n})};let Ae=e=>`privy:${e}:recent-login-method`,Le=e=>`privy:${e}:recent-login-wallet-client`,Fe=e=>`privy:${e}:recent-login-chain-type`;const Be=()=>i(Ne);class Ue extends se{get walletBranding(){return{id:this.id,name:this.name,icon:this.icon}}async initialize(){this.initialized=!0,this.emit("initialized")}async connect(){throw Error("connect called for an uninstalled wallet via the EthereumNullConnector")}disconnect(){throw Error("disconnect called for an uninstalled wallet via the EthereumNullConnector")}promptConnection(e){throw Error(`promptConnection called for an uninstalled wallet via the EthereumNullConnector for ${e}`)}constructor({id:e,name:t,icon:n,walletClientType:i,defaultChain:a}){super(i,[],a,{}),this.connectorType="null",this.proxyProvider=new ce(void 0,s),this.id=e,this.name=t,this.icon=n}}const Re=({...e})=>/*#__PURE__*/m("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",...e,children:[/*#__PURE__*/u("rect",{width:"32",height:"32",rx:"6",fill:"#121314"}),/*#__PURE__*/u("g",{transform:"translate(4, 4)",children:/*#__PURE__*/m("svg",{width:"24",height:"24",viewBox:"0 0 318.6 318.6",children:[/*#__PURE__*/u("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),/*#__PURE__*/u("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),/*#__PURE__*/u("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),/*#__PURE__*/u("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),/*#__PURE__*/u("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),/*#__PURE__*/u("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),/*#__PURE__*/u("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),/*#__PURE__*/u("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),/*#__PURE__*/u("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),/*#__PURE__*/u("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),/*#__PURE__*/u("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),/*#__PURE__*/u("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),/*#__PURE__*/u("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]})})]});function qe(e){let{login:t}=i(z);return x("login",e),{login:t}}function Ke(e){let{logout:t}=i(z);return x("logout",e),{logout:t}}function He(e){let{connectWallet:t}=i(z);return x("connectWallet",e),{connectWallet:t}}const Ze=e=>{x("fundWallet",e);let{fundWallet:t}=P();return{fundWallet:({address:e,options:n})=>t(e,n)}},Xe=l((()=>({isModalOpen:!1,resolvers:null})));let Ge=l((()=>({})));const Je=(e,t)=>Ge((n=>n[e]?.[t])),Qe=(e,t,n)=>{Ge.setState((i=>({[e]:{...i[e],[t]:n}})))},Ve=async()=>{let e,t,n=new Promise(((n,i)=>{e=n,t=i}));return Ge.setState({}),Xe.setState({isModalOpen:!0,resolvers:{resolve:e,reject:t}}),await n},Ye=()=>{let e=Xe.getState().resolvers;e||console.warn("useActiveWalletStore: Called close while modal was not open"),Xe.setState({isModalOpen:!1}),e?.resolve({wallet:Xe.getState().wallet})},et=({address:e,client:t,appId:n})=>{let i=`${t}:${e}`;n&&y.put(nt(n),i),Xe.setState({wallet:i})},tt=()=>Xe((e=>e.isModalOpen)),nt=e=>`privy:${e}:active-wallet-connection`,it=()=>{let t=o(),{wallets:n}=$(),{connectors:i}=P(),l=a((()=>i.filter(De).flatMap((e=>e.wallets))),[i]),s=Xe((e=>e.wallet));e((()=>{if(!t.id)return;let e=y.get(nt(t.id));Xe.setState({wallet:e})}),[t.id]);let c=a((()=>{if(!s)return;let[,e]=s.split(":");return n.find((t=>t.address===e))||l.find((t=>t.address===e))}),[s,n,l]),d=a((()=>c?"ethereum"===c.type?c.chainId:"solana":void 0),[c]);return{connect:async e=>{e?.reset&&(y.del(nt(t.id)),Xe.setState({wallet:void 0}));let{wallet:i}=await Ve();if(!i)return{};let[,a]=i.split(":"),r=n.find((e=>e.address===a));if(r)return{wallet:r,network:r.chainId};let o=l.find((e=>e.address===a));return o?{wallet:o,network:"solana"}:{}},setActiveWallet:r((e=>{et({address:e.address,client:e.walletClientType,appId:t.id})}),[t.id]),wallet:c,network:d}};export{fe as $,He as A,Ze as B,it as C,q as D,se as E,Be as F,We as G,be as H,Je as I,Qe as J,et as K,Te as L,Re as M,tt as N,Ye as O,ce as P,O as Q,Me as R,Ee as S,F as T,ye as U,ge as V,ve as W,xe as X,he as Y,me as Z,B as _,Y as a,pe as a0,U as a1,ne as a2,R as a3,ke as a4,ee as a5,K as a6,Pe as a7,ue as a8,j as b,le as c,D as d,M as e,ae as f,E as g,re as h,X as i,te as j,H as k,V as l,Ie as m,Oe as n,Q as o,Z as p,Se as q,oe as r,G as s,J as t,de as u,De as v,Ue as w,ie as x,qe as y,Ke as z};
@@ -1 +1 @@
1
- import{useState as r,useEffect as e}from"react";import{u as o}from"./internal-context-D4S2Sfvt.mjs";const t=({enabled:t=!0}={})=>{let{showFiatPrices:i,getUsdPriceForSol:a}=o(),[c,l]=r(!0),[s,n]=r(void 0),[d,f]=r(void 0);return e((()=>{(async()=>{if(i&&t)try{l(!0);let r=await a();r?f(r):n(Error("Unable to fetch SOL price"))}catch(r){n(r)}finally{l(!1)}else l(!1)})()}),[]),{solPrice:d,isSolPriceLoading:c,solPriceError:s}};export{t as u};
1
+ import{useState as r,useEffect as e}from"react";import{u as o}from"./internal-context-Z-fyxadS.mjs";const t=({enabled:t=!0}={})=>{let{showFiatPrices:i,getUsdPriceForSol:a}=o(),[c,l]=r(!0),[s,n]=r(void 0),[d,f]=r(void 0);return e((()=>{(async()=>{if(i&&t)try{l(!0);let r=await a();r?f(r):n(Error("Unable to fetch SOL price"))}catch(r){n(r)}finally{l(!1)}else l(!1)})()}),[]),{solPrice:d,isSolPriceLoading:c,solPriceError:s}};export{t as u};
@@ -1 +1 @@
1
- import{useState as r,useEffect as e}from"react";import{addToDefaultChains as o}from"@privy-io/js-sdk-core";import{s as i}from"./context-i_OKSUqt.mjs";import{u as n}from"./internal-context-D4S2Sfvt.mjs";import{u as t}from"./useGetSolPrice-usp7QcwI.mjs";function c(c){let{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:l}=(t=>{let{showFiatPrices:c,getUsdTokenPrice:a,chains:s}=n(),[l,P]=r(!0),[d,k]=r(void 0),[m,f]=r(void 0);return e((()=>{t||=i;let r=o(s).find((r=>r.id===Number(t)));(async()=>{if(c){if(!r)return P(!1),void k(Error(`Unable to fetch token price on chain id ${t}`));try{P(!0);let e=await a(r);e?f(e):k(Error(`Unable to fetch token price on chain id ${r.id}`))}catch(r){k(r)}finally{P(!1)}}else P(!1)})()}),[t]),{tokenPrice:m,isTokenPriceLoading:l,tokenPriceError:d}})("solana"===c?-1:c),{solPrice:P,isSolPriceLoading:d,solPriceError:k}=t({enabled:"solana"===c});return"solana"===c?{tokenPrice:P,isTokenPriceLoading:d,tokenPriceError:k}:{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:l}}export{c as u};
1
+ import{useState as r,useEffect as e}from"react";import{addToDefaultChains as o}from"@privy-io/js-sdk-core";import{s as i}from"./context-LVpDfP2H.mjs";import{u as n}from"./internal-context-Z-fyxadS.mjs";import{u as t}from"./useGetSolPrice-DwwjjGbd.mjs";function c(c){let{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:l}=(t=>{let{showFiatPrices:c,getUsdTokenPrice:a,chains:s}=n(),[l,P]=r(!0),[d,k]=r(void 0),[m,f]=r(void 0);return e((()=>{t||=i;let r=o(s).find((r=>r.id===Number(t)));(async()=>{if(c){if(!r)return P(!1),void k(Error(`Unable to fetch token price on chain id ${t}`));try{P(!0);let e=await a(r);e?f(e):k(Error(`Unable to fetch token price on chain id ${r.id}`))}catch(r){k(r)}finally{P(!1)}}else P(!1)})()}),[t]),{tokenPrice:m,isTokenPriceLoading:l,tokenPriceError:d}})("solana"===c?-1:c),{solPrice:P,isSolPriceLoading:d,solPriceError:k}=t({enabled:"solana"===c});return"solana"===c?{tokenPrice:P,isTokenPriceLoading:d,tokenPriceError:k}:{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:l}}export{c as u};
@@ -1 +1 @@
1
- import{a as e}from"./context-i_OKSUqt.mjs";const t={"connectionStatus.successfullyConnected":"Successfully connected with {walletName}","connectionStatus.errorTitle":"{errorMessage}","connectionStatus.connecting":"Connecting","connectionStatus.connectOneWallet":"For the best experience, connect only one wallet at a time.","connectionStatus.checkOtherWindows":"Don't see your wallet? Check your other browser windows.","connectionStatus.stillHere":"Still here?","connectionStatus.tryConnectingAgain":"Try connecting again","connectionStatus.or":"or","connectionStatus.useDifferentLink":"use this different link","connectWallet.connectYourWallet":"Connect a wallet","connectWallet.waitingForWallet":"Waiting for {walletName}","connectWallet.connectToAccount":"Connect a wallet to your {appName} account","connectWallet.installAndConnect":"To connect to {walletName}, install and open the app. Then confirm the connection when prompted.","connectWallet.tryConnectingAgain":"Please try connecting again.","connectWallet.openInApp":"Open in app","connectWallet.copyLink":"Copy link","connectWallet.retry":"Retry","connectWallet.searchPlaceholder":"Search through {count} wallets","connectWallet.noWalletsFound":"No wallets found. Try another search.","connectWallet.lastUsed":"Last used","connectWallet.selectYourWallet":"Select your wallet","connectWallet.selectNetwork":"Select network","connectWallet.goToWallet":"Go to {walletName} to continue","connectWallet.scanToConnect":"Scan code to connect to {walletName}","connectWallet.openOrInstall":"Open or install {walletName}"};function n(){let n=e();return{t:(e,o)=>function(e,n,o){let c=n?.[e]??t[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,t)=>o[t]??e)):c}(e,n.intl.textLocalization,o)}}export{n as u};
1
+ import{u as e}from"./context-LVpDfP2H.mjs";const t={"connectionStatus.successfullyConnected":"Successfully connected with {walletName}","connectionStatus.errorTitle":"{errorMessage}","connectionStatus.connecting":"Connecting","connectionStatus.connectOneWallet":"For the best experience, connect only one wallet at a time.","connectionStatus.checkOtherWindows":"Don't see your wallet? Check your other browser windows.","connectionStatus.stillHere":"Still here?","connectionStatus.tryConnectingAgain":"Try connecting again","connectionStatus.or":"or","connectionStatus.useDifferentLink":"use this different link","connectWallet.connectYourWallet":"Connect a wallet","connectWallet.waitingForWallet":"Waiting for {walletName}","connectWallet.connectToAccount":"Connect a wallet to your {appName} account","connectWallet.installAndConnect":"To connect to {walletName}, install and open the app. Then confirm the connection when prompted.","connectWallet.tryConnectingAgain":"Please try connecting again.","connectWallet.openInApp":"Open in app","connectWallet.copyLink":"Copy link","connectWallet.retry":"Retry","connectWallet.searchPlaceholder":"Search through {count} wallets","connectWallet.noWalletsFound":"No wallets found. Try another search.","connectWallet.lastUsed":"Last used","connectWallet.selectYourWallet":"Select your wallet","connectWallet.selectNetwork":"Select network","connectWallet.goToWallet":"Go to {walletName} to continue","connectWallet.scanToConnect":"Scan code to connect to {walletName}","connectWallet.openOrInstall":"Open or install {walletName}"};function n(){let n=e();return{t:(e,o)=>function(e,n,o){let c=n?.[e]??t[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,t)=>o[t]??e)):c}(e,n.intl.textLocalization,o)}}export{n as u};
@@ -0,0 +1 @@
1
+ import{isMobile as e}from"react-device-detect";import{a as r,b as t,u as a}from"./internal-context-Z-fyxadS.mjs";import{jsx as n}from"react/jsx-runtime";import{useContext as o,createContext as i,useEffect as l,useRef as s,useCallback as d}from"react";import{d as c,c as u,g as p,a as y,k as m,f as E,u as h,P as w}from"./get-is-unified-wallet-CNcx75Dp.mjs";import{a as f,u as v}from"./events-context-CI0iqAXA.mjs";import{create as T}from"@privy-io/js-sdk-core";import{g as W}from"./useWallets-DlGuNtGR.mjs";import{u as A,W as g}from"./context-LVpDfP2H.mjs";function D(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}function U(t,a){let n=D(a);if(e&&n.universalLink)return L(n.universalLink,t);if(n.deepLink)return b(n.deepLink,t);if(n.universalLink)return L(n.universalLink,t);throw new r(`Unsupported wallet ${a.id}`)}function I(e,r){let t=D(r);if(t.universalLink)return L(t.universalLink,e)}let S="WALLETCONNECT_DEEPLINK_CHOICE";function k(){try{localStorage.removeItem(S)}catch{}}function x({href:e,name:r}){try{localStorage.setItem(S,JSON.stringify({href:e,name:r}))}catch{}}function _(){try{localStorage.removeItem(S)}catch{}}function M(e){return e.startsWith("http://")||e.startsWith("https://")}function b(e,r){if(M(e))return L(e,r);let t=e;return t.includes("://")||(t=e.replaceAll("/","").replaceAll(":",""),t=`${t}://`),t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function L(e,r){if(!M(e))return b(e,r);let t=e;return t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function C(e,r){window.open(e,r,"noreferrer noopener")}const P=({address:e,nonce:r})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${r}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`;let R=/*#__PURE__*/i({plugins:{current:{}}});const N=({children:e})=>{let r=s({});/*#__PURE__*/return n(R.Provider,{value:{plugins:r},children:e})},O=(...e)=>{let{plugins:r}=o(R);l((()=>{for(let t of e)r.current[t.id]=t;return()=>{for(let t of e)delete r.current[t.id]}}),[r])},K=()=>{let{plugins:e}=o(R);return d((r=>e.current[r]),[e])},$=Symbol("solana-funding-plugin"),B=Symbol("solana-ledger-plugin"),j=(e,{chainType:r,walletIndex:t}={})=>e?.linkedAccounts.filter((e=>!("wallet"!==e.type||"privy"!==e.walletClientType||void 0!==t&&e.walletIndex!==t||void 0!==r&&e.chainType!==r)))??[],z=async({user:e,accessToken:r,proxy:t,refreshSessionAndUser:a,privy:n,appConfig:o,recoverEmbeddedWallet:i,setUser:l,walletIndex:s,chainType:d,recoveryMethod:p,recoveryPassword:y,recoveryAccessToken:m,idempotencyKey:E})=>{if(0===s)if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await T(n,{request:{chain_type:d},headers:E?{"privy-idempotency-key":E}:void 0});else if("ethereum"===d){let a=c(e);a&&await i({address:a.address}),await t.create({accessToken:r,solanaAddress:a?.address,recoveryMethod:p,recoveryPassword:y,recoveryAccessToken:m})}else{if("solana"!==d)throw Error("Invalid input to create wallet");{let a=u(e);a&&await i({address:a.address}),await t.createSolana({accessToken:r,ethereumAddress:a?.address,recoveryMethod:p,recoveryPassword:y,recoveryAccessToken:m})}}else if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await T(n,{request:{chain_type:d}});else{let{entropyId:a,entropyIdVerifier:n}=W(e);await i(),await t.addWallet({accessToken:r,entropyId:a,entropyIdVerifier:n,chainType:d,hdWalletIndex:s})}let h=await a(),w=j(h,{chainType:d,walletIndex:s})[0];return l(h),{user:h,account:w}},F=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null);let H=async({accessToken:e,appConfig:r,privy:a,emitPrivyEvent:n,proxy:o,refreshSessionAndUser:i,recoverEmbeddedWallet:l,user:s,walletIndex:d,setModalData:c,openModal:u,chainType:y,setUser:m,idempotencyKey:E})=>{if(d<0)throw n("createWallet","onError",t.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${d}) is invalid.`);let h=p(s);if(d>0&&!h)throw n("createWallet","onError",t.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(r.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===r.embeddedWallets.mode)throw n("createWallet","onError",t.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!h&&r.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await q({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});let w=j(s,{chainType:y,walletIndex:d})[0];if(w)return{user:s,account:w};if(0===d&&!o)return q({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});if(!o)throw n("createWallet","onError",t.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return z({appConfig:r,walletIndex:d,chainType:y,user:s,accessToken:e,proxy:o,refreshSessionAndUser:i,privy:a,recoverEmbeddedWallet:l,setUser:m,idempotencyKey:E})},q=async({emitPrivyEvent:e,setModalData:r,openModal:a,chainType:n})=>new Promise(((o,i)=>{r({createWallet:{onSuccess:({user:r,account:t})=>{e("createWallet","onSuccess",{wallet:t}),o({user:r,account:t})},onFailure:r=>{e("createWallet","onError",t.UNKNOWN_EMBEDDED_WALLET_ERROR),i(r)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===n,shouldCreateSol:"solana"===n}}),a("EmbeddedWalletOnAccountCreateScreen")}));const V=()=>{let e=A(),r=f(),{setModalData:n}=y(),{initializeWalletProxy:o,recoverEmbeddedWallet:i,setUser:l,openModal:s,refreshSessionAndUser:d,privy:c,client:u}=a();return{create:async({chainType:a,options:p,latestUser:y,idempotencyKey:m})=>{let E=y;if(E||(E=await d()),!E)throw r("createWallet","onError",t.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await(async({appConfig:e,getAccessToken:r,initializeWalletProxy:a,user:n,privy:o,emitPrivyEvent:i,recoverEmbeddedWallet:l,setModalData:s,openModal:d,setUser:c,options:u,timeoutDuration:p,refreshSessionAndUser:y,chainType:m,idempotencyKey:E})=>{let[h,w]=await Promise.all([a(p),r()]);if(!w||!n)throw i("createWallet","onError",t.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!h&&e.customAuth?.enabled)throw i("createWallet","onError",t.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(u&&"walletIndex"in u&&"number"==typeof u.walletIndex){if("user-controlled-server-wallets-only"===e.embeddedWallets.mode)throw i("createWallet","onError",t.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return H({accessToken:w,appConfig:e,privy:o,emitPrivyEvent:i,openModal:d,proxy:h,refreshSessionAndUser:y,recoverEmbeddedWallet:l,setModalData:s,user:n,walletIndex:u.walletIndex,chainType:m,setUser:c})}let f=u&&"createAdditional"in u&&u.createAdditional,v=j(n,{chainType:m});if(v[0]&&!f)throw i("createWallet","onError",t.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return H({accessToken:w,appConfig:e,privy:o,emitPrivyEvent:i,openModal:d,proxy:h,recoverEmbeddedWallet:l,setModalData:s,user:n,walletIndex:(F(v)?.walletIndex??-1)+1,chainType:m,refreshSessionAndUser:y,setUser:c,idempotencyKey:E})})({appConfig:e,privy:c,getAccessToken:()=>u.getAccessToken(),refreshSessionAndUser:d,initializeWalletProxy:o,user:E,emitPrivyEvent:r,recoverEmbeddedWallet:i,setModalData:n,openModal:s,setUser:l,options:p,timeoutDuration:g,chainType:a,idempotencyKey:m})}}};function Y(e){let{create:r}=V();return v("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const J=async({emitPrivyEvent:e,getAccessToken:a,initializeWalletProxy:n,refreshSessionAndUser:o,user:i,appConfig:l},{privateKey:s,chainType:d,additionalSigners:c})=>{if(!i)throw e("linkAccount","onError",t.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let u="user-controlled-server-wallets-only"===l.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===u)throw new r("Specifying additionalSigners is only supported for TEE execution and this app uses On-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[p,y]=await Promise.all([a(),n(15e3)]);if(!y||!p)throw e("linkAccount","onError",t.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let{address:h}=await y.importWallet({privateKey:s,accessToken:p,chainType:d,mode:u,additionalSigners:c}),w=await o(),f="solana"===d?m(w):E(w),v=f?.find((e=>e.address===h));if(!v)throw e("createWallet","onError",t.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:v}),v},X=()=>{let{user:e}=h(),{client:r,refreshSessionAndUser:t,initializeWalletProxy:n}=a(),o=f(),i=A();return{importWallet:d((({privateKey:a,additionalSigners:l})=>J({getAccessToken:()=>r.getAccessToken(),user:e,initializeWalletProxy:n,refreshSessionAndUser:t,emitPrivyEvent:o,appConfig:i},{privateKey:a,chainType:"ethereum",additionalSigners:l})),[e,r,t,n,o,i])}},G=()=>{let{importWallet:e}=X(),{createWallet:r}=Y();return{...o(w),importWallet:e,createWallet:r}};export{N as P,$ as S,I as a,U as b,z as c,k as d,K as e,B as f,V as g,Y as h,X as i,J as j,O as k,C as o,P as p,_ as r,x as s,G as u};
@@ -0,0 +1 @@
1
+ import{getTransactionDecoder as r,getBase64Decoder as n,getBase58Encoder as e}from"@solana/kit";import{useMemo as o,useCallback as t}from"react";import{u as a}from"./context-LVpDfP2H.mjs";import{a as i,b as s}from"./internal-context-Z-fyxadS.mjs";function c(n){return new Uint8Array(r().decode(n).messageBytes)}async function l({solanaClient:r,tx:e}){let o=n().decode(c(e)),{value:t}=await r.rpc.getFeeForMessage(o).send();return t??0n}async function u({solanaClient:r,tx:e,replaceRecentBlockhash:o}){let{value:t}=await r.rpc.simulateTransaction(n().decode(e),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===t.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===t.err?await u({solanaClient:r,tx:e,replaceRecentBlockhash:!0}):{logs:t.logs??[],error:t.err,hasError:!!t.err,hasFunds:t.logs?.every((r=>!/insufficient funds/gi.test(r)&&!/insufficient lamports/gi.test(r)))??!0}}const f=(...r)=>{if("undefined"==typeof Buffer)throw new i("Buffer is not defined.",void 0,s.BUFFER_NOT_DEFINED);return Buffer.from(...r)};async function p({rpcSubscriptions:r,signature:n,timeout:e}){let o=new AbortController,t=await r.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:o.signal}),a=await Promise.race([new Promise((r=>{setTimeout((()=>{o.abort(),r(Error("Transaction confirmation timed out"))}),e)})),new Promise((async r=>{for await(let n of t){if(o.abort(),n.value.err)return r(Error("Transaction confirmation failed"));r(void 0)}}))]);if(a instanceof Error)throw a}function m({rpc:r,rpcSubscriptions:n,chain:o,blockExplorerUrl:t}){let a=function({rpc:r,rpcSubscriptions:n}){return async o=>new Promise((async(t,a)=>{try{let a=await r.sendTransaction(f(o).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await p({rpcSubscriptions:n,signature:a,timeout:1e4}),t({signature:new Uint8Array(e().encode(a))})}catch(r){a(r)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:o,blockExplorerUrl:t,sendAndConfirmTransaction:a}}function d(){let r=a(),n=o((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((n=>[n,r.solanaRpcs[n]?m({chain:n,rpc:r.solanaRpcs[n].rpc,rpcSubscriptions:r.solanaRpcs[n].rpcSubscriptions,blockExplorerUrl:r.solanaRpcs[n].blockExplorerUrl??`https://explorer.solana.com?cluster=${n.replace("solana:","")}`}):null])))),[r.solanaRpcs]);return t((r=>{if(!n[r])throw Error(`No RPC configuration found for chain ${r}`);return n[r]}),[n])}export{c as a,f as b,l as f,m as g,u as s,d as u,p as w};
@@ -0,0 +1 @@
1
+ import{useState as r,useMemo as a,useCallback as e,useEffect as t}from"react";import{createPublicClient as n,http as o}from"viem";import{a as i}from"./getPublicClient-B4uPLKn-.mjs";import{u as c}from"./internal-context-Z-fyxadS.mjs";function s({rpcConfig:s,appId:l,address:m,chain:p}){let{chains:d}=c(),[f,u]=r(0n),[h,g]=r(!1),b=a((()=>{let r=p||d[0];if(r)return n({chain:p,transport:o(i(r,s,l))})}),[p,s,l]),j=e((async()=>{if(!m||!b)return;g(!0);let r=await b.getBalance({address:m}).catch(console.error);return r?(u(r),g(!1),r):void 0}),[b,m,u]);return t((()=>{j().catch(console.error)}),[]),{balance:f,isLoading:h,reloadBalance:j}}export{s as u};
@@ -0,0 +1 @@
1
+ import{g as e}from"./get-is-unified-wallet-CNcx75Dp.mjs";import{useContext as r,createContext as t}from"react";const a=e=>{if("ethereum"===e.chainType)return{entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier"};if("solana"===e.chainType)return{entropyId:e.address,entropyIdVerifier:"solana-address-verifier"};throw Error("Failed to get account entropy details")},i=(r,t)=>{if(t?.imported)return a(t);let i=e(r);if(!i)throw Error("Failed to find primary wallet");return a(i)},o=/*#__PURE__*/t(null);function n(){let e=r(o);return null===e?(console.warn("`useWallets` was called outside the PrivyProvider component"),{wallets:[],ready:!1}):e}export{o as U,i as g,a as t,n as u};
@@ -0,0 +1 @@
1
+ import{getBase58Decoder as e,getTransactionDecoder as n,address as t,getTransactionEncoder as a}from"@solana/kit";import{useMemo as s,useEffect as i,useState as r}from"react";import o,{rpc as c,ConnectedStandardSolanaWallet as l}from"@privy-io/js-sdk-core";import{u as d,a as u,b as g,l as h}from"./internal-context-Z-fyxadS.mjs";import{a as p,h as f,b as w,o as A,k as y}from"./get-is-unified-wallet-CNcx75Dp.mjs";import{u as v}from"./usePrivy-Dj52a5sp.mjs";import{g as m,u as T}from"./useWallets-DlGuNtGR.mjs";import b from"eventemitter3";import{base58 as O}from"@scure/base";import{u as S}from"./context-LVpDfP2H.mjs";import{u as _}from"./use-sign-with-user-signer-Do5Oi_rb.mjs";import{g as E,u as I}from"./prepareFundingModalData-DjTxAoJ1.mjs";import{b as W,a as j,u as M}from"./useSolanaRpcClient-B7UDPdLi.mjs";const P=["solana:mainnet","solana:devnet","solana:testnet"];function F(n){return e().decode(n)}function C(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var U=0,D="__private_"+U+++"__implementation";function N(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var B=0;function R(e){return"__private_"+B+++"_"+e}var x=/*#__PURE__*/R("_address"),L=/*#__PURE__*/R("_publicKey"),V=/*#__PURE__*/R("_chains"),Q=/*#__PURE__*/R("_features"),G=/*#__PURE__*/R("_label"),K=/*#__PURE__*/R("_icon");class k{get address(){return N(this,x)[x]}get publicKey(){return N(this,L)[L].slice()}get chains(){return N(this,V)[V].slice()}get features(){return N(this,Q)[Q].slice()}get label(){return N(this,G)[G]}get icon(){return N(this,K)[K]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,K,{writable:!0,value:void 0}),N(this,x)[x]=e,N(this,L)[L]=n,N(this,V)[V]=P,N(this,G)[G]=t,N(this,K)[K]=a,N(this,Q)[Q]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===k&&Object.freeze(this)}}function J(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Y=0;function H(e){return"__private_"+Y+++"_"+e}var Z=/*#__PURE__*/H("_listeners"),z=/*#__PURE__*/H("_version"),q=/*#__PURE__*/H("_name"),X=/*#__PURE__*/H("_icon"),$=/*#__PURE__*/H("_injection"),ee=/*#__PURE__*/H("_isPrivyWallet"),ne=/*#__PURE__*/H("_accounts"),te=/*#__PURE__*/H("_on"),ae=/*#__PURE__*/H("_emit"),se=/*#__PURE__*/H("_off"),ie=/*#__PURE__*/H("_connected"),re=/*#__PURE__*/H("_connect"),oe=/*#__PURE__*/H("_disconnect"),ce=/*#__PURE__*/H("_signMessage"),le=/*#__PURE__*/H("_signAndSendTransaction"),de=/*#__PURE__*/H("_signTransaction");function ue(e,...n){J(this,Z)[Z][e]?.forEach((e=>e.apply(null,n)))}function ge(e,n){J(this,Z)[Z][e]=J(this,Z)[Z][e]?.filter((e=>n!==e))}function he(e,s,i){let r=structuredClone(n().decode(e)),o=t(s);return o in r.signatures&&(r.signatures[o]=i),new Uint8Array(a().encode(r))}function pe(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:s,privy:i,client:r}=d(),{user:o}=v(),{setModalData:l}=p(),{signWithUserSigner:h}=_();return{signMessage:({message:d,address:p,options:A})=>new Promise((async(y,v)=>{let T=f(o,p);if("privy"!==T?.walletClientType)return void v(new u("Wallet is not a Privy wallet",void 0,g.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:b,entropyIdVerifier:O}=m(o,T),S=w(T),_=W(d).toString("base64");if(_.length<1)return void v(new u("Message must be a non-empty string",void 0,g.INVALID_MESSAGE));let E=async()=>{let e;if(!o)throw Error("User must be authenticated before signing with a Privy wallet");let s=await r.getAccessToken();if(!s)throw Error("User must be authenticated to use their embedded wallet.");let l=n??await t(15e3);if(!l)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:T.address}))throw Error("Unable to connect to wallet");if(S){let n=await c(i,h,{chain_type:"solana",method:"signMessage",params:{message:_,encoding:"base64"},wallet_id:T.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await l.rpc({accessToken:s,entropyId:b,entropyIdVerifier:O,chainType:"solana",hdWalletIndex:T.walletIndex??0,requesterAppId:A?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:_}}});e=n.data.signature}return e};if(e({showWalletUIs:A?.uiOptions?.showWalletUIs}))try{let e=await E(),n=new Uint8Array(W(e,"base64"));y({signature:n})}catch(e){v(e)}else l({signMessage:{method:"solana_signMessage",data:_,confirmAndSign:E,onSuccess:e=>{y({signature:new Uint8Array(W(e,"base64"))})},onFailure:e=>{v(e)},uiOptions:A?.uiOptions??{}},connectWallet:{recoveryMethod:T.recoveryMethod,connectingWalletAddress:T.address,entropyId:b,entropyIdVerifier:O,isUnifiedWallet:S,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{v(new u("Failed to connect to wallet",e,g.UNKNOWN_CONNECT_WALLET_ERROR))}}}),s("EmbeddedWalletConnectingScreen")}))}}function fe(){let{isHeadlessSigning:e,openModal:n}=d(),{setModalData:t}=p(),{signMessage:a}=pe(),{user:s}=v();return{signTransaction:async({transaction:i,options:r,chain:o="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await a({message:j(e),address:c,options:{...r,uiOptions:{...r?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:he(e,c,n)}}return e({showWalletUIs:r?.uiOptions?.showWalletUIs})?l(i):new Promise((async(e,a)=>{let d=f(s,c);if("privy"!==d?.walletClientType)return void a(new u("Wallet is not a Privy wallet",void 0,g.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:p}=m(s,d),A=w(d);function y(e){return n=>{a(n instanceof u?n:new u("Failed to connect to wallet",n,e))}}let v={account:d,transaction:i,chain:o,signOnly:!0,uiOptions:r?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:y(g.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:h,entropyIdVerifier:p,isUnifiedWallet:A,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:y(g.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:v}),n("EmbeddedWalletConnectingScreen")}))}}}let we=new class extends b{setImplementation(e){C(this,D)[D]=e}async signMessage(e){return C(this,D)[D].signMessage(e)}async signAndSendTransaction(e){return C(this,D)[D].signAndSendTransaction(e)}async signTransaction(e){return C(this,D)[D].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,D,{writable:!0,value:void 0}),C(this,D)[D]=e}}({signTransaction:h("signTransaction was not injected"),signAndSendTransaction:h("signAndSendTransaction was not injected"),signMessage:h("signMessage was not injected")}),Ae=new class{get version(){return J(this,z)[z]}get name(){return J(this,q)[q]}get icon(){return J(this,X)[X]}get chains(){return P.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:J(this,re)[re]},"standard:disconnect":{version:"1.0.0",disconnect:J(this,oe)[oe]},"standard:events":{version:"1.0.0",on:J(this,te)[te]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:J(this,le)[le]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:J(this,de)[de]},"solana:signMessage":{version:"1.0.0",signMessage:J(this,ce)[ce]},"privy:":{privy:{signMessage:J(this,$)[$].signMessage,signTransaction:J(this,$)[$].signTransaction,signAndSendTransaction:J(this,$)[$].signAndSendTransaction}}}}get accounts(){return J(this,ne)[ne].slice()}get isPrivyWallet(){return J(this,ee)[ee]}constructor({name:e,icon:n,version:t,injection:a,wallets:s}){Object.defineProperty(this,ae,{value:ue}),Object.defineProperty(this,se,{value:ge}),Object.defineProperty(this,Z,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,X,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),Object.defineProperty(this,ne,{writable:!0,value:void 0}),Object.defineProperty(this,te,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),Object.defineProperty(this,de,{writable:!0,value:void 0}),J(this,Z)[Z]={},J(this,te)[te]=(e,n)=>(J(this,Z)[Z][e]?.push(n)||(J(this,Z)[Z][e]=[n]),()=>J(this,se)[se](e,n)),J(this,ie)[ie]=e=>{null!=e&&(J(this,ne)[ne]=e.map((({address:e})=>new k({address:e,publicKey:O.decode(e)})))),J(this,ae)[ae]("change",{accounts:this.accounts})},J(this,re)[re]=async()=>(J(this,ae)[ae]("change",{accounts:this.accounts}),{accounts:this.accounts}),J(this,oe)[oe]=async()=>{J(this,ae)[ae]("change",{accounts:this.accounts})},J(this,ce)[ce]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await J(this,$)[$].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},J(this,le)[le]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await J(this,$)[$].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},J(this,de)[de]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:s,chain:i}of e){let{signedTransaction:e}=await J(this,$)[$].signTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:s});n.push({signedTransaction:e})}return n},J(this,q)[q]=e,J(this,X)[X]=n,J(this,z)[z]=t,J(this,$)[$]=a,J(this,ne)[ne]=[],J(this,ee)[ee]=!0,a.on("accountChanged",J(this,ie)[ie],this),J(this,ie)[ie](s)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:we});function ye(){let{ready:e}=T(),{user:n}=v(),{signMessage:t}=pe(),{signTransaction:a}=fe(),{signAndSendTransaction:r}=function(){let e=S(),{isHeadlessSigning:n,openModal:t}=d(),{setModalData:a}=p(),{signTransaction:s}=fe(),i=M(),{user:r}=v(),{signWithUserSigner:l}=_();return{signAndSendTransaction:async({transaction:d,address:h,chain:p="solana:mainnet",options:A})=>{let y=f(r,h);if("privy"!==y?.walletClientType)throw new u("Wallet is not a Privy wallet",void 0,g.EMBEDDED_WALLET_NOT_FOUND);let v=w(y);async function T(n){if(A?.sponsor)return await(async n=>{if(!v)throw new u("Sponsoring transactions is only supported for wallets on the TEE stack",g.INVALID_DATA);let t=new o({appId:e.id,clientId:e.appClientId,storage:I}),a=await c(t,l,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:W(n).toString("base64"),encoding:"base64"},caip2:`solana:${(await i(p).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:y.id});if(a.data&&"hash"in a.data)return{signature:O.decode(a.data.hash)};throw Error("Failed to sign and send transaction")})(n);let{signedTransaction:t}=await s({transaction:n,address:h,chain:p,options:{...A,uiOptions:{...A?.uiOptions,showWalletUIs:!1}}}),{signature:a}=await i(p).sendAndConfirmTransaction(t);return{signature:a}}return n({showWalletUIs:A?.uiOptions?.showWalletUIs})?T(d):new Promise((async(n,s)=>{let i,o,{entropyId:c,entropyIdVerifier:l}=m(r,y);function f(e){return n=>{s(n instanceof u?n:new u("Failed to connect to wallet",n,e))}}let w={account:y,transaction:d,chain:p,signOnly:!1,uiOptions:A?.uiOptions||{},onConfirm:T,onSuccess:n,onFailure:f(g.TRANSACTION_FAILURE),isSponsored:!!A?.sponsor},b={recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:c,entropyIdVerifier:l,isUnifiedWallet:v,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:f(g.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(i=E({address:h,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...A,asset:"native-currency",chain:p},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),o={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:p,destinationAddress:h,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),a({connectWallet:b,standardSignAndSendTransaction:w,funding:i,solanaFundingData:o}),t("EmbeddedWalletConnectingScreen")}))}}}(),l=s((()=>{let e=[...A(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=y(n);return t.length?[...e,...t]:e}),[n]),h=s((()=>({signMessage:async({message:e,address:n,options:a})=>await t({message:e,address:n,options:a}),signTransaction:async({transaction:e,address:n,chain:t,options:s})=>await a({transaction:e,address:n,chain:t,options:s}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:s}=await r({transaction:e,address:n,chain:t,options:a});return{signature:s}}})),[t,a,r]);return i((()=>{we?.setImplementation(h)}),[h]),i((()=>{var n;!e||(n=Ae.accounts).length===l.length&&n.every(((e,n)=>e.address===l[n]?.address))||we?.emit("accountChanged",l)}),[e,l]),{ready:e,wallet:Ae}}function ve(){let{client:e}=d(),{ready:n,wallet:t}=ye(),[a,s]=r([]),[o,c]=r([]);return i((()=>{let e=[t,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];c(e);let n=a.flatMap((n=>{let t=()=>c([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),s=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{s.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[a]),i((()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[n,e.connectors]),{ready:n,wallets:o}}function me(){let{ready:e,wallets:n}=ve();return{ready:e,wallets:s((()=>n.flatMap((e=>e.accounts.map((n=>new l({wallet:e,account:n})))))),[n])}}export{P as S,ve as a,F as g,me as u};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privy-io/react-auth",
3
- "version": "3.11.1-beta-20260122161812",
3
+ "version": "3.12.0",
4
4
  "description": "React client for the Privy Auth API",
5
5
  "keywords": [
6
6
  "authentication",
@@ -176,12 +176,12 @@
176
176
  "x402": "^0.7.1",
177
177
  "zustand": "^5.0.0",
178
178
  "@privy-io/api-base": "1.8.1",
179
+ "@privy-io/ethereum": "0.0.7",
180
+ "@privy-io/js-sdk-core": "0.59.0",
179
181
  "@privy-io/chains": "0.0.6",
180
- "@privy-io/ethereum": "0.0.7-beta-20260122161812",
181
- "@privy-io/routes": "0.0.6-beta-20260122161812",
182
- "@privy-io/js-sdk-core": "0.58.8-beta-20260122161812",
183
- "@privy-io/urls": "0.0.3",
184
- "@privy-io/popup": "0.0.2"
182
+ "@privy-io/routes": "0.0.6",
183
+ "@privy-io/popup": "0.0.2",
184
+ "@privy-io/urls": "0.0.3"
185
185
  },
186
186
  "devDependencies": {
187
187
  "@abstract-foundation/agw-client": "^1.9.1",
@@ -1 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),i=require("./context-P14IM76D.js"),t=require("./internal-context-NWsAL807.js"),o=require("./get-is-unified-wallet-DL_nMXp5.js"),u=require("./ScreenLayout-BENEZm1m.js");require("react"),require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("viem"),require("./ModalHeader-7knkCFjH.js"),require("styled-components"),require("./private-privy-provider-hH9v0z7o.js"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("js-cookie"),require("./events-context-Di6--rDg.js"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./Screen-uapp8UP4.js"),require("./index-ByFhjjzH.js");const n=({title:i="Account not found",subtitle:t,appName:o="this app",ctaText:n="Try logging in again",onRetry:a})=>/*#__PURE__*/e.jsx(u.ScreenLayout,{title:i,subtitle:t||`Please try logging in again or go to ${o} to create an account.`,icon:r.HelpCircle,iconVariant:"warning",primaryCta:{label:n,onClick:a},watermark:!0}),a={component:()=>{let{navigate:r,setModalData:u,data:a}=o.usePrivyModal(),c=i.useAppConfig(),{getAuthMeta:s,client:l}=t.usePrivyInternal();/*#__PURE__*/return e.jsx(n,{appName:c?.name,onRetry:()=>{let e=s();u({...a,login:{...a?.login,...e?.disableSignup?{disableSignup:!0}:{}}}),l?.authFlow&&(l.authFlow=void 0),r("LandingScreen")}})}};exports.AccountNotFoundScreen=a,exports.AccountNotFoundScreenView=n,exports.default=a;
@@ -1,6 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("lucide-react");require("react");var t=require("styled-components"),i=require("./ModalHeader-7knkCFjH.js"),n=require("./context-P14IM76D.js"),o=require("./internal-context-NWsAL807.js"),s=require("./get-is-unified-wallet-DL_nMXp5.js"),a=require("./shouldProceedtoEmbeddedWalletCreationFlow-Cp0BucAr.js"),l=require("./ScreenLayout-BENEZm1m.js");require("./private-privy-provider-hH9v0z7o.js"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("viem"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("ofetch"),require("js-cookie"),require("./events-context-Di6--rDg.js"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("tinycolor2"),require("./Screen-uapp8UP4.js"),require("./index-ByFhjjzH.js");const c={component:()=>{let{user:r,logout:t}=s.usePrivyContext(),{onUserCloseViaDialogOrKeybindRef:i,setModalData:l,navigate:c}=s.usePrivyModal(),d=n.useAppConfig(),{acceptTerms:p,closePrivyModal:q,createAnalyticsEvent:y}=o.usePrivyInternal(),v=e=>{e?.preventDefault(),q({shouldCallAuthOnSuccess:!1}),t()};i.current=v;/*#__PURE__*/return e.jsx(u,{termsAndConditionsUrl:d?.legal.termsAndConditionsUrl,privacyPolicyUrl:d?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await p(),r&&a.shouldProceedtoEmbeddedWalletCreationFlow(r,d.embeddedWallets)?(l({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),y({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AffirmativeConsentScreen"}}),t()},callAuthOnSuccessOnClose:!0}}),c("EmbeddedWalletOnAccountCreateScreen")):q()},onDecline:v})}},u=({termsAndConditionsUrl:t,privacyPolicyUrl:n,onAccept:o,onDecline:s,title:a="One last step",subtitle:c="By signing up, you agree to our terms and privacy policy."})=>/*#__PURE__*/e.jsx(l.ScreenLayout,{title:a,subtitle:c,icon:r.FileCheck,primaryCta:{label:"Accept",onClick:o},secondaryCta:{label:"No thanks",onClick:s},watermark:!0,children:(t||n)&&/*#__PURE__*/e.jsxs(d,{children:[t&&/*#__PURE__*/e.jsxs(i.Button,{variant:"muted",href:t,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Terms",/*#__PURE__*/e.jsx(r.ExternalLink,{width:16,height:16,strokeWidth:2.25})]}),n&&/*#__PURE__*/e.jsxs(i.Button,{variant:"muted",href:n,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Privacy Policy",/*#__PURE__*/e.jsx(r.ExternalLink,{width:16,height:16,strokeWidth:2.25})]})]})});let d=t.styled.div`
2
- display: flex;
3
- flex-direction: column;
4
- gap: 12px;
5
- margin-top: var(--screen-space);
6
- `;exports.AffirmativeConsentScreen=c,exports.AffirmativeConsentScreenView=u,exports.default=c;
@@ -1 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("lucide-react");require("react");var i=require("./context-P14IM76D.js"),t=require("./get-is-unified-wallet-DL_nMXp5.js"),o=require("./ScreenLayout-BENEZm1m.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("viem"),require("./internal-context-NWsAL807.js"),require("ofetch"),require("./ModalHeader-7knkCFjH.js"),require("styled-components"),require("./private-privy-provider-hH9v0z7o.js"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("js-cookie"),require("./events-context-Di6--rDg.js"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./Screen-uapp8UP4.js"),require("./index-ByFhjjzH.js");const n=({title:i="You don't have access to this app",subtitle:t="Have you been invited?",ctaText:n="Try another account",ctaLink:u,onCtaClick:a})=>/*#__PURE__*/e.jsx(o.ScreenLayout,{title:i,subtitle:t,icon:r.Lock,iconVariant:"warning",primaryCta:{label:n,onClick:()=>{u?window.open(u,"_blank"):a?.()}},watermark:!0}),u={component:()=>{let{navigate:r}=t.usePrivyModal(),o=i.useAppConfig(),u=o?.allowlistConfig.errorTitle||"You don't have access to this app",a=o?.allowlistConfig.errorDetail||"Have you been invited?",c=o?.allowlistConfig.errorCtaText||"Try another account",s=o?.allowlistConfig.errorCtaLink;/*#__PURE__*/return e.jsx(n,{title:u,subtitle:a,ctaText:c,ctaLink:s??void 0,onCtaClick:()=>{r("LandingScreen")}})}};exports.AllowlistRejectionScreen=u,exports.AllowlistRejectionScreenView=n,exports.default=u;
@@ -1 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./context-P14IM76D.js"),n=require("./internal-context-NWsAL807.js"),i=require("./events-context-Di6--rDg.js"),o=require("./get-is-unified-wallet-DL_nMXp5.js"),l=require("./ConnectWalletView-bug4GgVZ.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("viem"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("react-device-detect"),require("styled-components"),require("./ModalHeader-7knkCFjH.js"),require("./private-privy-provider-hH9v0z7o.js"),require("mipd"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("js-cookie"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("@heroicons/react/24/outline/CheckIcon"),require("./copy-BiZ7dtqy.js"),require("./Link-BdtTp2J4.js"),require("./QrCode-DPcePk5I.js"),require("qrcode"),require("./EmailInputForm-Y-nHsEtF.js"),require("./ErrorMessage-BfTVyue9.js"),require("./useI18n-D4jKEXmt.js"),require("./WalletCards-BfpeHH5n.js"),require("./state-DMsGOICm.js"),require("./Screen-uapp8UP4.js"),require("./index-ByFhjjzH.js");const c={component:()=>{let{setWalletConnectionStatus:c,closePrivyModal:a,inProgressAuthFlowRef:u}=n.usePrivyInternal(),{data:s,navigate:q}=o.usePrivyModal(),d=t.useAppConfig(),p=i.useEmitPrivyEvent(),C=s?.externalConnectWallet?.description,v=r.useRef(s?.externalConnectWallet?.walletList??d.appearance.walletList),j=r.useRef(s?.externalConnectWallet?.walletChainType??d.appearance.walletChainType),W=v.current,h=j.current,y="link"===u.current?void 0:()=>q("LandingScreen");/*#__PURE__*/return e.jsx(l.i,{walletList:W,walletChainType:h,onClose:a,onConnect:r.useCallback((({connector:e,wallet:r})=>{p("connectWallet","onSuccess",{wallet:r}),c({status:"connected",connectedWallet:r,connector:e,connectError:null,connectRetry:()=>null}),q("ConnectionStatusScreen",!s?.externalConnectWallet?.preSelectedWalletId)}),[c,q,s?.login?.disableSignup,s?.externalConnectWallet?.preSelectedWalletId]),onConnectError:e=>{e instanceof n.PrivyError?(console.warn(e.cause?e.cause:e.message),p("connectWallet","onError",e.privyErrorCode||n.PrivyErrorCode.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),p("connectWallet","onError",n.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))},onBack:y,customDescription:C||"",preSelectedWalletId:s?.externalConnectWallet?.preSelectedWalletId,app:d})},isUnauthenticatedScreem:!0};exports.AuthenticateWithWalletScreen=c,exports.default=c;
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),t=require("react"),n=require("viem"),i=require("@privy-io/js-sdk-core"),a=require("./Layouts-D3TOcPhm.js"),o=require("./ModalHeader-7knkCFjH.js"),s=require("./ScreenHeader-CgYJ5Fmg.js"),u=require("./FundWalletMethodHeader-Dn7FrcOp.js"),d=require("./index-ByFhjjzH.js"),c=require("./context-P14IM76D.js"),l=require("./internal-context-NWsAL807.js"),h=require("./private-privy-provider-hH9v0z7o.js"),g=require("./get-is-unified-wallet-DL_nMXp5.js"),p=require("./useGetTokenPrice-cA2TnAzD.js"),f=require("./analytics-C6C_4JmG.js"),v=require("./reservoir-CQGyEBb7.js"),m=require("./getChainName-C4rO8-3n.js"),q=require("./transaction-DjF5X-by.js"),C=require("./BridgeNetworkSelectionView-BNv-V9G2.js"),S=require("./TransferOrBridgeLoadingScreen-D9t_WQ5r.js");function I(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("tinycolor2"),require("ofetch"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("js-cookie"),require("./events-context-Di6--rDg.js"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("./useGetSolPrice-C986iVoO.js"),require("./getFormattedUsdFromLamports-Mu2fqwL2.js"),require("./getErc20Balance-CP3UfGGz.js"),require("./Row-CMqYn75Q.js"),require("./ErrorMessage-BfTVyue9.js"),require("./Value-mhPsfsxe.js"),require("./LoadingSkeleton-BoyADunQ.js"),require("./Subtitle-CR8zM7ZJ.js"),require("./Title-ifTy35V5.js"),require("@heroicons/react/24/outline/WalletIcon"),require("./Chip-C6r7fZiR.js"),require("./NetworkIcon-BZ9Mj6vV.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("./shared-DBm7PUrg.js"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("./formatErc20TokenAmount-DxwoWe7e.js"),require("./ethers-BlKEtatO.js"),require("./styles-DtykMHfN.js"),require("./LinkPasskeyScreen-cUu7WCqn.js"),require("lucide-react"),require("./TodoList-Cii_KrAk.js"),require("./ScreenLayout-BENEZm1m.js"),require("./Screen-uapp8UP4.js"),require("./InjectedWalletIcon-UY3nMvZo.js"),require("./Address-BJFF-dMG.js");var E=/*#__PURE__*/I(r);const T={component:()=>{let r=c.useAppConfig(),{rpcConfig:I,appId:T,closePrivyModal:y,createAnalyticsEvent:j}=l.usePrivyInternal(),{navigate:A,setModalData:N,data:w}=g.usePrivyModal(),b=c.useAppConfig(),{wallets:x}=h.useWallets(),[_,L]=t.useState(null),[F,P]=t.useState(null),[k,R]=t.useState([]),[U,B]=t.useState(0),[M,O]=t.useState(!1),[W,D]=t.useState(!1),[H,G]=t.useState(!1),[V,Y]=t.useState(!1),[Q,$]=t.useState(),[X,z]=t.useState();if(!w?.funding||"solana"!==w.funding.chainType)throw Error("Invalid funding data");let{address:J,chain:K,connectedWallet:Z}=w.funding,[ee,re]=t.useState(w.funding.amount),te=("ethereum"===Z?.type?Z:void 0)??x[0],ne=h.useExternalWalletListing(te?.walletClientType||"unknown"),ie=ne?.name||"wallet",[ae,oe]=t.useState(null);t.useEffect((()=>{(async()=>{if(!te)return;let e=await te.getEthereumProvider();oe(n.createWalletClient({account:te.address,transport:n.custom(e)}).extend(n.publicActions))})().catch(console.error)}),[te]);let[se,ue]=t.useState(0n),de=q.getNativeCurrencyFromLamports(se);t.useEffect((()=>{let e=r.solanaRpcs[K];e?h.fetchWalletBalance({rpc:e.rpc,address:J}).then((e=>ue(BigInt(e)))).catch(console.error):console.warn("Unable to load solana rpc, skipping balance")}),[]);let[ce,le]=t.useState(),{tokenPrice:he}=p.useGetTokenPrice("solana"),{fundingAmountInBaseUnit:ge,fundingAmountInUsd:pe}=q.getSolanaFormattedAmounts({amount:ee,fee:0n,tokenPrice:he,isUsdc:w.funding.isUSDC});if(t.useEffect((()=>{(async()=>{if(!ae||!te)return;let e=["solana:testnet","solana:devnet"].includes(K);e&&console.warn("Solana testnets are not supported for bridging");let r=i.addToDefaultChains(b.chains).filter((({testnet:r})=>!!r===e)),t=(await C.getBalanceForChains({chains:r,address:te.address,appId:T,rpcConfig:I})).filter((e=>e.balance>0n));if(t.length<1)return void L(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(te.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE));t.sort(((e,r)=>Number(r.balance-e.balance)));let n=(await Promise.allSettled(t.map((async e=>({...e,quote:await v.getQuote({isTestnet:!1,input:v.toGetQuoteInput({appId:T,amount:ge.toString(),user:te.address,recipient:J,destinationChainId:v.RELAY_SOLANA_MAINNET_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(n.length<1)return void L(new l.PrivyClientError(`Unable to fetch quotes for bridging. Wallet ${h.formatWalletAddress(te.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE));let a=n.map((({quote:e,balance:r,chain:t})=>({bridgeTx:v.toEvmTransactionRequestInfoFromQuote(e),balance:r,chain:t,isErc20Quote:!1}))).filter((({bridgeTx:e})=>!!e));if(a.length>1)return void R(a);let o=a.at(0);o?(D(!0),le({data:o.bridgeTx.data,to:o.bridgeTx.to,value:o.bridgeTx.value,chain:o.chain})):L(new l.PrivyClientError(`Unable to select bridge option from quotes. Wallet ${h.formatWalletAddress(te.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ae]),t.useEffect((()=>{(async()=>{let e,r;if(!ae||!te||M||H||!ce)return;O(!0);let t=n.createPublicClient({chain:ce.chain,transport:n.http(h.getJsonRpcEndpointFromChain(ce.chain,I,T))});try{e=await t.prepareTransactionRequest({account:te.address,to:ce.to,chain:ce.chain,data:ce.data,value:BigInt(ce.value??0)})}catch(e){console.error(e),k.length>1&&P(e.shortMessage??"Something went wrong")}if(e){O(!1),G(!0);try{await ae.switchChain({id:ce.chain.id})}catch(e){await ae.addChain({chain:ce.chain}),await ae.switchChain({id:ce.chain.id})}try{r=await ae.sendTransaction(e)}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(k.length<1?L(new l.PrivyClientError(e.shortMessage,void 0,l.PrivyErrorCode.TRANSACTION_FAILURE)):P(e.shortMessage??"Something went wrong"))}if(r)return await ae.waitForTransactionReceipt({hash:r}),W?(z("pending"),void $(r)):(G(!1),Y(!0),void j({eventName:f.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:r,address:te.address,chainId:ce.chain.id,chainType:"ethereum",value:ce.value?n.formatUnits(BigInt(ce.value),18):void 0,token:"ETH",destination:J,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:n.formatUnits(ge,9),destinationToken:"SOL"}}));G(!1)}else O(!1)})().catch(console.error)}),[ae,ce]),v.useBridgingStatusPolling({transactionHash:Q,isTestnet:!1,bridgingStatus:X,setBridgingStatus:z,onSuccess({transactionHash:e}){D(!1),Y(!0),j({eventName:f.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:te?.address,chainId:ce?.chain.id,chainType:"ethereum",value:ce?.value?n.formatUnits(BigInt(ce.value),18):void 0,token:"ETH",destination:J,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:n.formatUnits(ge,9),destinationToken:"SOL"}})},onFailure({error:e}){D(!1),L(e)}}),t.useEffect((()=>{_&&(N({funding:w?.funding,solanaFundingData:w?.solanaFundingData,sendTransaction:w?.sendTransaction,errorModalData:{error:_,previousScreen:"TransferFromWalletScreen"}}),A("ErrorScreen",!1))}),[_]),t.useEffect((()=>{if(!V)return;let e=setTimeout(y,c.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[V]),V/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(a.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(a.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(E.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(s.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${ee} SOL to your ${b.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(a.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(o.BlobbyFooter,{})]});let fe=k[U];return k.length>1&&fe?/*#__PURE__*/e.jsx(C.BridgeNetworkSelectionView,{displayName:ie,configuredFundingChain:K,formattedBalance:de,fundingAmount:ee,fundingCurrency:"SOL",fundingAmountInUsd:pe,options:k,selectedOption:fe,isPreparing:M,isSubmitting:H,addressToFund:J,fundingWalletAddress:te?.address||"",errorMessage:F,onSubmit:()=>{w.funding?.amount!==ee?async function(){if(te&&fe)try{let e=await v.getQuote({isTestnet:!1,input:v.toGetQuoteInput({appId:T,amount:ge.toString(),user:te.address,recipient:J,destinationChainId:v.RELAY_SOLANA_MAINNET_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:fe.chain.id})}),r=v.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");D(!0),le({data:r.data,to:r.to,value:r.value,chain:fe.chain})}catch(e){console.error(e),L(new l.PrivyClientError("Unable to fetch quotes for bridging",e,l.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):le({to:fe.bridgeTx.to,data:fe.bridgeTx.data,value:fe.bridgeTx.value,chain:fe.chain})},onSelect:e=>{e!==U&&(P(null),B(e))},onAmountChange:re}):H&&te?/*#__PURE__*/e.jsx(S.TransferOrBridgeLoadingScreen,{walletClientType:te?.walletClientType||"unknown",displayName:ie,addressToFund:J,isBridging:W,isErc20Flow:!1,chainId:"solana",chainName:m.getChainName(K),totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
- /*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(d.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(o.BlobbyFooter,{})]})}};exports.AwaitingEvmToSolBridgingScreen=T,exports.default=T;
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),t=require("react"),n=require("viem"),i=require("@privy-io/js-sdk-core"),a=require("./Layouts-D3TOcPhm.js"),s=require("./ModalHeader-7knkCFjH.js"),o=require("./ScreenHeader-CgYJ5Fmg.js"),u=require("./FundWalletMethodHeader-Dn7FrcOp.js"),d=require("./index-ByFhjjzH.js"),c=require("./context-P14IM76D.js"),l=require("./internal-context-NWsAL807.js"),h=require("./private-privy-provider-hH9v0z7o.js"),g=require("./get-is-unified-wallet-DL_nMXp5.js"),f=require("./useGetTokenPrice-cA2TnAzD.js"),m=require("./transfer-B1Y_9LWi.js"),v=require("./formatErc20TokenAmount-DxwoWe7e.js"),p=require("./ethers-BlKEtatO.js"),C=require("./analytics-C6C_4JmG.js"),y=require("./reservoir-CQGyEBb7.js"),E=require("./BridgeNetworkSelectionView-BNv-V9G2.js"),T=require("./getErc20Balance-CP3UfGGz.js"),q=require("./TransferOrBridgeLoadingScreen-D9t_WQ5r.js");function I(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("tinycolor2"),require("ofetch"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("js-cookie"),require("./events-context-Di6--rDg.js"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("./useGetSolPrice-C986iVoO.js"),require("./Row-CMqYn75Q.js"),require("./ErrorMessage-BfTVyue9.js"),require("./Value-mhPsfsxe.js"),require("./LoadingSkeleton-BoyADunQ.js"),require("./Subtitle-CR8zM7ZJ.js"),require("./Title-ifTy35V5.js"),require("@heroicons/react/24/outline/WalletIcon"),require("./getChainName-C4rO8-3n.js"),require("./Chip-C6r7fZiR.js"),require("./NetworkIcon-BZ9Mj6vV.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("./shared-DBm7PUrg.js"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("./styles-DtykMHfN.js"),require("./LinkPasskeyScreen-cUu7WCqn.js"),require("lucide-react"),require("./TodoList-Cii_KrAk.js"),require("./ScreenLayout-BENEZm1m.js"),require("./Screen-uapp8UP4.js"),require("./InjectedWalletIcon-UY3nMvZo.js"),require("./Address-BJFF-dMG.js");var S=/*#__PURE__*/I(r);const j={component:()=>{let{rpcConfig:r,appId:I,closePrivyModal:j,createAnalyticsEvent:w}=l.usePrivyInternal(),{navigate:b,setModalData:A,data:N}=g.usePrivyModal(),F=c.useAppConfig(),{wallets:x}=h.useWallets(),[B,P]=t.useState(!1),[_,R]=t.useState(0n),[k,U]=t.useState(!1),[W,L]=t.useState(null),[M,D]=t.useState(null),[H,Q]=t.useState([]),[O,$]=t.useState(0),[G,V]=t.useState(!1),[Y,J]=t.useState(!1),[X,z]=t.useState(!1),[K,Z]=t.useState(!1),[ee,re]=t.useState(),[te,ne]=t.useState();if(!N?.funding||"ethereum"!==N.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:ie,chain:ae,connectedWallet:se}=N.funding,oe=N.funding.address,ue=N.funding.erc20Address,[de,ce]=t.useState(N.funding.amount);t.useEffect((()=>{ue&&!ie&&L(Error("Unable to fetch token details"))}),[]);let le=!!ue&&!!ie,he=le?BigInt(parseFloat(de)*10**ie.decimals):n.parseEther(de),ge=("ethereum"===se?.type?se:void 0)??x[0],fe=h.useExternalWalletListing(ge?.walletClientType||"unknown"),me=fe?.name||"wallet",[ve,pe]=t.useState(null);t.useEffect((()=>{(async()=>{if(!ge)return;let e=await ge.getEthereumProvider();pe(n.createWalletClient({account:ge.address,transport:n.custom(e)}).extend(n.publicActions))})().catch(console.error)}),[ge]);let[Ce,ye]=t.useState(0n);t.useEffect((()=>{n.createPublicClient({chain:ae,transport:n.http(h.getJsonRpcEndpointFromChain(ae,r,I))}).getBalance({address:oe}).then(ye).catch(console.error)}),[]);let[Ee,Te]=t.useState(0n);t.useEffect((()=>{le&&T.getErc20Balance({chain:ae,address:oe,appId:I,rpcConfig:r,erc20Address:ue}).then((e=>Te(e.balance))).catch(console.error)}),[]);let{tokenPrice:qe}=f.useGetTokenPrice(ae.id),[Ie,Se]=t.useState({to:oe,chain:ae,value:he,data:void 0});t.useEffect((()=>{(async()=>{let e,t;if(!ve||!ge||G||X)return;V(!0);let i=n.createPublicClient({chain:Ie.chain,transport:n.http(h.getJsonRpcEndpointFromChain(Ie.chain,r,I))});if(le&&!Ie.data)return await i.simulateContract({address:ue,chain:Ie.chain,abi:m.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[oe,he],account:ge.address}).catch((e=>{if("ContractFunctionZeroDataError"===e?.cause?.name||e?.message?.includes("returned no data"))return i.simulateContract({address:ue,chain:Ie.chain,abi:m.ERC20_TRANSFER_ABI_STUB_NO_RETURN,functionName:"transfer",args:[oe,he],account:ge.address}).catch((e=>{console.warn("Simulated token transfer failed with error, fetching bridge options.",e)}));console.warn("Simulated token transfer failed with error, fetching bridge options.",e)}))?(V(!1),void Se({to:ue,chain:Ie.chain,data:n.encodeFunctionData({abi:m.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[oe,he]}),value:"0x0"})):(V(!1),void U(!0));try{e=await i.prepareTransactionRequest({account:ge.address,to:Ie.to,chain:Ie.chain,data:Ie.data,value:BigInt(Ie.value??0)})}catch(e){if(console.error(e),H.length>1)D(e.shortMessage??"Something went wrong");else if(Y&&0===H.length)return void L(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ge.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE))}if(!e)return V(!1),void U(!0);V(!1),z(!0),P(!0),R(e.gas);try{await ve.switchChain({id:Ie.chain.id})}catch(e){await ve.addChain({chain:Ie.chain}),await ve.switchChain({id:Ie.chain.id})}try{t=await ve.sendTransaction(e)}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(H.length<1){let r=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(r="User rejected the request."),L(new l.PrivyClientError(r,void 0,l.PrivyErrorCode.TRANSACTION_FAILURE))}else D(e.shortMessage??"Something went wrong")}if(t)return await ve.waitForTransactionReceipt({hash:t}),z(!1),Y?(re(t),void ne("pending")):(Z(!0),A(h.addFundingResultToModalData(N,"completed",t,ge?.walletClientType,le,ie,ae)),void w({eventName:C.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:t,address:ge.address,chainId:Ie.chain.id,chainType:"ethereum",value:Ie.value?n.formatUnits(BigInt(Ie.value),ie?.decimals??18):void 0,token:ie?.symbol??ue??"ETH",destinationAddress:oe,destinationChainId:ae.id,destinationChainType:"ethereum",destinationValue:he?n.formatUnits(he,ie?.decimals??18):void 0,destinationToken:ie?.symbol??ue??ae.nativeCurrency.name}}));z(!1)})().catch(console.error)}),[ve,Ie]),t.useEffect((()=>{(async()=>{if(!k||!ve||!ge)return;let e=i.addToDefaultChains(F.chains).filter((e=>e.id!==ae.id&&!!e.testnet==!!ae.testnet));le&&e.unshift(ae);let t=await E.getBalanceForChains({chains:e,address:ge.address,appId:I,rpcConfig:r,includeUsdc:N.funding?.isUSDC}),n=le?t.filter((e=>e.balance>0n)):t.filter((e=>e.balance>he)),a=le&&t.every((e=>0n===e.balance));if(n.length<1)return void L(a?new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ge.address)} doesn't have enough funds to cover gas fees. Top up your wallet and try again.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE):new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ge.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE));n.sort(((e,r)=>Number(le?(r.erc20Balance??0n)-(e.erc20Balance??0n):r.balance-e.balance)));let s=n.flatMap((e=>{let r=[{...e,isErc20Quote:!1,isTestnet:!!ae.testnet,input:y.toGetQuoteInput({appId:I,amount:he.toString(),user:ge.address,recipient:oe,destinationChainId:ae.id,destinationCurrency:ue,originChainId:e.chain.id})}];return le&&ue&&(e.erc20Balance??0n)>=he&&r.push({...e,isErc20Quote:!0,isTestnet:!!ae.testnet,input:y.toGetQuoteInput({appId:I,amount:he.toString(),user:ge.address,recipient:oe,destinationChainId:ae.id,destinationCurrency:ue,originChainId:e.chain.id,originCurrency:e.erc20Address})}),r})),o=(await Promise.allSettled(s.map((async e=>({...e,quote:await y.getQuote(e)}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(o.length<1)return void L(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ge.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE));let u=o.map((e=>({bridgeTx:y.toEvmTransactionRequestInfoFromQuote(e.quote),balance:e.balance,chain:e.chain,erc20Balance:e.erc20Balance,isErc20Quote:e.isErc20Quote}))).filter((e=>!!e.bridgeTx));if(u.length>1)return void Q(u);let d=u[0];d?(J(!0),Se({data:d.bridgeTx.data,to:d.bridgeTx.to,value:d.bridgeTx.value,chain:d.chain})):L(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ge.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[k]),y.useBridgingStatusPolling({transactionHash:ee,isTestnet:!!ae.testnet,bridgingStatus:te,setBridgingStatus:ne,onSuccess({transactionHash:e}){J(!1),Z(!0),A(h.addFundingResultToModalData(N,"completed",e,ge?.walletClientType,le,ie,ae)),w({eventName:C.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:ge?.address,chainId:Ie.chain.id,chainType:"ethereum",value:Ie.value?n.formatUnits(BigInt(Ie.value),ie?.decimals??18):void 0,token:ie?.symbol??ue??"ETH",destinationAddress:oe,destinationChainId:ae.id,destinationChainType:"ethereum",destinationValue:he?n.formatUnits(he,ie?.decimals??18):void 0,destinationToken:ie?.symbol??ue??ae.nativeCurrency.name}})},onFailure({error:e}){J(!1),L(e)}}),t.useEffect((()=>{W&&(A({funding:N?.funding,solanaFundingData:N?.solanaFundingData,sendTransaction:N?.sendTransaction,errorModalData:{error:W,previousScreen:"TransferFromWalletScreen"}}),b("ErrorScreen",!1))}),[W]);let je=!le&&qe?p.getDollarsFromStringFloat(de??"0",qe):void 0,we=le?_:p.sumWeiQuantities([_,he]),be=we&&qe?p.getDollarsFromWei(we,qe):void 0,Ae=we?p.getNativeCurrencyFromWei(we,N?.funding?.erc20Address?N?.funding?.erc20ContractInfo?.symbol||"ETH":N?.funding?.chain.nativeCurrency.symbol||"ETH"):void 0,Ne=_&&qe?p.getDollarsFromWei(_,qe):void 0,Fe=_?p.getNativeCurrencyFromWei(_,ae?.nativeCurrency?.symbol||"ETH"):void 0;if(t.useEffect((()=>{if(!K)return;let e=setTimeout(j,c.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[K]),K/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(a.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(a.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(S.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(o.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${de} ${le?ie.symbol:ae.nativeCurrency.symbol} to your ${F.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(a.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]});let xe=le?`${v.formatErc20TokenAmount({amount:Ee,decimals:ie.decimals})} ${ie.symbol}`:p.getNativeCurrencyFromWei(Ce,ae.nativeCurrency.symbol,3,!0),Be=H[O];return H.length>1&&Be?/*#__PURE__*/e.jsx(E.BridgeNetworkSelectionView,{displayName:me,configuredFundingChain:ae,erc20ContractInfo:ie,formattedBalance:xe,fundingAmount:de,fundingCurrency:le?ie.symbol:ae.nativeCurrency.symbol,fundingAmountInUsd:je,options:H,selectedOption:Be,isPreparing:G,isSubmitting:X,addressToFund:oe,fundingWalletAddress:ge?.address||"",errorMessage:M,onSubmit:()=>{N.funding?.amount!==de?async function(){if(ge&&Be)try{let e=await y.getQuote({isTestnet:!!ae.testnet,input:y.toGetQuoteInput({appId:I,amount:he.toString(),user:ge.address,recipient:oe,destinationChainId:ae.id,destinationCurrency:ue,originChainId:Be.chain.id})}),r=y.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");J(!0),Se({data:r.data,to:r.to,value:r.value,chain:Be.chain})}catch(e){console.error(e),L(new l.PrivyClientError("Unable to fetch quotes for bridging",e,l.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):Se({to:Be.bridgeTx.to,data:Be.bridgeTx.data,value:Be.bridgeTx.value,chain:Be.chain})},onSelect:e=>{e!==O&&(D(null),$(e))},onAmountChange:ce}):B&&_&&ge&&N?.funding?/*#__PURE__*/e.jsx(q.TransferOrBridgeLoadingScreen,{walletClientType:ge?.walletClientType||"unknown",displayName:me,addressToFund:oe,isBridging:Y,isErc20Flow:le,totalPriceInUsd:be,totalPriceInNativeCurrency:Ae,gasPriceInUsd:Ne,gasPriceInNativeCurrency:Fe,chainId:ae.id,chainName:ae.name}):
2
- /*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(d.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})}};exports.AwaitingExternalEthereumTransferScreen=j,exports.default=j;
@@ -1,103 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/20/solid/CheckIcon"),o=require("@heroicons/react/24/outline/EnvelopeIcon"),i=require("@heroicons/react/24/outline/PhoneIcon"),t=require("react"),n=require("react-device-detect"),a=require("styled-components"),s=require("./Layouts-D3TOcPhm.js"),c=require("./Link-BdtTp2J4.js"),l=require("./context-P14IM76D.js"),d=require("./internal-context-NWsAL807.js"),u=require("./get-is-unified-wallet-DL_nMXp5.js"),p=require("./shouldProceedtoEmbeddedWalletCreationFlow-Cp0BucAr.js"),v=require("./ScreenLayout-BENEZm1m.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("viem"),require("./private-privy-provider-hH9v0z7o.js"),require("mipd"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("@scure/base"),require("uuid"),require("jose"),require("eventemitter3"),require("zustand"),require("@coinbase/wallet-sdk"),require("@walletconnect/ethereum-provider"),require("js-cookie"),require("./events-context-Di6--rDg.js"),require("@headlessui/react"),require("@privy-io/ethereum"),require("@privy-io/urls"),require("./ModalHeader-7knkCFjH.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./Screen-uapp8UP4.js"),require("./index-ByFhjjzH.js");var m=/*#__PURE__*/f(r),y=/*#__PURE__*/f(o),h=/*#__PURE__*/f(i);const E=({contactMethod:r,authFlow:o,appName:i="Privy",whatsAppEnabled:a=!1,onBack:l,onCodeSubmit:d,onResend:u,errorMessage:p,success:f=!1,resendCountdown:E=0,onInvalidInput:C,onClearError:S})=>{let[A,b]=t.useState(g);t.useEffect((()=>{p||b(g)}),[p]);let q="email"===o?/*#__PURE__*/e.jsxs("span",{children:["Please check ",/*#__PURE__*/e.jsx(I,{children:r})," for an email from privy.io and enter your code below."]}):/*#__PURE__*/e.jsxs("span",{children:["Please check ",/*#__PURE__*/e.jsx(I,{children:r})," for a",a?" WhatsApp":""," message from ",i," and enter your code below."]}),k=/*#__PURE__*/e.jsxs(T,{children:[/*#__PURE__*/e.jsxs("span",{children:["Didn't get ","email"===o?"an email":"a message","?"]}),E?/*#__PURE__*/e.jsxs(N,{children:[/*#__PURE__*/e.jsx(m.default,{color:"var(--privy-color-foreground)",strokeWidth:1.33,height:"12px",width:"12px"}),/*#__PURE__*/e.jsx("span",{children:"Code sent"})]}):/*#__PURE__*/e.jsx(c.Link,{as:"button",size:"sm",onClick:u,children:"Resend code"})]}),P=async e=>{e.preventDefault();let r=e.currentTarget.value.replace(" ","");if(""===r)return;if(isNaN(Number(r)))return void C?.("Code should be numeric");S?.();let o=Number(e.currentTarget.name?.charAt(5)),i=[...r||[""]].slice(0,x-o),t=[...A.slice(0,o),...i,...A.slice(o+i.length)];b(t);let n=Math.min(Math.max(o+i.length,0),x-1);if(!isNaN(Number(e.currentTarget.value))){let e=document.querySelector(`input[name=code-${n}]`);e?.focus()}if(t.every((e=>e&&!isNaN(+e)))){let e=document.querySelector(`input[name=code-${n}]`);e?.blur(),await(d?.(t.join("")))}};/*#__PURE__*/return e.jsx(v.ScreenLayout,{title:"Enter confirmation code",subtitle:q,icon:"email"===o?y.default:h.default,onBack:l,showBack:!0,helpText:k,children:/*#__PURE__*/e.jsx(w,{children:/*#__PURE__*/e.jsx(s.HorizontallyCenteredItem,{children:/*#__PURE__*/e.jsxs(j,{children:[/*#__PURE__*/e.jsx("div",{children:A.map(((r,o)=>/*#__PURE__*/e.jsx("input",{name:`code-${o}`,type:"text",value:A[o],onChange:P,onKeyUp:e=>{"Backspace"===e.key&&(e=>{if(S?.(),b([...A.slice(0,e),"",...A.slice(e+1)]),e>0){let r=document.querySelector(`input[name=code-${e-1}]`);r?.focus()}})(o)},inputMode:"numeric",autoFocus:0===o,pattern:"[0-9]",className:`${f?"success":""} ${p?"fail":""}`,autoComplete:n.isMobile?"one-time-code":"off"},o)))}),/*#__PURE__*/e.jsx(_,{$fail:!!p,$success:f,children:/*#__PURE__*/e.jsx("span",{children:"Invalid or expired verification code"===p?"Incorrect code":p||(f?"Success!":"")})})]})})})})};let x=6,g=Array(6).fill("");var C,S,A=((C=A||{})[C.RESET_AFTER_DELAY=0]="RESET_AFTER_DELAY",C[C.CLEAR_ON_NEXT_VALID_INPUT=1]="CLEAR_ON_NEXT_VALID_INPUT",C),b=((S=b||{})[S.EMAIL=0]="EMAIL",S[S.SMS=1]="SMS",S);const q={component:()=>{let{navigate:r,lastScreen:o,navigateBack:i,setModalData:n,onUserCloseViaDialogOrKeybindRef:a}=u.usePrivyModal(),s=l.useAppConfig(),{closePrivyModal:c,resendEmailCode:v,resendSmsCode:f,getAuthMeta:m,loginWithCode:y,updateWallets:h,createAnalyticsEvent:x}=d.usePrivyInternal(),{authenticated:g,logout:C,user:S}=u.usePrivyContext(),{whatsAppEnabled:A}=l.useAppConfig(),[b,q]=t.useState(!1),[w,j]=t.useState(null),[_,T]=t.useState(null),[N,I]=t.useState(0);a.current=()=>null;let k=m()?.email?0:1,P=0===k?m()?.email||"":m()?.phoneNumber||"",L=l.DEFAULT_SUCCESS_SCREEN_DURATION_MS-500;t.useEffect((()=>{if(N){let e=setTimeout((()=>{I(N-1)}),1e3);return()=>clearTimeout(e)}}),[N]),t.useEffect((()=>{if(g&&b&&S){if(s?.legal.requireUsersAcceptTerms&&!S.hasAcceptedTerms){let e=setTimeout((()=>{r("AffirmativeConsentScreen")}),L);return()=>clearTimeout(e)}if(p.shouldProceedtoEmbeddedWalletCreationFlow(S,s.embeddedWallets)){let e=setTimeout((()=>{n({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),x({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AwaitingPasswordlessCodeScreen"}}),C()},callAuthOnSuccessOnClose:!0}}),r("EmbeddedWalletOnAccountCreateScreen")}),L);return()=>clearTimeout(e)}{h();let e=setTimeout((()=>c({shouldCallAuthOnSuccess:!0,isSuccess:!0})),l.DEFAULT_SUCCESS_SCREEN_DURATION_MS);return()=>clearTimeout(e)}}}),[g,b,S]),t.useEffect((()=>{if(w&&0===_){let e=setTimeout((()=>{j(null),T(null);let e=document.querySelector("input[name=code-0]");e?.focus()}),1400);return()=>clearTimeout(e)}}),[w,_]);/*#__PURE__*/return e.jsx(E,{contactMethod:P,authFlow:0===k?"email":"sms",appName:s?.name,whatsAppEnabled:A,onBack:()=>i(),onCodeSubmit:async e=>{try{await y(e),q(!0)}catch(e){if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.INVALID_CREDENTIALS)j("Invalid or expired verification code"),T(0);else if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.CANNOT_LINK_MORE_OF_TYPE)j(e.message);else{if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.USER_LIMIT_REACHED)return console.error(new d.PrivyUserLimitReachedError(e).toString()),void r("UserLimitReachedScreen");if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.USER_DOES_NOT_EXIST)return void r("AccountNotFoundScreen");if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.LINKED_TO_ANOTHER_USER)return n({errorModalData:{error:e,previousScreen:o??"AwaitingPasswordlessCodeScreen"}}),void r("ErrorScreen",!1);if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.DISALLOWED_PLUS_EMAIL)return n({inlineError:{error:e}}),void r("ConnectOrCreateScreen",!1);if(e instanceof d.PrivyApiError&&e.privyErrorCode===d.PrivyErrorCode.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return n({accountTransfer:{nonce:e.data?.data?.nonce,account:P,displayName:e.data?.data?.account?.displayName,linkMethod:0===k?"email":"sms",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void r("LinkConflictScreen");j("Issue verifying code"),T(0)}}},onResend:async()=>{I(30),0===k?await v():await f()},errorMessage:w||void 0,success:b,resendCountdown:N,onInvalidInput:e=>{j(e),T(1)},onClearError:()=>{1===_&&(j(null),T(null))}})}};let w=a.styled.div`
2
- display: flex;
3
- flex-direction: column;
4
- align-items: center;
5
- justify-content: center;
6
- margin: auto;
7
- gap: 16px;
8
- flex-grow: 1;
9
- width: 100%;
10
- `,j=a.styled.div`
11
- display: flex;
12
- flex-direction: column;
13
- width: 100%;
14
- gap: 12px;
15
-
16
- > div:first-child {
17
- display: flex;
18
- justify-content: center;
19
- gap: 0.5rem;
20
- width: 100%;
21
- border-radius: var(--privy-border-radius-sm);
22
-
23
- > input {
24
- border: 1px solid var(--privy-color-foreground-4);
25
- background: var(--privy-color-background);
26
- border-radius: var(--privy-border-radius-sm);
27
- padding: 8px 10px;
28
- height: 48px;
29
- width: 40px;
30
- text-align: center;
31
- font-size: 18px;
32
- font-weight: 600;
33
- color: var(--privy-color-foreground);
34
- transition: all 0.2s ease;
35
- }
36
-
37
- > input:focus {
38
- border: 1px solid var(--privy-color-foreground);
39
- box-shadow: 0 0 0 1px var(--privy-color-foreground);
40
- }
41
-
42
- > input:invalid {
43
- border: 1px solid var(--privy-color-error);
44
- }
45
-
46
- > input.success {
47
- border: 1px solid var(--privy-color-border-success);
48
- background: var(--privy-color-success-bg);
49
- }
50
-
51
- > input.fail {
52
- border: 1px solid var(--privy-color-border-error);
53
- background: var(--privy-color-error-bg);
54
- animation: shake 180ms;
55
- animation-iteration-count: 2;
56
- }
57
- }
58
-
59
- @keyframes shake {
60
- 0% {
61
- transform: translate(1px, 0px);
62
- }
63
- 33% {
64
- transform: translate(-1px, 0px);
65
- }
66
- 67% {
67
- transform: translate(-1px, 0px);
68
- }
69
- 100% {
70
- transform: translate(1px, 0px);
71
- }
72
- }
73
- `,_=a.styled.div`
74
- line-height: 20px;
75
- min-height: 20px;
76
- font-size: 14px;
77
- font-weight: 400;
78
- color: ${e=>e.$success?"var(--privy-color-success-dark)":e.$fail?"var(--privy-color-error-dark)":"transparent"};
79
- display: flex;
80
- justify-content: center;
81
- width: 100%;
82
- text-align: center;
83
- `,T=a.styled.div`
84
- display: flex;
85
- gap: 8px;
86
- align-items: center;
87
- justify-content: center;
88
- width: 100%;
89
- color: var(--privy-color-foreground-2);
90
- `,N=a.styled.div`
91
- display: flex;
92
- align-items: center;
93
- justify-content: center;
94
- border-radius: var(--privy-border-radius-sm);
95
- padding: 2px 8px;
96
- gap: 4px;
97
- background: var(--privy-color-background-2);
98
- color: var(--privy-color-foreground-2);
99
- `,I=a.styled.span`
100
- font-weight: 500;
101
- word-break: break-all;
102
- color: var(--privy-color-foreground);
103
- `;exports.AwaitingPasswordlessCodeScreen=q,exports.AwaitingPasswordlessCodeScreenView=E,exports.default=q;