@privy-io/react-auth 3.13.0 → 3.13.1-beta-20260202140759
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.
- package/dist/cjs/AccountNotFoundScreen-DopQJydk.js +1 -0
- package/dist/cjs/{Address-aEAhUJFV.js → Address-C0i_Lgxz.js} +1 -1
- package/dist/cjs/AffirmativeConsentScreen-DrfsiAOF.js +6 -0
- package/dist/cjs/AllowlistRejectionScreen-B4F7MdmW.js +1 -0
- package/dist/cjs/AuthenticateWithWalletScreen-BImVaE8G.js +1 -0
- package/dist/cjs/AwaitingEvmToSolBridgingScreen-Bld2VoQo.js +2 -0
- package/dist/cjs/AwaitingExternalEthereumTransferScreen-CK2PMVQH.js +2 -0
- package/dist/cjs/AwaitingPasswordlessCodeScreen-mc4TfLdK.js +103 -0
- package/dist/cjs/AwaitingSolToEvmBridgingScreen-BHTmPSzt.js +2 -0
- package/dist/cjs/{BridgeNetworkSelectionView-CE2o-1QO.js → BridgeNetworkSelectionView-BTW55LDI.js} +1 -1
- package/dist/cjs/CaptchaScreen-C4OKrOJj.js +1 -0
- package/dist/cjs/CoinbaseOnrampStatusScreen-DuBusEzK.js +16 -0
- package/dist/cjs/{ConnectEmailForm-D-TxBaE5.js → ConnectEmailForm-BAtI_Su2.js} +1 -1
- package/dist/cjs/ConnectLedgerScreen-Cxy5kYQy.js +9 -0
- package/dist/cjs/ConnectOnlyLandingScreen-UHxAPPxv.js +1 -0
- package/dist/cjs/ConnectOnlyStatusScreen-D7hEyOkF.js +1 -0
- package/dist/cjs/ConnectOrCreateScreen-DCXEsisd.js +1 -0
- package/dist/cjs/{ConnectPhoneForm-DK6jm19G.js → ConnectPhoneForm-IaeAlSaT.js} +1 -1
- package/dist/cjs/{ConnectWalletView-1cBOsYe3.js → ConnectWalletView-I7l3i_Tn.js} +1 -1
- package/dist/cjs/ConnectionStatusScreen-B5eG6O0t.js +7 -0
- package/dist/cjs/CrossAppAuthScreen-BHfk_dqk.js +1 -0
- package/dist/cjs/{CustomLandingScreenView-C879x5ia.js → CustomLandingScreenView-ZdAEwrj3.js} +1 -1
- package/dist/cjs/DelegatedActionsConsentScreen-LeQ6Lxpc.js +1 -0
- package/dist/cjs/DelegatedActionsRevokeScreen-C8v4E_cj.js +1 -0
- package/dist/cjs/EmbeddedWalletConnectingScreen-B1rrh4GO.js +1 -0
- package/dist/cjs/EmbeddedWalletCreatedScreen-Cem5Ix9r.js +1 -0
- package/dist/cjs/{EmbeddedWalletKeyExportScreen-BpjA7HGz.js → EmbeddedWalletKeyExportScreen-C9Et_UFA.js} +3 -3
- package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-tJoXkQEs.js +1 -0
- package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-C2wVljgA.js +1 -0
- package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-CG1oHF6a.js +1 -0
- package/dist/cjs/{EnrollTotp-D1jQjLxQ.js → EnrollTotp-BveYXBKW.js} +1 -1
- package/dist/cjs/ErrorScreen-Ckke6sz3.js +4 -0
- package/dist/cjs/{FarcasterConnectStatusScreen-JBJeeu9F.js → FarcasterConnectStatusScreen-D5ziktAq.js} +3 -3
- package/dist/cjs/{FarcasterSignerStatusScreen-8DplKa45.js → FarcasterSignerStatusScreen-8edRjO2Y.js} +6 -6
- package/dist/cjs/FundSolWalletWithExternalSolanaWallet-DJEyYpCy.js +2 -0
- package/dist/cjs/{FundWalletMethodHeader-CW2KubxL.js → FundWalletMethodHeader-Dyg72x32.js} +1 -1
- package/dist/cjs/FundingEditAmountScreen-2vgGeOzZ.js +1 -0
- package/dist/cjs/FundingMethodSelectionScreen-D6K2RTnb.js +1 -0
- package/dist/cjs/InAppBrowserLoginNotPossible-DlH26fht.js +1 -0
- package/dist/cjs/InstallWalletScreen-D-aty_-m.js +1 -0
- package/dist/cjs/LandingScreen-C3ycf-sm.js +1 -0
- package/dist/cjs/{LinkConflictScreen-DKkFMAqc.js → LinkConflictScreen-tpqlaHKl.js} +2 -2
- package/dist/cjs/LinkEmailScreen-CVJ8MM6X.js +1 -0
- package/dist/cjs/{LinkPasskeyScreen-D-5RrGXJ.js → LinkPasskeyScreen-BVI23any.js} +1 -1
- package/dist/cjs/LinkPhoneScreen-COZH83MT.js +1 -0
- package/dist/cjs/LoginFailedScreen-B_f3bRu3.js +1 -0
- package/dist/cjs/ManualTransferScreen-DCjvNWqd.js +1 -0
- package/dist/cjs/MfaAuthEnrollmentFlowScreen-DN4ce0UG.js +1 -0
- package/dist/cjs/MfaAuthVerifyFlowScreen-c-lQ_fEz.js +1 -0
- package/dist/cjs/MfaEnrollmentFlowScreen-B6-EB6WE.js +1 -0
- package/dist/cjs/MfaVerifyFlowScreen-zbdZQoq2.js +1 -0
- package/dist/cjs/{ModalHeader-DmWqn83H.js → ModalHeader-Cy6QK4_e.js} +1 -1
- package/dist/cjs/MoonpayStatusScreen-BEtRocSA.js +16 -0
- package/dist/cjs/OAuthStatusScreen-FvgZmHXu.js +1 -0
- package/dist/cjs/PasskeySelectSignupOrLogin-DqSfSR6i.js +1 -0
- package/dist/cjs/PasskeyStatusScreen-DvA6G4hk.js +3 -0
- package/dist/cjs/PasswordRecoveryScreen-Befeqrad.js +20 -0
- package/dist/cjs/{QrCode-BG2PX4HL.js → QrCode-DuBadwvo.js} +1 -1
- package/dist/cjs/RecoveryOAuthStatusScreen-C6mVwtQH.js +1 -0
- package/dist/cjs/RecoveryPasswordCreateScreen-DzNiXRjH.js +1 -0
- package/dist/cjs/{RecoverySelectionScreen-qP99_3WR.js → RecoverySelectionScreen-CjnlE9el.js} +2 -2
- package/dist/cjs/{Screen-BnWlRqz4.js → Screen-edUQX_SB.js} +1 -1
- package/dist/cjs/{ScreenLayout-8Ho-PwHJ.js → ScreenLayout-DGTvokS8.js} +1 -1
- package/dist/cjs/{SetAutomaticRecoveryScreen-Dw8eXtFM.js → SetAutomaticRecoveryScreen-CrRjNWxq.js} +2 -2
- package/dist/cjs/{SetWalletPasswordForm-BtxQiQCF.js → SetWalletPasswordForm-DJeemCn9.js} +1 -1
- package/dist/cjs/SignRequestScreen-DHoZ6sz5.js +26 -0
- package/dist/cjs/{StandardSignAndSendTransactionScreen-BRCG_Otm.js → StandardSignAndSendTransactionScreen-CBLYn4pf.js} +1 -1
- package/dist/cjs/TelegramAuthScreen-D7mlDw-E.js +1 -0
- package/dist/cjs/{TransactionDetails-CB_SFjYb.js → TransactionDetails-CXgPk3J1.js} +1 -1
- package/dist/cjs/{TransactionErrorView-C6AwpMpC.js → TransactionErrorView-Deibl2Uf.js} +1 -1
- package/dist/cjs/{TransferFromWalletScreen-DDbM2aZ-.js → TransferFromWalletScreen-DSItFmOL.js} +2 -2
- package/dist/cjs/{TransferOrBridgeLoadingScreen-BdFZ-kHB.js → TransferOrBridgeLoadingScreen-CZY4tSPW.js} +1 -1
- package/dist/cjs/UpdateEmailScreen-Bcbi12kY.js +1 -0
- package/dist/cjs/UpdatePhoneScreen-lJE1r_mk.js +1 -0
- package/dist/cjs/UserLimitReachedScreen-CKsbmhwX.js +1 -0
- package/dist/cjs/{WalletInfoCard-BP4plvST.js → WalletInfoCard-BPFjUGT5.js} +1 -1
- package/dist/cjs/WalletInterstitialScreen-C-wi9rZH.js +1 -0
- package/dist/cjs/{WalletLink-Be-wt7BS.js → WalletLink-DQka9Syl.js} +1 -1
- package/dist/cjs/{WalletOverflowButton-DNXb1rWu.js → WalletOverflowButton-CT3ToLGt.js} +1 -1
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/{context-B5x3dsBc.js → context-BgcJR59W.js} +1 -1
- package/dist/cjs/{ethers-CcPcMmj-.js → ethers-CUHJ8mll.js} +1 -1
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/get-entropy-details-for-user-Bh25VOwU.js +1 -0
- package/dist/cjs/{get-is-unified-wallet-huyBqM6I.js → get-is-unified-wallet-pvisKZtt.js} +1 -1
- package/dist/cjs/{index-C9h5dbsX.js → index-BgLmUrL3.js} +1 -1
- package/dist/cjs/index-C40Nmmja.js +174 -0
- package/dist/cjs/{index-Ddh08VH6.js → index-Y7m6JUJT.js} +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internal.js +1 -1
- package/dist/cjs/{shared-B4PQQyG9.js → shared-BrkTXSb9.js} +1 -1
- package/dist/cjs/{shouldProceedtoEmbeddedWalletCreationFlow-Cwmd9p6v.js → shouldProceedtoEmbeddedWalletCreationFlow-ClGopOFu.js} +1 -1
- package/dist/cjs/smart-wallets-DhMgsCrP.js +1 -0
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/{styles-BYA0sdA8.js → styles-Dg1gwPet.js} +1 -1
- package/dist/cjs/{to-ui-error-kjcnhSmN.js → to-ui-error-Cj4nmAIy.js} +1 -1
- package/dist/cjs/ui.js +1 -1
- package/dist/cjs/use-export-wallet-BHqL5lkN.js +1 -0
- package/dist/cjs/use-export-wallet-CHdfox2p.js +1 -0
- package/dist/cjs/useActiveWallet-DQaSSN2M.js +185 -0
- package/dist/cjs/{useGetTokenPrice-XbJ2xnl_.js → useGetTokenPrice-Q-LRDLGC.js} +1 -1
- package/dist/cjs/{useI18n-CJec5B3S.js → useI18n-C-2tQwPP.js} +1 -1
- package/dist/cjs/usePrivy-DN8Ajdzm.js +1 -0
- package/dist/cjs/{useSolanaRpcClient-CN7MyWq4.js → useSolanaRpcClient-DAhvriV9.js} +1 -1
- package/dist/cjs/useWallets-DOb8xzgz.js +1 -0
- package/dist/dts/{events-context-CV9PiG6M.d.ts → events-context-uQF86xPo.d.mts} +1 -1
- package/dist/dts/{events-context-CV9PiG6M.d.mts → events-context-uQF86xPo.d.ts} +1 -1
- package/dist/dts/extended-chains.d.mts +1 -1
- package/dist/dts/extended-chains.d.ts +1 -1
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +4 -38
- package/dist/dts/index.d.ts +4 -38
- package/dist/dts/internal.d.mts +1 -1
- package/dist/dts/internal.d.ts +1 -1
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +3 -3
- package/dist/dts/solana.d.ts +3 -3
- package/dist/dts/{types-xIUh0rN4.d.mts → types-DLEfLPEB.d.mts} +1 -1
- package/dist/dts/{types-xIUh0rN4.d.ts → types-DLEfLPEB.d.ts} +1 -1
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/esm/AccountNotFoundScreen-CVBAv1Mv.mjs +1 -0
- package/dist/esm/{Address-BuCMjci7.mjs → Address-BupZf8Rc.mjs} +1 -1
- package/dist/esm/AffirmativeConsentScreen-CFSY5nE4.mjs +6 -0
- package/dist/esm/AllowlistRejectionScreen-0Z0EYviP.mjs +1 -0
- package/dist/esm/AuthenticateWithWalletScreen-BdJYQ2JJ.mjs +1 -0
- package/dist/esm/AwaitingEvmToSolBridgingScreen-D9Ef3Dnt.mjs +2 -0
- package/dist/esm/AwaitingExternalEthereumTransferScreen-mj07gSaD.mjs +2 -0
- package/dist/esm/AwaitingPasswordlessCodeScreen-DE3g9VwQ.mjs +103 -0
- package/dist/esm/AwaitingSolToEvmBridgingScreen-CUKh2oVG.mjs +2 -0
- package/dist/esm/{BridgeNetworkSelectionView-0VRZoDMv.mjs → BridgeNetworkSelectionView-D8aRUIg2.mjs} +1 -1
- package/dist/esm/CaptchaScreen-Co8CjcuQ.mjs +1 -0
- package/dist/esm/CoinbaseOnrampStatusScreen-Da7VjKBi.mjs +16 -0
- package/dist/esm/ConnectEmailForm-D5UhENmm.mjs +3 -0
- package/dist/esm/ConnectLedgerScreen-JDfzYq9M.mjs +9 -0
- package/dist/esm/ConnectOnlyLandingScreen-C0j3-tOW.mjs +1 -0
- package/dist/esm/ConnectOnlyStatusScreen-D-gYePr8.mjs +1 -0
- package/dist/esm/ConnectOrCreateScreen-CqLbK7av.mjs +1 -0
- package/dist/esm/{ConnectPhoneForm-DMcfvHG9.mjs → ConnectPhoneForm-CQJPasTi.mjs} +1 -1
- package/dist/esm/{ConnectWalletView-rtAY2uds.mjs → ConnectWalletView-mIrd9fmT.mjs} +3 -3
- package/dist/esm/ConnectionStatusScreen-D8G_flGR.mjs +7 -0
- package/dist/esm/CrossAppAuthScreen-Btm1d-iO.mjs +1 -0
- package/dist/esm/{CustomLandingScreenView-Dt4TEi0A.mjs → CustomLandingScreenView-C2TNxHAb.mjs} +1 -1
- package/dist/esm/DelegatedActionsConsentScreen-DXwSOiLw.mjs +1 -0
- package/dist/esm/DelegatedActionsRevokeScreen-B7uTGw9J.mjs +1 -0
- package/dist/esm/EmbeddedWalletConnectingScreen-BioR068C.mjs +1 -0
- package/dist/esm/EmbeddedWalletCreatedScreen-Cq1thot_.mjs +1 -0
- package/dist/esm/{EmbeddedWalletKeyExportScreen-sjrAvCm3.mjs → EmbeddedWalletKeyExportScreen-CtEY8G7E.mjs} +2 -2
- package/dist/esm/EmbeddedWalletOnAccountCreateScreen-ShyQ92Jq.mjs +1 -0
- package/dist/esm/EmbeddedWalletPasswordUpdateScreen-qoWRlbPz.mjs +1 -0
- package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-BeN-dpqi.mjs +1 -0
- package/dist/esm/{EnrollTotp-DlnMoeNk.mjs → EnrollTotp-3j3Uj3wv.mjs} +1 -1
- package/dist/esm/ErrorScreen-BpG9IyOu.mjs +4 -0
- package/dist/esm/{FarcasterConnectStatusScreen-BLgCDUxR.mjs → FarcasterConnectStatusScreen-DadPWt5w.mjs} +4 -4
- package/dist/esm/FarcasterSignerStatusScreen-DyJNx88F.mjs +28 -0
- package/dist/esm/FundSolWalletWithExternalSolanaWallet-Dhp2jhkc.mjs +1 -0
- package/dist/esm/{FundWalletMethodHeader-Dujd1j7J.mjs → FundWalletMethodHeader-Cyn7MCWO.mjs} +1 -1
- package/dist/esm/FundingEditAmountScreen-D0KCT7EC.mjs +1 -0
- package/dist/esm/FundingMethodSelectionScreen-CrHLwmNP.mjs +1 -0
- package/dist/esm/InAppBrowserLoginNotPossible-CcbdJWpW.mjs +1 -0
- package/dist/esm/InstallWalletScreen-0udkV09c.mjs +1 -0
- package/dist/esm/LandingScreen-C7xCusAZ.mjs +1 -0
- package/dist/esm/{LinkConflictScreen-DOsLOvpT.mjs → LinkConflictScreen-B31exGN7.mjs} +4 -4
- package/dist/esm/LinkEmailScreen-DZf6HS1n.mjs +1 -0
- package/dist/esm/{LinkPasskeyScreen-jzRj6Yq0.mjs → LinkPasskeyScreen-Bl7uzJ8Q.mjs} +7 -7
- package/dist/esm/LinkPhoneScreen-DUIIaqp0.mjs +1 -0
- package/dist/esm/LoginFailedScreen-DsSbXSXA.mjs +1 -0
- package/dist/esm/ManualTransferScreen-B-Kkarxd.mjs +1 -0
- package/dist/esm/MfaAuthEnrollmentFlowScreen-D82inQR9.mjs +1 -0
- package/dist/esm/MfaAuthVerifyFlowScreen-Cw5rWozq.mjs +1 -0
- package/dist/esm/MfaEnrollmentFlowScreen-B3F6HEAl.mjs +1 -0
- package/dist/esm/MfaVerifyFlowScreen-DYuvXWXh.mjs +1 -0
- package/dist/esm/{ModalHeader-CSfzkWxZ.mjs → ModalHeader-Byy3j4Lh.mjs} +1 -1
- package/dist/esm/MoonpayStatusScreen-CBtEX6lf.mjs +16 -0
- package/dist/esm/OAuthStatusScreen-YCUnttYA.mjs +1 -0
- package/dist/esm/PasskeySelectSignupOrLogin-DuXG4uXH.mjs +1 -0
- package/dist/esm/PasskeyStatusScreen-DPvVVoC2.mjs +3 -0
- package/dist/esm/PasswordRecoveryScreen-IS0ckI65.mjs +20 -0
- package/dist/esm/{QrCode-BkoTqsec.mjs → QrCode-lPYtXNC_.mjs} +1 -1
- package/dist/esm/RecoveryOAuthStatusScreen-CJO3irqx.mjs +1 -0
- package/dist/esm/RecoveryPasswordCreateScreen-DZb7gDAd.mjs +1 -0
- package/dist/esm/{RecoverySelectionScreen-0YIfrkiv.mjs → RecoverySelectionScreen-CThvVB-J.mjs} +2 -2
- package/dist/esm/{Screen-5StC6JLQ.mjs → Screen-Ct4Lyoaf.mjs} +1 -1
- package/dist/esm/{ScreenLayout-C2Le_YIv.mjs → ScreenLayout-DOt2sB2J.mjs} +1 -1
- package/dist/esm/{SetAutomaticRecoveryScreen-BAAv--Sk.mjs → SetAutomaticRecoveryScreen-D1IKpF6a.mjs} +2 -2
- package/dist/esm/{SetWalletPasswordForm-lzuYpBex.mjs → SetWalletPasswordForm-CiQmt-HX.mjs} +1 -1
- package/dist/esm/{SignRequestScreen-YrG-iwWX.mjs → SignRequestScreen-DKJky_Un.mjs} +2 -2
- package/dist/esm/{StandardSignAndSendTransactionScreen-Csw3bRQ4.mjs → StandardSignAndSendTransactionScreen-CPKZQMPj.mjs} +2 -2
- package/dist/esm/TelegramAuthScreen-bIm5jFOU.mjs +1 -0
- package/dist/esm/{TransactionDetails-BMVu0qlz.mjs → TransactionDetails-DLLlKhs7.mjs} +1 -1
- package/dist/esm/{TransactionErrorView-C6AZ1RC0.mjs → TransactionErrorView-CSRxuGt5.mjs} +1 -1
- package/dist/esm/{TransferFromWalletScreen-BOOq-OqM.mjs → TransferFromWalletScreen-ClNSdttH.mjs} +4 -4
- package/dist/esm/{TransferOrBridgeLoadingScreen-gM_oel5i.mjs → TransferOrBridgeLoadingScreen-rWz1yK-a.mjs} +1 -1
- package/dist/esm/UpdateEmailScreen-mog8U9Vt.mjs +1 -0
- package/dist/esm/UpdatePhoneScreen-CLLjzpN7.mjs +1 -0
- package/dist/esm/UserLimitReachedScreen-Baf8QzFD.mjs +1 -0
- package/dist/esm/{WalletInfoCard-TfOxho0A.mjs → WalletInfoCard-BWAC4Crm.mjs} +1 -1
- package/dist/esm/WalletInterstitialScreen-chmHYyvD.mjs +1 -0
- package/dist/esm/{WalletLink-CZTmkBKu.mjs → WalletLink-cm_UqBHl.mjs} +1 -1
- package/dist/esm/{WalletOverflowButton-C0Ysaik4.mjs → WalletOverflowButton-CoHTrzr-.mjs} +1 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/context-BEE1GR3p.mjs +1 -0
- package/dist/esm/{ethers-DrSqg5wi.mjs → ethers-CzVYf1X2.mjs} +1 -1
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/farcaster.mjs +1 -1
- package/dist/esm/{frame-uzTmvtww.mjs → frame-CjhCpycO.mjs} +1 -1
- package/dist/esm/get-entropy-details-for-user-DXl-F6zT.mjs +1 -0
- package/dist/esm/{get-is-unified-wallet-GcvxyU9r.mjs → get-is-unified-wallet-szLxUazm.mjs} +1 -1
- package/dist/esm/{getErc20Balance-D0MGUaOw.mjs → getErc20Balance-Bs6MYMo9.mjs} +1 -1
- package/dist/esm/{getErc20TokenInfo-CZJTqd4c.mjs → getErc20TokenInfo-Cymy79Tp.mjs} +1 -1
- package/dist/esm/{getPublicClient-B4uPLKn-.mjs → getPublicClient-BltMpU4i.mjs} +1 -1
- package/dist/esm/{index-BXKPenEy.mjs → index-21Khs68W.mjs} +1 -1
- package/dist/esm/index-BXdEd5-h.mjs +174 -0
- package/dist/esm/{index-tsoVOGEt.mjs → index-CXuTLe54.mjs} +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/{internal-context-Z-fyxadS.mjs → internal-context-C4ZqP8IF.mjs} +1 -1
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/{paths-3HW55qZg.mjs → paths-BzM95ysC.mjs} +1 -1
- package/dist/esm/reservoir-CB32KXxK.mjs +1 -0
- package/dist/esm/{shared-CQ6jg1BO.mjs → shared-CcT7geMr.mjs} +1 -1
- package/dist/esm/{shouldProceedtoEmbeddedWalletCreationFlow-BfZwb-3N.mjs → shouldProceedtoEmbeddedWalletCreationFlow-eeAK_6M1.mjs} +1 -1
- package/dist/esm/smart-wallets-CHETrkmZ.mjs +1 -0
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/{styles-C3H3yhVT.mjs → styles-CVcwbZBK.mjs} +1 -1
- package/dist/esm/{to-ui-error-fYkDcQhz.mjs → to-ui-error-CymSkIi1.mjs} +2 -2
- package/dist/esm/ui.mjs +1 -1
- package/dist/esm/use-export-wallet-BghmI1bY.mjs +1 -0
- package/dist/esm/use-export-wallet-DmJRcrg3.mjs +1 -0
- package/dist/esm/{use-sign-with-user-signer-Do5Oi_rb.mjs → use-sign-with-user-signer-BYctG7hm.mjs} +1 -1
- package/dist/esm/useActiveWallet-CeJ_zia0.mjs +185 -0
- package/dist/esm/{useGetSolPrice-DwwjjGbd.mjs → useGetSolPrice-DaxM-vxD.mjs} +1 -1
- package/dist/esm/{useGetTokenPrice-YObgUU6L.mjs → useGetTokenPrice-BS8CeRfC.mjs} +1 -1
- package/dist/esm/{useI18n-VPW2SjZN.mjs → useI18n-BWqAKjsd.mjs} +1 -1
- package/dist/esm/usePrivy-DZkUhG2n.mjs +1 -0
- package/dist/esm/{useSolanaRpcClient-BTAchFxj.mjs → useSolanaRpcClient-D-Ekw787.mjs} +1 -1
- package/dist/esm/{useWalletBalance-BDrbQBDX.mjs → useWalletBalance-CCG99ZD8.mjs} +1 -1
- package/dist/esm/useWallets-CaOutpwQ.mjs +1 -0
- package/package.json +1 -1
- package/dist/cjs/AccountNotFoundScreen-DxO5LvIc.js +0 -1
- package/dist/cjs/AffirmativeConsentScreen-DfJW4zFz.js +0 -6
- package/dist/cjs/AllowlistRejectionScreen-CP01TiLV.js +0 -1
- package/dist/cjs/AuthenticateWithWalletScreen-CQw1iHsK.js +0 -1
- package/dist/cjs/AwaitingEvmToSolBridgingScreen-BzcvlEoa.js +0 -2
- package/dist/cjs/AwaitingExternalEthereumTransferScreen-CF8PGODY.js +0 -2
- package/dist/cjs/AwaitingPasswordlessCodeScreen-BByZHkHQ.js +0 -103
- package/dist/cjs/AwaitingSolToEvmBridgingScreen-DcalXeu-.js +0 -2
- package/dist/cjs/CaptchaScreen-anNodbfx.js +0 -1
- package/dist/cjs/CoinbaseOnrampStatusScreen-JGw8hfLn.js +0 -16
- package/dist/cjs/ConnectLedgerScreen-CwS0odD_.js +0 -9
- package/dist/cjs/ConnectOnlyLandingScreen-fpFbLO8Y.js +0 -1
- package/dist/cjs/ConnectOnlyStatusScreen-DziODgdH.js +0 -1
- package/dist/cjs/ConnectOrCreateScreen-D-V8KzJp.js +0 -1
- package/dist/cjs/ConnectionStatusScreen-D4NtHDFM.js +0 -7
- package/dist/cjs/CrossAppAuthScreen-BtEXDc88.js +0 -1
- package/dist/cjs/DelegatedActionsConsentScreen-CGnSYhkE.js +0 -1
- package/dist/cjs/DelegatedActionsRevokeScreen-Dd8u3U62.js +0 -1
- package/dist/cjs/EmbeddedWalletConnectingScreen-yIHjjIR2.js +0 -1
- package/dist/cjs/EmbeddedWalletCreatedScreen-CouqreWe.js +0 -1
- package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-Cv8bAxPB.js +0 -1
- package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-roXY9Gv8.js +0 -1
- package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-9I5OZ38V.js +0 -1
- package/dist/cjs/ErrorScreen-DbETfzK4.js +0 -4
- package/dist/cjs/FundSolWalletWithExternalSolanaWallet-CE1VdpiY.js +0 -2
- package/dist/cjs/FundingEditAmountScreen-Cjzgv7Q-.js +0 -1
- package/dist/cjs/FundingMethodSelectionScreen-Bje3JXwS.js +0 -1
- package/dist/cjs/InAppBrowserLoginNotPossible-DpFXJi29.js +0 -1
- package/dist/cjs/InstallWalletScreen-DP80Lixb.js +0 -1
- package/dist/cjs/LandingScreen-B_s7VUcj.js +0 -1
- package/dist/cjs/LinkEmailScreen-POTKFhXp.js +0 -1
- package/dist/cjs/LinkPhoneScreen-RWN6_lR0.js +0 -1
- package/dist/cjs/LoginFailedScreen-BGq1l-h2.js +0 -1
- package/dist/cjs/ManualTransferScreen-S07FPGso.js +0 -1
- package/dist/cjs/MfaAuthEnrollmentFlowScreen-Bnb9xLgu.js +0 -1
- package/dist/cjs/MfaAuthVerifyFlowScreen-Bn7NxwbP.js +0 -1
- package/dist/cjs/MfaEnrollmentFlowScreen-DixH-nyJ.js +0 -1
- package/dist/cjs/MfaVerifyFlowScreen-BtjZAo_J.js +0 -1
- package/dist/cjs/MoonpayStatusScreen-BAgiyXOW.js +0 -16
- package/dist/cjs/OAuthStatusScreen-RWYIpAEG.js +0 -1
- package/dist/cjs/PasskeySelectSignupOrLogin-DvUcmWfj.js +0 -1
- package/dist/cjs/PasskeyStatusScreen-CpL_C3--.js +0 -3
- package/dist/cjs/PasswordRecoveryScreen-FcFRBHq1.js +0 -20
- package/dist/cjs/RecoveryOAuthStatusScreen-AV5BAFgZ.js +0 -1
- package/dist/cjs/RecoveryPasswordCreateScreen-CvtuH2mp.js +0 -1
- package/dist/cjs/SignRequestScreen-B5xPIK1u.js +0 -26
- package/dist/cjs/TelegramAuthScreen-CjTMUNYb.js +0 -1
- package/dist/cjs/UpdateEmailScreen-BvzkGAlB.js +0 -1
- package/dist/cjs/UpdatePhoneScreen-e8rAhVvP.js +0 -1
- package/dist/cjs/UserLimitReachedScreen-x5P5FX13.js +0 -1
- package/dist/cjs/WalletInterstitialScreen-DrApzB6o.js +0 -1
- package/dist/cjs/index-BZqehL-Z.js +0 -174
- package/dist/cjs/smart-wallets-xoXme78U.js +0 -1
- package/dist/cjs/use-export-wallet-1gw5h-6F.js +0 -1
- package/dist/cjs/use-export-wallet-CedJPqOx.js +0 -1
- package/dist/cjs/useActiveWallet-4V55N-5C.js +0 -185
- package/dist/cjs/usePrivy-Tr-VZh0x.js +0 -1
- package/dist/cjs/useWallets-By_aiK-e.js +0 -1
- package/dist/cjs/useWallets-Ds2FjLWj.js +0 -1
- package/dist/esm/AccountNotFoundScreen-DvDKQEeR.mjs +0 -1
- package/dist/esm/AffirmativeConsentScreen-DmjKmR3p.mjs +0 -6
- package/dist/esm/AllowlistRejectionScreen-Dzgqqss9.mjs +0 -1
- package/dist/esm/AuthenticateWithWalletScreen-DqEYmKRq.mjs +0 -1
- package/dist/esm/AwaitingEvmToSolBridgingScreen-mM0yFabb.mjs +0 -2
- package/dist/esm/AwaitingExternalEthereumTransferScreen-B8RwfC4k.mjs +0 -2
- package/dist/esm/AwaitingPasswordlessCodeScreen-DiwMdkl1.mjs +0 -103
- package/dist/esm/AwaitingSolToEvmBridgingScreen-DDjqJpxK.mjs +0 -2
- package/dist/esm/CaptchaScreen-DRpV5XFL.mjs +0 -1
- package/dist/esm/CoinbaseOnrampStatusScreen-B5SpiCFR.mjs +0 -16
- package/dist/esm/ConnectEmailForm-CUfcb4US.mjs +0 -3
- package/dist/esm/ConnectLedgerScreen-D54DrxnP.mjs +0 -9
- package/dist/esm/ConnectOnlyLandingScreen-Cm10LiWd.mjs +0 -1
- package/dist/esm/ConnectOnlyStatusScreen-Bz7rafsR.mjs +0 -1
- package/dist/esm/ConnectOrCreateScreen-aeQK2RJ_.mjs +0 -1
- package/dist/esm/ConnectionStatusScreen-_g1A1Dg2.mjs +0 -7
- package/dist/esm/CrossAppAuthScreen-4oQDzYzy.mjs +0 -1
- package/dist/esm/DelegatedActionsConsentScreen-Cj9bU7Q1.mjs +0 -1
- package/dist/esm/DelegatedActionsRevokeScreen-DGFRARuM.mjs +0 -1
- package/dist/esm/EmbeddedWalletConnectingScreen-Cmt8I8TX.mjs +0 -1
- package/dist/esm/EmbeddedWalletCreatedScreen-Dj_JuLO5.mjs +0 -1
- package/dist/esm/EmbeddedWalletOnAccountCreateScreen-BOS_pyDI.mjs +0 -1
- package/dist/esm/EmbeddedWalletPasswordUpdateScreen-DulDjFpp.mjs +0 -1
- package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-BkwyRHPS.mjs +0 -1
- package/dist/esm/ErrorScreen-8UMMZ6is.mjs +0 -4
- package/dist/esm/FarcasterSignerStatusScreen-RHH68QtJ.mjs +0 -28
- package/dist/esm/FundSolWalletWithExternalSolanaWallet-DVgX3EaM.mjs +0 -1
- package/dist/esm/FundingEditAmountScreen-D10JPLdP.mjs +0 -1
- package/dist/esm/FundingMethodSelectionScreen-BuWGEgge.mjs +0 -1
- package/dist/esm/InAppBrowserLoginNotPossible-TigdvlfS.mjs +0 -1
- package/dist/esm/InstallWalletScreen-DgyXxk_4.mjs +0 -1
- package/dist/esm/LandingScreen-C6rQCvI5.mjs +0 -1
- package/dist/esm/LinkEmailScreen-C7CpFuoA.mjs +0 -1
- package/dist/esm/LinkPhoneScreen-BKHv_Kdp.mjs +0 -1
- package/dist/esm/LoginFailedScreen-CJgWFc1S.mjs +0 -1
- package/dist/esm/ManualTransferScreen-CFNzuajf.mjs +0 -1
- package/dist/esm/MfaAuthEnrollmentFlowScreen-DflCQFD5.mjs +0 -1
- package/dist/esm/MfaAuthVerifyFlowScreen-D0KWDrSF.mjs +0 -1
- package/dist/esm/MfaEnrollmentFlowScreen-B5CTxsyW.mjs +0 -1
- package/dist/esm/MfaVerifyFlowScreen-Bds0d6wr.mjs +0 -1
- package/dist/esm/MoonpayStatusScreen-BgCvITlM.mjs +0 -16
- package/dist/esm/OAuthStatusScreen-B9LjQopq.mjs +0 -1
- package/dist/esm/PasskeySelectSignupOrLogin-BH-9DnYX.mjs +0 -1
- package/dist/esm/PasskeyStatusScreen-B0BMf34N.mjs +0 -3
- package/dist/esm/PasswordRecoveryScreen-BGO3xmU6.mjs +0 -20
- package/dist/esm/RecoveryOAuthStatusScreen-9ngTLe_q.mjs +0 -1
- package/dist/esm/RecoveryPasswordCreateScreen-BDCDfQzo.mjs +0 -1
- package/dist/esm/TelegramAuthScreen-CXnXpJTY.mjs +0 -1
- package/dist/esm/UpdateEmailScreen-B4u7SqtR.mjs +0 -1
- package/dist/esm/UpdatePhoneScreen-Dz75pT5l.mjs +0 -1
- package/dist/esm/UserLimitReachedScreen-BEQAxJvA.mjs +0 -1
- package/dist/esm/WalletInterstitialScreen-jHLFeLvC.mjs +0 -1
- package/dist/esm/context-bWeWAiND.mjs +0 -1
- package/dist/esm/index-DEtvMjrv.mjs +0 -174
- package/dist/esm/reservoir-0wfhnc0j.mjs +0 -1
- package/dist/esm/smart-wallets-wzmiQDh1.mjs +0 -1
- package/dist/esm/use-export-wallet-8amsQKG9.mjs +0 -1
- package/dist/esm/use-export-wallet-DyNNbsJn.mjs +0 -1
- package/dist/esm/useActiveWallet-CSq3KvGj.mjs +0 -185
- package/dist/esm/usePrivy-CvOp4eQ7.mjs +0 -1
- package/dist/esm/useWallets-izyyA2re.mjs +0 -1
- package/dist/esm/useWallets-yDa5ACXD.mjs +0 -1
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import{jsxs as e,jsx as t,Fragment as n}from"react/jsx-runtime";import r,{useContext as a,createContext as i,useRef as s,useState as o,useMemo as l,useEffect as c,Suspense as d,lazy as u,useCallback as h}from"react";import p,{DEFAULT_SUPPORTED_CHAIN_IDS as w,rpc as m,PrivyClientError as y,getWallet as g,updateWallet as f,generateAuthorizationSignature as v}from"@privy-io/js-sdk-core";import{v4 as A}from"uuid";import*as k from"jose";import{base64url as T}from"jose";import{c as C,u as _,a as S,g as b,i as E,b as I,d as P,e as U,P as W,M as N,f as O,h as R,j as M,k as x,l as F}from"./get-is-unified-wallet-szLxUazm.mjs";import L from"eventemitter3";import{E as D,P as j,M as q,g as z,s as H,a as V,b as B,c as K,d as $,m as G,S as Y,e as J,i as Q,f as Z,h as X,p as ee,H as te,u as ne,L as re,j as ae,k as ie,t as se,l as oe,n as le,R as ce,o as de,q as ue,r as he,v as pe,w as we,x as me,y as ye}from"./useActiveWallet-CeJ_zia0.mjs";import{P as ge,f as fe,a as ve,b as Ae,c as ke,d as Te,e as Ce,g as _e,n as Se,h as be,u as Ee,I as Ie,i as Pe}from"./internal-context-C4ZqP8IF.mjs";import{f as Ue,W as We,l as Ne,e as Oe,s as Re,i as Me,a as xe,P as Fe,b as Le,p as De}from"./use-export-wallet-DmJRcrg3.mjs";import{createCoinbaseWalletSDK as je}from"@coinbase/wallet-sdk";import{isMobile as qe,isSafari as ze,isIOS as He,isAndroid as Ve}from"react-device-detect";import{EthereumProvider as Be,OPTIONAL_METHODS as Ke,OPTIONAL_EVENTS as $e}from"@walletconnect/ethereum-provider";import{d as Ge,r as Ye,b as Je,o as Qe,s as Ze,a as Xe,p as et,c as tt,u as nt,S as rt,e as at,f as it}from"./usePrivy-DZkUhG2n.mjs";import{V as st,g as ot,C as lt,H as ct,O as dt,S as ut,a as ht,P as pt,R as wt,b as mt,c as yt,D as gt,d as ft,e as vt,I as At,f as kt,h as Tt,i as Ct,j as _t,u as St,k as bt,l as Et,m as It,W as Pt}from"./context-BEE1GR3p.mjs";import{create as Ut}from"zustand";import{ofetch as Wt}from"ofetch";import{s as Nt,a as Ot,b as Rt,c as Mt,d as xt,u as Ft,p as Lt,e as Dt,f as jt,g as qt,o as zt,h as Ht,i as Vt,j as Bt,k as Kt,l as $t,m as Gt,n as Yt,q as Jt,r as Qt,t as Zt,v as Xt,w as en,x as tn,y as nn,z as rn,A as an,B as sn,C as on,D as ln,E as cn,F as dn,G as un,H as hn,I as pn,J as wn,K as mn,L as yn,M as gn,N as fn,O as vn,P as An,Q as kn,R as Tn,S as Cn,T as _n,U as Sn,V as bn,W as En,X as In,Y as Pn,Z as Un,_ as Wn,$ as Nn,a0 as On,a1 as Rn,a2 as Mn,a3 as xn,a4 as Fn}from"./paths-BzM95ysC.mjs";import Ln from"js-cookie";import{u as Dn,P as jn}from"./PrivyPluginContext-2QN2dVUw.mjs";import{createStore as qn}from"mipd";import{toHex as zn,isHex as Hn,hashAuthorization as Vn}from"viem/utils";import{trigger as Bn}from"@privy-io/popup";import{base64 as Kn}from"@scure/base";import{styled as $n,createGlobalStyle as Gn,css as Yn}from"styled-components";import{u as Jn,a as Qn,p as Zn,e as Xn,P as er}from"./events-context-CI0iqAXA.mjs";import{Transition as tr,Dialog as nr,TransitionChild as rr,DialogPanel as ar}from"@headlessui/react";import{u as ir,t as sr,a as or,g as lr,s as cr}from"./get-entropy-details-for-user-DXl-F6zT.mjs";import{constructURL as dr}from"@privy-io/urls";import{toHex as ur,zeroAddress as hr,getAddress as pr,createWalletClient as wr,http as mr,parseSignature as yr}from"viem";import{toViemTransactionSerializable as gr,STRING_TO_NUMBER_TXN_TYPE as fr}from"@privy-io/ethereum";import{D as vr}from"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import{g as Ar,a as kr}from"./getPublicClient-BltMpU4i.mjs";import{F as Tr}from"./frame-CjhCpycO.mjs";import{MfaAuthPasskeyVerify as Cr,MfaAuthPasskeyInit as _r,MfaAuthTotpVerify as Sr,MfaAuthPasskeyEnrollment as br,MfaAuthTotpUnenroll as Er,MfaAuthTotpEnroll as Ir,MfaAuthTotpInit as Pr}from"@privy-io/routes";import{selectPaymentRequirements as Ur,createPaymentHeader as Wr}from"x402/client";import{InvalidInputError as Nr}from"@privy-io/api-base";import{toAccount as Or}from"viem/accounts";import{u as Rr}from"./use-sign-with-user-signer-BYctG7hm.mjs";class Mr{static parse(e){try{return new Mr(e)}catch(e){return null}}static throwIfNotWellFormedJwt(e){return k.decodeJwt(e),e}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}get issuer(){return this._decoded.iss}get audience(){return this._decoded.aud}isExpired(e=0){return Date.now()>=1e3*(this.expiration-e)}constructor(e){this.value=e,this._decoded=k.decodeJwt(e)}}class xr extends Mr{static parse(e){try{return new xr(e)}catch(e){return null}}get appId(){return this._decoded.aid?this._decoded.aid:this.audience}}const Fr=({style:n,...r})=>/*#__PURE__*/e("svg",{viewBox:"0 0 1024 1024",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...n},...r,children:[/*#__PURE__*/t("rect",{width:"1024",height:"1024",fill:"#0052FF",rx:100,ry:100}),/*#__PURE__*/t("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z",fill:"white"})]}),Lr="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTAyNCAxMDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHN0eWxlPSdoZWlnaHQ6MjhweDt3aWR0aDoyOHB4Jz48cmVjdCB3aWR0aD0nMTAyNCcgaGVpZ2h0PScxMDI0JyBmaWxsPScjMDA1MkZGJyByeD0nMTAwJyByeT0nMTAwJz48L3JlY3Q+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J00xNTIgNTEyQzE1MiA3MTAuODIzIDMxMy4xNzcgODcyIDUxMiA4NzJDNzEwLjgyMyA4NzIgODcyIDcxMC44MjMgODcyIDUxMkM4NzIgMzEzLjE3NyA3MTAuODIzIDE1MiA1MTIgMTUyQzMxMy4xNzcgMTUyIDE1MiAzMTMuMTc3IDE1MiA1MTJaTTQyMCAzOTZDNDA2Ljc0NSAzOTYgMzk2IDQwNi43NDUgMzk2IDQyMFY2MDRDMzk2IDYxNy4yNTUgNDA2Ljc0NSA2MjggNDIwIDYyOEg2MDRDNjE3LjI1NSA2MjggNjI4IDYxNy4yNTUgNjI4IDYwNFY0MjBDNjI4IDQwNi43NDUgNjE3LjI1NSAzOTYgNjA0IDM5Nkg0MjBaJyBmaWxsPSd3aGl0ZSc+PC9wYXRoPjwvc3ZnPg==",Dr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAALZJREFUaEPtmjEOhDAMBNc/O14GvOzys3CAKK6eAlmaVGl2Zc+kTOU685vkc9/bnD2prZK5/TZY24z9P+g4F5hNh7/GdoG37WlAA5CATwgCxHENYISwQAMQII5rACOEBRqAAHFcAxghLNAABIjjGsAIYYEGIEAc1wBGCAs0AAHiuAYwQligAQgQxzWAEcICDUCAOK4BjBAWaAACxHENYISwQAMQII6fBjr+VHkW3+u+tfyxMpJaDgYzYxb/ALZVAAAAAElFTkSuQmCC";let jr,qr;class zr extends D{async initialize(){await this.importPromise,await this.syncAccounts(),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){this.proxyProvider.walletProvider.disconnect(),this.onDisconnect()}get walletBranding(){return{name:this.displayName,icon:Dr,id:"com.coinbase.wallet"}}async promptConnection(){try{await this.importPromise;let e=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!e||0===e.length||!e[0])throw new ge("Unable to retrieve accounts");this.connected=!0,await this.syncAccounts([e[0]])}catch(e){throw Ue(e)}}constructor(e,t,n,r,a){super("base_account",e,t,n),this.connectorType="base_account",this.walletClientType="base_account",this.displayName="Base",this.setBaseAccountSdk=a,this.proxyProvider=new j(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.baseAccountConfig={...r,appChainIds:[t.id].concat(e.map((e=>e.id)))},jr?(this.proxyProvider.setWalletProvider(jr.getProvider()),this.setBaseAccountSdk(jr)):this.importPromise=import("@base-org/account").then((({createBaseAccountSDK:e})=>{jr=e(this.baseAccountConfig),this.proxyProvider.setWalletProvider(jr.getProvider()),this.setBaseAccountSdk(jr)})).catch(console.error)}}let Hr=[1,11155111,137,10,8453,84532,42161,7777777,43114,56];class Vr extends D{async initialize(){await this.syncAccounts(),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){this.proxyProvider.walletProvider.disconnect(),this.onDisconnect()}get walletBranding(){return{name:this.displayName,icon:Lr,id:"com.coinbase.wallet"}}async promptConnection(){try{let e=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!e||0===e.length||!e[0])throw new ge("Unable to retrieve accounts");this.connected=!0,await this.syncAccounts([e[0]])}catch(e){throw Ue(e)}}updateConnectionPreference(e){this.coinbaseWalletConfig={...this.coinbaseWalletConfig,preference:{...this.coinbaseWalletConfig.preference,options:e}},this.walletClientType="smartWalletOnly"===e?"coinbase_smart_wallet":"coinbase_wallet",qr=je({...this.coinbaseWalletConfig}),this.proxyProvider.setWalletProvider(qr.getProvider())}constructor(e,t,n,r){if(super("coinbase_wallet",e,t,n),this.connectorType="coinbase_wallet",this.displayName="Coinbase Wallet",this.proxyProvider=new j(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.coinbaseWalletConfig={...r,appChainIds:[t.id].concat(e.map((e=>e.id)))},this.walletClientType="smartWalletOnly"===this.coinbaseWalletConfig.preference?.options?"coinbase_smart_wallet":"coinbase_wallet","coinbase_smart_wallet"===this.walletClientType&&(this.displayName="Coinbase Smart Wallet"),!qr){let e="eoaOnly"!==this.coinbaseWalletConfig.preference?.options?(this.coinbaseWalletConfig.appChainIds??[]).filter((e=>!Hr.includes(e))):[];e.length>0&&!e.every((e=>w.has(e)))&&console.info(`The configured chains are not supported by Coinbase Smart Wallet: ${e.join(", ")}`),qr=je(this.coinbaseWalletConfig)}this.proxyProvider.setWalletProvider(qr.getProvider())}}const Br=({style:e,...n})=>/*#__PURE__*/t("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor",strokeWidth:1.5,viewBox:"0 0 24 24",style:{...e},...n,children:/*#__PURE__*/t("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25m18 0A2.25 2.25 0 0018.75 3H5.25A2.25 2.25 0 003 5.25m18 0V12a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 12V5.25"})}),Kr=({style:n,...r})=>/*#__PURE__*/e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"108",height:"108",viewBox:"0 0 108 108",fill:"none",style:{height:"28px",width:"28px",...n},...r,children:[/*#__PURE__*/t("rect",{width:"108",height:"108",rx:"23",fill:"#AB9FF2"}),/*#__PURE__*/t("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M46.5267 69.9229C42.0054 76.8509 34.4292 85.6182 24.348 85.6182C19.5824 85.6182 15 83.6563 15 75.1342C15 53.4305 44.6326 19.8327 72.1268 19.8327C87.768 19.8327 94 30.6846 94 43.0079C94 58.8258 83.7355 76.9122 73.5321 76.9122C70.2939 76.9122 68.7053 75.1342 68.7053 72.314C68.7053 71.5783 68.8275 70.7812 69.0719 69.9229C65.5893 75.8699 58.8685 81.3878 52.5754 81.3878C47.993 81.3878 45.6713 78.5063 45.6713 74.4598C45.6713 72.9884 45.9768 71.4556 46.5267 69.9229ZM83.6761 42.5794C83.6761 46.1704 81.5575 47.9658 79.1875 47.9658C76.7816 47.9658 74.6989 46.1704 74.6989 42.5794C74.6989 38.9885 76.7816 37.1931 79.1875 37.1931C81.5575 37.1931 83.6761 38.9885 83.6761 42.5794ZM70.2103 42.5795C70.2103 46.1704 68.0916 47.9658 65.7216 47.9658C63.3157 47.9658 61.233 46.1704 61.233 42.5795C61.233 38.9885 63.3157 37.1931 65.7216 37.1931C68.0916 37.1931 70.2103 38.9885 70.2103 42.5795Z",fill:"#FFFDF8"})]});function $r(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var Gr=0;class Yr extends D{async initialize(){await this.syncAccounts(),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:this.providerDetail.info.name,icon:this.providerDetail.info.icon,id:this.providerDetail.info.rdns}}disconnect(){console.warn(`Programmatic disconnect with ${this.providerDetail.info.name} is not yet supported.`)}async promptConnection(){try{let e=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!e||0===e.length||!e[0])throw new ge("Unable to retrieve accounts");await this.syncAccounts([e[0]])}catch(e){throw Ue(e)}}constructor(e,t,n,r,a){super(a||"unknown",e,t,n),this.connectorType="injected",this.proxyProvider=new j(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.providerDetail=r;let i=r.provider;this.proxyProvider.setWalletProvider(i)}}var Jr="__private_"+Gr+++"__walletBranding";class Qr extends D{async initialize(){await this.syncAccounts(),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return $r(this,Jr)[Jr]??{name:"Browser Extension",icon:Br,id:"extension"}}disconnect(){console.warn("Programmatic disconnect with browser wallets is not yet supported.")}async promptConnection(){try{let e=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!e||0===e.length||!e[0])throw new ge("Unable to retrieve accounts");await this.syncAccounts([e[0]])}catch(e){throw Ue(e)}}constructor(e,t,n,r,a){super(a??"unknown",e,t,n),Object.defineProperty(this,Jr,{writable:!0,value:void 0}),this.connectorType="injected",this.proxyProvider=new j(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.proxyProvider.setWalletProvider(r),"metamask"===a?$r(this,Jr)[Jr]={name:"MetaMask",icon:q,id:"io.metamask"}:"phantom"===a&&($r(this,Jr)[Jr]={name:"Phantom",icon:Kr,id:"phantom"})}}class Zr extends Yr{disconnect(){console.warn("MetaMask does not support programmatic disconnect.")}async promptConnection(){try{qe||await this.proxyProvider.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let e=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!e||0===e.length||!e[0])throw new ge("Unable to retrieve accounts");await this.syncAccounts([e[0]])}catch(e){throw Ue(e)}}}class Xr extends D{async initialize(){let e=await this.createProvider();this.provider=e,this.proxyProvider.setWalletProvider(e),this.subscribeListeners(),e.session&&(this.walletProvider?.session?.peer.metadata.url&&(this.walletEntry=z(this.walletProvider?.session?.peer.metadata.url),this.walletClientType=this.walletEntry?.slug||"unknown"),this.connected=!0,await this.syncAccounts()),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),this.getConnectedWallet()}async isConnected(){return!!this.walletProvider?.connected}get walletBranding(){let e=this.walletProvider?.session?.peer.metadata.icons?.[0];return{name:H(this.walletProvider?.session?.peer.metadata.name||"")||"WalletConnect",icon:"string"==typeof e?e:We,id:this.walletProvider?.session?.peer.metadata.name.toLowerCase()||"wallet_connect_v2"}}async resetConnection(e){this.walletProvider&&this.walletProvider.connected&&(await this.walletProvider.disconnect(),this.walletProvider.signer.session=void 0,this.walletClientType=e,this.redirectUri=void 0,this.fallbackUniversalRedirectUri=void 0,Ge(),this.onDisconnect())}async promptConnection(){if(this.provider)return new Promise(((e,t)=>{(async()=>{let t="",n=await Promise.race([this.walletProvider?.enable(),this.proxyProvider.walletTimeout()]);if(n?.length&&(t=n[0]),!t||""===t)throw new ge("Unable to retrieve address");this.walletProvider?.session?.peer.metadata.url&&(this.walletEntry=z(this.walletProvider?.session?.peer.metadata.url),this.walletClientType=this.walletEntry?.slug||"unknown",this.proxyProvider.rpcTimeoutDuration=K(this.rpcConfig,this.walletClientType)),this.connected=!0,await this.syncAccounts(n),e()})().catch((e=>{t(e?Ue(e):new ge("Unknown error during connection"))}))}))}disconnect(){this.walletProvider?.disconnect().then((()=>this.onDisconnect())).catch((()=>console.warn("Unable to disconnect WalletConnect provider")))}get walletProvider(){return this.proxyProvider.walletProvider}setWalletProvider(e){this.proxyProvider.setWalletProvider(e)}async createProvider(){let e={};for(let t of this.chains){let n=V(t.id,this.chains,this.rpcConfig,this.privyAppId);n&&(e[t.id]=n)}let t=this.shouldEnforceDefaultChainOnConnect?[this.defaultChain.id]:[],n=this.chains.map((e=>e.id)),r=await Be.init({projectId:this.walletConnectCloudProjectId,chains:t,optionalChains:n,optionalEvents:$e,optionalMethods:Ke,rpcMap:e,showQrModal:!1,metadata:{description:this.privyAppName,name:this.privyAppName,url:window.location.origin,icons:[]}});return r.on("display_uri",(e=>{if(r.signer.abortPairingAttempt(),Ye(),!this.showPrivyQrModal)throw new ge("WalletConnect modal not available - Privy handles wallet connections through its own UI");if(qe&&this.walletEntry){let{redirect:t,href:n}=Je(e,this.walletEntry);Qe(t,"_self"),Ze({href:n,name:this.walletEntry.metadata?.shortName||this.walletEntry.name});let r=Xe(e,this.walletEntry);return this.redirectUri=t,this.fallbackUniversalRedirectUri=r?.redirect,this.showPrivyQrModal({native:t,universal:t})}if(this.redirectUri=void 0,this.walletEntry){let t=Xe(e,this.walletEntry);this.fallbackUniversalRedirectUri=t?.redirect}this.showPrivyQrModal({native:e,universal:void 0})})),r.on("connect",(()=>{r.session?.peer.metadata.url&&(this.walletEntry=z(r.session?.peer.metadata.url),this.walletClientType=this.walletEntry?.slug||"unknown")})),r}async enableProvider(){return this.walletProvider?.connected?Promise.resolve(this.walletProvider.accounts):await(this.walletProvider?.enable())}setWalletEntry(e,t){this.walletEntry=e,this.showPrivyQrModal=t}constructor({walletConnectCloudProjectId:e,rpcConfig:t,chains:n,defaultChain:r,shouldEnforceDefaultChainOnConnect:a,privyAppId:i,privyAppName:s,walletClientType:o}){super(o||"unknown",n,r,t),this.connectorType="wallet_connect_v2",this.privyAppId=i,this.privyAppName=s,this.walletConnectCloudProjectId=e,this.rpcConfig=t,this.shouldEnforceDefaultChainOnConnect=a,this.proxyProvider=new j(void 0,this.rpcTimeoutDuration),o&&(this.walletEntry=B(o),this.walletClientType=o)}}class ea extends L{get wallets(){let e=new Set;return this.walletConnectors.flatMap((e=>e.wallets)).sort(((e,t)=>e.connectedAt&&t.connectedAt?t.connectedAt-e.connectedAt:0)).filter((t=>{let n=`${t.address}${t.walletClientType}${t.connectorType}${t.meta.id}`;return!e.has(n)&&(e.add(n),!0)}))}async initialize(e){if(this.initialized&&!e||(e&&this.removeAllConnectors(),this.externalWalletConfig.disableAllExternalWallets))return;let t=$({store:this.store,walletList:this.walletList,externalWalletConfig:this.externalWalletConfig,walletChainType:this.walletChainType}).then((e=>{e.forEach((({type:e,eip6963InjectedProvider:t,legacyInjectedProvider:n})=>{this.createEthereumWalletConnector({connectorType:"injected",walletClientType:e,providers:{eip6963InjectedProvider:t,legacyInjectedProvider:n}})}))}));for(let e of(this.walletList.includes("coinbase_wallet")&&this.createEthereumWalletConnector({connectorType:"coinbase_wallet",walletClientType:"coinbase_wallet"}),this.walletList.includes("base_account")&&this.createEthereumWalletConnector({connectorType:"base_account",walletClientType:"base_account"}),Object.values(G)))!e.isInstalled&&this.walletList.includes(e.client)&&(["ethereum-only","ethereum-and-solana"].includes(this.walletChainType)&&e.chainTypes.includes("ethereum")&&this.createEthereumWalletConnector({connectorType:"null",walletClientType:e.client,walletConfig:e}),["ethereum-and-solana","solana-only"].includes(this.walletChainType)&&e.chainTypes.includes("solana")&&this.addSolanaWalletConnector(new Y({id:e.client,name:e.name})));this.externalWalletConfig.walletConnect.enabled&&(this.walletList.includes("wallet_connect_qr")||J(this.walletList))&&"solana-only"!==this.walletChainType&&this.createEthereumWalletConnector({connectorType:"wallet_connect_v2",walletClientType:"unknown"});let n=this.walletList.includes("wallet_connect_qr_solana")||J(this.walletList)&&"ethereum-only"!==this.walletChainType,r=this.externalWalletConfig.solana.connectors?.get()||[],a=async e=>{if(!n)return;let t=e.find((e=>"walletconnect_solana"===e.walletBranding?.id));t&&t.wallet&&await t.wallet.initialize({walletConnectCloudProjectId:this.walletConnectCloudProjectId,privyAppName:this.privyAppName})};a(r),r.filter((e=>n||"walletconnect_solana"!==e.walletBranding?.id)).forEach(this.addSolanaWalletConnector),this.externalWalletConfig.solana.connectors?._setOnConnectorsUpdated?.((e=>{a(e),e?.filter((e=>n||"walletconnect_solana"!==e.walletBranding?.id)).forEach(this.addSolanaWalletConnector)})),await t,this.initialized=!0}findWalletConnector(e,t,n){return"wallet_connect_v2"===e?this.walletConnectors.filter(Q).find((t=>t.connectorType===e&&(!n||t.wallets.some((e=>e.address===n)))))??null:this.walletConnectors.filter(Q).find((r=>r.connectorType===e&&r.walletClientType===t&&(!n||r.wallets.some((e=>e.address===n)))))??null}findSolanaWalletConnector(e){return this.walletConnectors.filter(Z).find((t=>"unknown"===t.walletClientType?t.walletBranding.id===e:t.walletClientType===e))??null}onInitialized(e){e.wallets.forEach((e=>{let t=this.storedConnections.find((t=>t.address===e.address&&t.connectorType===e.connectorType&&("solana"===e.type&&"unknown"===t.walletClientType&&"unknown"===e.walletClientType?e.meta.id===t.id:t.walletClientType===e.walletClientType)));t&&(e.connectedAt=t.connectedAt)})),this.emit("walletsUpdated"),this.emit("connectorInitialized")}onWalletsUpdated(e){e.initialized&&this.emit("walletsUpdated")}async createEthereumWalletConnector({connectorType:e,walletClientType:t,providers:n,walletConfig:r}){let a=this.findWalletConnector(e,t);if(a&&Q(a))return a instanceof Xr&&a.resetConnection(t),a;let i=(()=>"injected"!==e?"coinbase_wallet"===e?new Vr(this.chains,this.defaultChain,this.rpcConfig,this.externalWalletConfig.coinbaseWallet.config):"base_account"===e?new zr(this.chains,this.defaultChain,this.rpcConfig,this.externalWalletConfig.baseAccount.config,this.setBaseAccountSdk):"null"!==e?new Xr({walletConnectCloudProjectId:this.walletConnectCloudProjectId,rpcConfig:this.rpcConfig,chains:this.chains,defaultChain:this.defaultChain,shouldEnforceDefaultChainOnConnect:this.shouldEnforceDefaultChainOnConnect,privyAppId:this.privyAppId,privyAppName:this.privyAppName,walletClientType:t}):r?new X({id:r.client,name:r.name,defaultChain:this.defaultChain,walletClientType:r.client}):null:"metamask"===t&&n?.eip6963InjectedProvider?new Zr(this.chains,this.defaultChain,this.rpcConfig,n?.eip6963InjectedProvider,"metamask"):"metamask"===t&&n?.legacyInjectedProvider?new Qr(this.chains,this.defaultChain,this.rpcConfig,n?.legacyInjectedProvider,"metamask"):"phantom"===t&&n?.legacyInjectedProvider?new Qr(this.chains,this.defaultChain,this.rpcConfig,n?.legacyInjectedProvider,"phantom"):n?.legacyInjectedProvider&&"unknown_browser_extension"===t?new Qr(this.chains,this.defaultChain,this.rpcConfig,n?.legacyInjectedProvider):n?.eip6963InjectedProvider?new Yr(this.chains,this.defaultChain,this.rpcConfig,n?.eip6963InjectedProvider,t):void 0)();return i&&this.addWalletConnector(i),i||null}addWalletConnector(e){this.walletConnectors.push(e),e.on("initialized",(()=>this.onInitialized(e))),e.on("walletsUpdated",(()=>this.onWalletsUpdated(e))),e.initialize().catch((e=>{console.debug("Failed to initialize connector",e)}))}setWalletList(e){this.walletList=e,this.initialized&&this.initialize(!0).catch(console.error)}removeAllConnectors(){for(let e of this.walletConnectors)e.removeAllListeners();this.walletConnectors=[]}constructor(e,t,n,r,a,i,s,o,l,c,d,u){super(),this.addSolanaWalletConnector=async e=>{let t=this.findSolanaWalletConnector(e.walletClientType);if(!t||"null"===t.connectorType){if("null"===t?.connectorType){let e=this.walletConnectors.indexOf(t);this.walletConnectors.splice(e,1)}this.addWalletConnector(e)}},this.privyAppId=e,this.walletConnectCloudProjectId=t,this.rpcConfig=n,this.chains=r,this.defaultChain=a,this.walletConnectors=[],this.initialized=!1,this.store=i,this.walletList=s,this.shouldEnforceDefaultChainOnConnect=o,this.externalWalletConfig=l,this.privyAppName=c,this.walletChainType=u||"ethereum-only",this.setBaseAccountSdk=d,this.storedConnections=Ne()}}const ta=Ut((()=>({identityToken:null})));function na(){let{identityToken:e}=ta();return{identityToken:e}}let ra=[Nt,Ot,Rt];class aa{async get(e,t){try{return await this.baseFetch(e,t)}catch(e){throw fe(e)}}async post(e,t,n){try{return await this.baseFetch(e,{method:"POST",...t?{body:t}:{},...n})}catch(e){throw fe(e)}}async delete(e,t){try{return await this.baseFetch(e,{method:"DELETE",...t})}catch(e){throw fe(e)}}constructor({appId:e,appClientId:t,client:n,defaults:r}){this.appId=e,this.appClientId=t,this.clientAnalyticsId=n.clientAnalyticsId,this.sdkVersion=st,this.client=n,this.defaults=r,this.fallbackApiUrl=n.fallbackApiUrl,this.baseFetch=Wt.create({baseURL:this.defaults.baseURL,timeout:this.defaults.timeout,retry:3,retryDelay:500,retryStatusCodes:[408,409,425,500,502,503,504],credentials:"include",onRequest:async({request:e,options:t})=>{let n=new Headers(t.headers);n.set("privy-app-id",this.appId),this.appClientId&&n.set("privy-client-id",this.appClientId),n.set("privy-ca-id",this.clientAnalyticsId||""),n.set("privy-client",`react-auth:${this.sdkVersion}`);let r=ra.includes(e.toString());if(!n.has("authorization")){let e=await this.client.getAccessToken({disableAutoRefresh:r});null!==e&&n.set("authorization",`Bearer ${e}`)}t.headers=n,t.retryDelay&&"number"==typeof t.retryDelay&&(t.retryDelay=3*t.retryDelay)},onRequestError:({error:e})=>{if(e instanceof DOMException&&"AbortError"===e.name)throw new ve}})}}const ia=e=>({rpId:e.rp_id,challenge:e.challenge,allowCredentials:e.allow_credentials?.map((e=>({id:e.id,type:e.type,transports:e.transports})))||[],timeout:e.timeout,extensions:{appid:e.extensions?.app_id,credProps:e.extensions?.cred_props,hmacCreateSecret:e.extensions?.hmac_create_secret},userVerification:e.user_verification});class sa{async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(Mt,{token:this.meta.token})}catch(e){throw fe(e)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(xt,{token:this.meta.token})}catch(e){throw fe(e)}}constructor(e){this.meta={token:e}}}function oa(e){return e?{"privy-ui":"t"}:void 0}class la{async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.email||!this.meta.emailCode)throw new Ae("Email and email code must be set prior to calling authenticate.");try{return await this.api.post(Lt,{email:this.meta.email,code:this.meta.emailCode,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"})}catch(e){throw fe(e)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.email||!this.meta.emailCode)throw new Ae("Email and email code must be set prior to calling authenticate.");try{return await this.api.post(Dt,{email:this.meta.email,code:this.meta.emailCode})}catch(e){throw fe(e)}}async sendCodeEmail({email:e,captchaToken:t,withPrivyUi:n}){if(!this.api)throw new Ae("Auth flow has no API instance");if(e&&(this.meta.email=e),t&&(this.meta.captchaToken=t),!this.meta.email)throw new Ae("Email must be set when initialzing authentication.");let r=oa(n);try{return await this.api.post(jt,{email:this.meta.email,token:this.meta.captchaToken},{headers:{...r}})}catch(e){throw fe(e)}}constructor({email:e,captchaToken:t,disableSignup:n}){this.meta={email:e,captchaToken:t,disableSignup:n??!1}}}class ca extends la{async link(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.email||!this.meta.emailCode||!this.meta.oldAddress)throw new Ae("Email, email code, and an old email address must be set prior to calling update.");try{return await this.api.post(Ft,{oldAddress:this.meta.oldAddress,newAddress:this.meta.email,code:this.meta.emailCode})}catch(e){throw fe(e)}}constructor(e,t,n){super({email:t,captchaToken:n}),this.meta={email:t,captchaToken:n,oldAddress:e,disableSignup:!1}}}function da(e){return crypto.getRandomValues(new Uint8Array(e))}class ua{getOrCreateGuestCredential(e){let t=ot(e);if(Oe()){if(Re.get(t))return Re.get(t);{let e=T.encode(da(32));return Re.put(t,e),e}}return T.encode(da(32))}async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(qt,{guest_credential:this.meta.guestCredential})}catch(e){throw fe(e)}}async link(){throw Error("Linking is not supported for the guest flow")}constructor(e){this.meta={guestCredential:this.getOrCreateGuestCredential(e)}}}function ha(){return"undefined"!=typeof window&&"chrome-extension:"===window.location.protocol&&"chrome"in window}function pa(){if(!ha())return;let e=window.chrome;return e?.runtime?.id}function wa(){if(!ha())return!1;let e=window.chrome;return"function"==typeof e?.identity?.launchWebAuthFlow}async function ma(e){return new Promise(((t,n)=>{wa()?window.chrome.identity.launchWebAuthFlow({url:e,interactive:!0},(async e=>{try{let n=function(){if(!ha())return;let e=window.chrome;return e?.runtime?.lastError?.message}();if(n||!e){let e=`WebAuthFlow failed: ${n||"Response URI missing"}`;throw Error(e)}let r=new URL(e),a=pa();if(!a)throw Error("Invalid extension context");if("chrome-extension:"===r.protocol){if(r.hostname!==a)throw Error("Invalid responseUri origin")}else{if("https:"!==r.protocol)throw Error("Invalid responseUri protocol");{let e=r.hostname.split(".");if(3!==e.length||"chromiumapp"!==e[1]||"org"!==e[2]||e[0]!==a)throw Error("Invalid responseUri origin")}}let i=r.searchParams.get("privy_oauth_state"),s=r.searchParams.get("privy_oauth_code");if(!i||!s)throw Error("Invalid responseUri - missing required parameters");t({privyOAuthState:i,privyOAuthCode:s})}catch(e){n(e)}})):n(Error("Chrome identity API not available"))}))}function ya(){return T.encode(da(36))}function ga(){return ya()}async function fa(e,t="S256"){if("S256"!=t)return e;{let t=await async function(e){let t=(new TextEncoder).encode(e);return new Uint8Array(await crypto.subtle.digest("SHA-256",t))}(e);return T.encode(t)}}class va{addCaptchaToken(e){this.meta.captchaToken=e}isActive(){return!!(this.meta.authorizationCode&&this.meta.stateCode&&this.meta.provider)}async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.authorizationCode||!this.meta.stateCode)throw new Ae("[OAuth AuthFlow] Authorization and state codes code must be set prior to calling authenticate.");if("undefined"===this.meta.authorizationCode)throw new Ae("User denied confirmation during OAuth flow");let e=function(){let e=Re.get(lt);if(!e)throw new Ae("Authentication error.");return e}();try{let t=await this.api.post(zt,{authorization_code:this.meta.authorizationCode,state_code:this.meta.stateCode,code_verifier:e,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"});return Re.del(lt),Re.del(ct),Re.del(dt),t}catch(e){let t=fe(e);if(t.privyErrorCode)throw new Ae(t.message||"Invalid code during OAuth flow.",void 0,t.privyErrorCode);if("User denied confirmation during OAuth flow"===t.message)throw new Ae("Invalid code during oauth flow.",void 0,ke.OAUTH_USER_DENIED);throw new Ae("Invalid code during OAuth flow.",void 0,ke.UNKNOWN_AUTH_ERROR)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.authorizationCode||!this.meta.stateCode)throw new Ae("[OAuth AuthFlow] Authorization and state codes code must be set prior to calling link.");if("undefined"===this.meta.authorizationCode)throw new Ae("User denied confirmation during OAuth flow");let e=Re.get(lt);if(!e)throw new Ae("Authentication error.");try{let t=await this.api.post(Ht,{authorization_code:this.meta.authorizationCode,state_code:this.meta.stateCode,code_verifier:e});return Re.del(lt),t}catch(e){throw fe(e)}}async getAuthorizationUrl(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.provider)throw new Ae("Provider must be set when initializing OAuth authentication.");let e=ya();Re.put(lt,e);let t=ga();Re.put(ut,t);let n=await fa(e);this.meta.withPrivyUi||Re.put(ct,!0),this.meta.disableSignup?Re.put(dt,!0):Re.del(dt);let r=oa(this.meta.withPrivyUi),a=window.location.href,i=function(){let e=pa();if(e)return`https://${e}.chromiumapp.org`}();i&&(a=i);try{return await this.api.post(Vt,{provider:this.meta.provider,redirect_to:this.meta.customOAuthRedirectUrl||a,token:this.meta.captchaToken,code_challenge:n,state_code:t},{headers:{...r}})}catch(e){throw fe(e)}}constructor(e){this.meta=e}}function Aa(){let e=new URLSearchParams(window.location.search),t=e.get("privy_oauth_code"),n=e.get("privy_oauth_state"),r=e.get("privy_oauth_provider");if(!t||!n||!r)return{inProgress:!1};let a=!1;try{a=!!window.opener.location.origin}catch{}return{inProgress:!0,authorizationCode:t,stateCode:n,provider:r,withPrivyUi:!Re.get(ct),popupFlow:null!==window.opener&&a,disableSignup:!!Re.get(dt)}}function ka(){let e=new URL(window.location.href);e.searchParams.delete("privy_oauth_code"),e.searchParams.delete("privy_oauth_provider"),e.searchParams.delete("privy_oauth_state"),Re.del(ut),window.history.replaceState({},"",e)}class Ta{execute(e){return null===this.promise&&(this.promise=(async()=>{try{return await this.fn(e)}finally{this.promise=null}})()),this.promise}constructor(e){this.promise=null,this.fn=e}}const Ca=({address:e,chainId:t,nonce:n})=>`${window.location.host} wants you to sign in with your Ethereum account:\n${e}\n\nBy signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: ${t}\nNonce: ${n}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`;class _a{get meta(){return{connectorType:this.wallet?.connectorType,walletClientType:this.wallet?.walletClientType,chainId:this.wallet?.chainId,address:this.wallet?.address,disableSignup:this._meta.disableSignup}}async authenticate(){if(!this.client)throw new Ae("SiweFlow has no client instance");try{if(this.preparedMessage&&this.signature)return await this.client.authenticateWithSiweInternal({message:this.preparedMessage,signature:this.signature,chainId:this.wallet?.chainId,walletClientType:this.walletClientType??this.wallet?.walletClientType,connectorType:this.connectorType??this.wallet?.connectorType,mode:this._meta.disableSignup?"no-signup":"login-or-sign-up"});if(!this.wallet)throw new Ae("SiweFlow has no wallet instance");let{message:e,signature:t}=await this.sign();return await this.client.authenticateWithSiweInternal({message:e,signature:t,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"})}catch(e){throw fe(e)}}async link(){if(!this.client)throw new Ae("SiweFlow has no client instance");try{if(!this.wallet)throw new Ae("SiweFlow has no wallet instance");let{message:e,signature:t}=await this.sign();return await this.client.linkWithSiweInternal({message:e,signature:t,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType})}catch(e){throw fe(e)}}async sign(){if(!this.client)throw new Ae("SiweFlow has no client instance");if(await this.buildMessage(),!this.preparedMessage)throw new Ae("Could not prepare SIWE message");if(!this.wallet)throw new Ae("SiweFlow has no wallet instance");let e=await this.wallet.sign(this.preparedMessage);return{message:this.preparedMessage,signature:e}}async _getNonceOnce(){if(!this.client)throw new Ae("SiweFlow has no client instance");if(!this.wallet)throw new Ae("UI SiweFlow has no wallet instance");return await this.client.generateSiweNonce({address:this.wallet.address,captchaToken:this.captchaToken})}async buildMessage(){if(!this.client)throw new Ae("SiweFlow has no client instance");if(!this.wallet)throw new Ae("SiweFlow has no wallet instance");let e=this.wallet.address,t=this.wallet.chainId.replace("eip155:","");return this.nonce||(this.nonce=await this.getNonceOnce.execute()),this.preparedMessage=Ca({address:e,chainId:t,nonce:this.nonce}),this.preparedMessage}constructor(e,t,n,r=!1,a){this._meta={disableSignup:!1},this.getNonceOnce=new Ta(this._getNonceOnce.bind(this)),this.wallet=t,this.captchaToken=n,this.client=e,this._meta.disableSignup=r,this.preparedMessage=a?.message,this.signature=a?.signature,this.walletClientType=a?.walletClientType,this.connectorType=a?.connectorType}}class Sa{async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new Ae("phone number and sms code must be set prior to calling authenticate.");try{return await this.api.post(Bt,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"})}catch(e){throw fe(e)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new Ae("phone number and sms code must be set prior to calling authenticate.");try{return await this.api.post(Kt,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode})}catch(e){throw fe(e)}}async sendSmsCode({phoneNumber:e,captchaToken:t,withPrivyUi:n}){if(!this.api)throw new Ae("Auth flow has no API instance");if(e&&(this.meta.phoneNumber=e),t&&(this.meta.captchaToken=t),!this.meta.phoneNumber)throw new Ae("phone nNumber must be set when initialzing authentication.");let r=oa(n);try{return await this.api.post($t,{phoneNumber:this.meta.phoneNumber,token:this.meta.captchaToken},{headers:{...r}})}catch(e){throw fe(e)}}constructor({phoneNumber:e,captchaToken:t,disableSignup:n}){this.meta={phoneNumber:e,captchaToken:t,disableSignup:n??!1}}}class ba extends Sa{async link(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode||!this.meta.oldPhoneNumber)throw new Ae("Phone number, sms code, and an old phone number must be set prior to calling update.");try{return await this.api.post(Gt,{old_phone_number:this.meta.oldPhoneNumber,new_phone_number:this.meta.phoneNumber,code:this.meta.smsCode})}catch(e){throw fe(e)}}constructor(e,t,n){super({phoneNumber:t,captchaToken:n}),this.meta={phoneNumber:t,captchaToken:n,oldPhoneNumber:e,disableSignup:!1}}}function Ea(){return!(ze&&window.location.origin.startsWith("http://localhost"))}var Ia,Pa=((Ia={}).PRIVY="privy_access_token",Ia.CUSTOMER="customer_access_token",Ia);class Ua{get token(){return this.privyAccessToken||this.customerAccessToken}getToken(e){return"privy_access_token"===e?this.privyAccessToken:this.customerAccessToken}get customerAccessToken(){return this._getToken(ht)}get privyAccessToken(){return this._getToken(pt)}_getToken(e){try{let t=Re.get(e);return"string"==typeof t?Mr.throwIfNotWellFormedJwt(t):null}catch(e){return console.error(e),this.destroyLocalState(),null}}get refreshToken(){try{let e=Re.get(wt);return"string"==typeof e?e:null}catch(e){return console.error(e),this.destroyLocalState(),null}}getProviderAccessToken(e){try{let t=Re.get(mt(e));if("string"!=typeof t)return null;{let n=new Mr(t);return n.isExpired()?(Re.del(mt(e)),null):n.value}}catch(e){return console.error(e),null}}get mightHaveServerCookies(){try{let e=Ln.get(yt);return void 0!==e&&e.length>0}catch(e){console.error(e)}return!1}hasRefreshCredentials(e="privy_access_token"){let t="string"==typeof this.getToken(e),n="string"==typeof this.refreshToken&&this.refreshToken!==gt;return this.mightHaveServerCookies||t&&n}hasActiveAccessToken(e){let t=Mr.parse(this.getToken(e));return null!==t&&!t.isExpired(30)}authenticate(e){return this.authenticateOnce.execute(e)}link(e){return this.linkOnce.execute(e)}refresh(){return this.refreshOnce.execute()}destroy(){return this.destroyOnce.execute()}storeProviderAccessToken(e,t){"string"==typeof t?Re.put(mt(e),t):Re.del(mt(e))}updateIdentityToken(e){"string"==typeof e?this.storeIdentityToken(e):this.clearIdentityToken()}async _authenticate(e){try{let t=await e.authenticate(),{user:n,is_new_user:r,oauth_tokens:a}=t;this.handleTokenResponse(t);let i=a?{provider:a.provider,accessToken:a.access_token,accessTokenExpiresInSeconds:a.access_token_expires_in_seconds,refreshToken:a.refresh_token,refreshTokenExpiresInSeconds:a.refresh_token_expires_in_seconds,scopes:a.scopes}:void 0;return this._trackAuthenticateEvents(e,r),{user:C(n),isNewUser:r,oAuthTokens:i}}catch(e){throw console.warn("Error authenticating session"),Te(e)}}_trackAuthenticateEvents(e,t){let n=function(e){return e instanceof la?"email":e instanceof Sa?"sms":e instanceof _a?"siwe":e instanceof ua?"guest":e instanceof sa?"custom_auth":e instanceof va?e.meta.provider:null}(e);n&&this.client&&this.client.createAnalyticsEvent({eventName:"sdk_authenticate",payload:{method:n,isNewUser:t}}),"siwe"===n&&this.client&&this.client.createAnalyticsEvent({eventName:"sdk_authenticate_siwe",payload:{connectorType:e.meta.connectorType,walletClientType:e.meta.walletClientType}})}async _link(e){try{let t=await e.link(),n=t.oauth_tokens,r=n?{provider:n.provider,accessToken:n.access_token,accessTokenExpiresInSeconds:n.access_token_expires_in_seconds,refreshToken:n.refresh_token,refreshTokenExpiresInSeconds:n.refresh_token_expires_in_seconds,scopes:n.scopes}:void 0;return{user:C(t),oAuthTokens:r}}catch(e){throw console.warn("Error linking account"),Te(e)}}async _refresh(){if(!this.api)throw new Ae("Session has no API instance");if(!this.client)throw new Ae("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let e=this.token,t=this.refreshToken;if(this.client.useServerCookies&&!this.mightHaveServerCookies&&this.token&&window.location.origin===this.client.apiUrl)return this.destroyLocalState(),null;try{let n;if(!(e&&t||this.mightHaveServerCookies))return null;{let r={};e&&(r.authorization=`Bearer ${e}`),n=await this.api.post(Nt,t?{refresh_token:t}:{},{headers:r})}return this.handleTokenResponse(n),C(n.user)}catch(e){if(e instanceof Ce&&e.privyErrorCode===ke.MISSING_OR_INVALID_TOKEN)return console.warn("Unable to refresh tokens - token is missing or no longer valid"),this.destroyLocalState(),null;throw Te(e)}}handleTokenResponse(e){e.session_update_action&&"set"!==e.session_update_action?"clear"===e.session_update_action?this.destroyLocalState():"ignore"===e.session_update_action&&(e.token&&(this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token)),e.identity_token&&this.storeIdentityToken(e.identity_token)):this._storeAllTokens(e)}_storeAllTokens(e){this.storeRefreshToken(e.refresh_token),this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token),e.identity_token&&this.storeIdentityToken(e.identity_token)}async _destroy(){try{await(this.api?.post(Ot,{refresh_token:this.refreshToken}))}catch(e){console.warn("Error destroying session")}this.destroyLocalState()}destroyLocalState(){this.storeRefreshToken(null),this.storeCustomerAccessToken(null),this.storePrivyAccessToken(null),this.clearIdentityToken()}storeCustomerAccessToken(e){if("string"==typeof e){let t=Re.get(ht);if(Re.put(ht,e),!this.client?.useServerCookies){let t=Mr.parse(e)?.expiration;Ln.set(ft,e,{sameSite:"Strict",secure:Ea(),expires:t?new Date(1e3*t):void 0})}t!==e&&this.client?.onStoreCustomerAccessToken?.(e)}else Re.del(ht),Ln.remove(ft),this.client?.onDeleteCustomerAccessToken?.()}storeRefreshToken(e){"string"==typeof e?(Re.put(wt,e),this.client?.useServerCookies||Ln.set(yt,"t",{sameSite:"Strict",secure:Ea(),expires:30})):(Re.del(wt),Ln.remove(vt),Ln.remove(yt))}storePrivyAccessToken(e){"string"==typeof e?Re.put(pt,e):Re.del(pt)}storeIdentityToken(e){if(ta.setState({identityToken:e}),this.client?.useServerCookies)return;Re.put(At,e);let t=Mr.parse(e)?.expiration;Ln.set(kt,e,{sameSite:"Strict",secure:Ea(),expires:t?new Date(1e3*t):void 0})}clearIdentityToken(){Re.del(At),ta.setState({identityToken:null}),Ln.remove(kt)}constructor(){this.authenticateOnce=new Ta((async e=>this._authenticate(e))),this.linkOnce=new Ta((async e=>this._link(e))),this.refreshOnce=new Ta(this._refresh.bind(this)),this.destroyOnce=new Ta(this._destroy.bind(this))}}let Wa,Na;var Oa=0,Ra="__private_"+Oa+++"__getOrGenerateClientAnalyticsId";class Ma{getAppId(){return this.appId}initializeConnectorManager({walletConnectCloudProjectId:e,rpcConfig:t,chains:n,defaultChain:r,store:a,walletList:i,shouldEnforceDefaultChainOnConnect:s,externalWalletConfig:o,appName:l,walletChainType:c,setBaseAccountSdk:d}){this.connectors||(this.connectors=new ea(this.appId,e,t,n,r,a,i,s,o,l,d,c))}generateApi(){let e=new aa({appId:this.appId,appClientId:this.appClientId,client:this,defaults:{baseURL:this.apiUrl,timeout:this.timeout}});return this.session.api=e,e}updateApiUrl(e){this.apiUrl=e||this.fallbackApiUrl,this.api=this.generateApi(),e&&(this.useServerCookies=!0)}authenticate(){if(!this.authFlow)throw new Ae("No auth flow in progress.");return this.session.authenticate(this.authFlow)}async link(){if(!this.authFlow)throw new Ae("No auth flow in progress.");let{oAuthTokens:e}=await this.session.link(this.authFlow);return{user:await this.getAuthenticatedUser(),oAuthTokens:e}}storeProviderAccessToken(e,t){this.session.storeProviderAccessToken(e,t)}getProviderAccessToken(e){return this.session.getProviderAccessToken(e)}async logout(){await this.session.destroy(),this.authFlow=void 0}clearProviderAcccessTokens(e){e.linkedAccounts.filter((e=>"cross_app"===e.type)).forEach((e=>{this.storeProviderAccessToken(e.providerApp.id,null)}))}startAuthFlow(e){return e.api=this.api,this.authFlow=e,this.authFlow}async initMfaSmsVerification(){try{await this.api.post(Yt,{action:"verify"})}catch(e){throw fe(e)}}async initMfaPasskeyVerification(){try{let e=await this.api.post(Jt,{});return ia(e.options)}catch(e){throw fe(e)}}async getCrossAppProviderDetails(e){try{return this._cachedProviderAppDetails[e]||(this._cachedProviderAppDetails[e]=await this.api.get(`/api/v1/apps/${e}/cross-app/details`)),this._cachedProviderAppDetails[e]}catch(e){console.error("Error fetching cross app provider details",e)}}async acceptTerms(){try{let e=await this.api.post(Qt,{});return C(e)}catch(e){throw Te(e)}}async unlinkEmail(e){try{let t=await this.api.post(Zt,{address:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw Te(e)}}async unlinkPhone(e){try{let t=await this.api.post(Xt,{phoneNumber:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw Te(e)}}async unlinkEthereumWallet(e){try{let t=await this.api.post(en,{address:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw Te(e)}}async unlinkSolanaWallet(e){try{let t=await this.api.post(tn,{address:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw Te(e)}}async unlinkOAuth(e,t){try{let n=await this.api.post(nn,{provider:e,subject:t});return await this.getAuthenticatedUser()??C(n)}catch(e){throw Te(e)}}async unlinkFarcaster(e){try{let t=await this.api.post(rn,{fid:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw Te(e)}}async unlinkTelegram(e){try{let t=await this.api.post(an,{telegram_user_id:e});return await this.getAuthenticatedUser()??C(t)}catch(e){throw Te(e)}}async revokeDelegatedWallet(){try{await this.api.post(sn,{})}catch(e){throw Te(e)}}async createAnalyticsEvent({eventName:e,payload:t,timestamp:n,options:r}){if("undefined"!=typeof window)try{this.clientAnalyticsId||console.warn("No client analytics id set, refusing to send analytics event"),await this.api.post(Rt,{event_name:e,client_id:this.clientAnalyticsId,payload:{...t||{},clientTimestamp:n?n.toISOString():(new Date).toISOString()}},{retry:-1,keepalive:r?.keepAlive??!1})}catch(e){console.log("Unable to submit event. This is not an issue.")}}async signMoonpayOnRampUrl(e){try{return this.api.post(on,e)}catch(e){throw Te(e)}}async initCoinbaseOnRamp(e){try{return this.api.post(ln,e)}catch(e){throw Te(e)}}async getCoinbaseOnRampStatus({partnerUserId:e}){try{return this.api.get(`${cn}?partnerUserId=${e}`)}catch(e){throw Te(e)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()?this.session.refresh():null}async getAccessToken(e){return await this.getPrivyAccessToken(e)||await this.getCustomerAccessToken(e)}async getCustomerAccessToken(e){return await this._getToken(Pa.CUSTOMER,e)}async getPrivyAccessToken(e){return await this._getToken(Pa.PRIVY,e)}async _getToken(e,t){return this.session.getToken(e)?this.session.hasActiveAccessToken(e)?this.session.hasRefreshCredentials(e)?xr.parse(this.session.getToken(e))?.appId!==this.appId?(await this.logout(),null):this.session.getToken(e):(this.session.destroyLocalState(),null):!t?.disableAutoRefresh&&this.session.hasRefreshCredentials(e)?(await this.session.refresh(),this.session.getToken(e)):null:null}async getUsdTokenPrice(e){try{return(await this.api.get(`/api/v1/token_price?chainId=${e.id}&tokenSymbol=${e.nativeCurrency.symbol}`)).usd}catch(t){return void console.error(`Unable to fetch token price for chain with id ${e.id}`)}}async getUsdPriceForSol(){try{return(await this.api.get("/api/v1/token_price?chainId=0&tokenSymbol=SOL")).usd}catch(e){return void console.error("Unable to fetch token price for SOL")}}async getSplTokenMetadata({mintAddress:e,cluster:t}){try{return await this.api.get(`/api/v1/spl_token_info?mint_address=${e}&cluster=${t}`)}catch(n){return void console.error(`Unable to fetch token metadata for ${t}:${e}`)}}async requestFarcasterSignerStatus(e){try{return await this.api.post("/api/v1/farcaster/signer/status",{ed25519_public_key:e})}catch(e){throw console.error("Unable to fetch Farcaster signer status"),e}}async generateSiweNonce({address:e,captchaToken:t}){try{return(await this.api.post(dn,{address:e,token:t})).nonce}catch(e){throw Te(e)}}async authenticateWithSiweInternal({message:e,signature:t,chainId:n,walletClientType:r,connectorType:a,mode:i}){return await this.api.post(un,{message:e,signature:t,chainId:n,walletClientType:r,connectorType:a,mode:i})}async linkWithSiweInternal({message:e,signature:t,chainId:n,walletClientType:r,connectorType:a}){return await this.api.post(hn,{message:e,signature:t,chainId:n,walletClientType:r,connectorType:a})}async linkSmartWallet({message:e,signature:t,smartWalletType:n,smartWalletVersion:r}){try{let a=await this.api.post(pn,{message:e,signature:t,smart_wallet_type:n,smart_wallet_version:r});return C(a)}catch(e){throw Te(e)}}async linkWithSiwe({message:e,signature:t,chainId:n,walletClientType:r,connectorType:a}){try{let i=await this.linkWithSiweInternal({message:e,signature:t,chainId:n,walletClientType:r,connectorType:a});return C(i)}catch(e){throw Te(e)}}async generateSiwsNonce({address:e,captchaToken:t}){try{return(await this.api.post(wn,{address:e,token:t})).nonce}catch(e){throw Te(e)}}async authenticateWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,mode:a,messageType:i="plain"}){return await this.api.post(mn,{message:e,signature:t,walletClientType:n,connectorType:r,mode:a,message_type:i})}async authenticateWithSiws({message:e,signature:t,walletClientType:n,connectorType:r,mode:a,messageType:i="plain"}){let s=await this.authenticateWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,mode:a,messageType:i});this.session.handleTokenResponse(s);let o=C(s.user);if(!o)throw Error("Authentication failed - no user returned");return{user:o,isNewUser:s.is_new_user||!1}}async sendAccountTransferRequest({nonce:e,account:t,accountType:n,externalWalletMetadata:r,telegramAuthResult:a,telegramWebAppData:i,farcasterEmbeddedAddress:s,oAuthUserInfo:o}){try{let l,c;switch(n){case"email":l=Tn,c={nonce:e,email:t};break;case"sms":l=kn,c={nonce:e,phoneNumber:t};break;case"siwe":if(l=An,!r)throw Error("Wallet parameters must be defined");c={nonce:e,address:t,...r};break;case"farcaster":l=vn,c={nonce:e,farcaster_id:t,farcaster_embedded_address:s};break;case"telegram":l=fn,c={nonce:e,telegram_auth_result:a,telegram_web_app_data:i};break;case"siws":l=gn,c={nonce:e,address:t,...r};break;case"custom":case"guest":case"passkey":throw Error("Invalid transfer account type");default:l=yn,c={nonce:e,userInfo:o}}let d=await this.api.post(l,c);return await this.getAuthenticatedUser()??C(d)}catch(e){throw Te(e)}}async linkWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,messageType:a="plain"}){return await this.api.post(Cn,{message:e,signature:t,walletClientType:n,connectorType:r,message_type:a})}async linkWithSiws({message:e,signature:t,walletClientType:n,connectorType:r,messageType:a="plain"}){try{let i=await this.linkWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,messageType:a});return C(i)}catch(e){throw Te(e)}}async updateUserAndIdToken(){try{let e=await this.api.get(_n);return this.session.updateIdentityToken(e.identity_token),C(e.user)}catch(e){throw Te(e)}}async scanTransaction(e){try{return await this.api.post(Sn,e)}catch(e){throw Te(e)}}constructor({apiUrl:e=Tt,appId:t,appClientId:n,timeout:r=Ct}){Object.defineProperty(this,Ra,{value:xa}),this._cachedProviderAppDetails={},this.apiUrl=e,this.fallbackApiUrl=this.apiUrl,this.useServerCookies=e!==Tt&&e.startsWith("https://privy."),this.timeout=r,this.appId=t,this.appClientId=n,this.clientAnalyticsId=function(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}(this,Ra)[Ra](),Wa||(Wa=new Ua),this.session=Wa,this.api=this.generateApi(),this.session.client=this}}function xa(){if("undefined"==typeof window)return null;try{let e=Re.get(_t);if("string"==typeof e&&e.length>0)return e}catch(e){}let e=A();try{return Re.put(_t,e),e}catch(t){return e}}function Fa(){if(!Na)throw new Ae("No global PrivyClient instance found. Please ensure you have initialized the PrivyProvider.");return Na}async function La(){return await(Na?.updateUserAndIdToken()),Na?.useServerCookies?ta.getState().identityToken:Promise.resolve(Re.get(At)||null)}class Da{get meta(){return this._meta}async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.channelToken)throw new Ae("Auth flow must be initialized first");try{let e=await this.api.post(bn,{channel_token:this.meta.channelToken,message:this.message,signature:this.signature,fid:this.fid,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"});if(!e)throw new Ae("No response from authentication");return e}catch(e){throw fe(e)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(En,{channel_token:this.meta.channelToken,message:this.message,signature:this.signature,fid:this.fid})}catch(e){throw fe(e)}}async _startChannelOnce(){if(!this.api)throw new Ae("Auth flow has no API instance");let e=await this.api.post(In,{token:this.captchaToken});qe&&!He&&e.connect_uri&&Qe(e.connect_uri,"_blank"),this._meta={...this._meta,connectUri:e.connect_uri,channelToken:e.channel_token}}async initializeFarcasterConnect(){if(!this.api)throw new Ae("Auth flow has no API instance");await this.startChannelOnce.execute()}async _pollForReady(){if(!this.api)throw new Ae("Auth flow has no API instance");if(!this.meta.channelToken)throw new Ae("Auth flow must be initialized first");let e=await this.api.get(Pn,{headers:{"farcaster-channel-token":this.meta.channelToken}});return"completed"===e.state&&(this.message=e.message,this.signature=e.signature,this.fid=e.fid,!0)}constructor(e,t=!1){this._meta={disableSignup:!1},this.captchaToken=e,this.startChannelOnce=new Ta(this._startChannelOnce.bind(this)),this.pollForReady=new Ta(this._pollForReady.bind(this)),this._meta.disableSignup=t}}class ja{async initRegisterFlow(e){if(!this.api)throw new Ae("Auth flow has no API instance");this.authenticateForRegistration=!0,this.meta.initRegisterResponse=await this.initRegisterOnce.execute(e)}async initAuthenticationFlow(e){if(!this.api)throw new Ae("Auth flow has no API instance");this.authenticateForRegistration=!1,this.meta.initAuthenticateResponse=await this.initAuthenticateOnce.execute(e)}async initLinkFlow(){if(!this.api)throw new Ae("Auth flow has no API instance");this.meta.initLinkResponse=await this.initLinkOnce.execute()}async register(){let e=await import("@simplewebauthn/browser");if(!this.api)throw new Ae("Auth flow has no API instance");if(!e.browserSupportsWebAuthn())throw new Ae("WebAuthn is not supported in this browser");this.meta.initRegisterResponse||(this.meta.initRegisterResponse=await this.initRegisterOnce.execute());try{let t=this.meta.initRegisterResponse.options,n=await e.startRegistration({optionsJSON:this._transformInitLinkOptionsToCamelCase(t)});return this.meta.setPasskeyAuthState?.({status:"submitting-response"}),await this.api.post(Un,{relying_party:this.meta.initRegisterResponse.relying_party,authenticator_response:this._transformRegistrationResponseToSnakeCase(n)})}catch(e){if("NotAllowedError"===e.name)throw new Ae("Passkey request timed out or rejected by user.",void 0,ke.PASSKEY_NOT_ALLOWED);throw fe(e)}}async authenticate(){if(this.authenticateForRegistration)return this.register();let e=await import("@simplewebauthn/browser");if(!this.api)throw new Ae("Auth flow has no API instance");if(!e.browserSupportsWebAuthn())throw new Ae("WebAuthn is not supported in this browser");this.meta.initAuthenticateResponse||(this.meta.initAuthenticateResponse=await this.initAuthenticateOnce.execute());let t=this.meta.allowedCredentialsIds?.map((e=>({type:"public-key",id:e})))??this.meta.initAuthenticateResponse.options.allow_credentials;try{let n=await e.startAuthentication({optionsJSON:this._transformInitAuthenticateOptionsToCamelCase({...this.meta.initAuthenticateResponse.options,allow_credentials:t})});return this.meta.setPasskeyAuthState?.({status:"submitting-response"}),await this.api.post(Wn,{relying_party:this.meta.initAuthenticateResponse.relying_party,challenge:this.meta.initAuthenticateResponse.options.challenge,authenticator_response:this._transformAuthenticationResponseToSnakeCase(n)})}catch(e){if("NotAllowedError"===e.name)throw new Ae("Passkey request timed out or rejected by user.",void 0,ke.PASSKEY_NOT_ALLOWED);throw fe(e)}}async link(){let e=await import("@simplewebauthn/browser");if(!this.api)throw new Ae("Auth flow has no API instance");if(!e.browserSupportsWebAuthn())throw new Ae("WebAuthn is not supported in this browser");this.meta.initLinkResponse||(this.meta.initLinkResponse=await this.initLinkOnce.execute());try{let t=this.meta.initLinkResponse.options,n=await e.startRegistration({optionsJSON:this._transformInitLinkOptionsToCamelCase(t)});return this.meta.setPasskeyAuthState?.({status:"submitting-response"}),await this.api.post(Nn,{relying_party:this.meta.initLinkResponse.relying_party,authenticator_response:this._transformRegistrationResponseToSnakeCase(n)})}catch(e){if("NotAllowedError"===e.name)throw new Ae("Passkey request timed out or rejected by user.",void 0,ke.PASSKEY_NOT_ALLOWED);throw fe(e)}}async _initRegisterOnce(e){if(!this.api)throw new Ae("Auth flow has no API instance");let t=oa(e);return await this.api.post(On,{token:this.meta.captchaToken},{headers:{...t}})}async _initAuthenticateOnce(e){if(!this.api)throw new Ae("Auth flow has no API instance");let t=oa(e);return await this.api.post(Rn,{token:this.meta.captchaToken},{headers:{...t}})}async _initLinkOnce(){if(!this.api)throw new Ae("Auth flow has no API instance");return await this.api.post(Mn,{})}_transformInitLinkOptionsToCamelCase(e){return{rp:e.rp,user:{id:e.user.id,name:e.user.name,displayName:e.user.display_name},challenge:e.challenge,pubKeyCredParams:e.pub_key_cred_params.map((e=>({type:e.type,alg:e.alg}))),timeout:e.timeout,excludeCredentials:e.exclude_credentials?.map((e=>({id:e.id,type:e.type,transports:e.transports}))),authenticatorSelection:{authenticatorAttachment:e.authenticator_selection?.authenticator_attachment,requireResidentKey:e.authenticator_selection?.require_resident_key,residentKey:e.authenticator_selection?.resident_key,userVerification:e.authenticator_selection?.user_verification},attestation:e.attestation,extensions:{appid:e.extensions?.app_id,credProps:e.extensions?.cred_props?.rk,hmacCreateSecret:e.extensions?.hmac_create_secret},hints:this.meta.hints}}_transformRegistrationResponseToSnakeCase(e){return{id:e.id,raw_id:e.rawId,response:{client_data_json:e.response.clientDataJSON,attestation_object:e.response.attestationObject,authenticator_data:e.response.authenticatorData},authenticator_attachment:e.authenticatorAttachment,client_extension_results:{app_id:e.clientExtensionResults.appid,cred_props:e.clientExtensionResults.credProps,hmac_create_secret:e.clientExtensionResults.hmacCreateSecret},type:e.type}}_transformInitAuthenticateOptionsToCamelCase(e){return{rpId:e.rp_id,challenge:e.challenge,allowCredentials:e.allow_credentials?.map((e=>({id:e.id,type:e.type,transports:e.transports})))||[],timeout:e.timeout,extensions:{appid:e.extensions?.app_id,credProps:e.extensions?.cred_props,hmacCreateSecret:e.extensions?.hmac_create_secret},userVerification:e.user_verification}}_transformAuthenticationResponseToSnakeCase(e){return{id:e.id,raw_id:e.rawId,response:{client_data_json:e.response.clientDataJSON,authenticator_data:e.response.authenticatorData,signature:e.response.signature,user_handle:e.response.userHandle},authenticator_attachment:e.authenticatorAttachment,client_extension_results:{app_id:e.clientExtensionResults.appid,cred_props:e.clientExtensionResults.credProps,hmac_create_secret:e.clientExtensionResults.hmacCreateSecret},type:e.type}}constructor({captchaToken:e,setPasskeyAuthState:t,hints:n}){this.authenticateForRegistration=!1,this.initRegisterOnce=new Ta(this._initRegisterOnce.bind(this)),this.initAuthenticateOnce=new Ta(this._initAuthenticateOnce.bind(this)),this.initLinkOnce=new Ta(this._initLinkOnce.bind(this)),this.meta={captchaToken:e,setPasskeyAuthState:t,hints:n}}}class qa{get meta(){return{connectorType:this.wallet.connectorType,walletClientType:this.wallet.walletClientType,disableSignup:this._meta.disableSignup,messageType:this._meta.messageType,address:this.wallet?.address}}set messageType(e){this._meta.messageType=e}async authenticate(){if(!this.client)throw new Ae("SiwsFlow has no client instance");try{let{message:e,signature:t}=await this.sign();return await this.client.authenticateWithSiwsInternal({message:e,signature:t,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up",messageType:this.meta.messageType})}catch(e){throw fe(e)}}async link(){if(!this.client)throw new Ae("SiwsFlow has no client instance");try{let{message:e,signature:t}=await this.sign();return await this.client.linkWithSiwsInternal({message:e,signature:t,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType,messageType:this.meta.messageType})}catch(e){throw fe(e)}}async sign(){let e,t;if(!this.client)throw new Ae("SiwsFlow has no client instance");await this.buildMessage();let n="transaction"===this.meta.messageType;if(!this.preparedMessage)throw new Ae("Could not prepare SIWS message");if(!n&&!this.wallet.provider.signMessage||n&&!this.wallet.provider.signTransaction)throw new Ae("Wallet does not support the necessary signing methods");if(n&&this._plugin){let n=await this.wallet.provider.signTransaction({transaction:Kn.decode(this.preparedMessage)});e=Kn.encode(n.signedTransaction),t=this._plugin.getSignatureFromTransaction(n.signedTransaction,this.wallet.address)}else{e=this.preparedMessage;let n=await this.wallet.provider.signMessage({message:(new TextEncoder).encode(this.preparedMessage)});t=Kn.encode(n.signature)}return{message:e,signature:t}}async _getNonceOnce(){if(!this.client)throw new Ae("SiwsFlow has no client instance");return await this.client.generateSiwsNonce({address:this.wallet.address,captchaToken:this.captchaToken})}async buildMessage(){if(!this.client)throw new Ae("SiwsFlow has no client instance");let e=this.wallet.address;return this.nonce||(this.nonce=await this.getNonceOnce.execute()),"transaction"===this.meta.messageType&&this._plugin?this.preparedMessage=this._plugin.createSiwsMemoTransaction({address:e,nonce:this.nonce}):this.preparedMessage=et({address:e,nonce:this.nonce}),this.preparedMessage}constructor(e,t,n,r=!1,a="plain",i){this._meta={disableSignup:!1,messageType:"plain"},this.getNonceOnce=new Ta(this._getNonceOnce.bind(this)),this.wallet=e,this.captchaToken=n,this.client=t,this._meta.disableSignup=r,this._meta.messageType=a,this._plugin=i}}const za=/*#__PURE__*/i({enabled:!1,siteKey:"",provider:void 0,appId:void 0,token:void 0,error:void 0,status:"disabled",setToken:Se,setError:Se,setExecuting:Se,waitForResult:()=>Promise.resolve(""),ref:{current:null},remove:be,reset:Se,execute:Se});class Ha extends _e{constructor(e,t,n){super(e||"Captcha failed"),this.type="Captcha",t instanceof Error&&(this.cause=t),this.privyErrorCode=n}}const Va=({children:e,appId:n,captchaSiteKey:r,enabledCaptchaProvider:a})=>{let i=s(null),c=s(null),[d,u]=o(),[h,p]=o(),[w,m]=o(!1),y=l((()=>a?w||d||h?!w||d||h?d&&!h?{status:"success",token:d}:h?{status:"error",error:h}:{status:"ready"}:{status:"loading"}:{status:"ready"}:{status:"disabled"}),[a,d,h,w]),g=l((()=>a?"turnstile"===a?{remove:()=>{i.current?.remove(),m(!1),p(void 0),u(void 0)},reset:()=>{i.current?.reset(),m(!1),p(void 0),u(void 0)},execute:()=>{m(!0),i.current?.execute()},waitForResult:async()=>{try{return await ee((()=>i.current?.getResponse()),{interval:200,timeout:2e4})}catch(e){throw new Ha("Captcha failed",null,ke.CAPTCHA_TIMEOUT)}}}:{remove:()=>{c.current?.removeCaptcha(),m(!1),p(void 0),u(void 0)},reset:()=>{c.current?.resetCaptcha(),m(!1),p(void 0),u(void 0)},execute:()=>{m(!0),c.current?.execute()},waitForResult:async()=>{try{return await ee((()=>{let e=c.current?.getResponse();if(e)return e}),{interval:200,timeout:2e4})}catch(e){throw new Ha("Captcha failed",null,ke.CAPTCHA_TIMEOUT)}}}:null),[a]),f=l((()=>{if(!a||!g)return{...y,enabled:!1,siteKey:"",appId:n,setToken:Se,setError:Se,setExecuting:Se,waitForResult:()=>Promise.resolve(void 0),remove:be,reset:Se,execute:Se,provider:void 0,ref:{current:null}};let e={...y,enabled:!0,appId:n,setToken:u,setError:p,setExecuting:m};return"turnstile"===a?{...e,provider:"turnstile",ref:i,siteKey:r.split("t:")[1]??"",...g}:{...e,provider:"hcaptcha",ref:c,siteKey:r.split("h:")[1]??"",...g}}),[y,a,g,n,r]);/*#__PURE__*/return t(za.Provider,{value:f,children:e})},Ba=()=>a(za);async function Ka(e){if(e.enabled){if("error"===e.status)throw new Ha(e.error,null,ke.CAPTCHA_FAILURE);return"success"===e.status?e.token:(e.execute(),await e.waitForResult())}}class $a{async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(xn,{captcha_token:this.meta.captchaToken,telegram_auth_result:this.meta.telegramAuthResult,telegram_web_app_data:this.meta.telegramWebAppData,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"})}catch(e){throw fe(e)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(Fn,{telegram_auth_result:this.meta.telegramAuthResult,telegram_web_app_data:this.meta.telegramWebAppData})}catch(e){throw fe(e)}}constructor(e,t=!1){this.meta={disableSignup:!1},this.meta={captchaToken:e,disableSignup:!1},this.meta.disableSignup=t}}function Ga(e){let t={detail:"",retryable:!1};return e?.privyErrorCode===ke.LINKED_TO_ANOTHER_USER&&(t.detail="This account has already been linked to another user."),e?.privyErrorCode===ke.DISALLOWED_LOGIN_METHOD&&(t.detail="Login with Telegram not allowed."),e?.privyErrorCode===ke.INVALID_DATA&&(t.retryable=!0,t.detail="Something went wrong. Try again."),e?.privyErrorCode===ke.CANNOT_LINK_MORE_OF_TYPE&&(t.retryable=!0,t.detail="Something went wrong. Try again."),e?.privyErrorCode===ke.INVALID_CREDENTIALS&&(t.retryable=!0,t.detail="Something went wrong. Try again."),e?.privyErrorCode===ke.TOO_MANY_REQUESTS&&(t.detail="Too many requests. Please wait before trying again."),e?.privyErrorCode===ke.TOO_MANY_REQUESTS&&e.message.includes("rate limit")&&(t.detail="Request limit reached for Telegram. Please wait a moment and try again."),e instanceof Ha&&(t.retryable=!0,t.detail="Something went wrong. Try again."),t}function Ya(e){return Object.fromEntries(decodeURIComponent(e).split("&").map((e=>e.split("=").map(decodeURIComponent))))}function Ja(){let e=new URL(window.location.href);e.searchParams.delete("id"),e.searchParams.delete("hash"),e.searchParams.delete("auth_date"),e.searchParams.delete("first_name"),e.searchParams.delete("last_name"),e.searchParams.delete("username"),e.searchParams.delete("photo_url"),e.hash="",window.history.replaceState({},"",e)}async function Qa(){let e=Fa();return e?e.getAccessToken():Promise.resolve(Re.get(pt)||Re.get(ht)||null)}let Za=/*#__PURE__*/u((()=>import("./TurnstileWrapper-Co-t5mTh.mjs"))),Xa=/*#__PURE__*/u((()=>import("./HCaptchaWrapper-CUi9LJsp.mjs")));const ei=n=>{let r=Ba();return c((()=>r.remove),[r.remove]),r.enabled&&r.provider?/*#__PURE__*/t(d,{fallback:null,children:/*#__PURE__*/e("div",{className:"hidden h-0 w-0",children:["turnstile"===r.provider&&/*#__PURE__*/t(Za,{...n,captchaContext:r}),"hcaptcha"===r.provider&&/*#__PURE__*/t(Xa,{...n,captchaContext:r})]})}):null};var ti=/*#__PURE__*/Object.freeze({__proto__:null,AccountNotFoundScreen:()=>import("./AccountNotFoundScreen-CVBAv1Mv.mjs"),AffirmativeConsentScreen:()=>import("./AffirmativeConsentScreen-CFSY5nE4.mjs"),AllowlistRejectionScreen:()=>import("./AllowlistRejectionScreen-0Z0EYviP.mjs"),AuthenticateWithWalletScreen:()=>import("./AuthenticateWithWalletScreen-BdJYQ2JJ.mjs"),AwaitingEvmToSolBridgingScreen:()=>import("./AwaitingEvmToSolBridgingScreen-D9Ef3Dnt.mjs"),AwaitingExternalEthereumTransferScreen:()=>import("./AwaitingExternalEthereumTransferScreen-mj07gSaD.mjs"),AwaitingPasswordlessCodeScreen:()=>import("./AwaitingPasswordlessCodeScreen-DE3g9VwQ.mjs"),AwaitingSolToEvmBridgingScreen:()=>import("./AwaitingSolToEvmBridgingScreen-CUKh2oVG.mjs"),CaptchaScreen:()=>import("./CaptchaScreen-Co8CjcuQ.mjs"),CoinbaseOnrampStatusScreen:()=>import("./CoinbaseOnrampStatusScreen-Da7VjKBi.mjs"),ConnectLedgerScreen:()=>import("./ConnectLedgerScreen-JDfzYq9M.mjs"),ConnectOnlyLandingScreen:()=>import("./ConnectOnlyLandingScreen-C0j3-tOW.mjs"),ConnectOnlyStatusScreen:()=>import("./ConnectOnlyStatusScreen-D-gYePr8.mjs"),ConnectOrCreateScreen:()=>import("./ConnectOrCreateScreen-CqLbK7av.mjs"),ConnectionStatusScreen:()=>import("./ConnectionStatusScreen-D8G_flGR.mjs"),CrossAppAuthScreen:()=>import("./CrossAppAuthScreen-Btm1d-iO.mjs"),DelegatedActionsConsentScreen:()=>import("./DelegatedActionsConsentScreen-DXwSOiLw.mjs"),DelegatedActionsRevokeScreen:()=>import("./DelegatedActionsRevokeScreen-B7uTGw9J.mjs"),EmbeddedWalletConnectingScreen:()=>import("./EmbeddedWalletConnectingScreen-BioR068C.mjs"),EmbeddedWalletCreatedScreen:()=>import("./EmbeddedWalletCreatedScreen-Cq1thot_.mjs"),EmbeddedWalletKeyExportScreen:()=>import("./EmbeddedWalletKeyExportScreen-CtEY8G7E.mjs"),EmbeddedWalletOnAccountCreateScreen:()=>import("./EmbeddedWalletOnAccountCreateScreen-ShyQ92Jq.mjs"),EmbeddedWalletPasswordCreateScreen:()=>import("./RecoveryPasswordCreateScreen-DZb7gDAd.mjs"),EmbeddedWalletPasswordUpdateScreen:()=>import("./EmbeddedWalletPasswordUpdateScreen-qoWRlbPz.mjs"),EmbeddedWalletPasswordUpdateSplashScreen:()=>import("./EmbeddedWalletPasswordUpdateSplashScreen-BeN-dpqi.mjs"),ErrorScreen:()=>import("./ErrorScreen-BpG9IyOu.mjs"),FarcasterConnectStatusScreen:()=>import("./FarcasterConnectStatusScreen-DadPWt5w.mjs"),FarcasterSignerStatusScreen:()=>import("./FarcasterSignerStatusScreen-DyJNx88F.mjs"),FundSolWalletWithExternalSolanaWallet:()=>import("./FundSolWalletWithExternalSolanaWallet-Dhp2jhkc.mjs"),FundingAmountEditScreen:()=>import("./FundingEditAmountScreen-D0KCT7EC.mjs"),FundingMethodSelectionScreen:()=>import("./FundingMethodSelectionScreen-CrHLwmNP.mjs"),InAppBrowserLoginNotPossible:()=>import("./InAppBrowserLoginNotPossible-CcbdJWpW.mjs"),InstallWalletScreen:()=>import("./InstallWalletScreen-0udkV09c.mjs"),LandingScreen:()=>import("./LandingScreen-C7xCusAZ.mjs"),LinkConflictScreen:()=>import("./LinkConflictScreen-B31exGN7.mjs"),LinkEmailScreen:()=>import("./LinkEmailScreen-DZf6HS1n.mjs"),LinkPasskeyScreen:()=>import("./LinkPasskeyScreen-Bl7uzJ8Q.mjs"),LinkPhoneScreen:()=>import("./LinkPhoneScreen-DUIIaqp0.mjs"),LoginFailedScreen:()=>import("./LoginFailedScreen-DsSbXSXA.mjs"),ManualTransferScreen:()=>import("./ManualTransferScreen-B-Kkarxd.mjs"),MfaAuthEnrollmentFlowScreen:()=>import("./MfaAuthEnrollmentFlowScreen-D82inQR9.mjs"),MfaAuthVerifyFlowScreen:()=>import("./MfaAuthVerifyFlowScreen-Cw5rWozq.mjs"),MfaEnrollmentFlowScreen:()=>import("./MfaEnrollmentFlowScreen-B3F6HEAl.mjs"),MoonpayStatusScreen:()=>import("./MoonpayStatusScreen-CBtEX6lf.mjs"),OAuthStatusScreen:()=>import("./OAuthStatusScreen-YCUnttYA.mjs"),PasskeySelectSignupOrLogin:()=>import("./PasskeySelectSignupOrLogin-DuXG4uXH.mjs"),PasskeyStatusScreen:()=>import("./PasskeyStatusScreen-DPvVVoC2.mjs"),PasswordRecoveryScreen:()=>import("./PasswordRecoveryScreen-IS0ckI65.mjs"),RecoveryOAuthScreen:()=>import("./RecoveryOAuthStatusScreen-CJO3irqx.mjs"),RecoverySelectionScreen:()=>import("./RecoverySelectionScreen-CThvVB-J.mjs"),SendTransactionScreen:()=>import("./index-CXuTLe54.mjs"),SetAutomaticRecoveryScreen:()=>import("./SetAutomaticRecoveryScreen-D1IKpF6a.mjs"),SignRequestScreen:()=>import("./SignRequestScreen-DKJky_Un.mjs"),StandardSignAndSendTransactionScreen:()=>import("./StandardSignAndSendTransactionScreen-CPKZQMPj.mjs"),TelegramAuthScreen:()=>import("./TelegramAuthScreen-bIm5jFOU.mjs"),TransferFromWalletScreen:()=>import("./TransferFromWalletScreen-ClNSdttH.mjs"),UpdateEmailScreen:()=>import("./UpdateEmailScreen-mog8U9Vt.mjs"),UpdatePhoneScreen:()=>import("./UpdatePhoneScreen-CLLjzpN7.mjs"),UserLimitReachedScreen:()=>import("./UserLimitReachedScreen-Baf8QzFD.mjs"),WalletInterstitialScreen:()=>import("./WalletInterstitialScreen-chmHYyvD.mjs")});function ni(e){Jn("configureMfa",e)}const ri=Ut((()=>({inProgressMfaFlow:void 0})));const ai=Gn`
|
|
2
|
+
:root {
|
|
3
|
+
${e=>ii(e.palette)}
|
|
4
|
+
};
|
|
5
|
+
`;const ii=e=>{let t=function(e){return{"--privy-color-background":e.background,"--privy-color-background-2":e.background2,"--privy-color-background-3":e.background3,"--privy-color-foreground":e.foreground,"--privy-color-foreground-2":e.foreground2,"--privy-color-foreground-3":e.foreground3,"--privy-color-foreground-4":e.foreground4,"--privy-color-foreground-accent":e.foregroundAccent,"--privy-color-accent":e.accent,"--privy-color-accent-light":e.accentLight,"--privy-color-accent-hover":e.accentHover,"--privy-color-accent-dark":e.accentDark,"--privy-color-accent-darkest":e.accentDarkest,"--privy-color-success":e.success,"--privy-color-success-dark":e.successDark,"--privy-color-success-light":e.successLight,"--privy-color-success-bg":e.successBg,"--privy-color-error":e.error,"--privy-color-error-light":e.errorLight,"--privy-color-error-bg":e.errorBg,"--privy-color-error-bg-hover":e.errorBgHover,"--privy-color-warn":e.warn,"--privy-color-warn-light":e.warnLight,"--privy-color-warn-bg":e.warnBg,"--privy-color-warning-dark":e.warningDark,"--privy-color-error-dark":e.errorDark,"--privy-color-info-bg":e.infoBg,"--privy-color-info-bg-hover":e.infoBgHover,"--privy-color-border-default":e.borderDefault,"--privy-color-border-hover":e.borderHover,"--privy-color-border-focus":e.borderFocus,"--privy-color-border-error":e.borderError,"--privy-color-border-success":e.borderSuccess,"--privy-color-border-warning":e.borderWarning,"--privy-color-border-info":e.borderInfo,"--privy-color-border-interactive":e.borderInteractive,"--privy-color-border-interactive-hover":e.borderInteractiveHover,"--privy-color-background-hover":e.backgroundHover,"--privy-color-background-clicked":e.backgroundClicked,"--privy-color-background-disabled":e.backgroundDisabled,"--privy-color-background-interactive":e.backgroundInteractive,"--privy-color-background-interactive-hover":e.backgroundInteractiveHover,"--privy-color-background-interactive-clicked":e.backgroundInteractiveClicked,"--privy-color-background-interactive-disabled":e.backgroundInteractiveDisabled,"--privy-color-foreground-hover":e.foregroundHover,"--privy-color-foreground-clicked":e.foregroundClicked,"--privy-color-foreground-disabled":e.foregroundDisabled,"--privy-color-foreground-interactive":e.foregroundInteractive,"--privy-color-foreground-interactive-hover":e.foregroundInteractiveHover,"--privy-link-navigation-color":e.linkNavigationColor,"--privy-link-navigation-decoration":e.linkNavigationDecoration,"--privy-accent-has-good-contrast":e.accentHasGoodContrast,"--privy-color-icon-default":e.iconDefault,"--privy-color-icon-muted":e.iconMuted,"--privy-color-icon-subtle":e.iconSubtle,"--privy-color-icon-inverse":e.iconInverse,"--privy-color-icon-success":e.iconSuccess,"--privy-color-icon-warning":e.iconWarning,"--privy-color-icon-error":e.iconError,"--privy-color-icon-interactive":e.iconInteractive,"--privy-color-icon-default-hover":e.iconDefaultHover,"--privy-color-icon-muted-hover":e.iconMutedHover,"--privy-color-icon-subtle-hover":e.iconSubtleHover,"--privy-color-icon-default-clicked":e.iconDefaultClicked,"--privy-color-icon-muted-clicked":e.iconMutedClicked,"--privy-color-icon-subtle-clicked":e.iconSubtleClicked,"--privy-color-icon-default-disabled":e.iconDefaultDisabled,"--privy-color-icon-muted-disabled":e.iconMutedDisabled,"--privy-color-icon-subtle-disabled":e.iconSubtleDisabled,"--privy-color-icon-error-hover":e.iconErrorHover,"--privy-color-icon-interactive-hover":e.iconInteractiveHover,"--privy-color-icon-error-clicked":e.iconErrorClicked,"--privy-color-icon-interactive-clicked":e.iconInteractiveClicked,"--privy-color-icon-muted-disabled-alt":e.iconMutedDisabledAlt,"--privy-color-icon-subtle-disabled-alt":e.iconSubtleDisabledAlt,"--privy-border-radius-xs":"6px","--privy-border-radius-sm":"8px","--privy-border-radius-md":"12px","--privy-border-radius-mdlg":"16px","--privy-border-radius-lg":"24px","--privy-border-radius-full":"9999px","--privy-height-modal-full":"620px","--privy-height-modal-compact":"480px"}}(e);return Yn`
|
|
6
|
+
${Object.entries(t).map((([e,t])=>`${e}: ${t};`)).join("\n")}
|
|
7
|
+
`},si=$n.div`
|
|
8
|
+
// css normalize only the privy application to avoid conflicts
|
|
9
|
+
// with consuming application
|
|
10
|
+
${"\n *,\n ::before,\n ::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n }\n\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n tab-size: 4;\n font-feature-settings: normal;\n\n margin: 0;\n font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji';\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n text-decoration: underline dotted;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji';\n display: inline;\n }\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n b,\n strong {\n font-weight: bolder;\n }\n\n code,\n kbd,\n samp,\n pre {\n font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n\n sub {\n bottom: -0.25em;\n }\n\n sup {\n top: -0.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n button,\n [type='button'],\n [type='reset'],\n [type='submit'] {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n }\n\n ::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n :-moz-focusring {\n outline: 1px dotted ButtonText;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n legend {\n padding: 0;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n }\n\n summary {\n display: list-item;\n }\n\n blockquote,\n dl,\n dd,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hr,\n figure,\n p,\n pre {\n margin: 0;\n }\n\n fieldset {\n margin: 0;\n padding: 0;\n }\n\n legend {\n padding: 0;\n }\n\n ol,\n ul,\n menu {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n textarea {\n resize: vertical;\n }\n\n input::placeholder,\n textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n }\n\n button,\n [role='button'] {\n cursor: pointer;\n }\n\n :disabled {\n cursor: default;\n }\n\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n }\n\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n\n [hidden] {\n display: none;\n }\n"}
|
|
11
|
+
|
|
12
|
+
// Privy styles
|
|
13
|
+
color: var(--privy-color-foreground-2);
|
|
14
|
+
|
|
15
|
+
h3 {
|
|
16
|
+
font-size: 16px;
|
|
17
|
+
line-height: 24px;
|
|
18
|
+
font-weight: 500;
|
|
19
|
+
color: var(--privy-color-foreground-2);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
h4 {
|
|
23
|
+
font-size: 14px;
|
|
24
|
+
line-height: 20px;
|
|
25
|
+
font-weight: 500;
|
|
26
|
+
color: var(--privy-color-foreground);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
p {
|
|
30
|
+
font-size: 13px;
|
|
31
|
+
line-height: 20px;
|
|
32
|
+
color: var(--privy-color-foreground-2);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
button:focus,
|
|
36
|
+
input:focus,
|
|
37
|
+
optgroup:focus,
|
|
38
|
+
select:focus,
|
|
39
|
+
textarea:focus {
|
|
40
|
+
outline: none;
|
|
41
|
+
border-color: var(--privy-color-accent-light);
|
|
42
|
+
box-shadow: 0 0 0 3px var(--privy-color-border-focus);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.mobile-only {
|
|
46
|
+
@media (min-width: 441px) {
|
|
47
|
+
display: none;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Animations */
|
|
52
|
+
|
|
53
|
+
@keyframes fadein {
|
|
54
|
+
0% {
|
|
55
|
+
opacity: 0;
|
|
56
|
+
}
|
|
57
|
+
100% {
|
|
58
|
+
opacity: 1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`,oi=({children:n,open:a,onClick:i,...s})=>/*#__PURE__*/t(tr,{show:a,as:r.Fragment,children:/*#__PURE__*/e(nr,{onClose:i,...s,as:ci,children:[/*#__PURE__*/t(rr,{as:r.Fragment,enterFrom:"entering",leaveTo:"leaving",children:/*#__PURE__*/t(li,{id:"privy-dialog-backdrop","aria-hidden":"true"})}),/*#__PURE__*/t(di,{children:/*#__PURE__*/t(rr,{as:r.Fragment,enterFrom:"entering",leaveTo:"leaving",children:/*#__PURE__*/t(ar,{as:ui,children:n})})})]})});let li=$n.div`
|
|
62
|
+
position: fixed;
|
|
63
|
+
inset: 0;
|
|
64
|
+
|
|
65
|
+
transition: backdrop-filter 100ms ease;
|
|
66
|
+
backdrop-filter: blur(3px);
|
|
67
|
+
-webkit-backdrop-filter: blur(3px);
|
|
68
|
+
|
|
69
|
+
&.entering,
|
|
70
|
+
&.leaving {
|
|
71
|
+
backdrop-filter: unset;
|
|
72
|
+
-webkit-backdrop-filter: unset;
|
|
73
|
+
}
|
|
74
|
+
`,ci=$n.div`
|
|
75
|
+
position: relative;
|
|
76
|
+
z-index: 999999;
|
|
77
|
+
`,di=$n.div`
|
|
78
|
+
position: fixed;
|
|
79
|
+
inset: 0;
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
width: 100vw;
|
|
84
|
+
min-height: 100vh;
|
|
85
|
+
`;const ui=$n.div`
|
|
86
|
+
// reset some default dialog styles
|
|
87
|
+
padding: 0;
|
|
88
|
+
background: transparent;
|
|
89
|
+
border: none;
|
|
90
|
+
width: 100%;
|
|
91
|
+
pointer-events: auto;
|
|
92
|
+
|
|
93
|
+
outline: none;
|
|
94
|
+
display: block;
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* Normally it is bad to mix media queries like this We are doing
|
|
98
|
+
* this here specifically for animations to avoid weird jank.
|
|
99
|
+
*/
|
|
100
|
+
/* Mobile animation is a bottom drawer */
|
|
101
|
+
@media (max-width: 440px) {
|
|
102
|
+
opacity: 1;
|
|
103
|
+
transform: translate3d(0, 0, 0);
|
|
104
|
+
transition: transform 200ms ease-in;
|
|
105
|
+
position: fixed;
|
|
106
|
+
bottom: 0;
|
|
107
|
+
|
|
108
|
+
&.entering,
|
|
109
|
+
&.leaving {
|
|
110
|
+
opacity: 0;
|
|
111
|
+
transform: translate3d(0, 100%, 0);
|
|
112
|
+
transition:
|
|
113
|
+
transform 150ms ease-in 0ms,
|
|
114
|
+
opacity 0ms ease 150ms;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Tablet/Desktop animation is a fade in */
|
|
119
|
+
@media (min-width: 441px) {
|
|
120
|
+
opacity: 1;
|
|
121
|
+
transition: opacity 100ms ease-in;
|
|
122
|
+
|
|
123
|
+
&.entering,
|
|
124
|
+
&.leaving {
|
|
125
|
+
opacity: 0;
|
|
126
|
+
transition-delay: 5ms;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
margin: auto;
|
|
130
|
+
width: 360px;
|
|
131
|
+
box-shadow: 0px 8px 36px rgba(55, 65, 81, 0.15);
|
|
132
|
+
border-radius: var(--privy-border-radius-lg);
|
|
133
|
+
}
|
|
134
|
+
`;$n.div`
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
align-items: center;
|
|
138
|
+
justify-content: center;
|
|
139
|
+
height: 100%;
|
|
140
|
+
`;const hi=()=>{let{ready:e}=_(),{currentScreen:t}=S(),[n,r]=o(null),[a,i]=o(!1),l=function(e){let[t,n]=o(!1),r=s(null),a=s(null),i=s(null);return c((()=>{if(r.current&&(clearTimeout(r.current),r.current=null),a.current&&(clearTimeout(a.current),a.current=null),e)i.current=Date.now(),r.current=setTimeout((()=>{n(!0)}),150);else if(null!==i.current){let e=Date.now()-i.current;if(e>=150){let t=Math.max(0,400-(e-150));a.current=setTimeout((()=>{n(!1),i.current=null}),t)}else r.current&&(clearTimeout(r.current),r.current=null),n(!1),i.current=null}return()=>{r.current&&clearTimeout(r.current),a.current&&clearTimeout(a.current)}}),[e]),t}(a);return c((()=>{if(!t)return r(null),void i(!1);i(!0),ti[t]().then((n=>{(!t||e||n.default.isShownBeforeReady)&&(r((()=>n.default.component)),i(!1))})).catch((()=>{r(null),i(!1)}))}),[t,e]),{component:n,isLoading:l}};let pi=/*#__PURE__*/u((()=>import("./MfaVerifyFlowScreen-DYuvXWXh.mjs"))),wi=/*#__PURE__*/u((()=>(e=>ti[e]().then((e=>({default:e.default.component}))))("MfaAuthVerifyFlowScreen"))),mi=()=>/*#__PURE__*/t(ki,{children:/*#__PURE__*/t(re,{})}),yi=()=>{let{currentScreen:r}=S(),a=ri((e=>e.inProgressMfaFlow)),i=()=>ri.setState({inProgressMfaFlow:void 0}),{component:s,isLoading:l}=hi();return function(){let{isModalOpen:e}=_(),{headless:t}=St(),{currentScreen:n}=S(),{status:r,execute:a,reset:i,enabled:s}=Ba(),[l,d]=o(!1);c((()=>{!e&&s&&i()}),[e,s,i]),c((()=>{n?ti[n]().then((e=>{d(!!e.default.isCaptchaRequired)})).catch((()=>{d(!1)})):d(!1)}),[n]),c((()=>{e&&l&&!t&&"ready"===r&&s&&a()}),[e,l,t,r,s,a])}(),r||"txn"!==a?l?/*#__PURE__*/t(mi,{}):s?
|
|
141
|
+
/*#__PURE__*/e(n,{children:[/*#__PURE__*/t(te,{$if:!!a,children:/*#__PURE__*/t(d,{children:/*#__PURE__*/t(s,{})})}),/*#__PURE__*/e(d,{children:["txn"===a&&/*#__PURE__*/t(pi,{onClose:i}),"auth"===a&&/*#__PURE__*/t(wi,{})]})]}):null:/*#__PURE__*/t(d,{children:/*#__PURE__*/t(pi,{onClose:i})})},gi=()=>{let e=s(null);/*#__PURE__*/return t(Ai,{style:{height:ne(e)},id:"privy-modal-content",children:/*#__PURE__*/t("div",{ref:e,children:/*#__PURE__*/t(yi,{})})})};const fi=({open:e})=>{let n=St(),{gracefulClosePrivyModal:r}=(()=>{let{closePrivyModal:e}=Ee(),{onUserCloseViaDialogOrKeybindRef:t}=S();return{gracefulClosePrivyModal:h((()=>{if(!t?.current)return e({shouldCallAuthOnSuccess:!1});t.current()}),[e])}})(),a=ri((e=>e.inProgressMfaFlow));return ni({onMfaRequired:()=>{n.mfa.noPromptOnMfaRequired||ri.setState({inProgressMfaFlow:"txn"})}}),n.render.standalone?/*#__PURE__*/t(si,{children:/*#__PURE__*/t(vi,{id:"privy-modal-content",children:/*#__PURE__*/t(yi,{})})}):/*#__PURE__*/t(oi,{open:!(!e&&!a),id:"privy-dialog","aria-label":"log in or sign up","aria-labelledby":"privy-dialog-title",onClick:()=>r(),children:/*#__PURE__*/t(si,{children:/*#__PURE__*/t(gi,{})})})};let vi=$n.div`
|
|
142
|
+
display: flex;
|
|
143
|
+
flex-direction: column;
|
|
144
|
+
text-align: center;
|
|
145
|
+
font-size: 14px;
|
|
146
|
+
line-height: 20px;
|
|
147
|
+
width: 100%;
|
|
148
|
+
background: var(--privy-color-background);
|
|
149
|
+
padding: 0 16px;
|
|
150
|
+
`,Ai=$n(vi)`
|
|
151
|
+
transition: height 150ms ease-out;
|
|
152
|
+
overflow-x: hidden;
|
|
153
|
+
overflow-y: auto;
|
|
154
|
+
scrollbar-width: none;
|
|
155
|
+
|
|
156
|
+
// Ensure the modal gets pinned to the top if it ever gets too tall
|
|
157
|
+
max-height: calc(100svh - 32px);
|
|
158
|
+
|
|
159
|
+
border-radius: var(--privy-border-radius-lg) var(--privy-border-radius-lg) 0 0;
|
|
160
|
+
box-shadow: 0px 0px 36px rgba(55, 65, 81, 0.15);
|
|
161
|
+
|
|
162
|
+
@media (min-width: 441px) {
|
|
163
|
+
box-shadow: 0px 8px 36px rgba(55, 65, 81, 0.15);
|
|
164
|
+
border-radius: var(--privy-border-radius-lg);
|
|
165
|
+
}
|
|
166
|
+
`,ki=$n.div`
|
|
167
|
+
display: flex;
|
|
168
|
+
align-items: center;
|
|
169
|
+
justify-content: center;
|
|
170
|
+
min-height: 300px;
|
|
171
|
+
padding: 2rem;
|
|
172
|
+
`;function Ti(e){let n=s(null),r=s();return c((()=>{r.current?.remove(),r.current=function({botUsername:e,scriptHost:t}){let n=document.createElement("script"),{origin:r}=new URL(t);return n.async=!0,n.src=`${r}/js/telegram-login.js`,n.setAttribute("data-telegram-login",e),n.setAttribute("data-request-access","write"),n.setAttribute("data-lang","en"),n}(e),n.current?.after(r.current)}),[e]),/*#__PURE__*/t("div",{ref:n,hidden:!0})}const Ci=()=>{let{ready:e,wallets:t}=ir();return c((()=>{if(!e)return;let n=t.map((e=>({address:e.address,connectorType:e.connectorType,walletClientType:e.walletClientType,connectedAt:e.connectedAt,id:e.meta.id})));Re.put(bt,n)}),[e,t]),null},_i=["error","invalid_request_arguments","wallet_not_on_device","invalid_recovery_pin","insufficient_funds","missing_or_invalid_mfa","mfa_verification_max_attempts_reached","mfa_timeout","twilio_verification_failed"];class Si extends Error{constructor(e,t){super(t),this.type=e}}function bi(e){let t=e.type;return"string"==typeof t&&_i.includes(t)}function Ei(e){return bi(e)&&"wallet_not_on_device"===e.type}function Ii(e){return bi(e)&&("invalid_recovery_pin"===e.type||"invalid_request_arguments"===e.type)}function Pi(e){return!!bi(e)&&"mfa_timeout"===e.type}function Ui(e){return!!bi(e)&&"missing_or_invalid_mfa"===e.type}function Wi(e){return!!bi(e)&&"mfa_verification_max_attempts_reached"===e.type}function Ni(e){return!(!bi(e)||!e.message.includes("code 429"))}function Oi(e){return!!function(e){let t=e.type;return"string"==typeof t&&"client_error"===t}(e)&&"MFA canceled"===e.message}async function Ri(e,t,n,r,a,i=!1){let s=i,o=async o=>{if(s&&t&&t.length>0){o===(i?0:1)?a("configureMfa","onMfaRequired",{mfaMethods:t}):r.current?.reject(new Si("missing_or_invalid_mfa","MFA verification failed, retry."));let s=await new Promise(((e,t)=>{n.current={resolve:e,reject:t},setTimeout((()=>{let e=new Si("mfa_timeout","Timed out waiting for MFA code");r.current?.reject(e),t(e)}),3e5)}));return await e(s)}return await e()},l=null;for(let e=0;e<4;e++)try{l=await o(e),r.current?.resolve(void 0);break}catch(e){if("missing_or_invalid_mfa"!==e.type)throw r.current?.resolve(void 0),e;s=!0}if(null===l){let e=new Si("mfa_verification_max_attempts_reached","Max MFA verification attempts reached");throw r.current?.reject(e),e}return l}var Mi;let xi=(Mi=0,()=>"id-"+Mi++);function Fi(e){return void 0!==e.error}let Li=new class{enqueue(e,t){this.callbacks[e]=t}dequeue(e,t){let n=this.callbacks[t];if(!n)throw Error(`cannot dequeue ${e} event: no event found for id ${t}`);switch(delete this.callbacks[t],e){case"privy:iframe:ready":case"privy:user-signer:sign":case"privy:wallets:add":case"privy:wallets:import":case"privy:wallets:set-recovery":case"privy:wallets:connect":case"privy:wallets:recover":case"privy:wallets:rpc":case"privy:wallet:create":case"privy:mfa:verify":case"privy:mfa:init-enrollment":case"privy:mfa:submit-enrollment":case"privy:mfa:unenroll":case"privy:mfa:clear":case"privy:auth:unlink-passkey":case"privy:farcaster:init-signer":case"privy:farcaster:sign":case"privy:solana-wallet:create":case"privy:delegated-actions:consent":return n;default:throw Error(`invalid wallet event type ${e}`)}}constructor(){this.callbacks={}}},Di=new Map,ji=(e,t)=>"bigint"==typeof t?t.toString():t;function qi(e,t,n,r){let a=n.contentWindow;if(!a)throw Error("iframe not initialized");let i=((e,t)=>`${e}${JSON.stringify(t,ji)}`)(e,t);if("privy:wallet:create"===e){let e=Di.get(i);if(e)return e}let s=new Promise(((n,i)=>{let s=xi();Li.enqueue(s,{resolve:n,reject:i}),a.postMessage({id:s,event:e,data:t},r)})).finally((()=>{Di.delete(i)}));return Di.set(i,s),s}function zi(e){let n=Et(),r=s(null),a=s(e.mfaMethods),i=Qn(),[l,d]=o(!1);return c((()=>{a.current=e.mfaMethods}),[e.mfaMethods]),c((()=>{if(!l)return;let t=r.current;if(!t)return;function n(t){var n;t&&t.origin===e.origin&&"string"==typeof(n=t.data).event&&/^privy:.+/.test(n.event)&&function(e){switch(e.event){case"privy:iframe:ready":let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data);case"privy:user-signer:sign":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:wallets:add":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:wallets:set-recovery":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:wallets:connect":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:wallets:recover":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:wallets:rpc":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:wallet:create":let n=Li.dequeue(e.event,e.id);return Fi(e)?n.reject(new Si(e.error.type,e.error.message)):n.resolve(e.data);case"privy:wallets:import":let r=Li.dequeue(e.event,e.id);return Fi(e)?r.reject(new Si(e.error.type,e.error.message)):r.resolve(e.data);case"privy:mfa:verify":let a=Li.dequeue(e.event,e.id);return Fi(e)?a.reject(new Si(e.error.type,e.error.message)):a.resolve(e.data);case"privy:mfa:init-enrollment":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:mfa:submit-enrollment":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:mfa:unenroll":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:mfa:clear":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:auth:unlink-passkey":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:solana-wallet:create":let i=Li.dequeue(e.event,e.id);return Fi(e)?i.reject(new Si(e.error.type,e.error.message)):i.resolve(e.data);case"privy:farcaster:init-signer":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:farcaster:sign":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}case"privy:delegated-actions:consent":{let t=Li.dequeue(e.event,e.id);return Fi(e)?t.reject(new Si(e.error.type,e.error.message)):t.resolve(e.data)}default:console.warn("Unsupported wallet proxy method:",e)}}(t.data)}let s={signWithUserSigner:n=>Ri((r=>qi("privy:user-signer:sign",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),addWallet:n=>Ri((r=>qi("privy:wallets:add",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),setRecovery:n=>Ri((r=>qi("privy:wallets:set-recovery",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),connect:n=>Ri((r=>qi("privy:wallets:connect",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),recover:n=>Ri((r=>qi("privy:wallets:recover",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i,!n.recoveryAccessToken&&!n.recoveryPassword&&!n.recoverySecretOverride),rpc:n=>Ri((r=>qi("privy:wallets:rpc",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),create:n=>qi("privy:wallet:create",n,t,e.origin),importWallet:n=>qi("privy:wallets:import",n,t,e.origin),createSolana:n=>Ri((r=>qi("privy:solana-wallet:create",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),createDelegatedAction:n=>qi("privy:delegated-actions:consent",n,t,e.origin),verifyMfa:n=>Ri((r=>qi("privy:mfa:verify",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i,!0),initEnrollMfa:n=>Ri((r=>qi("privy:mfa:init-enrollment",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),submitEnrollMfa:n=>Ri((r=>qi("privy:mfa:submit-enrollment",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),unenrollMfa:n=>Ri((r=>qi("privy:mfa:unenroll",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),clearMfa:n=>qi("privy:mfa:clear",n,t,e.origin),unlinkPasskeyAccount:n=>Ri((r=>qi("privy:auth:unlink-passkey",{...n,...r},t,e.origin)),a.current,e.mfaPromise,e.mfaSubmitPromise,i),initFarcasterSigner:n=>qi("privy:farcaster:init-signer",n,t,e.origin),signFarcasterMessage:n=>qi("privy:farcaster:sign",n,t,e.origin)};window.addEventListener("message",n);let o=new AbortController;return ae((()=>qi("privy:iframe:ready",{},t,e.origin)),{abortSignal:o.signal}).then((()=>e.onLoad(s)),((...t)=>{console.warn("Privy iframe failed to load: ",...t),e.onLoadFailed()})),()=>{window.removeEventListener("message",n),o.abort()}}),[l]),n?
|
|
173
|
+
/*#__PURE__*/t("iframe",{ref:r,width:"0",height:"0",style:{display:"none",height:"0px",width:"0px"},onLoad:()=>d(!0),src:dr({origin:e.origin,path:`/apps/${e.appId}/embedded-wallets`,query:{caid:e.clientAnalyticsId,client_id:e.appClientId}})}):null}const Hi=({address:e,user:t})=>{let n=t.linkedAccounts.find((t=>"wallet"===t.type&&"privy"===t.walletClientType&&t.address===e));if(!n)throw new Ae("Address to delegate is not associated with current user.");if(!Me(n))throw new Ae(`useDelegatedActions is not supported for ${n.chainType} wallets. Use the useSessionSigners hook to provision server side access on behalf of your users.`);return{address:n.address,chainType:n.chainType,walletIndex:n.walletIndex??0}},Vi=({address:e,user:t})=>{let n=t.linkedAccounts.find((t=>"wallet"===t.type&&"privy"===t.walletClientType&&t.address===e));if(!n)throw new Ae("Address to delegate is not associated with current user.");let r=n.imported?n:b(t);if(!r)throw new Ae("Unable to determine root address for delegated address.");if(!Me(r))throw new Ae(`useDelegatedActions is not supported for ${r.chainType} wallets. Use the useSessionSigners hook to provision server side access on behalf of your users.`);return{address:r.address,chainType:r.chainType,imported:r.imported}},Bi=e=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&e.delegated));const Ki="popup-privy-oauth",$i="PRIVY_OAUTH_USE_BROADCAST_CHANNEL";class Gi{async authenticate(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(zt,{authorization_code:this.meta.authorizationCode,state_code:this.meta.stateCode,code_verifier:this.meta.codeVerifier,provider:this.meta.provider,mode:this.meta.disableSignup?"no-signup":"login-or-sign-up"})}catch(e){throw fe(e)}}async link(){if(!this.api)throw new Ae("Auth flow has no API instance");try{return await this.api.post(Ht,{authorization_code:this.meta.authorizationCode,state_code:this.meta.stateCode,code_verifier:this.meta.codeVerifier,provider:this.meta.provider})}catch(e){throw fe(e)}}constructor(e){this.meta=e}}async function Yi({api:e,requesterAppId:t,providerAppId:n}){let r=(await e.get(`/api/v1/apps/${t}/cross-app/connections`)).connections.find((e=>e.provider_app_id===n));if(!r)throw new Ae("Invalid connected app");return{name:r.provider_app_name,logoUrl:r.provider_app_icon_url||void 0,apiUrl:r.provider_app_custom_api_url,readOnly:r.read_only,customAuthAuthorizeUrl:r.provider_app_custom_auth_authorize_url,customAuthTransactUrl:r.provider_app_custom_auth_transact_url}}const Ji=async({user:e,address:t,client:n,request:r,requesterAppId:a,reconnect:i})=>{n.createAnalyticsEvent({eventName:"cross_app_request_started",payload:{address:t,method:r.method}});let s=e?.linkedAccounts.find((e=>"cross_app"===e.type&&(e.embeddedWallets.some((e=>e.address===t))||e.smartWallets.some((e=>e.address===t)))));if(!e||!s)throw n.createAnalyticsEvent({eventName:"cross_app_request_error",payload:{error:"Cannot request a signature with this wallet address",address:t}}),new Ae("Cannot request a signature with this wallet address");let o=n.getProviderAccessToken(s.providerApp.id),l=await Yi({api:n.api,requesterAppId:a,providerAppId:s.providerApp.id});if(!o){if(l.readOnly)throw console.error("cannot transact against a read-only provider app"),new Ae("Cannot transact against a read-only provider app");await i({appId:s.providerApp.id,action:"link"})&&(o=n.getProviderAccessToken(s.providerApp.id))}if(!o)throw n.createAnalyticsEvent({eventName:"cross_app_request_error",payload:{error:"Transactions require a valid token",address:t}}),new Ae("Transactions require a valid token");let c=new URL(l.customAuthTransactUrl||`${l.apiUrl}/oauth/transact`);c.searchParams.set("token",o||""),c.searchParams.set("request",Qi(r));let d=Bn({location:c.href});if(!d)throw n.createAnalyticsEvent({eventName:"cross_app_request_error",payload:{error:"Missing token",address:t}}),new Ae("Failed to initialize signature request");return new Promise(((e,a)=>{let i=setTimeout((()=>{c(),a(new Ae("Request timeout")),n.createAnalyticsEvent({eventName:"cross_app_request_error",payload:{error:"Request timeout",address:t}})}),12e4),o=setInterval((()=>{d.closed&&(c(),a(new Ae("User rejected request")),n.createAnalyticsEvent({eventName:"cross_app_request_error",payload:{error:"User rejected request",address:t}}))}),300),l=i=>{i.data&&("set"===i.data.token?.action&&void 0!==i.data.token?.value?n.storeProviderAccessToken(s.providerApp.id,i.data.token.value):"clear"===i.data.token?.action&&n.storeProviderAccessToken(s.providerApp.id,null),"PRIVY_CROSS_APP_ACTION_RESPONSE"===i.data.type&&i.data.result&&(c(),e(i.data.result),n.createAnalyticsEvent({eventName:"cross_app_request_success",payload:{address:t,method:r.method}})),"PRIVY_CROSS_APP_ACTION_ERROR"===i.data.type&&i.data.error&&(c(),a(i.data.error),n.createAnalyticsEvent({eventName:"cross_app_request_error",payload:{error:i.data.error,address:t}})))};window.addEventListener("message",l);let c=()=>{d.close(),clearInterval(o),clearTimeout(i),window.removeEventListener("message",l)}}))};let Qi=e=>JSON.stringify({content:{request:{request:Zi(e,ur)}},timestamp:Date.now(),callbackUrl:window.origin});const Zi=(e,t)=>"bigint"==typeof e?t(e):Array.isArray(e)?e.map((e=>Zi(e,t))):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,n])=>[e,Zi(n,t)]))):e;function Xi({isCreatingWallet:e,skipSplashScreen:t}){return e?"EmbeddedWalletPasswordCreateScreen":t?"EmbeddedWalletPasswordUpdateScreen":"EmbeddedWalletPasswordUpdateSplashScreen"}function es({walletAction:e,availableRecoveryMethods:t,legacySetWalletPasswordFlow:n,isResettingPassword:r,showAutomaticRecovery:a}){return a?"SetAutomaticRecoveryScreen":n||1===t.length?Xi({isCreatingWallet:"create"===e,skipSplashScreen:r}):"RecoverySelectionScreen"}function ts(e){switch(e){case"user-passcode":return"PasswordRecoveryScreen";case"google-drive":case"icloud":return"RecoveryOAuthScreen";default:throw Error("Recovery method not supported")}}function ns(e,t){if(e.onComplete)switch(t){case"external":e.fundingResult?e.onComplete({...e.fundingResult,fundingMethod:t}):e.onComplete({status:"cancelled",address:e.address,fundingMethod:t,amount:e.amount});break;case null:e.onComplete({status:"cancelled",address:e.address,fundingMethod:void 0,amount:e.amount});break;default:e.onComplete({status:"completed",address:e.address,fundingMethod:t,amount:e.amount})}}function rs(e,t,n,r,a,i,s){return{...e,funding:e?.funding?{...e.funding,fundingResult:{status:t,address:e.funding.address,fundingMethod:void 0,transactionHash:n,amount:e.funding.amount,assetType:a?i?.symbol||"ETH":s.nativeCurrency.symbol||"ETH",metadata:{walletClientType:r}}}:void 0,solanaFundingData:e?.solanaFundingData,sendTransaction:e?.sendTransaction}}const as=new Map([["FundingMethodSelectionScreen",null],["TransferFromWalletScreen","external"],["FundingAmountEditScreen","external"],["ConnectOnlyLandingScreen","external"],["ConnectOnlyStatusScreen","external"],["AwaitingExternalEthereumTransferScreen","external"],["AwaitingEvmToSolBridgingScreen","external"],["AwaitingSolToEvmBridgingScreen","external"],["ManualTransferScreen","manual"],["MoonpayStatusScreen","moonpay"]]);function is(e){let t=e.toLowerCase();return!!window?.webkit?.messageHandlers?.ReactNativeWebView||!!window?.ReactNativeWebView||["fbav","fban","instagram","snapchat","linkedinapp"].some((e=>t.includes(e)))}async function ss({rpc:e,address:t}){return(await e.getBalance(t,{commitment:"confirmed"}).send()).value??0n}let os={apple_oauth:"apple",custom_auth:"custom",discord_oauth:"discord",email:"email",farcaster:"farcaster",github_oauth:"github",google_oauth:"google",instagram_oauth:"instagram",linkedin_oauth:"linkedin",passkey:"passkey",phone:"sms",spotify_oauth:"spotify",telegram:"telegram",tiktok_oauth:"tiktok",line_oauth:"line",twitch_oauth:"twitch",twitter_oauth:"twitter",wallet:"siwe",smart_wallet:"siwe",cross_app:"privy:"};const ls=e=>{if(E(e))return{displayName:e.replace("custom:",""),loginMethod:"custom"};let t=os[e];return"wallet"===e||"phone"===e?{displayName:e,loginMethod:t}:{displayName:t,loginMethod:t}};async function cs(e,t,n,r){let a=gr(e),{chain:i,...s}=await(async()=>r?await r():await t.prepareTransactionRequest({...a,account:{address:n,type:"json-rpc"}}))();return{...s,type:fr[s.type]}}const ds=()=>{let e=St(),{user:t}=_(),{client:n,refreshSessionAndUser:r,walletProxy:a}=Ee();return{migrate:h((async()=>{if("legacy-embedded-wallets-only"===e.embeddedWallets.mode)return{success:!0,migrated:!1};if(!t)throw new Ae("User must be authenticated before migrating wallets",ke.MUST_BE_AUTHENTICATED);if(!a)throw new Ae("Cannot connect to wallet proxy");let i=await n.getAccessToken();if(!i)throw new Ae("User must be authenticated before migrating wallets",ke.MUST_BE_AUTHENTICATED);let s=t.linkedAccounts.filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&Me(e)&&!I(e)));if(0===s.length)return{success:!0,migrated:!1};let o=s.filter((e=>e.imported)),l=s.filter((e=>!e.imported));if(l.length>0){let e=l.find((e=>"ethereum"===e.chainType&&0===e.walletIndex))??l.find((e=>"solana"===e.chainType&&0===e.walletIndex))??null;if(!e)throw new Ae("Primary wallet not found");let{entropyId:t,entropyIdVerifier:n}=sr(e);try{await a.connect({accessToken:i,entropyId:t,entropyIdVerifier:n})}catch(r){if(!Ei(r)||"privy"!==e.recoveryMethod)throw r;await a.recover({accessToken:i,entropyId:t,entropyIdVerifier:n})}await a.createDelegatedAction({accessToken:i,rootWallet:{address:e.address,chainType:e.chainType,imported:!1},delegatedWallets:l.map((e=>({address:e.address,chainType:e.chainType,walletIndex:e.walletIndex??0})))})}for(let e of o){let{entropyId:t,entropyIdVerifier:n}=sr(e);try{await a.connect({accessToken:i,entropyId:t,entropyIdVerifier:n})}catch(o){if(!Ei(o)||"privy"!==e.recoveryMethod)throw o;await a.recover({accessToken:i,entropyId:t,entropyIdVerifier:n})}await a.createDelegatedAction({accessToken:i,rootWallet:{address:e.address,chainType:e.chainType,imported:!0},delegatedWallets:[{address:e.address,chainType:e.chainType,walletIndex:e.walletIndex??0}]})}return await r(),{success:!0,migrated:!0}}),[e.embeddedWallets.mode,t,a,n,r])}},us=({disabled:e})=>{let{migrate:t}=ds(),{user:n}=_(),{walletProxy:r}=Ee(),a=s(!1);return c((()=>{!e&&!a.current&&n&&r&&(a.current=!0,t().catch((e=>{console.debug("Unable to migrate wallets: ",e)})).finally((()=>{a.current=!1})))}),[n,r,e,t]),null},hs=e=>({id:e.id,raw_id:e.rawId,response:{client_data_json:e.response.clientDataJSON,authenticator_data:e.response.authenticatorData,signature:e.response.signature,user_handle:e.response.userHandle},authenticator_attachment:e.authenticatorAttachment,client_extension_results:{app_id:e.clientExtensionResults.appid,cred_props:e.clientExtensionResults.credProps,hmac_create_secret:e.clientExtensionResults.hmacCreateSecret},type:e.type}),ps=()=>{let{ethereumEmbedded:e,ethereumExternal:t}=or.getState();return[...e,...t]},ws=(e,t)=>!P(e)&&("all-users"===t||"users-without-wallets"===t&&!ms(e).length);let ms=e=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"ethereum"===e.chainType));const ys=(e,t)=>!U(e)&&("all-users"===t||"users-without-wallets"===t&&!gs(e).length);let gs=e=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"solana"===e.chainType));const fs=()=>{let{walletProxy:e,recoverEmbeddedWallet:t,setUser:n,refreshSessionAndUser:r,privy:a,client:i}=Ee(),s=St();return{create:async({walletIndex:o,chainType:l,latestUser:c,recoveryMethod:d,recoveryPassword:u,recoveryAccessToken:h,idempotencyKey:p})=>{let w=c;w||(w=await r());let m=await i.getAccessToken();if(!w||!m||!e)throw Error("User must be authenticated before creating a Privy wallet");return await tt({appConfig:s,user:w,refreshSessionAndUser:r,privy:a,accessToken:m,proxy:e,recoverEmbeddedWallet:t,setUser:n,walletIndex:o,chainType:l,recoveryMethod:d,recoveryPassword:u,recoveryAccessToken:h,idempotencyKey:p})}}};function vs({subscribe:e,getExternalJwt:t,enabled:n=!0,onAuthenticated:r,onUnauthenticated:a,onError:i}){let{client:l,setAuthenticated:d,setUser:u,setIsNewUser:h}=Ee(),{logout:p,authenticated:w,ready:m}=nt(),{create:y}=fs(),g=St();if(!l)throw new Ae("`useSyncJwtBasedAuthState` must be used within a `PrivyProvider`");let[f,v]=o({status:"initial"}),A=s(),k=s(!1),T=s(t);c((()=>{T.current=t}),[t]);let C=s(r);c((()=>{C.current=r}),[r]);let _=s(a);c((()=>{_.current=a}),[a]);let S=s(i);c((()=>{S.current=i}),[i]);let b=s(y);c((()=>{b.current=y}),[y]);let E=s(g.embeddedWallets.ethereum.createOnLogin);c((()=>{E.current=g.embeddedWallets.ethereum.createOnLogin}),[g.embeddedWallets.ethereum.createOnLogin]);let I=s(g.embeddedWallets.solana.createOnLogin);c((()=>{I.current=g.embeddedWallets.solana.createOnLogin}),[g.embeddedWallets.solana.createOnLogin]);let P=s(u);c((()=>{P.current=u}),[u]);let U=s(h);c((()=>{U.current=h}),[h]);let W=s(d);return c((()=>{W.current=d}),[d]),c((()=>{if(!n||!m)return;let t=async()=>{if(!k.current){k.current=!0;try{v({status:"loading"});let e=await T.current();if(void 0!==A.current&&A.current===e)return void v({status:"done"});if(!e)return w&&(await p(),_.current?.()),A.current=e,void v({status:"done"});l.startAuthFlow(new sa(e));let{user:t,isNewUser:n=!1}=await l.authenticate();if(!t)throw new Ae("Failed to sync with custom auth provider");C.current?.({user:t,isNewUser:n}),P.current(t),U.current(n),W.current(!0);let r=ws(t,E.current),a=ys(t,I.current);if(r&&a){let e=await b.current({chainType:"ethereum",walletIndex:0,latestUser:t});await b.current({chainType:"solana",walletIndex:0,latestUser:e.user})}else a?await b.current({chainType:"solana",walletIndex:0,latestUser:t}):r&&await b.current({chainType:"ethereum",walletIndex:0,latestUser:t});A.current=e,v({status:"done"})}catch(e){if(console.warn(e),await p().catch((()=>{})),_.current?.(),e instanceof Ce&&e.privyErrorCode===ke.LINKED_TO_ANOTHER_USER)return v({status:"initial"}),void setTimeout((()=>{t()}),0);S.current?.(e),v({status:"error",error:e})}finally{k.current=!1}}};return t(),e(t)}),[e,l,w,p,n,m]),n?{state:f}:{state:{status:"not-enabled"}}}let As=Ut((()=>({jwtAuthFlowState:{status:"not-enabled"}})));function ks({customAuth:e}){let{jwtAuthFlowState:t}=function({customAuth:e}){let t=Qn(),n=s(),r=h((e=>(n.current=e,()=>{n.current=void 0})),[]),a=e?.getCustomAccessToken??(()=>Promise.resolve(void 0)),{state:i}=vs({enabled:!0===e?.enabled,subscribe:r,getExternalJwt:a,onAuthenticated:({user:e,isNewUser:n})=>{t("login","onComplete",{user:e,isNewUser:n,wasAlreadyAuthenticated:!1,loginMethod:"custom",loginAccount:null}),t("customAuth","onAuthenticated",{user:e})},onUnauthenticated:()=>{t("customAuth","onUnauthenticated")},onError:e=>{t("login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR)}});return c((()=>{(async()=>{e&&!e.isLoading&&n.current?.()})()}),[e?.enabled,e?.getCustomAccessToken,e?.isLoading]),{jwtAuthFlowState:i}}({customAuth:e});return c((()=>{As.setState({jwtAuthFlowState:t})}),[t]),null}const Ts=["eth_sign","eth_populateTransactionRequest","eth_signTransaction","personal_sign","eth_signTypedData_v4","csw_signUserOperation","secp256k1_sign"];class Cs extends Error{constructor(e,t,n){super(e),this.code=t,this.data=n}}class _s extends L{async handleSendTransaction(e){if(!e.params||!Array.isArray(e.params))throw new Cs(`Invalid params for ${e.method}`,4200);let t=e.params[0];if(!await Qa()||!this.address)throw new Cs("Disconnected",4900);let{hash:n}=await Ls(t,{address:this.address});return n}async handleSignTransaction(e){if(!e.params||!Array.isArray(e.params))throw new Cs(`Invalid params for ${e.method}`,4200);let t=e.params[0];if(!await Qa()||!this.address)throw new Cs("Disconnected",4900);let{signature:n}=await Fs(t,{address:this.address});return n}handleSwitchEthereumChain(e){let t;if(!e.params||!Array.isArray(e.params))throw new Cs(`Invalid params for ${e.method}`,4200);if("string"==typeof e.params[0])t=e.params[0];else{if(!("chainId"in e.params[0])||"string"!=typeof e.params[0].chainId)throw new Cs(`Invalid params for ${e.method}`,4200);t=e.params[0].chainId}this.chainId=Number(t),this.publicClient=Ar(this.chainId,this.chains,this.rpcConfig,{appId:this.appId}),this.emit("chainChanged",t)}async handlePersonalSign(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for personal_sign");let t=e.params[0],n=e.params[1],{signature:r}=await Ms({message:t},{address:n});return r}async handleSignedTypedData(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_signTypedData_v4");let t=e.params[0],n="string"==typeof e.params[1]?JSON.parse(e.params[1]):e.params[1],{signature:r}=await xs(ie(n),{address:t});return r}async handleEstimateGas(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_estimateGas");delete e.params[0].gasPrice,delete e.params[0].maxFeePerGas,delete e.params[0].maxPriorityFeePerGas;let t={...e.params[0],chainId:se(this.chainId)};return await this.publicClient.estimateGas({account:t.from??this.address,...gr(t)})}async request(e){switch(console.debug("Embedded1193Provider.request() called with args",e),e.method){case"eth_accounts":case"eth_requestAccounts":return this.address?[this.address]:[];case"eth_chainId":return se(this.chainId);case"eth_estimateGas":return this.handleEstimateGas(e);case"eth_sendTransaction":return this.handleSendTransaction(e);case"eth_signTransaction":return this.handleSignTransaction(e);case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(e);case"personal_sign":return this.handlePersonalSign(e);case"eth_signTypedData_v4":return this.handleSignedTypedData(e)}if(!(e=>Ts.includes(e))(e.method))return this.publicClient.request({method:e.method,params:e.params});{let t=await Qa();if(await Ds({address:this.address}),!t||!this.address)throw new Cs("Disconnected",4900);try{let n={method:e.method,params:e.params},r=this.walletAccount;return r&&I(r)?this.handleWalletApiRequest(n,r,t):(await this.walletProxy.rpc({accessToken:t,entropyId:this.entropyId,entropyIdVerifier:this.entropyIdVerifier,chainType:"ethereum",hdWalletIndex:this.walletIndex,request:n})).response.data}catch(e){throw console.error(e),new Cs("Disconnected",4900)}}}async handleWalletApiRequest(e,t,n){let r=this.privyClient;if(!r)throw new Cs("Disconnected",4900);if("secp256k1_sign"===e.method){let a=await m(r,(async({message:e})=>this.walletProxy.signWithUserSigner({accessToken:n,message:e})),{chain_type:"ethereum",method:"secp256k1_sign",wallet_id:t.id,params:{hash:e.params[0]}});if("secp256k1_sign"!==a.method)throw new Cs(`Invalid params for ${e.method}`,4200);return a.data.signature}throw new Cs(`Method not supported: ${e.method}`,4200)}constructor({walletProxy:e,address:t,entropyId:n,entropyIdVerifier:r,rpcConfig:a,chains:i,appId:s,chainId:o=1,walletIndex:l,privyClient:c,walletAccount:d}){super(),this.walletProxy=e,this.address=t,this.entropyId=n,this.entropyIdVerifier=r,this.chainId=o,this.rpcConfig=a,this.chains=i,this.publicClient=Ar(o,this.chains,a,{appId:s}),this.rpcTimeoutDuration=K(a,"privy"),this.appId=s,this.walletIndex=l,this.privyClient=c,this.walletAccount=d}}const Ss=({...e})=>/*#__PURE__*/t("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:/*#__PURE__*/t("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.37126 11.0323C2.37126 12.696 3.90598 13.4421 5.40654 13.4468C8.91753 13.4468 12.8021 11.2897 12.7819 7.67984C12.7673 5.07728 10.3748 2.86167 7.54357 2.88296C4.8495 2.88296 2.21821 4.6411 2.21803 7.03628C2.21803 7.67951 2.58722 8.30178 3.55231 8.37184C2.74763 9.16826 2.37126 10.1225 2.37126 11.0323ZM7.55283 8.68012C8.11562 8.68012 8.57186 8.13217 8.57186 7.45624C8.57186 6.78032 8.11562 6.23237 7.55283 6.23237C6.99003 6.23237 6.53379 6.78032 6.53379 7.45624C6.53379 8.13217 6.99003 8.68012 7.55283 8.68012ZM10.4747 8.68012C11.0375 8.68012 11.4937 8.13217 11.4937 7.45625C11.4937 6.78032 11.0375 6.23237 10.4747 6.23237C9.91186 6.23237 9.45562 6.78032 9.45562 7.45625C9.45562 8.13217 9.91186 8.68012 10.4747 8.68012Z",fill:e.color||"var(--privy-color-foreground-3)"})});let bs=[];const Es=()=>((()=>{let e=St(),{user:t}=_(),{walletProxy:n,privy:r}=Ee(),{fundWallet:a}=oe(),[i,s]=o(e.defaultChain.id),d=l((()=>t&&n?t.linkedAccounts.filter((e=>"wallet"===e.type&&"ethereum"===e.chainType&&null!==e.walletIndex&&"privy"===e.walletClientType)):bs),[t,n]);c((()=>{if(d.length<1)return;let o=Ne(),l=d.map((l=>{let c=()=>{if(!t||!n)throw new Ae("User not ready");let{entropyId:a,entropyIdVerifier:s}=lr(t,l);return new _s({walletProxy:n,address:l.address,entropyId:a,entropyIdVerifier:s,rpcConfig:e.rpcConfig,chains:e.chains,appId:e.id,chainId:i,walletIndex:l.walletIndex,privyClient:r,walletAccount:l})},d=o.find((e=>e.address===l.address&&e.connectorType===l.connectorType&&e.walletClientType===l.walletClientType))?.connectedAt??l.firstVerifiedAt?.getTime()??Date.now();return{fund:async e=>{await a({address:l.address,options:e})},type:"ethereum",chainId:`eip155:${i}`,switchChain:async e=>{s(Number(e))},getEthereumProvider:async()=>c(),sign:async e=>{let t=c();return await t.request({method:"personal_sign",params:[zn(e),l.address]})},address:l.address,connectedAt:d,walletClientType:"privy",connectorType:"embedded",imported:l.imported,meta:{name:"Privy Wallet",icon:Ss,id:"io.privy.wallet"},isConnected:async()=>!0,disconnect:()=>{},linked:!0,loginOrLink:async()=>{throw new Ae("Cannot link or login with embedded wallet")},unlink:async()=>{throw new Ae("Cannot unlink with embedded wallet")},walletIndex:l.walletIndex}}));or.setState({ethereumEmbedded:l})}),[d,i])})(),null),Is=/*#__PURE__*/i(!1);let Ps,Us,Ws,Ns,Os;const Rs=n=>{let r=n.client,a=n.privy,i=Dn(),l=St();le(J(l?.appearance.walletList??[]));let[d,u]=o(!1),p=ri((e=>e.inProgressMfaFlow)),[w,y]=o(!1),[g,f]=o(null),[v,A]=o(void 0),[k,T]=o(!1),[C,_]=o(null),[S,E]=o(!1),[U,F]=o({status:"disconnected",connectedWallet:null,connectError:null,connector:null,connectRetry:Se}),[L,D]=o({status:"initial"}),[j,q]=o({status:"initial"}),[z,H]=o({status:"initial"}),[V,B]=o({status:"initial"}),[K,$]=o({status:"initial"}),[G,Y]=o({status:"initial"}),[Q,Z]=o(null),X=Et(),[ee,ne]=o({}),[re,ae]=o(null),se=s(null),oe=s(null),ye=s(null),ve=s(Zn),[Te,Ce]=o(!1),be=h((e=>{Ce(e),!e&&C&&ti[C]().then((e=>{e.default.isUnauthenticatedScreem&&_(null)}))}),[C]);r.onStoreCustomerAccessToken=e=>{e&&Xn(ve,"accessToken","onAccessTokenGranted",{accessToken:e})},r.onDeleteCustomerAccessToken=()=>{f(null),be(!1),Xn(ve,"accessToken","onAccessTokenRemoved")};let Ee=s(null),Ue=s(null),We=s(!1),Ne=({showWalletUIs:e})=>We.current?We.current:void 0!==e?!e:!l.embeddedWallets.showWalletUIs,Me=e=>{_(e),setTimeout((()=>{u(!0)}),15)};c((()=>{Q&&se.current?.(Q)}),[Q]),c((()=>{if(l.externalWallets.solana.connectors)return l.externalWallets.solana.connectors.onMount(),()=>l.externalWallets.solana.connectors?.onUnmount()}),[l.externalWallets.solana.connectors]),c((()=>{!w&&X&&async function(){let e,t=je(),n=qe(),a=qn();r.initializeConnectorManager({walletConnectCloudProjectId:l.walletConnectCloudProjectId,rpcConfig:l.rpcConfig,chains:l.chains,defaultChain:l.defaultChain,store:a,walletList:l.appearance.walletList,shouldEnforceDefaultChainOnConnect:l.shouldEnforceDefaultChainOnConnect,externalWalletConfig:l.externalWallets,appName:l.name??"Privy",walletChainType:l.appearance.walletChainType,setBaseAccountSdk:A}),r.connectors?.on("connectorInitialized",(()=>{e&&clearTimeout(e);let t=r.connectors.walletConnectors.length,n=r.connectors.walletConnectors.reduce(((e,t)=>e+(t.initialized?1:0)),0);n===t?cr(!0):e=setTimeout((()=>{console.debug({message:"Unable to initialize all expected connectors before timeout",initialized:n,expected:t}),cr(!0)}),1500)})),r.connectors?.initialize().then((()=>{$e()}));let i=await r.getAuthenticatedUser(),s=!!i;l.legal.requireUsersAcceptTerms&&i&&!i.hasAcceptedTerms?(await r.logout(),lt.setReadyToTrue(!0),Xn(ve,"logout","onSuccess")):(l.customAuth?.enabled||(be(!!i),i&&Xn(ve,"login","onComplete",{user:i,isNewUser:!1,wasAlreadyAuthenticated:!0,loginMethod:null,loginAccount:null}),f(i)),t?Ue.current=s?"link":"login":n&&!s?(Ue.current="login",ne({telegramAuthModalData:{seamlessAuth:!0}}),Me("TelegramAuthScreen")):lt.setReadyToTrue(!!i))}()}),[r,re,w,X]),c((()=>{r.connectors?.setWalletList(l.appearance.walletList)}),[l.appearance.walletList.join()]);let je=()=>{let e=Aa();return e.inProgress&&e.popupFlow?window.opener.location.origin!==window.location.origin?void window.opener.postMessage({type:"PRIVY_OAUTH_ERROR",error:"Origins between parent and child windows do not match."}):"error"===e.authorizationCode?void window.opener.postMessage({type:"PRIVY_OAUTH_ERROR",error:"Something went wrong. Try again."}):void window.opener.postMessage({type:"PRIVY_OAUTH_RESPONSE",stateCode:e.stateCode,authorizationCode:e.authorizationCode}):(e.inProgress&&e.provider.startsWith("privy:")&&!e.popupFlow&&(new BroadcastChannel(Ki).postMessage({type:"PRIVY_OAUTH_RESPONSE",stateCode:e.stateCode,authorizationCode:e.authorizationCode}),window.close()),!!e.inProgress&&!!e.withPrivyUi&&(r.startAuthFlow(new va({...e,customOAuthRedirectUrl:l.customOAuthRedirectUrl})),Me("OAuthStatusScreen"),!0))},qe=()=>{let e=function(){let e;return(e=function(){let e=new URLSearchParams(window.location.search),t=Number(e.get("id")||""),n=e.get("hash"),r=Number(e.get("auth_date")||""),a=e.get("first_name");if(t&&a&&r&&n)return Object.fromEntries(e.entries())}())?(Ja(),{flowType:"login-url",authData:e}):(e=function(){let e=window.location.hash;if(!e||!e.startsWith("#tgWebAppData"))return;let t=Ya(e.replace("#tgWebAppData=","")),{user:n,auth_date:r,hash:a}=t;return n&&r&&a?t:void 0}())?(Ja(),{flowType:"web-app",authData:e}):void 0}();if(!e||!l.loginMethods.telegram||!l.loginConfig.telegramAuthConfiguration?.seamlessAuthEnabled)return;let t=new $a;return r.startAuthFlow(t),"login-url"===e.flowType&&(t.meta.telegramWebAppData=void 0,t.meta.telegramAuthResult=e.authData),"web-app"===e.flowType&&(t.meta.telegramAuthResult=void 0,t.meta.telegramWebAppData=e.authData),!0},ze=async(e,t,n,a)=>{if("solana_adapter"!==e)He(await(r.connectors?.createEthereumWalletConnector({connectorType:e,walletClientType:t}))||null,t,n,a);else{let e=r.connectors?.findSolanaWalletConnector(t);if(!e)return;He(e,t,n,a)}};async function He(e,t,n,r){if(!e)return F({status:"disconnected",connectedWallet:null,connectError:new ge("Unable to connect to wallet."),connector:null,connectRetry:Se}),r?.(null,n);F({status:"disconnected",connectedWallet:null,connectError:null,connector:e,connectRetry:Se}),e instanceof Xr&&t&&await e.resetConnection(t),F({connector:e,status:"connecting",connectedWallet:null,connectError:null,connectRetry:()=>He(e,t,n,r)});try{let t=await e.connect({showPrompt:!0});if((!t||de(t))&&l.shouldEnforceDefaultChainOnConnect&&!l.chains.find((e=>e.id===Number(t?.chainId.replace("eip155:",""))))&&("wallet_connect_v2"!==t?.connectorType||"metamask"!==t?.walletClientType)){F((t=>({...t,connector:e,status:"switching_to_supported_chain",connectedWallet:null,connectError:null,connectRetry:Se})));try{await(t?.switchChain(l.defaultChain.id)),t&&(t.chainId=pe(zn(l.defaultChain.id)))}catch{console.warn(`Unable to switch to default chain: ${l.defaultChain.id}`)}}return F((e=>({...e,status:"connected",connectedWallet:t,connectError:null,connectRetry:Se}))),t&&Xn(ve,"connectWallet","onSuccess",{wallet:t}),r?.(t,n)}catch(e){return e instanceof _e?(console.warn(e.cause?e.cause:e.message),Xn(ve,"connectWallet","onError",e.privyErrorCode||ke.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),Xn(ve,"connectWallet","onError",ke.UNKNOWN_CONNECT_WALLET_ERROR)),F((t=>({...t,status:"disconnected",connectedWallet:null,connectError:e}))),r?.(null,n)}}let Be=async(e,t,n)=>{if(null===e||!de(e))return;let a=new _a(r,e,t,n);r.startAuthFlow(a)},Ke=async(e,t,n,a="plain")=>{let s=i(at);if("transaction"===a&&!s)throw new Ae("useSolanaLedger plugin hook must be mounted");if(null===e||!me(e))return;let o=new qa(e,r,t,n,a,s);r.startAuthFlow(o)},$e=async()=>{let e=new URLSearchParams(window.location.search),t=e.get("privy_connector"),n=e.get("privy_wallet_client"),a="true"===e.get("privy_connect_only");if(!t||!n)return;let i=we({connectorType:t,walletClientType:n});if(!i||!i.isInstalled)return Me("LoginFailedScreen");if(!r.connectors)throw new Ae("Connector not initialized");await Me(a?"ConnectOnlyStatusScreen":"ConnectionStatusScreen");let s=new URL(window.location.href);s.searchParams.delete("privy_connector"),s.searchParams.delete("privy_wallet_client"),s.searchParams.delete("privy_connect_only"),window.history.pushState({},"",s),ze(t,n,void 0,a?void 0:"solana_adapter"===t?Ke:Be)};c((()=>{w&&Te&&null===g&&r.getAuthenticatedUser().then(f)}),[w,Te,g,r]);let Ge=e=>{if(!Te)throw Xn(ve,"linkAccount","onError",ke.MUST_BE_AUTHENTICATED,{linkMethod:e}),new Ae("User must be authenticated before linking an account.")},Ye=e=>{if(!Te||!g)return!1;if("privy"===e.walletClientType)return!0;for(let t of g.linkedAccounts)if("wallet"===t.type&&t.address===e.address&&"privy"!==t.walletClientType)return!0;return!1},Je=()=>{or.setState((e=>{let t=r.connectors?.wallets.filter(de).map((e=>({...e,linked:Ye(e),loginOrLink:async()=>{if(!await e.isConnected())throw new Ae("Wallet is not connected");if("embedded"===e.connectorType&&"privy"===e.walletClientType)throw new Ae("Cannot link or login with embedded wallet");(async e=>{let t;if(!r.connectors)throw new Ae("Connector not initialized");t="ethereum"===e.type?r.connectors.findWalletConnector(e.connectorType,e.walletClientType)||null:r.connectors.findSolanaWalletConnector(e.walletClientType)||null,F((n=>({...n,connector:t,status:"connected",connectedWallet:e,connectError:null,connectRetry:Se}))),l.captcha.enabledProvider&&!Te?(ne({captchaModalData:{callback:t=>de(e)?Be(e,t):Ke(e,t),userIntentRequired:!1,onSuccessNavigateTo:"ConnectionStatusScreen",onErrorNavigateTo:"ErrorScreen"}}),await Me("CaptchaScreen")):(de(e)?await Be(e):await Ke(e),await Me("ConnectionStatusScreen"))})(e)},fund:async t=>{await lt.fundWallet(e.address,t)},unlink:async()=>{if(!Te)throw new Ae("User is not authenticated.");if("embedded"===e.connectorType&&"privy"===e.walletClientType)throw new Ae("Cannot unlink an embedded wallet");f(await r.unlinkEthereumWallet(e.address))}})))||[];return ue(e.ethereumExternal,t)?{}:{ethereumExternal:t}}))};c((()=>{Je()}),[g?.linkedAccounts,Te,w]),c((()=>{if(w){if(!r.connectors)throw new Ae("Connector not initialized");Je(),r.connectors.on("walletsUpdated",Je)}}),[w]),c((()=>{[...l.loginMethodsAndOrder?.primary??[],...l.loginMethodsAndOrder?.overflow??[]].filter((e=>e.startsWith("privy:"))).forEach((e=>r.getCrossAppProviderDetails(e.replace("privy:",""))))}),[!!r]);let Qe=({transaction:e,sponsor:t,uiOptions:s,fundWalletConfig:o,address:c,signOnly:d})=>new Promise((async(u,h)=>{let{requesterAppId:p}=s||{},w=d?"signTransaction":"sendTransaction",y=c?O(g,c):P(g);if(!y&&c){let n=R(ps(),c);if(n){if(t)throw new Ae("Cannot sponsor transactions for externally connected wallet.");try{let t=await n.getEthereumProvider(),r=e.data,a=i(vr);a&&(r=a.appendDataSuffix({data:r}));let s={...e,from:c,chainId:e.chainId||Number(n.chainId.replace("eip155:","")),value:void 0!==e.value?zn(e.value):void 0,data:r},o=await t.request({method:"sendTransaction"===w?"eth_sendTransaction":"eth_signTransaction",params:[s]});return Xn(ve,w,"onSuccess",{hash:o}),void u({hash:o})}catch(e){return Xn(ve,w,"onError",ke.TRANSACTION_FAILURE),void h(e??new Fe("Unable to "+w+e))}}}if(!y)return Xn(ve,w,"onError",ke.EMBEDDED_WALLET_NOT_FOUND),void h(new Ae("No embedded or connected wallet found for address."));if(!Te||!g)return Xn(ve,w,"onError",ke.MUST_BE_AUTHENTICATED),void h(Error("User must be authenticated before signing with a Privy wallet"));let f=y.address,v=y.walletIndex??0,{entropyId:A,entropyIdVerifier:k}=lr(g,y),T=R(ps(),f);if(!T)return Xn(ve,w,"onError",ke.EMBEDDED_WALLET_NOT_FOUND),void h(Error("Must have a Privy wallet before signing"));let C=await T.getEthereumProvider(),_=await C.request({method:"eth_chainId"}),S=e.chainId?Number(e.chainId):Le(_);(e=>{if(!l.chains.map((e=>e.id)).includes(e))throw new ge(`Chain ID ${e} is not supported. It must be added to the config.supportedChains property of the PrivyProvider.`,ke.UNSUPPORTED_CHAIN_ID)})(S);let b=e.data,E=i(vr);E&&(b=E.appendDataSuffix({data:b}));let U={...e,from:e.from??f,chainId:S,data:b},W=await Qa();if(!W||!Q)return Xn(ve,w,"onError",ke.EMBEDDED_WALLET_NOT_FOUND),void h(Error("Must have valid access token and Privy wallet to send transaction"));let N=Ar(U.chainId,l.chains,l.rpcConfig,{appId:n.appId}),M=I(y),x=async({transactionRequest:e})=>{try{let n;if(!await lt.recoverEmbeddedWallet({address:f}))throw Xn(ve,w,"onError",ke.UNKNOWN_CONNECT_WALLET_ERROR),h(Error("Unable to connect to wallet")),Error("Unable to connect to wallet");if(t){let t=await(async({transactionRequest:e})=>{if(!M)throw new Ae("Sponsoring is only supported for wallets on the TEE stack");if(d)throw new Ae("Cannot sponsor a sign transaction request");let t=e=>null==e?void 0:zn(e),n=await m(a,(async({message:e})=>await Q.signWithUserSigner({accessToken:W,requesterAppId:p,message:e})),{chain_type:"ethereum",method:"eth_sendTransaction",caip2:pe(zn(e.chainId)),sponsor:!0,params:{transaction:{from:e.from,to:e.to,chain_id:t(e.chainId),data:Hn(e.data)?e.data?e.data:zn(Uint8Array.from(e.data)):void 0,value:t(e.value)}},wallet_id:y.id});if(n.data&&"hash"in n.data)return n.data.hash;throw new Fe("Unable to sign transaction")})({transactionRequest:e});return Xn(ve,"sendTransaction","onSuccess",{hash:t}),t}if(M){let t=e=>null==e?void 0:zn(e),r=await m(a,(async({message:e})=>await Q.signWithUserSigner({accessToken:W,requesterAppId:p,message:e})),{chain_type:"ethereum",method:"eth_signTransaction",params:{transaction:{from:e.from,to:e.to,nonce:t(e.nonce),chain_id:t(e.chainId),data:Hn(e.data)?e.data?e.data:zn(Uint8Array.from(e.data)):void 0,value:t(e.value),type:e.type,gas_limit:t(e.gasLimit??e.gas),gas_price:t(e.gasPrice??e.gas),max_fee_per_gas:t(e.maxFeePerGas),max_priority_fee_per_gas:t(e.maxPriorityFeePerGas)}},wallet_id:y.id});if(!r.data||!("signed_transaction"in r.data))throw new Fe("Unable to sign transaction");n=r.data.signed_transaction}else n=await async function({accessToken:e,entropyId:t,entropyIdVerifier:n,transactingWalletIndex:r,walletProxy:a,transactionRequest:i,requesterAppId:s}){return(await a.rpc({entropyId:t,entropyIdVerifier:n,hdWalletIndex:r??0,chainType:"ethereum",accessToken:e,requesterAppId:s,request:{method:"eth_signTransaction",params:[i]}})).response.data}({accessToken:W,entropyId:A,entropyIdVerifier:k,transactingWalletIndex:v,walletProxy:Q,transactionRequest:e,requesterAppId:p});if(d)return Xn(ve,"signTransaction","onSuccess",{signature:n}),n;{let e=await N.sendRawTransaction({serializedTransaction:n});return Xn(ve,"sendTransaction","onSuccess",{hash:e}),e}}catch(e){throw Xn(ve,w,"onError",ke.TRANSACTION_FAILURE),e}};if(Ne({showWalletUIs:s?.showWalletUIs})){let e=d||t?U:await cs(U,N,U.from);try{let t=await x({transactionRequest:e});d?Xn(ve,"signTransaction","onSuccess",{signature:t}):Xn(ve,"sendTransaction","onSuccess",{hash:t}),u({hash:t})}catch(e){Xn(ve,w,"onError",ke.TRANSACTION_FAILURE),h(e)}}else{let e={connectingWalletAddress:f,recoveryMethod:y.recoveryMethod,entropyId:A,entropyIdVerifier:k,onCompleteNavigateTo:"SendTransactionScreen",isUnifiedWallet:M,onFailure:e=>{Xn(ve,w,"onError",ke.UNKNOWN_CONNECT_WALLET_ERROR),h(e)}},n=(e=>!!e.fundingConfig&&xe(e.fundingConfig.options).length>=1)(l)?De({address:f,appConfig:l,fundWalletConfig:o,methodScreen:"FundingMethodSelectionScreen",chainIdOverride:U.chainId,comingFromSendTransactionScreen:!0}):void 0;ne({connectWallet:e,sendTransaction:{transactionRequest:U,transactingWalletIndex:v,transactingWalletAddress:f,entropyId:A,entropyIdVerifier:k,signOnly:d,scanTransaction:async()=>{let e=await cs(U,N,U.from);return await r.scanTransaction({metadata:{domain:l.embeddedWallets.transactionScanning.domain},chain_id:e.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:e.from,to:e.to,value:e.value?.toString(),gas:e.gas?.toString(),gasPrice:e.gasPrice?.toString(),nonce:e.nonce?.toString(),data:e.data}]}})},getIsSponsored:async()=>!!t,onConfirm:({transactionRequest:e})=>x({transactionRequest:e}),onSuccess:e=>{d?Xn(ve,"signTransaction","onSuccess",{signature:e.hash}):Xn(ve,"sendTransaction","onSuccess",{hash:e.hash}),u(e)},onFailure:e=>{Xn(ve,w,"onError",ke.TRANSACTION_FAILURE),h(e)},uiOptions:s||{},fundWalletConfig:o,requesterAppId:p},funding:n}),Me("EmbeddedWalletConnectingScreen")}}));function Ze(){return new Promise((async(e,t)=>{let n=await Qa();if(!n||!Q)throw Error("Must have valid access token to enroll in MFA");try{await Q.verifyMfa({accessToken:n}),e()}catch(e){t(e)}}))}let Xe=e=>e?.linkedAccounts.filter((e=>null!==e.latestVerifiedAt&&!("wallet"===e.type&&"privy"===e.walletClientType))).sort(((e,t)=>t.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0],et=e=>{let t=g?.linkedAccounts.filter((t=>t.type===e)).length??0,{displayName:n,loginMethod:r}=ls(e);if("passkey"===e&&t>=5||"passkey"!==e&&t>=1)throw Xn(ve,"linkAccount","onError",ke.CANNOT_LINK_MORE_OF_TYPE,{linkMethod:r}),new Ae(`User already has an account of type ${n} linked.`)};async function tt({showAutomaticRecovery:e=!1,legacySetWalletPasswordFlow:t=!1}){_(null);let n=t?"setWalletPassword":"setWalletRecovery";if(!Te||!g)throw Xn(ve,n,"onError",ke.MUST_BE_AUTHENTICATED),Error("User must be authenticated before adding recovery method to Privy wallet");let r=b(g);if(!r||!Q)throw Xn(ve,n,"onError",ke.EMBEDDED_WALLET_NOT_FOUND),Error("Must have a Privy wallet to add a recovery method");let a=I(r);if(a)throw Xn(ve,n,"onError",ke.UNSUPPORTED_WALLET_TYPE),new Ae("User owned wallet recovery is only supported for on-device execution and this app uses TEE execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");try{await Ze()}catch(e){throw Xn(ve,n,"onError",ke.MISSING_MFA_CREDENTIALS),e}return new Promise(((i,s)=>{let o="user-passcode"===r.recoveryMethod,c=es({walletAction:"update",availableRecoveryMethods:l.embeddedWallets.userOwnedRecoveryOptions,legacySetWalletPasswordFlow:t,isResettingPassword:o,showAutomaticRecovery:e}),{entropyId:d,entropyIdVerifier:u}=lr(g),h={recoveryMethod:r.recoveryMethod,connectingWalletAddress:r.address,onCompleteNavigateTo:c,shouldForceMFA:!1,entropyId:d,isUnifiedWallet:a,entropyIdVerifier:u,onFailure:e=>{Xn(ve,n,"onError",ke.UNKNOWN_CONNECT_WALLET_ERROR),s(e)}};ne({setWalletPassword:{onSuccess:e=>{Xn(ve,n,"onSuccess",{method:"user-passcode",wallet:e}),i(e)},onFailure:e=>{Xn(ve,n,"onError",ke.USER_EXITED_SET_PASSWORD_FLOW),s(e)},callAuthOnSuccessOnClose:!1},recoverWallet:{entropyId:d,entropyIdVerifier:u,onFailure:s},connectWallet:h,recoverySelection:{isInAccountCreateFlow:!1,isResettingPassword:o,shouldCreateEth:!1,shouldCreateSol:!1}}),Me("EmbeddedWalletConnectingScreen")}))}async function nt({appId:e,action:t,disableSignup:n}){let a=await Qa();if("link"===t&&!a)throw Xn(ve,"linkAccount","onError",ke.MUST_BE_AUTHENTICATED,{linkMethod:`privy:${e}`}),new Ae("User must be authenticated before linking an account.");if("login"===t&&a)throw Xn(ve,"login","onError",ke.UNKNOWN_AUTH_ERROR),new Ae("Attempted to log in, but user is already logged in. Use a `link` helper instead.");Ee.current=`privy:${e}`,Ue.current=t;let i=Bn();return r.createAnalyticsEvent({eventName:"cross_app_auth_started",payload:{providerAppId:e}}),new Promise((async(a,s)=>{let{name:o,logoUrl:c}=await Yi({api:r.api,providerAppId:e,requesterAppId:l.id});ne({crossAppAuth:{appId:e,name:o,logoUrl:c,action:t,popup:i,disableSignup:n,onSuccess:a,onError:s}}),Me("CrossAppAuthScreen")}))}let it={ready:w,authenticated:Te,user:g,walletConnectors:r.connectors||null,connectWallet:e=>{e&&"target"in e&&e&&(e=void 0),ne({externalConnectWallet:{walletList:e?.walletList&&e?.walletList.length>0?e.walletList:void 0,walletChainType:e?.walletChainType,description:e?.description,hideHeader:e?.hideHeader}}),Me("ConnectOnlyLandingScreen")},linkWallet:e=>(e&&"target"in e&&e&&(e=void 0),Ge("siwe"),Ee.current="siwe",Ue.current="link",ne({...ee,externalConnectWallet:{...ee.externalConnectWallet,walletList:e?.walletList,walletChainType:e?.walletChainType,description:e?.description||`Link a wallet to your ${l?.name} account`}}),Me("AuthenticateWithWalletScreen")),startCrossAppAuthFlow:nt,linkEmail:()=>{Ge("email"),et("email"),Ee.current="email",Ue.current="link",Me("LinkEmailScreen")},linkPhone:()=>{Ge("sms"),et("phone"),Ee.current="sms",Ue.current="link",Me("LinkPhoneScreen")},linkGoogle:async()=>{Ge("google"),et("google_oauth"),Ue.current="link",await lt.initLoginWithOAuth("google")},linkTwitter:async()=>{Ge("twitter"),et("twitter_oauth"),Ue.current="link",await lt.initLoginWithOAuth("twitter")},linkTwitch:async()=>{Ge("twitch"),et("twitch_oauth"),Ue.current="link",await lt.initLoginWithOAuth("twitch")},linkDiscord:async()=>{Ge("discord"),et("discord_oauth"),Ue.current="link",await lt.initLoginWithOAuth("discord")},linkGithub:async()=>{Ge("github"),et("github_oauth"),Ue.current="link",await lt.initLoginWithOAuth("github")},linkSpotify:async()=>{Ge("spotify"),et("spotify_oauth"),Ue.current="link",await lt.initLoginWithOAuth("spotify")},linkInstagram:async()=>{Ge("instagram"),et("instagram_oauth"),Ue.current="link",await lt.initLoginWithOAuth("instagram")},linkTiktok:async()=>{Ge("tiktok"),et("tiktok_oauth"),Ue.current="link",await lt.initLoginWithOAuth("tiktok")},linkLine:async()=>{Ge("line"),et("line_oauth"),Ue.current="link",await lt.initLoginWithOAuth("line")},linkLinkedIn:async()=>{Ge("linkedin"),et("linkedin_oauth"),Ue.current="link",await lt.initLoginWithOAuth("linkedin")},linkApple:async()=>{Ge("apple"),et("apple_oauth"),Ue.current="link",await lt.initLoginWithOAuth("apple")},linkPasskey:async()=>{Ge("passkey"),et("passkey"),await lt.initLinkWithPasskey(),Me("LinkPasskeyScreen")},linkTelegram:async e=>{if(Ge("telegram"),et("telegram"),Ue.current="link",Ee.current="telegram",e?.launchParams)if(e.launchParams.initDataRaw){let t=new $a;r.startAuthFlow(t),t.meta.telegramAuthResult=void 0,t.meta.telegramWebAppData=Ya(e.launchParams.initDataRaw),ne({telegramAuthModalData:{seamlessAuth:!0}}),Me("TelegramAuthScreen")}else Xn(ve,"linkAccount","onError",ke.INVALID_DATA,{linkMethod:"telegram"});else await lt.initLoginWithTelegram();Me("TelegramAuthScreen")},linkFarcaster:async()=>{Ge("farcaster"),et("farcaster"),await lt.initLoginWithFarcaster(),Ue.current="link",Ee.current="farcaster",Me("FarcasterConnectStatusScreen")},updateEmail:()=>{if(Ge("email"),!g?.email)throw new Ae("User does not have an email linked to their account.");Ue.current="update",Ee.current="email",Me("UpdateEmailScreen")},updatePhone:()=>{if(Ge("sms"),!g?.phone)throw new Ae("User does not have a phone number linked to their account.");Ue.current="update",Ee.current="sms",Me("UpdatePhoneScreen")},login:async e=>{e&&"target"in e&&e&&(e=void 0);let t="Attempted to log in, but user is already logged in. Use a `link` helper instead.";if(!w){let e=await new Promise((e=>{ae((t=>e.bind(t)))}));if(ae(null),e)return void console.warn(t)}!g||g.isGuest?(Ue.current="login",ne({login:e}),Me("LandingScreen")):console.warn(t)},connectOrCreateWallet:async()=>{w||(await new Promise((e=>{ae((()=>e))})),ae(null)),Te?console.warn("User must be unauthenticated to `connectOrCreateWallet`"):(Ue.current="connect-or-create",Me("ConnectOrCreateScreen"))},logout:async()=>{if(Ue.current=null,Ee.current=null,g&&r.clearProviderAcccessTokens(g),_(null),await r.logout(),g&&Q)try{await Q.clearMfa({userId:g.id})}catch(e){}f(null),be(!1),q({status:"initial"}),H({status:"initial"}),D({status:"initial"}),B({status:"initial"}),$({status:"initial"}),Y({status:"initial"}),Xn(ve,"logout","onSuccess"),u(!1),Re.del(_t),Re.del(ot(l.id))},getAccessToken:h((async()=>{let e=await r.getCustomerAccessToken();return e&&!Te&&be(!0),e}),[r,Te]),unlinkWallet:async e=>{let t;return f(t=e.startsWith("0x")?await r.unlinkEthereumWallet(e):await r.unlinkSolanaWallet(e)),t},unlinkEmail:async e=>{let t=await r.unlinkEmail(e);return f(t),t},unlinkPhone:async e=>{let t=await r.unlinkPhone(e);return f(t),t},unlinkGoogle:async e=>{let t=await r.unlinkOAuth("google",e);return f(t),t},unlinkTwitter:async e=>{let t=await r.unlinkOAuth("twitter",e);return f(t),t},unlinkTwitch:async e=>{let t=await r.unlinkOAuth("twitch",e);return f(t),t},unlinkDiscord:async e=>{let t=await r.unlinkOAuth("discord",e);return f(t),t},unlinkGithub:async e=>{let t=await r.unlinkOAuth("github",e);return f(t),t},unlinkSpotify:async e=>{let t=await r.unlinkOAuth("spotify",e);return f(t),t},unlinkInstagram:async e=>{let t=await r.unlinkOAuth("instagram",e);return f(t),t},unlinkTiktok:async e=>{let t=await r.unlinkOAuth("tiktok",e);return f(t),t},unlinkLine:async e=>{let t=await r.unlinkOAuth("line",e);return f(t),t},unlinkLinkedIn:async e=>{let t=await r.unlinkOAuth("linkedin",e);return f(t),t},unlinkApple:async e=>{let t=await r.unlinkOAuth("apple",e);return f(t),t},unlinkFarcaster:async e=>{let t=await r.unlinkFarcaster(e);return f(t),t},unlinkTelegram:async e=>{let t=await r.unlinkTelegram(e);return f(t),t},unlinkPasskey:async e=>{let t=await Qa();if(!t)throw Error("Must have valid access token to enroll in MFA");if(!Q)throw Error("Wallet proxy not initialized.");let n=l.passkeys.shouldUnenrollMfaOnUnlink;await Q.unlinkPasskeyAccount({credentialId:e,accessToken:t,removeAsMfa:n});let a=await r.getAuthenticatedUser();return f(a),a},unlinkCrossAppAccount:async({subject:e})=>{let t=g?.linkedAccounts.find((t=>"cross_app"===t.type&&t.subject===e))?.providerApp;if(!t)throw new Ae("Invalid subject");r.storeProviderAccessToken(t.id,null);let n=await r.unlinkOAuth(`privy:${t.id}`,e);return f(n),n},setWalletRecovery:async e=>tt({legacySetWalletPasswordFlow:!1,showAutomaticRecovery:e?.showAutomaticRecovery??!1}),setWalletPassword:async()=>tt({legacySetWalletPasswordFlow:!0,showAutomaticRecovery:!1}),signMessage:(e,t)=>new Promise((async(n,i)=>{let{requesterAppId:s}=t?.uiOptions||{},o=e.message,l=t?.address?O(g,t.address):P(g);if(!l&&void 0!==t?.address){let e=R(ps(),t.address);if(e)try{let t=await e.getEthereumProvider(),r=await t.request({method:"personal_sign",params:[o,e.address]});return Xn(ve,"signMessage","onSuccess",{signature:r}),void n({signature:r})}catch(e){return Xn(ve,"signMessage","onError",ke.UNABLE_TO_SIGN),void i(e??new Fe("Unable to sign message"))}}if(!l)throw new Ae("No embedded or connected wallet found for address.");if(!Te||!g)return Xn(ve,"signMessage","onError",ke.MUST_BE_AUTHENTICATED),void i(Error("User must be authenticated before signing with a Privy wallet"));let c=l.address,d=l.walletIndex??0,{entropyId:u,entropyIdVerifier:h}=lr(g,l),p=I(l);if("string"!=typeof o||o.length<1)return Xn(ve,"signMessage","onError",ke.INVALID_MESSAGE),void i(Error("Message must be a non-empty string"));let w=async()=>{let t;if(!Te)throw Error("User must be authenticated before signing with a Privy wallet");let n=await Qa();if(!Q||!n||!await lt.recoverEmbeddedWallet({address:c}))throw Error("Unable to connect to wallet");if(r.createAnalyticsEvent({eventName:"embedded_wallet_sign_message_started",payload:{walletAddress:c,requesterAppId:s}}),p){let r=Hn(e.message,{strict:!0}),i=await m(a,(async({message:e})=>await Q.signWithUserSigner({accessToken:n,requesterAppId:s,message:e})),{chain_type:"ethereum",method:"personal_sign",params:r?{message:o.slice(2),encoding:"hex"}:{message:o,encoding:"utf-8"},wallet_id:l.id});if(!i.data||!("signature"in i.data))throw new Fe("Unable to sign message");t=i.data.signature}else{let{response:e}=await Q.rpc({accessToken:n,entropyId:u,entropyIdVerifier:h,chainType:"ethereum",hdWalletIndex:d,requesterAppId:s,request:{method:"personal_sign",params:[o,c]}});t=e.data}return r.createAnalyticsEvent({eventName:"embedded_wallet_sign_message_completed",payload:{walletAddress:c,requesterAppId:s}}),t};if(Ne({showWalletUIs:t?.uiOptions?.showWalletUIs}))try{let e=await w();Xn(ve,"signMessage","onSuccess",{signature:e}),n({signature:e})}catch(e){Xn(ve,"signMessage","onError",ke.UNABLE_TO_SIGN),i(e??new Fe("Unable to sign message"))}else ne({signMessage:{method:"personal_sign",data:o,confirmAndSign:w,onSuccess:e=>{Xn(ve,"signMessage","onSuccess",{signature:e}),n({signature:e})},onFailure:e=>{Xn(ve,"signMessage","onError",ke.UNABLE_TO_SIGN),i(e)},uiOptions:t?.uiOptions||{}},connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:c,entropyId:u,entropyIdVerifier:h,onCompleteNavigateTo:"SignRequestScreen",isUnifiedWallet:p,onFailure:e=>{Xn(ve,"signMessage","onError",ke.UNKNOWN_CONNECT_WALLET_ERROR),i(e)}}}),Me("EmbeddedWalletConnectingScreen")})),signTypedData:(e,t)=>new Promise((async(n,i)=>{let{requesterAppId:s}=t?.uiOptions||{},o=t?.address?O(g,t.address):P(g);if(!o&&t?.address){let r=R(ps(),t.address);if(r)try{let t=await r.getEthereumProvider(),a=ie(e),i=await t.request({method:"eth_signTypedData_v4",params:[r.address,a]});return Xn(ve,"signTypedData","onSuccess",{signature:i}),void n({signature:i})}catch(e){return Xn(ve,"signTypedData","onError",ke.UNABLE_TO_SIGN),void i(e??new Fe("Unable to sign typed data "+e))}}if(!o)throw new Ae("No embedded or connected wallet found for address.");if(!Te||!g)return Xn(ve,"signTypedData","onError",ke.MUST_BE_AUTHENTICATED),void i(Error("User must be authenticated before signing with a Privy wallet"));let l=o.address,c=o.walletIndex??0,{entropyId:d,entropyIdVerifier:u}=lr(g,o),h=I(o),p=ie(e),w=async()=>{let e;if(!Te)throw Error("User must be authenticated before signing with a Privy wallet");let t=await Qa();if(!Q||!t||!await lt.recoverEmbeddedWallet({address:l}))throw Error("Unable to connect to wallet");if(r.createAnalyticsEvent({eventName:"embedded_wallet_sign_typed_data_started",payload:{walletAddress:l,requesterAppId:s}}),h){let{domain:n,types:r,primaryType:i,message:l}=p,c=await m(a,(async({message:e})=>await Q.signWithUserSigner({accessToken:t,requesterAppId:s,message:e})),{chain_type:"ethereum",method:"eth_signTypedData_v4",params:{typed_data:{domain:n,types:r,primary_type:i,message:l}},wallet_id:o.id});if(!c.data||!("signature"in c.data))throw new Fe("Unable to sign message");e=c.data.signature}else{let{response:n}=await Q.rpc({accessToken:t,entropyId:d,entropyIdVerifier:u,chainType:"ethereum",hdWalletIndex:c,requesterAppId:s,request:{method:"eth_signTypedData_v4",params:[l,p]}});e=n.data}return r.createAnalyticsEvent({eventName:"embedded_wallet_sign_typed_data_completed",payload:{walletAddress:l,requesterAppId:s}}),e};if(Ne({showWalletUIs:t?.uiOptions?.showWalletUIs}))try{let e=await w();Xn(ve,"signTypedData","onSuccess",{signature:e}),n({signature:e})}catch(e){Xn(ve,"signTypedData","onError",ke.UNABLE_TO_SIGN),i(e??new Fe("Unable to sign message"))}else ne({signMessage:{method:"eth_signTypedData_v4",data:p,confirmAndSign:w,onSuccess:e=>{Xn(ve,"signTypedData","onSuccess",{signature:e}),n({signature:e})},onFailure:e=>{Xn(ve,"signTypedData","onError",ke.UNABLE_TO_SIGN),i(e)},uiOptions:t?.uiOptions||{}},connectWallet:{recoveryMethod:o.recoveryMethod,connectingWalletAddress:o.address,entropyId:d,isUnifiedWallet:h,entropyIdVerifier:u,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{Xn(ve,"signMessage","onError",ke.UNKNOWN_CONNECT_WALLET_ERROR),i(e)}}}),Me("EmbeddedWalletConnectingScreen")})),sendTransaction:async(e,t)=>await Qe({transaction:e,sponsor:t?.sponsor,uiOptions:t?.uiOptions,fundWalletConfig:t?.fundWalletConfig,address:t?.address,signOnly:!1}),signTransaction:async(e,t)=>({signature:(await Qe({transaction:e,uiOptions:t?.uiOptions,address:t?.address,signOnly:!0})).hash}),promptMfa:Ze,async init(e){switch(e){case"sms":return void await r.initMfaSmsVerification();case"passkey":return await r.initMfaPasskeyVerification();case"totp":return;default:throw Error(`Unsupported MFA method: ${e}`)}},async submit(e,t){switch(e){case"totp":case"sms":if("string"!=typeof t)throw new Ae("Invalid MFA code");oe.current?.resolve({mfaMethod:e,mfaCode:t,relyingParty:window.origin}),await new Promise(((e,t)=>{ye.current={resolve:e,reject:t}}));break;case"passkey":if("string"==typeof t)throw new Ae("Invalid authenticator response");let n=await import("@simplewebauthn/browser"),r=hs(await n.startAuthentication({optionsJSON:t}));oe.current?.resolve({mfaMethod:e,mfaCode:r,relyingParty:window.origin}),await new Promise(((e,t)=>{ye.current={resolve:e,reject:t}}));break;default:throw oe.current?.reject(new Ae("Unsupported MFA method")),new Ae(`Unsupported MFA method: ${e}`)}},cancel(){oe.current?.reject(new Ae("MFA canceled"))},async initEnrollmentWithSms(e){let t=await Qa();if(!t||!Q)throw Error("Must have valid access token to enroll in MFA");await Q.initEnrollMfa({method:"sms",accessToken:t,phoneNumber:e.phoneNumber})},enrollInMfa:e=>new Promise(((t,n)=>{if(!e)return lt.closePrivyModal(),void t();l.mfa.noPromptOnMfaRequired&&console.warn("[Privy Warning] Triggering the 'showMfaEnrollmentModal' function when 'noPromptOnMfaRequired' is set to true is unexpected. If this is intentional, ensure that you are building custom UIs for MFA verification."),ne({mfaEnrollmentFlow:{mfaMethods:l.mfa.methods,shouldUnlinkOnUnenrollMfa:l.passkeys.shouldUnlinkOnUnenrollMfa,onSuccess:t,onFailure:n}}),Me("MfaEnrollmentFlowScreen")})),async initEnrollmentWithTotp(){let e=await Qa();if(!e||!Q)throw Error("Must have valid access token to enroll in MFA");let t=await Q.initEnrollMfa({method:"totp",accessToken:e});return{secret:t.secret,authUrl:t.authUrl}},async submitEnrollmentWithSms(e){let t=await Qa();if(!t||!Q)throw Error("Must have valid access token to enroll in MFA");await Q.submitEnrollMfa({method:"sms",accessToken:t,phoneNumber:e.phoneNumber,code:e.mfaCode}),f(await r.getAuthenticatedUser())},async submitEnrollmentWithTotp(e){let t=await Qa();if(!t||!Q)throw Error("Must have valid access token to enroll in MFA");await Q.submitEnrollMfa({method:"totp",accessToken:t,code:e.mfaCode}),f(await r.getAuthenticatedUser())},async initEnrollmentWithPasskey(){},async submitEnrollmentWithPasskey({credentialIds:e},t={}){let n=await Qa();if(!n||!Q)throw Error("Must have valid access token to enroll in MFA");await Q.submitEnrollMfa({method:"passkey",accessToken:n,credentialIds:e,removeForLogin:t.removeForLogin}),f(await r.getAuthenticatedUser())},async unenroll(e,t={}){let n=await Qa();if(!n||!Q)throw Error("Must have valid access token to remove MFA");"passkey"===e?await Q.submitEnrollMfa({method:"passkey",accessToken:n,credentialIds:[],removeForLogin:t.removeForLogin}):await Q.unenrollMfa({method:e,accessToken:n}),f(await r.getAuthenticatedUser())},requestFarcasterSignerFromWarpcast:async()=>{let e=await Qa(),t=g?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!e)throw Error("Must have valid access token to connect with Farcaster");if(!Q||!t)throw Error("Must have an embedded wallet to use Farcaster signers");if(I(t))throw new Ae("Farcaster signers are only supported for on-device execution and this app uses TEE execution. Learn more at https://docs.privy.io/recipes/tee-wallet-migration-guide");if(!g?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");if(!await lt.recoverEmbeddedWallet({address:t.address}))throw Error("Unable to connect to wallet");let n=await Q.initFarcasterSigner({address:t.address,hdWalletIndex:null,accessToken:e,mfaCode:null,mfaMethod:null,relyingParty:window.origin});"approved"===n.status&&f(await r.getAuthenticatedUser()||g||null),ne({farcasterSigner:n}),Me("FarcasterSignerStatusScreen")},getFarcasterSignerPublicKey:async()=>{let e,t=await Qa(),n=g?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!t)throw Error("Must have valid access token to connect with Farcaster");if(!Q||!n)throw Error("Must have an embedded wallet to use Farcaster signers");if(I(n))throw new Ae("Farcaster signers are only supported for on-device execution and this app uses TEE execution. Learn more at https://docs.privy.io/recipes/tee-wallet-migration-guide");if(!g?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");if(!await lt.recoverEmbeddedWallet({address:n.address}))throw Error("Unable to connect to wallet");if(!g.farcaster?.signerPublicKey)throw Error("Must have a Farcaster signer public key to sign");return e=g.farcaster.signerPublicKey.slice(2),Uint8Array.from(e.match(/.{1,2}/g).map((e=>parseInt(e,16))))},signFarcasterMessage:async e=>{let t=await Qa(),n=g?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!t)throw Error("Must have valid access token to connect with Farcaster");if(!Q||!n)throw Error("Must have an embedded wallet to use Farcaster signers");if(I(n))throw new Ae("Farcaster signers are only supported for on-device execution and this app uses TEE execution. Learn more at https://docs.privy.io/recipes/tee-wallet-migration-guide");if(!g?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");if(!await lt.recoverEmbeddedWallet({address:n.address}))throw Error("Unable to connect to wallet");if(!g.farcaster?.signerPublicKey)throw Error("Must have a Farcaster signer public key to sign");let r=await import("@simplewebauthn/browser"),a=await Q.signFarcasterMessage({address:n.address,hdWalletIndex:null,accessToken:t,mfaCode:null,mfaMethod:null,payload:{hash:r.bufferToBase64URLString(e)},fid:BigInt(g.farcaster.fid),relyingParty:window.origin});return new Uint8Array(r.base64URLStringToBuffer(a.signature))},signMessageWithCrossAppWallet(e,{address:t,chainId:n}){let a=g?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t))));return Ji({user:g,client:r,address:t,requesterAppId:l.id,request:{method:a?"privy_signSmartWalletMessage":"personal_sign",params:[e,t],chainId:n},reconnect:nt})},signTypedDataWithCrossAppWallet(e,{address:t,chainId:n}){let a=g?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t)))),i=ie(e);return Ji({user:g,client:r,address:t,requesterAppId:l.id,request:{method:a?"privy_signSmartWalletTypedData":"eth_signTypedData_v4",params:[t,i],chainId:n},reconnect:nt})},sendTransactionWithCrossAppWallet(e,{address:t}){let n=g?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t))));return Ji({user:g,client:r,address:t,requesterAppId:l.id,request:{method:n?"privy_sendSmartWalletTx":"eth_sendTransaction",params:[e],chainId:e.chainId},reconnect:nt})},signTransactionWithCrossAppWallet(e,{address:t}){let n=g?.linkedAccounts.some((e=>"cross_app"===e.type&&e.smartWallets.some((e=>e.address===t))));return Ji({user:g,client:r,address:t,requesterAppId:l.id,request:{method:n?"privy_signSmartWalletTx":"eth_signTransaction",params:[e],chainId:e.chainId},reconnect:nt})},isModalOpen:d||!!p,mfaMethods:l.mfa.methods};Ps=it.signMessage,Us=it.signTypedData,Ns=async(e,t)=>await Qe({transaction:e,...t,signOnly:!1}),Ws=async(e,t)=>({signature:(await Qe({transaction:e,...t,signOnly:!0})).hash});let st=async e=>{let t,n,a;E(!0),$({status:"loading"}),r.startAuthFlow(new va({...e,customOAuthRedirectUrl:l.customOAuthRedirectUrl}));let i=Re.get(ut),s=e.stateCode;if(i!==s)throw r.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:e.provider,storedStateCode:i??"",returnedStateCode:s??""}}),E(!1),new Ae("Unexpected auth flow. This may be a phishing attempt.",void 0,ke.OAUTH_UNEXPECTED);if(null!==await r.getAccessToken())try{({user:t,oAuthTokens:a}=await r.link()),Ee.current=e.provider;let n=Xe(t);t&&n&&Xn(ve,"linkAccount","onSuccess",{user:t,linkMethod:Ee.current,linkedAccount:n})}catch(t){throw E(!1),Xn(ve,"linkAccount","onError",t.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:e.provider}),t}else try{({user:t,isNewUser:n,oAuthTokens:a}=await r.authenticate()),Ee.current=e.provider;let i=Xe(t);t&&i&&void 0!==n&&Xn(ve,"login","onComplete",{user:t,isNewUser:n,wasAlreadyAuthenticated:!1,loginMethod:Ee.current,loginAccount:i})}catch(e){throw E(!1),$({status:"error",error:e}),Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}return f(t),T(n||!1),be(!0),E(!1),$({status:"done"}),a&&t&&Xn(ve,"oAuthAuthorization","onOAuthTokenGrant",{oAuthTokens:a,user:t}),t??void 0},lt={privy:a,setAuthenticated:be,setUser:f,setIsNewUser:T,isNewUserThisSession:k,pendingTransaction:null,walletConnectionStatus:U,setWalletConnectionStatus:F,connectors:r.connectors?.walletConnectors??[],rpcConfig:l.rpcConfig,chains:l.chains,appId:n.appId,showFiatPrices:"native-token"!==l.embeddedWallets.priceDisplay.primary,clientAnalyticsId:r.clientAnalyticsId,hideWalletUIs:We,isHeadlessSigning:h(Ne,[l.embeddedWallets.showWalletUIs]),emailOtpState:j,setEmailOtpState:q,smsOtpState:z,setSmsOtpState:H,oAuthState:K,setOAuthState:$,telegramAuthState:G,setTelegramAuthState:Y,siweState:V,setSiweState:B,isHeadlessOAuthLoading:S,baseAccountSdk:v,setBaseAccountSdk:A,nativeTokenSymbolForChainId:e=>l.chains.find((t=>t.id===Number(e)))?.nativeCurrency.symbol,initializeWalletProxy:async e=>{if(Q)return Q;let t=new Promise((e=>{se.current=e})),n=new Promise((t=>setTimeout((()=>t(null)),e))),r=await Promise.race([t,n]);return se.current=null,r},getAuthFlow:()=>r.authFlow,getAuthMeta:()=>r.authFlow?.meta,client:r,closePrivyModal:async(e={shouldCallAuthOnSuccess:!0,isSuccess:!1})=>{let t,a=w&&Te&&g;if(a&&Ee.current&&(t=Xe(g)),"login"===Ue.current)e.shouldCallAuthOnSuccess&&a&&Ee.current?Xn(ve,"login","onComplete",{user:g,isNewUser:k,wasAlreadyAuthenticated:!1,loginMethod:Ee.current,loginAccount:t??null}):Xn(ve,"login","onError",ke.USER_EXITED_AUTH_FLOW);else if("link"===Ue.current&&t)e.isSuccess&&a&&Ee.current?Xn(ve,"linkAccount","onSuccess",{user:g,linkMethod:Ee.current,linkedAccount:t}):Ee.current&&Xn(ve,"linkAccount","onError",ke.USER_EXITED_LINK_FLOW,{linkMethod:Ee.current});else if("update"===Ue.current&&t)e.isSuccess&&a&&Ee.current?Xn(ve,"update","onSuccess",{user:g,updateMethod:Ee.current,updatedAccount:t}):Ee.current&&Xn(ve,"update","onError",ke.USER_EXITED_UPDATE_FLOW,{linkMethod:Ee.current});else if("connect-or-create"===Ue.current){let e=ps();e[0]?Xn(ve,"connectOrCreateWallet","onSuccess",{wallet:e[0]}):Xn(ve,"connectOrCreateWallet","onError",ke.USER_EXITED_AUTH_FLOW)}let s=C&&as.has(C),o="ErrorScreen"===C&&ee.errorModalData&&as.has(ee.errorModalData.previousScreen);if((s||o)&&ee.funding){let e,t=as.get(C)??null;if(o&&ee.funding?.onError){let e=ee.errorModalData?.error,t=e?.privyErrorCode||ke.UNKNOWN_FUNDING_ERROR,n=new Ae(e?.message||"Funding failed",e,t);ee.funding?.onError?.(n)}if("solana"===ee.funding.chainType){let n=l.solanaRpcs[ee.funding.chain];if(!n)return console.warn("Unable to load solana rpc, skipping balance"),Xn(ve,"fundSolanaWallet","onUserExited",{address:ee.funding.address,fundingMethod:t,chain:ee.funding.chain,balance:e}),u(!1),void ns(ee.funding,t);if(i(rt))try{e=await ss({rpc:n.rpc,address:ee.funding.address})}catch{console.error("Unable to pull wallet balance")}else console.warn("Unable to load solana plugin, skipping balance");Xn(ve,"fundSolanaWallet","onUserExited",{address:ee.funding.address,fundingMethod:t,chain:ee.funding.chain,balance:e})}else{let r=Ar(ee.funding.chain.id,l.chains,l.rpcConfig,{appId:n.appId});try{e=await r.getBalance({address:ee.funding.address})}catch{console.error("Unable to pull wallet balance")}Xn(ve,"fundWallet","onUserExited",{address:ee.funding.address,chain:ee.funding.chain,fundingMethod:t,balance:e}),ns(ee.funding,t)}}ne((e=>({...e,externalConnectWallet:{}}))),Ue.current=null,Ee.current=null,T(!1),u(!1),F({status:"disconnected",connectedWallet:null,connector:null,connectError:null,connectRetry:()=>{}}),setTimeout((()=>{r.authFlow=void 0}),200)},openPrivyModal:Me,connectWallet:He,initLoginWithWallet:async(e,t,n,r)=>{de(e)?(Ee.current="siwe",Be(e,t,n)):(Ee.current="siws",Ke(e,t,n,r))},loginWithWallet:async()=>{let e,t,n;if(!w)throw new Pe;if(r.authFlow instanceof _a?e="siwe":r.authFlow instanceof qa&&(e="siws"),!e)throw new Ae("Must initialize SIWE/SIWS flow first.");if(null!==await r.getAccessToken())try{({user:t}=await r.link()),Ee.current=e}catch(t){throw Xn(ve,"linkAccount","onError",t.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:e}),t}else try{({user:t,isNewUser:n}=await r.authenticate()),Ee.current=e}catch(e){throw Xn(ve,"login","onError",e.privyErrorCode||ke.GENERIC_CONNECT_WALLET_ERROR),e}f(t||g||null),T(n||!1),be(!0)},delegateWallet:async({address:e,chainType:t,showDelegationUIs:n})=>new Promise((async(r,a)=>{let i=await Qa();if(!Te||!g||!i)throw new Ae("User must be authenticated and have an embedded wallet to delegate actions.");if("solana"!==t&&"ethereum"!==t)throw new Ae("Only Solana and Ethereum embedded wallets are supported for delegation and revocation.");let s=lt.walletProxy??await lt.initializeWalletProxy(15e3);if(!s)throw new Ae("Wallet proxy not initialized.");if((({address:e,user:t})=>!!Bi(t).find((t=>t.address===e)))({address:e,user:g}))return r();let o=O(g,e);if(!o)throw new Ae("Address to delegate is not associated with current user.");if(I(o))throw new Ae("useDelegatedActions is only supported for on-device execution and this app uses TEE execution. Use the useSessionSigners hook to provision server side access on behalf of your users. Learn more at https://docs.privy.io/recipes/tee-wallet-migration-guide");let l=Hi({address:e,user:g}),c=Vi({address:e,user:g}),d=async()=>{await s.createDelegatedAction({accessToken:i,rootWallet:c,delegatedWallets:[l]}),await lt.refreshSessionAndUser()};if(await lt.recoverEmbeddedWallet({address:e}),n)ne({delegatedActions:{consent:{address:e,onDelegate:d,onSuccess:async()=>{r()},onError:async e=>{a(e)}}}}),Me("DelegatedActionsConsentScreen");else try{await d(),r()}catch(e){a(e)}})),revokeDelegatedWallets:async({showDelegationUIs:e})=>new Promise((async(t,n)=>{if(!Te||!g)throw new Ae("User must be authenticated and have an embedded wallet to revoke a delegated wallet.");let a=Bi(g);if(0===a.length)throw new Ae("User has no delegated wallets to revoke.");if(a.some(I))throw new Ae("useDelegatedActions is only supported for on-device execution and this app uses TEE execution. Use the useSessionSigners hook to provision server side access on behalf of your users. Learn more at https://docs.privy.io/recipes/tee-wallet-migration-guide");let i=async()=>{await r.revokeDelegatedWallet(),await lt.refreshSessionAndUser()};if(e)ne({delegatedActions:{revoke:{onRevoke:i,onSuccess:async()=>{t()},onError:async e=>{n(e)}}}}),Me("DelegatedActionsRevokeScreen");else try{await i(),t()}catch(e){n(e)}})),initLoginWithFarcaster:async(e,t)=>{let n=new Da(e,t);r.startAuthFlow(n);try{Ee.current="farcaster",await n.initializeFarcasterConnect()}catch(e){throw"login"===Ue.current?Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR):"link"===Ue.current&&Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"farcaster"}),e}},loginWithFarcaster:async()=>{let e,t;if(!w)throw new Pe;if(!(r.authFlow instanceof Da))throw new Ae("Must initialize Farcaster flow first.");if(null!==await r.getAccessToken())try{({user:e}=await r.link()),Ee.current="farcaster"}catch(e){throw Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"farcaster"}),e}else try{({user:e,isNewUser:t}=await r.authenticate()),Ee.current="farcaster"}catch(e){throw Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}f(e||null),T(t||!1),be(!0)},async crossAppAuthFlow({appId:e,popup:t,action:n,disableSignup:a}){let i=`privy:${e}`;Ee.current=i;let{url:s,stateCode:o,codeVerifier:l}=await async function({api:e,appId:t}){let n=ya(),r=ga(),a=await fa(n);try{let{url:i}=await e.post(Vt,{provider:`privy:${t}`,redirect_to:window.location.href,code_challenge:a,state_code:r});return{url:i,stateCode:r,codeVerifier:n}}catch(e){throw fe(e)}}({api:r.api,appId:e});if(!s)throw r.createAnalyticsEvent({eventName:"cross_app_auth_error",payload:{error:"Unable to open cross-app auth popup",appId:e}}),new Ae("No authorization URL returned for cross-app auth.");try{let c=await async function({url:e,popup:t}){return t.location=e,new Promise(((e,n)=>{let r,a=setTimeout((()=>{n(new Ae("Authorization request timed out after 2 minutes.")),i()}),12e4);function i(){t?.close(),window.removeEventListener("message",o)}let s=setInterval((()=>{t?.closed&&!r&&(i(),clearInterval(s),clearTimeout(a),n(new Ae("User rejected request")))}),300);function o(t){t.data&&("PRIVY_OAUTH_RESPONSE"===t.data.type&&t.data.stateCode&&t.data.authorizationCode&&(clearTimeout(a),e(t.data),i()),"PRIVY_OAUTH_ERROR"===t.data.type&&(clearTimeout(a),n(new Ae(t.data.error)),i()),t.data.type===$i&&((r=new BroadcastChannel(Ki)).onmessage=o))}window.addEventListener("message",o)}))}({url:s,popup:t,provider:i}),d=c.stateCode,u=c.authorizationCode;if(d!==o)throw r.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:i,storedStateCode:o??"",returnedStateCode:d??""}}),new Ae("Unexpected auth flow. This may be a phishing attempt.",void 0,ke.OAUTH_UNEXPECTED);let h=await async function({appId:e,stateCode:t,codeVerifier:n,authorizationCode:r,action:a,client:i,disableSignup:s}){if(!r||!t)throw new Ae("[Cross-App AuthFlow] Authorization and state codes code must be set prior to calling authenicate.");if("undefined"===r)throw new Ae("User denied confirmation during cross-app auth flow");try{let o=new Gi({authorizationCode:r,stateCode:t,codeVerifier:n,provider:`privy:${e}`,disableSignup:!!s});i.startAuthFlow(o);let l="link"===a?await i.link():await i.authenticate(),c=l.oAuthTokens?.accessToken;return console.debug(),c}catch(e){let t=fe(e);if(t.privyErrorCode===ke.ACCOUNT_TRANSFER_REQUIRED)throw t;if(t.privyErrorCode)throw new Ae(t.message||"Invalid code during cross-app auth flow.",void 0,t.privyErrorCode);if("User denied confirmation during cross-app auth flow"===t.message)throw new Ae("Invalid code during cross-app auth flow.",void 0,ke.OAUTH_USER_DENIED);throw new Ae("Invalid code during cross-app auth flow.",void 0,ke.UNKNOWN_AUTH_ERROR)}}({appId:e,codeVerifier:l,stateCode:d,authorizationCode:u,action:n,client:r,disableSignup:a});h&&r.storeProviderAccessToken(e,h);let p=await lt.refreshSessionAndUser();if(!p)throw new Ae("Unable to update user");return r.createAnalyticsEvent({eventName:"cross_app_auth_completed",payload:{providerAppId:e}}),p}catch(e){throw r.createAnalyticsEvent({eventName:"cross_app_auth_error",payload:{error:e.toString(),provider:i}}),e}},async initLoginWithOAuth(e,t,n){if(Ee.current=e,!Oe())return void Me("InAppBrowserLoginNotPossible");if("google"===e&&!l.allowOAuthInEmbeddedBrowsers&&is(window.navigator.userAgent))return void Me("InAppBrowserLoginNotPossible");"twitter"===e&&window.opener&&window.opener.postMessage({type:$i},"*"),Re.del(ct),Re.del(dt);let a=new va({provider:e,disableSignup:!!n,withPrivyUi:!0,customOAuthRedirectUrl:l.customOAuthRedirectUrl});t&&a.addCaptchaToken(t),r.startAuthFlow(a);let i=await r.authFlow.getAuthorizationUrl();if(i&&i.url)if("twitter"===e&&Ve&&(i.url=i.url.replace("x.com","twitter.com")),"chrome-extension:"===window.location.protocol&&wa())try{let{privyOAuthCode:e,privyOAuthState:t}=await ma(i.url);Me("OAuthStatusScreen"),a.meta.stateCode=t,a.meta.authorizationCode=e}catch(e){throw console.error("OAuth in chrome extension flow failed:",e),e}else window.location.assign(i.url)},async initLoginWithTelegram(e,t){if(!w)throw new Pe;Ee.current="telegram";let n=new $a(e,t);r.startAuthFlow(n),Y({status:"loading"}),n.meta.telegramWebAppData=void 0,n.meta.telegramAuthResult=await new Promise(((e,t)=>l.loginConfig.telegramAuthConfiguration?window.Telegram?void window.Telegram.Login.auth({bot_id:l.loginConfig.telegramAuthConfiguration.botId,request_access:!0},(n=>n?e(n):("link"===Ue.current?Xn(ve,"linkAccount","onError",ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"telegram"}):"login"===Ue.current?Xn(ve,"login","onError",ke.INVALID_CREDENTIALS):"update"===Ue.current&&Xn(ve,"login","onError",ke.FAILED_TO_UPDATE_ACCOUNT),t(new Ae("Telegram auth failed or was canceled by the client"))))):t(new Ae("Telegram was not initialized")):t(new Ae("Telegram Auth configuration is not loaded"))))},async loginWithTelegram(e){let t,n;if(!(r.authFlow instanceof $a))throw new Ae("Must initialize Telegram flow before calling loginWithTelegram");r.authFlow.meta.captchaToken||=e?.captchaToken;let a=await Qa(),i=e?.intent||Ue.current;if("login"===i)try{let e=await r.authenticate();t=e.user,n=e.isNewUser,Ee.current="telegram"}catch(e){throw Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}else{if("link"!==i)throw new Ae("Unknown auth intent");try{t=(await r.link()).user,Ee.current="telegram"}catch(e){throw Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"telegram"}),e}}f(t),T(n||!1),be(!0),Y({status:"done"});let s=t?.linkedAccounts.find((({type:e})=>"telegram"===e))||null;return{user:t,isNewUser:n||!1,wasAlreadyAuthenticated:!!a,loginAccount:s}},async loginWithOAuth(e){let t,n,a;if(!(r.authFlow instanceof va))throw new Ae("Must initialize OAuth flow before calling loginWithOAuth");let i=Re.get(ut),s=r.authFlow.meta.stateCode;if(i!==s)throw r.createAnalyticsEvent({eventName:"possible_phishing_attempt",payload:{provider:e,storedStateCode:i??"",returnedStateCode:s??""}}),new Ae("Unexpected auth flow. This may be a phishing attempt.",void 0,ke.OAUTH_UNEXPECTED);if(null!==await r.getAccessToken())try{let n=await r.link();t=n.user,a=n.oAuthTokens,Ee.current=e}catch(t){throw Xn(ve,"linkAccount","onError",t.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:e}),t}else try{let i=await r.authenticate();t=i.user,n=i.isNewUser,a=i.oAuthTokens,Ee.current=e}catch(t){throw"login"===Ue.current?Xn(ve,"login","onError",t.privyErrorCode||ke.UNKNOWN_AUTH_ERROR):"link"===Ue.current&&Xn(ve,"linkAccount","onError",t.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:e}),t}return f(t),T(n||!1),be(!0),a&&t&&Xn(ve,"oAuthAuthorization","onOAuthTokenGrant",{oAuthTokens:a,user:t}),a},passkeyAuthState:L,setPasskeyAuthState:D,async initSignupWithPasskey({captchaToken:e,withPrivyUi:t}){let n=new ja({captchaToken:e,setPasskeyAuthState:D,hints:l.passkeys.registration?.hints});r.startAuthFlow(n),Ue.current="login";try{Ee.current="passkey",D({status:"generating-challenge"}),await n.initRegisterFlow(t),D({status:"awaiting-passkey"})}catch(e){throw D({status:"error",error:e}),Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}},async signupWithPasskey(){let e,t;if(!w)throw new Pe;if(!(r.authFlow instanceof ja))throw new Ae("Must initialize Passkey flow first.");if("passkey"!==Ee.current){let e=new Ae("Must init login with Passkey flow first.");throw D({status:"error",error:e}),e}let n=await Qa();try{Ee.current="passkey",D({status:"awaiting-passkey"}),({user:e,isNewUser:t}=await r.authenticate())}catch(e){throw D({status:"error",error:e}),Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}f(e),T(t||!1),be(!0),D({status:"done"});let a=e?.linkedAccounts.find((({type:e})=>"passkey"===e))||null;return{user:e,isNewUser:t||!1,wasAlreadyAuthenticated:!!n,loginAccount:a}},async initLoginWithPasskey({captchaToken:e,withPrivyUi:t}){let n=new ja({captchaToken:e,setPasskeyAuthState:D,hints:void 0});r.startAuthFlow(n),Ue.current="login";try{Ee.current="passkey",D({status:"generating-challenge"}),await n.initAuthenticationFlow(t),D({status:"awaiting-passkey"})}catch(e){throw D({status:"error",error:e}),Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}},async loginWithPasskey(e){let t,n;if(!w)throw new Pe;if(!(r.authFlow instanceof ja))throw new Ae("Must initialize Passkey flow first.");if(e?.credentialIds&&(r.authFlow.meta.allowedCredentialsIds=e.credentialIds),"passkey"!==Ee.current){let e=new Ae("Must init login with Passkey flow first.");throw D({status:"error",error:e}),e}let a=await Qa();try{Ee.current="passkey",D({status:"awaiting-passkey"}),({user:t,isNewUser:n}=await r.authenticate())}catch(e){throw D({status:"error",error:e}),Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}f(t),T(n||!1),be(!0),D({status:"done"});let i=t?.linkedAccounts.find((({type:e})=>"passkey"===e))||null;return{user:t,isNewUser:n||!1,wasAlreadyAuthenticated:!!a,loginAccount:i}},async initLinkWithPasskey(e){let t=new ja({captchaToken:e,hints:l.passkeys.registration?.hints});r.startAuthFlow(t),Ue.current="link",Ee.current="passkey",D({status:"generating-challenge"});try{await t.initLinkFlow(),D({status:"awaiting-passkey"})}catch(e){throw Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),D({status:"error",error:e}),e}},async linkWithPasskey(){let e;if(!w)throw new Pe;if(!(r.authFlow instanceof ja))throw new Ae("Must initialize Passkey flow first.");if("passkey"!==Ee.current)throw new Ae("Must init login with Passkey flow first.");try{Ee.current="passkey",({user:e}=await r.link())}catch(e){throw Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"passkey"}),e}return f(e||g||null),D({status:"done"}),e},async initLoginWithHeadlessOAuth(e,t,n){if(!Oe())throw Error("It looks like you're using an in-app browser. To log in, please try again using an external browser.");if("google"===e&&!l.allowOAuthInEmbeddedBrowsers&&is(window.navigator.userAgent))throw Error("It looks like you're using an in-app browser. To log in, please try again using an external browser.");let a=new va({provider:e,withPrivyUi:!1,disableSignup:n??!1,customOAuthRedirectUrl:l.customOAuthRedirectUrl});t&&a.addCaptchaToken(t),$({status:"loading"});let i=await r.startAuthFlow(a).getAuthorizationUrl();if(i?.url)if("chrome-extension:"===window.location.protocol&&wa())try{let{privyOAuthCode:e,privyOAuthState:t}=await ma(i.url);a.meta.stateCode=t,a.meta.authorizationCode=e,await st(a.meta)}catch(e){throw $({status:"error",error:e}),e}else window.location.assign(i.url)},loginWithHeadlessOAuth:st,initLoginWithEmail:async({email:e,captchaToken:t,disableSignup:n,withPrivyUi:a})=>{let i=new la({email:e,captchaToken:t,disableSignup:n});r.startAuthFlow(i);try{Ee.current="email",q({status:"sending-code"});let e=await i.sendCodeEmail({withPrivyUi:a});if(e?.ssoRedirectUrl)return window.location.href=e.ssoRedirectUrl,void await he(1e4);q({status:"awaiting-code-input"})}catch(e){throw q({status:"error",error:e}),"login"===Ue.current?Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR):"link"===Ue.current&&Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"email"}),e}},initUpdateEmail:async({oldAddress:e,newAddress:t,captchaToken:n})=>{let a=new ca(e,t,n);r.startAuthFlow(a);try{await a.sendCodeEmail({withPrivyUi:!0})}catch(e){throw Xn(ve,"update","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:Ee.current}),e}},initUpdatePhone:async(e,t,n)=>{let a=new ba(e,t,n);r.startAuthFlow(a);try{await a.sendSmsCode({withPrivyUi:!0})}catch(e){Xn(ve,"update","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:Ee.current})}},initLoginWithSms:async({phoneNumber:e,captchaToken:t,disableSignup:n,withPrivyUi:a})=>{H({status:"sending-code"});let i=new Sa({phoneNumber:e,captchaToken:t,disableSignup:n});r.startAuthFlow(i);try{Ee.current="sms",await i.sendSmsCode({withPrivyUi:a}),H({status:"awaiting-code-input"})}catch(e){throw H({status:"error",error:e}),"login"===Ue.current?Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR):"link"===Ue.current&&Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"sms"}),e}},resendEmailCode:async()=>{await(r.authFlow?.sendCodeEmail({withPrivyUi:!0}))},resendSmsCode:async()=>{await(r.authFlow?.sendSmsCode({withPrivyUi:!0}))},loginWithCode:async e=>{let t,n;function a(e){r.authFlow instanceof la?q(e):r.authFlow instanceof Sa&&H(e)}if(a({status:"submitting-code"}),!w){let e=new Pe;throw a({status:"error",error:e}),e}if(r.authFlow instanceof la)r.authFlow.meta.emailCode=e.trim();else{if(!(r.authFlow instanceof Sa)){let e=new Ae("Must initialize a passwordless code flow first");throw a({status:"error",error:e}),e}r.authFlow.meta.smsCode=e.trim()}let i=await Qa();if("link"===Ue.current)try{({user:t}=await r.link())}catch(e){throw a({status:"error",error:e}),Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:Ee.current}),e}else if("update"===Ue.current)try{({user:t}=await r.link())}catch(e){throw a({status:"error",error:e}),Xn(ve,"update","onError",e.privyErrorCode||ke.FAILED_TO_UPDATE_ACCOUNT,{linkMethod:Ee.current}),e}else try{({user:t,isNewUser:n}=await r.authenticate())}catch(e){throw a({status:"error",error:e}),Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}let s=t||g;f(s||null),T(n||!1),be(!0),a({status:"done"});let o=null;return r.authFlow instanceof la?o=s?.linkedAccounts.find((({type:e})=>"email"===e))||null:r.authFlow instanceof Sa&&(o=s?.linkedAccounts.find((({type:e})=>"phone"===e))||null),{user:s,isNewUser:n||!1,wasAlreadyAuthenticated:!!i,linkedAccount:o}},generateSiweMessage:async({address:e,chainId:t,captchaToken:n})=>{Ue.current=Te?"link":"login",Ee.current="siwe",B({status:"generating-message"});let a=await r.generateSiweNonce({address:e,captchaToken:n});return B({status:"awaiting-signature"}),Ca({address:e,chainId:t.replace("eip155:",""),nonce:a})},generateSiweMessageForSmartWallet:async({address:e,chainId:t})=>{let n=await r.generateSiweNonce({address:e});return Ca({address:e,chainId:t.replace("eip155:",""),nonce:n})},linkSmartWallet:async({message:e,signature:t,smartWalletType:n,smartWalletVersion:a})=>{let i;i=await r.linkSmartWallet({message:e,signature:t,smartWalletType:n,smartWalletVersion:a}),f((i=await lt.refreshSessionAndUser()??i)||g||null)},loginWithSiwe:async({message:e,signature:t,captchaToken:n,disableSignup:a,walletClientType:i,connectorType:s})=>{let o,l=null;try{if(g)throw Error("User already authenticated");let c=new _a(r,void 0,n,a,{message:e,signature:t,walletClientType:i,connectorType:s});r.startAuthFlow(c),Ee.current="siwe",Ue.current="login",B({status:"submitting-signature"});let d=await r.authenticate();if(({user:l,isNewUser:o}=d),!l)throw Error("Authentication failed - no user returned")}catch(e){throw Xn(ve,"login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),B({status:"error",error:e}),e}return f(l),T(o||!1),be(!0),B({status:"done"}),Ue.current=null,Ee.current=null,{user:l,isNewUser:o||!1}},linkWithSiwe:async({message:e,signature:t,chainId:n,walletClientType:a,connectorType:i})=>{let s;Ge("siwe");let o=null;try{B({status:"submitting-signature"}),s=await r.linkWithSiwe({message:e,signature:t,chainId:n,walletClientType:a,connectorType:i}),s=await lt.refreshSessionAndUser()??s,B({status:"done"}),(o=Xe(s)||null)&&Xn(ve,"linkAccount","onSuccess",{user:s,linkMethod:"siwe",linkedAccount:o})}catch(e){throw Xn(ve,"linkAccount","onError",e.privyErrorCode||ke.FAILED_TO_LINK_ACCOUNT,{linkMethod:"siwe"}),Ue.current=null,Ee.current=null,B({status:"error",error:e}),e}let l=s||g;return f(l||null),Ue.current=null,Ee.current=null,{user:l,linkedAccount:o}},refreshSessionAndUser:async()=>{let e=await r.getAuthenticatedUser();return be(!!e),f(e),e},walletProxy:Q,createAnalyticsEvent:({eventName:e,payload:t,timestamp:n})=>r.createAnalyticsEvent({eventName:e,payload:t,timestamp:n}),acceptTerms:async()=>{let e=await r.acceptTerms();return f(e),e},getUsdTokenPrice:e=>r.getUsdTokenPrice(e),getUsdPriceForSol:()=>r.getUsdPriceForSol(),getSplTokenMetadata:e=>r.getSplTokenMetadata(e),recoverEmbeddedWallet:async e=>new Promise((async(t,n)=>{if(!g)return void t(!0);let a=e?.address?O(g,e.address):b(g)||M(g).at(0)||x(g).at(0);if(!a||I(a))return void t(!0);let i=await Qa();if(!i||!Q||!a)return void n(Error("Must have valid access token and Privy wallet to recover wallet"));let{entropyId:s,entropyIdVerifier:o}=lr(g,a);try{await Q.connect({accessToken:i,entropyId:s,entropyIdVerifier:o}),t(!0)}catch(e){if(Ei(e)&&"privy"===a.recoveryMethod){let e;r.createAnalyticsEvent({eventName:"embedded_wallet_pinless_recovery_started",payload:{walletAddress:a.address}});try{e=await Q.recover({entropyId:s,entropyIdVerifier:o,accessToken:i})}catch(e){return void n(e)}e.entropyId||n(Error("Unable to recover wallet")),r.createAnalyticsEvent({eventName:"embedded_wallet_recovery_completed",payload:{walletAddress:a.address}}),t(!0)}else Ei(e)&&"privy"!==a.recoveryMethod&&"privy-v2"!==a.recoveryMethod?(ne({recoverWallet:{entropyId:s,entropyIdVerifier:o,onFailure:n,onSuccess:()=>t(!0)},recoveryOAuthStatus:{provider:a.recoveryMethod,action:"recover",shouldCreateEth:!1,shouldCreateSol:!1}}),Me(ts(a.recoveryMethod))):n(e)}})),setReadyToTrue:e=>{y(!0),re?.(e)},updateWallets:()=>Je(),fundWallet:async(e,t)=>{let n="FundingMethodSelectionScreen";return new Promise(((r,a)=>{ne({funding:{...De({address:e,appConfig:l,fundWalletConfig:t,methodScreen:n,onComplete:r,onError:a})}}),Me(n)}))},openModal:Me,requestFarcasterSignerStatus:async e=>{let t=await Qa(),n=g?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType));if(!t)throw Error("Must have valid access token to connect with Farcaster");if(!Q||!n)throw Error("Must have an embedded wallet to use Farcaster signers");if(!g?.farcaster?.fid)throw Error("Must have Farcaster account to use Farcaster signers");let a=await r.requestFarcasterSignerStatus(e);return"approved"===a.status&&f(await r.getAuthenticatedUser()||g||null),a},connectCoinbaseSmartWallet:async()=>{l.externalWallets.coinbaseWallet.config.preference={...l.externalWallets.coinbaseWallet.config.preference,options:"smartWalletOnly"};let e=r.connectors?.findWalletConnector("coinbase_wallet","coinbase_smart_wallet")||r.connectors?.findWalletConnector("coinbase_wallet","coinbase_wallet");if(e)return e.updateConnectionPreference("smartWalletOnly"),He(e);await ze("coinbase_wallet","coinbase_smart_wallet")},connectBaseAccount:async()=>{let e=r.connectors?.findWalletConnector("base_account","base_account");if(e)return He(e);await ze("base_account","base_account")},initiateAccountTransfer:async({nonce:e,account:t,accountType:n,externalWalletMetadata:a,telegramAuthResult:i,telegramWebAppData:s,farcasterEmbeddedAddress:o,oAuthUserInfo:l})=>{let c=await r.sendAccountTransferRequest({nonce:e,account:t,accountType:n,externalWalletMetadata:a,telegramAuthResult:i,telegramWebAppData:s,farcasterEmbeddedAddress:o,oAuthUserInfo:l});return f(c),c},inProgressAuthFlowRef:Ue,inProgressLoginOrLinkMethodRef:Ee};Os=lt.recoverEmbeddedWallet,lt.recoverEmbeddedWallet;let ht=r.authFlow instanceof $a,{siteKey:pt,enabledProvider:wt}=l.captcha,mt=!l.headless&&wt&&!Te&&(w||ht);/*#__PURE__*/return t(Is.Provider,{value:!0,children:/*#__PURE__*/t(W.Provider,{value:it,children:/*#__PURE__*/t(er.Provider,{value:ve,children:/*#__PURE__*/t(Va,{appId:l.id,captchaSiteKey:pt,enabledCaptchaProvider:wt,children:/*#__PURE__*/e(Ie.Provider,{value:lt,children:[/*#__PURE__*/t(ce,{children:/*#__PURE__*/e(N,{data:ee,setModalData:ne,setInitialScreen:_,initialScreen:C,authenticated:Te,open:d,children:[n.children,/*#__PURE__*/t(ks,{customAuth:l.customAuth}),mt&&/*#__PURE__*/t(ei,{delayedExecution:!1}),/*#__PURE__*/t(Ci,{}),/*#__PURE__*/t(Es,{}),/*#__PURE__*/t(us,{disabled:l.embeddedWallets.disableAutomaticMigration}),/*#__PURE__*/t(ai,{palette:l.appearance.palette||{}}),!l.render.standalone&&/*#__PURE__*/t(fi,{open:d})]})}),/*#__PURE__*/t(zi,{appId:n.appId,appClientId:n.clientId,clientAnalyticsId:r.clientAnalyticsId,origin:r.apiUrl,mfaMethods:g?.mfaMethods,mfaPromise:oe,mfaSubmitPromise:ye,onLoad:Z,onLoadFailed:()=>null}),l.loginConfig.telegramAuthConfiguration&&
|
|
174
|
+
/*#__PURE__*/t(te,{$if:!0,children:/*#__PURE__*/t(Ti,{scriptHost:n.apiUrl||Tt,botUsername:l.loginConfig.telegramAuthConfiguration.botName})})]})})})})})},Ms=(e,t)=>Ps(e,t),xs=(e,t)=>Us(e,t),Fs=(e,t)=>Ws(e,t),Ls=(e,t)=>Ns(e,t),Ds=e=>Os(e),js=({config:e,...n})=>{(()=>{if(a(Is))throw new Ae("Multiple PrivyProvider instances found","Found multiple instances of PrivyProvider, ensure there is only one mounted in your application tree.")})(),function(){if("undefined"==typeof window)return;let e=["localhost","127.0.0.1"].includes(window.location.hostname),t="https:"===window.location.protocol||"chrome-extension:"===window.location.protocol;if(!e&&!t)throw new Ae("Embedded wallet is only available over HTTPS")}(),function(e){if("string"!=typeof e||25!==e.length)throw new Ae("Cannot initialize the Privy provider with an invalid Privy app ID")}(n.appId),function(e){Na||(Na=new Ma({appId:e.appId,appClientId:e.clientId,apiUrl:e.apiUrl}))}(n);let r=l((()=>new p({appId:n.appId,clientId:n.clientId,storage:Re,baseUrl:n.apiUrl,sdkVersion:"react-auth:3.13.1-beta-20260202140759"})),[]),i=Fa(),s=Object.assign({},e);/*#__PURE__*/return t(It,{client:r,legacyClient:i,appClientId:n.clientId,clientConfig:s,children:/*#__PURE__*/t(jn,{configPlugins:e?.plugins,children:/*#__PURE__*/t(Rs,{...n,client:i,privy:r})})})},qs=()=>{let{user:e}=_(),{walletProxy:t}=Ee();return{recover:h((async n=>{if(!t)throw Error("Wallet proxy is not ready");let r=await Qa();if(!e||!r)throw new Ae("User must be logged in before attempting to modify the recovery method.");let{entropyId:a,entropyIdVerifier:i}=lr(e);try{await t.recover({entropyId:a,entropyIdVerifier:i,accessToken:r,...n})}catch{throw new Ae("Unable to recover wallets")}}),[t,e])}};function zs(){let{promptMfa:e,init:t,submit:n,cancel:r,mfaMethods:i}=a(W);return{promptMfa:e,init:t,submit:n,cancel:r,mfaMethods:i}}function Hs(){let{initEnrollmentWithSms:e,initEnrollmentWithTotp:t,initEnrollmentWithPasskey:n,submitEnrollmentWithSms:r,submitEnrollmentWithTotp:i,submitEnrollmentWithPasskey:s,unenroll:o,enrollInMfa:l}=a(W);return{initEnrollmentWithSms:e,initEnrollmentWithTotp:t,initEnrollmentWithPasskey:n,submitEnrollmentWithSms:r,submitEnrollmentWithTotp:i,submitEnrollmentWithPasskey:s,unenrollWithSms:()=>o("sms"),unenrollWithTotp:()=>o("totp"),unenrollWithPasskey:e=>o("passkey",e),showMfaEnrollmentModal:()=>l(!0),closeMfaEnrollmentModal:()=>l(!1)}}function Vs(){let e=Fa();return e?e.getCustomerAccessToken():Promise.resolve(Re.get(ht)||null)}const Bs=()=>{let{client:e,setAuthenticated:t,setUser:n}=Ee();return l((()=>({init:async()=>{if(!e)throw new Ae("Must initialize Privy client first.");let t=new Tr;return e.startAuthFlow(t),await t.init()},login:async({fid:r,message:a,signature:i})=>{if(!e)throw new Ae("Must initialize Privy client first.");if(!(e.authFlow instanceof Tr))throw new Ae("Must initialize Farcaster Mini App flow first.");e.authFlow.setAuthData({message:a,signature:i,fid:r});let{user:s}=await e.authenticate();if(!s)throw new Ae("Failed to login with Farcaster V2");return n(s),t(!0),{user:s}}})),[e,n,t])},Ks=()=>l((()=>({getAccessTokenForProvider:({appId:e})=>{try{let t=Re.get(mt(e));if("string"!=typeof t)return{token:null};{let n=new Mr(t);return n.isExpired()?(Re.del(mt(e)),{token:null}):{token:n.value}}}catch(e){return console.error(e),{token:null}}}})),[]),$s=e=>{Jn("login",e);let t=Ba(),n=Et(),{ready:r,user:a}=_(),{initLoginWithHeadlessOAuth:i,loginWithHeadlessOAuth:s,oAuthState:o,setOAuthState:l,isHeadlessOAuthLoading:d}=Ee(),u=h((async e=>{try{if(t.enabled&&"success"!==t.status)throw new Ha(t.error,null,ke.CAPTCHA_FAILURE);return await i(e.provider,t.token,e.disableSignup)}catch(e){throw l({status:"error",error:e}),e}}),[i,t]),p=h((async()=>{let e=Aa();try{if(!e.inProgress)throw Error("Cannot login with OAuth because no OAuth flow is in progress");let t=e.provider;if(E(t)){if(a&&a.linkedAccounts.some((e=>e.type===t)))return console.warn("User is already logged in with this OAuth provider"),a}else if(a&&t in a&&a[t])return console.warn("User is already logged in with this OAuth provider"),a;if(e.popupFlow)return}catch(e){throw l({status:"error",error:e}),e}try{return await s(e)}catch(e){throw l({status:"error",error:e}),e}finally{ka()}}),[s]);return c((()=>{let e=Aa();r&&n&&e.inProgress&&!e.withPrivyUi&&!e.popupFlow&&p().catch((()=>{}))}),[r,n]),{initOAuth:u,loading:d,state:o}},Gs=e=>{let t=Ba(),{emailOtpState:n,setEmailOtpState:r,initLoginWithEmail:a,loginWithCode:i}=Ee();return{sendCode:h((async({email:n,disableSignup:i})=>{try{if(!n)throw Error("Email required to send OTP code");let e=await Ka(t);return await a({email:n,captchaToken:e,disableSignup:i,withPrivyUi:!1})}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),n}}),[a,t]),loginWithCode:h((async({code:t})=>{try{let{user:n,isNewUser:r,wasAlreadyAuthenticated:a,linkedAccount:s}=await i(t);e?.onComplete?.({user:n,isNewUser:r,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:s})}catch(t){throw r({status:"error",error:t}),e?.onError?.(t.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),t}}),[i]),state:n}},Ys=e=>{let t=Ba(),{initSignupWithPasskey:n,signupWithPasskey:r,passkeyAuthState:a,setPasskeyAuthState:i}=Ee();return{signupWithPasskey:h((async()=>{try{let a=await Ka(t);await n({captchaToken:a,withPrivyUi:!1});let{user:i,isNewUser:s,wasAlreadyAuthenticated:o,loginAccount:l}=await r();e?.onComplete?.({user:i,isNewUser:s,wasAlreadyAuthenticated:o,loginMethod:"passkey",loginAccount:l})}catch(t){throw i({status:"error",error:t}),e?.onError?.(t.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),t}}),[r,t]),state:a}},Js=e=>{let t=Ba(),{initLoginWithPasskey:n,loginWithPasskey:r,passkeyAuthState:a,setPasskeyAuthState:i}=Ee();return{loginWithPasskey:h((async a=>{try{let i=await Ka(t);await n({captchaToken:i,withPrivyUi:!1});let{user:s,isNewUser:o,wasAlreadyAuthenticated:l,loginAccount:c}=await r(a);e?.onComplete?.({user:s,isNewUser:o,wasAlreadyAuthenticated:l,loginMethod:"passkey",loginAccount:c})}catch(a){throw i({status:"error",error:a}),e?.onError?.(a.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),a}}),[r,t]),state:a}},Qs=e=>{let{initLinkWithPasskey:t,linkWithPasskey:n,passkeyAuthState:r,setPasskeyAuthState:a}=Ee();return{linkWithPasskey:h((async()=>{try{await t();let r=await n();if(!r)throw Error("Error, user not found");let a=r.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,t)=>t.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:r,linkMethod:"passkey",linkedAccount:a})}catch(t){throw a({status:"error",error:t}),e?.onError?.(t.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),t}}),[n]),state:r}},Zs=e=>{let t=Ba(),{smsOtpState:n,setSmsOtpState:r,initLoginWithSms:a,loginWithCode:i}=Ee();return{sendCode:h((async({phoneNumber:n,disableSignup:i})=>{try{if(!n)throw Error("SMS required to send OTP code");let e=await Ka(t);return await a({phoneNumber:n,captchaToken:e,disableSignup:i,withPrivyUi:!1})}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),n}}),[a,t]),loginWithCode:h((async({code:t})=>{try{let{user:n,isNewUser:r,wasAlreadyAuthenticated:a,linkedAccount:s}=await i(t);e?.onComplete?.({user:n,isNewUser:r,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:s})}catch(t){throw r({status:"error",error:t}),e?.onError?.(t.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),t}}),[i]),state:n}},Xs=e=>{let{connectOrCreateWallet:t}=_();return Jn("connectOrCreateWallet",e),{connectOrCreateWallet:t}},eo=e=>{let t=Ba(),{siweState:n,setSiweState:r,linkWithSiwe:a,generateSiweMessage:i}=Ee();return{generateSiweMessage:h((async({address:t,chainId:n})=>{try{if(!t||!n)throw Error("wallet address and chainId required to generate nonce");return await i({address:t,chainId:n}).then((e=>e))}catch(t){throw r({status:"error",error:t}),e?.onError?.(t.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),t}}),[i]),linkWithSiwe:h((async({signature:n,message:i,chainId:s,walletClientType:o,connectorType:l})=>{try{if(t.enabled&&"success"!==t.status)throw new Ha(t.error,null,ke.CAPTCHA_FAILURE);let{user:r,linkedAccount:c}=await a({message:i,signature:n,chainId:s,walletClientType:o,connectorType:l});c&&e?.onSuccess?.({user:r,linkMethod:"siwe",linkedAccount:c})}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),n}}),[a,t.status]),state:n}},to=e=>{let t=Ba(),{siweState:n,setSiweState:r,client:a,generateSiweMessage:i,loginWithSiwe:s}=Ee();return{generateSiweNonce:h((async n=>{try{let e=await Ka(t);r({status:"generating-message"});let i=await a.generateSiweNonce({address:n?.address,captchaToken:e});return r({status:"awaiting-signature"}),i}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),n}}),[a,t]),generateSiweMessage:h((async({address:n,chainId:a})=>{try{let e=await Ka(t);return await i({address:n,chainId:a,captchaToken:e})}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),n}}),[i,t]),loginWithSiwe:h((async({message:n,signature:a,disableSignup:i,walletClientType:o,connectorType:l})=>{try{let r=await Ka(t),{user:c,isNewUser:d}=await s({message:n,signature:a,captchaToken:r,disableSignup:i,walletClientType:o,connectorType:l});return e?.onComplete?.({user:c,isNewUser:d,wasAlreadyAuthenticated:!1,loginMethod:"siwe",loginAccount:null}),c}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),n}}),[s,t]),state:n}},no=()=>{let e=Ba(),{client:t,setAuthenticated:n,setUser:r,setIsNewUser:a}=Ee(),{authenticated:i}=nt();return{generateSiwsMessage:h((async({address:n})=>{let r=await Ka(e),a=await t.generateSiwsNonce({address:n,captchaToken:r});return et({address:n,nonce:a})}),[e,t]),loginWithSiws:h((async({message:e,signature:s,disableSignup:o,walletClientType:l,connectorType:c})=>{if(i)throw Error("User already authenticated");let{user:d,isNewUser:u}=await t.authenticateWithSiws({message:e,signature:s,walletClientType:l,connectorType:c,mode:o?"no-signup":"login-or-sign-up",messageType:"plain"});if(!d)throw Error("Authentication failed - no user returned");return r(d),a(u||!1),n(!0),d}),[i,t,n,r,a])}},ro=()=>{let e=Ba(),{client:t,setUser:n,refreshSessionAndUser:r}=Ee(),{authenticated:a}=nt();return{generateSiwsMessage:h((async({address:n})=>{let r=await Ka(e),a=await t.generateSiwsNonce({address:n,captchaToken:r});return et({address:n,nonce:a})}),[e,t]),linkWithSiws:h((async({signature:i,message:s,walletClientType:o,connectorType:l})=>{if(!a)throw Error("User must be authenticated before linking");await Ka(e);let c=await t.linkWithSiws({message:s,signature:i,walletClientType:o,connectorType:l,messageType:"plain"}),d=(e=>{if(!e)return;let t=e.linkedAccounts;return t&&0!==t.length?t[t.length-1]:void 0})(c=await r()??c)||null;return n(c||null),{user:c,linkedAccount:d}}),[a,e,t,r,n])}};function ao(){let{signTransaction:e}=a(W);return{signTransaction:e}}function io(e){let{linkEmail:t,linkPhone:n,linkWallet:r,linkGoogle:i,linkApple:s,linkTwitter:o,linkTwitch:l,linkDiscord:c,linkGithub:d,linkLinkedIn:u,linkTiktok:h,linkLine:p,linkSpotify:w,linkInstagram:m,linkTelegram:y,linkFarcaster:g,linkPasskey:f}=a(W);return Jn("linkAccount",e),{linkEmail:t,linkPhone:n,linkWallet:r,linkGoogle:i,linkApple:s,linkTwitter:o,linkTwitch:l,linkDiscord:c,linkGithub:d,linkLinkedIn:u,linkTiktok:h,linkLine:p,linkSpotify:w,linkInstagram:m,linkFarcaster:g,linkTelegram:y,linkPasskey:f}}function so(e){let{updateEmail:t,updatePhone:n}=a(W);return Jn("update",e),{updateEmail:t,updatePhone:n}}const oo=e=>{let{user:t}=_(),{loginWithCode:n,emailOtpState:r,setEmailOtpState:a,client:i,inProgressAuthFlowRef:s,inProgressLoginOrLinkMethodRef:o}=Ee();return{state:r,sendCode:h((async({newEmailAddress:n})=>{try{if(!t?.email)throw Error("User is required to have an email address to update it.");let e=new ca(t.email.address,n);i.startAuthFlow(e),await e.sendCodeEmail({withPrivyUi:!1})}catch(n){a({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"email"})}}),[t?.email]),verifyCode:h((async({code:r})=>{try{if(!t?.email)throw Error("User is required to have an email address to update it.");s.current="update",o.current="email";let{user:a,linkedAccount:i}=await n(r);return e?.onSuccess?.({user:a,updateMethod:"email",updatedAccount:i}),{user:a}}catch(r){a({status:"error",error:r}),e?.onError?.(r.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"email"})}}),[t?.email])}},lo=()=>{let{connectCoinbaseSmartWallet:e}=Ee();return{connectCoinbaseSmartWallet:e}},co=()=>{let{connectBaseAccount:e}=Ee();return{connectBaseAccount:e}},uo=()=>{let{baseAccountSdk:e}=Ee();return{baseAccountSdk:e}},ho=()=>{let{setModalData:e}=S(),{openModal:t,privy:n,closePrivyModal:r}=Ee(),{user:a}=_();return l((()=>({verify:async({standalone:i=!0}={standalone:!0})=>new Promise(((s,o)=>a?0===a.mfaMethods.length?s():(e((e=>({...e,mfaVerify:{onSuccess:async()=>{i?await r({shouldCallAuthOnSuccess:!1,isSuccess:!0}):ri.setState({inProgressMfaFlow:void 0}),s()},onFailure:async e=>{i?await r({shouldCallAuthOnSuccess:!1,isSuccess:!1}):ri.setState({inProgressMfaFlow:void 0}),o(e)},sendSmsCode:async()=>{throw Error("Not enabled")},verifySmsCode:async()=>{throw Error("Not enabled")},verifyTotpCode:async e=>{await n.fetchPrivyRoute(Sr,{body:{code:e}})},generateOptions:async()=>ia((await n.fetchPrivyRoute(_r,{body:{}})).options),verifyPasskey:async e=>{let t=await import("@simplewebauthn/browser"),r=await t.startAuthentication({optionsJSON:e});await n.fetchPrivyRoute(Cr,{body:{authenticator_response:hs(r)}})}}}))),void(i?t("MfaAuthVerifyFlowScreen"):ri.setState({inProgressMfaFlow:"auth"}))):o(Error("Must be logged in to verify MFA"))))})),[n,e,t,r])},po=()=>{let e=St(),{setModalData:t}=S(),{verify:n}=ho(),{openModal:r,privy:a,closePrivyModal:i,refreshSessionAndUser:s,setUser:o}=Ee();return l((()=>({enroll:async l=>new Promise(((c,d)=>{t({mfaEnroll:{onSuccess:async e=>{await i({shouldCallAuthOnSuccess:!1,isSuccess:!0}),c(e)},onFailure:async e=>{await i({shouldCallAuthOnSuccess:!1,isSuccess:!1}),d(e)},onBack:l?.onBack?async()=>{await i({shouldCallAuthOnSuccess:!1,isSuccess:!1}),d(Error("User canceled MFA enrollment flow.")),l.onBack?.()}:void 0,verify:()=>n({standalone:!1}),shouldUnlinkOnUnenrollMfa:!0,mfaMethods:e.mfa.methods,sendSmsCode:async()=>{throw Error("Not enabled")},enrollSms:async()=>{throw Error("Not enabled")},unenrollSms:async()=>{throw Error("Not enabled")},generateTotpSecret:async()=>await a.fetchPrivyRoute(Pr,{body:{}}),enrollTotp:async e=>{await a.fetchPrivyRoute(Ir,{body:{code:e}});let t=await s();return o(t),t},unenrollTotp:async()=>{await a.fetchPrivyRoute(Er,{body:{}});let e=await s();return o(e),e},enrollPasskey:async e=>{await a.fetchPrivyRoute(br,{body:{credential_ids:e,remove_for_login:!0}});let t=await s();return o(t),t}}}),r("MfaAuthEnrollmentFlowScreen")}))})),[a,t,r,i])},wo=()=>{let{startCrossAppAuthFlow:e,unlinkCrossAppAccount:t,signMessageWithCrossAppWallet:n,signTypedDataWithCrossAppWallet:r,sendTransactionWithCrossAppWallet:a,signTransactionWithCrossAppWallet:i}=_();return{loginWithCrossAppAccount:({appId:t})=>e({appId:t,action:"login"}),linkCrossAppAccount:({appId:t})=>e({appId:t,action:"link"}),unlinkCrossAppAccount:t,signMessage:n,signTypedData:r,sendTransaction:a,signTransaction:i}};function mo(e){let{sendTransaction:t}=a(W);return Jn("sendTransaction",e),{sendTransaction:t}}function yo(){let e=St(),t=Qn(),{client:n,setUser:r,setAuthenticated:a,setIsNewUser:i,initializeWalletProxy:s}=Ee(),{create:o}=it();return{createGuestAccount:async()=>{if(!e.id||!n)throw Error("SDK not yet ready");n.startAuthFlow(new ua(e.id));try{let l=await n.authenticate(),c=l.user,d=l.isNewUser??!1;if(!c)throw new Ae("Unable to authenticate guest account");let u=await n.getAccessToken(),h=await s(Pt);if(u&&h)try{let t=ws(c,e.embeddedWallets.ethereum.createOnLogin),n=ys(c,e.embeddedWallets.solana.createOnLogin);t&&n?(c=(await o({chainType:"ethereum",latestUser:c})).user,c=(await o({chainType:"solana",latestUser:c})).user):n?c=(await o({chainType:"solana",latestUser:c})).user:t?c=(await o({chainType:"ethereum",latestUser:c})).user:r(c)}catch(e){r(c),console.warn("Unable to create embedded wallet for guest account")}return i(d),a(!0),t("login","onComplete",{user:c,isNewUser:d,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),c}catch(e){throw t("login","onError",e.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),e}}}}function go(e){let{setWalletRecovery:t}=a(W);return Jn("setWalletRecovery",e),{setWalletRecovery:t}}function fo(e){let{signMessage:t}=a(W);return Jn("signMessage",e),{signMessage:t}}const vo=()=>{let{ready:e,wallets:t}=ir(),{user:n}=_(),{rpcConfig:r,chains:a,appId:i}=Ee();return{signAuthorization:h((async(s,o)=>{let l;if(!n)throw Error("User must be authenticated before signing with a Privy wallet");if(!e)throw Error("Wallets are not ready");let c=o?.address??P(n)?.address??hr,d=t.find((e=>pr(e.address)===pr(c)));if(!d)throw Error("Signing wallet not found.");let u=s.chainId??Number(d.chainId.split(":")[1]);if(0===u)l={chainId:0,address:s.contractAddress,nonce:s.nonce??0};else{let e=a.find((e=>e.id===u));if(!e)throw Error("Error, chain not configured in PrivyProvider config");let t=wr({account:c,chain:e,transport:mr(kr(e,r,i))});l=await t.prepareAuthorization({...s})}let h=await d.getEthereumProvider(),p=await h.request({method:"secp256k1_sign",params:[Vn(l)]});return{...l,...yr(p)}}),[e,t,n,a])}};function Ao(e){let{signTypedData:t}=a(W);return Jn("signTypedData",e),{signTypedData:t}}const ko=async({wallet:e})=>{let t=await e.getEthereumProvider();return Or({address:e.address,sign:async({hash:n})=>{if("privy"!==e.walletClientType)throw new y({error:"Unprefixed signing is not supported by external wallets.",code:"unsupported_wallet_type"});return await t.request({method:"secp256k1_sign",params:[n]})},signMessage:async({message:n})=>await t.request({method:"personal_sign",params:[n,e.address]}),signTypedData:async n=>await t.request({method:"eth_signTypedData_v4",params:[e.address,n]}),signTransaction:async e=>await t.request({method:"eth_signTransaction",params:[e]})})},To=()=>{let{wallets:e}=ir();return l((()=>({wrapFetchWithPayment:({walletAddress:t,fetch:n,maxValue:r=BigInt(1e5),paymentRequirementsSelector:a=Ur,config:i})=>{let s=t||e[0]?.address;if(!s)throw new Nr("No wallet available for payment");let o=e.find((e=>F(e.address,s)));if(!o)throw new Nr(`Wallet ${s} not found in connected wallets`);return async(e,t)=>{let s=await n(e,t);if(402!==s.status)return s;if(t?.__is402Retry)throw Error("Payment already attempted for this request");let{x402Version:l,accepts:c}=await s.json(),d=a(c,void 0,"exact");if(BigInt(d.maxAmountRequired)>r)throw new Nr("Payment amount exceeds maximum allowed");let u=await ko({wallet:o}),h=await Wr(u,l,d,i),p={...t,headers:{...t?.headers||{},"X-PAYMENT":h,"Access-Control-Expose-Headers":"X-PAYMENT-RESPONSE"},__is402Retry:!0};return await n(e,p)}}})),[e])},Co=()=>{let{isModalOpen:e}=a(W);return{isOpen:e}};function _o(e){let{getAccessToken:t}=a(W);return Jn("accessToken",e),{getAccessToken:t}}function So(e){let{authenticated:t,user:n}=_(),{initLoginWithOAuth:r}=Ee(),a=Qn();return Jn("oAuthAuthorization",e),{reauthorize:e=>bo(t,n,r,a,e.provider)}}let bo=async(e,t,n,r,a)=>{if(!e)throw r("linkAccount","onError",ke.MUST_BE_AUTHENTICATED,{linkMethod:a}),new Ae("User must be authenticated before linking an account.");if(!t?.linkedAccounts.some((e=>e.type.includes(a))))throw new Ae(`OAuth account of type ${a} not linked to the account.`);await n(a)};function Eo(e){let{client:t}=Ee(),[n,r]=o({status:"initial"});return{linkWithCustomJwt:h((async n=>{try{r({status:"initial"}),t.startAuthFlow(new sa(n)),r({status:"loading"});let{user:a}=await t.link();if(!a)throw Error("Error, user not found");let i=a.linkedAccounts.filter((e=>"custom_auth"===e.type)).sort(((e,t)=>t.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime())).at(0);return r({status:"done"}),e?.onSuccess?.({user:a,linkMethod:"custom",linkedAccount:i}),{user:a}}catch(n){throw r({status:"error",error:n}),e?.onError?.(n.privyErrorCode||ke.UNKNOWN_AUTH_ERROR,{linkMethod:"custom"}),n}}),[t.startAuthFlow,t.link]),state:n}}const Io=e=>{let t=As((e=>e.jwtAuthFlowState));return Jn("customAuth",e),{status:t}};function Po({isAuthenticated:e,isLoading:t,...n}){let r=s();c((()=>{t||r.current?.()}),[e,t]);let a=h((e=>(r.current=e,()=>{r.current=void 0})),[]);return vs({...n,subscribe:a})}function Uo(){let{getFarcasterSignerPublicKey:e,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:n}=_();return{getFarcasterSignerPublicKey:e,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:n}}const Wo=()=>{let{revokeDelegatedWallets:e,delegateWallet:t}=Ee();return{delegateWallet:async({address:e,chainType:n})=>await t({address:e,chainType:n,showDelegationUIs:!0}),revokeWallets:async()=>await e({showDelegationUIs:!0})}},No=()=>{let{user:e}=_(),t=Ee(),{signWithUserSigner:n}=Rr(),r=async({wallet:r,additional_signers:a})=>{let i=await t.client.getAccessToken();if(!e||!i)throw new Ae("User must be authenticated and have an embedded wallet to delegate actions.");if(!r.id)throw new Ae("Wallet to add signers to must have ID on server");if(!t.walletProxy)throw new Ae("Wallet proxy not initialized.");await f(t.privy,{wallet_id:r.id},n,{additional_signers:a})};return{addSessionSignersInternal:async({address:n,signers:a})=>{let i=await t.client.getAccessToken();if(!e||!i)throw new Ae("User must be authenticated and have an embedded wallet to add a session signer.");let s=t.walletProxy??await t.initializeWalletProxy(15e3);if(!s)throw new Ae("Wallet proxy not initialized.");let o=O(e,n);if(!o)throw new Ae("Address to add signers too is not associated with current user.");if(I(o)){if(0===a.length)throw new Ae("Must specify at least one signer to add.");let e=[...(await g(t.privy,{wallet_id:o.id})).additional_signers,...ye(a)];await r({wallet:o,additional_signers:e})}else{if(o.delegated)return{user:e};if(a.length>0)throw new Ae("Specifying signers in addSessionSigners is only supported for TEE execution and this app uses On-device execution. Pass an empty array for signers instead. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let r=Hi({address:n,user:e}),l=Vi({address:n,user:e});await t.recoverEmbeddedWallet({address:n}),await s.createDelegatedAction({accessToken:i,rootWallet:l,delegatedWallets:[r]})}let l=await t.refreshSessionAndUser();if(!l)throw Error("Could not refresh user");return{user:l}},removeSessionSignersInternal:async({address:n})=>{let a=await t.client.getAccessToken();if(!e||!a)throw new Ae("User must be authenticated and have an embedded wallet to delegate actions.");if(!(t.walletProxy??await t.initializeWalletProxy(15e3)))throw new Ae("Wallet proxy not initialized.");let i=O(e,n);if(!i)throw new Ae("Address to remove signers from is not associated with current user.");I(i)?await r({wallet:i,additional_signers:[]}):await t.client.revokeDelegatedWallet();let s=await t.refreshSessionAndUser();if(!s)throw Error("Could not refresh user");return{user:s}}}},Oo=()=>{let{addSessionSignersInternal:e,removeSessionSignersInternal:t}=No();return{addSessionSigners:async({address:t,signers:n})=>e({address:t,signers:n}),removeSessionSigners:async({address:e})=>t({address:e})}},Ro=()=>{let{addSessionSignersInternal:e,removeSessionSignersInternal:t}=No();return{addSigners:async({address:t,signers:n})=>e({address:t,signers:n}),removeSigners:async({address:e})=>t({address:e})}},Mo=()=>{let{signWithUserSigner:e}=Rr();return l((()=>({async generateAuthorizationSignature(t){let{targetAppId:n,...r}=t,{signature:a}=await v((async({message:t})=>e({message:t,targetAppId:n})),r);return{signature:a}}})),[e])},xo=()=>{let{setUser:e,client:t}=a(Ie),{user:n}=a(W);return{user:n,refreshUser:h((async()=>{let n=await(t?.updateUserAndIdToken());return e(n??null),n}),[t,e])}};function Fo(){let{user:e}=_(),{client:t}=Ee(),n=St(),r=h((async({address:r,recipientPublicKey:a})=>{if(!e)throw new Ae("User must be authenticated before exporting their wallet");let i=await t.getAccessToken();if(!i)throw new Ae("Must have valid access token");let s=O(e,r);if(!s)throw new Ae("User does not have a wallet with this address");if(!I(s))throw new Ae("Client export is only supported for unified stack wallets. On-device wallets are not supported.");return function(e,t,n){let r=document.createElement("iframe");return r.style.display="none",r.src=e,document.body.appendChild(r),new Promise(((e,a)=>{let i=null,s=()=>{null!==i&&(clearTimeout(i),i=null),window.removeEventListener("message",o),r.parentNode&&r.parentNode.removeChild(r)},o=t=>{var r;t.origin===n&&"object"==typeof(r=t.data)&&null!==r&&"type"in r&&("CLIENT_EXPORT_RESPONSE"===r.type||"CLIENT_EXPORT_ERROR"===r.type)&&(s(),"CLIENT_EXPORT_ERROR"===t.data.type?a(new Ae(t.data.error)):e({ciphertext:t.data.ciphertext,encapsulatedKey:t.data.encapsulatedKey,chainType:t.data.chainType}))};window.addEventListener("message",o),r.onload=()=>{r.contentWindow?.postMessage({type:"CLIENT_EXPORT_REQUEST",recipientPublicKey:t},n)},i=setTimeout((()=>{s(),a(new Ae("Wallet export timed out"))}),3e4)}))}(dr({origin:t.apiUrl,path:`/apps/${n.id}/embedded-wallets/export`,query:{v:"1-unified",wallet_id:s.id,client_id:n.appClientId,mode:"client-export"},hash:{token:i}}),a,t.apiUrl)}),[e,t,n.id,n.appClientId]);return l((()=>({getWalletPrivateKey:r})),[r])}const Lo=e=>{let t=Ba(),{initLoginWithTelegram:n,loginWithTelegram:r,telegramAuthState:a,setTelegramAuthState:i}=Ee();return{login:h((async a=>{try{if(t.enabled&&"success"!==t.status)throw new Ha(t.error,null,ke.CAPTCHA_FAILURE);await n(t.token,a?.disableSignup);let{user:i,isNewUser:s,loginAccount:o,wasAlreadyAuthenticated:l}=await r({intent:"login"});e?.onComplete?.({user:i,isNewUser:s,wasAlreadyAuthenticated:l,loginMethod:"telegram",loginAccount:o})}catch(a){throw i({status:"error",error:a}),e?.onError?.(a.privyErrorCode||ke.UNKNOWN_AUTH_ERROR),a}}),[n,r,t]),state:a}},Do=()=>{let{revokeDelegatedWallets:e,delegateWallet:t}=Ee();return{delegateWallet:async({address:e,chainType:n})=>await t({address:e,chainType:n,showDelegationUIs:!1}),revokeWallets:async()=>await e({showDelegationUIs:!1})}},jo=fi;export{Zs as $,is as A,Br as B,Ha as C,Lr as D,Dr as E,es as F,Kr as G,Fr as H,js as I,ei as J,ea as K,qs as L,Ma as M,La as N,Vs as O,Si as P,Bs as Q,Ta as R,qa as S,na as T,Ks as U,$s as V,Xr as W,Gs as X,Ys as Y,Js as Z,Qs as _,Ba as a,Xs as a0,eo as a1,to as a2,no as a3,ro as a4,ao as a5,ni as a6,io as a7,so as a8,oo as a9,Fo as aA,Lo as aB,Do as aC,jo as aD,fi as aE,ko as aF,ds as aG,lo as aa,co as ab,uo as ac,ho as ad,po as ae,wo as af,mo as ag,yo as ah,go as ai,fo as aj,vo as ak,Ao as al,To as am,Co as an,_o as ao,So as ap,Eo as aq,Io as ar,vs as as,Po as at,Uo as au,Wo as av,Oo as aw,Ro as ax,Mo as ay,xo as az,_a as b,ts as c,Hs as d,Ei as e,Ni as f,Ui as g,Pi as h,Oi as i,Wi as j,ys as k,ka as l,Ga as m,Ii as n,ya as o,cs as p,ga as q,fa as r,ws as s,ls as t,zs as u,fs as v,Xi as w,ss as x,rs as y,Ss as z};
|