@privy-io/react-auth 3.16.0 → 3.17.0-snapshot-20260316162155

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 (349) hide show
  1. package/dist/cjs/AccountNotFoundScreen-CwdzzEXy.js +1 -0
  2. package/dist/cjs/{Address-DTfphH3Q.js → Address-LoABcDN2.js} +1 -1
  3. package/dist/cjs/AffirmativeConsentScreen-DmmZQ1sk.js +6 -0
  4. package/dist/cjs/AllowlistRejectionScreen-zz2ccy4w.js +1 -0
  5. package/dist/cjs/AuthenticateWithWalletScreen-Czvq09k3.js +1 -0
  6. package/dist/cjs/AwaitingEvmToSolBridgingScreen-Du2AUYJm.js +2 -0
  7. package/dist/cjs/AwaitingExternalEthereumTransferScreen-BB6Hvskb.js +2 -0
  8. package/dist/cjs/AwaitingPasswordlessCodeScreen-Cx2okNvo.js +103 -0
  9. package/dist/cjs/AwaitingSolToEvmBridgingScreen-SZWzchnl.js +2 -0
  10. package/dist/cjs/{BridgeNetworkSelectionView-xdYr4mxx.js → BridgeNetworkSelectionView-MQxeBaNe.js} +1 -1
  11. package/dist/cjs/CaptchaScreen-DW7EenvZ.js +1 -0
  12. package/dist/cjs/CoinbaseOnrampStatusScreen-D5RD7It_.js +16 -0
  13. package/dist/cjs/ConnectEmailForm-vo9fqKEz.js +3 -0
  14. package/dist/cjs/ConnectLedgerScreen-D8iSTRW8.js +9 -0
  15. package/dist/cjs/ConnectOnlyLandingScreen-cr2IzL9D.js +1 -0
  16. package/dist/cjs/ConnectOnlyStatusScreen-D0wfwzBX.js +1 -0
  17. package/dist/cjs/ConnectOrCreateScreen-BYeXIW8Z.js +1 -0
  18. package/dist/cjs/{ConnectPhoneForm-BYX8kgCj.js → ConnectPhoneForm-Fi9YeZhy.js} +1 -1
  19. package/dist/cjs/{ConnectWalletView-QyJORAZG.js → ConnectWalletView-5ye8dFgc.js} +1 -1
  20. package/dist/cjs/ConnectionStatusScreen-CSRdMfVR.js +7 -0
  21. package/dist/cjs/CrossAppAuthScreen-CJFlLgpK.js +1 -0
  22. package/dist/cjs/{CustomLandingScreenView-Cx9QR2CX.js → CustomLandingScreenView-BtwRswsv.js} +6 -6
  23. package/dist/cjs/DelegatedActionsConsentScreen-DF8Sc_HK.js +1 -0
  24. package/dist/cjs/DelegatedActionsRevokeScreen-CL9jefJ1.js +1 -0
  25. package/dist/cjs/EmbeddedWalletConnectingScreen-zaop20tB.js +1 -0
  26. package/dist/cjs/EmbeddedWalletCreatedScreen-Dhe-a0kv.js +1 -0
  27. package/dist/cjs/{EmbeddedWalletKeyExportScreen-wfa1ho1-.js → EmbeddedWalletKeyExportScreen-BBN8qZii.js} +4 -4
  28. package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-bCdFxWHi.js +1 -0
  29. package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-CEJb_sQt.js +1 -0
  30. package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-aCheIy49.js +1 -0
  31. package/dist/cjs/{EnrollTotp-BzmjXzYC.js → EnrollTotp-CflAJviu.js} +1 -1
  32. package/dist/cjs/ErrorScreen-Bi5k_Sjg.js +4 -0
  33. package/dist/cjs/{FarcasterConnectStatusScreen-s3pS-ZH-.js → FarcasterConnectStatusScreen-Ci5w4QiX.js} +1 -1
  34. package/dist/cjs/FarcasterSignerStatusScreen-D_MQvu4m.js +29 -0
  35. package/dist/cjs/FundSolWalletWithExternalSolanaWallet-CSgOmmfz.js +2 -0
  36. package/dist/cjs/FundWalletMethodHeader-DKhpGbB_.js +1 -0
  37. package/dist/cjs/{FundWithBankDepositScreen-DUQAuyf5.js → FundWithBankDepositScreen-Dg07ySds.js} +3 -3
  38. package/dist/cjs/FundingEditAmountScreen-2cLAUxXk.js +1 -0
  39. package/dist/cjs/FundingMethodSelectionScreen-B7A8b8Zr.js +1 -0
  40. package/dist/cjs/InAppBrowserLoginNotPossible-9bla-3q6.js +1 -0
  41. package/dist/cjs/InstallWalletScreen-CwDyMFAp.js +1 -0
  42. package/dist/cjs/LandingScreen-Dubaxn5q.js +1 -0
  43. package/dist/cjs/{LinkConflictScreen-DnHf7IMX.js → LinkConflictScreen-Drbf_NwQ.js} +1 -1
  44. package/dist/cjs/LinkEmailScreen-CpSuii3Q.js +1 -0
  45. package/dist/cjs/{LinkPasskeyScreen-CTN6f7yX.js → LinkPasskeyScreen-CnQD9Uk7.js} +12 -12
  46. package/dist/cjs/LinkPhoneScreen-ntD0MGue.js +1 -0
  47. package/dist/cjs/LoginFailedScreen-Cr84lRK6.js +1 -0
  48. package/dist/cjs/ManualTransferScreen-BVQ6TTpl.js +1 -0
  49. package/dist/cjs/MfaAuthEnrollmentFlowScreen-C_VvcFPV.js +1 -0
  50. package/dist/cjs/MfaAuthVerifyFlowScreen-DS_5Kbyx.js +1 -0
  51. package/dist/cjs/MfaEnrollmentFlowScreen-DUXHByYX.js +1 -0
  52. package/dist/cjs/MfaVerifyFlowScreen-DcjydnRO.js +1 -0
  53. package/dist/cjs/{ModalHeader-CakS8Dcu.js → ModalHeader-CSc17xPp.js} +1 -1
  54. package/dist/cjs/MoonpayStatusScreen-CLC5rfIy.js +16 -0
  55. package/dist/cjs/OAuthStatusScreen-Cc7Q4CDA.js +1 -0
  56. package/dist/cjs/PasskeySelectSignupOrLogin-C6SuJGP7.js +1 -0
  57. package/dist/cjs/PasskeyStatusScreen-CFR4vHsn.js +3 -0
  58. package/dist/cjs/PasswordRecoveryScreen-BpR2oaTz.js +20 -0
  59. package/dist/cjs/{QrCode-C-Mk5-26.js → QrCode-DgSaqC0q.js} +1 -1
  60. package/dist/cjs/RecoveryOAuthStatusScreen-BkbE7aGR.js +1 -0
  61. package/dist/cjs/RecoveryPasswordCreateScreen-rCKKxWO_.js +1 -0
  62. package/dist/cjs/{RecoverySelectionScreen-BAJ1nLeO.js → RecoverySelectionScreen-DZ61qdLo.js} +2 -2
  63. package/dist/cjs/{Screen-Dp9-H_S8.js → Screen-BcsJqsVd.js} +1 -1
  64. package/dist/cjs/{ScreenLayout-DANQ0V5E.js → ScreenLayout-DyEyA7A5.js} +1 -1
  65. package/dist/cjs/SetAutomaticRecoveryScreen-BleU8FUI.js +14 -0
  66. package/dist/cjs/{SetWalletPasswordForm-B7bBDQ8N.js → SetWalletPasswordForm-C8yNbL_5.js} +4 -4
  67. package/dist/cjs/{SignRequestScreen-BUvgSx9X.js → SignRequestScreen-BPqwS4r3.js} +2 -2
  68. package/dist/cjs/{StandardSignAndSendTransactionScreen-CzfhyIDP.js → StandardSignAndSendTransactionScreen-3pYKF2t4.js} +1 -1
  69. package/dist/cjs/TelegramAuthScreen-BIOvHaZW.js +1 -0
  70. package/dist/cjs/{TransactionDetails-BlPOqfEn.js → TransactionDetails-QfVYPGbU.js} +1 -1
  71. package/dist/cjs/{TransactionErrorView-BpXI1X_G.js → TransactionErrorView-BLwOc9N2.js} +1 -1
  72. package/dist/cjs/{TransferFromWalletScreen-Ds1sknGn.js → TransferFromWalletScreen-DgG_TT1f.js} +2 -2
  73. package/dist/cjs/{TransferOrBridgeLoadingScreen-CAYUlR4u.js → TransferOrBridgeLoadingScreen-CN_VlxUC.js} +1 -1
  74. package/dist/cjs/UpdateEmailScreen-CkT3mFji.js +1 -0
  75. package/dist/cjs/UpdatePhoneScreen-MtkPdjsi.js +1 -0
  76. package/dist/cjs/UserLimitReachedScreen-kN4nnRM_.js +1 -0
  77. package/dist/cjs/{WalletInfoCard-CRZt0t3t.js → WalletInfoCard-n_BoIOic.js} +1 -1
  78. package/dist/cjs/WalletInterstitialScreen-BR__AmNx.js +1 -0
  79. package/dist/cjs/{WalletLink-Cx_Zda0m.js → WalletLink-CuO09G-O.js} +1 -1
  80. package/dist/cjs/{WalletOverflowButton-cnlzyqcK.js → WalletOverflowButton-CgWvmdmC.js} +1 -1
  81. package/dist/cjs/abstract-smart-wallets.js +1 -1
  82. package/dist/cjs/{context-BAmjgwZ7.js → context-CNQxiH4A.js} +1 -1
  83. package/dist/cjs/{ethers-D8g2mvSK.js → ethers-DWH-h922.js} +1 -1
  84. package/dist/cjs/extended-chains.js +1 -1
  85. package/dist/cjs/{getErc20Balance-C6ZUC_1B.js → getErc20Balance-DBQPPbnK.js} +1 -1
  86. package/dist/cjs/{getErc20TokenInfo-DprFN1Dj.js → getErc20TokenInfo-Dl9FAxqA.js} +1 -1
  87. package/dist/cjs/index-8yj4NkHF.js +174 -0
  88. package/dist/cjs/{index-DIKBRogK.js → index-Bhi2b4Wz.js} +2 -2
  89. package/dist/cjs/index-DOqRGT6m.js +1 -0
  90. package/dist/cjs/index.js +1 -1
  91. package/dist/cjs/internal.js +1 -1
  92. package/dist/cjs/privy-context-BUPa46TW.js +1 -0
  93. package/dist/cjs/{shared-C-w7sNT2.js → shared-C6iMgJGT.js} +1 -1
  94. package/dist/cjs/{shouldProceedtoEmbeddedWalletCreationFlow-DAiUXgPZ.js → shouldProceedtoEmbeddedWalletCreationFlow-Qter_tq0.js} +1 -1
  95. package/dist/cjs/smart-wallets-Dd1dBbU0.js +1 -0
  96. package/dist/cjs/smart-wallets.js +1 -1
  97. package/dist/cjs/solana.js +1 -1
  98. package/dist/cjs/{styles-s2f3dL_6.js → styles-DNyswYeR.js} +1 -1
  99. package/dist/cjs/{to-ui-error-CqnwRcKJ.js → to-ui-error-BHpURyav.js} +1 -1
  100. package/dist/cjs/ui.js +1 -1
  101. package/dist/cjs/use-export-wallet-3J5BDtFL.js +1 -0
  102. package/dist/cjs/use-export-wallet-Dy66dCnh.js +1 -0
  103. package/dist/cjs/{useActiveWallet-CYUR_x0A.js → useActiveWallet-B2ZGQOqD.js} +1 -1
  104. package/dist/cjs/{useGetTokenPrice-X3dW0I3y.js → useGetTokenPrice-DSz2_ndW.js} +1 -1
  105. package/dist/cjs/{useI18n-BsableMs.js → useI18n-Covg9gU-.js} +1 -1
  106. package/dist/cjs/usePrivy-BgdIKexA.js +1 -0
  107. package/dist/cjs/{useSolanaRpcClient-BhX1Bzre.js → useSolanaRpcClient-DFziJZx0.js} +1 -1
  108. package/dist/cjs/{useWalletBalance-CcicA-jd.js → useWalletBalance-RkLvAARN.js} +1 -1
  109. package/dist/cjs/useWallets-CePTM2iC.js +1 -0
  110. package/dist/cjs/useWallets-LhNz5bUC.js +1 -0
  111. package/dist/dts/index.d.mts +38 -1
  112. package/dist/dts/index.d.ts +38 -1
  113. package/dist/esm/AccountNotFoundScreen-DVFOItI9.mjs +1 -0
  114. package/dist/esm/{Address-Cbulz6Wu.mjs → Address-CPCEzwZf.mjs} +1 -1
  115. package/dist/esm/AffirmativeConsentScreen-DOdcSwXi.mjs +6 -0
  116. package/dist/esm/AllowlistRejectionScreen-CW-4iFe3.mjs +1 -0
  117. package/dist/esm/AuthenticateWithWalletScreen-B82BbMWX.mjs +1 -0
  118. package/dist/esm/AwaitingEvmToSolBridgingScreen-DrRQ8jx6.mjs +2 -0
  119. package/dist/esm/AwaitingExternalEthereumTransferScreen-DMa82XoT.mjs +2 -0
  120. package/dist/esm/AwaitingPasswordlessCodeScreen-B6XB-azJ.mjs +103 -0
  121. package/dist/esm/AwaitingSolToEvmBridgingScreen-AG9YC4Po.mjs +2 -0
  122. package/dist/esm/{BridgeNetworkSelectionView-nrYQOGZA.mjs → BridgeNetworkSelectionView-BpGLl4Km.mjs} +1 -1
  123. package/dist/esm/CaptchaScreen-DpeO3tbc.mjs +1 -0
  124. package/dist/esm/CoinbaseOnrampStatusScreen-BLz4G4Ps.mjs +16 -0
  125. package/dist/esm/ConnectEmailForm-BHbXRWOx.mjs +3 -0
  126. package/dist/esm/ConnectLedgerScreen-Cm9Maid3.mjs +9 -0
  127. package/dist/esm/ConnectOnlyLandingScreen-DgW6x1--.mjs +1 -0
  128. package/dist/esm/ConnectOnlyStatusScreen-DJjV2n2X.mjs +1 -0
  129. package/dist/esm/ConnectOrCreateScreen-S9fCBz6I.mjs +1 -0
  130. package/dist/esm/{ConnectPhoneForm-D8SHd_ge.mjs → ConnectPhoneForm-tJp8qUlN.mjs} +1 -1
  131. package/dist/esm/{ConnectWalletView-By6eXfKl.mjs → ConnectWalletView-DxWxjOjC.mjs} +1 -1
  132. package/dist/esm/ConnectionStatusScreen-ApbD7KFS.mjs +7 -0
  133. package/dist/esm/CrossAppAuthScreen-Bhfdy_gi.mjs +1 -0
  134. package/dist/esm/{CustomLandingScreenView-Co0nHKPw.mjs → CustomLandingScreenView-B3SypvcL.mjs} +1 -1
  135. package/dist/esm/DelegatedActionsConsentScreen-DjbqeAEg.mjs +1 -0
  136. package/dist/esm/DelegatedActionsRevokeScreen-Brl_FYla.mjs +1 -0
  137. package/dist/esm/EmbeddedWalletConnectingScreen-B56updgF.mjs +1 -0
  138. package/dist/esm/EmbeddedWalletCreatedScreen-Dq2kZg2T.mjs +1 -0
  139. package/dist/esm/{EmbeddedWalletKeyExportScreen-CVflSsvz.mjs → EmbeddedWalletKeyExportScreen-Cz9BshyG.mjs} +3 -3
  140. package/dist/esm/EmbeddedWalletOnAccountCreateScreen-CuBtEhf9.mjs +1 -0
  141. package/dist/esm/EmbeddedWalletPasswordUpdateScreen-CLLfj2dW.mjs +1 -0
  142. package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-Cs3Iaprt.mjs +1 -0
  143. package/dist/esm/{EnrollTotp-nZPSS3Ux.mjs → EnrollTotp-BT_-h_0Y.mjs} +1 -1
  144. package/dist/esm/ErrorScreen-CZY1qK53.mjs +4 -0
  145. package/dist/esm/{FarcasterConnectStatusScreen-BdwUuSkv.mjs → FarcasterConnectStatusScreen-C6zmKfBj.mjs} +2 -2
  146. package/dist/esm/FarcasterSignerStatusScreen-Dvz9h1zE.mjs +28 -0
  147. package/dist/esm/FundSolWalletWithExternalSolanaWallet-DkS_xMkO.mjs +1 -0
  148. package/dist/esm/FundWalletMethodHeader-BZ3UxTwI.mjs +1 -0
  149. package/dist/esm/{FundWithBankDepositScreen-HyqTUpLq.mjs → FundWithBankDepositScreen-DAH8GGVT.mjs} +1 -1
  150. package/dist/esm/FundingEditAmountScreen-CZoruo9l.mjs +1 -0
  151. package/dist/esm/FundingMethodSelectionScreen-BGZZNugd.mjs +1 -0
  152. package/dist/esm/InAppBrowserLoginNotPossible-DfyMyaFh.mjs +1 -0
  153. package/dist/esm/InstallWalletScreen-_DQi1B5T.mjs +1 -0
  154. package/dist/esm/LandingScreen-CjU3MGir.mjs +1 -0
  155. package/dist/esm/{LinkConflictScreen-DNGVg8dW.mjs → LinkConflictScreen-o65O1oJ_.mjs} +1 -1
  156. package/dist/esm/LinkEmailScreen-BsdMCjtQ.mjs +1 -0
  157. package/dist/esm/{LinkPasskeyScreen-CTYGeo1r.mjs → LinkPasskeyScreen-DHCCysKA.mjs} +2 -2
  158. package/dist/esm/LinkPhoneScreen-Bmd4jv7M.mjs +1 -0
  159. package/dist/esm/LoginFailedScreen-xa-3Q1Dl.mjs +1 -0
  160. package/dist/esm/ManualTransferScreen-B8JFrKJ2.mjs +1 -0
  161. package/dist/esm/MfaAuthEnrollmentFlowScreen-ByT7H0E_.mjs +1 -0
  162. package/dist/esm/MfaAuthVerifyFlowScreen-Dfr4vUQN.mjs +1 -0
  163. package/dist/esm/MfaEnrollmentFlowScreen-DAi4CFJZ.mjs +1 -0
  164. package/dist/esm/MfaVerifyFlowScreen-Danwy2Qw.mjs +1 -0
  165. package/dist/esm/{ModalHeader-DfHxv9fE.mjs → ModalHeader-B3hf8Gf5.mjs} +1 -1
  166. package/dist/esm/MoonpayStatusScreen-Ci5Oi6Ec.mjs +16 -0
  167. package/dist/esm/OAuthStatusScreen-rN88I9Yr.mjs +1 -0
  168. package/dist/esm/PasskeySelectSignupOrLogin-ByI-NM15.mjs +1 -0
  169. package/dist/esm/PasskeyStatusScreen-s25IPE-D.mjs +3 -0
  170. package/dist/esm/PasswordRecoveryScreen-Bvc12Phr.mjs +20 -0
  171. package/dist/esm/{QrCode-D4XZQrgi.mjs → QrCode-DXutpDmP.mjs} +1 -1
  172. package/dist/esm/RecoveryOAuthStatusScreen-JkYUmAdb.mjs +1 -0
  173. package/dist/esm/RecoveryPasswordCreateScreen-CSr1zpHY.mjs +1 -0
  174. package/dist/esm/{RecoverySelectionScreen-DVBTi436.mjs → RecoverySelectionScreen-BQtnEuQN.mjs} +2 -2
  175. package/dist/esm/{Screen-CDEd4p2a.mjs → Screen-C-LEnZLL.mjs} +1 -1
  176. package/dist/esm/{ScreenLayout-BdRrZJd_.mjs → ScreenLayout-C5tqY0au.mjs} +1 -1
  177. package/dist/esm/{SetAutomaticRecoveryScreen-DBcSNU6R.mjs → SetAutomaticRecoveryScreen-CxBT3GM6.mjs} +2 -2
  178. package/dist/esm/{SetWalletPasswordForm-DdWjdu2s.mjs → SetWalletPasswordForm-CmSpUP06.mjs} +4 -4
  179. package/dist/esm/{SignRequestScreen-CxAuntSd.mjs → SignRequestScreen-DDQHSSe2.mjs} +2 -2
  180. package/dist/esm/{StandardSignAndSendTransactionScreen-DIJRS8NR.mjs → StandardSignAndSendTransactionScreen-DfXITIWD.mjs} +1 -1
  181. package/dist/esm/TelegramAuthScreen-L0mUPKLc.mjs +1 -0
  182. package/dist/esm/{TransactionDetails-Ce_Cnzo2.mjs → TransactionDetails-n9RsmJQY.mjs} +1 -1
  183. package/dist/esm/{TransactionErrorView-JiZmO7NJ.mjs → TransactionErrorView-DwgBt1il.mjs} +1 -1
  184. package/dist/esm/{TransferFromWalletScreen-ad5b7GV7.mjs → TransferFromWalletScreen-DsqvsKwk.mjs} +2 -2
  185. package/dist/esm/{TransferOrBridgeLoadingScreen-Cwzefd9j.mjs → TransferOrBridgeLoadingScreen-CrM8LyTn.mjs} +1 -1
  186. package/dist/esm/UpdateEmailScreen-BbZC4Ce_.mjs +1 -0
  187. package/dist/esm/UpdatePhoneScreen-Chrnlpvk.mjs +1 -0
  188. package/dist/esm/UserLimitReachedScreen-DCDtmBML.mjs +1 -0
  189. package/dist/esm/{WalletInfoCard-D2dCT7_H.mjs → WalletInfoCard-9E_M4KpE.mjs} +1 -1
  190. package/dist/esm/WalletInterstitialScreen-Dwwg2p0u.mjs +1 -0
  191. package/dist/esm/{WalletLink-DNraFqEC.mjs → WalletLink-CGkyFW_c.mjs} +1 -1
  192. package/dist/esm/{WalletOverflowButton-Cn_nKCBf.mjs → WalletOverflowButton-BDgrWJ32.mjs} +1 -1
  193. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  194. package/dist/esm/context-CTvHGnoI.mjs +1 -0
  195. package/dist/esm/{ethers-5oa3ZKLD.mjs → ethers-D_pXdGwy.mjs} +1 -1
  196. package/dist/esm/extended-chains.mjs +1 -1
  197. package/dist/esm/{getErc20Balance-sCX8nL1s.mjs → getErc20Balance-BTMqTvue.mjs} +1 -1
  198. package/dist/esm/{getErc20TokenInfo-CwiO-mOs.mjs → getErc20TokenInfo-C3J46mR7.mjs} +1 -1
  199. package/dist/esm/index-DAEL2fAA.mjs +1 -0
  200. package/dist/esm/{index-B5B9f4U9.mjs → index-DPtolW6e.mjs} +2 -2
  201. package/dist/esm/index-ldG7uF5Z.mjs +174 -0
  202. package/dist/esm/index.mjs +1 -1
  203. package/dist/esm/internal.mjs +1 -1
  204. package/dist/esm/privy-context-DjQaHYWB.mjs +1 -0
  205. package/dist/esm/{shared-Bw0pXSOO.mjs → shared-Dj3rRmjE.mjs} +1 -1
  206. package/dist/esm/{shouldProceedtoEmbeddedWalletCreationFlow-BkTDxfME.mjs → shouldProceedtoEmbeddedWalletCreationFlow-B2ygR6ax.mjs} +1 -1
  207. package/dist/esm/smart-wallets-Y6_E73RM.mjs +1 -0
  208. package/dist/esm/smart-wallets.mjs +1 -1
  209. package/dist/esm/solana.mjs +1 -1
  210. package/dist/esm/{styles-D5Jf27-u.mjs → styles-DNw1LY6I.mjs} +1 -1
  211. package/dist/esm/{to-ui-error-DnDY_33E.mjs → to-ui-error-iAm6GRH_.mjs} +1 -1
  212. package/dist/esm/ui.mjs +1 -1
  213. package/dist/esm/use-export-wallet-DQk47ipd.mjs +1 -0
  214. package/dist/esm/use-export-wallet-DyWwXiCx.mjs +1 -0
  215. package/dist/esm/{useActiveWallet-CwS7ik68.mjs → useActiveWallet-jEsJB3LX.mjs} +1 -1
  216. package/dist/esm/{useGetTokenPrice-oI6b3gPZ.mjs → useGetTokenPrice-CAeZUPHp.mjs} +1 -1
  217. package/dist/esm/{useI18n-bIQlZhkW.mjs → useI18n-BWVpc1Y-.mjs} +1 -1
  218. package/dist/esm/usePrivy-MdJeWwyN.mjs +1 -0
  219. package/dist/esm/{useSolanaRpcClient-C2WlA-Ah.mjs → useSolanaRpcClient-BpNT8e8E.mjs} +1 -1
  220. package/dist/esm/{useWalletBalance-DopZXXwh.mjs → useWalletBalance-BTQ4EtcY.mjs} +1 -1
  221. package/dist/esm/useWallets-DoJmA9i9.mjs +1 -0
  222. package/dist/esm/useWallets-MCga77FD.mjs +1 -0
  223. package/package.json +1 -1
  224. package/dist/cjs/AccountNotFoundScreen-Bqh-CYrp.js +0 -1
  225. package/dist/cjs/AffirmativeConsentScreen-uogZ44HQ.js +0 -6
  226. package/dist/cjs/AllowlistRejectionScreen-3OKwgh23.js +0 -1
  227. package/dist/cjs/AuthenticateWithWalletScreen-DXy5TnZj.js +0 -1
  228. package/dist/cjs/AwaitingEvmToSolBridgingScreen-DR1RiU-S.js +0 -2
  229. package/dist/cjs/AwaitingExternalEthereumTransferScreen-DgQ9z_ck.js +0 -2
  230. package/dist/cjs/AwaitingPasswordlessCodeScreen-Bah7kXAV.js +0 -103
  231. package/dist/cjs/AwaitingSolToEvmBridgingScreen-HSwPZmzZ.js +0 -2
  232. package/dist/cjs/CaptchaScreen-BLoD3u63.js +0 -1
  233. package/dist/cjs/CoinbaseOnrampStatusScreen-CoSS2KfY.js +0 -16
  234. package/dist/cjs/ConnectEmailForm-BjXzo_T8.js +0 -3
  235. package/dist/cjs/ConnectLedgerScreen-Brfd_c8H.js +0 -9
  236. package/dist/cjs/ConnectOnlyLandingScreen-C41qgoJf.js +0 -1
  237. package/dist/cjs/ConnectOnlyStatusScreen-DPsh3aXI.js +0 -1
  238. package/dist/cjs/ConnectOrCreateScreen-Dpv9J_eC.js +0 -1
  239. package/dist/cjs/ConnectionStatusScreen-DfKCyYnE.js +0 -7
  240. package/dist/cjs/CrossAppAuthScreen-CAmbPQb0.js +0 -1
  241. package/dist/cjs/DelegatedActionsConsentScreen-DOvRMKf-.js +0 -1
  242. package/dist/cjs/DelegatedActionsRevokeScreen-5ecaxQ0D.js +0 -1
  243. package/dist/cjs/EmbeddedWalletConnectingScreen-B31DzW7n.js +0 -1
  244. package/dist/cjs/EmbeddedWalletCreatedScreen-BXEozrA_.js +0 -1
  245. package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-DSrn-F5R.js +0 -1
  246. package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-DGlv7LlS.js +0 -1
  247. package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-Byr5dLg5.js +0 -1
  248. package/dist/cjs/ErrorScreen-DJwJwrGn.js +0 -4
  249. package/dist/cjs/FarcasterSignerStatusScreen--CVrZRE9.js +0 -29
  250. package/dist/cjs/FundSolWalletWithExternalSolanaWallet-3Fn4CnSA.js +0 -2
  251. package/dist/cjs/FundWalletMethodHeader-D2fapeXN.js +0 -1
  252. package/dist/cjs/FundingEditAmountScreen-B3wEw9xm.js +0 -1
  253. package/dist/cjs/FundingMethodSelectionScreen-ChQNeyi6.js +0 -1
  254. package/dist/cjs/InAppBrowserLoginNotPossible-XFkxHwKR.js +0 -1
  255. package/dist/cjs/InstallWalletScreen-Cp3ZRRYf.js +0 -1
  256. package/dist/cjs/LandingScreen-DwFs0lRf.js +0 -1
  257. package/dist/cjs/LinkEmailScreen-_sfK6ECC.js +0 -1
  258. package/dist/cjs/LinkPhoneScreen-BjMfF3Kz.js +0 -1
  259. package/dist/cjs/LoginFailedScreen-BUnuwN-5.js +0 -1
  260. package/dist/cjs/ManualTransferScreen-D2hHGf6p.js +0 -1
  261. package/dist/cjs/MfaAuthEnrollmentFlowScreen-VFaXkogp.js +0 -1
  262. package/dist/cjs/MfaAuthVerifyFlowScreen-CVBdW4Cw.js +0 -1
  263. package/dist/cjs/MfaEnrollmentFlowScreen-DxkzCr5s.js +0 -1
  264. package/dist/cjs/MfaVerifyFlowScreen-AFZc7liT.js +0 -1
  265. package/dist/cjs/MoonpayStatusScreen-C66Eq4G4.js +0 -16
  266. package/dist/cjs/OAuthStatusScreen-NKl6SLvR.js +0 -1
  267. package/dist/cjs/PasskeySelectSignupOrLogin-D9VfPofR.js +0 -1
  268. package/dist/cjs/PasskeyStatusScreen-CBC-60D2.js +0 -3
  269. package/dist/cjs/PasswordRecoveryScreen-BSUhAJ63.js +0 -20
  270. package/dist/cjs/RecoveryOAuthStatusScreen-y2Z3cphT.js +0 -1
  271. package/dist/cjs/RecoveryPasswordCreateScreen-CoDYHaJk.js +0 -1
  272. package/dist/cjs/SetAutomaticRecoveryScreen-BLiDEmlE.js +0 -14
  273. package/dist/cjs/TelegramAuthScreen-BGB40HSe.js +0 -1
  274. package/dist/cjs/UpdateEmailScreen-Bgn5JxGJ.js +0 -1
  275. package/dist/cjs/UpdatePhoneScreen-DPAxfLv5.js +0 -1
  276. package/dist/cjs/UserLimitReachedScreen-BG8gj4ah.js +0 -1
  277. package/dist/cjs/WalletInterstitialScreen-CBH05HpE.js +0 -1
  278. package/dist/cjs/get-is-unified-wallet-DitrQ4hx.js +0 -1
  279. package/dist/cjs/index-BohqOluI.js +0 -174
  280. package/dist/cjs/index-CCY3tkwt.js +0 -1
  281. package/dist/cjs/smart-wallets-BtILJe_K.js +0 -1
  282. package/dist/cjs/use-export-wallet-C6DaLOxp.js +0 -1
  283. package/dist/cjs/use-export-wallet-eDTOzHRt.js +0 -1
  284. package/dist/cjs/usePrivy-CHcu9hX8.js +0 -1
  285. package/dist/cjs/useWallets-CbvzYOqg.js +0 -1
  286. package/dist/cjs/useWallets-Cy6axcvW.js +0 -1
  287. package/dist/esm/AccountNotFoundScreen-BSYd-8_2.mjs +0 -1
  288. package/dist/esm/AffirmativeConsentScreen-C_uGmdSa.mjs +0 -6
  289. package/dist/esm/AllowlistRejectionScreen-DBdNYwS-.mjs +0 -1
  290. package/dist/esm/AuthenticateWithWalletScreen-D-Aw0iYo.mjs +0 -1
  291. package/dist/esm/AwaitingEvmToSolBridgingScreen-BMr5CXgX.mjs +0 -2
  292. package/dist/esm/AwaitingExternalEthereumTransferScreen-aOEMTW-b.mjs +0 -2
  293. package/dist/esm/AwaitingPasswordlessCodeScreen-CjPJ7IMM.mjs +0 -103
  294. package/dist/esm/AwaitingSolToEvmBridgingScreen-xrFngED1.mjs +0 -2
  295. package/dist/esm/CaptchaScreen-BOKElE1r.mjs +0 -1
  296. package/dist/esm/CoinbaseOnrampStatusScreen-CTV5uUn3.mjs +0 -16
  297. package/dist/esm/ConnectEmailForm-Dp85JvZj.mjs +0 -3
  298. package/dist/esm/ConnectLedgerScreen-rxzesP5N.mjs +0 -9
  299. package/dist/esm/ConnectOnlyLandingScreen-CmImF7oZ.mjs +0 -1
  300. package/dist/esm/ConnectOnlyStatusScreen-Bo90w6P9.mjs +0 -1
  301. package/dist/esm/ConnectOrCreateScreen-Dc2VQF-B.mjs +0 -1
  302. package/dist/esm/ConnectionStatusScreen-C_fxSXJ2.mjs +0 -7
  303. package/dist/esm/CrossAppAuthScreen-DU0FD2ep.mjs +0 -1
  304. package/dist/esm/DelegatedActionsConsentScreen-Dr-DeIXC.mjs +0 -1
  305. package/dist/esm/DelegatedActionsRevokeScreen-kXOJxXu-.mjs +0 -1
  306. package/dist/esm/EmbeddedWalletConnectingScreen-tFedaOj3.mjs +0 -1
  307. package/dist/esm/EmbeddedWalletCreatedScreen-DCx4NdAp.mjs +0 -1
  308. package/dist/esm/EmbeddedWalletOnAccountCreateScreen-vSzXa62f.mjs +0 -1
  309. package/dist/esm/EmbeddedWalletPasswordUpdateScreen-B4szV9Hg.mjs +0 -1
  310. package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-BOBLnE_O.mjs +0 -1
  311. package/dist/esm/ErrorScreen-BGE6wldq.mjs +0 -4
  312. package/dist/esm/FarcasterSignerStatusScreen-C-crikPv.mjs +0 -28
  313. package/dist/esm/FundSolWalletWithExternalSolanaWallet-BX4gYmzv.mjs +0 -1
  314. package/dist/esm/FundWalletMethodHeader-CdXWChwL.mjs +0 -1
  315. package/dist/esm/FundingEditAmountScreen--ffFSUmf.mjs +0 -1
  316. package/dist/esm/FundingMethodSelectionScreen-Djr0jY03.mjs +0 -1
  317. package/dist/esm/InAppBrowserLoginNotPossible-D6wMCuzD.mjs +0 -1
  318. package/dist/esm/InstallWalletScreen-B6VSXUWR.mjs +0 -1
  319. package/dist/esm/LandingScreen-BV0xq-oc.mjs +0 -1
  320. package/dist/esm/LinkEmailScreen-CtMuCZvp.mjs +0 -1
  321. package/dist/esm/LinkPhoneScreen-2nnXZB2B.mjs +0 -1
  322. package/dist/esm/LoginFailedScreen-hHvIsH81.mjs +0 -1
  323. package/dist/esm/ManualTransferScreen-C0xJ3si8.mjs +0 -1
  324. package/dist/esm/MfaAuthEnrollmentFlowScreen-CznUpkq5.mjs +0 -1
  325. package/dist/esm/MfaAuthVerifyFlowScreen-DUmOZHGX.mjs +0 -1
  326. package/dist/esm/MfaEnrollmentFlowScreen-DeoSfYAS.mjs +0 -1
  327. package/dist/esm/MfaVerifyFlowScreen-JJ1crW_8.mjs +0 -1
  328. package/dist/esm/MoonpayStatusScreen-BIzQZK9f.mjs +0 -16
  329. package/dist/esm/OAuthStatusScreen-DhmaZBTY.mjs +0 -1
  330. package/dist/esm/PasskeySelectSignupOrLogin-BmiJnukl.mjs +0 -1
  331. package/dist/esm/PasskeyStatusScreen-BStwA1_J.mjs +0 -3
  332. package/dist/esm/PasswordRecoveryScreen-DyBDQADG.mjs +0 -20
  333. package/dist/esm/RecoveryOAuthStatusScreen-BfcxgkUL.mjs +0 -1
  334. package/dist/esm/RecoveryPasswordCreateScreen-CBfvjxht.mjs +0 -1
  335. package/dist/esm/TelegramAuthScreen-BRDG8b6x.mjs +0 -1
  336. package/dist/esm/UpdateEmailScreen-C5lQJUiA.mjs +0 -1
  337. package/dist/esm/UpdatePhoneScreen-BwkzWVHl.mjs +0 -1
  338. package/dist/esm/UserLimitReachedScreen-ComDV9kj.mjs +0 -1
  339. package/dist/esm/WalletInterstitialScreen-riBB51NH.mjs +0 -1
  340. package/dist/esm/context-Cw2-86-G.mjs +0 -1
  341. package/dist/esm/get-is-unified-wallet-CQc-E5dS.mjs +0 -1
  342. package/dist/esm/index-Bvw5OxHl.mjs +0 -174
  343. package/dist/esm/index-yxF2V6XY.mjs +0 -1
  344. package/dist/esm/smart-wallets-Dl42tBUP.mjs +0 -1
  345. package/dist/esm/use-export-wallet-Bd5Sg5V-.mjs +0 -1
  346. package/dist/esm/use-export-wallet-NF9h_lS_.mjs +0 -1
  347. package/dist/esm/usePrivy-DAnfSvB5.mjs +0 -1
  348. package/dist/esm/useWallets-2_uCkhA8.mjs +0 -1
  349. package/dist/esm/useWallets-DpbBw4Vl.mjs +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";var e=require("react"),t=require("zustand"),n=require("./context-BAmjgwZ7.js"),r=require("styled-components"),o=require("react/jsx-runtime"),i=require("react-device-detect"),l=require("./use-export-wallet-C6DaLOxp.js"),a=require("./events-context-Di6--rDg.js"),s=require("viem"),c=require("viem/utils"),d=require("./internal-context-BJv4f_bO.js"),h=require("./get-is-unified-wallet-DitrQ4hx.js"),p=require("./useWallets-Cy6axcvW.js");function u(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var w=/*#__PURE__*/u(i);const m=t.create((()=>({listings:[],loading:!1}))),g=m.setState,y=(t=!0)=>{let r=n.useAppConfig(),o=m((e=>e.listings)),i=m((e=>e.loading)),l=!!o.length;return e.useEffect((()=>{t&&!l&&(g({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."))}`),[])})(r.walletConnectCloudProjectId).then((e=>g({listings:e,loading:!1}))).catch((e=>{console.error(e),g({listings:[],loading:!1})})))}),[t,l,r.walletConnectCloudProjectId]),{listings:o,loading:i}};function f(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function b(e){return"ethereum"===e.type}function v(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],o=t[n];if(r?.address!==o?.address||r&&o&&b(r)&&b(o)&&r?.chainId!==o?.chainId||r?.connectorType!==o?.connectorType||r?.connectedAt!==o?.connectedAt||r?.walletClientType!==o?.walletClientType||r?.isConnected!==o?.isConnected||r?.linked!==o?.linked)return!1}return!0}const x=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||n.DEFAULT_RPC_TIMEOUT;class C extends l.WalletConnector{buildConnectedWallet(e,t,n,r){let o=async()=>!!this.wallets.find((t=>c.getAddress(t.address)===c.getAddress(e)));return{type:"ethereum",address:c.getAddress(e),chainId:t,meta:n,imported:r,switchChain:async n=>{let r,i;if(!o)throw new d.PrivyConnectorError("Wallet is not currently connected.");let a=this.wallets.find((t=>c.getAddress(t.address)===c.getAddress(e)))?.chainId;if(!a)throw new d.PrivyConnectorError("Unable to determine current chainId.");if("number"==typeof n?(r=`0x${n.toString(16)}`,i=n):(r=n,i=Number(n)),a===l.formatChainIdToCAIP2(r))return;let s=this.chains.find((e=>e.id===i));if(!s)throw new d.PrivyConnectorError(`Unsupported chainId: ${n}`);let h=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:r}]})};try{return await h()}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 l.sleep(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:r,chainName:s.name,nativeCurrency:s.nativeCurrency,rpcUrls:[s.rpcUrls.default?.http[0]??""],blockExplorerUrls:[s.blockExplorers?.default.url??""]}]}),h();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new d.PrivyConnectorError(`Rainbow does not support the chainId ${t}`);throw e}},connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:o,getEthereumProvider:async()=>{if(!await o())throw new d.PrivyConnectorError("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await o())throw new d.PrivyConnectorError("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t;l.connectorLogger.debug("Syncing accounts",{wallet:this.walletClientType});let r=e;try{if(void 0===r){l.connectorLogger.rpcRequest("eth_accounts",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});l.connectorLogger.rpcResponse("eth_accounts",this.walletClientType),Array.isArray(e)&&(r=e)}}catch(e){l.connectorLogger.warn("Wallet did not respond to eth_accounts, using prefetched accounts",{wallet:this.walletClientType})}if(!r||!Array.isArray(r)||r.length<=0||!r[0])return void l.connectorLogger.debug("No accounts found",{wallet:this.walletClientType});let o=r[0];if(!s.isAddress(o))return;let i=c.getAddress(o),a=[];if("privy"===this.walletClientType){let e=l.s.get(n.getPrivyWalletKey(i));this.chains.find((t=>t.id===Number(e)))||(l.s.del(n.getPrivyWalletKey(i)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){l.connectorLogger.warn("Unable to switch embedded wallet chain on initialization",{wallet:this.walletClientType,chainId:t})}}else try{l.connectorLogger.rpcRequest("eth_chainId",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(l.connectorLogger.rpcResponse("eth_chainId",this.walletClientType),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){l.connectorLogger.warn("Failed to get chainId from provider, using default",{wallet:this.walletClientType,defaultChainId:n.DEFAULT_NETWORK}),t=n.DEFAULT_NETWORK}let d=l.formatChainIdToCAIP2(t);if(!a.find((e=>c.getAddress(e.address)===i))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};a.push(this.buildConnectedWallet(c.getAddress(o),d,e,"embedded_imported"===this.connectorType))}v(a,this.wallets)||(l.connectorLogger.debug("Wallets updated",{wallet:this.walletClientType,address:i,chainId:d}),this.wallets=a,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.getAddress(e)===c.getAddress(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:[c.toHex(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,r,o){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{l.connectorLogger.providerEvent("accountsChanged",this.walletClientType,{accountsCount:e.length}),0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{l.connectorLogger.providerEvent("chainChanged",this.walletClientType,{chainId:e}),this.wallets.forEach((t=>{t.chainId=l.formatChainIdToCAIP2(e),"privy"===this.walletClientType&&l.s.put(n.getPrivyWalletKey(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{l.connectorLogger.providerEvent("disconnect",this.walletClientType),this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{l.connectorLogger.providerEvent("connect",this.walletClientType),"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await l.sleep(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=r,this.rpcConfig=o,this.rpcTimeoutDuration=x(o,e),this.connected=!1,this.initialized=!1}}class k{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 d.PrivyConnectorError(`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 l.formatConnectorError(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 l.WalletTimeoutError,t=this.rpcTimeoutDuration)=>new Promise(((n,r)=>setTimeout((()=>{r(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||n.DEFAULT_RPC_TIMEOUT,this._subscriptions=[]}}const T=r.styled.div`
1
+ "use strict";var e=require("react"),t=require("zustand"),n=require("./context-CNQxiH4A.js"),r=require("styled-components"),o=require("react/jsx-runtime"),i=require("react-device-detect"),l=require("./use-export-wallet-Dy66dCnh.js"),a=require("./events-context-Di6--rDg.js"),s=require("viem"),c=require("viem/utils"),d=require("./internal-context-BJv4f_bO.js"),h=require("./privy-context-BUPa46TW.js"),p=require("./useWallets-CePTM2iC.js");function u(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var w=/*#__PURE__*/u(i);const m=t.create((()=>({listings:[],loading:!1}))),g=m.setState,y=(t=!0)=>{let r=n.useAppConfig(),o=m((e=>e.listings)),i=m((e=>e.loading)),l=!!o.length;return e.useEffect((()=>{t&&!l&&(g({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."))}`),[])})(r.walletConnectCloudProjectId).then((e=>g({listings:e,loading:!1}))).catch((e=>{console.error(e),g({listings:[],loading:!1})})))}),[t,l,r.walletConnectCloudProjectId]),{listings:o,loading:i}};function f(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function b(e){return"ethereum"===e.type}function v(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],o=t[n];if(r?.address!==o?.address||r&&o&&b(r)&&b(o)&&r?.chainId!==o?.chainId||r?.connectorType!==o?.connectorType||r?.connectedAt!==o?.connectedAt||r?.walletClientType!==o?.walletClientType||r?.isConnected!==o?.isConnected||r?.linked!==o?.linked)return!1}return!0}const x=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||n.DEFAULT_RPC_TIMEOUT;class C extends l.WalletConnector{buildConnectedWallet(e,t,n,r){let o=async()=>!!this.wallets.find((t=>c.getAddress(t.address)===c.getAddress(e)));return{type:"ethereum",address:c.getAddress(e),chainId:t,meta:n,imported:r,switchChain:async n=>{let r,i;if(!o)throw new d.PrivyConnectorError("Wallet is not currently connected.");let a=this.wallets.find((t=>c.getAddress(t.address)===c.getAddress(e)))?.chainId;if(!a)throw new d.PrivyConnectorError("Unable to determine current chainId.");if("number"==typeof n?(r=`0x${n.toString(16)}`,i=n):(r=n,i=Number(n)),a===l.formatChainIdToCAIP2(r))return;let s=this.chains.find((e=>e.id===i));if(!s)throw new d.PrivyConnectorError(`Unsupported chainId: ${n}`);let h=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:r}]})};try{return await h()}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 l.sleep(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:r,chainName:s.name,nativeCurrency:s.nativeCurrency,rpcUrls:[s.rpcUrls.default?.http[0]??""],blockExplorerUrls:[s.blockExplorers?.default.url??""]}]}),h();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new d.PrivyConnectorError(`Rainbow does not support the chainId ${t}`);throw e}},connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:o,getEthereumProvider:async()=>{if(!await o())throw new d.PrivyConnectorError("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await o())throw new d.PrivyConnectorError("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t;l.connectorLogger.debug("Syncing accounts",{wallet:this.walletClientType});let r=e;try{if(void 0===r){l.connectorLogger.rpcRequest("eth_accounts",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});l.connectorLogger.rpcResponse("eth_accounts",this.walletClientType),Array.isArray(e)&&(r=e)}}catch(e){l.connectorLogger.warn("Wallet did not respond to eth_accounts, using prefetched accounts",{wallet:this.walletClientType})}if(!r||!Array.isArray(r)||r.length<=0||!r[0])return void l.connectorLogger.debug("No accounts found",{wallet:this.walletClientType});let o=r[0];if(!s.isAddress(o))return;let i=c.getAddress(o),a=[];if("privy"===this.walletClientType){let e=l.s.get(n.getPrivyWalletKey(i));this.chains.find((t=>t.id===Number(e)))||(l.s.del(n.getPrivyWalletKey(i)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){l.connectorLogger.warn("Unable to switch embedded wallet chain on initialization",{wallet:this.walletClientType,chainId:t})}}else try{l.connectorLogger.rpcRequest("eth_chainId",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(l.connectorLogger.rpcResponse("eth_chainId",this.walletClientType),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){l.connectorLogger.warn("Failed to get chainId from provider, using default",{wallet:this.walletClientType,defaultChainId:n.DEFAULT_NETWORK}),t=n.DEFAULT_NETWORK}let d=l.formatChainIdToCAIP2(t);if(!a.find((e=>c.getAddress(e.address)===i))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};a.push(this.buildConnectedWallet(c.getAddress(o),d,e,"embedded_imported"===this.connectorType))}v(a,this.wallets)||(l.connectorLogger.debug("Wallets updated",{wallet:this.walletClientType,address:i,chainId:d}),this.wallets=a,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.getAddress(e)===c.getAddress(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:[c.toHex(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,r,o){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{l.connectorLogger.providerEvent("accountsChanged",this.walletClientType,{accountsCount:e.length}),0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{l.connectorLogger.providerEvent("chainChanged",this.walletClientType,{chainId:e}),this.wallets.forEach((t=>{t.chainId=l.formatChainIdToCAIP2(e),"privy"===this.walletClientType&&l.s.put(n.getPrivyWalletKey(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{l.connectorLogger.providerEvent("disconnect",this.walletClientType),this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{l.connectorLogger.providerEvent("connect",this.walletClientType),"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await l.sleep(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=r,this.rpcConfig=o,this.rpcTimeoutDuration=x(o,e),this.connected=!1,this.initialized=!1}}class k{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 d.PrivyConnectorError(`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 l.formatConnectorError(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 l.WalletTimeoutError,t=this.rpcTimeoutDuration)=>new Promise(((n,r)=>setTimeout((()=>{r(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||n.DEFAULT_RPC_TIMEOUT,this._subscriptions=[]}}const T=r.styled.div`
2
2
  text-align: left;
3
3
  flex-grow: 1;
4
4
  `,_=r.styled.div`
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./context-BAmjgwZ7.js"),o=require("./internal-context-BJv4f_bO.js"),t=require("./useGetSolPrice-Ca32VAbF.js");let n=t=>{let{showFiatPrices:n,getUsdTokenPrice:c,chains:a}=o.usePrivyInternal(),[s,l]=e.useState(!0),[P,u]=e.useState(void 0),[d,k]=e.useState(void 0);return e.useEffect((()=>{t||=i.CHAIN_ID_MAINNET;let e=r.addToDefaultChains(a).find((e=>e.id===Number(t)));(async()=>{if(n){if(!e)return l(!1),void u(Error(`Unable to fetch token price on chain id ${t}`));try{l(!0);let r=await c(e);r?k(r):u(Error(`Unable to fetch token price on chain id ${e.id}`))}catch(e){u(e)}finally{l(!1)}}else l(!1)})()}),[t]),{tokenPrice:d,isTokenPriceLoading:s,tokenPriceError:P}};exports.useGetTokenPrice=function(e){let{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}=n("solana"===e?-1:e),{solPrice:c,isSolPriceLoading:a,solPriceError:s}=t.useGetSolPrice({enabled:"solana"===e});return"solana"===e?{tokenPrice:c,isTokenPriceLoading:a,tokenPriceError:s}:{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}};
1
+ "use strict";var e=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./context-CNQxiH4A.js"),o=require("./internal-context-BJv4f_bO.js"),t=require("./useGetSolPrice-Ca32VAbF.js");let n=t=>{let{showFiatPrices:n,getUsdTokenPrice:c,chains:a}=o.usePrivyInternal(),[s,l]=e.useState(!0),[P,u]=e.useState(void 0),[d,k]=e.useState(void 0);return e.useEffect((()=>{t||=i.CHAIN_ID_MAINNET;let e=r.addToDefaultChains(a).find((e=>e.id===Number(t)));(async()=>{if(n){if(!e)return l(!1),void u(Error(`Unable to fetch token price on chain id ${t}`));try{l(!0);let r=await c(e);r?k(r):u(Error(`Unable to fetch token price on chain id ${e.id}`))}catch(e){u(e)}finally{l(!1)}}else l(!1)})()}),[t]),{tokenPrice:d,isTokenPriceLoading:s,tokenPriceError:P}};exports.useGetTokenPrice=function(e){let{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}=n("solana"===e?-1:e),{solPrice:c,isSolPriceLoading:a,solPriceError:s}=t.useGetSolPrice({enabled:"solana"===e});return"solana"===e?{tokenPrice:c,isTokenPriceLoading:a,tokenPriceError:s}:{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}};
@@ -1 +1 @@
1
- "use strict";var e=require("./context-BAmjgwZ7.js");const n={"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}"};exports.useI18n=function(){let t=e.useAppConfig();return{t:(e,o)=>function(e,t,o){let c=t?.[e]??n[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,n)=>o[n]??e)):c}(e,t.intl.textLocalization,o)}};
1
+ "use strict";var e=require("./context-CNQxiH4A.js");const n={"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}"};exports.useI18n=function(){let t=e.useAppConfig();return{t:(e,o)=>function(e,t,o){let c=t?.[e]??n[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,n)=>o[n]??e)):c}(e,t.intl.textLocalization,o)}};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("react-device-detect"),r=require("./internal-context-BJv4f_bO.js"),t=require("react"),n=require("./use-export-wallet-Dy66dCnh.js"),a=require("./privy-context-BUPa46TW.js"),o=require("./events-context-Di6--rDg.js"),i=require("@privy-io/js-sdk-core"),l=require("./useWallets-CePTM2iC.js"),s=require("./context-CNQxiH4A.js");function d(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}let c="WALLETCONNECT_DEEPLINK_CHOICE";function p(e){return e.startsWith("http://")||e.startsWith("https://")}function u(e,r){if(p(e))return y(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 y(e,r){if(!p(e))return u(e,r);let t=e;return t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}const E=Symbol("solana-funding-plugin"),v=Symbol("solana-ledger-plugin"),w=(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)))??[],h=async({user:e,accessToken:r,proxy:t,refreshSessionAndUser:o,privy:s,appConfig:d,recoverEmbeddedWallet:c,setUser:p,walletIndex:u,chainType:y,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h,idempotencyKey:m,additionalSigners:f})=>{if(0===u)if("user-controlled-server-wallets-only"===d.embeddedWallets.mode)await i.create(s,{request:{chain_type:y,additional_signers:f?n.parseAdditionalSigners(f):void 0},headers:m?{"privy-idempotency-key":m}:void 0});else if("ethereum"===y){let n=a.getPrivySolanaWallet(e);n&&await c({address:n.address}),await t.create({accessToken:r,solanaAddress:n?.address,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h})}else{if("solana"!==y)throw Error("Invalid input to create wallet");{let n=a.getPrivyEthereumWallet(e);n&&await c({address:n.address}),await t.createSolana({accessToken:r,ethereumAddress:n?.address,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h})}}else if("user-controlled-server-wallets-only"===d.embeddedWallets.mode)await i.create(s,{request:{chain_type:y,additional_signers:f?n.parseAdditionalSigners(f):void 0}});else{let{entropyId:n,entropyIdVerifier:a}=l.getEntropyDetailsForUser(e);await c(),await t.addWallet({accessToken:r,entropyId:n,entropyIdVerifier:a,chainType:y,hdWalletIndex:u})}let W=await o(),T=w(W,{chainType:y,walletIndex:u})[0];return p(W),{user:W,account:T}},m=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),f=async({appConfig:e,getAccessToken:t,initializeWalletProxy:n,user:a,privy:o,emitPrivyEvent:i,recoverEmbeddedWallet:l,setModalData:s,openModal:d,setUser:c,options:p,timeoutDuration:u,refreshSessionAndUser:y,chainType:E,idempotencyKey:v,additionalSigners:h})=>{let[f,T]=await Promise.all([n(u),t()]);if(!T||!a)throw i("createWallet","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!f&&e.customAuth?.enabled)throw i("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(h&&"user-controlled-server-wallets-only"!==e.embeddedWallets.mode)throw new r.PrivyClientError("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");if(p&&"walletIndex"in p&&"number"==typeof p.walletIndex){if("user-controlled-server-wallets-only"===e.embeddedWallets.mode)throw i("createWallet","onError",r.PrivyErrorCode.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return W({accessToken:T,appConfig:e,privy:o,emitPrivyEvent:i,openModal:d,proxy:f,refreshSessionAndUser:y,recoverEmbeddedWallet:l,setModalData:s,user:a,walletIndex:p.walletIndex,chainType:E,setUser:c,additionalSigners:h})}let A=p&&"createAdditional"in p&&p.createAdditional,g=w(a,{chainType:E});if(g[0]&&!A)throw i("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return W({accessToken:T,appConfig:e,privy:o,emitPrivyEvent:i,openModal:d,proxy:f,recoverEmbeddedWallet:l,setModalData:s,user:a,walletIndex:(m(g)?.walletIndex??-1)+1,chainType:E,refreshSessionAndUser:y,setUser:c,idempotencyKey:v,additionalSigners:h})};let W=async({accessToken:e,appConfig:t,privy:n,emitPrivyEvent:o,proxy:i,refreshSessionAndUser:l,recoverEmbeddedWallet:s,user:d,walletIndex:c,setModalData:p,openModal:u,chainType:y,setUser:E,idempotencyKey:v,additionalSigners:m})=>{if(c<0)throw o("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${c}) is invalid.`);let f=a.getPrivyPrimaryWallet(d);if(c>0&&!f)throw o("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw o("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!f&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await T({emitPrivyEvent:o,setModalData:p,openModal:u,chainType:y});let W=w(d,{chainType:y,walletIndex:c})[0];if(W)return{user:d,account:W};if(0===c&&!i)return T({emitPrivyEvent:o,setModalData:p,openModal:u,chainType:y});if(!i)throw o("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return h({appConfig:t,walletIndex:c,chainType:y,user:d,accessToken:e,proxy:i,refreshSessionAndUser:l,privy:n,recoverEmbeddedWallet:s,setUser:E,idempotencyKey:v,additionalSigners:m})},T=async({emitPrivyEvent:e,setModalData:t,openModal:n,chainType:a})=>new Promise(((o,i)=>{t({createWallet:{onSuccess:({user:r,account:t})=>{e("createWallet","onSuccess",{wallet:t}),o({user:r,account:t})},onFailure:t=>{e("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),i(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===a,shouldCreateSol:"solana"===a}}),n("EmbeddedWalletOnAccountCreateScreen")}));const A=()=>{let e=s.useAppConfig(),t=o.useEmitPrivyEvent(),{setModalData:n}=a.usePrivyModal(),{initializeWalletProxy:i,recoverEmbeddedWallet:l,setUser:d,openModal:c,refreshSessionAndUser:p,privy:u,client:y}=r.usePrivyInternal();return{create:async({chainType:a,options:o,latestUser:E,idempotencyKey:v})=>{let w=E;if(w||(w=await p()),!w)throw t("createWallet","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await f({appConfig:e,privy:u,getAccessToken:()=>y.getAccessToken(),refreshSessionAndUser:p,initializeWalletProxy:i,user:w,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:n,openModal:c,setUser:d,options:o,timeoutDuration:s.WALLET_PROXY_TIMEOUT,chainType:a,idempotencyKey:v,additionalSigners:o?.signers})}}};function g(e){let{create:r}=A();return o.usePrivyEventSubscription("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 x=async({emitPrivyEvent:e,getAccessToken:t,initializeWalletProxy:n,refreshSessionAndUser:o,user:i,appConfig:l},{privateKey:s,chainType:d,additionalSigners:c})=>{if(!i)throw e("linkAccount","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r.PrivyClientError("User must be authenticated before linking an account.");let p="user-controlled-server-wallets-only"===l.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===p)throw new r.PrivyClientError("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[u,y]=await Promise.all([t(),n(15e3)]);if(!y||!u)throw e("linkAccount","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r.PrivyClientError("User must be authenticated before linking an account.");let{address:E}=await y.importWallet({privateKey:s,accessToken:u,chainType:d,mode:p,additionalSigners:c}),v=await o(),w="solana"===d?a.getImportedPrivySolanaWallets(v):a.getImportedPrivyEthereumWallets(v),h=w?.find((e=>e.address===E));if(!h)throw e("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:h}),h},P=()=>{let{user:e}=a.usePrivyContext(),{client:n,refreshSessionAndUser:i,initializeWalletProxy:l}=r.usePrivyInternal(),d=o.useEmitPrivyEvent(),c=s.useAppConfig();return{importWallet:t.useCallback((({privateKey:r,additionalSigners:t})=>x({getAccessToken:()=>n.getAccessToken(),user:e,initializeWalletProxy:l,refreshSessionAndUser:i,emitPrivyEvent:d,appConfig:c},{privateKey:r,chainType:"ethereum",additionalSigners:t})),[e,n,i,l,d,c])}};exports.SOLANA_FUNDING_PLUGIN_ID=E,exports.SOLANA_LEDGER_PLUGIN_ID=v,exports.buildTargetUrl=function(t,n){let a=d(n);if(e.isMobile&&e.isAndroid&&a.universalLink)return y(a.universalLink,t);if(a.deepLink)return u(a.deepLink,t);if(a.universalLink)return y(a.universalLink,t);throw new r.PrivyClientError(`Unsupported wallet ${n.id}`)},exports.buildUniversalFallbackUrl=function(e,r){let t=d(r);if(t.universalLink)return y(t.universalLink,e)},exports.createWalletAtIndex=h,exports.deleteWalletConnectDeepLink=function(){try{localStorage.removeItem(c)}catch{}},exports.importWallet=x,exports.openHref=function(e,r){window.open(e,r,"noreferrer noopener")},exports.prepareSiwsMessageWithNonce=({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`,exports.removeWalletConnectDeepLink=function(){try{localStorage.removeItem(c)}catch{}},exports.setWalletConnectDeepLink=function({href:e,name:r}){try{localStorage.setItem(c,JSON.stringify({href:e,name:r}))}catch{}},exports.useCreateWallet=g,exports.useCreateWalletInternal=A,exports.useImportWallet=P,exports.usePrivy=()=>{let{importWallet:e}=P(),{exportWallet:r}=n.useExportWallet(),{createWallet:o}=g();return{...t.useContext(a.PrivyContext),importWallet:e,createWallet:o,exportWallet:r}};
@@ -1 +1 @@
1
- "use strict";var e=require("@solana/kit"),r=require("react"),n=require("./context-BAmjgwZ7.js"),t=require("./internal-context-BJv4f_bO.js");function o(r){return new Uint8Array(e.getTransactionDecoder().decode(r).messageBytes)}const a=(...e)=>{if("undefined"==typeof Buffer)throw new t.PrivyClientError("Buffer is not defined.",void 0,t.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};async function i({rpcSubscriptions:e,signature:r,timeout:n}){let t=new AbortController,o=await e.signatureNotifications(r,{commitment:"confirmed"}).subscribe({abortSignal:t.signal}),a=await Promise.race([new Promise((e=>{setTimeout((()=>{t.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let r of o){if(t.abort(),r.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(a instanceof Error)throw a}function s({rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o}){let s=function({rpc:r,rpcSubscriptions:n}){return async t=>new Promise((async(o,s)=>{try{let s=await r.sendTransaction(a(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await i({rpcSubscriptions:n,signature:s,timeout:1e4}),o({signature:new Uint8Array(e.getBase58Encoder().encode(s))})}catch(e){s(e)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o,sendAndConfirmTransaction:s}}exports.bufferFrom=a,exports.fetchTransactionEstimatedFees=async function({solanaClient:r,tx:n}){let t=e.getBase64Decoder().decode(o(n)),{value:a}=await r.rpc.getFeeForMessage(t).send();return a??0n},exports.getSolanaRpcClient=s,exports.getTransactionMessageBytes=o,exports.simulateTransaction=async function r({solanaClient:n,tx:t,replaceRecentBlockhash:o}){let{value:a}=await n.rpc.simulateTransaction(e.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===a.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await r({solanaClient:n,tx:t,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}},exports.useSolanaRpcClient=function(){let e=n.useAppConfig(),t=r.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((r=>[r,e.solanaRpcs[r]?s({chain:r,rpc:e.solanaRpcs[r].rpc,rpcSubscriptions:e.solanaRpcs[r].rpcSubscriptions,blockExplorerUrl:e.solanaRpcs[r].blockExplorerUrl??`https://explorer.solana.com?cluster=${r.replace("solana:","")}`}):null])))),[e.solanaRpcs]);return r.useCallback((e=>{if(!t[e])throw Error(`No RPC configuration found for chain ${e}`);return t[e]}),[t])},exports.waitForSignatureConfirmation=i;
1
+ "use strict";var e=require("@solana/kit"),r=require("react"),n=require("./context-CNQxiH4A.js"),t=require("./internal-context-BJv4f_bO.js");function o(r){return new Uint8Array(e.getTransactionDecoder().decode(r).messageBytes)}const a=(...e)=>{if("undefined"==typeof Buffer)throw new t.PrivyClientError("Buffer is not defined.",void 0,t.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};async function i({rpcSubscriptions:e,signature:r,timeout:n}){let t=new AbortController,o=await e.signatureNotifications(r,{commitment:"confirmed"}).subscribe({abortSignal:t.signal}),a=await Promise.race([new Promise((e=>{setTimeout((()=>{t.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let r of o){if(t.abort(),r.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(a instanceof Error)throw a}function s({rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o}){let s=function({rpc:r,rpcSubscriptions:n}){return async t=>new Promise((async(o,s)=>{try{let s=await r.sendTransaction(a(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await i({rpcSubscriptions:n,signature:s,timeout:1e4}),o({signature:new Uint8Array(e.getBase58Encoder().encode(s))})}catch(e){s(e)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o,sendAndConfirmTransaction:s}}exports.bufferFrom=a,exports.fetchTransactionEstimatedFees=async function({solanaClient:r,tx:n}){let t=e.getBase64Decoder().decode(o(n)),{value:a}=await r.rpc.getFeeForMessage(t).send();return a??0n},exports.getSolanaRpcClient=s,exports.getTransactionMessageBytes=o,exports.simulateTransaction=async function r({solanaClient:n,tx:t,replaceRecentBlockhash:o}){let{value:a}=await n.rpc.simulateTransaction(e.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===a.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await r({solanaClient:n,tx:t,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}},exports.useSolanaRpcClient=function(){let e=n.useAppConfig(),t=r.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((r=>[r,e.solanaRpcs[r]?s({chain:r,rpc:e.solanaRpcs[r].rpc,rpcSubscriptions:e.solanaRpcs[r].rpcSubscriptions,blockExplorerUrl:e.solanaRpcs[r].blockExplorerUrl??`https://explorer.solana.com?cluster=${r.replace("solana:","")}`}):null])))),[e.solanaRpcs]);return r.useCallback((e=>{if(!t[e])throw Error(`No RPC configuration found for chain ${e}`);return t[e]}),[t])},exports.waitForSignatureConfirmation=i;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("viem"),t=require("./useWallets-Cy6axcvW.js"),a=require("./internal-context-BJv4f_bO.js");exports.useWalletBalance=function({rpcConfig:n,appId:s,address:c,chain:i}){let{chains:l}=a.usePrivyInternal(),[u,o]=e.useState(0n),[d,p]=e.useState(!1),h=e.useMemo((()=>{let e=i||l[0];if(e)return r.createPublicClient({chain:i,transport:r.http(t.getJsonRpcEndpointFromChain(e,n,s))})}),[i,n,s]),f=e.useCallback((async()=>{if(!c||!h)return;p(!0);let e=await h.getBalance({address:c}).catch(console.error);return e?(o(e),p(!1),e):void 0}),[h,c,o]);return e.useEffect((()=>{f().catch(console.error)}),[]),{balance:u,isLoading:d,reloadBalance:f}};
1
+ "use strict";var e=require("react"),r=require("viem"),t=require("./useWallets-CePTM2iC.js"),a=require("./internal-context-BJv4f_bO.js");exports.useWalletBalance=function({rpcConfig:n,appId:s,address:c,chain:i}){let{chains:l}=a.usePrivyInternal(),[u,o]=e.useState(0n),[d,p]=e.useState(!1),h=e.useMemo((()=>{let e=i||l[0];if(e)return r.createPublicClient({chain:i,transport:r.http(t.getJsonRpcEndpointFromChain(e,n,s))})}),[i,n,s]),f=e.useCallback((async()=>{if(!c||!h)return;p(!0);let e=await h.getBalance({address:c}).catch(console.error);return e?(o(e),p(!1),e):void 0}),[h,c,o]);return e.useEffect((()=>{f().catch(console.error)}),[]),{balance:u,isLoading:d,reloadBalance:f}};
@@ -0,0 +1 @@
1
+ "use strict";var r=require("./privy-context-BUPa46TW.js"),e=require("viem"),t=require("./internal-context-BJv4f_bO.js"),i=require("react");const l=r=>{if("ethereum"===r.chainType)return{entropyId:r.address,entropyIdVerifier:"ethereum-address-verifier"};if("solana"===r.chainType)return{entropyId:r.address,entropyIdVerifier:"solana-address-verifier"};throw Error("Failed to get account entropy details")},n=(r,e,i)=>{let l,n=r.id,o=Number(r.id);if(r.rpcUrls.privyWalletOverride&&r.rpcUrls.privyWalletOverride.http[0])l=r.rpcUrls.privyWalletOverride.http[0];else if(e.rpcUrls&&e.rpcUrls[o])l=e.rpcUrls[o];else if(r.rpcUrls.privy?.http[0]){let e=new URL(r.rpcUrls.privy.http[0]);e.searchParams.append("privyAppId",i),l=e.toString()}else l=r.rpcUrls.public?.http[0]?r.rpcUrls.public.http[0]:r.rpcUrls.default?.http[0];if(!l)throw new t.PrivyConnectorError(`No RPC url found for ${n}`);return l},o=/*#__PURE__*/i.createContext(null);exports.UseWalletsContext=o,exports.getEntropyDetailsForUser=(e,t)=>{if(t?.imported)return l(t);let i=r.getPrivyPrimaryWallet(e);if(!i)throw Error("Failed to find primary wallet");return l(i)},exports.getJsonRpcEndpointFromChain=n,exports.getPublicClient=(r,i,l,o)=>{let p=Number(r),s=i.find((r=>r.id===p));if(!s)throw new t.PrivyConnectorError(`Unsupported chainId ${r}`,4901);return e.createPublicClient({transport:e.http(n(s,l,o.appId)),chain:s})},exports.toEntropyDetailsFromAccount=l,exports.useWallets=function(){let r=i.useContext(o);return null===r?(console.warn("`useWallets` was called outside the PrivyProvider component"),{wallets:[],ready:!1}):r};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("@solana/kit"),t=require("react"),n=require("@privy-io/js-sdk-core"),i=require("./internal-context-BJv4f_bO.js"),s=require("./privy-context-BUPa46TW.js"),a=require("./usePrivy-BgdIKexA.js"),r=require("./useWallets-CePTM2iC.js"),o=require("eventemitter3"),l=require("@scure/base"),c=require("./context-CNQxiH4A.js"),d=require("./use-sign-with-user-signer-Cu_6Bx7m.js"),u=require("./useSolanaRpcClient-DFziJZx0.js"),g=require("./use-export-wallet-Dy66dCnh.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=/*#__PURE__*/h(o);const y=["solana:mainnet","solana:devnet","solana:testnet"];function f(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var v=0,A="__private_"+v+++"__implementation";class w extends p.default{setImplementation(e){f(this,A)[A]=e}async signMessage(e){return f(this,A)[A].signMessage(e)}async signAndSendTransaction(e){return f(this,A)[A].signAndSendTransaction(e)}async signTransaction(e){return f(this,A)[A].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,A,{writable:!0,value:void 0}),f(this,A)[A]=e}}function E(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var T=0;function b(e){return"__private_"+T+++"_"+e}var m=/*#__PURE__*/b("_address"),S=/*#__PURE__*/b("_publicKey"),P=/*#__PURE__*/b("_chains"),O=/*#__PURE__*/b("_features"),W=/*#__PURE__*/b("_label"),I=/*#__PURE__*/b("_icon");class C{get address(){return E(this,m)[m]}get publicKey(){return E(this,S)[S].slice()}get chains(){return E(this,P)[P].slice()}get features(){return E(this,O)[O].slice()}get label(){return E(this,W)[W]}get icon(){return E(this,I)[I]}constructor({address:e,publicKey:t,label:n,icon:i}){Object.defineProperty(this,m,{writable:!0,value:void 0}),Object.defineProperty(this,S,{writable:!0,value:void 0}),Object.defineProperty(this,P,{writable:!0,value:void 0}),Object.defineProperty(this,O,{writable:!0,value:void 0}),Object.defineProperty(this,W,{writable:!0,value:void 0}),Object.defineProperty(this,I,{writable:!0,value:void 0}),E(this,m)[m]=e,E(this,S)[S]=t,E(this,P)[P]=y,E(this,W)[W]=n,E(this,I)[I]=i,E(this,O)[O]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===C&&Object.freeze(this)}}function _(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var M=0;function j(e){return"__private_"+M+++"_"+e}var F=/*#__PURE__*/j("_listeners"),U=/*#__PURE__*/j("_version"),D=/*#__PURE__*/j("_name"),N=/*#__PURE__*/j("_icon"),B=/*#__PURE__*/j("_injection"),x=/*#__PURE__*/j("_isPrivyWallet"),R=/*#__PURE__*/j("_accounts"),L=/*#__PURE__*/j("_on"),V=/*#__PURE__*/j("_emit"),q=/*#__PURE__*/j("_off"),Q=/*#__PURE__*/j("_connected"),G=/*#__PURE__*/j("_connect"),H=/*#__PURE__*/j("_disconnect"),K=/*#__PURE__*/j("_signMessage"),J=/*#__PURE__*/j("_signAndSendTransaction"),Y=/*#__PURE__*/j("_signTransaction");function k(e,...t){_(this,F)[F][e]?.forEach((e=>e.apply(null,t)))}function Z(e,t){_(this,F)[F][e]=_(this,F)[F][e]?.filter((e=>t!==e))}function z(t,n,i){let s=structuredClone(e.getTransactionDecoder().decode(t)),a=e.address(n);return a in s.signatures&&(s.signatures[a]=i),new Uint8Array(e.getTransactionEncoder().encode(s))}function X(){let{isHeadlessSigning:e,walletProxy:t,initializeWalletProxy:o,recoverEmbeddedWallet:l,openModal:c,privy:g,client:h}=i.usePrivyInternal(),{user:p}=a.usePrivy(),{setModalData:y}=s.usePrivyModal(),{signWithUserSigner:f}=d.useSignWithUserSigner();return{signMessage:({message:a,address:d,options:v})=>new Promise((async(A,w)=>{let E=s.getPrivyWalletWithAddress(p,d);if("privy"!==E?.walletClientType)return void w(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:T,entropyIdVerifier:b}=r.getEntropyDetailsForUser(p,E),m=s.getIsUnifiedWallet(E),S=u.bufferFrom(a).toString("base64");if(S.length<1)return void w(new i.PrivyClientError("Message must be a non-empty string",void 0,i.PrivyErrorCode.INVALID_MESSAGE));let P=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let i=await h.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let s=t??await o(15e3);if(!s)throw Error("Failed to initialize embedded wallet proxy.");if(!await l({address:E.address}))throw Error("Unable to connect to wallet");if(m){let t=await n.rpc(g,f,{chain_type:"solana",method:"signMessage",params:{message:S,encoding:"base64"},wallet_id:E.id});if(!t.data||!("signature"in t.data))throw Error("Failed to sign message");e=t.data.signature}else{let{response:t}=await s.rpc({accessToken:i,entropyId:T,entropyIdVerifier:b,chainType:"solana",hdWalletIndex:E.walletIndex??0,requesterAppId:v?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:S}}});e=t.data.signature}return e};if(e({showWalletUIs:v?.uiOptions?.showWalletUIs}))try{let e=await P(),t=new Uint8Array(u.bufferFrom(e,"base64"));A({signature:t})}catch(e){w(e)}else y({signMessage:{method:"solana_signMessage",data:S,confirmAndSign:P,onSuccess:e=>{A({signature:new Uint8Array(u.bufferFrom(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:v?.uiOptions??{}},connectWallet:{recoveryMethod:E.recoveryMethod,connectingWalletAddress:E.address,entropyId:T,entropyIdVerifier:b,isUnifiedWallet:m,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{w(new i.PrivyClientError("Failed to connect to wallet",e,i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),c("EmbeddedWalletConnectingScreen")}))}}function $(){let{isHeadlessSigning:e,openModal:t}=i.usePrivyInternal(),{setModalData:n}=s.usePrivyModal(),{signMessage:o}=X(),{user:l}=a.usePrivy();return{signTransaction:async({transaction:a,options:c,chain:d="solana:mainnet",address:g})=>{async function h(e){let{signature:t}=await o({message:u.getTransactionMessageBytes(e),address:g,options:{...c,uiOptions:{...c?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:z(e,g,t)}}return e({showWalletUIs:c?.uiOptions?.showWalletUIs})?h(a):new Promise((async(e,o)=>{let u=s.getPrivyWalletWithAddress(l,g);if("privy"!==u?.walletClientType)return void o(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:p,entropyIdVerifier:y}=r.getEntropyDetailsForUser(l,u),f=s.getIsUnifiedWallet(u);function v(e){return t=>{t instanceof i.PrivyClientError?o(t):o(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let A={account:u,transaction:a,chain:d,signOnly:!0,uiOptions:c?.uiOptions||{},onConfirm:h,onSuccess:e,onFailure:v(i.PrivyErrorCode.TRANSACTION_FAILURE)};n({connectWallet:{recoveryMethod:u.recoveryMethod,connectingWalletAddress:u.address,entropyId:p,entropyIdVerifier:y,isUnifiedWallet:f,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:v(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:A}),t("EmbeddedWalletConnectingScreen")}))}}}let ee=new w({signTransaction:i.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:i.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:i.notImplementedWithMessage("signMessage was not injected")}),te=new class{get version(){return _(this,U)[U]}get name(){return _(this,D)[D]}get icon(){return _(this,N)[N]}get chains(){return y.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:_(this,G)[G]},"standard:disconnect":{version:"1.0.0",disconnect:_(this,H)[H]},"standard:events":{version:"1.0.0",on:_(this,L)[L]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:_(this,J)[J]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:_(this,Y)[Y]},"solana:signMessage":{version:"1.0.0",signMessage:_(this,K)[K]},"privy:":{privy:{signMessage:_(this,B)[B].signMessage,signTransaction:_(this,B)[B].signTransaction,signAndSendTransaction:_(this,B)[B].signAndSendTransaction}}}}get accounts(){return _(this,R)[R].slice()}get isPrivyWallet(){return _(this,x)[x]}constructor({name:e,icon:t,version:n,injection:i,wallets:s}){Object.defineProperty(this,V,{value:k}),Object.defineProperty(this,q,{value:Z}),Object.defineProperty(this,F,{writable:!0,value:void 0}),Object.defineProperty(this,U,{writable:!0,value:void 0}),Object.defineProperty(this,D,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{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,H,{writable:!0,value:void 0}),Object.defineProperty(this,K,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),_(this,F)[F]={},_(this,L)[L]=(e,t)=>(_(this,F)[F][e]?.push(t)||(_(this,F)[F][e]=[t]),()=>_(this,q)[q](e,t)),_(this,Q)[Q]=e=>{null!=e&&(_(this,R)[R]=e.map((({address:e})=>new C({address:e,publicKey:l.base58.decode(e)})))),_(this,V)[V]("change",{accounts:this.accounts})},_(this,G)[G]=async()=>(_(this,V)[V]("change",{accounts:this.accounts}),{accounts:this.accounts}),_(this,H)[H]=async()=>{_(this,V)[V]("change",{accounts:this.accounts})},_(this,K)[K]=async(...e)=>{let t=[];for(let{account:n,...i}of e){let{signature:e}=await _(this,B)[B].signMessage({...i,address:n.address});t.push({signedMessage:i.message,signature:e})}return t},_(this,J)[J]=async(...e)=>{let t=[];for(let n of e){let{signature:e}=await _(this,B)[B].signAndSendTransaction({...n,transaction:n.transaction,address:n.account.address,chain:n.chain||"solana:mainnet",options:n.options});t.push({signature:e})}return t},_(this,Y)[Y]=async(...e)=>{let t=[];for(let{transaction:n,account:i,options:s,chain:a}of e){let{signedTransaction:e}=await _(this,B)[B].signTransaction({transaction:n,address:i.address,chain:a||"solana:mainnet",options:s});t.push({signedTransaction:e})}return t},_(this,D)[D]=e,_(this,N)[N]=t,_(this,U)[U]=n,_(this,B)[B]=i,_(this,R)[R]=[],_(this,x)[x]=!0,i.on("accountChanged",_(this,Q)[Q],this),_(this,Q)[Q](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:ee});function ne(){let{ready:e}=r.useWallets(),{user:o}=a.usePrivy(),{signMessage:h}=X(),{signTransaction:p}=$(),{signAndSendTransaction:y}=function(){let e=c.useAppConfig(),{isHeadlessSigning:t,openModal:o,privy:h}=i.usePrivyInternal(),{setModalData:p}=s.usePrivyModal(),{signTransaction:y}=$(),f=u.useSolanaRpcClient(),{user:v}=a.usePrivy(),{signWithUserSigner:A}=d.useSignWithUserSigner();return{signAndSendTransaction:async({transaction:a,address:c,chain:d="solana:mainnet",options:w})=>{let E=s.getPrivyWalletWithAddress(v,c);if("privy"!==E?.walletClientType)throw new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let T=s.getIsUnifiedWallet(E);async function b(e){if(w?.sponsor)return await(async e=>{if(!T)throw new i.PrivyClientError("Sponsoring transactions is only supported for wallets on the TEE stack",i.PrivyErrorCode.INVALID_DATA);let t=await n.rpc(h,A,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:u.bufferFrom(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await f(d).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:E.id});if(t.data&&"hash"in t.data)return{signature:l.base58.decode(t.data.hash)};throw Error("Failed to sign and send transaction")})(e);let{signedTransaction:t}=await y({transaction:e,address:c,chain:d,options:{...w,uiOptions:{...w?.uiOptions,showWalletUIs:!1}}}),{signature:s}=await f(d).sendAndConfirmTransaction(t);return{signature:s}}return t({showWalletUIs:w?.uiOptions?.showWalletUIs})?b(a):new Promise((async(t,n)=>{let s,l,{entropyId:u,entropyIdVerifier:h}=r.getEntropyDetailsForUser(v,E);function y(e){return t=>{t instanceof i.PrivyClientError?n(t):n(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let f={account:E,transaction:a,chain:d,signOnly:!1,uiOptions:w?.uiOptions||{},onConfirm:b,onSuccess:t,onFailure:y(i.PrivyErrorCode.TRANSACTION_FAILURE),isSponsored:!!w?.sponsor},A={recoveryMethod:E.recoveryMethod,connectingWalletAddress:E.address,entropyId:u,entropyIdVerifier:h,isUnifiedWallet:T,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:y(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(s=g.prepareSolanaFundingModalData({address:c,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...w,asset:"native-currency",chain:d},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),l={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:d,destinationAddress:c,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),p({connectWallet:A,standardSignAndSendTransaction:f,funding:s,solanaFundingData:l}),o("EmbeddedWalletConnectingScreen")}))}}}(),f=t.useMemo((()=>{let e=[...s.getPrivySolanaHDWallets(o).sort(((e,t)=>(e.walletIndex??0)-(t.walletIndex??0)))],t=s.getImportedPrivySolanaWallets(o);return t.length?[...e,...t]:e}),[o]),v=t.useMemo((()=>({signMessage:async({message:e,address:t,options:n})=>await h({message:e,address:t,options:n}),signTransaction:async({transaction:e,address:t,chain:n,options:i})=>await p({transaction:e,address:t,chain:n,options:i}),async signAndSendTransaction({transaction:e,address:t,chain:n,options:i}){let{signature:s}=await y({transaction:e,address:t,chain:n,options:i});return{signature:s}}})),[h,p,y]);return t.useEffect((()=>{ee?.setImplementation(v)}),[v]),t.useEffect((()=>{var t;!e||(t=te.accounts).length===f.length&&t.every(((e,t)=>e.address===f[t]?.address))||ee?.emit("accountChanged",f)}),[e,f]),{ready:e,wallet:te}}function ie(){let{client:e}=i.usePrivyInternal(),{ready:n,wallet:s}=ne(),[a,r]=t.useState([]),[o,l]=t.useState([]);return t.useEffect((()=>{let e=[s,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let t=a.flatMap((t=>{let n=()=>l([...e]);return t.on("walletsUpdated",n),{connector:t,off:n}})),n=e.map((t=>t.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{n.forEach((e=>e?.())),t.forEach((({connector:e,off:t})=>e.off("walletsUpdated",t)))}}),[a]),t.useEffect((()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let t=()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",t),()=>{e.connectors?.off("connectorInitialized",t)}}),[n,e.connectors]),{ready:n,wallets:o}}exports.SOLANA_CHAINS=y,exports.getAddressFromBuffer=function(t){return e.getBase58Decoder().decode(t)},exports.useSolanaStandardWallets=ie,exports.useWallets=function(){let{ready:e,wallets:i}=ie();return{ready:e,wallets:t.useMemo((()=>i.flatMap((e=>e.accounts.map((t=>new n.ConnectedStandardSolanaWallet({wallet:e,account:t})))))),[i])}};
@@ -6,7 +6,8 @@ import EventEmitter from 'eventemitter3';
6
6
  import { Store, EIP6963ProviderDetail } from 'mipd';
7
7
  import Privy, { Chain, RpcConfig, GenerateAuthorizationSignatureInput, GenerateAuthorizationSignatureOutput } from '@privy-io/js-sdk-core';
8
8
  export { DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, addPrivyRpcToChain, addRpcUrlOverrideToChain } from '@privy-io/js-sdk-core';
9
- import { FirstClassChainType, PasskeyAuthenticateRequestBody, SmartWalletType, CustomOAuthProviderID, User as User$1, OAuthProviderID, CoinbaseOnRampInitInput, CoinbaseOnRampInitResponse, CoinbaseOnRampStatusResponse, TransactionScanningRequestBody, TransactionScanningResponseBody } from '@privy-io/api-types';
9
+ import * as _privy_io_api_types from '@privy-io/api-types';
10
+ import { FirstClassChainType, PasskeyAuthenticateRequestBody, OAuthProviderID, SmartWalletType, CustomOAuthProviderID, User as User$1, CoinbaseOnRampInitInput, CoinbaseOnRampInitResponse, CoinbaseOnRampStatusResponse, TransactionScanningRequestBody, TransactionScanningResponseBody } from '@privy-io/api-types';
10
11
  export { OAuthProviderID as OAuthProviderType } from '@privy-io/api-types';
11
12
  import * as viem from 'viem';
12
13
  import { Address, HttpTransport, Hex, SignableMessage } from 'viem';
@@ -8256,6 +8257,12 @@ declare class ConnectorManager extends EventEmitter<ConnectorManagerEvents> {
8256
8257
  private privyAppName;
8257
8258
  private walletChainType;
8258
8259
  private externalWalletConfig;
8260
+ /**
8261
+ * Promise that resolves when Ethereum WalletConnect initialization completes.
8262
+ * Used to serialize WalletConnect initialization (Ethereum before Solana) to prevent
8263
+ * the "WalletConnect Core already initialized" race condition that causes session loss.
8264
+ */
8265
+ private ethereumWalletConnectInitPromise;
8259
8266
  constructor(privyAppId: string, walletConnectCloudProjectId: string, rpcConfig: RpcConfig, chains: Chain[], defaultChain: Chain, store: Store, walletList: WalletListEntry[], shouldEnforceDefaultChainOnConnect: boolean, externalWalletConfig: AppConfig['externalWallets'], privyAppName: string, setBaseAccountSdk: SetBaseAccountSdkType, walletChainType?: 'ethereum-and-solana' | 'ethereum-only' | 'solana-only', connectorsDebugLogs?: boolean);
8260
8267
  /**
8261
8268
  * The core wallets array that is exposed to developers. It builds
@@ -8286,6 +8293,7 @@ declare class ConnectorManager extends EventEmitter<ConnectorManagerEvents> {
8286
8293
  * Creates a new wallet connector for the given connector type and wallet client type.
8287
8294
  * If a connector already exists, it will be returned instead.
8288
8295
  */
8296
+ private initEthereumWalletConnect;
8289
8297
  createEthereumWalletConnector({ connectorType, walletClientType, providers, walletConfig, }: {
8290
8298
  connectorType: ConnectorType;
8291
8299
  walletClientType: string;
@@ -8427,6 +8435,17 @@ interface PrivyInterface {
8427
8435
  initDataRaw?: string;
8428
8436
  };
8429
8437
  }) => void;
8438
+ /**
8439
+ * For users who are authenticated, prompts the user to link an OAuth account.
8440
+ * Accepts any OAuth provider including built-in providers (e.g. 'google', 'twitter')
8441
+ * and custom OAuth providers (e.g. 'custom:my-provider').
8442
+ * This will directly initiate the OAuth flow for the given provider.
8443
+ *
8444
+ * @param options.provider The OAuth provider to link
8445
+ */
8446
+ linkOAuth: (options: {
8447
+ provider: OAuthProviderID;
8448
+ }) => void;
8430
8449
  /**
8431
8450
  * For users who are authenticated and have already linked an email address, prompts the user to update their email address.
8432
8451
  * This will open the Privy Modal which will guide the user through this action.
@@ -8583,6 +8602,20 @@ interface PrivyInterface {
8583
8602
  * @returns Promise for the {@link User} object after the provided passkey account has been unlinked
8584
8603
  */
8585
8604
  unlinkPasskey: (credentialId: string) => Promise<User>;
8605
+ /**
8606
+ * Unlink an OAuth account from a user, by passing the provider and subject ID.
8607
+ * Accepts any OAuth provider including built-in providers (e.g. 'google', 'twitter')
8608
+ * and custom OAuth providers (e.g. 'custom:my-provider').
8609
+ * Note that you can only unlink an account if the user has at least one other account.
8610
+ *
8611
+ * @param options.provider The OAuth provider to unlink
8612
+ * @param options.subject The provider's subject ID for the account
8613
+ * @returns Promise for the {@link User} object after the account has been unlinked
8614
+ */
8615
+ unlinkOAuth: (options: {
8616
+ provider: OAuthProviderID;
8617
+ subject: string;
8618
+ }) => Promise<User>;
8586
8619
  /**
8587
8620
  * Creates an embedded wallet for the current user.
8588
8621
  *
@@ -10203,6 +10236,7 @@ declare function useRegisterMfaListener(callbacks: PrivyEvents['configureMfa']):
10203
10236
  * @returns linkInstagram - immediately redirects to Instagram login page and prompts the user to link their account
10204
10237
  * @returns linkTelegram - immediately redirects to Telegram login page and prompts the user to link their account
10205
10238
  * @returns linkFarcaster - displays a QR code to sign in with Farcaster and prompts user to link their account
10239
+ * @returns linkOAuth - initiates the OAuth flow for any provider, including custom OAuth providers (e.g. 'custom:my-provider')
10206
10240
  *
10207
10241
  */
10208
10242
  declare function useLinkAccount(callbacks?: PrivyEvents['linkAccount']): {
@@ -10227,6 +10261,9 @@ declare function useLinkAccount(callbacks?: PrivyEvents['linkAccount']): {
10227
10261
  };
10228
10262
  }) => void;
10229
10263
  linkPasskey: () => void;
10264
+ linkOAuth: (options: {
10265
+ provider: _privy_io_api_types.OAuthProviderID;
10266
+ }) => void;
10230
10267
  };
10231
10268
 
10232
10269
  /**
@@ -6,7 +6,8 @@ import EventEmitter from 'eventemitter3';
6
6
  import { Store, EIP6963ProviderDetail } from 'mipd';
7
7
  import Privy, { Chain, RpcConfig, GenerateAuthorizationSignatureInput, GenerateAuthorizationSignatureOutput } from '@privy-io/js-sdk-core';
8
8
  export { DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, addPrivyRpcToChain, addRpcUrlOverrideToChain } from '@privy-io/js-sdk-core';
9
- import { FirstClassChainType, PasskeyAuthenticateRequestBody, SmartWalletType, CustomOAuthProviderID, User as User$1, OAuthProviderID, CoinbaseOnRampInitInput, CoinbaseOnRampInitResponse, CoinbaseOnRampStatusResponse, TransactionScanningRequestBody, TransactionScanningResponseBody } from '@privy-io/api-types';
9
+ import * as _privy_io_api_types from '@privy-io/api-types';
10
+ import { FirstClassChainType, PasskeyAuthenticateRequestBody, OAuthProviderID, SmartWalletType, CustomOAuthProviderID, User as User$1, CoinbaseOnRampInitInput, CoinbaseOnRampInitResponse, CoinbaseOnRampStatusResponse, TransactionScanningRequestBody, TransactionScanningResponseBody } from '@privy-io/api-types';
10
11
  export { OAuthProviderID as OAuthProviderType } from '@privy-io/api-types';
11
12
  import * as viem from 'viem';
12
13
  import { Address, HttpTransport, Hex, SignableMessage } from 'viem';
@@ -8256,6 +8257,12 @@ declare class ConnectorManager extends EventEmitter<ConnectorManagerEvents> {
8256
8257
  private privyAppName;
8257
8258
  private walletChainType;
8258
8259
  private externalWalletConfig;
8260
+ /**
8261
+ * Promise that resolves when Ethereum WalletConnect initialization completes.
8262
+ * Used to serialize WalletConnect initialization (Ethereum before Solana) to prevent
8263
+ * the "WalletConnect Core already initialized" race condition that causes session loss.
8264
+ */
8265
+ private ethereumWalletConnectInitPromise;
8259
8266
  constructor(privyAppId: string, walletConnectCloudProjectId: string, rpcConfig: RpcConfig, chains: Chain[], defaultChain: Chain, store: Store, walletList: WalletListEntry[], shouldEnforceDefaultChainOnConnect: boolean, externalWalletConfig: AppConfig['externalWallets'], privyAppName: string, setBaseAccountSdk: SetBaseAccountSdkType, walletChainType?: 'ethereum-and-solana' | 'ethereum-only' | 'solana-only', connectorsDebugLogs?: boolean);
8260
8267
  /**
8261
8268
  * The core wallets array that is exposed to developers. It builds
@@ -8286,6 +8293,7 @@ declare class ConnectorManager extends EventEmitter<ConnectorManagerEvents> {
8286
8293
  * Creates a new wallet connector for the given connector type and wallet client type.
8287
8294
  * If a connector already exists, it will be returned instead.
8288
8295
  */
8296
+ private initEthereumWalletConnect;
8289
8297
  createEthereumWalletConnector({ connectorType, walletClientType, providers, walletConfig, }: {
8290
8298
  connectorType: ConnectorType;
8291
8299
  walletClientType: string;
@@ -8427,6 +8435,17 @@ interface PrivyInterface {
8427
8435
  initDataRaw?: string;
8428
8436
  };
8429
8437
  }) => void;
8438
+ /**
8439
+ * For users who are authenticated, prompts the user to link an OAuth account.
8440
+ * Accepts any OAuth provider including built-in providers (e.g. 'google', 'twitter')
8441
+ * and custom OAuth providers (e.g. 'custom:my-provider').
8442
+ * This will directly initiate the OAuth flow for the given provider.
8443
+ *
8444
+ * @param options.provider The OAuth provider to link
8445
+ */
8446
+ linkOAuth: (options: {
8447
+ provider: OAuthProviderID;
8448
+ }) => void;
8430
8449
  /**
8431
8450
  * For users who are authenticated and have already linked an email address, prompts the user to update their email address.
8432
8451
  * This will open the Privy Modal which will guide the user through this action.
@@ -8583,6 +8602,20 @@ interface PrivyInterface {
8583
8602
  * @returns Promise for the {@link User} object after the provided passkey account has been unlinked
8584
8603
  */
8585
8604
  unlinkPasskey: (credentialId: string) => Promise<User>;
8605
+ /**
8606
+ * Unlink an OAuth account from a user, by passing the provider and subject ID.
8607
+ * Accepts any OAuth provider including built-in providers (e.g. 'google', 'twitter')
8608
+ * and custom OAuth providers (e.g. 'custom:my-provider').
8609
+ * Note that you can only unlink an account if the user has at least one other account.
8610
+ *
8611
+ * @param options.provider The OAuth provider to unlink
8612
+ * @param options.subject The provider's subject ID for the account
8613
+ * @returns Promise for the {@link User} object after the account has been unlinked
8614
+ */
8615
+ unlinkOAuth: (options: {
8616
+ provider: OAuthProviderID;
8617
+ subject: string;
8618
+ }) => Promise<User>;
8586
8619
  /**
8587
8620
  * Creates an embedded wallet for the current user.
8588
8621
  *
@@ -10203,6 +10236,7 @@ declare function useRegisterMfaListener(callbacks: PrivyEvents['configureMfa']):
10203
10236
  * @returns linkInstagram - immediately redirects to Instagram login page and prompts the user to link their account
10204
10237
  * @returns linkTelegram - immediately redirects to Telegram login page and prompts the user to link their account
10205
10238
  * @returns linkFarcaster - displays a QR code to sign in with Farcaster and prompts user to link their account
10239
+ * @returns linkOAuth - initiates the OAuth flow for any provider, including custom OAuth providers (e.g. 'custom:my-provider')
10206
10240
  *
10207
10241
  */
10208
10242
  declare function useLinkAccount(callbacks?: PrivyEvents['linkAccount']): {
@@ -10227,6 +10261,9 @@ declare function useLinkAccount(callbacks?: PrivyEvents['linkAccount']): {
10227
10261
  };
10228
10262
  }) => void;
10229
10263
  linkPasskey: () => void;
10264
+ linkOAuth: (options: {
10265
+ provider: _privy_io_api_types.OAuthProviderID;
10266
+ }) => void;
10230
10267
  };
10231
10268
 
10232
10269
  /**
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{HelpCircle as o}from"lucide-react";import{u as e}from"./context-CTvHGnoI.mjs";import{u as i}from"./internal-context-Z-fyxadS.mjs";import{a as r}from"./privy-context-DjQaHYWB.mjs";import{S as a}from"./ScreenLayout-C5tqY0au.mjs";import"react";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./ModalHeader-B3hf8Gf5.mjs";import"styled-components";import"./useActiveWallet-jEsJB3LX.mjs";import"zustand";import"react-device-detect";import"./use-export-wallet-DQk47ipd.mjs";import"./useWallets-DoJmA9i9.mjs";import"viem";import"eventemitter3";import"viem/utils";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-C-LEnZLL.mjs";import"./index-Dq_xe9dz.mjs";const n=({title:e="Account not found",subtitle:i,appName:r="this app",ctaText:n="Try logging in again",onRetry:m})=>/*#__PURE__*/t(a,{title:e,subtitle:i||`Please try logging in again or go to ${r} to create an account.`,icon:o,iconVariant:"warning",primaryCta:{label:n,onClick:m},watermark:!0}),m={component:()=>{let{navigate:o,setModalData:a,data:m}=r(),c=e(),{getAuthMeta:p,client:s}=i();/*#__PURE__*/return t(n,{appName:c?.name,onRetry:()=>{let t=p();a({...m,login:{...m?.login,...t?.disableSignup?{disableSignup:!0}:{}}}),s?.authFlow&&(s.authFlow=void 0),o("LandingScreen")}})}};export{m as AccountNotFoundScreen,n as AccountNotFoundScreenView,m as default};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import{Check as i,Copy as t}from"lucide-react";import{useState as n,useEffect as l}from"react";import{styled as s}from"styled-components";import{v as a}from"./use-export-wallet-Bd5Sg5V-.mjs";import{S as c}from"./ModalHeader-DfHxv9fE.mjs";const p=({address:s,showCopyIcon:p,url:h,className:u})=>{let[g,x]=n(!1);function y(e){e.stopPropagation(),navigator.clipboard.writeText(s).then((()=>x(!0))).catch(console.error)}return l((()=>{if(g){let e=setTimeout((()=>x(!1)),3e3);return()=>clearTimeout(e)}}),[g]),/*#__PURE__*/e(d,h?{children:[/*#__PURE__*/r(f,{title:s,className:u,href:`${h}/address/${s}`,target:"_blank",children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(i,{size:16})]}:{children:["Copy",/*#__PURE__*/r(t,{size:16})]})})]}:{children:[/*#__PURE__*/r(m,{title:s,className:u,children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem",fontSize:"14px"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(i,{size:14})]}:{children:["Copy",/*#__PURE__*/r(t,{size:14})]})})]})};let d=s.span`
1
+ import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import{Check as i,Copy as t}from"lucide-react";import{useState as n,useEffect as l}from"react";import{styled as s}from"styled-components";import{v as a}from"./use-export-wallet-DQk47ipd.mjs";import{S as c}from"./ModalHeader-B3hf8Gf5.mjs";const p=({address:s,showCopyIcon:p,url:h,className:u})=>{let[g,x]=n(!1);function y(e){e.stopPropagation(),navigator.clipboard.writeText(s).then((()=>x(!0))).catch(console.error)}return l((()=>{if(g){let e=setTimeout((()=>x(!1)),3e3);return()=>clearTimeout(e)}}),[g]),/*#__PURE__*/e(d,h?{children:[/*#__PURE__*/r(f,{title:s,className:u,href:`${h}/address/${s}`,target:"_blank",children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(i,{size:16})]}:{children:["Copy",/*#__PURE__*/r(t,{size:16})]})})]}:{children:[/*#__PURE__*/r(m,{title:s,className:u,children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem",fontSize:"14px"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(i,{size:14})]}:{children:["Copy",/*#__PURE__*/r(t,{size:14})]})})]})};let d=s.span`
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  gap: 0.5rem;
@@ -0,0 +1,6 @@
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{FileCheck as r,ExternalLink as o}from"lucide-react";import"react";import{styled as i}from"styled-components";import{a as s}from"./ModalHeader-B3hf8Gf5.mjs";import{u as a}from"./context-CTvHGnoI.mjs";import{u as n}from"./internal-context-Z-fyxadS.mjs";import{u as m,a as l}from"./privy-context-DjQaHYWB.mjs";import{s as c}from"./shouldProceedtoEmbeddedWalletCreationFlow-B2ygR6ax.mjs";import{S as p}from"./ScreenLayout-C5tqY0au.mjs";import"./useActiveWallet-jEsJB3LX.mjs";import"zustand";import"react-device-detect";import"./use-export-wallet-DQk47ipd.mjs";import"./useWallets-DoJmA9i9.mjs";import"viem";import"@privy-io/js-sdk-core";import"eventemitter3";import"viem/utils";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./index-ldG7uF5Z.mjs";import"uuid";import"jose";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";import"mipd";import"@privy-io/popup";import"./paths-3HW55qZg.mjs";import"./usePrivy-MdJeWwyN.mjs";import"@scure/base";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"@privy-io/urls";import"./PrivyPluginContext-2QN2dVUw.mjs";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"js-cookie";import"./frame-uzTmvtww.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"./Screen-C-LEnZLL.mjs";import"./index-Dq_xe9dz.mjs";const d={component:()=>{let{user:t,logout:r}=m(),{onUserCloseViaDialogOrKeybindRef:o,setModalData:i,navigate:s}=l(),p=a(),{acceptTerms:d,closePrivyModal:y,createAnalyticsEvent:v}=n(),h=e=>{e?.preventDefault(),y({shouldCallAuthOnSuccess:!1}),r()};o.current=h;/*#__PURE__*/return e(u,{termsAndConditionsUrl:p?.legal.termsAndConditionsUrl,privacyPolicyUrl:p?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await d(),t&&c(t,p.embeddedWallets)?(i({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),v({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AffirmativeConsentScreen"}}),r()},callAuthOnSuccessOnClose:!0}}),s("EmbeddedWalletOnAccountCreateScreen")):y()},onDecline:h})}},u=({termsAndConditionsUrl:i,privacyPolicyUrl:a,onAccept:n,onDecline:m,title:l="One last step",subtitle:c="By signing up, you agree to our terms and privacy policy."})=>/*#__PURE__*/e(p,{title:l,subtitle:c,icon:r,primaryCta:{label:"Accept",onClick:n},secondaryCta:{label:"No thanks",onClick:m},watermark:!0,children:(i||a)&&/*#__PURE__*/t(y,{children:[i&&/*#__PURE__*/t(s,{variant:"muted",href:i,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Terms",/*#__PURE__*/e(o,{width:16,height:16,strokeWidth:2.25})]}),a&&/*#__PURE__*/t(s,{variant:"muted",href:a,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Privacy Policy",/*#__PURE__*/e(o,{width:16,height:16,strokeWidth:2.25})]})]})});let y=i.div`
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 12px;
5
+ margin-top: var(--screen-space);
6
+ `;export{d as AffirmativeConsentScreen,u as AffirmativeConsentScreenView,d as default};
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{Lock as o}from"lucide-react";import"react";import{u as e}from"./context-CTvHGnoI.mjs";import{a as i}from"./privy-context-DjQaHYWB.mjs";import{S as r}from"./ScreenLayout-C5tqY0au.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"@privy-io/are-addresses-equal";import"./internal-context-Z-fyxadS.mjs";import"ofetch";import"./ModalHeader-B3hf8Gf5.mjs";import"styled-components";import"./useActiveWallet-jEsJB3LX.mjs";import"zustand";import"react-device-detect";import"./use-export-wallet-DQk47ipd.mjs";import"./useWallets-DoJmA9i9.mjs";import"viem";import"eventemitter3";import"viem/utils";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-C-LEnZLL.mjs";import"./index-Dq_xe9dz.mjs";const a=({title:e="You don't have access to this app",subtitle:i="Have you been invited?",ctaText:a="Try another account",ctaLink:n,onCtaClick:m})=>/*#__PURE__*/t(r,{title:e,subtitle:i,icon:o,iconVariant:"warning",primaryCta:{label:a,onClick:()=>{n?window.open(n,"_blank"):m?.()}},watermark:!0}),n={component:()=>{let{navigate:o}=i(),r=e(),n=r?.allowlistConfig.errorTitle||"You don't have access to this app",m=r?.allowlistConfig.errorDetail||"Have you been invited?",c=r?.allowlistConfig.errorCtaText||"Try another account",s=r?.allowlistConfig.errorCtaLink;/*#__PURE__*/return t(a,{title:n,subtitle:m,ctaText:c,ctaLink:s??void 0,onCtaClick:()=>{o("LandingScreen")}})}};export{n as AllowlistRejectionScreen,a as AllowlistRejectionScreenView,n as default};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{useRef as t,useCallback as o}from"react";import{u as r}from"./context-CTvHGnoI.mjs";import{u as n,c as a,b as i}from"./internal-context-Z-fyxadS.mjs";import{a as l}from"./events-context-CI0iqAXA.mjs";import{a as c}from"./privy-context-DjQaHYWB.mjs";import{i as s}from"./ConnectWalletView-DxWxjOjC.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"react-device-detect";import"styled-components";import"./ModalHeader-B3hf8Gf5.mjs";import"./useActiveWallet-jEsJB3LX.mjs";import"zustand";import"./use-export-wallet-DQk47ipd.mjs";import"./useWallets-DoJmA9i9.mjs";import"viem";import"eventemitter3";import"viem/utils";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./CopyableText-BCytXyJL.mjs";import"lucide-react";import"./Link-DJ5gq9Di.mjs";import"./QrCode-DXutpDmP.mjs";import"qrcode";import"./EmailInputForm-Dgoii4vf.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./useI18n-BWVpc1Y-.mjs";import"./WalletCards-DH1rqayz.mjs";import"./Screen-C-LEnZLL.mjs";import"./index-Dq_xe9dz.mjs";const m={component:()=>{let{setWalletConnectionStatus:m,closePrivyModal:p,inProgressAuthFlowRef:u}=n(),{data:d,navigate:C}=c(),W=r(),j=l(),x=d?.externalConnectWallet?.description,E=t(d?.externalConnectWallet?.walletList??W.appearance.walletList),w=t(d?.externalConnectWallet?.walletChainType??W.appearance.walletChainType),v=E.current,f=w.current,h="link"===u.current?void 0:()=>C("LandingScreen");/*#__PURE__*/return e(s,{walletList:v,walletChainType:f,onClose:p,onConnect:o((({connector:e,wallet:t})=>{j("connectWallet","onSuccess",{wallet:t}),m({status:"connected",connectedWallet:t,connector:e,connectError:null,connectRetry:()=>null}),C("ConnectionStatusScreen",!d?.externalConnectWallet?.preSelectedWalletId)}),[m,C,d?.login?.disableSignup,d?.externalConnectWallet?.preSelectedWalletId]),onConnectError:e=>{e instanceof a?(console.warn(e.cause?e.cause:e.message),j("connectWallet","onError",e.privyErrorCode||i.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),j("connectWallet","onError",i.UNKNOWN_CONNECT_WALLET_ERROR))},onBack:h,customDescription:x||"",preSelectedWalletId:d?.externalConnectWallet?.preSelectedWalletId,app:W})},isUnauthenticatedScreem:!0};export{m as AuthenticateWithWalletScreen,m as default};
@@ -0,0 +1,2 @@
1
+ import{jsxs as e,Fragment as t,jsx as i}from"react/jsx-runtime";import a from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as r,useEffect as n}from"react";import{createWalletClient as o,custom as s,publicActions as d,createPublicClient as c,http as m,formatUnits as l}from"viem";import{addToDefaultChains as u}from"@privy-io/js-sdk-core";import{b as p,c as h,R as g}from"./Layouts-BlFm53ED.mjs";import{B as f}from"./ModalHeader-B3hf8Gf5.mjs";import{C as v}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as j}from"./FundWalletMethodHeader-BZ3UxTwI.mjs";import{N as y}from"./index-Dq_xe9dz.mjs";import{u as I,t as w}from"./context-CTvHGnoI.mjs";import{u as T,a as b,b as C}from"./internal-context-Z-fyxadS.mjs";import{z as S}from"./useActiveWallet-jEsJB3LX.mjs";import{a as x}from"./privy-context-DjQaHYWB.mjs";import{u as N}from"./useGetTokenPrice-CAeZUPHp.mjs";import{u as E,b as k}from"./useWallets-DoJmA9i9.mjs";import{O as A}from"./analytics-mkkvFRju.mjs";import{g as F,t as B,a as L,b as U,c as P,u as M}from"./reservoir-0wfhnc0j.mjs";import{x as W}from"./index-ldG7uF5Z.mjs";import{g as H}from"./getChainName-DjpPdUSc.mjs";import{g as O,a as R}from"./transaction-CnfuREWo.mjs";import{g as q,B as D}from"./BridgeNetworkSelectionView-BpGLl4Km.mjs";import{v as $}from"./use-export-wallet-DQk47ipd.mjs";import{T as _}from"./TransferOrBridgeLoadingScreen-CrM8LyTn.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"viem/utils";import"@privy-io/are-addresses-equal";import"./useGetSolPrice-DwwjjGbd.mjs";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";import"mipd";import"@privy-io/popup";import"./paths-3HW55qZg.mjs";import"./usePrivy-MdJeWwyN.mjs";import"@scure/base";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"@privy-io/urls";import"./PrivyPluginContext-2QN2dVUw.mjs";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"js-cookie";import"./frame-uzTmvtww.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"./getFormattedUsdFromLamports-B6EqSEho.mjs";import"./getErc20Balance-BTMqTvue.mjs";import"./Row-C9vrS4Zi.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Subtitle-CV-2yKE4.mjs";import"./Title-BnzYV3Is.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./Chip-D2-wZOHJ.mjs";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"./shared-FM0rljBt.mjs";import"@heroicons/react/24/outline/ChevronDownIcon";import"./formatErc20TokenAmount-BuPk9xcy.mjs";import"./ethers-D_pXdGwy.mjs";import"./styles-DNw1LY6I.mjs";import"./LinkPasskeyScreen-DHCCysKA.mjs";import"lucide-react";import"./TodoList-CgrU7uwu.mjs";import"./ScreenLayout-C5tqY0au.mjs";import"./Screen-C-LEnZLL.mjs";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"./Address-CPCEzwZf.mjs";const V={component:()=>{let V=I(),{rpcConfig:z,appId:G,closePrivyModal:Q,createAnalyticsEvent:K}=T(),{navigate:X,setModalData:Y,data:J}=x(),Z=I(),{wallets:ee}=E(),[te,ie]=r(null),[ae,re]=r(null),[ne,oe]=r([]),[se,de]=r(0),[ce,me]=r(!1),[le,ue]=r(!1),[pe,he]=r(!1),[ge,fe]=r(!1),[ve,je]=r(),[ye,Ie]=r();if(!J?.funding||"solana"!==J.funding.chainType)throw Error("Invalid funding data");let{address:we,chain:Te,connectedWallet:be}=J.funding,[Ce,Se]=r(J.funding.amount),xe=("ethereum"===be?.type?be:void 0)??ee[0],Ne=S(xe?.walletClientType||"unknown"),Ee=Ne?.name||"wallet",[ke,Ae]=r(null);n((()=>{(async()=>{if(!xe)return;let e=await xe.getEthereumProvider();Ae(o({account:xe.address,transport:s(e)}).extend(d))})().catch(console.error)}),[xe]);let[Fe,Be]=r(0n),Le=O(Fe);n((()=>{let e=V.solanaRpcs[Te];e?W({rpc:e.rpc,address:we}).then((e=>Be(BigInt(e)))).catch(console.error):console.warn("Unable to load solana rpc, skipping balance")}),[]);let[Ue,Pe]=r(),{tokenPrice:Me}=N("solana"),{fundingAmountInBaseUnit:We,fundingAmountInUsd:He}=R({amount:Ce,fee:0n,tokenPrice:Me,isUsdc:J.funding.isUSDC});if(n((()=>{(async()=>{if(!ke||!xe)return;let e=["solana:testnet","solana:devnet"].includes(Te);e&&console.warn("Solana testnets are not supported for bridging");let t=u(Z.chains).filter((({testnet:t})=>!!t===e)),i=(await q({chains:t,address:xe.address,appId:G,rpcConfig:z})).filter((e=>e.balance>0n));if(i.length<1)return void ie(new b(`Wallet ${$(xe.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));i.sort(((e,t)=>Number(t.balance-e.balance)));let a=(await Promise.allSettled(i.map((async e=>({...e,quote:await F({isTestnet:!1,input:B({appId:G,amount:We.toString(),user:xe.address,recipient:we,destinationChainId:U,destinationCurrency:L,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(a.length<1)return void ie(new b(`Unable to fetch quotes for bridging. Wallet ${$(xe.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));let r=a.map((({quote:e,balance:t,chain:i})=>({bridgeTx:P(e),balance:t,chain:i,isErc20Quote:!1}))).filter((({bridgeTx:e})=>!!e));if(r.length>1)return void oe(r);let n=r.at(0);n?(ue(!0),Pe({data:n.bridgeTx.data,to:n.bridgeTx.to,value:n.bridgeTx.value,chain:n.chain})):ie(new b(`Unable to select bridge option from quotes. Wallet ${$(xe.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ke]),n((()=>{(async()=>{let e,t;if(!ke||!xe||ce||pe||!Ue)return;me(!0);let i=c({chain:Ue.chain,transport:m(k(Ue.chain,z,G))});try{e=await i.prepareTransactionRequest({account:xe.address,to:Ue.to,chain:Ue.chain,data:Ue.data,value:BigInt(Ue.value??0)})}catch(e){console.error(e),ne.length>1&&re(e.shortMessage??"Something went wrong")}if(e){me(!1),he(!0);try{await ke.switchChain({id:Ue.chain.id})}catch(e){await ke.addChain({chain:Ue.chain}),await ke.switchChain({id:Ue.chain.id})}try{t=await ke.sendTransaction(e)}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(ne.length<1?ie(new b(e.shortMessage,void 0,C.TRANSACTION_FAILURE)):re(e.shortMessage??"Something went wrong"))}if(t)return await ke.waitForTransactionReceipt({hash:t}),le?(Ie("pending"),void je(t)):(he(!1),fe(!0),void K({eventName:A,payload:{provider:"external",status:"success",txHash:t,address:xe.address,chainId:Ue.chain.id,chainType:"ethereum",value:Ue.value?l(BigInt(Ue.value),18):void 0,token:"ETH",destination:we,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:l(We,9),destinationToken:"SOL"}}));he(!1)}else me(!1)})().catch(console.error)}),[ke,Ue]),M({transactionHash:ve,isTestnet:!1,bridgingStatus:ye,setBridgingStatus:Ie,onSuccess({transactionHash:e}){ue(!1),fe(!0),K({eventName:A,payload:{provider:"external",status:"success",txHash:e,address:xe?.address,chainId:Ue?.chain.id,chainType:"ethereum",value:Ue?.value?l(BigInt(Ue.value),18):void 0,token:"ETH",destination:we,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:l(We,9),destinationToken:"SOL"}})},onFailure({error:e}){ue(!1),ie(e)}}),n((()=>{te&&(Y({funding:J?.funding,solanaFundingData:J?.solanaFundingData,sendTransaction:J?.sendTransaction,errorModalData:{error:te,previousScreen:"TransferFromWalletScreen"}}),X("ErrorScreen",!1))}),[te]),n((()=>{if(!ge)return;let e=setTimeout(Q,w);return()=>clearTimeout(e)}),[ge]),ge/*#__PURE__*/)return e(t,{children:[/*#__PURE__*/i(j,{}),/*#__PURE__*/i(p,{}),/*#__PURE__*/e(h,{children:[/*#__PURE__*/i(a,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/i(v,{title:"Success!",description:`You’ve successfully added ${Ce} SOL to your ${Z.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/i(g,{}),/*#__PURE__*/i(f,{})]});let Oe=ne[se];return ne.length>1&&Oe?/*#__PURE__*/i(D,{displayName:Ee,configuredFundingChain:Te,formattedBalance:Le,fundingAmount:Ce,fundingCurrency:"SOL",fundingAmountInUsd:He,options:ne,selectedOption:Oe,isPreparing:ce,isSubmitting:pe,addressToFund:we,fundingWalletAddress:xe?.address||"",errorMessage:ae,onSubmit:()=>{J.funding?.amount!==Ce?async function(){if(xe&&Oe)try{let e=await F({isTestnet:!1,input:B({appId:G,amount:We.toString(),user:xe.address,recipient:we,destinationChainId:U,destinationCurrency:L,originChainId:Oe.chain.id})}),t=P(e);if(!t)throw Error("Invalid transaction request");ue(!0),Pe({data:t.data,to:t.to,value:t.value,chain:Oe.chain})}catch(e){console.error(e),ie(new b("Unable to fetch quotes for bridging",e,C.INSUFFICIENT_BALANCE))}}().catch(console.error):Pe({to:Oe.bridgeTx.to,data:Oe.bridgeTx.data,value:Oe.bridgeTx.value,chain:Oe.chain})},onSelect:e=>{e!==se&&(re(null),de(e))},onAmountChange:Se}):pe&&xe?/*#__PURE__*/i(_,{walletClientType:xe?.walletClientType||"unknown",displayName:Ee,addressToFund:we,isBridging:le,isErc20Flow:!1,chainId:"solana",chainName:H(Te),totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
+ /*#__PURE__*/e(t,{children:[/*#__PURE__*/i(j,{}),/*#__PURE__*/i(y,{}),/*#__PURE__*/i("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/i(f,{})]})}};export{V as AwaitingEvmToSolBridgingScreen,V as default};
@@ -0,0 +1,2 @@
1
+ import{jsxs as e,Fragment as t,jsx as r}from"react/jsx-runtime";import a from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as n}from"react";import{parseEther as o,createWalletClient as s,custom as d,publicActions as c,createPublicClient as l,http as m,encodeFunctionData as u,formatUnits as p}from"viem";import{addToDefaultChains as h}from"@privy-io/js-sdk-core";import{b as f,c as g,R as v}from"./Layouts-BlFm53ED.mjs";import{B as y}from"./ModalHeader-B3hf8Gf5.mjs";import{C}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as I}from"./FundWalletMethodHeader-BZ3UxTwI.mjs";import{N as w}from"./index-Dq_xe9dz.mjs";import{u as T,t as j}from"./context-CTvHGnoI.mjs";import{u as b,a as E,b as S}from"./internal-context-Z-fyxadS.mjs";import{z as N}from"./useActiveWallet-jEsJB3LX.mjs";import{a as A}from"./privy-context-DjQaHYWB.mjs";import{u as x}from"./useGetTokenPrice-CAeZUPHp.mjs";import{u as k,b as F}from"./useWallets-DoJmA9i9.mjs";import{E as B,a as P}from"./transfer-6YztDh-t.mjs";import{f as M}from"./formatErc20TokenAmount-BuPk9xcy.mjs";import{c as U,a as W,g as L,s as H}from"./ethers-D_pXdGwy.mjs";import{O as $}from"./analytics-mkkvFRju.mjs";import{t as q,g as D,c as R,u as _}from"./reservoir-0wfhnc0j.mjs";import{y as O}from"./index-ldG7uF5Z.mjs";import{g as Q,B as V}from"./BridgeNetworkSelectionView-BpGLl4Km.mjs";import{g as z}from"./getErc20Balance-BTMqTvue.mjs";import{v as G}from"./use-export-wallet-DQk47ipd.mjs";import{T as K}from"./TransferOrBridgeLoadingScreen-CrM8LyTn.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"viem/utils";import"@privy-io/are-addresses-equal";import"./useGetSolPrice-DwwjjGbd.mjs";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";import"mipd";import"@privy-io/popup";import"./paths-3HW55qZg.mjs";import"./usePrivy-MdJeWwyN.mjs";import"@scure/base";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"@privy-io/urls";import"./PrivyPluginContext-2QN2dVUw.mjs";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"js-cookie";import"./frame-uzTmvtww.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"./Row-C9vrS4Zi.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Subtitle-CV-2yKE4.mjs";import"./Title-BnzYV3Is.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./getChainName-DjpPdUSc.mjs";import"./Chip-D2-wZOHJ.mjs";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"./shared-FM0rljBt.mjs";import"@heroicons/react/24/outline/ChevronDownIcon";import"./styles-DNw1LY6I.mjs";import"./LinkPasskeyScreen-DHCCysKA.mjs";import"lucide-react";import"./TodoList-CgrU7uwu.mjs";import"./ScreenLayout-C5tqY0au.mjs";import"./Screen-C-LEnZLL.mjs";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"./Address-CPCEzwZf.mjs";const X={component:()=>{let{rpcConfig:X,appId:Y,closePrivyModal:Z,createAnalyticsEvent:J}=b(),{navigate:ee,setModalData:te,data:re}=A(),ae=T(),{wallets:ie}=k(),[ne,oe]=i(!1),[se,de]=i(0n),[ce,le]=i(!1),[me,ue]=i(null),[pe,he]=i(null),[fe,ge]=i([]),[ve,ye]=i(0),[Ce,Ie]=i(!1),[we,Te]=i(!1),[je,be]=i(!1),[Ee,Se]=i(!1),[Ne,Ae]=i(),[xe,ke]=i();if(!re?.funding||"ethereum"!==re.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:Fe,chain:Be,connectedWallet:Pe}=re.funding,Me=re.funding.address,Ue=re.funding.erc20Address,[We,Le]=i(re.funding.amount);n((()=>{Ue&&!Fe&&ue(Error("Unable to fetch token details"))}),[]);let He=!!Ue&&!!Fe,$e=He?BigInt(parseFloat(We)*10**Fe.decimals):o(We),qe=("ethereum"===Pe?.type?Pe:void 0)??ie[0],De=N(qe?.walletClientType||"unknown"),Re=De?.name||"wallet",[_e,Oe]=i(null);n((()=>{(async()=>{if(!qe)return;let e=await qe.getEthereumProvider();Oe(s({account:qe.address,transport:d(e)}).extend(c))})().catch(console.error)}),[qe]);let[Qe,Ve]=i(0n);n((()=>{l({chain:Be,transport:m(F(Be,X,Y))}).getBalance({address:Me}).then(Ve).catch(console.error)}),[]);let[ze,Ge]=i(0n);n((()=>{He&&z({chain:Be,address:Me,appId:Y,rpcConfig:X,erc20Address:Ue}).then((e=>Ge(e.balance))).catch(console.error)}),[]);let{tokenPrice:Ke}=x(Be.id),[Xe,Ye]=i({to:Me,chain:Be,value:$e,data:void 0});n((()=>{(async()=>{let e,t;if(!_e||!qe||Ce||je)return;Ie(!0);let r=l({chain:Xe.chain,transport:m(F(Xe.chain,X,Y))});if(He&&!Xe.data)return await r.simulateContract({address:Ue,chain:Xe.chain,abi:B,functionName:"transfer",args:[Me,$e],account:qe.address}).catch((e=>{if("ContractFunctionZeroDataError"===e?.cause?.name||e?.message?.includes("returned no data"))return r.simulateContract({address:Ue,chain:Xe.chain,abi:P,functionName:"transfer",args:[Me,$e],account:qe.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)}))?(Ie(!1),void Ye({to:Ue,chain:Xe.chain,data:u({abi:B,functionName:"transfer",args:[Me,$e]}),value:"0x0"})):(Ie(!1),void le(!0));try{e=await r.prepareTransactionRequest({account:qe.address,to:Xe.to,chain:Xe.chain,data:Xe.data,value:BigInt(Xe.value??0)})}catch(e){if(console.error(e),fe.length>1)he(e.shortMessage??"Something went wrong");else if(we&&0===fe.length)return void ue(new E(`Wallet ${G(qe.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE))}if(!e)return Ie(!1),void le(!0);Ie(!1),be(!0),oe(!0),de(e.gas);try{await _e.switchChain({id:Xe.chain.id})}catch(e){await _e.addChain({chain:Xe.chain}),await _e.switchChain({id:Xe.chain.id})}try{t=await _e.sendTransaction(e)}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(fe.length<1){let t=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(t="User rejected the request."),ue(new E(t,void 0,S.TRANSACTION_FAILURE))}else he(e.shortMessage??"Something went wrong")}if(t)return await _e.waitForTransactionReceipt({hash:t}),be(!1),we?(Ae(t),void ke("pending")):(Se(!0),te(O(re,"completed",t,qe?.walletClientType,He,Fe,Be)),void J({eventName:$,payload:{provider:"external",status:"success",txHash:t,address:qe.address,chainId:Xe.chain.id,chainType:"ethereum",value:Xe.value?p(BigInt(Xe.value),Fe?.decimals??18):void 0,token:Fe?.symbol??Ue??"ETH",destinationAddress:Me,destinationChainId:Be.id,destinationChainType:"ethereum",destinationValue:$e?p($e,Fe?.decimals??18):void 0,destinationToken:Fe?.symbol??Ue??Be.nativeCurrency.name}}));be(!1)})().catch(console.error)}),[_e,Xe]),n((()=>{(async()=>{if(!ce||!_e||!qe)return;let e=h(ae.chains).filter((e=>e.id!==Be.id&&!!e.testnet==!!Be.testnet));He&&e.unshift(Be);let t=await Q({chains:e,address:qe.address,appId:Y,rpcConfig:X,includeUsdc:re.funding?.isUSDC}),r=He?t.filter((e=>e.balance>0n)):t.filter((e=>e.balance>$e)),a=He&&t.every((e=>0n===e.balance));if(r.length<1)return void ue(new E(a?`Wallet ${G(qe.address)} doesn't have enough funds to cover gas fees. Top up your wallet and try again.`:`Wallet ${G(qe.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));r.sort(((e,t)=>Number(He?(t.erc20Balance??0n)-(e.erc20Balance??0n):t.balance-e.balance)));let i=r.flatMap((e=>{let t=[{...e,isErc20Quote:!1,isTestnet:!!Be.testnet,input:q({appId:Y,amount:$e.toString(),user:qe.address,recipient:Me,destinationChainId:Be.id,destinationCurrency:Ue,originChainId:e.chain.id})}];return He&&Ue&&(e.erc20Balance??0n)>=$e&&t.push({...e,isErc20Quote:!0,isTestnet:!!Be.testnet,input:q({appId:Y,amount:$e.toString(),user:qe.address,recipient:Me,destinationChainId:Be.id,destinationCurrency:Ue,originChainId:e.chain.id,originCurrency:e.erc20Address})}),t})),n=(await Promise.allSettled(i.map((async e=>({...e,quote:await D(e)}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(n.length<1)return void ue(new E(`Wallet ${G(qe.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));let o=n.map((e=>({bridgeTx:R(e.quote),balance:e.balance,chain:e.chain,erc20Balance:e.erc20Balance,isErc20Quote:e.isErc20Quote}))).filter((e=>!!e.bridgeTx));if(o.length>1)return void ge(o);let s=o[0];s?(Te(!0),Ye({data:s.bridgeTx.data,to:s.bridgeTx.to,value:s.bridgeTx.value,chain:s.chain})):ue(new E(`Wallet ${G(qe.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ce]),_({transactionHash:Ne,isTestnet:!!Be.testnet,bridgingStatus:xe,setBridgingStatus:ke,onSuccess({transactionHash:e}){Te(!1),Se(!0),te(O(re,"completed",e,qe?.walletClientType,He,Fe,Be)),J({eventName:$,payload:{provider:"external",status:"success",txHash:e,address:qe?.address,chainId:Xe.chain.id,chainType:"ethereum",value:Xe.value?p(BigInt(Xe.value),Fe?.decimals??18):void 0,token:Fe?.symbol??Ue??"ETH",destinationAddress:Me,destinationChainId:Be.id,destinationChainType:"ethereum",destinationValue:$e?p($e,Fe?.decimals??18):void 0,destinationToken:Fe?.symbol??Ue??Be.nativeCurrency.name}})},onFailure({error:e}){Te(!1),ue(e)}}),n((()=>{me&&(te({funding:re?.funding,solanaFundingData:re?.solanaFundingData,sendTransaction:re?.sendTransaction,errorModalData:{error:me,previousScreen:"TransferFromWalletScreen"}}),ee("ErrorScreen",!1))}),[me]);let Ze=!He&&Ke?U(We??"0",Ke):void 0,Je=He?se:H([se,$e]),et=Je&&Ke?W(Je,Ke):void 0,tt=Je?L(Je,re?.funding?.erc20Address?re?.funding?.erc20ContractInfo?.symbol||"ETH":re?.funding?.chain.nativeCurrency.symbol||"ETH"):void 0,rt=se&&Ke?W(se,Ke):void 0,at=se?L(se,Be?.nativeCurrency?.symbol||"ETH"):void 0;if(n((()=>{if(!Ee)return;let e=setTimeout(Z,j);return()=>clearTimeout(e)}),[Ee]),Ee/*#__PURE__*/)return e(t,{children:[/*#__PURE__*/r(I,{}),/*#__PURE__*/r(f,{}),/*#__PURE__*/e(g,{children:[/*#__PURE__*/r(a,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/r(C,{title:"Success!",description:`You’ve successfully added ${We} ${He?Fe.symbol:Be.nativeCurrency.symbol} to your ${ae.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/r(v,{}),/*#__PURE__*/r(y,{})]});let it=He?`${M({amount:ze,decimals:Fe.decimals})} ${Fe.symbol}`:L(Qe,Be.nativeCurrency.symbol,3,!0),nt=fe[ve];return fe.length>1&&nt?/*#__PURE__*/r(V,{displayName:Re,configuredFundingChain:Be,erc20ContractInfo:Fe,formattedBalance:it,fundingAmount:We,fundingCurrency:He?Fe.symbol:Be.nativeCurrency.symbol,fundingAmountInUsd:Ze,options:fe,selectedOption:nt,isPreparing:Ce,isSubmitting:je,addressToFund:Me,fundingWalletAddress:qe?.address||"",errorMessage:pe,onSubmit:()=>{re.funding?.amount!==We?async function(){if(qe&&nt)try{let e=await D({isTestnet:!!Be.testnet,input:q({appId:Y,amount:$e.toString(),user:qe.address,recipient:Me,destinationChainId:Be.id,destinationCurrency:Ue,originChainId:nt.chain.id})}),t=R(e);if(!t)throw Error("Invalid transaction request");Te(!0),Ye({data:t.data,to:t.to,value:t.value,chain:nt.chain})}catch(e){console.error(e),ue(new E("Unable to fetch quotes for bridging",e,S.INSUFFICIENT_BALANCE))}}().catch(console.error):Ye({to:nt.bridgeTx.to,data:nt.bridgeTx.data,value:nt.bridgeTx.value,chain:nt.chain})},onSelect:e=>{e!==ve&&(he(null),ye(e))},onAmountChange:Le}):ne&&se&&qe&&re?.funding?/*#__PURE__*/r(K,{walletClientType:qe?.walletClientType||"unknown",displayName:Re,addressToFund:Me,isBridging:we,isErc20Flow:He,totalPriceInUsd:et,totalPriceInNativeCurrency:tt,gasPriceInUsd:rt,gasPriceInNativeCurrency:at,chainId:Be.id,chainName:Be.name}):
2
+ /*#__PURE__*/e(t,{children:[/*#__PURE__*/r(I,{}),/*#__PURE__*/r(w,{}),/*#__PURE__*/r("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/r(y,{})]})}};export{X as AwaitingExternalEthereumTransferScreen,X as default};
@@ -0,0 +1,103 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import o from"@heroicons/react/20/solid/CheckIcon";import t from"@heroicons/react/24/outline/EnvelopeIcon";import i from"@heroicons/react/24/outline/PhoneIcon";import{useState as n,useEffect as a}from"react";import{isMobile as s}from"react-device-detect";import{styled as c}from"styled-components";import{H as l}from"./Layouts-BlFm53ED.mjs";import{L as d}from"./Link-DJ5gq9Di.mjs";import{u as p,q as m}from"./context-CTvHGnoI.mjs";import{u,e as v,b as f,k as h}from"./internal-context-Z-fyxadS.mjs";import{a as y,u as g}from"./privy-context-DjQaHYWB.mjs";import{s as x}from"./shouldProceedtoEmbeddedWalletCreationFlow-B2ygR6ax.mjs";import{S as E}from"./ScreenLayout-C5tqY0au.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./index-ldG7uF5Z.mjs";import"uuid";import"jose";import"eventemitter3";import"./useActiveWallet-jEsJB3LX.mjs";import"zustand";import"./use-export-wallet-DQk47ipd.mjs";import"./useWallets-DoJmA9i9.mjs";import"viem";import"viem/utils";import"./events-context-CI0iqAXA.mjs";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";import"mipd";import"@privy-io/popup";import"./paths-3HW55qZg.mjs";import"./usePrivy-MdJeWwyN.mjs";import"@scure/base";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"@privy-io/urls";import"./PrivyPluginContext-2QN2dVUw.mjs";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"js-cookie";import"./frame-uzTmvtww.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"./ModalHeader-B3hf8Gf5.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-C-LEnZLL.mjs";import"./index-Dq_xe9dz.mjs";const b=({contactMethod:c,authFlow:p,appName:m="Privy",whatsAppEnabled:u=!1,onBack:v,onCodeSubmit:f,onResend:h,errorMessage:y,success:g=!1,resendCountdown:x=0,onInvalidInput:b,onClearError:S})=>{let[w,T]=n(A);a((()=>{y||T(A)}),[y]);let k=async e=>{e.preventDefault();let r=e.currentTarget.value.replace(" ","");if(""===r)return;if(isNaN(Number(r)))return void b?.("Code should be numeric");S?.();let o=Number(e.currentTarget.name?.charAt(5)),t=[...r||[""]].slice(0,C-o),i=[...w.slice(0,o),...t,...w.slice(o+t.length)];T(i);let n=Math.min(Math.max(o+t.length,0),C-1);if(!isNaN(Number(e.currentTarget.value))){let e=document.querySelector(`input[name=code-${n}]`);e?.focus()}if(i.every((e=>e&&!isNaN(+e)))){let e=document.querySelector(`input[name=code-${n}]`);e?.blur(),await(f?.(i.join("")))}};/*#__PURE__*/return e(E,{title:"Enter confirmation code",subtitle:/*#__PURE__*/r("span","email"===p?{children:["Please check ",/*#__PURE__*/e(M,{children:c})," for an email from privy.io and enter your code below."]}:{children:["Please check ",/*#__PURE__*/e(M,{children:c})," for a",u?" WhatsApp":""," message from ",m," and enter your code below."]}),icon:"email"===p?t:i,onBack:v,showBack:!0,helpText:/*#__PURE__*/r(L,{children:[/*#__PURE__*/r("span",{children:["Didn't get ","email"===p?"an email":"a message","?"]}),x?/*#__PURE__*/r(R,{children:[/*#__PURE__*/e(o,{color:"var(--privy-color-foreground)",strokeWidth:1.33,height:"12px",width:"12px"}),/*#__PURE__*/e("span",{children:"Code sent"})]}):/*#__PURE__*/e(d,{as:"button",size:"sm",onClick:h,children:"Resend code"})]}),children:/*#__PURE__*/e(_,{children:/*#__PURE__*/e(l,{children:/*#__PURE__*/r(I,{children:[/*#__PURE__*/e("div",{children:w.map(((r,o)=>/*#__PURE__*/e("input",{name:`code-${o}`,type:"text",value:w[o],onChange:k,onKeyUp:e=>{"Backspace"===e.key&&(e=>{if(S?.(),T([...w.slice(0,e),"",...w.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:`${g?"success":""} ${y?"fail":""}`,autoComplete:s?"one-time-code":"off"},o)))}),/*#__PURE__*/e(j,{$fail:!!y,$success:g,children:/*#__PURE__*/e("span",{children:"Invalid or expired verification code"===y?"Incorrect code":y||(g?"Success!":"")})})]})})})})};let C=6,A=Array(6).fill("");var S,w,T=((S=T||{})[S.RESET_AFTER_DELAY=0]="RESET_AFTER_DELAY",S[S.CLEAR_ON_NEXT_VALID_INPUT=1]="CLEAR_ON_NEXT_VALID_INPUT",S),k=((w=k||{})[w.EMAIL=0]="EMAIL",w[w.SMS=1]="SMS",w);const N={component:()=>{let{navigate:r,lastScreen:o,navigateBack:t,setModalData:i,onUserCloseViaDialogOrKeybindRef:s}=y(),c=p(),{closePrivyModal:l,resendEmailCode:d,resendSmsCode:E,getAuthMeta:C,loginWithCode:A,updateWallets:S,createAnalyticsEvent:w}=u(),{authenticated:T,logout:k,user:N}=g(),{whatsAppEnabled:_}=p(),[I,j]=n(!1),[L,R]=n(null),[M,D]=n(null),[O,P]=n(0);s.current=()=>null;let U=C()?.email?0:1,W=0===U?C()?.email||"":C()?.phoneNumber||"",F=m-500;a((()=>{if(O){let e=setTimeout((()=>{P(O-1)}),1e3);return()=>clearTimeout(e)}}),[O]),a((()=>{if(T&&I&&N){if(c?.legal.requireUsersAcceptTerms&&!N.hasAcceptedTerms){let e=setTimeout((()=>{r("AffirmativeConsentScreen")}),F);return()=>clearTimeout(e)}if(x(N,c.embeddedWallets)){let e=setTimeout((()=>{i({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),w({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AwaitingPasswordlessCodeScreen"}}),k()},callAuthOnSuccessOnClose:!0}}),r("EmbeddedWalletOnAccountCreateScreen")}),F);return()=>clearTimeout(e)}{S();let e=setTimeout((()=>l({shouldCallAuthOnSuccess:!0,isSuccess:!0})),m);return()=>clearTimeout(e)}}}),[T,I,N]),a((()=>{if(L&&0===M){let e=setTimeout((()=>{R(null),D(null);let e=document.querySelector("input[name=code-0]");e?.focus()}),1400);return()=>clearTimeout(e)}}),[L,M]);/*#__PURE__*/return e(b,{contactMethod:W,authFlow:0===U?"email":"sms",appName:c?.name,whatsAppEnabled:_,onBack:()=>t(),onCodeSubmit:async e=>{try{await A(e),j(!0)}catch(e){if(e instanceof v&&e.privyErrorCode===f.INVALID_CREDENTIALS)R("Invalid or expired verification code"),D(0);else if(e instanceof v&&e.privyErrorCode===f.CANNOT_LINK_MORE_OF_TYPE)R(e.message);else{if(e instanceof v&&e.privyErrorCode===f.USER_LIMIT_REACHED)return console.error(new h(e).toString()),void r("UserLimitReachedScreen");if(e instanceof v&&e.privyErrorCode===f.USER_DOES_NOT_EXIST)return void r("AccountNotFoundScreen");if(e instanceof v&&e.privyErrorCode===f.LINKED_TO_ANOTHER_USER)return i({errorModalData:{error:e,previousScreen:o??"AwaitingPasswordlessCodeScreen"}}),void r("ErrorScreen",!1);if(e instanceof v&&e.privyErrorCode===f.DISALLOWED_PLUS_EMAIL)return i({inlineError:{error:e}}),void r("ConnectOrCreateScreen",!1);if(e instanceof v&&e.privyErrorCode===f.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return i({accountTransfer:{nonce:e.data?.data?.nonce,account:W,displayName:e.data?.data?.account?.displayName,linkMethod:0===U?"email":"sms",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void r("LinkConflictScreen");R("Issue verifying code"),D(0)}}},onResend:async()=>{P(30),0===U?await d():await E()},errorMessage:L||void 0,success:I,resendCountdown:O,onInvalidInput:e=>{R(e),D(1)},onClearError:()=>{1===M&&(R(null),D(null))}})}};let _=c.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
+ `,I=c.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
+ `,j=c.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
+ `,L=c.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
+ `,R=c.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
+ `,M=c.span`
100
+ font-weight: 500;
101
+ word-break: break-all;
102
+ color: var(--privy-color-foreground);
103
+ `;export{N as AwaitingPasswordlessCodeScreen,b as AwaitingPasswordlessCodeScreenView,N as default};