@privy-io/react-auth 3.16.0 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AccountNotFoundScreen-B_Ii7HuZ.js +1 -0
- package/dist/cjs/{Address-DTfphH3Q.js → Address-DVa7_frc.js} +1 -1
- package/dist/cjs/AffirmativeConsentScreen-B7KmE68B.js +6 -0
- package/dist/cjs/AllowlistRejectionScreen-O8KznddG.js +1 -0
- package/dist/cjs/AuthenticateWithWalletScreen-C8K-iZIK.js +1 -0
- package/dist/cjs/AwaitingEvmToSolBridgingScreen-cOTXpUAv.js +2 -0
- package/dist/cjs/AwaitingExternalEthereumTransferScreen-yMOq8AmY.js +2 -0
- package/dist/cjs/AwaitingPasswordlessCodeScreen-lFFqycAd.js +103 -0
- package/dist/cjs/AwaitingSolToEvmBridgingScreen-DmvP14kc.js +2 -0
- package/dist/cjs/{BridgeNetworkSelectionView-xdYr4mxx.js → BridgeNetworkSelectionView-pkX-b3EU.js} +3 -3
- package/dist/cjs/CaptchaScreen-C0GEjNbh.js +1 -0
- package/dist/cjs/CoinbaseOnrampStatusScreen-yT0aNgm6.js +16 -0
- package/dist/cjs/ConnectEmailForm-BBb0J8Qw.js +3 -0
- package/dist/cjs/ConnectLedgerScreen-DUt1xIAQ.js +9 -0
- package/dist/cjs/ConnectOnlyLandingScreen-DsDH4IPK.js +1 -0
- package/dist/cjs/ConnectOnlyStatusScreen-DHifzxdh.js +1 -0
- package/dist/cjs/ConnectOrCreateScreen-BUgdLxoo.js +1 -0
- package/dist/cjs/{ConnectPhoneForm-BYX8kgCj.js → ConnectPhoneForm-Cz02aWfj.js} +1 -1
- package/dist/cjs/{ConnectWalletView-QyJORAZG.js → ConnectWalletView-CWInrfMx.js} +1 -1
- package/dist/cjs/ConnectionStatusScreen-BVrAip_u.js +7 -0
- package/dist/cjs/CrossAppAuthScreen-BlSprwdt.js +1 -0
- package/dist/cjs/{CustomLandingScreenView-Cx9QR2CX.js → CustomLandingScreenView-FFU4u8kB.js} +6 -6
- package/dist/cjs/DelegatedActionsConsentScreen-2K48Ywrm.js +1 -0
- package/dist/cjs/DelegatedActionsRevokeScreen-AuQpKTzg.js +1 -0
- package/dist/cjs/EmbeddedWalletConnectingScreen-C4LTqs6h.js +1 -0
- package/dist/cjs/EmbeddedWalletCreatedScreen-C32Uofc9.js +1 -0
- package/dist/cjs/{EmbeddedWalletKeyExportScreen-wfa1ho1-.js → EmbeddedWalletKeyExportScreen-SnvHNrgu.js} +4 -4
- package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-osK2tW68.js +1 -0
- package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-DKWmdrJ6.js +1 -0
- package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-DqSEVO7w.js +1 -0
- package/dist/cjs/{EnrollTotp-BzmjXzYC.js → EnrollTotp-CXMhvYqd.js} +8 -8
- package/dist/cjs/ErrorScreen-CPJ98NuU.js +4 -0
- package/dist/cjs/{FarcasterConnectStatusScreen-s3pS-ZH-.js → FarcasterConnectStatusScreen-D13iXt7h.js} +5 -5
- package/dist/cjs/FarcasterSignerStatusScreen-Bf_kP9J_.js +29 -0
- package/dist/cjs/FiatOnrampScreen-BV4GPQv0.js +97 -0
- package/dist/cjs/FundSolWalletWithExternalSolanaWallet-85QbPj5Z.js +2 -0
- package/dist/cjs/FundWalletMethodHeader-CcRikV5C.js +1 -0
- package/dist/cjs/FundWithBankDepositScreen-CETUOydb.js +58 -0
- package/dist/cjs/FundingEditAmountScreen-ro3pfZTg.js +1 -0
- package/dist/cjs/FundingMethodSelectionScreen-ecxVf53z.js +1 -0
- package/dist/cjs/InAppBrowserLoginNotPossible-BaL0j2oh.js +1 -0
- package/dist/cjs/InstallWalletScreen-D8WdMq8Y.js +1 -0
- package/dist/cjs/LandingScreen-D3EKQEkC.js +1 -0
- package/dist/cjs/{LinkConflictScreen-DnHf7IMX.js → LinkConflictScreen-Ch0YDBOh.js} +3 -3
- package/dist/cjs/LinkEmailScreen-BiHRv43F.js +1 -0
- package/dist/cjs/{LinkPasskeyScreen-CTN6f7yX.js → LinkPasskeyScreen-BkAhVm_K.js} +12 -12
- package/dist/cjs/LinkPhoneScreen-SMbGlFFp.js +1 -0
- package/dist/cjs/LoginFailedScreen-gThOR4ql.js +1 -0
- package/dist/cjs/ManualTransferScreen-C6_MKYQa.js +1 -0
- package/dist/cjs/MfaAuthEnrollmentFlowScreen-BGwEDhYM.js +1 -0
- package/dist/cjs/MfaAuthVerifyFlowScreen-FkpTmQLM.js +1 -0
- package/dist/cjs/MfaEnrollmentFlowScreen-D68k3d6k.js +1 -0
- package/dist/cjs/MfaVerifyFlowScreen-DPiE_Oju.js +1 -0
- package/dist/cjs/{ModalHeader-CakS8Dcu.js → ModalHeader-DGIBNq1A.js} +1 -1
- package/dist/cjs/MoonpayStatusScreen-Bwey-ZFS.js +16 -0
- package/dist/cjs/OAuthStatusScreen-DCIvmlua.js +1 -0
- package/dist/cjs/PasskeySelectSignupOrLogin-BrsgZDWY.js +1 -0
- package/dist/cjs/PasskeyStatusScreen-CRdrwEDq.js +3 -0
- package/dist/cjs/PasswordRecoveryScreen-nT66Ca8q.js +20 -0
- package/dist/cjs/{QrCode-C-Mk5-26.js → QrCode-Di8xGbem.js} +1 -1
- package/dist/cjs/RecoveryOAuthStatusScreen-BC6heUn-.js +1 -0
- package/dist/cjs/RecoveryPasswordCreateScreen-D6M_6kN8.js +1 -0
- package/dist/cjs/{RecoverySelectionScreen-BAJ1nLeO.js → RecoverySelectionScreen-BDCnVnE6.js} +2 -2
- package/dist/cjs/{Screen-Dp9-H_S8.js → Screen-B1vrS1Ly.js} +1 -1
- package/dist/cjs/{ScreenLayout-DANQ0V5E.js → ScreenLayout-yf03MRVf.js} +1 -1
- package/dist/cjs/SelectSourceAsset-BzCWfa5L.js +112 -0
- package/dist/cjs/SetAutomaticRecoveryScreen-CVn23TKd.js +14 -0
- package/dist/cjs/{SetWalletPasswordForm-B7bBDQ8N.js → SetWalletPasswordForm-0S2ymSzL.js} +4 -4
- package/dist/cjs/{SignRequestScreen-BUvgSx9X.js → SignRequestScreen-CPgU7Wo3.js} +4 -4
- package/dist/cjs/{StandardSignAndSendTransactionScreen-CzfhyIDP.js → StandardSignAndSendTransactionScreen-C-E3j4dP.js} +2 -2
- package/dist/cjs/TelegramAuthScreen-DiYpzHoT.js +1 -0
- package/dist/cjs/{TransactionDetails-BlPOqfEn.js → TransactionDetails-CHdkf5Rb.js} +1 -1
- package/dist/cjs/{TransactionErrorView-BpXI1X_G.js → TransactionErrorView-D1Nh7N_d.js} +4 -4
- package/dist/cjs/{TransferFromWalletScreen-Ds1sknGn.js → TransferFromWalletScreen-h9tRPXBH.js} +2 -2
- package/dist/cjs/{TransferOrBridgeLoadingScreen-CAYUlR4u.js → TransferOrBridgeLoadingScreen-DQZIn6hw.js} +2 -2
- package/dist/cjs/UpdateEmailScreen-BY3xMHK8.js +1 -0
- package/dist/cjs/UpdatePhoneScreen-ChbBiqBC.js +1 -0
- package/dist/cjs/UserLimitReachedScreen-AJZpREqN.js +1 -0
- package/dist/cjs/{WalletInfoCard-CRZt0t3t.js → WalletInfoCard-BfZ3_ji-.js} +6 -6
- package/dist/cjs/WalletInterstitialScreen-DRz63LSO.js +1 -0
- package/dist/cjs/{WalletLink-Cx_Zda0m.js → WalletLink--xpsJ0_X.js} +5 -5
- package/dist/cjs/{WalletOverflowButton-cnlzyqcK.js → WalletOverflowButton-B81EzN7L.js} +1 -1
- package/dist/cjs/{WarningBanner-COl_Q0K3.js → WarningBanner-DUcGaIpZ.js} +1 -1
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/{context-BAmjgwZ7.js → context-DTLyrNSs.js} +1 -1
- package/dist/cjs/{ethers-D8g2mvSK.js → ethers-DkYZ2n_L.js} +1 -1
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/{getErc20Balance-C6ZUC_1B.js → getErc20Balance-CZkdpSqJ.js} +1 -1
- package/dist/cjs/{getErc20TokenInfo-DprFN1Dj.js → getErc20TokenInfo-B7OUw6ca.js} +1 -1
- package/dist/cjs/{index-BohqOluI.js → index-BbTBzvbB.js} +5 -5
- package/dist/cjs/{index-DIKBRogK.js → index-DLnQPdlD.js} +2 -2
- package/dist/cjs/index-DVVwP01f.js +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internal.js +1 -1
- package/dist/cjs/privy-context-CqCBaHHR.js +1 -0
- package/dist/cjs/{shared-C-w7sNT2.js → shared-BrHBD7Qj.js} +1 -1
- package/dist/cjs/{shouldProceedtoEmbeddedWalletCreationFlow-DAiUXgPZ.js → shouldProceedtoEmbeddedWalletCreationFlow-By7HZi5X.js} +1 -1
- package/dist/cjs/smart-wallets-CXiwZqOu.js +1 -0
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/{styles-s2f3dL_6.js → styles-BU6XkGeI.js} +4 -4
- package/dist/cjs/{to-ui-error-CqnwRcKJ.js → to-ui-error-Bxoctv93.js} +1 -1
- package/dist/cjs/ui.js +1 -1
- package/dist/cjs/use-export-wallet-B4aMG55I.js +1 -0
- package/dist/cjs/use-export-wallet-CJFX3PX0.js +1 -0
- package/dist/cjs/{useActiveWallet-CYUR_x0A.js → useActiveWallet-DEJxYDtx.js} +1 -1
- package/dist/cjs/{useGetTokenPrice-X3dW0I3y.js → useGetTokenPrice-zMimik1y.js} +1 -1
- package/dist/cjs/{useI18n-BsableMs.js → useI18n-CttJorXw.js} +1 -1
- package/dist/cjs/usePrivy-B61TDDeF.js +1 -0
- package/dist/cjs/{useSolanaRpcClient-BhX1Bzre.js → useSolanaRpcClient-B5g3sWrW.js} +1 -1
- package/dist/cjs/{useWalletBalance-CcicA-jd.js → useWalletBalance-BD5uRFtG.js} +1 -1
- package/dist/cjs/useWallets-BsO73htS.js +1 -0
- package/dist/cjs/useWallets-CAFhVWLf.js +1 -0
- package/dist/dts/{events-context-DJ7XN_9I.d.mts → events-context-BXis4NRh.d.mts} +1 -1
- package/dist/dts/{events-context-DJ7XN_9I.d.ts → events-context-BXis4NRh.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 +41 -8
- package/dist/dts/index.d.ts +41 -8
- 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-CrwMc83t.d.mts → types-Bc9w_mgT.d.mts} +3 -2
- package/dist/dts/{types-CrwMc83t.d.ts → types-Bc9w_mgT.d.ts} +3 -2
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/esm/AccountNotFoundScreen-qafr9ivT.mjs +1 -0
- package/dist/esm/{Address-Cbulz6Wu.mjs → Address-B99EaiMb.mjs} +1 -1
- package/dist/esm/AffirmativeConsentScreen-CIqvK8m6.mjs +6 -0
- package/dist/esm/AllowlistRejectionScreen-DU4DWBPE.mjs +1 -0
- package/dist/esm/AuthenticateWithWalletScreen-XPD7DrVO.mjs +1 -0
- package/dist/esm/AwaitingEvmToSolBridgingScreen-DD0jtqOa.mjs +2 -0
- package/dist/esm/AwaitingExternalEthereumTransferScreen-DzTmic9m.mjs +2 -0
- package/dist/esm/AwaitingPasswordlessCodeScreen-7QOTS6b-.mjs +103 -0
- package/dist/esm/AwaitingSolToEvmBridgingScreen-DYZZooDp.mjs +2 -0
- package/dist/esm/{BridgeNetworkSelectionView-nrYQOGZA.mjs → BridgeNetworkSelectionView-CmMVzAX5.mjs} +5 -5
- package/dist/esm/CaptchaScreen-DhwS3FJh.mjs +1 -0
- package/dist/esm/CoinbaseOnrampStatusScreen-CTrA4xKy.mjs +16 -0
- package/dist/esm/ConnectEmailForm-yaDsKJmn.mjs +3 -0
- package/dist/esm/ConnectLedgerScreen-O8ZnkCDn.mjs +9 -0
- package/dist/esm/ConnectOnlyLandingScreen-BUO28erJ.mjs +1 -0
- package/dist/esm/ConnectOnlyStatusScreen-Dy6oAk17.mjs +1 -0
- package/dist/esm/ConnectOrCreateScreen-H52RmK3k.mjs +1 -0
- package/dist/esm/{ConnectPhoneForm-D8SHd_ge.mjs → ConnectPhoneForm-SXho-ZCl.mjs} +1 -1
- package/dist/esm/{ConnectWalletView-By6eXfKl.mjs → ConnectWalletView-mm5nV3qj.mjs} +1 -1
- package/dist/esm/ConnectionStatusScreen-XXeNlflJ.mjs +7 -0
- package/dist/esm/CrossAppAuthScreen-bAev2vFm.mjs +1 -0
- package/dist/esm/{CustomLandingScreenView-Co0nHKPw.mjs → CustomLandingScreenView-e-NPZniC.mjs} +4 -4
- package/dist/esm/DelegatedActionsConsentScreen-C2uGvUf3.mjs +1 -0
- package/dist/esm/DelegatedActionsRevokeScreen-DIURa5L6.mjs +1 -0
- package/dist/esm/EmbeddedWalletConnectingScreen-CznyXfNg.mjs +1 -0
- package/dist/esm/EmbeddedWalletCreatedScreen-Vch95Jje.mjs +1 -0
- package/dist/esm/EmbeddedWalletKeyExportScreen-kW2-IWjW.mjs +40 -0
- package/dist/esm/EmbeddedWalletOnAccountCreateScreen-DtrWxrnI.mjs +1 -0
- package/dist/esm/EmbeddedWalletPasswordUpdateScreen-QLodnJ1t.mjs +1 -0
- package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-B0gtNXG6.mjs +1 -0
- package/dist/esm/{EnrollTotp-nZPSS3Ux.mjs → EnrollTotp-Du2Tjgrx.mjs} +5 -5
- package/dist/esm/ErrorScreen-P5oZf9cz.mjs +4 -0
- package/dist/esm/{FarcasterConnectStatusScreen-BdwUuSkv.mjs → FarcasterConnectStatusScreen-dpPMJ4I7.mjs} +8 -8
- package/dist/esm/FarcasterSignerStatusScreen-COkxl1bH.mjs +28 -0
- package/dist/esm/FiatOnrampScreen-Ci0mAJY4.mjs +97 -0
- package/dist/esm/FundSolWalletWithExternalSolanaWallet-DW0tS4tS.mjs +1 -0
- package/dist/esm/FundWalletMethodHeader-D38FBVVM.mjs +1 -0
- package/dist/esm/FundWithBankDepositScreen-Dk_IouhM.mjs +58 -0
- package/dist/esm/FundingEditAmountScreen-BLsQoL4e.mjs +1 -0
- package/dist/esm/FundingMethodSelectionScreen-OlDe5HS2.mjs +1 -0
- package/dist/esm/InAppBrowserLoginNotPossible-BV3tTire.mjs +1 -0
- package/dist/esm/InstallWalletScreen-BMmSUe34.mjs +1 -0
- package/dist/esm/LandingScreen-B83IEgoc.mjs +1 -0
- package/dist/esm/{LinkConflictScreen-DNGVg8dW.mjs → LinkConflictScreen-DNiusVkA.mjs} +3 -3
- package/dist/esm/LinkEmailScreen-1OEkvtrp.mjs +1 -0
- package/dist/esm/{LinkPasskeyScreen-CTYGeo1r.mjs → LinkPasskeyScreen-CHPataTs.mjs} +5 -5
- package/dist/esm/LinkPhoneScreen-DiwKH2Mt.mjs +1 -0
- package/dist/esm/LoginFailedScreen-CDmqpAN2.mjs +1 -0
- package/dist/esm/ManualTransferScreen-DyN3_kBX.mjs +1 -0
- package/dist/esm/MfaAuthEnrollmentFlowScreen-BNV7WReW.mjs +1 -0
- package/dist/esm/MfaAuthVerifyFlowScreen-B-ukVyrA.mjs +1 -0
- package/dist/esm/MfaEnrollmentFlowScreen-COe5FpFP.mjs +1 -0
- package/dist/esm/MfaVerifyFlowScreen-DCIPle0Z.mjs +1 -0
- package/dist/esm/{ModalHeader-DfHxv9fE.mjs → ModalHeader-DpkEBdQv.mjs} +1 -1
- package/dist/esm/MoonpayStatusScreen-_owltgjZ.mjs +16 -0
- package/dist/esm/OAuthStatusScreen-KZmCHc_b.mjs +1 -0
- package/dist/esm/PasskeySelectSignupOrLogin-CQ_DHbaT.mjs +1 -0
- package/dist/esm/PasskeyStatusScreen-eu3lPB6M.mjs +3 -0
- package/dist/esm/PasswordRecoveryScreen-DndhFHx6.mjs +20 -0
- package/dist/esm/{QrCode-D4XZQrgi.mjs → QrCode-D-J14re9.mjs} +1 -1
- package/dist/esm/RecoveryOAuthStatusScreen-CwCRvxCX.mjs +1 -0
- package/dist/esm/RecoveryPasswordCreateScreen-DrRcz4CY.mjs +1 -0
- package/dist/esm/{RecoverySelectionScreen-DVBTi436.mjs → RecoverySelectionScreen-CPHkQlGF.mjs} +2 -2
- package/dist/esm/{Screen-CDEd4p2a.mjs → Screen-B0u1eY7p.mjs} +3 -3
- package/dist/esm/{ScreenLayout-BdRrZJd_.mjs → ScreenLayout-CyK-vOMq.mjs} +1 -1
- package/dist/esm/SelectSourceAsset-ac3FApgI.mjs +112 -0
- package/dist/esm/{SetAutomaticRecoveryScreen-DBcSNU6R.mjs → SetAutomaticRecoveryScreen-DLY7WHVZ.mjs} +2 -2
- package/dist/esm/{SetWalletPasswordForm-DdWjdu2s.mjs → SetWalletPasswordForm-CQWh647N.mjs} +4 -4
- package/dist/esm/SignRequestScreen-BYHN19dO.mjs +26 -0
- package/dist/esm/{StandardSignAndSendTransactionScreen-DIJRS8NR.mjs → StandardSignAndSendTransactionScreen-5sT-AMvv.mjs} +2 -2
- package/dist/esm/TelegramAuthScreen-DATrHQkr.mjs +1 -0
- package/dist/esm/{TransactionDetails-Ce_Cnzo2.mjs → TransactionDetails-D9GBw9C3.mjs} +4 -4
- package/dist/esm/{TransactionErrorView-JiZmO7NJ.mjs → TransactionErrorView-3qTJ_97m.mjs} +5 -5
- package/dist/esm/{TransferFromWalletScreen-ad5b7GV7.mjs → TransferFromWalletScreen-w3c3g8ys.mjs} +2 -2
- package/dist/esm/{TransferOrBridgeLoadingScreen-Cwzefd9j.mjs → TransferOrBridgeLoadingScreen-koaJdk-2.mjs} +1 -1
- package/dist/esm/UpdateEmailScreen-BKTgKvoR.mjs +1 -0
- package/dist/esm/UpdatePhoneScreen-z7-7NbIO.mjs +1 -0
- package/dist/esm/UserLimitReachedScreen-BK77vZJo.mjs +1 -0
- package/dist/esm/{WalletInfoCard-D2dCT7_H.mjs → WalletInfoCard-hC5PhrNs.mjs} +1 -1
- package/dist/esm/WalletInterstitialScreen-DzDGk-y-.mjs +1 -0
- package/dist/esm/{WalletLink-DNraFqEC.mjs → WalletLink-sGQdBvAh.mjs} +1 -1
- package/dist/esm/{WalletOverflowButton-Cn_nKCBf.mjs → WalletOverflowButton-BrrkHpeZ.mjs} +1 -1
- package/dist/esm/{WarningBanner-c8L53pJ2.mjs → WarningBanner-D5LqDt95.mjs} +2 -2
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/{context-Cw2-86-G.mjs → context-Bj4czVEP.mjs} +1 -1
- package/dist/esm/{ethers-5oa3ZKLD.mjs → ethers-BozrzoVi.mjs} +1 -1
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/{getErc20Balance-sCX8nL1s.mjs → getErc20Balance-NThD2gHO.mjs} +1 -1
- package/dist/esm/{getErc20TokenInfo-CwiO-mOs.mjs → getErc20TokenInfo-BtdscGyJ.mjs} +1 -1
- package/dist/esm/index-CuKtz_xL.mjs +12 -0
- package/dist/esm/index-DQp_5KKJ.mjs +174 -0
- package/dist/esm/index-Ds8yBPhi.mjs +1 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/privy-context-DICqtyyT.mjs +1 -0
- package/dist/esm/{shared-Bw0pXSOO.mjs → shared-zCv-_9Pa.mjs} +1 -1
- package/dist/esm/{shouldProceedtoEmbeddedWalletCreationFlow-BkTDxfME.mjs → shouldProceedtoEmbeddedWalletCreationFlow-DLpCU-0h.mjs} +1 -1
- package/dist/esm/smart-wallets-B8GvSECb.mjs +1 -0
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/{styles-D5Jf27-u.mjs → styles-pSKfqjN3.mjs} +15 -15
- package/dist/esm/{to-ui-error-DnDY_33E.mjs → to-ui-error-KRq5_d4z.mjs} +2 -2
- package/dist/esm/ui.mjs +1 -1
- package/dist/esm/use-export-wallet-D1P_g8O0.mjs +1 -0
- package/dist/esm/use-export-wallet-DVyBljMT.mjs +1 -0
- package/dist/esm/{useActiveWallet-CwS7ik68.mjs → useActiveWallet-DMrO7evY.mjs} +1 -1
- package/dist/esm/useGetTokenPrice-N5ZX6Yun.mjs +1 -0
- package/dist/esm/{useI18n-bIQlZhkW.mjs → useI18n-BiiKgmqw.mjs} +1 -1
- package/dist/esm/usePrivy-DDB15S8o.mjs +1 -0
- package/dist/esm/{useSolanaRpcClient-C2WlA-Ah.mjs → useSolanaRpcClient-B--BKNG3.mjs} +1 -1
- package/dist/esm/{useWalletBalance-DopZXXwh.mjs → useWalletBalance-C0WFIwSX.mjs} +1 -1
- package/dist/esm/useWallets-CJvLEQqE.mjs +1 -0
- package/dist/esm/useWallets-CS_W9ciB.mjs +1 -0
- package/package.json +5 -5
- package/dist/cjs/AccountNotFoundScreen-Bqh-CYrp.js +0 -1
- package/dist/cjs/AffirmativeConsentScreen-uogZ44HQ.js +0 -6
- package/dist/cjs/AllowlistRejectionScreen-3OKwgh23.js +0 -1
- package/dist/cjs/AuthenticateWithWalletScreen-DXy5TnZj.js +0 -1
- package/dist/cjs/AwaitingEvmToSolBridgingScreen-DR1RiU-S.js +0 -2
- package/dist/cjs/AwaitingExternalEthereumTransferScreen-DgQ9z_ck.js +0 -2
- package/dist/cjs/AwaitingPasswordlessCodeScreen-Bah7kXAV.js +0 -103
- package/dist/cjs/AwaitingSolToEvmBridgingScreen-HSwPZmzZ.js +0 -2
- package/dist/cjs/CaptchaScreen-BLoD3u63.js +0 -1
- package/dist/cjs/CoinbaseOnrampStatusScreen-CoSS2KfY.js +0 -16
- package/dist/cjs/ConnectEmailForm-BjXzo_T8.js +0 -3
- package/dist/cjs/ConnectLedgerScreen-Brfd_c8H.js +0 -9
- package/dist/cjs/ConnectOnlyLandingScreen-C41qgoJf.js +0 -1
- package/dist/cjs/ConnectOnlyStatusScreen-DPsh3aXI.js +0 -1
- package/dist/cjs/ConnectOrCreateScreen-Dpv9J_eC.js +0 -1
- package/dist/cjs/ConnectionStatusScreen-DfKCyYnE.js +0 -7
- package/dist/cjs/CrossAppAuthScreen-CAmbPQb0.js +0 -1
- package/dist/cjs/DelegatedActionsConsentScreen-DOvRMKf-.js +0 -1
- package/dist/cjs/DelegatedActionsRevokeScreen-5ecaxQ0D.js +0 -1
- package/dist/cjs/EmbeddedWalletConnectingScreen-B31DzW7n.js +0 -1
- package/dist/cjs/EmbeddedWalletCreatedScreen-BXEozrA_.js +0 -1
- package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-DSrn-F5R.js +0 -1
- package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-DGlv7LlS.js +0 -1
- package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-Byr5dLg5.js +0 -1
- package/dist/cjs/ErrorScreen-DJwJwrGn.js +0 -4
- package/dist/cjs/FarcasterSignerStatusScreen--CVrZRE9.js +0 -29
- package/dist/cjs/FundSolWalletWithExternalSolanaWallet-3Fn4CnSA.js +0 -2
- package/dist/cjs/FundWalletMethodHeader-D2fapeXN.js +0 -1
- package/dist/cjs/FundWithBankDepositScreen-DUQAuyf5.js +0 -176
- package/dist/cjs/FundingEditAmountScreen-B3wEw9xm.js +0 -1
- package/dist/cjs/FundingMethodSelectionScreen-ChQNeyi6.js +0 -1
- package/dist/cjs/InAppBrowserLoginNotPossible-XFkxHwKR.js +0 -1
- package/dist/cjs/InstallWalletScreen-Cp3ZRRYf.js +0 -1
- package/dist/cjs/LandingScreen-DwFs0lRf.js +0 -1
- package/dist/cjs/LinkEmailScreen-_sfK6ECC.js +0 -1
- package/dist/cjs/LinkPhoneScreen-BjMfF3Kz.js +0 -1
- package/dist/cjs/LoginFailedScreen-BUnuwN-5.js +0 -1
- package/dist/cjs/ManualTransferScreen-D2hHGf6p.js +0 -1
- package/dist/cjs/MfaAuthEnrollmentFlowScreen-VFaXkogp.js +0 -1
- package/dist/cjs/MfaAuthVerifyFlowScreen-CVBdW4Cw.js +0 -1
- package/dist/cjs/MfaEnrollmentFlowScreen-DxkzCr5s.js +0 -1
- package/dist/cjs/MfaVerifyFlowScreen-AFZc7liT.js +0 -1
- package/dist/cjs/MoonpayStatusScreen-C66Eq4G4.js +0 -16
- package/dist/cjs/OAuthStatusScreen-NKl6SLvR.js +0 -1
- package/dist/cjs/PasskeySelectSignupOrLogin-D9VfPofR.js +0 -1
- package/dist/cjs/PasskeyStatusScreen-CBC-60D2.js +0 -3
- package/dist/cjs/PasswordRecoveryScreen-BSUhAJ63.js +0 -20
- package/dist/cjs/RecoveryOAuthStatusScreen-y2Z3cphT.js +0 -1
- package/dist/cjs/RecoveryPasswordCreateScreen-CoDYHaJk.js +0 -1
- package/dist/cjs/SetAutomaticRecoveryScreen-BLiDEmlE.js +0 -14
- package/dist/cjs/TelegramAuthScreen-BGB40HSe.js +0 -1
- package/dist/cjs/UpdateEmailScreen-Bgn5JxGJ.js +0 -1
- package/dist/cjs/UpdatePhoneScreen-DPAxfLv5.js +0 -1
- package/dist/cjs/UserLimitReachedScreen-BG8gj4ah.js +0 -1
- package/dist/cjs/WalletInterstitialScreen-CBH05HpE.js +0 -1
- package/dist/cjs/get-is-unified-wallet-DitrQ4hx.js +0 -1
- package/dist/cjs/index-CCY3tkwt.js +0 -1
- package/dist/cjs/smart-wallets-BtILJe_K.js +0 -1
- package/dist/cjs/use-export-wallet-C6DaLOxp.js +0 -1
- package/dist/cjs/use-export-wallet-eDTOzHRt.js +0 -1
- package/dist/cjs/usePrivy-CHcu9hX8.js +0 -1
- package/dist/cjs/useWallets-CbvzYOqg.js +0 -1
- package/dist/cjs/useWallets-Cy6axcvW.js +0 -1
- package/dist/esm/AccountNotFoundScreen-BSYd-8_2.mjs +0 -1
- package/dist/esm/AffirmativeConsentScreen-C_uGmdSa.mjs +0 -6
- package/dist/esm/AllowlistRejectionScreen-DBdNYwS-.mjs +0 -1
- package/dist/esm/AuthenticateWithWalletScreen-D-Aw0iYo.mjs +0 -1
- package/dist/esm/AwaitingEvmToSolBridgingScreen-BMr5CXgX.mjs +0 -2
- package/dist/esm/AwaitingExternalEthereumTransferScreen-aOEMTW-b.mjs +0 -2
- package/dist/esm/AwaitingPasswordlessCodeScreen-CjPJ7IMM.mjs +0 -103
- package/dist/esm/AwaitingSolToEvmBridgingScreen-xrFngED1.mjs +0 -2
- package/dist/esm/CaptchaScreen-BOKElE1r.mjs +0 -1
- package/dist/esm/CoinbaseOnrampStatusScreen-CTV5uUn3.mjs +0 -16
- package/dist/esm/ConnectEmailForm-Dp85JvZj.mjs +0 -3
- package/dist/esm/ConnectLedgerScreen-rxzesP5N.mjs +0 -9
- package/dist/esm/ConnectOnlyLandingScreen-CmImF7oZ.mjs +0 -1
- package/dist/esm/ConnectOnlyStatusScreen-Bo90w6P9.mjs +0 -1
- package/dist/esm/ConnectOrCreateScreen-Dc2VQF-B.mjs +0 -1
- package/dist/esm/ConnectionStatusScreen-C_fxSXJ2.mjs +0 -7
- package/dist/esm/CrossAppAuthScreen-DU0FD2ep.mjs +0 -1
- package/dist/esm/DelegatedActionsConsentScreen-Dr-DeIXC.mjs +0 -1
- package/dist/esm/DelegatedActionsRevokeScreen-kXOJxXu-.mjs +0 -1
- package/dist/esm/EmbeddedWalletConnectingScreen-tFedaOj3.mjs +0 -1
- package/dist/esm/EmbeddedWalletCreatedScreen-DCx4NdAp.mjs +0 -1
- package/dist/esm/EmbeddedWalletKeyExportScreen-CVflSsvz.mjs +0 -40
- package/dist/esm/EmbeddedWalletOnAccountCreateScreen-vSzXa62f.mjs +0 -1
- package/dist/esm/EmbeddedWalletPasswordUpdateScreen-B4szV9Hg.mjs +0 -1
- package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-BOBLnE_O.mjs +0 -1
- package/dist/esm/ErrorScreen-BGE6wldq.mjs +0 -4
- package/dist/esm/FarcasterSignerStatusScreen-C-crikPv.mjs +0 -28
- package/dist/esm/FundSolWalletWithExternalSolanaWallet-BX4gYmzv.mjs +0 -1
- package/dist/esm/FundWalletMethodHeader-CdXWChwL.mjs +0 -1
- package/dist/esm/FundWithBankDepositScreen-HyqTUpLq.mjs +0 -176
- package/dist/esm/FundingEditAmountScreen--ffFSUmf.mjs +0 -1
- package/dist/esm/FundingMethodSelectionScreen-Djr0jY03.mjs +0 -1
- package/dist/esm/InAppBrowserLoginNotPossible-D6wMCuzD.mjs +0 -1
- package/dist/esm/InstallWalletScreen-B6VSXUWR.mjs +0 -1
- package/dist/esm/LandingScreen-BV0xq-oc.mjs +0 -1
- package/dist/esm/LinkEmailScreen-CtMuCZvp.mjs +0 -1
- package/dist/esm/LinkPhoneScreen-2nnXZB2B.mjs +0 -1
- package/dist/esm/LoginFailedScreen-hHvIsH81.mjs +0 -1
- package/dist/esm/ManualTransferScreen-C0xJ3si8.mjs +0 -1
- package/dist/esm/MfaAuthEnrollmentFlowScreen-CznUpkq5.mjs +0 -1
- package/dist/esm/MfaAuthVerifyFlowScreen-DUmOZHGX.mjs +0 -1
- package/dist/esm/MfaEnrollmentFlowScreen-DeoSfYAS.mjs +0 -1
- package/dist/esm/MfaVerifyFlowScreen-JJ1crW_8.mjs +0 -1
- package/dist/esm/MoonpayStatusScreen-BIzQZK9f.mjs +0 -16
- package/dist/esm/OAuthStatusScreen-DhmaZBTY.mjs +0 -1
- package/dist/esm/PasskeySelectSignupOrLogin-BmiJnukl.mjs +0 -1
- package/dist/esm/PasskeyStatusScreen-BStwA1_J.mjs +0 -3
- package/dist/esm/PasswordRecoveryScreen-DyBDQADG.mjs +0 -20
- package/dist/esm/RecoveryOAuthStatusScreen-BfcxgkUL.mjs +0 -1
- package/dist/esm/RecoveryPasswordCreateScreen-CBfvjxht.mjs +0 -1
- package/dist/esm/SignRequestScreen-CxAuntSd.mjs +0 -26
- package/dist/esm/TelegramAuthScreen-BRDG8b6x.mjs +0 -1
- package/dist/esm/UpdateEmailScreen-C5lQJUiA.mjs +0 -1
- package/dist/esm/UpdatePhoneScreen-BwkzWVHl.mjs +0 -1
- package/dist/esm/UserLimitReachedScreen-ComDV9kj.mjs +0 -1
- package/dist/esm/WalletInterstitialScreen-riBB51NH.mjs +0 -1
- package/dist/esm/get-is-unified-wallet-CQc-E5dS.mjs +0 -1
- package/dist/esm/index-B5B9f4U9.mjs +0 -12
- package/dist/esm/index-Bvw5OxHl.mjs +0 -174
- package/dist/esm/index-yxF2V6XY.mjs +0 -1
- package/dist/esm/smart-wallets-Dl42tBUP.mjs +0 -1
- package/dist/esm/use-export-wallet-Bd5Sg5V-.mjs +0 -1
- package/dist/esm/use-export-wallet-NF9h_lS_.mjs +0 -1
- package/dist/esm/useGetTokenPrice-oI6b3gPZ.mjs +0 -1
- package/dist/esm/usePrivy-DAnfSvB5.mjs +0 -1
- package/dist/esm/useWallets-2_uCkhA8.mjs +0 -1
- package/dist/esm/useWallets-DpbBw4Vl.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ofetch as e}from"ofetch";import{useState as t,useRef as n,useEffect as a}from"react";import{M as r,v as o,w as u,x as i}from"./context-Bj4czVEP.mjs";import{u as s}from"./internal-context-Z-fyxadS.mjs";import{a as c}from"./privy-context-DICqtyyT.mjs";import{O as d}from"./analytics-mkkvFRju.mjs";const m="moonpay";function l(e){return parseFloat(e)}function y(l,y=!1){let[f,p]=t(null),{createAnalyticsEvent:g}=s(),{data:h,navigate:v,setModalData:A}=c(),F=h?.funding,w=n(0);return a((()=>{let t=setInterval((async()=>{if(l)try{let[n]=await async function(t,n){return e(`${n?r:o}/transactions/ext/${t}`,{query:{apiKey:n?u:i}})}(l,y),a="waitingAuthorization"===n.status&&"credit_debit_card"===n.paymentMethod?"pending":n.status;if(["failed","completed","awaitingAuthorization"].includes(a)&&(g({eventName:d,payload:{status:a,provider:m,paymentMethod:n.paymentMethod,cardPaymentType:n.cardPaymentType,currency:n.currency?.code,baseCurrencyAmount:n.baseCurrencyAmount,quoteCurrencyAmount:n.quoteCurrencyAmount,feeAmount:n.feeAmount,extraFeeAmount:n.extraFeeAmount,networkFeeAmount:n.networkFeeAmount,isSandbox:y}}),clearInterval(t)),"failed"===a||"serviceFailure"===a)return A({funding:{...F,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."},solanaFundingData:h?.solanaFundingData}),void v("FundingMethodSelectionScreen");p(a)}catch(e){404!==e.response?.status&&(w.current+=1),w.current>=3&&(g({eventName:d,payload:{status:"serviceFailure",provider:m}}),clearInterval(t),A({funding:{...F,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."},solanaFundingData:h?.solanaFundingData}),v("FundingMethodSelectionScreen"))}}),3e3);return()=>clearInterval(t)}),[l,w]),f}export{l as a,y as u};
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{O as Captcha,Q as ConnectorManager,aJ as LoginModal,U as PrivyClient,aK as PrivyModal,L as PrivyProvider,M as createCrossTabUserSyncPlugin,N as createWalletCreationOnLoginPlugin,j as errorIndicatesMaxMfaRetries,h as errorIndicatesMfaTimeout,g as errorIndicatesMfaVerificationFailed,X as getAccessToken,V as getIdentityToken,aL as toViemAccount,aj as useAuthMfa,ak as useAuthMfaEnrollment,aE as useAuthorizationSignature,ai as useBaseAccountSdk,ah as useConnectBaseAccount,ag as useConnectCoinbaseSmartWallet,a5 as useConnectOrCreateWallet,al as useCrossAppAccounts,ax as useCustomAuth,aB as useDelegatedActions,aA as useFarcasterSigner,af as useFundWalletWithBankDeposit,_ as useGetAccessTokenForProvider,aG as useGetWalletPrivateKey,an as useGuestAccounts,aI as useHeadlessDelegatedActions,Z as useIdentityToken,ac as useLinkAccount,aw as useLinkJwtAccount,a3 as useLinkWithPasskey,a6 as useLinkWithSiwe,a9 as useLinkWithSiws,a0 as useLoginWithEmail,Y as useLoginWithFarcasterV2,$ as useLoginWithOAuth,a2 as useLoginWithPasskey,a7 as useLoginWithSiwe,a8 as useLoginWithSiws,a4 as useLoginWithSms,aH as useLoginWithTelegram,u as useMfa,d as useMfaEnrollment,aM as useMigrateWallets,at as useModalStatus,av as useOAuthTokens,T as useRecoverEmbeddedWallet,ab as useRegisterMfaListener,am as useSendTransaction,aC as useSessionSigners,ao as useSetWalletRecovery,aq as useSign7702Authorization,ap as useSignMessage,aa as useSignTransaction,ar as useSignTypedData,aD as useSigners,a1 as useSignupWithPasskey,az as useSubscribeToJwtAuthWithFlag,ay as useSyncJwtBasedAuthState,au as useToken,ad as useUpdateAccount,ae as useUpdateEmail,aF as useUser,as as useX402Fetch}from"./index-
|
|
1
|
+
export{O as Captcha,Q as ConnectorManager,aJ as LoginModal,U as PrivyClient,aK as PrivyModal,L as PrivyProvider,M as createCrossTabUserSyncPlugin,N as createWalletCreationOnLoginPlugin,j as errorIndicatesMaxMfaRetries,h as errorIndicatesMfaTimeout,g as errorIndicatesMfaVerificationFailed,X as getAccessToken,V as getIdentityToken,aL as toViemAccount,aj as useAuthMfa,ak as useAuthMfaEnrollment,aE as useAuthorizationSignature,ai as useBaseAccountSdk,ah as useConnectBaseAccount,ag as useConnectCoinbaseSmartWallet,a5 as useConnectOrCreateWallet,al as useCrossAppAccounts,ax as useCustomAuth,aB as useDelegatedActions,aA as useFarcasterSigner,af as useFundWalletWithBankDeposit,_ as useGetAccessTokenForProvider,aG as useGetWalletPrivateKey,an as useGuestAccounts,aI as useHeadlessDelegatedActions,Z as useIdentityToken,ac as useLinkAccount,aw as useLinkJwtAccount,a3 as useLinkWithPasskey,a6 as useLinkWithSiwe,a9 as useLinkWithSiws,a0 as useLoginWithEmail,Y as useLoginWithFarcasterV2,$ as useLoginWithOAuth,a2 as useLoginWithPasskey,a7 as useLoginWithSiwe,a8 as useLoginWithSiws,a4 as useLoginWithSms,aH as useLoginWithTelegram,u as useMfa,d as useMfaEnrollment,aM as useMigrateWallets,at as useModalStatus,av as useOAuthTokens,T as useRecoverEmbeddedWallet,ab as useRegisterMfaListener,am as useSendTransaction,aC as useSessionSigners,ao as useSetWalletRecovery,aq as useSign7702Authorization,ap as useSignMessage,aa as useSignTransaction,ar as useSignTypedData,aD as useSigners,a1 as useSignupWithPasskey,az as useSubscribeToJwtAuthWithFlag,ay as useSyncJwtBasedAuthState,au as useToken,ad as useUpdateAccount,ae as useUpdateEmail,aF as useUser,as as useX402Fetch}from"./index-DQp_5KKJ.mjs";export{r as WalletConnector,u as useExportWallet}from"./use-export-wallet-DVyBljMT.mjs";export{E as EthereumWalletConnector,q as useActiveWallet,o as useConnectWallet,p as useFundWallet,l as useLogin,n as useLogout}from"./useActiveWallet-DMrO7evY.mjs";export{u as useWallets}from"./useWallets-CS_W9ciB.mjs";export{g as useCreateWallet,h as useImportWallet,u as usePrivy}from"./usePrivy-DDB15S8o.mjs";export{V as VERSION}from"./context-Bj4czVEP.mjs";export{DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS,addPrivyRpcToChain,addRpcUrlOverrideToChain}from"@privy-io/js-sdk-core";export{c as dataSuffix,g as getEmbeddedConnectedWallet}from"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"react/jsx-runtime";import"react";import"uuid";import"jose";import"./privy-context-DICqtyyT.mjs";import"@privy-io/are-addresses-equal";import"./internal-context-Z-fyxadS.mjs";import"ofetch";import"eventemitter3";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";import"mipd";import"react-device-detect";import"viem/utils";import"@privy-io/popup";import"./paths-3HW55qZg.mjs";import"@scure/base";import"styled-components";import"./events-context-CI0iqAXA.mjs";import"zustand";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"@privy-io/urls";import"viem";import"./PrivyPluginContext-2QN2dVUw.mjs";import"js-cookie";import"./frame-uzTmvtww.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"tinycolor2";
|
package/dist/esm/internal.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t,f as e,u as o,b as r}from"./internal-context-Z-fyxadS.mjs";import{a7 as n}from"./paths-3HW55qZg.mjs";import{u as s}from"./context-
|
|
1
|
+
import{a as t,f as e,u as o,b as r}from"./internal-context-Z-fyxadS.mjs";import{a7 as n}from"./paths-3HW55qZg.mjs";import{u as s}from"./context-Bj4czVEP.mjs";import{a as i}from"./events-context-CI0iqAXA.mjs";import"ofetch";import"react";import"react/jsx-runtime";import"@privy-io/js-sdk-core";import"tinycolor2";class a{async authenticate(){if(!this.api)throw new t("Auth flow has no API instance");try{return await this.api.post(n,{})}catch(t){throw e(t)}}async link(){throw new t("Linking is not supported for the SSO token flow")}constructor(){this.meta={}}}function c(){let e=s(),n=i(),{client:c,setUser:h,setAuthenticated:l,setIsNewUser:w}=o();return{loginWithSsoToken:async()=>{if(!e.id||!c)throw new t("SDK not yet ready");try{let e=new a;c.startAuthFlow(e);let o=await c.authenticate(),r=o.user,s=o.isNewUser??!1;if(!r)throw new t("Unable to authenticate with SSO response");return h(r),w(s),l(!0),n("login","onComplete",{user:r,isNewUser:s,wasAlreadyAuthenticated:!1,loginMethod:"sso",loginAccount:null}),r}catch(t){throw n("login","onError",t.privyErrorCode||r.UNKNOWN_AUTH_ERROR),t}}}}export{c as useLoginWithSsoToken};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{areAddressesEqual as e}from"@privy-io/are-addresses-equal";import{jsx as t,jsxs as i}from"react/jsx-runtime";import{useContext as a,createContext as r,useState as s,useRef as l,useEffect as n}from"react";import{u}from"./context-Bj4czVEP.mjs";import{n as d}from"./internal-context-Z-fyxadS.mjs";function o(e){return"string"==typeof e&&/^custom:[a-zA-Z0-9_-]+$/i.test(e)}const c=e=>!!e.id&&"privy-v2"===e.recoveryMethod;function p(e){return e?new Date(1e3*e):null}function m(e,t){return e.slice().sort(((e,t)=>(e.firstVerifiedAt?.getTime()??0)-(t.firstVerifiedAt?.getTime()??0))).find((e=>e.type===t))}const f=e=>e?_(e).find((e=>0===e.walletIndex))??null:null,_=e=>e?y(e,"ethereum"):[],y=(e,t)=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&!e.imported&&e.chainType===t)),h=e=>e?y(e,"solana"):[],b=e=>e?h(e).find((e=>0===e.walletIndex))??null:null,k=e=>(e?.linkedAccounts??[]).filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&e.imported&&"ethereum"===e.chainType)),g=e=>(e?.linkedAccounts??[]).filter((e=>"wallet"===e.type&&e.imported&&"privy"===e.walletClientType&&"solana"===e.chainType)),v=(t,i)=>t?.linkedAccounts.find((t=>"wallet"===t.type&&"privy"===t.walletClientType&&e(t.address,i)))||null,A=(t,i)=>t.find((t=>e(t.address,i)))||null,j=e=>{let t=f(e),i=b(e);return t&&i&&!c(i)&&c(t)?i:f(e)??b(e)};function w(e){if(!e)return null;let t=function(e){let t=[];for(let i of e){let e=i.type;switch(i.type){case"wallet":let a={id:i.id,address:i.address,type:i.type,imported:i.imported,delegated:i.delegated,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at),chainType:i.chain_type,walletClientType:i.wallet_client_type,connectorType:i.connector_type,recoveryMethod:i.recovery_method,walletIndex:i.wallet_index,publicKey:i.public_key};t.push(a);break;case"smart_wallet":let r={address:i.address,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at),smartWalletType:i.smart_wallet_type,smartWalletVersion:i.smart_wallet_version};t.push(r);break;case"cross_app":let s={type:i.type,subject:i.subject,embeddedWallets:i.embedded_wallets,smartWallets:i.smart_wallets,providerApp:{id:i.provider_app_id},firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(s);break;case"email":let l={address:i.address,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(l);break;case"phone":let n={number:i.phoneNumber,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(n);break;case"google_oauth":let u={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(u);break;case"spotify_oauth":let d={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(d);break;case"instagram_oauth":let c={subject:i.subject,username:i.username,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(c);break;case"twitter_oauth":let m={subject:i.subject,username:i.username,name:i.name,type:i.type,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(m);break;case"discord_oauth":let f={subject:i.subject,username:i.username,email:i.email,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(f);break;case"github_oauth":let _={subject:i.subject,username:i.username,name:i.name,email:i.email,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(_);break;case"tiktok_oauth":let y={subject:i.subject,username:i.username,name:i.name,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(y);break;case"line_oauth":let h={subject:i.subject,name:i.name,email:i.email,profilePictureUrl:i.profile_picture_url,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(h);break;case"twitch_oauth":let b={subject:i.subject,username:i.username,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(b);break;case"linkedin_oauth":let k={subject:i.subject,name:i.name,email:i.email,vanityName:i.vanity_name,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(k);break;case"apple_oauth":let g={subject:i.subject,email:i.email,type:i.type,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(g);break;case"custom_auth":t.push({type:i.type,customUserId:i.custom_user_id,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)});break;case"farcaster":let v={type:i.type,fid:i.fid,ownerAddress:i.owner_address,displayName:i.display_name,username:i.username,bio:i.bio,pfp:i.profile_picture_url,url:i.homepage_url,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at),signerPublicKey:i.signer_public_key};t.push(v);break;case"passkey":let A={type:i.type,enrolledInMfa:i.enrolled_in_mfa,credentialId:i.credential_id,publicKey:i.public_key,authenticatorName:i.authenticator_name,createdWithDevice:i.created_with_device,createdWithOs:i.created_with_os,createdWithBrowser:i.created_with_browser,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(A);break;case"telegram":let j={type:i.type,telegramUserId:i.telegram_user_id,firstName:i.first_name,lastName:i.last_name,username:i.username,photoUrl:i.photo_url,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(j);break;default:if(o(i.type)){let e={type:i.type,subject:i.subject,name:i.name,username:i.username,email:i.email,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:p(i.first_verified_at),latestVerifiedAt:p(i.latest_verified_at)};t.push(e);break}console.warn(`Unrecognized account type: ${e}. Please consider upgrading the Privy SDK.`)}}return t}(e.linked_accounts),i=m(t,"wallet"),a=m(t,"smart_wallet"),r=m(t,"email"),s=m(t,"phone"),l=m(t,"google_oauth"),n=m(t,"twitter_oauth"),u=m(t,"discord_oauth"),d=m(t,"github_oauth"),c=m(t,"spotify_oauth"),f=m(t,"instagram_oauth"),_=m(t,"tiktok_oauth"),y=m(t,"line_oauth"),h=m(t,"twitch_oauth"),b=m(t,"linkedin_oauth"),k=m(t,"apple_oauth"),g=m(t,"farcaster"),v=m(t,"telegram"),A=e.mfa_methods.map((({type:e,verified_at:t})=>({type:e,verifiedAt:p(t)})));return{id:e.id,createdAt:p(e.created_at),linkedAccounts:t,email:r&&{address:r?.address},phone:s&&{number:s?.number},wallet:i&&{id:i.id,address:i.address,chainType:i.chainType,walletClientType:i.walletClientType,connectorType:i.connectorType,recoveryMethod:i.recoveryMethod,imported:i.imported,delegated:i.delegated,walletIndex:i.walletIndex,publicKey:i.publicKey},smartWallet:a&&{address:a.address,smartWalletType:a.smartWalletType,smartWalletVersion:a.smartWalletVersion},google:l&&{subject:l.subject,email:l.email,name:l.name},twitter:n&&{subject:n.subject,username:n.username,name:n.name,profilePictureUrl:n.profilePictureUrl},discord:u&&{subject:u.subject,username:u.username,email:u.email},github:d&&{subject:d.subject,username:d.username,name:d.name,email:d.email},spotify:c&&{subject:c.subject,email:c.email,name:c.name},instagram:f&&{subject:f.subject,username:f.username},tiktok:_&&{subject:_.subject,username:_.username,name:_.name},line:y&&{subject:y.subject,name:y.name,email:y.email,profilePictureUrl:y.profilePictureUrl},twitch:h&&{subject:h.subject,username:h.username},linkedin:b&&{subject:b.subject,name:b.name,email:b.email,vanityName:b.vanityName},apple:k&&{subject:k.subject,email:k.email},farcaster:g&&{fid:g.fid,ownerAddress:g.ownerAddress,displayName:g.displayName,username:g.username,bio:g.bio,pfp:g.pfp,url:g.url,signerPublicKey:g.signerPublicKey},telegram:v&&{telegramUserId:v.telegramUserId,firstName:v.firstName,lastName:v.lastName,username:v.username,photoUrl:v.photoUrl},delegatedWallets:[],mfaMethods:A.map((e=>e.type)),hasAcceptedTerms:e.has_accepted_terms??!1,isGuest:e.is_guest,customMetadata:e.custom_metadata}}function V({src:e,...i}){/*#__PURE__*/return t("img",{src:e,...i,style:{display:"none"}})}const T=/*#__PURE__*/r({currentScreen:null,lastScreen:null,navigate:d,navigateBack:d,resetNavigation:d,setModalData:d,onUserCloseViaDialogOrKeybindRef:void 0}),W=e=>{let a=u(),[r,d]=s(e.initialScreen),o=l(null);n((()=>{e.open||(o.current=null)}),[e.open]),n((()=>{o.current=null}),[e.initialScreen]);let c={data:e.data,setModalData:e.setModalData,currentScreen:e.initialScreen,lastScreen:r,navigate:(t,i=!0)=>{e.setInitialScreen(t),i&&d(e.initialScreen)},navigateBack:()=>{e.setInitialScreen(r)},resetNavigation:()=>{e.setInitialScreen(null),d(null)},onUserCloseViaDialogOrKeybindRef:o};/*#__PURE__*/return i(T.Provider,{value:c,children:[("string"==typeof a.appearance.logo||"img"===a.appearance.logo?.type)&&/*#__PURE__*/t(V,{src:"string"==typeof a.appearance.logo?a.appearance.logo:a.appearance.logo.props.src}),e.children]})},P=()=>a(T),I=/*#__PURE__*/r({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:d,login:d,connectOrCreateWallet:d,linkEmail:d,linkPhone:d,linkFarcaster:d,linkWallet:d,startCrossAppAuthFlow:d,linkGoogle:d,linkTwitter:d,linkTwitch:d,linkDiscord:d,linkGithub:d,linkSpotify:d,linkInstagram:d,linkTelegram:d,linkTiktok:d,linkLine:d,linkLinkedIn:d,linkApple:d,linkPasskey:d,linkOAuth:d,updateEmail:d,updatePhone:d,logout:d,getAccessToken:d,unlinkEmail:d,unlinkPhone:d,unlinkWallet:d,unlinkGoogle:d,unlinkTwitter:d,unlinkTwitch:d,unlinkDiscord:d,unlinkGithub:d,unlinkSpotify:d,unlinkInstagram:d,unlinkTiktok:d,unlinkLine:d,unlinkLinkedIn:d,unlinkApple:d,unlinkCrossAppAccount:d,unlinkFarcaster:d,unlinkTelegram:d,unlinkPasskey:d,unlinkOAuth:d,signMessage:d,signTypedData:d,enrollInMfa:d,initEnrollmentWithSms:d,initEnrollmentWithTotp:d,initEnrollmentWithPasskey:d,promptMfa:d,init:d,submitEnrollmentWithSms:d,submitEnrollmentWithTotp:d,submitEnrollmentWithPasskey:d,unenroll:d,submit:d,cancel:d,sendTransaction:d,signTransaction:d,setWalletPassword:d,setWalletRecovery:d,requestFarcasterSignerFromWarpcast:d,getFarcasterSignerPublicKey:d,signFarcasterMessage:d,signMessageWithCrossAppWallet:d,signTypedDataWithCrossAppWallet:d,sendTransactionWithCrossAppWallet:d,signTransactionWithCrossAppWallet:d,isModalOpen:!1,mfaMethods:[]}),M=()=>a(I);export{W as M,I as P,P as a,c as b,f as c,k as d,b as e,g as f,j as g,_ as h,o as i,v as j,A as k,w as l,y as m,h as n,M as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import r from"@heroicons/react/24/outline/ArrowPathIcon";import e from"@heroicons/react/24/outline/EyeIcon";import o from"@heroicons/react/24/outline/EyeSlashIcon";import{styled as i,css as t}from"styled-components";import{P as a,a as n}from"./ModalHeader-
|
|
1
|
+
import r from"@heroicons/react/24/outline/ArrowPathIcon";import e from"@heroicons/react/24/outline/EyeIcon";import o from"@heroicons/react/24/outline/EyeSlashIcon";import{styled as i,css as t}from"styled-components";import{P as a,a as n}from"./ModalHeader-DpkEBdQv.mjs";let l=t`
|
|
2
2
|
font-size: 14px;
|
|
3
3
|
font-style: normal;
|
|
4
4
|
font-weight: 400;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e,k as s}from"./index-
|
|
1
|
+
import{s as e,k as s}from"./index-DQp_5KKJ.mjs";const a=(a,n)=>e(a,n.ethereum.createOnLogin)||s(a,n.solana.createOnLogin);export{a as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useRef as e,useState as a,useCallback as n}from"react";import{http as r,createPublicClient as t}from"viem";import{a as i,u as s,c as o,b as l}from"./privy-context-DICqtyyT.mjs";import{u as c}from"./context-Bj4czVEP.mjs";import{u as d,a as m}from"./internal-context-Z-fyxadS.mjs";import{b as u,u as p,g as y}from"./useWallets-CS_W9ciB.mjs";import{u as g}from"./PrivyPluginContext-2QN2dVUw.mjs";import{a as P,D as f}from"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import{createSmartAccountClient as h}from"permissionless";import{toThirdwebSmartAccount as w,toLightSmartAccount as I,toBiconomySmartAccount as F,toKernelSmartAccount as x,toSafeSmartAccount as W}from"permissionless/accounts";import{createPimlicoClient as v}from"permissionless/clients/pimlico";import{entryPoint07Address as G,entryPoint06Address as S,toCoinbaseSmartAccount as C}from"viem/account-abstraction";import{THIRDWEB as T,COINBASE_SMART_WALLET as b,LIGHT_ACCOUNT as U,BICONOMY as M,KERNEL as O,SAFE as D}from"@privy-io/js-sdk-core";let V={address:S,version:"0.6"},A={address:G,version:"0.7"},B=({owner:e,smartWalletType:a,smartWalletVersion:n,publicClient:r})=>{switch(a){case D:return W({client:r,entryPoint:A,owners:[e],version:"1.4.1"});case O:return x({client:r,version:"0.3.1",entryPoint:A,useMetaFactory:"optional",owners:[e]});case M:return F({client:r,owners:[e],entryPoint:V});case U:return I({client:r,entryPoint:V,owner:e,version:"1.1.0"});case b:return async function({client:e,owner:a,version:n}){let[r]=await a.request({method:"eth_accounts"});if(!r)throw Error("Unable to request embedded owner for eth_accounts");return await C({client:e,owners:[{type:"local",source:"privy",address:r,sign:async({hash:e})=>await a.request({method:"secp256k1_sign",params:[e]})}],version:n})}({client:r,owner:e,version:n??"1"});case T:return w({client:r,entryPoint:A,owner:e});default:throw Error(`Invalid smart account type: ${a}.`)}};const E=({calls:e,chain:a,maxPriorityFeePerGas:n,maxFeePerGas:r,nonce:t})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:a.id,nonce:t,maxFeePerGas:r,maxPriorityFeePerGas:n}))),q=async({chain:e,paymasterContext:a,account:n,signer:i,user:s,smartWalletsConfig:o,rpcConfig:l,privyAppId:c})=>{if(!(o?.enabled&&s&&n&&i))return;let d=o?.configuredNetworks.find((a=>a.chainId===`eip155:${e.id}`));if(!d)throw new m(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let p=s.smartWallet?s.smartWallet.smartWalletType:o.smartWalletType,y=s.smartWallet?s.smartWallet.smartWalletVersion:o.smartWalletVersion,g=u(e,l,c),P=t({chain:e,transport:r(g)}),f=a??d.paymasterContext,w=await(async({owner:e,smartWalletType:a,smartWalletVersion:n,chain:t,publicClient:i,bundlerUrl:s,paymasterUrl:o,paymasterContext:l})=>{let c=await B({owner:e,smartWalletType:a,publicClient:i,smartWalletVersion:n}),d=v({transport:r(s),entryPoint:c.entryPoint}),m=o?v({transport:r(o),entryPoint:c.entryPoint}):void 0;return h({account:c,chain:t,paymaster:m,paymasterContext:l,bundlerTransport:r(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await d.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await d.request({method:"zd_getUserOperationGasPrice",params:[]})).fast;if(["g.alchemy.com"].some((e=>s.includes(e)))){let[e,a]=await Promise.all([i.getBlock({blockTag:"latest"}),d.request({method:"rundler_maxPriorityFeePerGas",params:[]})]);if(!e.baseFeePerGas||!a)throw Error("Failed to get block or maxPriorityFeePerGasEstimate");return{maxFeePerGas:150n*e.baseFeePerGas/100n+BigInt(a.toString()),maxPriorityFeePerGas:BigInt(a.toString())}}{let e=await i.estimateFeesPerGas(),a=s.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*a/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*a/100n}}}}})})({owner:i,smartWalletType:p,smartWalletVersion:y,chain:e,publicClient:P,paymasterContext:f,...d});if(!w)throw new m(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return w},N=({clientConfig:r,smartWalletsConfig:t})=>{let{hideWalletUIs:u,openPrivyModal:h,appId:w,isHeadlessSigning:I}=d(),F=c(),{setModalData:x}=i(),{user:W}=s(),{chains:v}=c(),G=g(),{chainId:S,clients:C,setChainId:T,chainIdState:b}=(()=>{let n=e(),[r,t]=a();return{clients:e({}),setChainId:e=>{n.current=e,t(e)},chainId:n,chainIdState:r}})(),U=v.find((e=>e.id===b)),{wallets:M}=p(),O=o(W),D=P(M,O?.address),V=!!O&&l(O),A=n((async()=>S.current),[S]),B=n((async({id:e})=>{if(!C.current[e]){let a=await q({chain:v.find((a=>a.id===e)),account:O,signer:await(D?.getEthereumProvider()),user:W,paymasterContext:r?.paymasterContext,smartWalletsConfig:t,rpcConfig:F.rpcConfig,privyAppId:w});a&&(C.current[e]=a)}T(e)}),[v,r,M,W,t]);return{wrapSmartAccountClient:e=>{C.current[e.chain.id]=e,b||T(e.chain.id);return{...e,sendTransaction:async(e,a)=>{let n=C.current[S.current];if(!n)throw new m(`Smart wallet client for chain (eip155:${S.current}) not found`);delete e.account;let r=[];"calls"in e&&void 0!==e.calls?r=[...e.calls]:"to"in e&&(r=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let t=(await n.prepareUserOperation({calls:r,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0})).callData,i=G(f);if(i&&(t=i.appendDataSuffix({data:t})),I({showWalletUIs:a?.uiOptions?.showWalletUIs}))return u.current=!0,await n.sendTransaction({callData:t,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}).finally((()=>u.current=!1));let s=async()=>{let{paymasterAndData:a,paymasterData:t,maxFeePerGas:i,maxPriorityFeePerGas:s}=await n.prepareUserOperation({calls:r,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(i)&&0===Number(s)||Number(a??t??0)>0};return new Promise((async(i,o)=>{u.current=!0;let{entropyId:l,entropyIdVerifier:c}=y(W);x({connectWallet:{recoveryMethod:O.recoveryMethod,connectingWalletAddress:O.address,isUnifiedWallet:V,entropyId:l,entropyIdVerifier:c,onCompleteNavigateTo:"SendTransactionScreen",onFailure:()=>{}},sendTransaction:{transactionRequests:E({calls:r,chain:n.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:n.account.address,entropyId:l,entropyIdVerifier:c,getIsSponsored:s,signOnly:!1,onConfirm:async()=>n.sendTransaction({callData:t,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),onSuccess:e=>i(e.hash),onFailure:o,uiOptions:a?.uiOptions??{}}}),h("EmbeddedWalletConnectingScreen")})).finally((()=>{u.current=!1}))},signMessage:async(e,a)=>{let n=C.current[S.current];if(!n)throw new m(`Smart wallet client for chain (eip155:${S.current}) not found`);return I({showWalletUIs:a?.uiOptions?.showWalletUIs})?(u.current=!0,await n.signMessage(e).finally((()=>u.current=!1))):new Promise((async(r,t)=>{let{entropyId:i,entropyIdVerifier:s}=y(W);u.current=!0,x({connectWallet:{recoveryMethod:O.recoveryMethod,connectingWalletAddress:O.address,isUnifiedWallet:V,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:"SignRequestScreen",onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>n.signMessage(e),onSuccess:e=>r(e),onFailure:t,uiOptions:a?.uiOptions??{}}}),h("EmbeddedWalletConnectingScreen")})).finally((()=>{u.current=!1}))},signTypedData:async(e,a)=>{let n=C.current[S.current];if(!n)throw new m(`Smart wallet client for chain (eip155:${S.current}) not found`);return delete e.account,I({showWalletUIs:a?.uiOptions?.showWalletUIs})?(u.current=!0,await n.signTypedData(e).finally((()=>u.current=!1))):new Promise((async(r,t)=>{u.current=!0;let{entropyId:i,entropyIdVerifier:s}=y(W);x({connectWallet:{recoveryMethod:O.recoveryMethod,connectingWalletAddress:O.address,isUnifiedWallet:V,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:"SignRequestScreen",onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>n.signTypedData(e),onSuccess:e=>r(e),onFailure:t,uiOptions:a?.uiOptions??{}}}),h("EmbeddedWalletConnectingScreen")})).finally((()=>{u.current=!1}))},getChainId:A,chain:U,switchChain:B}}}},_=()=>{let{hideWalletUIs:e,openPrivyModal:a,isHeadlessSigning:n}=d(),{setModalData:r}=i(),{user:t}=s(),c=g(),m=o(t),u=!!m&&l(m);return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{let l=[];"calls"in s&&void 0!==s.calls?l=[...s.calls]:"to"in s&&(l=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let d=(await i.prepareUserOperation({calls:l,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0})).callData,p=c(f);if(p&&(d=p.appendDataSuffix({data:d})),n({showWalletUIs:o?.uiOptions?.showWalletUIs}))return e.current=!0,await i.sendTransaction({callData:d,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}).finally((()=>e.current=!1));let g=async()=>{if(!i.paymaster)return!1;let{paymasterData:e,paymasterAndData:a}=await i.prepareUserOperation({calls:l,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(a??e??0)>0};return new Promise((async(n,c)=>{e.current=!0;let{entropyId:p,entropyIdVerifier:P}=y(t);r({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,isUnifiedWallet:u,entropyId:p,entropyIdVerifier:P,onCompleteNavigateTo:"SendTransactionScreen",onFailure:()=>{}},sendTransaction:{transactionRequests:E({calls:l,chain:i.chain,maxPriorityFeePerGas:s.maxPriorityFeePerGas,maxFeePerGas:s.maxFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:i.account.address,entropyId:p,entropyIdVerifier:P,getIsSponsored:g,signOnly:!1,onConfirm:async()=>i.sendTransaction({callData:d,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),onSuccess:e=>n(e.hash),onFailure:c,uiOptions:o?.uiOptions??{}}}),a("EmbeddedWalletConnectingScreen")})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>n({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))):new Promise((async(n,l)=>{let{entropyId:c,entropyIdVerifier:d}=y(t);e.current=!0,r({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,isUnifiedWallet:u,entropyId:c,entropyIdVerifier:d,onCompleteNavigateTo:"SignRequestScreen",onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof s.message?s.message:s.message.raw.toString(),confirmAndSign:()=>i.signMessage(s),onSuccess:e=>n(e),onFailure:l,uiOptions:o?.uiOptions??{}}}),a("EmbeddedWalletConnectingScreen")})).finally((()=>{e.current=!1})),signTypedData:async(s,o)=>n({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signTypedData(s).finally((()=>e.current=!1))):new Promise((async(n,l)=>{e.current=!0;let{entropyId:c,entropyIdVerifier:d}=y(t);r({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,isUnifiedWallet:u,entropyId:c,entropyIdVerifier:d,onCompleteNavigateTo:"SignRequestScreen",onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:s,confirmAndSign:()=>i.signTypedData(s),onSuccess:e=>n(e),onFailure:l,uiOptions:o?.uiOptions??{}}}),a("EmbeddedWalletConnectingScreen")})).finally((()=>{e.current=!1}))})}};export{N as a,E as c,q as g,_ as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useContext as t,createContext as i,useState as r,useEffect as a}from"react";import{u as n,c as l}from"./
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useContext as t,createContext as i,useState as r,useEffect as a}from"react";import{u as n,c as l}from"./privy-context-DICqtyyT.mjs";import{u as o}from"./context-Bj4czVEP.mjs";import{u as s,a as c,n as m}from"./internal-context-Z-fyxadS.mjs";import{a as d}from"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import{u as p,g,a as f}from"./smart-wallets-B8GvSECb.mjs";import{u}from"./useWallets-CS_W9ciB.mjs";import"@privy-io/are-addresses-equal";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"viem";import"./PrivyPluginContext-2QN2dVUw.mjs";import"permissionless";import"permissionless/accounts";import"permissionless/clients/pimlico";import"viem/account-abstraction";let h=/*#__PURE__*/i({client:void 0,getClientForChain:m});const C=({config:t,children:i})=>/*#__PURE__*/e(y,{config:t,children:/*#__PURE__*/e(W,{children:i})}),w=()=>{let{client:e,getClientForChain:i}=t(h);return{client:e,getClientForChain:i}};let y=({config:t,children:i})=>{let{appId:m}=s(),{chains:f,defaultChain:h,rpcConfig:C,smartWallets:w}=o(),{wallets:y}=u(),{user:W}=n(),[F,x]=r(),{wrapSmartAccountClientWithUIs:j}=p(),P=l(W),I=d(y,P?.address);a((()=>{(async()=>{if(!w?.enabled)return;let e=w.configuredNetworks.find((e=>e.chainId===`eip155:${h.id}`))?h:f.find((e=>w.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new c("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");x(await g({chain:e,privyAppId:m,paymasterContext:t?.paymasterContext,rpcConfig:C,account:P,signer:await(I?.getEthereumProvider()),user:W,smartWalletsConfig:w}))})()}),[!!w?.enabled,!!W?.smartWallet,!!I,!!P]);/*#__PURE__*/return e(v.Provider,{value:{client:F,config:t,getClientForChain:async({id:e})=>{let i=await g({chain:f.find((t=>t.id===e)),privyAppId:m,paymasterContext:t?.paymasterContext,rpcConfig:C,account:P,signer:await(I?.getEthereumProvider()),user:W,smartWalletsConfig:w});if(!i)throw new c(`Failed to create smart wallet client for chain id: ${e}`);return j(i)}},children:i})},v=/*#__PURE__*/i({client:void 0,config:void 0,getClientForChain:m}),W=({children:i})=>{let{smartWallets:r}=o(),{client:l,config:c,getClientForChain:m}=(()=>{let{client:e,config:i,getClientForChain:r}=t(v);return{client:e,config:i,getClientForChain:r}})(),{wrapSmartAccountClient:d}=f({clientConfig:c,smartWalletsConfig:r}),{user:p}=n(),{generateSiweMessageForSmartWallet:g,linkSmartWallet:u,hideWalletUIs:C}=s();return a((()=>{(async()=>{if(l&&p&&!p?.smartWallet&&r?.enabled)try{let e=await g({address:l.account.address,chainId:`eip155:${l.chain.id}`});C.current=!0;let t=await l.signMessage({message:e});await u({signature:t,message:e,smartWalletType:r.smartWalletType,smartWalletVersion:r.smartWalletVersion})}catch(e){console.error("Error creating smart wallet:",e)}finally{C.current=!1}})()}),[!!l,!!p?.smartWallet,!!r?.enabled]),/*#__PURE__*/e(h.Provider,{value:{client:p?.smartWallet&&l?d(l):void 0,getClientForChain:m},children:i})};export{C as SmartWalletsProvider,w as useSmartWallets};
|
package/dist/esm/solana.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback as e}from"react";import{b as t,i as n,S as s,p as i,e as r,f as o}from"./usePrivy-DAnfSvB5.mjs";import{u as l}from"./context-Cw2-86-G.mjs";import{a as c}from"./events-context-CI0iqAXA.mjs";import{u as d}from"./internal-context-Z-fyxadS.mjs";import{u as h}from"./get-is-unified-wallet-CQc-E5dS.mjs";import{a as p}from"./PrivyPluginContext-2QN2dVUw.mjs";import{pipe as g,createTransactionMessage as f,setTransactionMessageFeePayerSigner as m,setTransactionMessageLifetimeUsingBlockhash as v,appendTransactionMessageInstructions as y,compileTransaction as b,getTransactionEncoder as w,address as P,setTransactionMessageFeePayer as j,blockhash as _,getTransactionDecoder as S}from"@solana/kit";import{f as C,s as W,g as O}from"./useSolanaRpcClient-C2WlA-Ah.mjs";import{S as T,g as A}from"./useWallets-DpbBw4Vl.mjs";export{a as useStandardWallets,u as useWallets}from"./useWallets-DpbBw4Vl.mjs";import{base58 as E,base64 as k}from"@scure/base";import{getAddMemoInstruction as M}from"@solana-program/memo";export{a as useExportWallet,u as useFundWallet}from"./use-export-wallet-NF9h_lS_.mjs";import{S as x,c as U,W as R}from"./use-export-wallet-Bd5Sg5V-.mjs";import{getWallets as q}from"@wallet-standard/app";import{UniversalProvider as F}from"@walletconnect/universal-provider";import{isMobile as I}from"react-device-detect";import"@privy-io/js-sdk-core";import"./useWallets-2_uCkhA8.mjs";import"viem";import"react/jsx-runtime";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"eventemitter3";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"viem/utils";const K=e=>{let t,{get:n,on:s}=q(),i=e?.shouldAutoConnect??!0,a=new x(new Me,i),r=new Map,o=[];function l(...e){e.forEach((e=>{!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet||r.has(e.name))&&e.chains.some((e=>"string"==typeof e&&e.startsWith("solana:")))&&r.set(e.name,e)})),o=Array.from(r.values()).map((e=>new x(e,i))).concat(a),t?.(o)}function c(...e){Array.from(r.values()).forEach((t=>!e.includes(t)&&r.delete(t.name))),o=Array.from(r.values()).map((e=>new x(e,i))).concat(a),t?.(o)}let d=[s("register",l),s("unregister",c)];return l(...n()),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{d[0]||(d[0]=s("register",l)),d[1]||(d[1]=s("unregister",c))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>o}};function N(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var V=0;function D(e){return"__private_"+V+++"_"+e}var z=/*#__PURE__*/D("_address"),B=/*#__PURE__*/D("_publicKey"),J=/*#__PURE__*/D("_chains"),L=/*#__PURE__*/D("_features"),Y=/*#__PURE__*/D("_label"),H=/*#__PURE__*/D("_icon");class G{get address(){return N(this,z)[z]}get publicKey(){return N(this,B)[B].slice()}get chains(){return N(this,J)[J].slice()}get features(){return N(this,L)[L].slice()}get label(){return N(this,Y)[Y]}get icon(){return N(this,H)[H]}constructor({address:e,publicKey:t,label:n,icon:s}){Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),N(this,z)[z]=e,N(this,B)[B]=t,N(this,J)[J]=T,N(this,L)[L]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],N(this,Y)[Y]=n,N(this,H)[H]=s}}function Q(e){if("string"==typeof e)return E.decode(e);if(e instanceof Uint8Array)return e;let t=e.signature;return"string"==typeof t?E.decode(t):t}function Z(e){if("string"==typeof e){try{return E.decode(e)}catch{}return k.decode(e)}if(e instanceof Uint8Array)return e;let t=e.transaction??e.signature;if(!t)throw Error("Invalid result from signTransaction or signAndSendTransaction attempt");if("string"==typeof t){try{return E.decode(t)}catch{}return k.decode(t)}return t}function $(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var X=0;function ee(e){return"__private_"+X+++"_"+e}let te="solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",ne="solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";var se=/*#__PURE__*/ee("_listeners"),ie=/*#__PURE__*/ee("_version"),ae=/*#__PURE__*/ee("_name"),re=/*#__PURE__*/ee("_icon"),oe=/*#__PURE__*/ee("_provider"),le=/*#__PURE__*/ee("_accounts"),ce=/*#__PURE__*/ee("_privyAppName"),de=/*#__PURE__*/ee("_walletConnectCloudProjectId"),ue=/*#__PURE__*/ee("_walletEntry"),he=/*#__PURE__*/ee("_onDisplayUriCallback"),pe=/*#__PURE__*/ee("_providerEventListeners"),ge=/*#__PURE__*/ee("_on"),fe=/*#__PURE__*/ee("_emit"),me=/*#__PURE__*/ee("_off"),ve=/*#__PURE__*/ee("_connected"),ye=/*#__PURE__*/ee("_disconnected"),be=/*#__PURE__*/ee("_connect"),we=/*#__PURE__*/ee("_disconnect"),Pe=/*#__PURE__*/ee("_signMessage"),je=/*#__PURE__*/ee("_signAndSendTransaction"),_e=/*#__PURE__*/ee("_signTransaction"),Se=/*#__PURE__*/ee("_getOrCreateProvider"),Ce=/*#__PURE__*/ee("_getOrCreateSession"),We=/*#__PURE__*/ee("_restoreSession"),Oe=/*#__PURE__*/ee("_addProviderEventListener"),Te=/*#__PURE__*/ee("_destroySession"),Ae=/*#__PURE__*/ee("_makeRpcRequest"),Ee=/*#__PURE__*/ee("_onDisplayUri"),ke=/*#__PURE__*/ee("_onSessionDelete");class Me{get version(){return $(this,ie)[ie]}get name(){return $(this,ae)[ae]}get icon(){return $(this,re)[re]}get chains(){return T.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:$(this,be)[be]},"standard:disconnect":{version:"1.0.0",disconnect:$(this,we)[we]},"standard:events":{version:"1.0.0",on:$(this,ge)[ge]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:$(this,je)[je]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:$(this,_e)[_e]},"solana:signMessage":{version:"1.0.0",signMessage:$(this,Pe)[Pe]}}}get accounts(){return $(this,le)[le].slice()}get isWalletConnectSolana(){return!0}async initialize({walletConnectCloudProjectId:e,privyAppName:t}){U.debug("Initializing WalletConnect Solana provider"),$(this,de)[de]=e,$(this,ce)[ce]=t,await $(this,Se)[Se](),await $(this,We)[We]()}setWalletEntry(e,t){$(this,ue)[ue]=e,$(this,he)[he]=t}constructor(){Object.defineProperty(this,fe,{value:xe}),Object.defineProperty(this,me,{value:Ue}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,de,{writable:!0,value:void 0}),Object.defineProperty(this,ue,{writable:!0,value:void 0}),Object.defineProperty(this,he,{writable:!0,value:void 0}),Object.defineProperty(this,pe,{writable:!0,value:void 0}),Object.defineProperty(this,ge,{writable:!0,value:void 0}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),Object.defineProperty(this,ye,{writable:!0,value:void 0}),Object.defineProperty(this,be,{writable:!0,value:void 0}),Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Pe,{writable:!0,value:void 0}),Object.defineProperty(this,je,{writable:!0,value:void 0}),Object.defineProperty(this,_e,{writable:!0,value:void 0}),Object.defineProperty(this,Se,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Oe,{writable:!0,value:void 0}),Object.defineProperty(this,Te,{writable:!0,value:void 0}),Object.defineProperty(this,Ae,{writable:!0,value:void 0}),Object.defineProperty(this,Ee,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),$(this,se)[se]={},$(this,ie)[ie]="1.0.0",$(this,ae)[ae]="WalletConnect",$(this,re)[re]=R,$(this,oe)[oe]=null,$(this,le)[le]=[],$(this,ce)[ce]="",$(this,de)[de]="",$(this,pe)[pe]=new Map,$(this,ge)[ge]=(e,t)=>($(this,se)[se][e]?.push(t)||($(this,se)[se][e]=[t]),()=>$(this,me)[me](e,t)),$(this,ve)[ve]=e=>{$(this,ae)[ae]=$(this,oe)[oe]?.session?.peer?.metadata?.name||$(this,ue)[ue]?.name||"WalletConnect",$(this,re)[re]=$(this,oe)[oe]?.session?.peer?.metadata?.icons?.[0]||$(this,ue)[ue]?.image_url?.sm||$(this,re)[re],$(this,le)[le]=e.map((e=>new G({address:e,publicKey:E.decode(e),label:$(this,ae)[ae],icon:$(this,re)[re]}))),$(this,fe)[fe]("change",{accounts:this.accounts})},$(this,ye)[ye]=()=>{$(this,le)[le]=[],$(this,fe)[fe]("change",{accounts:this.accounts})},$(this,be)[be]=async()=>(this.accounts.length||await $(this,Ce)[Ce](),{accounts:this.accounts}),$(this,we)[we]=async()=>{await $(this,Te)[Te](),$(this,fe)[fe]("change",{accounts:this.accounts})},$(this,Pe)[Pe]=async(...e)=>{let t=[];for(let{account:n,message:s}of e){let e=E.encode(s);try{let i=await $(this,Ae)[Ae]("solana_signMessage",{message:e,pubkey:n.address},qe("solana:mainnet"));t.push({signedMessage:s,signature:Q(i)})}catch(i){if(i?.message?.includes("Missing or invalid")){let i=await $(this,Ae)[Ae]("solana:signMessage",{message:e,pubkey:n.address},qe("solana:mainnet"));t.push({signedMessage:s,signature:Q(i)})}throw i}}return t},$(this,je)[je]=async(...e)=>{let t=[];for(let{account:n,chain:s,transaction:i,options:a}of e){let e=k.encode(i);try{let i=await $(this,Ae)[Ae]("solana_signAndSendTransaction",{transaction:e,pubkey:n.address,sendOptions:a},qe(s));t.push({signature:Q(i)})}catch(i){if(i?.message?.includes("Missing or invalid")){let i=await $(this,Ae)[Ae]("solana:signAndSendTransaction",{transaction:e,pubkey:n.address,sendOptions:a},qe(s));t.push({signature:Q(i)})}}}return t},$(this,_e)[_e]=async(...e)=>{let t=[];for(let{account:n,chain:s,transaction:i}of e){let e=k.encode(i);try{let i=await $(this,Ae)[Ae]("solana_signTransaction",{transaction:e,pubkey:n.address},qe(s||"solana:mainnet"));t.push({signedTransaction:Z(i)})}catch(i){if(i?.message?.includes("Missing or invalid")){let i=await $(this,Ae)[Ae]("solana:signTransaction",{transaction:e,pubkey:n.address},qe(s||"solana:mainnet"));t.push({signedTransaction:Z(i)})}}}return t},$(this,Se)[Se]=async()=>{if($(this,oe)[oe])return $(this,oe)[oe];if(!$(this,de)[de])throw Error("WalletConnect Cloud Project ID is required");return $(this,oe)[oe]=await F.init({projectId:$(this,de)[de],metadata:{name:$(this,ce)[ce],description:$(this,ce)[ce],url:window.location.origin,icons:[]},relayUrl:"wss://relay.walletconnect.com",telemetryEnabled:!1}),$(this,Oe)[Oe]("display_uri",$(this,Ee)[Ee]),$(this,Oe)[Oe]("session_delete",$(this,ke)[ke]),$(this,Oe)[Oe]("session_ping",(()=>{})),$(this,Oe)[Oe]("session_event",(()=>{})),$(this,Oe)[Oe]("session_update",(()=>{})),$(this,oe)[oe]},$(this,Ce)[Ce]=async()=>{if(!$(this,oe)[oe])throw Error("WalletConnectSolana: Failed to get or create session. Provider not initialized");if($(this,oe)[oe].session)return U.debug("Using existing Solana WalletConnect session"),$(this,oe)[oe].session;let e=["solana_signMessage","solana_signTransaction","solana_signAndSendTransaction"];U.debug("Creating new Solana WalletConnect session",{requestedChains:["mainnet","devnet"],requestedMethods:e.length});let t=await $(this,oe)[oe].connect({optionalNamespaces:{solana:{chains:[te,ne],methods:e,events:[]}}});if(!t)throw Error("WalletConnectSolana: Failed to create new session");let n=Re(t);return U.debug("Solana WalletConnect session created",{accountsCount:n.length,peerName:t.peer?.metadata?.name}),$(this,ve)[ve](n),t},$(this,We)[We]=async()=>{let e=$(this,oe)[oe]?.session;if(U.debug("Checking for existing Solana WalletConnect session",{hasSession:!!e}),!e)return void U.debug("No existing Solana WalletConnect session found");let t=!!e.namespaces?.solana,n=Object.keys(e.namespaces||{}).join(", ");if(!t)return U.debug("Found non-Solana WalletConnect session, disconnecting",{namespaces:n}),await($(this,oe)[oe]?.disconnect().catch((e=>U.error("Error disconnecting non-Solana session",e)))),void($(this,oe)[oe].session=void 0);let s=Re(e);U.debug("Restored Solana WalletConnect session",{accountsCount:s.length,peerName:e.peer?.metadata?.name}),$(this,ve)[ve](s)},$(this,Oe)[Oe]=(e,t)=>{let n=$(this,pe)[pe].get(e);n&&($(this,oe)[oe]?.off(e,n),$(this,pe)[pe].delete(e)),$(this,oe)[oe]?.on(e,t),$(this,pe)[pe].set(e,t)},$(this,Te)[Te]=async()=>{U.debug("Destroying Solana WalletConnect session");try{if($(this,oe)[oe]?.session&&await($(this,oe)[oe]?.disconnect().catch((e=>U.error("Error disconnecting Solana WalletConnect session",e)))),$(this,oe)[oe]?.client){let e=$(this,oe)[oe].client.proposal.getAll();await Promise.allSettled(e.map((e=>$(this,oe)[oe]?.client.proposal.delete(e.id,{code:6e3,message:"User disconnected"}))));let t=$(this,oe)[oe].client.pairing.getAll();await Promise.allSettled(t.map((e=>$(this,oe)[oe]?.client.pairing.delete(e.topic,{code:6e3,message:"User disconnected"}))))}U.debug("Solana WalletConnect session destroyed"),$(this,ye)[ye]()}catch(e){U.error("Error destroying Solana WalletConnect session",e)}},$(this,Ae)[Ae]=async(e,t,n)=>{U.debug("Solana WalletConnect RPC request",{method:e,chainId:n});try{let s=await $(this,oe)[oe].request({method:e,params:t},n);return U.debug("Solana WalletConnect RPC response",{method:e,success:!0}),s}catch(t){if(U.error("Solana WalletConnect RPC error",t,{method:e,chainId:n}),t?.message?.includes("without any listeners")&&t.result)return U.debug("Ignoring WalletConnect listener warning, result available",{method:e}),t.result;if(t?.message?.includes("session topic does not exist in keychain"))throw Error("WalletConnectSolana: Wallet connection lost. Please reconnect.");throw t}},$(this,Ee)[Ee]=e=>{if(U.debug("Solana WalletConnect display_uri received",{isMobile:I,hasWalletEntry:!!$(this,ue)[ue]}),I&&$(this,ue)[ue]){let{redirect:n}=t(e,$(this,ue)[ue]),s=n.startsWith("http");return U.debug("Opening Solana mobile wallet deep link",{wallet:$(this,ue)[ue].name,linkType:s?"universal":"native"}),void(null==$(this,he)[he]||$(this,he)[he].call(this,{native:n,universal:n}))}U.debug("Displaying Solana WalletConnect QR code"),null==$(this,he)[he]||$(this,he)[he].call(this,{native:e,universal:void 0})},$(this,ke)[ke]=()=>{U.debug("Solana WalletConnect session deleted"),$(this,ye)[ye]()}}}function xe(e,...t){$(this,se)[se][e]?.forEach((e=>e.apply(null,t)))}function Ue(e,t){$(this,se)[se][e]=$(this,se)[se][e]?.filter((e=>t!==e))}function Re(e){return e.namespaces.solana.accounts.reduce(((e,t)=>{let n=t.split(":").at(-1);return e.includes(n)||e.push(n),e}),[])}function qe(e){switch(e){case"solana:mainnet":return te;case"solana:devnet":return ne;default:return e}}const Fe=()=>{let{user:t}=h(),{client:s,refreshSessionAndUser:i,initializeWalletProxy:a}=d(),r=c(),o=l();return{importWallet:e((({privateKey:e,additionalSigners:l})=>n({getAccessToken:()=>s.getAccessToken(),user:t,initializeWalletProxy:a,refreshSessionAndUser:i,emitPrivyEvent:r,appConfig:o},{privateKey:e,chainType:"solana",additionalSigners:l})),[t,s,i,a,r,o])}};var Ie={id:s,getSolanaRpcClient:O,createTransactionFromRelayQuote:async function({solanaClient:e,quote:t,source:n}){let s=t.steps[0]?.items?.[0];if(!s)throw Error("Invalid quote");let i=s.data.instructions.map((({keys:e,programId:t,data:n})=>({accounts:e.map((({pubkey:e,isSigner:t,isWritable:n})=>({address:e,role:t&&n?3:t&&!n?2:!t&&n?1:0}))),programAddress:t,data:new Uint8Array(Buffer.from(n,"hex"))}))),{value:a}=await e.rpc.getLatestBlockhash().send(),r=g(f({version:0}),(e=>m({address:n},e)),(e=>v(a,e)),(e=>y(i,e)),(e=>b(e)));return new Uint8Array(w().encode(r))},simulateTransaction:W,getAddressFromBuffer:A,fetchTransactionEstimatedFees:C},Ke=()=>p(Ie);var Ne={id:r,createSiwsMemoTransaction:({address:e,nonce:t})=>{let n=M({memo:i({address:P(e),nonce:t})});return g(f({version:"legacy"}),(t=>j(P(e),t)),(e=>v({blockhash:_("GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN"),lastValidBlockHeight:0n},e)),(e=>y([n],e)),(e=>b(e)),(e=>k.encode(Uint8Array.from(w().encode(e)))))},getSignatureFromTransaction:(e,t)=>{let n=S().decode(e).signatures[t];if(!n)throw Error(`Missing transaction signature for address: ${t}`);return k.encode(n)}},Ve=()=>p(Ne);function De(){let{create:e}=o();return{createWallet:async t=>{t&&"target"in t&&t&&(t=void 0);let{account:n}=await e({chainType:"solana",options:t});return{wallet:n}}}}function ze(){return{signMessage:async function(...e){let t=[];for(let n of e)t.push(await n.wallet.signMessage({...n,options:n.options}));return 1===e.length?t[0]:[...t]}}}function Be(){return{signTransaction:async function(...e){let t=[];for(let n of e)t.push(await n.wallet.signTransaction({...n,chain:n.chain||"solana:mainnet"}));return 1===e.length?t[0]:[...t]}}}function Je(){return{signAndSendTransaction:async function(...e){let t=[];for(let n of e)t.push(await n.wallet.signAndSendTransaction({...n,chain:n.chain||"solana:mainnet"}));return 1===e.length?t[0]:[...t]}}}export{x as SolanaAdapterConnector,K as toSolanaWalletConnectors,De as useCreateWallet,Fe as useImportWallet,Je as useSignAndSendTransaction,ze as useSignMessage,Be as useSignTransaction,Ke as useSolanaFundingPlugin,Ve as useSolanaLedgerPlugin};
|
|
1
|
+
import{useCallback as e}from"react";import{b as t,i as n,S as s,p as i,e as r,f as o}from"./usePrivy-DDB15S8o.mjs";import{u as l}from"./context-Bj4czVEP.mjs";import{a as c}from"./events-context-CI0iqAXA.mjs";import{u as d}from"./internal-context-Z-fyxadS.mjs";import{u as h}from"./privy-context-DICqtyyT.mjs";import{a as p}from"./PrivyPluginContext-2QN2dVUw.mjs";import{pipe as g,createTransactionMessage as f,setTransactionMessageFeePayerSigner as m,setTransactionMessageLifetimeUsingBlockhash as v,appendTransactionMessageInstructions as y,compileTransaction as b,getTransactionEncoder as w,address as P,setTransactionMessageFeePayer as j,blockhash as _,getTransactionDecoder as S}from"@solana/kit";import{f as C,s as W,g as O}from"./useSolanaRpcClient-B--BKNG3.mjs";import{S as T,g as A}from"./useWallets-CJvLEQqE.mjs";export{a as useStandardWallets,u as useWallets}from"./useWallets-CJvLEQqE.mjs";import{base58 as E,base64 as k}from"@scure/base";import{getAddMemoInstruction as M}from"@solana-program/memo";export{a as useExportWallet,u as useFundWallet}from"./use-export-wallet-D1P_g8O0.mjs";import{S as x,c as U,W as R}from"./use-export-wallet-DVyBljMT.mjs";import{getWallets as q}from"@wallet-standard/app";import{UniversalProvider as I}from"@walletconnect/universal-provider";import{isMobile as F}from"react-device-detect";import"@privy-io/js-sdk-core";import"./useWallets-CS_W9ciB.mjs";import"viem";import"react/jsx-runtime";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"eventemitter3";import"./use-sign-with-user-signer-Do5Oi_rb.mjs";import"viem/utils";const K=e=>{let t,{get:n,on:s}=q(),i=e?.shouldAutoConnect??!0,a=new x(new Me,i),r=new Map,o=[];function l(...e){e.forEach((e=>{!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet||r.has(e.name))&&e.chains.some((e=>"string"==typeof e&&e.startsWith("solana:")))&&r.set(e.name,e)})),o=Array.from(r.values()).map((e=>new x(e,i))).concat(a),t?.(o)}function c(...e){Array.from(r.values()).forEach((t=>!e.includes(t)&&r.delete(t.name))),o=Array.from(r.values()).map((e=>new x(e,i))).concat(a),t?.(o)}let d=[s("register",l),s("unregister",c)];return l(...n()),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{d[0]||(d[0]=s("register",l)),d[1]||(d[1]=s("unregister",c))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>o}};function N(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var V=0;function D(e){return"__private_"+V+++"_"+e}var z=/*#__PURE__*/D("_address"),B=/*#__PURE__*/D("_publicKey"),J=/*#__PURE__*/D("_chains"),L=/*#__PURE__*/D("_features"),Y=/*#__PURE__*/D("_label"),H=/*#__PURE__*/D("_icon");class Q{get address(){return N(this,z)[z]}get publicKey(){return N(this,B)[B].slice()}get chains(){return N(this,J)[J].slice()}get features(){return N(this,L)[L].slice()}get label(){return N(this,Y)[Y]}get icon(){return N(this,H)[H]}constructor({address:e,publicKey:t,label:n,icon:s}){Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),N(this,z)[z]=e,N(this,B)[B]=t,N(this,J)[J]=T,N(this,L)[L]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],N(this,Y)[Y]=n,N(this,H)[H]=s}}function Z(e){if("string"==typeof e)return E.decode(e);if(e instanceof Uint8Array)return e;let t=e.signature;return"string"==typeof t?E.decode(t):t}function G(e){if("string"==typeof e){try{return E.decode(e)}catch{}return k.decode(e)}if(e instanceof Uint8Array)return e;let t=e.transaction??e.signature;if(!t)throw Error("Invalid result from signTransaction or signAndSendTransaction attempt");if("string"==typeof t){try{return E.decode(t)}catch{}return k.decode(t)}return t}function $(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var X=0;function ee(e){return"__private_"+X+++"_"+e}let te="solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",ne="solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";var se=/*#__PURE__*/ee("_listeners"),ie=/*#__PURE__*/ee("_version"),ae=/*#__PURE__*/ee("_name"),re=/*#__PURE__*/ee("_icon"),oe=/*#__PURE__*/ee("_provider"),le=/*#__PURE__*/ee("_accounts"),ce=/*#__PURE__*/ee("_privyAppName"),de=/*#__PURE__*/ee("_walletConnectCloudProjectId"),ue=/*#__PURE__*/ee("_walletEntry"),he=/*#__PURE__*/ee("_onDisplayUriCallback"),pe=/*#__PURE__*/ee("_providerEventListeners"),ge=/*#__PURE__*/ee("_on"),fe=/*#__PURE__*/ee("_emit"),me=/*#__PURE__*/ee("_off"),ve=/*#__PURE__*/ee("_connected"),ye=/*#__PURE__*/ee("_disconnected"),be=/*#__PURE__*/ee("_connect"),we=/*#__PURE__*/ee("_disconnect"),Pe=/*#__PURE__*/ee("_signMessage"),je=/*#__PURE__*/ee("_signAndSendTransaction"),_e=/*#__PURE__*/ee("_signTransaction"),Se=/*#__PURE__*/ee("_getOrCreateProvider"),Ce=/*#__PURE__*/ee("_getOrCreateSession"),We=/*#__PURE__*/ee("_restoreSession"),Oe=/*#__PURE__*/ee("_addProviderEventListener"),Te=/*#__PURE__*/ee("_destroySession"),Ae=/*#__PURE__*/ee("_makeRpcRequest"),Ee=/*#__PURE__*/ee("_onDisplayUri"),ke=/*#__PURE__*/ee("_onSessionDelete");class Me{get version(){return $(this,ie)[ie]}get name(){return $(this,ae)[ae]}get icon(){return $(this,re)[re]}get chains(){return T.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:$(this,be)[be]},"standard:disconnect":{version:"1.0.0",disconnect:$(this,we)[we]},"standard:events":{version:"1.0.0",on:$(this,ge)[ge]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:$(this,je)[je]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:$(this,_e)[_e]},"solana:signMessage":{version:"1.0.0",signMessage:$(this,Pe)[Pe]}}}get accounts(){return $(this,le)[le].slice()}get isWalletConnectSolana(){return!0}async initialize({walletConnectCloudProjectId:e,privyAppName:t}){U.debug("Initializing WalletConnect Solana provider"),$(this,de)[de]=e,$(this,ce)[ce]=t,await $(this,Se)[Se](),await $(this,We)[We]()}setWalletEntry(e,t){$(this,ue)[ue]=e,$(this,he)[he]=t}constructor(){Object.defineProperty(this,fe,{value:xe}),Object.defineProperty(this,me,{value:Ue}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,de,{writable:!0,value:void 0}),Object.defineProperty(this,ue,{writable:!0,value:void 0}),Object.defineProperty(this,he,{writable:!0,value:void 0}),Object.defineProperty(this,pe,{writable:!0,value:void 0}),Object.defineProperty(this,ge,{writable:!0,value:void 0}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),Object.defineProperty(this,ye,{writable:!0,value:void 0}),Object.defineProperty(this,be,{writable:!0,value:void 0}),Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Pe,{writable:!0,value:void 0}),Object.defineProperty(this,je,{writable:!0,value:void 0}),Object.defineProperty(this,_e,{writable:!0,value:void 0}),Object.defineProperty(this,Se,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Oe,{writable:!0,value:void 0}),Object.defineProperty(this,Te,{writable:!0,value:void 0}),Object.defineProperty(this,Ae,{writable:!0,value:void 0}),Object.defineProperty(this,Ee,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),$(this,se)[se]={},$(this,ie)[ie]="1.0.0",$(this,ae)[ae]="WalletConnect",$(this,re)[re]=R,$(this,oe)[oe]=null,$(this,le)[le]=[],$(this,ce)[ce]="",$(this,de)[de]="",$(this,pe)[pe]=new Map,$(this,ge)[ge]=(e,t)=>($(this,se)[se][e]?.push(t)||($(this,se)[se][e]=[t]),()=>$(this,me)[me](e,t)),$(this,ve)[ve]=e=>{$(this,ae)[ae]=$(this,oe)[oe]?.session?.peer?.metadata?.name||$(this,ue)[ue]?.name||"WalletConnect",$(this,re)[re]=$(this,oe)[oe]?.session?.peer?.metadata?.icons?.[0]||$(this,ue)[ue]?.image_url?.sm||$(this,re)[re],$(this,le)[le]=e.map((e=>new Q({address:e,publicKey:E.decode(e),label:$(this,ae)[ae],icon:$(this,re)[re]}))),$(this,fe)[fe]("change",{accounts:this.accounts})},$(this,ye)[ye]=()=>{$(this,le)[le]=[],$(this,fe)[fe]("change",{accounts:this.accounts})},$(this,be)[be]=async()=>(this.accounts.length||await $(this,Ce)[Ce](),{accounts:this.accounts}),$(this,we)[we]=async()=>{await $(this,Te)[Te](),$(this,fe)[fe]("change",{accounts:this.accounts})},$(this,Pe)[Pe]=async(...e)=>{let t=[];for(let{account:n,message:s}of e){let e=E.encode(s);try{let i=await $(this,Ae)[Ae]("solana_signMessage",{message:e,pubkey:n.address},qe("solana:mainnet"));t.push({signedMessage:s,signature:Z(i)})}catch(i){if(i?.message?.includes("Missing or invalid")){let i=await $(this,Ae)[Ae]("solana:signMessage",{message:e,pubkey:n.address},qe("solana:mainnet"));t.push({signedMessage:s,signature:Z(i)})}throw i}}return t},$(this,je)[je]=async(...e)=>{let t=[];for(let{account:n,chain:s,transaction:i,options:a}of e){let e=k.encode(i);try{let i=await $(this,Ae)[Ae]("solana_signAndSendTransaction",{transaction:e,pubkey:n.address,sendOptions:a},qe(s));t.push({signature:Z(i)})}catch(i){if(i?.message?.includes("Missing or invalid")){let i=await $(this,Ae)[Ae]("solana:signAndSendTransaction",{transaction:e,pubkey:n.address,sendOptions:a},qe(s));t.push({signature:Z(i)})}}}return t},$(this,_e)[_e]=async(...e)=>{let t=[];for(let{account:n,chain:s,transaction:i}of e){let e=k.encode(i);try{let i=await $(this,Ae)[Ae]("solana_signTransaction",{transaction:e,pubkey:n.address},qe(s||"solana:mainnet"));t.push({signedTransaction:G(i)})}catch(i){if(i?.message?.includes("Missing or invalid")){let i=await $(this,Ae)[Ae]("solana:signTransaction",{transaction:e,pubkey:n.address},qe(s||"solana:mainnet"));t.push({signedTransaction:G(i)})}}}return t},$(this,Se)[Se]=async()=>{if($(this,oe)[oe])return $(this,oe)[oe];if(!$(this,de)[de])throw Error("WalletConnect Cloud Project ID is required");return $(this,oe)[oe]=await I.init({projectId:$(this,de)[de],metadata:{name:$(this,ce)[ce],description:$(this,ce)[ce],url:window.location.origin,icons:[]},relayUrl:"wss://relay.walletconnect.com",telemetryEnabled:!1}),$(this,Oe)[Oe]("display_uri",$(this,Ee)[Ee]),$(this,Oe)[Oe]("session_delete",$(this,ke)[ke]),$(this,Oe)[Oe]("session_ping",(()=>{})),$(this,Oe)[Oe]("session_event",(()=>{})),$(this,Oe)[Oe]("session_update",(()=>{})),$(this,oe)[oe]},$(this,Ce)[Ce]=async()=>{if(!$(this,oe)[oe])throw Error("WalletConnectSolana: Failed to get or create session. Provider not initialized");if($(this,oe)[oe].session)return U.debug("Using existing Solana WalletConnect session"),$(this,oe)[oe].session;let e=["solana_signMessage","solana_signTransaction","solana_signAndSendTransaction"];U.debug("Creating new Solana WalletConnect session",{requestedChains:["mainnet","devnet"],requestedMethods:e.length});let t=await $(this,oe)[oe].connect({optionalNamespaces:{solana:{chains:[te,ne],methods:e,events:[]}}});if(!t)throw Error("WalletConnectSolana: Failed to create new session");let n=Re(t);return U.debug("Solana WalletConnect session created",{accountsCount:n.length,peerName:t.peer?.metadata?.name}),$(this,ve)[ve](n),t},$(this,We)[We]=async()=>{let e=$(this,oe)[oe]?.session;if(U.debug("Checking for existing Solana WalletConnect session",{hasSession:!!e}),!e)return void U.debug("No existing Solana WalletConnect session found");let t=!!e.namespaces?.solana,n=Object.keys(e.namespaces||{}).join(", ");if(!t)return U.debug("Found non-Solana WalletConnect session, disconnecting",{namespaces:n}),await($(this,oe)[oe]?.disconnect().catch((e=>U.error("Error disconnecting non-Solana session",e)))),void($(this,oe)[oe].session=void 0);let s=Re(e);U.debug("Restored Solana WalletConnect session",{accountsCount:s.length,peerName:e.peer?.metadata?.name}),$(this,ve)[ve](s)},$(this,Oe)[Oe]=(e,t)=>{let n=$(this,pe)[pe].get(e);n&&($(this,oe)[oe]?.off(e,n),$(this,pe)[pe].delete(e)),$(this,oe)[oe]?.on(e,t),$(this,pe)[pe].set(e,t)},$(this,Te)[Te]=async()=>{U.debug("Destroying Solana WalletConnect session");try{if($(this,oe)[oe]?.session&&await($(this,oe)[oe]?.disconnect().catch((e=>U.error("Error disconnecting Solana WalletConnect session",e)))),$(this,oe)[oe]?.client){let e=$(this,oe)[oe].client.proposal.getAll();await Promise.allSettled(e.map((e=>$(this,oe)[oe]?.client.proposal.delete(e.id,{code:6e3,message:"User disconnected"}))));let t=$(this,oe)[oe].client.pairing.getAll();await Promise.allSettled(t.map((e=>$(this,oe)[oe]?.client.pairing.delete(e.topic,{code:6e3,message:"User disconnected"}))))}U.debug("Solana WalletConnect session destroyed"),$(this,ye)[ye]()}catch(e){U.error("Error destroying Solana WalletConnect session",e)}},$(this,Ae)[Ae]=async(e,t,n)=>{U.debug("Solana WalletConnect RPC request",{method:e,chainId:n});try{let s=await $(this,oe)[oe].request({method:e,params:t},n);return U.debug("Solana WalletConnect RPC response",{method:e,success:!0}),s}catch(t){if(U.error("Solana WalletConnect RPC error",t,{method:e,chainId:n}),t?.message?.includes("without any listeners")&&t.result)return U.debug("Ignoring WalletConnect listener warning, result available",{method:e}),t.result;if(t?.message?.includes("session topic does not exist in keychain"))throw Error("WalletConnectSolana: Wallet connection lost. Please reconnect.");throw t}},$(this,Ee)[Ee]=e=>{if(U.debug("Solana WalletConnect display_uri received",{isMobile:F,hasWalletEntry:!!$(this,ue)[ue]}),F&&$(this,ue)[ue]){let{redirect:n}=t(e,$(this,ue)[ue]),s=n.startsWith("http");return U.debug("Opening Solana mobile wallet deep link",{wallet:$(this,ue)[ue].name,linkType:s?"universal":"native"}),void(null==$(this,he)[he]||$(this,he)[he].call(this,{native:n,universal:n}))}U.debug("Displaying Solana WalletConnect QR code"),null==$(this,he)[he]||$(this,he)[he].call(this,{native:e,universal:void 0})},$(this,ke)[ke]=()=>{U.debug("Solana WalletConnect session deleted"),$(this,ye)[ye]()}}}function xe(e,...t){$(this,se)[se][e]?.forEach((e=>e.apply(null,t)))}function Ue(e,t){$(this,se)[se][e]=$(this,se)[se][e]?.filter((e=>t!==e))}function Re(e){return e.namespaces.solana.accounts.reduce(((e,t)=>{let n=t.split(":").at(-1);return e.includes(n)||e.push(n),e}),[])}function qe(e){switch(e){case"solana:mainnet":return te;case"solana:devnet":return ne;default:return e}}const Ie=()=>{let{user:t}=h(),{client:s,refreshSessionAndUser:i,initializeWalletProxy:a}=d(),r=c(),o=l();return{importWallet:e((({privateKey:e,additionalSigners:l})=>n({getAccessToken:()=>s.getAccessToken(),user:t,initializeWalletProxy:a,refreshSessionAndUser:i,emitPrivyEvent:r,appConfig:o},{privateKey:e,chainType:"solana",additionalSigners:l})),[t,s,i,a,r,o])}};var Fe={id:s,getSolanaRpcClient:O,createTransactionFromRelayQuote:async function({solanaClient:e,quote:t,source:n}){let s=t.steps[0]?.items?.[0];if(!s)throw Error("Invalid quote");let i=s.data.instructions.map((({keys:e,programId:t,data:n})=>({accounts:e.map((({pubkey:e,isSigner:t,isWritable:n})=>({address:e,role:t&&n?3:t&&!n?2:!t&&n?1:0}))),programAddress:t,data:new Uint8Array(Buffer.from(n,"hex"))}))),{value:a}=await e.rpc.getLatestBlockhash().send(),r=g(f({version:0}),(e=>m({address:n},e)),(e=>v(a,e)),(e=>y(i,e)),(e=>b(e)));return new Uint8Array(w().encode(r))},simulateTransaction:W,getAddressFromBuffer:A,fetchTransactionEstimatedFees:C},Ke=()=>p(Fe);var Ne={id:r,createSiwsMemoTransaction:({address:e,nonce:t})=>{let n=M({memo:i({address:P(e),nonce:t})});return g(f({version:"legacy"}),(t=>j(P(e),t)),(e=>v({blockhash:_("GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN"),lastValidBlockHeight:0n},e)),(e=>y([n],e)),(e=>b(e)),(e=>k.encode(Uint8Array.from(w().encode(e)))))},getSignatureFromTransaction:(e,t)=>{let n=S().decode(e).signatures[t];if(!n)throw Error(`Missing transaction signature for address: ${t}`);return k.encode(n)}},Ve=()=>p(Ne);function De(){let{create:e}=o();return{createWallet:async t=>{t&&"target"in t&&t&&(t=void 0);let{account:n}=await e({chainType:"solana",options:t});return{wallet:n}}}}function ze(){return{signMessage:async function(...e){let t=[];for(let n of e)t.push(await n.wallet.signMessage({...n,options:n.options}));return 1===e.length?t[0]:[...t]}}}function Be(){return{signTransaction:async function(...e){let t=[];for(let n of e)t.push(await n.wallet.signTransaction({...n,chain:n.chain||"solana:mainnet"}));return 1===e.length?t[0]:[...t]}}}function Je(){return{signAndSendTransaction:async function(...e){let t=[];for(let n of e)t.push(await n.wallet.signAndSendTransaction({...n,chain:n.chain||"solana:mainnet"}));return 1===e.length?t[0]:[...t]}}}export{x as SolanaAdapterConnector,K as toSolanaWalletConnectors,De as useCreateWallet,Ie as useImportWallet,Je as useSignAndSendTransaction,ze as useSignMessage,Be as useSignTransaction,Ke as useSolanaFundingPlugin,Ve as useSolanaLedgerPlugin};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import{styled as
|
|
1
|
+
import{styled as o,keyframes as i}from"styled-components";import{d as t}from"./ModalHeader-DpkEBdQv.mjs";import{LinkButton as r}from"./LinkPasskeyScreen-CHPataTs.mjs";const e=o.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
gap: 12px;
|
|
5
5
|
padding-top: 24px;
|
|
6
6
|
padding-bottom: 24px;
|
|
7
|
-
`,n=
|
|
7
|
+
`,n=o.div`
|
|
8
8
|
width: 24px;
|
|
9
9
|
height: 24px;
|
|
10
10
|
display: flex;
|
|
@@ -14,13 +14,13 @@ import{styled as i,keyframes as o}from"styled-components";import{d as t}from"./M
|
|
|
14
14
|
svg {
|
|
15
15
|
border-radius: var(--privy-border-radius-sm);
|
|
16
16
|
}
|
|
17
|
-
`,a=
|
|
17
|
+
`,a=o.div`
|
|
18
18
|
display: flex;
|
|
19
19
|
flex-direction: column;
|
|
20
20
|
justify-content: center;
|
|
21
21
|
align-items: flex-start;
|
|
22
22
|
gap: 8px;
|
|
23
|
-
`,p=
|
|
23
|
+
`,p=o.div`
|
|
24
24
|
display: flex;
|
|
25
25
|
align-items: center;
|
|
26
26
|
gap: 4px;
|
|
@@ -33,9 +33,9 @@ import{styled as i,keyframes as o}from"styled-components";import{d as t}from"./M
|
|
|
33
33
|
&:focus-within {
|
|
34
34
|
border-color: var(--privy-color-accent);
|
|
35
35
|
}
|
|
36
|
-
`;
|
|
36
|
+
`;o.div`
|
|
37
37
|
font-size: 42px !important;
|
|
38
|
-
`;const s=
|
|
38
|
+
`;const s=o.input`
|
|
39
39
|
background-color: var(--privy-color-background);
|
|
40
40
|
width: 100%;
|
|
41
41
|
|
|
@@ -48,21 +48,21 @@ import{styled as i,keyframes as o}from"styled-components";import{d as t}from"./M
|
|
|
48
48
|
&& {
|
|
49
49
|
font-size: 26px;
|
|
50
50
|
}
|
|
51
|
-
`,d=
|
|
51
|
+
`,d=o(s)`
|
|
52
52
|
&& {
|
|
53
53
|
font-size: 42px;
|
|
54
54
|
}
|
|
55
|
-
`;
|
|
55
|
+
`;o.button`
|
|
56
56
|
cursor: pointer;
|
|
57
57
|
padding-left: 4px;
|
|
58
|
-
`;const c=
|
|
58
|
+
`;const c=o.div`
|
|
59
59
|
font-size: 18px;
|
|
60
|
-
`,l=
|
|
60
|
+
`,l=o.div`
|
|
61
61
|
font-size: 12px;
|
|
62
62
|
color: var(--privy-color-foreground-3);
|
|
63
63
|
// we need this container to maintain a static height if there's no content
|
|
64
64
|
height: 20px;
|
|
65
|
-
`;
|
|
65
|
+
`;o.div`
|
|
66
66
|
display: flex;
|
|
67
67
|
flex-direction: row;
|
|
68
68
|
line-height: 22px;
|
|
@@ -72,19 +72,19 @@ import{styled as i,keyframes as o}from"styled-components";import{d as t}from"./M
|
|
|
72
72
|
margin-right: 6px;
|
|
73
73
|
margin: auto;
|
|
74
74
|
}
|
|
75
|
-
`,
|
|
75
|
+
`,o(r)`
|
|
76
76
|
margin-top: 16px;
|
|
77
|
-
`;let x=
|
|
77
|
+
`;let x=i`
|
|
78
78
|
from {
|
|
79
79
|
opacity: 0;
|
|
80
80
|
}
|
|
81
81
|
to {
|
|
82
82
|
opacity: 1;
|
|
83
83
|
}
|
|
84
|
-
`;
|
|
84
|
+
`;o(t)`
|
|
85
85
|
border-radius: var(--privy-border-radius-md) !important;
|
|
86
86
|
animation: ${x} 0.3s ease-in-out;
|
|
87
|
-
`;const m=
|
|
87
|
+
`;const m=o.div``,f=o.a`
|
|
88
88
|
&& {
|
|
89
89
|
color: var(--privy-color-accent);
|
|
90
90
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/DevicePhoneMobileIcon";import i from"@heroicons/react/24/outline/FingerPrintIcon";import t from"@heroicons/react/24/outline/PhoneIcon";import a from"@heroicons/react/24/outline/ShieldCheckIcon";import{b as s,M as c,P as l,S as d}from"./ModalHeader-
|
|
1
|
+
import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/DevicePhoneMobileIcon";import i from"@heroicons/react/24/outline/FingerPrintIcon";import t from"@heroicons/react/24/outline/PhoneIcon";import a from"@heroicons/react/24/outline/ShieldCheckIcon";import{b as s,M as c,P as l,S as d}from"./ModalHeader-DpkEBdQv.mjs";import{S as h}from"./ScreenLayout-CyK-vOMq.mjs";import{A as m,C as p,N as u}from"./useActiveWallet-DMrO7evY.mjs";import{M as g,F as f,T as y,L as C,b as k,c as T,C as S,E as b,P as v,I,N as w,S as j}from"./PinInput-3SLvbnQa.mjs";import P from"@heroicons/react/24/outline/CalendarIcon";import x from"@heroicons/react/24/outline/ExclamationTriangleIcon";import{e as B}from"./StackedContainer-B2vaEl56.mjs";import{u as E}from"./internal-context-Z-fyxadS.mjs";import{useState as M,useMemo as A,useEffect as V}from"react";import{styled as L}from"styled-components";import{toHex as N}from"viem";import{u as D}from"./useGetTokenPrice-N5ZX6Yun.mjs";import{u as F,a as Y}from"./useWallets-CS_W9ciB.mjs";import{p as H,j as W,g as G,h as O}from"./index-DQp_5KKJ.mjs";import{T as Q}from"./TransactionDetails-D9GBw9C3.mjs";import{u as q}from"./context-Bj4czVEP.mjs";const z=({handleClose:o,mfaMethods:c,onSelect:l})=>/*#__PURE__*/e(h,{title:"Verify your identity",subtitle:"Choose a verification method",icon:a,iconVariant:"subtle",onClose:o,showClose:!0,watermark:!0,children:[/*#__PURE__*/e(g,{children:[c.includes("totp")&&/*#__PURE__*/e(m,{onClick:()=>l("totp"),children:[/*#__PURE__*/r(p,{children:/*#__PURE__*/r(n,{})}),"Authenticator app"]},"totp"),c.includes("sms")&&/*#__PURE__*/e(m,{onClick:()=>l("sms"),children:[/*#__PURE__*/r(p,{children:/*#__PURE__*/r(t,{})}),"SMS"]},"sms"),c.includes("passkey")&&/*#__PURE__*/e(m,{onClick:()=>l("passkey"),children:[/*#__PURE__*/r(p,{children:/*#__PURE__*/r(i,{})}),"Passkey"]},"passkey")]}),/*#__PURE__*/r(s,{})]}),J=({pendingTransaction:e})=>{let{wallets:o}=F(),{walletProxy:n,rpcConfig:i,chains:t,appId:a,nativeTokenSymbolForChainId:s}=E(),[c,l]=M(null),[d,h]=M(e),{tokenPrice:m}=D(d.chainId),p=s(e.chainId)||"ETH",u=A((()=>o.find((e=>"privy"===e.walletClientType))),[o]);return V((()=>{(async function(){if(!n||!u)return d;let e=Y(d.chainId,t,i,{appId:a}),r=await H(d,e,u.address);return l(N(BigInt(r.gas??0))),r})().then(h).catch(console.error)}),[n]),u?/*#__PURE__*/r(K,{children:/*#__PURE__*/r(Q,{from:u.address,to:d.to,txn:d,gas:c??void 0,tokenPrice:m,tokenSymbol:p})}):null};let K=L.div`
|
|
2
2
|
width: 100%;
|
|
3
3
|
padding: 1rem 0;
|
|
4
|
-
`;const R=({hasBlockingError:n,error:i,onClose:t,onBack:d,handleSubmit:h,account:m,submitSuccess:p})=>{let{pendingTransaction:g}=E();/*#__PURE__*/return e(o,{children:[/*#__PURE__*/r(c,{onClose:t},"header"),/*#__PURE__*/r(B,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/r(u,{success:p,fail:!!i}),/*#__PURE__*/r(i?x:f,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/r(y,{style:{marginTop:"1rem"},children:"Verifying with passkey"}),/*#__PURE__*/e(C,{children:[/*#__PURE__*/e(k,{children:[/*#__PURE__*/r(T,{children:/*#__PURE__*/r(a,{})}),"Approve this action using your touch, face, PIN, or hardware key."]}),/*#__PURE__*/e(k,{children:[/*#__PURE__*/r(T,{children:/*#__PURE__*/r(
|
|
4
|
+
`;const R=({hasBlockingError:n,error:i,onClose:t,onBack:d,handleSubmit:h,account:m,submitSuccess:p})=>{let{pendingTransaction:g}=E();/*#__PURE__*/return e(o,{children:[/*#__PURE__*/r(c,{onClose:t},"header"),/*#__PURE__*/r(B,{children:/*#__PURE__*/e("div",{children:[/*#__PURE__*/r(u,{success:p,fail:!!i}),/*#__PURE__*/r(i?x:f,{style:{width:"38px",height:"38px"}})]})}),/*#__PURE__*/r(y,{style:{marginTop:"1rem"},children:"Verifying with passkey"}),/*#__PURE__*/e(C,{children:[/*#__PURE__*/e(k,{children:[/*#__PURE__*/r(T,{children:/*#__PURE__*/r(a,{})}),"Approve this action using your touch, face, PIN, or hardware key."]}),/*#__PURE__*/e(k,{children:[/*#__PURE__*/r(T,{children:/*#__PURE__*/r(P,{})}),"You last added a passkey on"," ",m?.firstVerifiedAt?.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),"."]})]}),g&&/*#__PURE__*/r(S,{children:/*#__PURE__*/r(J,{pendingTransaction:g})}),i&&/*#__PURE__*/e(o,{children:[/*#__PURE__*/r(b,{style:{marginTop:"1.25rem"},children:i.message}),/*#__PURE__*/r(l,{disabled:n,onClick:h,style:{margin:"1.25rem auto 0"},children:"Try again"})]}),d&&/*#__PURE__*/r(v,{style:{marginTop:"1rem"},onClick:d,children:"Choose another method"}),/*#__PURE__*/r(s,{})]})},U=({selectedMethod:i,submitSuccess:a,hasBlockingError:l,onClose:h,onBack:m,handleSubmitCode:p})=>{let u=q(),{pendingTransaction:g}=E();switch(i){case"sms":/*#__PURE__*/return e(o,{children:[/*#__PURE__*/r(c,{onClose:h},"header"),/*#__PURE__*/r(I,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/r(t,{})}),/*#__PURE__*/r(y,{children:"Enter verification code"}),/*#__PURE__*/e(S,{children:[/*#__PURE__*/r(w,{success:a,disabled:l,onChange:p}),/*#__PURE__*/e(j,{children:["To continue, please enter the 6-digit code sent to your ",/*#__PURE__*/r("strong",{children:"mobile device"})]}),g&&/*#__PURE__*/r(J,{pendingTransaction:g})]}),m&&/*#__PURE__*/r(v,{theme:u?.appearance.palette.colorScheme,onClick:m,children:"Choose another method"}),/*#__PURE__*/r(d,{onClick:h,children:"Cancel"}),/*#__PURE__*/r(s,{})]});case"totp":/*#__PURE__*/return e(o,{children:[/*#__PURE__*/r(c,{onClose:h},"header"),/*#__PURE__*/r(I,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/r(n,{})}),/*#__PURE__*/r(y,{children:"Enter verification code"}),/*#__PURE__*/e(S,{children:[/*#__PURE__*/r(w,{success:a,disabled:l,onChange:p}),/*#__PURE__*/e(j,{children:["To continue, please enter the 6-digit code generated from your"," ",/*#__PURE__*/r("strong",{children:"authenticator app"})]}),g&&/*#__PURE__*/r(J,{pendingTransaction:g})]}),m&&/*#__PURE__*/r(v,{theme:u?.appearance.palette.colorScheme,onClick:m,children:"Choose another method"}),/*#__PURE__*/r(d,{onClick:h,children:"Cancel"}),/*#__PURE__*/r(s,{})]});default:return null}},X=e=>W(e)?{isBlocking:!0,error:Error("You have exceeded the maximum number of attempts. Please close this window and try again in 10 seconds.")}:G(e)?{isBlocking:!1,error:Error("The code you entered is not valid")}:O(e)?{isBlocking:!0,error:Error("You have exceeded the time limit for code entry. Please try again in 30 seconds.")}:(console.error(e),{isBlocking:!1,error:Error("Something went wrong.")});export{R as V,U as a,z as b,X as t};
|
package/dist/esm/ui.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{r as i,p as n,n as a,u as l,l as o,o as s,B as d,t as c,i as h,v as p,f as m,q as u,j as w,w as C,x as f,y as g}from"./useActiveWallet-
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{r as i,p as n,n as a,u as l,l as o,o as s,B as d,t as c,i as h,v as p,f as m,q as u,j as w,w as C,x as f,y as g}from"./useActiveWallet-DMrO7evY.mjs";import{i as v,u as y}from"./privy-context-DICqtyyT.mjs";import{u as x}from"./useWallets-CS_W9ciB.mjs";import{styled as k,css as b}from"styled-components";import{C as _}from"./CopyableText-BCytXyJL.mjs";import{u as M}from"./context-Bj4czVEP.mjs";import{W as z}from"./WalletCards-DH1rqayz.mjs";import{T as L,L as H}from"./twitch-5IOe4sIQ.mjs";import{v as A,u as j,h as F}from"./use-export-wallet-DVyBljMT.mjs";import{B as V}from"./ModalHeader-DpkEBdQv.mjs";import*as Z from"react";import{useState as B,createContext as I,useContext as S,useRef as T,useMemo as U,useEffect as W}from"react";import{useMergeRefs as R,useTransitionStyles as P,FloatingPortal as O,FloatingFocusManager as D,useFloating as N,offset as G,flip as $,shift as E,autoUpdate as X,useInteractions as q,useClick as Q,useDismiss as Y,useRole as J}from"@floating-ui/react";import K from"@heroicons/react/24/outline/UserIcon";import{W as ee}from"./WalletInfoCard-hC5PhrNs.mjs";import{u as te}from"./internal-context-Z-fyxadS.mjs";import{u as re}from"./useWalletBalance-C0WFIwSX.mjs";import{g as ie}from"./ethers-BozrzoVi.mjs";import ne from"@heroicons/react/24/outline/EllipsisHorizontalIcon";import ae from"@heroicons/react/24/outline/PlusCircleIcon";import{u as le,a as oe}from"./use-export-wallet-D1P_g8O0.mjs";import{Menu as se,MenuButton as de,MenuItems as ce,MenuItem as he,Disclosure as pe,DisclosureButton as me,DisclosurePanel as ue,DialogTitle as we,Dialog as Ce,DialogBackdrop as fe,DialogPanel as ge}from"@headlessui/react";import{C as ve,W as ye,H as xe,a as ke,S as be,i as _e}from"./ConnectWalletView-mm5nV3qj.mjs";import{PlusIcon as Me}from"@heroicons/react/24/outline";import{S as ze}from"./Subtitle-CV-2yKE4.mjs";import{T as Le}from"./Title-BnzYV3Is.mjs";import He from"@heroicons/react/24/outline/ChevronDownIcon";import{C as Ae}from"./Column-C2X2MHYX.mjs";import{R as je,a as Fe}from"./Row-C9vrS4Zi.mjs";import{A as Ve}from"./Address-B99EaiMb.mjs";import{N as Ze}from"./NetworkIcon-B48ilzF8.mjs";import{g as Be}from"./getErc20TokenInfo-BtdscGyJ.mjs";import{f as Ie}from"./formatErc20TokenAmount-BuPk9xcy.mjs";import{g as Se}from"./getErc20Balance-NThD2gHO.mjs";import Te from"@heroicons/react/24/outline/CurrencyDollarIcon";import"zustand";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"viem";import"viem/utils";import"@privy-io/are-addresses-equal";import"lucide-react";import"@privy-io/js-sdk-core";import"tinycolor2";import"eventemitter3";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./ErrorMessage-D8VaAP5m.mjs";import"./LabelXs-oqZNqbm_.mjs";import"./shared-FM0rljBt.mjs";import"ofetch";import"@tanstack/react-virtual";import"./Link-DJ5gq9Di.mjs";import"./QrCode-D-J14re9.mjs";import"qrcode";import"./EmailInputForm-Dgoii4vf.mjs";import"./useI18n-BiiKgmqw.mjs";import"./Screen-B0u1eY7p.mjs";import"./index-Dq_xe9dz.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";const Ue=k.button`
|
|
2
2
|
--size: ${({$size:e})=>`${e}px`};
|
|
3
3
|
|
|
4
4
|
-webkit-font-smoothing: antialiased;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e}from"./context-Bj4czVEP.mjs";import{u as t}from"./events-context-CI0iqAXA.mjs";import{u as n,a}from"./internal-context-Z-fyxadS.mjs";import{a as o,u as r,j as d,e as s,b as i}from"./privy-context-DICqtyyT.mjs";import{x as l,b as c}from"./use-export-wallet-DVyBljMT.mjs";import{useMemo as u}from"react";import{g as p}from"./useWallets-CS_W9ciB.mjs";function m(a){t("fundSolanaWallet",a);let r=e(),{openModal:d}=n(),{setModalData:s}=o();return{fundWallet:async({address:e,options:t})=>{let n=t?.amount||r.fundingConfig?.defaultRecommendedAmount||"1",a=t?.asset||r.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",o=t?.chain||"solana:mainnet";s({funding:l({address:e,appConfig:r,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...t,amount:n,asset:a,chain:o},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),solanaFundingData:{amount:n,asset:"native-currency"===a?"SOL":"USDC",chain:o,destinationAddress:e,sourceWalletData:void 0}}),d("FundingMethodSelectionScreen")}}}function f(){let{user:t,getAccessToken:l}=r(),{walletProxy:m,openModal:f,client:y}=n(),{setModalData:h}=o(),g=e();return u((()=>({exportWallet:e=>new Promise((async(n,o)=>{if(!t)return void o(new a("User must be authenticated before exporting their Privy wallet"));let r=e?.address?d(t,e.address):s(t);if(!r)return void o(new a("User must have an embedded wallet."));if(!c(r))return void o(Error(`Export is not supported for ${r.chainType} wallets`));let u=i(r),{entropyId:x,entropyIdVerifier:W}=p(t,r);await l()?m?(h({connectWallet:{recoveryMethod:r.recoveryMethod,connectingWalletAddress:r.address,isUnifiedWallet:u,entropyId:x,entropyIdVerifier:W,onCompleteNavigateTo:"EmbeddedWalletKeyExportScreen",onFailure:o,shouldForceMFA:!0},keyExport:{appId:g.id,appClientId:g.appClientId,origin:y.apiUrl,address:r.address,entropyId:x,entropyIdVerifier:W,hdWalletIndex:r.walletIndex,chainType:r.chainType,walletId:r.id,isUnifiedWallet:u,imported:r.imported,onSuccess:n,onFailure:o,showBackButton:e?.showBackButton}}),f("EmbeddedWalletConnectingScreen")):o(new a("Wallet not ready for export")):o(new a("Must have valid access token."))}))})),[t,l,m,f,y,h,g])}export{f as a,m as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e,c as t,j as n,a,u as i}from"./internal-context-Z-fyxadS.mjs";import{b as r,g as s}from"./useWallets-CS_W9ciB.mjs";import{ProviderErrors as o,ConnectedStandardSolanaWallet as l,monadMainnet as d,hyperEVMMainnet as c,arbitrumSepolia as u,arbitrum as h,avalancheFuji as p,avalanche as f,baseSepolia as m,base as w,polygonAmoy as g,polygon as C,optimismSepolia as y,optimism as A,sepolia as b,mainnet as E}from"@privy-io/js-sdk-core";import v from"eventemitter3";import{b as W,u as D}from"./context-Bj4czVEP.mjs";import{jsxs as x,jsx as T}from"react/jsx-runtime";import{useMemo as S}from"react";import{isAddress as I}from"viem/utils";import{u as M,a as F,j as P,c as O,b as k}from"./privy-context-DICqtyyT.mjs";const R=e=>e.isApexWallet?"Apex Wallet":e.isAvalanche?"Core Wallet":e.isBackpack?"Backpack":e.isBifrost?"Bifrost Wallet":e.isBitKeep?"BitKeep":e.isBitski?"Bitski":e.isBlockWallet?"BlockWallet":e.isBraveWallet?"Brave Wallet":e.isClover?"Clover":e.isCoin98?"Coin98 Wallet":e.isCoinbaseWallet?"Coinbase Wallet":e.isDawn?"Dawn Wallet":e.isDefiant?"Defiant":e.isDesig?"Desig Wallet":e.isEnkrypt?"Enkrypt":e.isExodus?"Exodus":e.isFordefi?"Fordefi":e.isFrame?"Frame":e.isFrontier?"Frontier Wallet":e.isGamestop?"GameStop Wallet":e.isHaqqWallet?"HAQQ Wallet":e.isHyperPay?"HyperPay Wallet":e.isImToken?"ImToken":e.isHaloWallet?"Halo Wallet":e.isKuCoinWallet?"KuCoin Wallet":e.isMathWallet?"MathWallet":e.isNovaWallet?"Nova Wallet":e.isOkxWallet||e.isOKExWallet?"OKX Wallet":e.isOneInchIOSWallet||e.isOneInchAndroidWallet?"1inch Wallet":e.isOneKey?"OneKey Wallet":e.isOpera?"Opera":e.isPhantom||"isPhantom"in e?"Phantom":e.isPortal?"Ripio Portal":e.isRabby?"Rabby Wallet":e.isRainbow?"Rainbow":e.isSafePal?"SafePal Wallet":e.isStatus?"Status":e.isSubWallet?"SubWallet":e.isTalisman?"Talisman":e.isTally||e.isTaho?"Taho":e.isTokenPocket?"TokenPocket":e.isTokenary?"Tokenary":e.isTrust||e.isTrustWallet?"Trust Wallet":e.isTTWallet?"TTWallet":e.isXDEFI?"XDEFI Wallet":e.isZeal?"Zeal":e.isZerion?"Zerion":e.isMetaMask?"MetaMask":void 0,_=(e,t)=>{if(!e.isMetaMask)return!1;if(e.isMetaMask&&!t)return!0;if(e.isBraveWallet&&!e._events&&!e._state||"MetaMask"!==R(e))return!1;if(e.providers)for(let t of e.providers)if(!_(t))return!1;return!0},j=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers)for(let t of e.ethereum.providers)if(t&&t.isCoinbaseWallet)return!0;return!1},B=(e,t)=>{let n=[],a=[];for(let[i,r]of e.entries())i<t?n.push(r):a.push(r);return[n,a]},N=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),U=(e,t)=>{let n=e.slice(0),a=[];for(;n.length;)a.push(n.splice(0,t));return a},L=(e,t=3,n=4,a="ethereum")=>{if(!e)return"";let i="ethereum"===a?2:0;return t+n+i+3>=e.length?e:`${e.slice(0,i+t)}...${e.slice(e.length-n,e.length)}`},z=(e,t=3,n=4)=>L(e,t,n,"solana"),Y=e=>new Promise((t=>setTimeout(t,e)));function Z(e,{interval:t=100,timeout:n=5e3}={}){return new Promise(((a,i)=>{let r,s=0,o=()=>{s>=n?i("Max attempts reached without result"):(r=e(),s+=t,null==r?setTimeout(o,t):a(r))};o()}))}const G=(e,t={})=>{let n=t.delayMs||150,a=t.maxAttempts||270;return new Promise((async(i,r)=>{let s=!1,o=0;for(;!s&&o<a;){if(t.abortSignal?.aborted)return;e().then((e=>{s=!0,i(e)}),((...e)=>{s=!0,r(...e)})),o+=1,await Y(n)}s||r(Error("Exceeded max attempts before resolving function"))}))},J=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),H=e=>"string"==typeof e?e:"0x"+e.toString(16);async function X({store:e,walletList:t,externalWalletConfig:n,walletChainType:a,timeout:i=3e3}){let r=!1,s=window;return new Promise((o=>{function l(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",l);let i=e.getProviders();console.debug("Detected injected providers:",i.map((e=>e.info)));let s=[];for(let e of i)t.includes("coinbase_wallet")&&"com.coinbase.wallet"===e.info.rdns||"solana-only"===a&&"app.phantom"===e.info.rdns||s.push({type:e.info.name.toLowerCase().replace(/\s/g,"_"),eip6963InjectedProvider:e});if("solana-only"!==a)for(let e of function(){let e=window,t=e.ethereum;if(!t)return[];let n=[];if(t.providers?.length)for(let e of t.providers)e&&n.push(e);return n.push(e.ethereum),n}()){let t=R(e);if(!i.some((e=>e.info.name===t))){if(_(e,!0)&&!s.find((e=>"metamask"===e.type))){s.push({type:"metamask",legacyInjectedProvider:e});continue}if("Phantom"===t&&!s.find((e=>"phantom"===e.type))){s.push({type:"phantom",legacyInjectedProvider:e});continue}if("Coinbase Wallet"===t&&!s.find((e=>"coinbase_wallet"===e.type&&"smartWalletOnly"!==n.coinbaseWallet?.config?.preference?.options))){s.push({type:"coinbase_wallet",legacyInjectedProvider:e});continue}s.find((e=>"unknown_browser_extension"===e.type))||s.push({type:"unknown_browser_extension",legacyInjectedProvider:e})}}o(s)}s.ethereum?l():(window.addEventListener("ethereum#initialized",l,{once:!0}),setTimeout((()=>{l()}),i))}))}function q(e){return`eip155:${String(Number(e))}`}const K=(t,n,a,i)=>{let s=Number(t),o=n.find((e=>e.id===s));if(!o)throw new e(`Unsupported chainId ${t}`,4901);return r(o,a,i)},Q=(t,n)=>{let a=Number(t),i=n.find((e=>e.id===a));if(!i)throw new e(`Unsupported chainId ${t}`,4901);return i.blockExplorers?.default.url},V=e=>{let t={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},n=e.types.EIP712Domain??Object.entries(e.domain).map((([e,n])=>{if(null!=n&&"string"==typeof e&&e in t)return{name:e,type:t[e]}})).filter((e=>void 0!==e));return{...e,types:{...e.types,EIP712Domain:n}}};function $(e,{min:t,max:n}){return Math.min(Math.max(e,t),n)}const ee=e=>e?.map((e=>({signer_id:e.signerId,override_policy_ids:e.policyIds})));let te="[Privy:Connectors]";function ne(e){if(!e||0===Object.keys(e).length)return"";let t=Object.entries(e).filter((([,e])=>null!=e)).map((([e,t])=>`${e}=${String(t)}`));return t.length>0?` (${t.join(", ")})`:""}const ae=new class{setEnabled(e){this._enabled=e,e&&this.info("Debug logging enabled")}get enabled(){return this._enabled}debug(e,t){this._enabled&&console.debug(`${te} ${e}${ne(t)}`)}info(e,t){this._enabled&&console.info(`${te} ${e}${ne(t)}`)}warn(e,t){this._enabled&&console.warn(`${te} ${e}${ne(t)}`)}error(e,t,n){if(!this._enabled)return;let a=t instanceof Error?t.message:t?String(t):void 0,i=a?{...n,error:a}:n;console.error(`${te} ${e}${ne(i)}`)}connectionStart(e,t,n){this.info("Connection attempt started",{wallet:e,method:t,...n})}connectionSuccess(e,t){this.info("Connection successful",{wallet:e,...t})}connectionFailed(e,t,n){this.error("Connection failed",t,{wallet:e,...n})}connectorInit(e,t,n){this.debug("Connector initialized",{connector:e,wallet:t,...n})}connectorCreated(e,t,n){this.debug("Connector created",{connector:e,wallet:t,...n})}providerEvent(e,t,n){this.debug(`Provider event: ${e}`,{wallet:t,...n})}rpcRequest(e,t,n){this.debug(`RPC request: ${e}`,{wallet:t,...n})}rpcResponse(e,t,n){this.debug(`RPC response: ${e}`,{wallet:t,...n})}constructor(){this._enabled=!1}};class ie extends e{constructor(){super("Wallet timeout"),this.type="wallet_error",ae.warn("Wallet request timed out")}}const re=t=>{if(t instanceof e)return ae.debug("Connector error (already formatted)",{error:t.message}),t;if(t?.code){let e=new oe(t);return ae.debug("Provider RPC error",{code:e.code,error:e.message}),e}let n=t instanceof Error?t.message:String(t);return ae.debug("Unknown connector error",{error:n}),new e("Unknown connector error",t)};class se extends t{constructor(e,t,n){super(e),this.type="provider_error",this.code=t,this.data=n}}class oe extends se{constructor(e){super(e.message,e.code,e.data);let t=Object.values(o).find((t=>t.eipCode===e.code));this.details=t||o.UNKNOWN_ERROR,-32002===e.code&&(e.message?.includes("already pending for origin")?e.message?.includes("wallet_requestPermissions")?this.details=o.E32002_CONNECTION_ALREADY_PENDING:this.details=o.E32002_REQUEST_ALREADY_PENDING:e.message?.includes("Already processing")&&e.message.includes("eth_requestAccounts")&&(this.details=o.E32002_WALLET_LOCKED))}}const le={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_LIMIT_REACHED:{message:"Unable to link",detail:"You've reached the maximum number of linked wallets.",retryable:!1},...o};class de{get(e){let t=localStorage.getItem(e);return null===t?void 0:JSON.parse(t)}put(e,t){void 0!==t?localStorage.setItem(e,JSON.stringify(t)):this.del(e)}del(e){localStorage.removeItem(e)}getKeys(){return Object.entries(localStorage).map((([e])=>e))}}function ce(){try{let e="privy:__session_storage__test",t=new de;return t.put(e,"blobby"),t.del(e),!0}catch(e){return!1}}var ue="undefined"!=typeof window&&window.localStorage?new de:new class{get(e){return this._cache[e]}put(e,t){void 0!==t?this._cache[e]=t:this.del(e)}del(e){delete this._cache[e]}getKeys(){return Object.keys(this._cache)}constructor(){this._cache={}}};class he extends v{constructor(e){super(),this.walletClientType=e,this.connected=!1,this.initialized=!1}}const pe=()=>{let e=ue.get(W);return e&&Array.isArray(e)&&e.map((e=>(e=>e&&"string"==typeof e.address&&"string"==typeof e.connectorType&&"string"==typeof e.walletClientType&&"number"==typeof e.connectedAt)(e))).every(Boolean)?e:[]};let fe=["phantom","glow","solflare","backpack","okx_wallet","walletconnect","mobile_wallet_adapter","jupiter"];function me(e){return e.toLowerCase().split(" ").join("_")}class we extends he{get isInstalled(){return!0}get wallet(){return this._wallet}buildConnectedWallet(){return this._wallet.accounts.map((e=>({type:"solana",provider:new l({wallet:this._wallet,account:e}),address:e.address,connectedAt:Date.now(),walletClientType:this._wallet.name,connectorType:this.connectorType,imported:!1,meta:{name:this._wallet.name,id:this._wallet.name,icon:this._wallet.icon},isConnected:async()=>this._wallet.accounts.length>0,disconnect:async()=>{await this.disconnect()}})))}async syncAccounts(){this.wallets=this.buildConnectedWallet(),this.emit("walletsUpdated")}get walletBranding(){return{id:ge(this.wallet)?"walletconnect_solana":this.wallet.name,name:this.wallet.name,icon:this.wallet.icon}}async initialize(){ae.debug("Initializing Solana connector",{wallet:this.walletClientType}),this.subscribeListeners(),await this.syncAccounts(),this.shouldAttemptAutoConnect()&&(ae.debug("Attempting Solana auto-connect",{wallet:this.walletClientType}),await(this.wallet.features["standard:connect"]?.connect({silent:!0}).catch((()=>{}))),await this.isConnected()&&(ae.debug("Solana auto-connect successful",{wallet:this.walletClientType}),await this.syncAccounts())),this.initialized=!0,this.emit("initialized")}async connect(e){if(ae.connectionStart(this.walletClientType,"solana_adapter",{showPrompt:e.showPrompt}),e.showPrompt)try{await this.promptConnection()}catch(e){if(0===this._wallet.accounts.length)throw ae.warn("Solana wallet connected but has no accounts",{wallet:this.walletClientType}),new n;throw ae.connectionFailed(this.walletClientType,e,{method:"solana_adapter"}),e}if(!await this.isConnected())throw ae.warn("Solana wallet not connected after prompt",{wallet:this.walletClientType}),new n;await this.syncAccounts();let t=await this.getConnectedWallet();return t&&ae.connectionSuccess(this.walletClientType),t}async getConnectedWallet(){return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt))[0]||null}async isConnected(){return this._wallet.accounts.length>0}subscribeListeners(){this._unsubscribeListeners=this.wallet.features["standard:events"]?.on("change",this.onChange)}unsubscribeListeners(){this._unsubscribeListeners?.()}shouldAttemptAutoConnect(){return!(!this.autoConnectEnabled||!fe.includes(this.walletClientType))&&("phantom"!==this.walletClientType&&"metamask"!==this.walletClientType.toLowerCase()||pe().some((({walletClientType:e})=>"phantom"===e||"metamask"===e.toLowerCase())))}constructor(e,t){super(me(ge(e)?"walletconnect_solana":e.name)),this.chainType="solana",this.connectorType="solana_adapter",this.disconnect=async()=>{ae.debug("Disconnecting Solana wallet",{wallet:this.walletClientType}),await(this.wallet.features["standard:disconnect"]?.disconnect().catch((e=>{ae.error("Error disconnecting Solana wallet",e,{wallet:this.walletClientType})}))),await this.syncAccounts()},this.promptConnection=async()=>{ae.debug("Prompting Solana connection",{wallet:this.walletClientType});try{await(this.wallet.features["standard:connect"]?.connect())}catch(e){throw ae.connectionFailed(this.walletClientType,e,{method:"solana_adapter"}),re(e)}},this.onChange=()=>{this.syncAccounts()},this._wallet=e,this.autoConnectEnabled=t,this.wallets=[]}}function ge(e){return"isWalletConnectSolana"in e&&e.isWalletConnectSolana}const Ce=({style:e,...t})=>{let n=D();/*#__PURE__*/return x("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[/*#__PURE__*/T("rect",{width:"28",height:"28",rx:"3",fill:"dark"===n?.appearance.palette.colorScheme?"#3396ff":"#141414"}),/*#__PURE__*/T("g",{clipPath:"url(#clip0_1765_9946)",children:/*#__PURE__*/T("path",{d:"M8.09448 10.3941C11.3558 7.20196 16.6442 7.20196 19.9055 10.3941L20.2982 10.7782C20.3369 10.8157 20.3677 10.8606 20.3887 10.9102C20.4097 10.9599 20.4206 11.0132 20.4206 11.0671C20.4206 11.121 20.4097 11.1744 20.3887 11.224C20.3677 11.2737 20.3369 11.3186 20.2982 11.3561L18.9554 12.6702C18.9158 12.7086 18.8628 12.7301 18.8077 12.7301C18.7526 12.7301 18.6996 12.7086 18.66 12.6702L18.1198 12.1415C15.8448 9.91503 12.1557 9.91503 9.88015 12.1415L9.30167 12.7075C9.26207 12.7459 9.20909 12.7673 9.15395 12.7673C9.0988 12.7673 9.04582 12.7459 9.00622 12.7075L7.66346 11.3934C7.62475 11.3559 7.59397 11.3109 7.57295 11.2613C7.55193 11.2117 7.5411 11.1583 7.5411 11.1044C7.5411 11.0505 7.55193 10.9971 7.57295 10.9475C7.59397 10.8979 7.62475 10.8529 7.66346 10.8154L8.09448 10.3941ZM22.6829 13.1115L23.8776 14.2814C23.9163 14.319 23.9471 14.3639 23.9681 14.4135C23.9892 14.4632 24 14.5165 24 14.5704C24 14.6243 23.9892 14.6777 23.9681 14.7273C23.9471 14.777 23.9163 14.8219 23.8776 14.8594L18.4893 20.1332C18.4102 20.2101 18.3042 20.2531 18.1938 20.2531C18.0835 20.2531 17.9775 20.2101 17.8984 20.1332L14.0743 16.3901C14.0545 16.3708 14.0279 16.36 14.0003 16.36C13.9726 16.36 13.9461 16.3708 13.9263 16.3901L10.1021 20.1332C10.023 20.2101 9.91703 20.2531 9.8067 20.2531C9.69636 20.2531 9.59038 20.2101 9.51124 20.1332L4.12236 14.8594C4.08365 14.8219 4.05287 14.777 4.03185 14.7273C4.01083 14.6777 4 14.6243 4 14.5704C4 14.5165 4.01083 14.4632 4.03185 14.4135C4.05287 14.3639 4.08365 14.319 4.12236 14.2814L5.31767 13.1115C5.39678 13.0348 5.50265 12.9919 5.61285 12.9919C5.72305 12.9919 5.82892 13.0348 5.90803 13.1115L9.73216 16.8546C9.75194 16.874 9.7785 16.8848 9.80616 16.8848C9.83381 16.8848 9.86037 16.874 9.88015 16.8546L13.7043 13.1115C13.7834 13.0346 13.8894 12.9916 13.9997 12.9916C14.1101 12.9916 14.216 13.0346 14.2952 13.1115L18.1198 16.8546C18.1396 16.874 18.1662 16.8848 18.1938 16.8848C18.2215 16.8848 18.2481 16.874 18.2678 16.8546L22.092 13.1115C22.1711 13.0346 22.2771 12.9916 22.3874 12.9916C22.4977 12.9916 22.6037 13.0346 22.6829 13.1115Z",fill:"white"})}),/*#__PURE__*/T("defs",{children:/*#__PURE__*/T("clipPath",{id:"clip0_1765_9946",children:/*#__PURE__*/T("rect",{width:"20",height:"12.2531",fill:"white",transform:"translate(4 8)"})})})]})},ye="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfoDAIVODUC+w+GAAAGsUlEQVRYw6WXbYwWVxXHf+fOLAtCXYS2QJdIaClipGCTknXXNqBQMVHbfmhItH4Aral+IAEaG03UxJgYKQJGTUxtDWjaxDSNtcZqIGDwpRuW1oYiVqpdpZSlpC3qysu+PHPP3w/3mXnmeXZbPzjJZO7cefn/z/mfe865xlscq3dGDIguGiHLaMQVLja4s87FShcLo5jtApdddnHexUmHIy475JmdUkPRAQMu7gzT4ljnxJpdk0QPmMFkyAKN2OfOFpc2uuh1J3MZDrjAvXmVEQUuoosRxw642FcEG7IoDxiFxNiu8NYE+vcUYIFYRKKs113bXWx2Z34CoQZsVHOiCZ7mopdzdsFhv8NexEgRDHMxUSNREbh1bwNZwBsFblmfu/a4a6AEENYO5i3AOoEWeEUCF4MOOxBDMQAOk99OJALA2u80sBCwWGBZWG/yRwMaCAbBIAsQTJT3gea1OWfNeaPzvjoHEI85rA8ObtB1v7cIdJkIHgkh9AXpocy0LJjIKvB2wPpZB0v3wkrw5jdNEjeYeMhFX3BAyfn2ke9NUrgB9LrrcZcGJFCld4fWNddXbvbWfWzGR6xJFZsBGh0cBh3bBIxIEGTQ3W0h4NuDaSAzyAxCmGq11Vzf5uaa1aG8p+WFtrEYQGwvjICJkAEqvC+YNmcmMlMNvEaCdrcbyUvQAWDTjVuESHObM6cPGWHmzDwLaEtmzG9Z3qF1zUpXmuuZBb1z4bqeNC6f0WE1NtUTwHzEloiy3BvFisy0sYoLlQtT6XW15md2Qf9SY+2Ngfdca/TMSm/9ewz+/Boc/It45h/i4kSTsKw90SQJsPTvjSZbkWemDW7qTRZ0JEYJWSKxZJ7xmf6M224MzMzbX1s8F1YugjtvMg6eErt/4/z1jUrz1rXUKxnZC2zIg2mdBTK1mFUOKC1fOt/48kdzVixIz86Nij+eEacvpJWyZJ5xy7th8VzjjpuMJfMCW58QL73ekXPVlhsyE+vyzFiplJyauEIyrGIquruMq7qTxk+dcB495rzyTzFepCUWLIFv/kBg081Gd55WUk1IDGFTS89K++TDYxddzKnWcbluHd450xgdh7EGrOo1rr868PMTzqWJRGZ2d8oB/xpL33Xnxl2rjeNn4blXRXduzJ4B5y+28kWscAwXl+yeR654FFZPHoUb710YuPeDOUdPO48di1xptKpeEeHqOcYXNwQKGd88EDk3mqxtxPSfGRlsXRtYt8z4ytPOH/7eqpg1Aso7fYKgK4NPrMpYvsC4/poMA34yVJIQC3sCD9yecdsNyaV5yPj6ryJnR1PAvSNP4J+/1cgDfLbfePaMGGtM7Qdyl12WmKOmXgKKAp54vmBRTxfLrjE+tSYjBPjRM5FrrzIeuD2jf2lLzw8vN4JlfPVp581LsO1DgXv7jSzAiXPw/d+JiYLpjsu26Yfjf5O0rF5WoxsNT9G/bX0XKxakmPjlSee6HlizJJXSX7/oRDc+vjKR+f2wODcKd78/gR8/C9uedF44myJxmhh4OY/ipMQyqaWxmjn95TfEroMFOzbkvG+RceeqViPx1Aln1yEnOow1AnffHCpJAJ5/Vex4UvzptZRdY/O/1dJIS/NkcNmR6MTYah6qzseA4TfFtw4UvHBW1bc/O+7sPhwZHYf/jMODh5yfPudVbXj2TAJ/8XxrOZagNamj4Ei2/GNfuyRxh8t6BG2l15up+MIVODEiFr8rcPS0+O6RBF6mrrEGHHtFzOo2Lo7Dl37hvPQ6mNV6R9JYKgnYWcE37K5HlE2OT/5A0udaPUBHH+BQOMzuNsYLuDyZflTW+fTcmJFDHhJhaZqewMuewXDxcDR9IYyPN6Jj+6K4MF2vV8qBtZJScqVRNi6lpGONVJis5mpKi1WbgwsY+zIsBpcR8mzIZfuTRVZrtdu9odrptR/Xx5XONXJqBmCN0P6YMUQq9WJiwt0Je102WHdbpxSqydMObBWYdwDWLVcqcIMYe3NPjg0Ht84od0Ajju1w2XCr9e6QoqM9V23ZtnmI6cfAMMb9AY0YEHdb6oobEh4y3H3Ize6LsmGvN5IdUnhttdQ9UVrfLk/ljWEZ9wXsqAdQk1EA+O22GcgdZTke/bAs3OPY4HSdcB20HhvVtTMu0jmI8ekAhz2IICj2hKpNqI60NcuIRUHEej1quzubXa2tmZhenrfZmv3YYQ9ipDAIgvHptmblccuDjdRcmjFpWbDi/9ycZjZkRbk5jYztai/AUwiUx+qdEQB/m+25i9lxyvbcjrg45Lmd0uT/3p7/Fw6ODf+WO019AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI0LTEyLTAyVDIxOjU2OjQ4KzAwOjAwMVpslgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNC0xMi0wMlQyMTo1Njo0OCswMDowMEAH1CoAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjQtMTItMDJUMjE6NTY6NTMrMDA6MDDZv6GRAAAAAElFTkSuQmCC";function Ae(e){return["ethereum","solana"].includes(e.chainType)}function be(e){let t=e.replace("eip155:","");if(t)return parseInt(t);throw Error("Chain ID not compatible with CAIP-2 format.")}const Ee=e=>e.filter((e=>"wallets"===e.method||("exchange"===e.method?"coinbase"===e.provider:"card"===e.method||"payment-request"===e.method?"coinbase"===e.provider||"moonpay"===e.provider:(e.method,!1)))),ve={[E.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[b.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[A.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[y.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[C.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[g.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[w.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[m.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[f.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[p.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[h.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[u.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",[c.id]:"0xb88339CB7199b77E23DB6E890353E22632Ba630f",[d.id]:"0x754704Bc059F8C67012fEd69BC8A327a5aafb603"},We=({address:e,appConfig:t,fundWalletConfig:n,methodScreen:i,chainIdOverride:r,comingFromSendTransactionScreen:s=!1,onComplete:o,onError:l})=>{let d,c;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let u=Ee(t.fundingConfig.options);if(u.length<1)throw Error("Wallet funding is not enabled");d=r||(n?.chain?n.chain.id:be(t.fundingConfig.defaultRecommendedCurrency.chain));let h=t.chains.find((e=>e.id===d));if(!h)throw new a(`Funding chain ${d} is not in PrivyProvider chains list`);let p=n?.amount??t.fundingConfig.defaultRecommendedAmount,f=!1;function m(){if(!d)return;let e=ve[d];u.find((e=>"wallets"===e.method))&&!e&&console.warn("Attempting to fund with USDC on chain where USDC address is not known. Funding via external wallet will be disabled."),c=e,f=!0}n&&"asset"in n?"USDC"===n.asset?m():"string"!=typeof n.asset&&"erc20"in n.asset&&(f=((e,t)=>e===ve[t.id])(c=n.asset.erc20,h)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&m();let w=n?.defaultFundingMethod;return{chainType:"ethereum",address:e,amount:p,chain:h,erc20Address:c,erc20ContractInfo:f?{symbol:"USDC",decimals:6}:void 0,isUSDC:f,methodScreen:i,supportedOptions:u,comingFromSendTransactionScreen:s,defaultFundingMethod:w,usingDefaultFundingMethod:!!w,preferredCardProvider:n?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,solanaChain:"solana:mainnet",uiConfig:n&&"uiConfig"in n?n.uiConfig:void 0,externalSolanaFundingScreen:null,onComplete:o??(()=>{}),onError:l??(()=>{})}};function De({address:e,fundWalletConfig:t,appConfig:n,comingFromSendTransactionScreen:a,externalSolanaFundingScreen:i,methodScreen:r}){if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let s=Ee(n.fundingConfig.options);if(s.length<1)throw Error("Wallet funding is not enabled");if("USDC"===t?.asset&&"solana:testnet"===t?.chain)throw Error("USDC funding is not supported on the Solana testnet");let o=t?.amount??n.fundingConfig.defaultRecommendedAmount,l=t?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:s,amount:o,isUSDC:"USDC"===t?.asset,methodScreen:r,comingFromSendTransactionScreen:a,chain:t?.chain||"solana:mainnet",crossChainBridgingEnabled:n.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:l,preferredCardProvider:t?.card?.preferredProvider,usingDefaultFundingMethod:!!l,uiConfig:t?.uiConfig,externalSolanaFundingScreen:i,onComplete:()=>{},onError:()=>{}}}function xe(){let{user:e,getAccessToken:t}=M(),{walletProxy:n,openModal:r,client:o}=i(),{setModalData:l}=F(),d=D();return S((()=>({exportWallet:i=>new Promise((async(c,u)=>{if(!e)return void u(Error("User must be authenticated before exporting their Privy wallet"));i&&"target"in i&&i&&(i=void 0);let h=i?.address?P(e,i.address):O(e);if(!h)return void u(new a("User must have an embedded wallet."));let p=h.address,{entropyId:f,entropyIdVerifier:m}=s(e,h),w=k(h);if(!p)return void u(Error("User does not have an HD Ethereum wallet. To export an imported wallet, pass the `address` of the wallet to `exportWallet`."));if(!I(p))return void u(Error("Must provide a valid Ethereum address."));let g={recoveryMethod:h.recoveryMethod,connectingWalletAddress:h.address,isUnifiedWallet:w,entropyId:f,entropyIdVerifier:m,onCompleteNavigateTo:"EmbeddedWalletKeyExportScreen",onFailure:u,shouldForceMFA:!0};await t()&&n?Ae(h)?(l({keyExport:{appId:d.id,appClientId:d.appClientId,origin:o.apiUrl,address:h.address,entropyId:f,entropyIdVerifier:m,hdWalletIndex:h.walletIndex,chainType:h.chainType,walletId:h.id,isUnifiedWallet:w,imported:h.imported,onSuccess:c,onFailure:u,showBackButton:i?.showBackButton},connectWallet:g}),r("EmbeddedWalletConnectingScreen")):u(Error(`Export is not supported for ${h.chainType} wallets`)):u(Error("Must have valid access token."))}))})),[e,t,n,r,o,l,d])}export{Ce as A,N as B,le as C,$ as D,U as E,Q as F,se as G,me as H,z as I,oe as P,we as S,ye as W,J as a,Ae as b,ae as c,Ee as d,V as e,re as f,K as g,be as h,G as i,We as j,Y as k,ce as l,q as m,X as n,pe as o,Z as p,ee as q,he as r,ue as s,H as t,xe as u,L as v,ie as w,De as x,j as y,B as z};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useEffect as e,useState as t,createContext as n,useContext as i,useMemo as a,useCallback as l}from"react";import{create as o}from"zustand";import{u as r,n as s,o as c,p as d}from"./context-
|
|
1
|
+
import{useEffect as e,useState as t,createContext as n,useContext as i,useMemo as a,useCallback as l}from"react";import{create as o}from"zustand";import{u as r,n as s,o as c,p as d}from"./context-Bj4czVEP.mjs";import{styled as h,css as p}from"styled-components";import{jsx as u,jsxs as m}from"react/jsx-runtime";import*as w from"react-device-detect";import{r as y,m as g,k as f,c as b,i as v,s as x,f as k,w as C,S as _}from"./use-export-wallet-DVyBljMT.mjs";import{u as T}from"./events-context-CI0iqAXA.mjs";import{isAddress as z}from"viem";import{getAddress as $,toHex as P}from"viem/utils";import{P as S,u as j}from"./internal-context-Z-fyxadS.mjs";import{P as I}from"./privy-context-DICqtyyT.mjs";import{u as N}from"./useWallets-CS_W9ciB.mjs";const E=o((()=>({listings:[],loading:!1}))),L=E.setState,A=e=>E.getState().listings.find((({slug:t})=>R(t)===R(e))),O=e=>{let t;try{t=new URL(e).hostname}catch(e){return}return E.getState().listings.find((({homepage:e})=>{let n;try{n=new URL(e).hostname}catch(e){return!1}return t.includes(n)}))},U=(t=!0)=>{let n=r(),i=E((e=>e.listings)),a=E((e=>e.loading)),l=!!i.length;return e((()=>{t&&!l&&(L({listings:[],loading:!0}),(async e=>{let t=new URL("v3/wallets","https://explorer-api.walletconnect.com");t.searchParams.append("projectId",e);let n=await fetch(t);return n.ok?Object.values((await n.json()).listings).sort((({slug:e},{slug:t})=>"rainbow"===e&&"metamask"===t?1:"metamask"===e||"rainbow"===e?-1:1)):(console.debug(`Failed to fetch WalletConnect listings: ${await n.text().catch((()=>"No response."))}`),[])})(n.walletConnectCloudProjectId).then((e=>L({listings:e,loading:!1}))).catch((e=>{console.error(e),L({listings:[],loading:!1})})))}),[t,l,n.walletConnectCloudProjectId]),{listings:i,loading:a}},W=e=>{let{listings:t}=U();return t.find((({slug:t})=>R(t)===R(e)))};function R(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function M(e){return["wallet_connect","backpack","binance","binanceus","bitget_wallet","bybit_wallet","cryptocom","haha_wallet","jupiter","metamask","okx_wallet","phantom","rabby_wallet","rainbow","ronin_wallet","safe","solflare","uniswap","zerion","kraken_wallet"].some((t=>e?.includes(t)))}function q(e){return"ethereum"===e.type}function B(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let i=e[n],a=t[n];if(i?.address!==a?.address||i&&a&&q(i)&&q(a)&&i?.chainId!==a?.chainId||i?.connectorType!==a?.connectorType||i?.connectedAt!==a?.connectedAt||i?.walletClientType!==a?.walletClientType||i?.isConnected!==a?.isConnected||i?.linked!==a?.linked)return!1}return!0}const D=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||s;function F(e){return"ethereum"===e.chainType}class J extends y{buildConnectedWallet(e,t,n,i){let a=async()=>!!this.wallets.find((t=>$(t.address)===$(e)));return{type:"ethereum",address:$(e),chainId:t,meta:n,imported:i,switchChain:async n=>{let i,l;if(!a)throw new S("Wallet is not currently connected.");let o=this.wallets.find((t=>$(t.address)===$(e)))?.chainId;if(!o)throw new S("Unable to determine current chainId.");if("number"==typeof n?(i=`0x${n.toString(16)}`,l=n):(i=n,l=Number(n)),o===g(i))return;let r=this.chains.find((e=>e.id===l));if(!r)throw new S(`Unsupported chainId: ${n}`);let s=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:i}]})};try{return await s()}catch(e){if(((e,t)=>{switch(t){case"coinbase_wallet":case"base_account":return e.message.includes("addEthereumChain");case"rabby_wallet":return e.message.includes("Unrecognized chain ID");default:return 4902===e.code||e.message?.includes("4902")}})(e,this.walletClientType))return"rabby_wallet"===this.walletClientType&&await f(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:i,chainName:r.name,nativeCurrency:r.nativeCurrency,rpcUrls:[r.rpcUrls.default?.http[0]??""],blockExplorerUrls:[r.blockExplorers?.default.url??""]}]}),s();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new S(`Rainbow does not support the chainId ${t}`);throw e}},connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:a,getEthereumProvider:async()=>{if(!await a())throw new S("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new S("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t;b.debug("Syncing accounts",{wallet:this.walletClientType});let n=e;try{if(void 0===n){b.rpcRequest("eth_accounts",this.walletClientType);let e=await v((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});b.rpcResponse("eth_accounts",this.walletClientType),Array.isArray(e)&&(n=e)}}catch(e){b.warn("Wallet did not respond to eth_accounts, using prefetched accounts",{wallet:this.walletClientType})}if(!n||!Array.isArray(n)||n.length<=0||!n[0])return void b.debug("No accounts found",{wallet:this.walletClientType});let i=n[0];if(!z(i))return;let a=$(i),l=[];if("privy"===this.walletClientType){let e=x.get(c(a));this.chains.find((t=>t.id===Number(e)))||(x.del(c(a)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){b.warn("Unable to switch embedded wallet chain on initialization",{wallet:this.walletClientType,chainId:t})}}else try{b.rpcRequest("eth_chainId",this.walletClientType);let e=await v((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(b.rpcResponse("eth_chainId",this.walletClientType),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){b.warn("Failed to get chainId from provider, using default",{wallet:this.walletClientType,defaultChainId:d}),t=d}let o=g(t);if(!l.find((e=>$(e.address)===a))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};l.push(this.buildConnectedWallet($(i),o,e,"embedded_imported"===this.connectorType))}B(l,this.wallets)||(b.debug("Wallets updated",{wallet:this.walletClientType,address:a,chainId:o}),this.wallets=l,this.emit("walletsUpdated"))}async getConnectedWallet(){let e=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt)).find((t=>e.find((e=>$(e)===$(t.address)))))||null}async isConnected(){let e=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}async sign(e){return await this.connect({showPrompt:!1}),this.proxyProvider.request({method:"personal_sign",params:[P(e),this.wallets[0]?.address]})}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}constructor(e,t,n,i){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{b.providerEvent("accountsChanged",this.walletClientType,{accountsCount:e.length}),0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{b.providerEvent("chainChanged",this.walletClientType,{chainId:e}),this.wallets.forEach((t=>{t.chainId=g(e),"privy"===this.walletClientType&&x.put(c(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{b.providerEvent("disconnect",this.walletClientType),this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{b.providerEvent("connect",this.walletClientType),"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await f(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=n,this.rpcConfig=i,this.rpcTimeoutDuration=D(i,e),this.connected=!1,this.initialized=!1}}class K{on(e,t){if(this.walletProvider)return this.walletProvider.on(e,t);this._subscriptions.push({eventName:e,listener:t})}async request(e){if(!this.walletProvider)throw new S(`A wallet request of type ${e.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(e),this.walletTimeout()]).catch((e=>{throw k(e)}))}constructor(e,t){this.removeListener=(e,t)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(e,t)}catch(e){console.warn("Unable to remove wallet provider listener")}},this.walletTimeout=(e=new C,t=this.rpcTimeoutDuration)=>new Promise(((n,i)=>setTimeout((()=>{i(e)}),t))),this.setWalletProvider=e=>{this.walletProvider&&this._subscriptions.forEach((e=>{this.removeListener(e.eventName,e.listener)})),this.walletProvider=e,this._subscriptions.forEach((e=>{this.walletProvider?.on(e.eventName,e.listener)}))},this.walletProvider=e,this.rpcTimeoutDuration=t||s,this._subscriptions=[]}}const G=n=>{let[i,a]=t("auto");return e((()=>{let e=new ResizeObserver((e=>{a(e[0]?.contentRect.height??"auto")}));return n.current&&e.observe(n.current),()=>{n.current&&e.unobserve(n.current)}}),[n.current]),i},H=h.div`
|
|
2
2
|
text-align: left;
|
|
3
3
|
flex-grow: 1;
|
|
4
4
|
`,Q=h.div`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useState as r,useEffect as e}from"react";import{addToDefaultChains as o}from"@privy-io/js-sdk-core";import{s as i}from"./context-Bj4czVEP.mjs";import{u as n}from"./internal-context-Z-fyxadS.mjs";import{u as t}from"./useGetSolPrice-DwwjjGbd.mjs";function c(c){let{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:P}=(t=>{let{showFiatPrices:c,getUsdTokenPrice:a,chains:s}=n(),[P,l]=r(!0),[d,k]=r(void 0),[m,f]=r(void 0);return e((()=>{t||=i;let r=o(s).find((r=>r.id===Number(t)));(async()=>{if(c){if(!r)return l(!1),void k(Error(`Unable to fetch token price on chain id ${t}`));try{l(!0);let e=await a(r);e?f(e):k(Error(`Unable to fetch token price on chain id ${r.id}`))}catch(r){k(r)}finally{l(!1)}}else l(!1)})()}),[t]),{tokenPrice:m,isTokenPriceLoading:P,tokenPriceError:d}})("solana"===c?-1:c),{solPrice:l,isSolPriceLoading:d,solPriceError:k}=t({enabled:"solana"===c});return"solana"===c?{tokenPrice:l,isTokenPriceLoading:d,tokenPriceError:k}:{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:P}}export{c as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as e}from"./context-
|
|
1
|
+
import{u as e}from"./context-Bj4czVEP.mjs";const t={"connectionStatus.successfullyConnected":"Successfully connected with {walletName}","connectionStatus.errorTitle":"{errorMessage}","connectionStatus.connecting":"Connecting","connectionStatus.connectOneWallet":"For the best experience, connect only one wallet at a time.","connectionStatus.checkOtherWindows":"Don't see your wallet? Check your other browser windows.","connectionStatus.stillHere":"Still here?","connectionStatus.tryConnectingAgain":"Try connecting again","connectionStatus.or":"or","connectionStatus.useDifferentLink":"use this different link","connectWallet.connectYourWallet":"Connect a wallet","connectWallet.waitingForWallet":"Waiting for {walletName}","connectWallet.connectToAccount":"Connect a wallet to your {appName} account","connectWallet.installAndConnect":"To connect to {walletName}, install and open the app. Then confirm the connection when prompted.","connectWallet.tryConnectingAgain":"Please try connecting again.","connectWallet.openInApp":"Open in app","connectWallet.copyLink":"Copy link","connectWallet.retry":"Retry","connectWallet.searchPlaceholder":"Search through {count} wallets","connectWallet.noWalletsFound":"No wallets found. Try another search.","connectWallet.lastUsed":"Last used","connectWallet.selectYourWallet":"Select your wallet","connectWallet.selectNetwork":"Select network","connectWallet.goToWallet":"Go to {walletName} to continue","connectWallet.scanToConnect":"Scan code to connect to {walletName}","connectWallet.openOrInstall":"Open or install {walletName}"};function n(){let n=e();return{t:(e,o)=>function(e,n,o){let c=n?.[e]??t[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,t)=>o[t]??e)):c}(e,n.intl.textLocalization,o)}}export{n as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isMobile as e,isAndroid as t}from"react-device-detect";import{a as r,b as a,u as n}from"./internal-context-Z-fyxadS.mjs";import{useCallback as o,useContext as i}from"react";import{q as s,u as l}from"./use-export-wallet-DVyBljMT.mjs";import{e as d,c,g as p,a as u,f as y,d as m,u as E,P as w}from"./privy-context-DICqtyyT.mjs";import{a as h,u as v}from"./events-context-CI0iqAXA.mjs";import{create as f}from"@privy-io/js-sdk-core";import{g as T}from"./useWallets-CS_W9ciB.mjs";import{u as W,W as g}from"./context-Bj4czVEP.mjs";function A(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}function S(a,n){let o=A(n);if(e&&t&&o.universalLink)return M(o.universalLink,a);if(o.deepLink)return b(o.deepLink,a);if(o.universalLink)return M(o.universalLink,a);throw new r(`Unsupported wallet ${n.id}`)}function D(e,t){let r=A(t);if(r.universalLink)return M(r.universalLink,e)}let U="WALLETCONNECT_DEEPLINK_CHOICE";function x(){try{localStorage.removeItem(U)}catch{}}function I({href:e,name:t}){try{localStorage.setItem(U,JSON.stringify({href:e,name:t}))}catch{}}function _(){try{localStorage.removeItem(U)}catch{}}function k(e){return e.startsWith("http://")||e.startsWith("https://")}function b(e,t){if(k(e))return M(e,t);let r=e;return r.includes("://")||(r=e.replaceAll("/","").replaceAll(":",""),r=`${r}://`),r.endsWith("/")||(r=`${r}/`),{redirect:`${r}wc?uri=${encodeURIComponent(t)}`,href:r}}function M(e,t){if(!k(e))return b(e,t);let r=e;return r.endsWith("/")||(r=`${r}/`),{redirect:`${r}wc?uri=${encodeURIComponent(t)}`,href:r}}function L(e,t){window.open(e,t,"noreferrer noopener")}const C=({address:e,nonce:t})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${t}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`,R=Symbol("solana-funding-plugin"),P=Symbol("solana-ledger-plugin"),N=(e,{chainType:t,walletIndex:r}={})=>e?.linkedAccounts.filter((e=>!("wallet"!==e.type||"privy"!==e.walletClientType||void 0!==r&&e.walletIndex!==r||void 0!==t&&e.chainType!==t)))??[],O=async({user:e,accessToken:t,proxy:r,refreshSessionAndUser:a,privy:n,appConfig:o,recoverEmbeddedWallet:i,setUser:l,walletIndex:p,chainType:u,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E,idempotencyKey:w,additionalSigners:h})=>{if(0===p)if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await f(n,{request:{chain_type:u,additional_signers:h?s(h):void 0},headers:w?{"privy-idempotency-key":w}:void 0});else if("ethereum"===u){let a=d(e);a&&await i({address:a.address}),await r.create({accessToken:t,solanaAddress:a?.address,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E})}else{if("solana"!==u)throw Error("Invalid input to create wallet");{let a=c(e);a&&await i({address:a.address}),await r.createSolana({accessToken:t,ethereumAddress:a?.address,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E})}}else if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await f(n,{request:{chain_type:u,additional_signers:h?s(h):void 0}});else{let{entropyId:a,entropyIdVerifier:n}=T(e);await i(),await r.addWallet({accessToken:t,entropyId:a,entropyIdVerifier:n,chainType:u,hdWalletIndex:p})}let v=await a(),W=N(v,{chainType:u,walletIndex:p})[0];return l(v),{user:v,account:W}},K=e=>e.reduce(((e,t)=>!e||e.walletIndex<t.walletIndex?t:e),null),$=async({appConfig:e,getAccessToken:t,initializeWalletProxy:n,user:o,privy:i,emitPrivyEvent:s,recoverEmbeddedWallet:l,setModalData:d,openModal:c,setUser:p,options:u,timeoutDuration:y,refreshSessionAndUser:m,chainType:E,idempotencyKey:w,additionalSigners:h})=>{let[v,f]=await Promise.all([n(y),t()]);if(!f||!o)throw s("createWallet","onError",a.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!v&&e.customAuth?.enabled)throw s("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(h&&"user-controlled-server-wallets-only"!==e.embeddedWallets.mode)throw new r("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");if(u&&"walletIndex"in u&&"number"==typeof u.walletIndex){if("user-controlled-server-wallets-only"===e.embeddedWallets.mode)throw s("createWallet","onError",a.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return B({accessToken:f,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:v,refreshSessionAndUser:m,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:u.walletIndex,chainType:E,setUser:p,additionalSigners:h})}let T=u&&"createAdditional"in u&&u.createAdditional,W=N(o,{chainType:E});if(W[0]&&!T)throw s("createWallet","onError",a.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return B({accessToken:f,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:v,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:(K(W)?.walletIndex??-1)+1,chainType:E,refreshSessionAndUser:m,setUser:p,idempotencyKey:w,additionalSigners:h})};let B=async({accessToken:e,appConfig:t,privy:r,emitPrivyEvent:n,proxy:o,refreshSessionAndUser:i,recoverEmbeddedWallet:s,user:l,walletIndex:d,setModalData:c,openModal:u,chainType:y,setUser:m,idempotencyKey:E,additionalSigners:w})=>{if(d<0)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${d}) is invalid.`);let h=p(l);if(d>0&&!h)throw n("createWallet","onError",a.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!h&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await j({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});let v=N(l,{chainType:y,walletIndex:d})[0];if(v)return{user:l,account:v};if(0===d&&!o)return j({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});if(!o)throw n("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return O({appConfig:t,walletIndex:d,chainType:y,user:l,accessToken:e,proxy:o,refreshSessionAndUser:i,privy:r,recoverEmbeddedWallet:s,setUser:m,idempotencyKey:E,additionalSigners:w})},j=async({emitPrivyEvent:e,setModalData:t,openModal:r,chainType:n})=>new Promise(((o,i)=>{t({createWallet:{onSuccess:({user:t,account:r})=>{e("createWallet","onSuccess",{wallet:r}),o({user:t,account:r})},onFailure:t=>{e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),i(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===n,shouldCreateSol:"solana"===n}}),r("EmbeddedWalletOnAccountCreateScreen")}));const z=()=>{let e=W(),t=h(),{setModalData:r}=u(),{initializeWalletProxy:o,recoverEmbeddedWallet:i,setUser:s,openModal:l,refreshSessionAndUser:d,privy:c,client:p}=n();return{create:async({chainType:n,options:u,latestUser:y,idempotencyKey:m})=>{let E=y;if(E||(E=await d()),!E)throw t("createWallet","onError",a.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await $({appConfig:e,privy:c,getAccessToken:()=>p.getAccessToken(),refreshSessionAndUser:d,initializeWalletProxy:o,user:E,emitPrivyEvent:t,recoverEmbeddedWallet:i,setModalData:r,openModal:l,setUser:s,options:u,timeoutDuration:g,chainType:n,idempotencyKey:m,additionalSigners:u?.signers})}}};function q(e){let{create:t}=z();return v("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:r}=await t({chainType:"ethereum",options:e});return r}}}const F=async({emitPrivyEvent:e,getAccessToken:t,initializeWalletProxy:n,refreshSessionAndUser:o,user:i,appConfig:s},{privateKey:l,chainType:d,additionalSigners:c})=>{if(!i)throw e("linkAccount","onError",a.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let p="user-controlled-server-wallets-only"===s.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===p)throw new r("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[u,E]=await Promise.all([t(),n(15e3)]);if(!E||!u)throw e("linkAccount","onError",a.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let{address:w}=await E.importWallet({privateKey:l,accessToken:u,chainType:d,mode:p,additionalSigners:c}),h=await o(),v="solana"===d?y(h):m(h),f=v?.find((e=>e.address===w));if(!f)throw e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:f}),f},H=()=>{let{user:e}=E(),{client:t,refreshSessionAndUser:r,initializeWalletProxy:a}=n(),i=h(),s=W();return{importWallet:o((({privateKey:n,additionalSigners:o})=>F({getAccessToken:()=>t.getAccessToken(),user:e,initializeWalletProxy:a,refreshSessionAndUser:r,emitPrivyEvent:i,appConfig:s},{privateKey:n,chainType:"ethereum",additionalSigners:o})),[e,t,r,a,i,s])}},V=()=>{let{importWallet:e}=H(),{exportWallet:t}=l(),{createWallet:r}=q();return{...i(w),importWallet:e,createWallet:r,exportWallet:t}};export{R as S,D as a,S as b,O as c,x as d,P as e,z as f,q as g,H as h,F as i,L as o,C as p,_ as r,I as s,V as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getTransactionDecoder as r,getBase64Decoder as n,getBase58Encoder as e}from"@solana/kit";import{useMemo as o,useCallback as t}from"react";import{u as a}from"./context-
|
|
1
|
+
import{getTransactionDecoder as r,getBase64Decoder as n,getBase58Encoder as e}from"@solana/kit";import{useMemo as o,useCallback as t}from"react";import{u as a}from"./context-Bj4czVEP.mjs";import{a as i,b as s}from"./internal-context-Z-fyxadS.mjs";function c(n){return new Uint8Array(r().decode(n).messageBytes)}async function l({solanaClient:r,tx:e}){let o=n().decode(c(e)),{value:t}=await r.rpc.getFeeForMessage(o).send();return t??0n}async function u({solanaClient:r,tx:e,replaceRecentBlockhash:o}){let{value:t}=await r.rpc.simulateTransaction(n().decode(e),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===t.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===t.err?await u({solanaClient:r,tx:e,replaceRecentBlockhash:!0}):{logs:t.logs??[],error:t.err,hasError:!!t.err,hasFunds:t.logs?.every((r=>!/insufficient funds/gi.test(r)&&!/insufficient lamports/gi.test(r)))??!0}}const f=(...r)=>{if("undefined"==typeof Buffer)throw new i("Buffer is not defined.",void 0,s.BUFFER_NOT_DEFINED);return Buffer.from(...r)};async function p({rpcSubscriptions:r,signature:n,timeout:e}){let o=new AbortController,t=await r.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:o.signal}),a=await Promise.race([new Promise((r=>{setTimeout((()=>{o.abort(),r(Error("Transaction confirmation timed out"))}),e)})),new Promise((async r=>{for await(let n of t){if(o.abort(),n.value.err)return r(Error("Transaction confirmation failed"));r(void 0)}}))]);if(a instanceof Error)throw a}function m({rpc:r,rpcSubscriptions:n,chain:o,blockExplorerUrl:t}){let a=function({rpc:r,rpcSubscriptions:n}){return async o=>new Promise((async(t,a)=>{try{let a=await r.sendTransaction(f(o).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await p({rpcSubscriptions:n,signature:a,timeout:1e4}),t({signature:new Uint8Array(e().encode(a))})}catch(r){a(r)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:o,blockExplorerUrl:t,sendAndConfirmTransaction:a}}function d(){let r=a(),n=o((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((n=>[n,r.solanaRpcs[n]?m({chain:n,rpc:r.solanaRpcs[n].rpc,rpcSubscriptions:r.solanaRpcs[n].rpcSubscriptions,blockExplorerUrl:r.solanaRpcs[n].blockExplorerUrl??`https://explorer.solana.com?cluster=${n.replace("solana:","")}`}):null])))),[r.solanaRpcs]);return t((r=>{if(!n[r])throw Error(`No RPC configuration found for chain ${r}`);return n[r]}),[n])}export{c as a,f as b,l as f,m as g,u as s,d as u,p as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as r,useMemo as a,useCallback as e,useEffect as t}from"react";import{createPublicClient as n,http as o}from"viem";import{b as c}from"./useWallets-
|
|
1
|
+
import{useState as r,useMemo as a,useCallback as e,useEffect as t}from"react";import{createPublicClient as n,http as o}from"viem";import{b as c}from"./useWallets-CS_W9ciB.mjs";import{u as i}from"./internal-context-Z-fyxadS.mjs";function s({rpcConfig:s,appId:l,address:m,chain:p}){let{chains:d}=i(),[f,u]=r(0n),[h,g]=r(!1),b=a((()=>{let r=p||d[0];if(r)return n({chain:p,transport:o(c(r,s,l))})}),[p,s,l]),j=e((async()=>{if(!m||!b)return;g(!0);let r=await b.getBalance({address:m}).catch(console.error);return r?(u(r),g(!1),r):void 0}),[b,m,u]);return t((()=>{j().catch(console.error)}),[]),{balance:f,isLoading:h,reloadBalance:j}}export{s as u};
|