@privy-io/react-auth 3.19.0-beta-20260327145607 → 3.19.0-beta-20260328154708
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-BGWhw5JF.js → AccountNotFoundScreen-DVNyPmsv.js} +1 -1
- package/dist/cjs/{Address-Ccb_vB_O.js → Address-DS8jr4KC.js} +1 -1
- package/dist/cjs/{AffirmativeConsentScreen-BeNpA8vg.js → AffirmativeConsentScreen-DyJJyib-.js} +1 -1
- package/dist/cjs/{AllowlistRejectionScreen-DiQ106Je.js → AllowlistRejectionScreen-BA5CtMhJ.js} +1 -1
- package/dist/cjs/{AuthenticateWithWalletScreen-fOZ6wpNr.js → AuthenticateWithWalletScreen-C9AjdT7D.js} +1 -1
- package/dist/cjs/{AwaitingEvmToSolBridgingScreen-5zCafWqh.js → AwaitingEvmToSolBridgingScreen-DhBnzI7i.js} +1 -1
- package/dist/cjs/{AwaitingExternalEthereumTransferScreen-BCDcDb5e.js → AwaitingExternalEthereumTransferScreen-CErFwU8W.js} +1 -1
- package/dist/cjs/{AwaitingPasswordlessCodeScreen-9ZGMTuto.js → AwaitingPasswordlessCodeScreen-DwygNK8c.js} +1 -1
- package/dist/cjs/{AwaitingSolToEvmBridgingScreen-DrU5HjJs.js → AwaitingSolToEvmBridgingScreen-BDbp4VVX.js} +1 -1
- package/dist/cjs/{BridgeNetworkSelectionView-ByOqmqhr.js → BridgeNetworkSelectionView-QbDzAkBf.js} +1 -1
- package/dist/cjs/{CaptchaScreen-CpC_t_wY.js → CaptchaScreen-25cmBeXd.js} +1 -1
- package/dist/cjs/{CoinbaseOnrampStatusScreen-BED_Uc3M.js → CoinbaseOnrampStatusScreen-B4O76TSW.js} +1 -1
- package/dist/cjs/{ConnectEmailForm-CkOZyqGm.js → ConnectEmailForm-TUr_nIXO.js} +1 -1
- package/dist/cjs/{ConnectLedgerScreen-BRRli2qt.js → ConnectLedgerScreen-C56HhWZ4.js} +1 -1
- package/dist/cjs/{ConnectOnlyLandingScreen-Cb8nxLme.js → ConnectOnlyLandingScreen-C6zMfgKT.js} +1 -1
- package/dist/cjs/{ConnectOnlyStatusScreen-BH3D3Vhb.js → ConnectOnlyStatusScreen-BW4GRWjY.js} +1 -1
- package/dist/cjs/{ConnectOrCreateScreen-DrwTfZH8.js → ConnectOrCreateScreen-BOXNG4xb.js} +1 -1
- package/dist/cjs/{ConnectPhoneForm-j-Cyd_qm.js → ConnectPhoneForm-C64ut2YA.js} +1 -1
- package/dist/cjs/{ConnectWalletView-CTLd5C6n.js → ConnectWalletView-CxT8A3PO.js} +5 -5
- package/dist/cjs/{ConnectionStatusScreen-Z01aygJs.js → ConnectionStatusScreen-D5ml_1JB.js} +1 -1
- package/dist/cjs/{CrossAppAuthScreen-piMA7do8.js → CrossAppAuthScreen-BUgwjQEo.js} +1 -1
- package/dist/cjs/{CustomLandingScreenView-CheZxCX8.js → CustomLandingScreenView-DpZylDys.js} +1 -1
- package/dist/cjs/{DelegatedActionsConsentScreen-Cw3Fo8gM.js → DelegatedActionsConsentScreen-vjp34amr.js} +1 -1
- package/dist/cjs/{DelegatedActionsRevokeScreen-BDzCEVqg.js → DelegatedActionsRevokeScreen-BRnymqb4.js} +1 -1
- package/dist/cjs/{EmbeddedWalletConnectingScreen-VUzY2VsQ.js → EmbeddedWalletConnectingScreen-CJImT0xn.js} +1 -1
- package/dist/cjs/{EmbeddedWalletCreatedScreen-DYU_efvf.js → EmbeddedWalletCreatedScreen-olFu2XaK.js} +1 -1
- package/dist/cjs/{EmbeddedWalletKeyExportScreen-BZtOjZpV.js → EmbeddedWalletKeyExportScreen-fUNftcl9.js} +1 -1
- package/dist/cjs/{EmbeddedWalletOnAccountCreateScreen-BduYIHj0.js → EmbeddedWalletOnAccountCreateScreen-3gQ_ueMW.js} +1 -1
- package/dist/cjs/{EmbeddedWalletPasswordUpdateScreen-CfehwM23.js → EmbeddedWalletPasswordUpdateScreen-BwR98GME.js} +1 -1
- package/dist/cjs/{EmbeddedWalletPasswordUpdateSplashScreen-cYsDDghn.js → EmbeddedWalletPasswordUpdateSplashScreen-Cq3Q12cU.js} +1 -1
- package/dist/cjs/{EnrollTotp-Ol5CsgOA.js → EnrollTotp-gb2ZD1OP.js} +1 -1
- package/dist/cjs/{ErrorScreen-BLknI5mu.js → ErrorScreen-8lum7GuV.js} +1 -1
- package/dist/cjs/{FarcasterConnectStatusScreen-Bp5BSNvP.js → FarcasterConnectStatusScreen-HjVUl4T8.js} +1 -1
- package/dist/cjs/{FarcasterSignerStatusScreen-CQcKmS-B.js → FarcasterSignerStatusScreen-DM8JCOtc.js} +1 -1
- package/dist/cjs/{FiatOnrampScreen-dUYsHWAv.js → FiatOnrampScreen-CssEDddD.js} +1 -1
- package/dist/cjs/{FundSolWalletWithExternalSolanaWallet-BrB3MaI7.js → FundSolWalletWithExternalSolanaWallet-Cd6aE4Ez.js} +1 -1
- package/dist/cjs/{FundWalletMethodHeader-Dp0qK8-s.js → FundWalletMethodHeader-B2m4qoMl.js} +1 -1
- package/dist/cjs/{FundWithBankDepositScreen-B7jC-0EU.js → FundWithBankDepositScreen-Bd3qwIja.js} +1 -1
- package/dist/cjs/{FundingEditAmountScreen-CHIv-Klg.js → FundingEditAmountScreen-CpH4uW9e.js} +1 -1
- package/dist/cjs/{FundingMethodSelectionScreen-wXU7ZFOV.js → FundingMethodSelectionScreen-oPLywPNT.js} +1 -1
- package/dist/cjs/{InAppBrowserLoginNotPossible-BFWIzrVG.js → InAppBrowserLoginNotPossible-CNMLB23G.js} +1 -1
- package/dist/cjs/{InstallWalletScreen-vRXPRhOy.js → InstallWalletScreen-DCflfk0L.js} +1 -1
- package/dist/cjs/{LandingScreen-6YsWMMj3.js → LandingScreen-DpcaJnN8.js} +1 -1
- package/dist/cjs/{LinkConflictScreen-DC4hgB0t.js → LinkConflictScreen-qwJetI_-.js} +1 -1
- package/dist/cjs/{LinkEmailScreen-BbDbprJy.js → LinkEmailScreen-a5if5KVZ.js} +1 -1
- package/dist/cjs/{LinkPasskeyScreen-DP4u6Lgj.js → LinkPasskeyScreen-CIH1emcH.js} +1 -1
- package/dist/cjs/{LinkPhoneScreen-B6D_a4Ej.js → LinkPhoneScreen-D5CEG6v7.js} +1 -1
- package/dist/cjs/{LoginFailedScreen-BDDXHvvn.js → LoginFailedScreen-BaCiZhaf.js} +1 -1
- package/dist/cjs/{ManualTransferScreen-DQTp_iKx.js → ManualTransferScreen-DrrYyEWA.js} +1 -1
- package/dist/cjs/{MfaAuthEnrollmentFlowScreen-CIbZ0xIA.js → MfaAuthEnrollmentFlowScreen-CxGPcI3e.js} +1 -1
- package/dist/cjs/{MfaAuthVerifyFlowScreen-DCG37dVx.js → MfaAuthVerifyFlowScreen-DLG-BVQm.js} +1 -1
- package/dist/cjs/{MfaEnrollmentFlowScreen-BMvFxN4m.js → MfaEnrollmentFlowScreen-DN5QEHfD.js} +1 -1
- package/dist/cjs/{MfaVerifyFlowScreen-A1ir9y_A.js → MfaVerifyFlowScreen-DFkfpD5B.js} +1 -1
- package/dist/cjs/{ModalHeader-DIWI7Qd8.js → ModalHeader-D-XonahD.js} +1 -1
- package/dist/cjs/{MoonpayStatusScreen-DJIqzTLu.js → MoonpayStatusScreen-4U5kZOj_.js} +1 -1
- package/dist/cjs/{OAuthStatusScreen-3YsQvDT2.js → OAuthStatusScreen-Dh3Q2rRA.js} +1 -1
- package/dist/cjs/{PasskeySelectSignupOrLogin-CPzx0bS6.js → PasskeySelectSignupOrLogin-DukRCiqA.js} +1 -1
- package/dist/cjs/{PasskeyStatusScreen-Y0HfrSs0.js → PasskeyStatusScreen-3qjN5wk9.js} +1 -1
- package/dist/cjs/{PasswordRecoveryScreen-DnBSIkCR.js → PasswordRecoveryScreen-Bu7cI0ZC.js} +1 -1
- package/dist/cjs/{QrCode-DgJWNtET.js → QrCode-Cic3j7zf.js} +1 -1
- package/dist/cjs/{RecoveryOAuthStatusScreen-O90TAb-V.js → RecoveryOAuthStatusScreen-CrjCmmBP.js} +1 -1
- package/dist/cjs/{RecoveryPasswordCreateScreen-CSEj-YHC.js → RecoveryPasswordCreateScreen-4iIWUlG8.js} +1 -1
- package/dist/cjs/{RecoverySelectionScreen-ASIhYmAi.js → RecoverySelectionScreen-BtfJrsxz.js} +1 -1
- package/dist/cjs/{Screen-QiXdkVhj.js → Screen-B544esap.js} +1 -1
- package/dist/cjs/{ScreenLayout-BKim1Ivq.js → ScreenLayout-Ct2ArhVz.js} +1 -1
- package/dist/cjs/{SelectSourceAsset-Bvvzhx1z.js → SelectSourceAsset-DavDKcHK.js} +1 -1
- package/dist/cjs/{SetAutomaticRecoveryScreen-xWSOwMal.js → SetAutomaticRecoveryScreen-Ca7Woguz.js} +1 -1
- package/dist/cjs/{SetWalletPasswordForm-If1qCSys.js → SetWalletPasswordForm-CI4cOM1Z.js} +1 -1
- package/dist/cjs/{SignRequestScreen-BsqcuRPT.js → SignRequestScreen-fvlO4Zbo.js} +1 -1
- package/dist/cjs/{StandardSignAndSendTransactionScreen-CwrOUIqL.js → StandardSignAndSendTransactionScreen-B5NbB4UA.js} +1 -1
- package/dist/cjs/{TelegramAuthScreen-CCy2dkrp.js → TelegramAuthScreen-Bxwk45I6.js} +1 -1
- package/dist/cjs/{TransactionDetails-6PDseXbG.js → TransactionDetails-CF3pWzeu.js} +1 -1
- package/dist/cjs/{TransactionErrorView-kWt_0R3I.js → TransactionErrorView-ijhsEu6z.js} +1 -1
- package/dist/cjs/{TransferFromWalletScreen-0TLfcjLe.js → TransferFromWalletScreen-BvbRgShb.js} +1 -1
- package/dist/cjs/{TransferOrBridgeLoadingScreen-BkGgll1g.js → TransferOrBridgeLoadingScreen-Bk38xeKC.js} +1 -1
- package/dist/cjs/{UpdateEmailScreen-Bk2OG5C2.js → UpdateEmailScreen-BFdQGPVR.js} +1 -1
- package/dist/cjs/{UpdatePhoneScreen-BBSNlATd.js → UpdatePhoneScreen-D7Y31sc6.js} +1 -1
- package/dist/cjs/{UserLimitReachedScreen-CI5im3l3.js → UserLimitReachedScreen-CYEaYgHR.js} +1 -1
- package/dist/cjs/{WalletInfoCard-BkhIxyu0.js → WalletInfoCard-BFqk5nx-.js} +1 -1
- package/dist/cjs/{WalletInterstitialScreen-DVj91uDW.js → WalletInterstitialScreen-DIxj_CfT.js} +1 -1
- package/dist/cjs/{WalletLink-BNAUeqsj.js → WalletLink-Bn2Sg1t5.js} +1 -1
- package/dist/cjs/{WalletOverflowButton-CYOV-_Ot.js → WalletOverflowButton-GNSOyAYk.js} +1 -1
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/{context-RXM4aLoW.js → context-CxOMsWEC.js} +1 -1
- package/dist/cjs/{ethers-1Tcci65u.js → ethers-BLM3stsp.js} +1 -1
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/{get-entropy-details-for-user-CfpHdOOL.js → get-entropy-details-for-user-DvVkUB6X.js} +1 -1
- package/dist/cjs/{getErc20Balance-D3GMY7bi.js → getErc20Balance-CQ9xkgw_.js} +1 -1
- package/dist/cjs/{getErc20TokenInfo-D7Op14dW.js → getErc20TokenInfo-RGU5DUkq.js} +1 -1
- package/dist/cjs/{index-D31YtUmO.js → index-B6Hq5QIl.js} +1 -1
- package/dist/cjs/{index-Cg7lD262.js → index-BSLfxEzu.js} +3 -3
- package/dist/cjs/{index-ChrxGj1W.js → index-BxxiFBfO.js} +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internal.js +1 -1
- package/dist/cjs/{privy-context-CJMUK9qU.js → privy-context-DhB5mzyL.js} +1 -1
- package/dist/cjs/{shared-CX36Xo8K.js → shared-DiCZ9TOS.js} +1 -1
- package/dist/cjs/{shouldProceedtoEmbeddedWalletCreationFlow-CPd-uKKS.js → shouldProceedtoEmbeddedWalletCreationFlow-Clzt7zrv.js} +1 -1
- package/dist/cjs/{smart-wallets-W-C3-7mX.js → smart-wallets-CtIyBfrY.js} +1 -1
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/{styles-CZ7NmfYl.js → styles-BTg5229F.js} +1 -1
- package/dist/cjs/{to-ui-error-waPPZTE3.js → to-ui-error-xMaiBclO.js} +1 -1
- package/dist/cjs/ui.js +1 -1
- package/dist/cjs/{use-export-wallet-w7BPerzn.js → use-export-wallet-C6g3tNhp.js} +1 -1
- package/dist/cjs/{use-export-wallet-D-UqGx7Q.js → use-export-wallet-CxvMZkka.js} +1 -1
- package/dist/cjs/{useActiveWallet-mN0aJ9Aw.js → useActiveWallet-Ca1F42NZ.js} +1 -1
- package/dist/cjs/{useGetTokenPrice-DYrgDlJ6.js → useGetTokenPrice-fI9ARjVI.js} +1 -1
- package/dist/cjs/{useI18n-B652ZmJJ.js → useI18n-DipOTna5.js} +1 -1
- package/dist/cjs/usePrivy-U6wMbctH.js +1 -0
- package/dist/cjs/{useSolanaRpcClient-H6-9qxr1.js → useSolanaRpcClient-aKVbP2JU.js} +1 -1
- package/dist/cjs/{useWalletBalance-BoqIc-xj.js → useWalletBalance-p7qfqjRC.js} +1 -1
- package/dist/cjs/{useWallets-TGALIhje.js → useWallets-gb9Umiju.js} +1 -1
- package/dist/esm/{AccountNotFoundScreen-iWb1klHB.mjs → AccountNotFoundScreen-C7To-5vI.mjs} +1 -1
- package/dist/esm/{Address-PwZSXm9b.mjs → Address-DFhsL61i.mjs} +1 -1
- package/dist/esm/{AffirmativeConsentScreen-TmfMGlOl.mjs → AffirmativeConsentScreen-Dl7lWml4.mjs} +1 -1
- package/dist/esm/{AllowlistRejectionScreen-Bg7x1RNv.mjs → AllowlistRejectionScreen-CQz_DxeI.mjs} +1 -1
- package/dist/esm/{AuthenticateWithWalletScreen-Bfceh8Ep.mjs → AuthenticateWithWalletScreen-BJfgl_9b.mjs} +1 -1
- package/dist/esm/{AwaitingEvmToSolBridgingScreen-CPok6C1U.mjs → AwaitingEvmToSolBridgingScreen-CPK1mbrP.mjs} +1 -1
- package/dist/esm/{AwaitingExternalEthereumTransferScreen-DJ5AqFjU.mjs → AwaitingExternalEthereumTransferScreen-C2Ic-wWl.mjs} +1 -1
- package/dist/esm/{AwaitingPasswordlessCodeScreen-BFhcvo2a.mjs → AwaitingPasswordlessCodeScreen-CKhOpauy.mjs} +1 -1
- package/dist/esm/{AwaitingSolToEvmBridgingScreen-yiXjF4aq.mjs → AwaitingSolToEvmBridgingScreen-0silAflP.mjs} +1 -1
- package/dist/esm/{BridgeNetworkSelectionView-DTgXCOhN.mjs → BridgeNetworkSelectionView-P9DT3N3B.mjs} +1 -1
- package/dist/esm/{CaptchaScreen-BPixv0U9.mjs → CaptchaScreen-BxWtZF1r.mjs} +1 -1
- package/dist/esm/{CoinbaseOnrampStatusScreen-BYIZM_n_.mjs → CoinbaseOnrampStatusScreen-kfdMBs7p.mjs} +1 -1
- package/dist/esm/{ConnectEmailForm-BCqawfO-.mjs → ConnectEmailForm-MZhtYjvT.mjs} +1 -1
- package/dist/esm/{ConnectLedgerScreen-0WQeyQIz.mjs → ConnectLedgerScreen--Er5X0K2.mjs} +1 -1
- package/dist/esm/{ConnectOnlyLandingScreen-BHOEo5M4.mjs → ConnectOnlyLandingScreen-O42h34bB.mjs} +1 -1
- package/dist/esm/{ConnectOnlyStatusScreen-CCxiAXex.mjs → ConnectOnlyStatusScreen-BCXAj_gW.mjs} +1 -1
- package/dist/esm/{ConnectOrCreateScreen-BnN5Eocd.mjs → ConnectOrCreateScreen-vbXuI2JY.mjs} +1 -1
- package/dist/esm/{ConnectPhoneForm-DCm_Nfv1.mjs → ConnectPhoneForm-DptByaXA.mjs} +1 -1
- package/dist/esm/{ConnectWalletView-DSry6Xg-.mjs → ConnectWalletView-rdXlInEf.mjs} +3 -3
- package/dist/esm/{ConnectionStatusScreen-CS1PwenJ.mjs → ConnectionStatusScreen-BsUwbpes.mjs} +1 -1
- package/dist/esm/{CrossAppAuthScreen-XZ2iPEDY.mjs → CrossAppAuthScreen-XgfNqS_E.mjs} +1 -1
- package/dist/esm/{CustomLandingScreenView-l2CDbRP5.mjs → CustomLandingScreenView-C5YFt-eX.mjs} +1 -1
- package/dist/esm/{DelegatedActionsConsentScreen-C0Dc6Xjx.mjs → DelegatedActionsConsentScreen-BArG2a2j.mjs} +1 -1
- package/dist/esm/{DelegatedActionsRevokeScreen-uqLZgEZY.mjs → DelegatedActionsRevokeScreen-D4iRvuQE.mjs} +1 -1
- package/dist/esm/{EmbeddedWalletConnectingScreen-Ber6xBu2.mjs → EmbeddedWalletConnectingScreen-BsMOU99D.mjs} +1 -1
- package/dist/esm/{EmbeddedWalletCreatedScreen-Cf2s9crl.mjs → EmbeddedWalletCreatedScreen-zesLpyMv.mjs} +1 -1
- package/dist/esm/{EmbeddedWalletKeyExportScreen-DTqkrVOj.mjs → EmbeddedWalletKeyExportScreen-DqAsv8gU.mjs} +1 -1
- package/dist/esm/{EmbeddedWalletOnAccountCreateScreen-CRJF2oQX.mjs → EmbeddedWalletOnAccountCreateScreen-DdyATYUI.mjs} +1 -1
- package/dist/esm/{EmbeddedWalletPasswordUpdateScreen-BnFOssqj.mjs → EmbeddedWalletPasswordUpdateScreen-CxnIbTsV.mjs} +1 -1
- package/dist/esm/{EmbeddedWalletPasswordUpdateSplashScreen-CypdEeoF.mjs → EmbeddedWalletPasswordUpdateSplashScreen-D5vd3wxy.mjs} +1 -1
- package/dist/esm/{EnrollTotp-BMGn5sqG.mjs → EnrollTotp-DdrqF-3H.mjs} +1 -1
- package/dist/esm/{ErrorScreen-DYZatCfj.mjs → ErrorScreen-D11us51W.mjs} +1 -1
- package/dist/esm/{FarcasterConnectStatusScreen-DDm7pIDd.mjs → FarcasterConnectStatusScreen-fyZcmQgu.mjs} +1 -1
- package/dist/esm/{FarcasterSignerStatusScreen-DlCt0kxK.mjs → FarcasterSignerStatusScreen-Dk_lmMg7.mjs} +1 -1
- package/dist/esm/{FiatOnrampScreen-isedatpo.mjs → FiatOnrampScreen-CCjWM9Ur.mjs} +1 -1
- package/dist/esm/{FundSolWalletWithExternalSolanaWallet-gBuJgt9U.mjs → FundSolWalletWithExternalSolanaWallet-BcWESWy7.mjs} +1 -1
- package/dist/esm/{FundWalletMethodHeader-dEfQKUIt.mjs → FundWalletMethodHeader-y6GQmPN-.mjs} +1 -1
- package/dist/esm/{FundWithBankDepositScreen-CslZ9KKD.mjs → FundWithBankDepositScreen-KmI-NyT-.mjs} +1 -1
- package/dist/esm/{FundingEditAmountScreen-x1Yf2Eyo.mjs → FundingEditAmountScreen-39sxv4-N.mjs} +1 -1
- package/dist/esm/{FundingMethodSelectionScreen-CsMVaK3F.mjs → FundingMethodSelectionScreen-C9T6oLOo.mjs} +1 -1
- package/dist/esm/{InAppBrowserLoginNotPossible-BdS_u6t4.mjs → InAppBrowserLoginNotPossible-DmQye6Pk.mjs} +1 -1
- package/dist/esm/{InstallWalletScreen-BeYedfev.mjs → InstallWalletScreen-UxD8rNul.mjs} +1 -1
- package/dist/esm/{LandingScreen-DUDImYql.mjs → LandingScreen-DmPu0MPZ.mjs} +1 -1
- package/dist/esm/{LinkConflictScreen-ClUq6bHA.mjs → LinkConflictScreen-Dk3MkQpa.mjs} +1 -1
- package/dist/esm/{LinkEmailScreen-DXSe8U9d.mjs → LinkEmailScreen-CfRqXrNI.mjs} +1 -1
- package/dist/esm/{LinkPasskeyScreen-C1QMXwHt.mjs → LinkPasskeyScreen-BTtF-B9N.mjs} +1 -1
- package/dist/esm/{LinkPhoneScreen-CRXA4Hy0.mjs → LinkPhoneScreen-DrNHNW0i.mjs} +1 -1
- package/dist/esm/{LoginFailedScreen-BWx9URVV.mjs → LoginFailedScreen-CRidKWt0.mjs} +1 -1
- package/dist/esm/{ManualTransferScreen-CGq7L0Ci.mjs → ManualTransferScreen-CaeG3gSm.mjs} +1 -1
- package/dist/esm/{MfaAuthEnrollmentFlowScreen-CDtJNWv8.mjs → MfaAuthEnrollmentFlowScreen-QNnZztPK.mjs} +1 -1
- package/dist/esm/{MfaAuthVerifyFlowScreen-DT0vQYdD.mjs → MfaAuthVerifyFlowScreen-CxnNg5C5.mjs} +1 -1
- package/dist/esm/{MfaEnrollmentFlowScreen-DoVI0gRh.mjs → MfaEnrollmentFlowScreen-DzgC_f-O.mjs} +1 -1
- package/dist/esm/{MfaVerifyFlowScreen-p8IPHVQN.mjs → MfaVerifyFlowScreen-B1GNo8Xm.mjs} +1 -1
- package/dist/esm/{ModalHeader-Duq1Izpl.mjs → ModalHeader-DnjCPU3j.mjs} +1 -1
- package/dist/esm/{MoonpayStatusScreen-C1Z_6gNn.mjs → MoonpayStatusScreen-CklNYEWb.mjs} +1 -1
- package/dist/esm/{OAuthStatusScreen-BTVsCmCg.mjs → OAuthStatusScreen-B6GSPYhl.mjs} +1 -1
- package/dist/esm/{PasskeySelectSignupOrLogin-B-onsqZo.mjs → PasskeySelectSignupOrLogin-MBv2tZo-.mjs} +1 -1
- package/dist/esm/{PasskeyStatusScreen-B1umlQqV.mjs → PasskeyStatusScreen-BPWbs5Nw.mjs} +1 -1
- package/dist/esm/{PasswordRecoveryScreen-I3ZUDm0-.mjs → PasswordRecoveryScreen-CZCj98I8.mjs} +1 -1
- package/dist/esm/{QrCode-DZ4mEmXc.mjs → QrCode-BHbLI4rX.mjs} +1 -1
- package/dist/esm/{RecoveryOAuthStatusScreen-GJOLz9Qg.mjs → RecoveryOAuthStatusScreen-DVsqHDmE.mjs} +1 -1
- package/dist/esm/{RecoveryPasswordCreateScreen-BnvmaEYh.mjs → RecoveryPasswordCreateScreen-C89EWiuO.mjs} +1 -1
- package/dist/esm/{RecoverySelectionScreen-iOlIYqRe.mjs → RecoverySelectionScreen-1Vlp8fVi.mjs} +1 -1
- package/dist/esm/{Screen-Ce8BE24H.mjs → Screen-BHWyivgu.mjs} +1 -1
- package/dist/esm/{ScreenLayout-B6n5Feil.mjs → ScreenLayout-D7WpqBtE.mjs} +1 -1
- package/dist/esm/{SelectSourceAsset-zsEmZ5td.mjs → SelectSourceAsset-CiSao4AW.mjs} +1 -1
- package/dist/esm/{SetAutomaticRecoveryScreen-BS08blBS.mjs → SetAutomaticRecoveryScreen-DietkZKW.mjs} +1 -1
- package/dist/esm/{SetWalletPasswordForm-Dptwfaam.mjs → SetWalletPasswordForm-DTi1Jbtw.mjs} +1 -1
- package/dist/esm/{SignRequestScreen-DSZ9BlSE.mjs → SignRequestScreen-B_Ox6MOX.mjs} +1 -1
- package/dist/esm/{StandardSignAndSendTransactionScreen-BxF1ai6w.mjs → StandardSignAndSendTransactionScreen-CrVpHuvN.mjs} +1 -1
- package/dist/esm/{TelegramAuthScreen-BgAQJBxJ.mjs → TelegramAuthScreen-CZZaAiYq.mjs} +1 -1
- package/dist/esm/{TransactionDetails-CVClqqlA.mjs → TransactionDetails-DUAqjI_O.mjs} +1 -1
- package/dist/esm/{TransactionErrorView-B_dlkXgb.mjs → TransactionErrorView-BehNZVCh.mjs} +1 -1
- package/dist/esm/{TransferFromWalletScreen-7dBrxdtu.mjs → TransferFromWalletScreen-BCEzW4SH.mjs} +1 -1
- package/dist/esm/{TransferOrBridgeLoadingScreen-CknmH__D.mjs → TransferOrBridgeLoadingScreen-BfVr4ZWB.mjs} +1 -1
- package/dist/esm/{UpdateEmailScreen-COQBeTV_.mjs → UpdateEmailScreen-Ci2FSOkW.mjs} +1 -1
- package/dist/esm/{UpdatePhoneScreen-SH0ZMLhy.mjs → UpdatePhoneScreen-DCaxJSCD.mjs} +1 -1
- package/dist/esm/{UserLimitReachedScreen-Bbjr58Rh.mjs → UserLimitReachedScreen-CsD_fKH1.mjs} +1 -1
- package/dist/esm/{WalletInfoCard-CSqr9o--.mjs → WalletInfoCard-DkYb13at.mjs} +1 -1
- package/dist/esm/{WalletInterstitialScreen-C62appnM.mjs → WalletInterstitialScreen-a-o6jPKb.mjs} +1 -1
- package/dist/esm/{WalletLink-WeWEMb7C.mjs → WalletLink-BRkUlo2K.mjs} +1 -1
- package/dist/esm/{WalletOverflowButton-XkatV0nc.mjs → WalletOverflowButton-DSPUFJ5T.mjs} +1 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/{context-aGvo4MVQ.mjs → context-DanhWeBg.mjs} +1 -1
- package/dist/esm/{ethers-BNftJuZG.mjs → ethers-iL-1LJcq.mjs} +1 -1
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/{get-entropy-details-for-user-DkZdXKpr.mjs → get-entropy-details-for-user-BGqBIfqR.mjs} +1 -1
- package/dist/esm/{getErc20Balance-B5YTRX0-.mjs → getErc20Balance-gArwSiSB.mjs} +1 -1
- package/dist/esm/{getErc20TokenInfo-Dx_e_xiA.mjs → getErc20TokenInfo-CagSRUvz.mjs} +1 -1
- package/dist/esm/{index-6ULxuXBn.mjs → index-B9BAjdI3.mjs} +1 -1
- package/dist/esm/{index-D23O4czL.mjs → index-cnyso2Fp.mjs} +3 -3
- package/dist/esm/{index-BmQvaRvI.mjs → index-vGEfIWzb.mjs} +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/{privy-context-CkPtrpbt.mjs → privy-context-pimLCE3L.mjs} +1 -1
- package/dist/esm/{shared-BivH4vdQ.mjs → shared-DkAMLjm5.mjs} +1 -1
- package/dist/esm/{shouldProceedtoEmbeddedWalletCreationFlow-BSnOzrud.mjs → shouldProceedtoEmbeddedWalletCreationFlow-CvbohbW6.mjs} +1 -1
- package/dist/esm/{smart-wallets-BhZ-uX3v.mjs → smart-wallets-Bp1oklP0.mjs} +1 -1
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/{styles--34ZnZR_.mjs → styles-DMbxOKl7.mjs} +1 -1
- package/dist/esm/{to-ui-error-DgTXOCnh.mjs → to-ui-error-S-MThHnv.mjs} +1 -1
- package/dist/esm/ui.mjs +1 -1
- package/dist/esm/{use-export-wallet-Db8GdSAT.mjs → use-export-wallet-9if9oowB.mjs} +1 -1
- package/dist/esm/{use-export-wallet-BqvE_ud1.mjs → use-export-wallet-BdeWv8ke.mjs} +1 -1
- package/dist/esm/{useActiveWallet-By6UNJY1.mjs → useActiveWallet-DFp38Dx-.mjs} +1 -1
- package/dist/esm/{useGetTokenPrice-CveNETyP.mjs → useGetTokenPrice-CwmlFVt_.mjs} +1 -1
- package/dist/esm/{useI18n-D3p37xc_.mjs → useI18n-BpRybzwE.mjs} +1 -1
- package/dist/esm/usePrivy-ChZSTtn2.mjs +1 -0
- package/dist/esm/{useSolanaRpcClient-DgxuhW6A.mjs → useSolanaRpcClient-C7No0-0C.mjs} +1 -1
- package/dist/esm/{useWalletBalance-DyK680KW.mjs → useWalletBalance-BFMUBOkj.mjs} +1 -1
- package/dist/esm/{useWallets-DHM1PNtl.mjs → useWallets-QiqVPxAb.mjs} +1 -1
- package/package.json +7 -7
- package/dist/cjs/usePrivy-NgERWVoo.js +0 -1
- package/dist/esm/usePrivy-DPZ1iMmn.mjs +0 -1
|
@@ -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-aGvo4MVQ.mjs";import{isAddress as h}from"viem";import{getAddress as p,toHex as u}from"viem/utils";import{P as m,u as w}from"./internal-context-C4ZqP8IF.mjs";import{r as y,o as g,n as f,c as b,i as v,a as x,f as k,w as C,S as _}from"./use-export-wallet-Db8GdSAT.mjs";import{jsxs as T,jsx as z}from"react/jsx-runtime";import*as $ from"react-device-detect";import{styled as P,css as S}from"styled-components";import{u as j}from"./events-context-CI0iqAXA.mjs";import{P as I}from"./privy-context-CkPtrpbt.mjs";import{u as N}from"./get-entropy-details-for-user-DkZdXKpr.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=>p(t.address)===p(e)));return{type:"ethereum",address:p(e),chainId:t,meta:n,imported:i,switchChain:async n=>{let i,l;if(!a)throw new m("Wallet is not currently connected.");let o=this.wallets.find((t=>p(t.address)===p(e)))?.chainId;if(!o)throw new m("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 m(`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 m(`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 m("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new m("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(!h(i))return;let a=p(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=>p(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(p(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=>p(e)===p(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:[u(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 m(`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=[]}}class G extends J{get walletBranding(){return{id:this.id,name:this.name,icon:this.icon}}async initialize(){this.initialized=!0,this.emit("initialized")}async connect(){throw Error("connect called for an uninstalled wallet via the EthereumNullConnector")}disconnect(){throw Error("disconnect called for an uninstalled wallet via the EthereumNullConnector")}promptConnection(e){throw Error(`promptConnection called for an uninstalled wallet via the EthereumNullConnector for ${e}`)}constructor({id:e,name:t,icon:n,walletClientType:i,defaultChain:a}){super(i,[],a,{}),this.connectorType="null",this.proxyProvider=new K(void 0,s),this.id=e,this.name=t,this.icon=n}}const H=({...e})=>/*#__PURE__*/T("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",...e,children:[/*#__PURE__*/z("rect",{width:"32",height:"32",rx:"6",fill:"#121314"}),/*#__PURE__*/z("g",{transform:"translate(4, 4)",children:/*#__PURE__*/T("svg",{width:"24",height:"24",viewBox:"0 0 318.6 318.6",children:[/*#__PURE__*/z("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),/*#__PURE__*/z("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),/*#__PURE__*/z("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),/*#__PURE__*/z("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),/*#__PURE__*/z("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),/*#__PURE__*/z("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),/*#__PURE__*/z("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),/*#__PURE__*/z("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),/*#__PURE__*/z("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),/*#__PURE__*/z("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),/*#__PURE__*/z("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),/*#__PURE__*/z("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),/*#__PURE__*/z("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]})})]}),Q=["metamask","phantom","brave_wallet","rainbow","uniswap_wallet_extension","uniswap_extension","rabby_wallet","bybit_wallet","ronin_wallet","haha_wallet","crypto.com_wallet_extension","crypto.com_onchain","binance","bitget_wallet","coinbase_wallet","coinbase_smart_wallet","base_account","metamask","trust","safe","rainbow","uniswap","zerion","argent","spot","omni","cryptocom","blockchain","safepal","bitget_wallet","zengo","1inch","binance","exodus","mew_wallet","alphawallet","keyring_pro","mathwallet","unstoppable","obvious","ambire","internet_money_wallet","coin98","abc_wallet","arculus_wallet","haha","cling_wallet","broearn","copiosa","burrito_wallet","enjin_wallet","plasma_wallet","avacus","bee","pitaka","pltwallet","minerva","kryptogo","prema","slingshot","kriptonio","timeless","secux","bitizen","blocto","okx_wallet","safemoon","rabby_wallet","bybit_wallet","ronin_wallet","haha_wallet","privy","unknown","phantom","solflare","glow","backpack","jupiter","mobile_wallet_adapter"],X=Object.freeze({phantom:{client:"phantom",name:"Phantom",installLink:$.isFirefox?"https://addons.mozilla.org/en-US/firefox/addon/phantom-app/":"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa?hl=en",chainTypes:["ethereum","solana"],get isInstalled(){if("phantom"in window){let e=window;if(e?.phantom?.ethereum?.isPhantom&&e?.phantom?.ethereum?.chainId||e?.phantom?.solana?.isPhantom)return!0}return!1},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=Y({client:this.client,isSolana:t,connectOnly:n});return`${e?"phantom://":"https://phantom.app/ul/"}browse/${i}?ref=${i}`}},solflare:{client:"solflare",name:"Solflare",installLink:$.isFirefox?"https://addons.mozilla.org/es/firefox/addon/solflare-wallet/":"https://chromewebstore.google.com/detail/solflare-wallet/bhhhlbepdkbapadjdnnojkbgioiodbic",chainTypes:["solana"],get isInstalled(){return"solflare"in window&&!!window?.solflare?.isSolflare},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=Y({client:this.client,isSolana:t,connectOnly:n});return`${e?"solflare://ul/v1/":"https://solflare.com/ul/v1/"}browse/${i}?ref=${i}`}},jupiter:{client:"jupiter",name:"Jupiter Wallet",installLink:"https://chromewebstore.google.com/detail/jupiter-wallet/iledlaeogohbilgbfhmbgkgmpplbfboh",chainTypes:["solana"],get isInstalled(){return"jupiter"in window&&!!window?.jupiter?.isJupiter},getMobileRedirect({isSolana:e,connectOnly:t}){let n=Y({client:this.client,isSolana:e,connectOnly:t});return`jupjupjup://jup.ag/browse/${n}?ref=${n}`}},backpack:{client:"backpack",name:"Backpack",installLink:"https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof",chainTypes:["ethereum","solana"],get isInstalled(){return!(!("backpack"in window)||!window?.backpack?.ethereum?.isBackpack&&!window?.backpack?.solana?.isBackpack)},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=Y({client:this.client,isSolana:t,connectOnly:n});return`${e?"backpack://ul/v1/":"https://backpack.app/ul/v1/"}browse/${i}?ref=${i}`}},okx_wallet:{client:"okx_wallet",name:"OKX Wallet",installLink:"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",chainTypes:["ethereum","solana"],get isInstalled(){return"okxwallet"in window&&!!window?.okxwallet?.isOkxWallet},getMobileRedirect({isSolana:e,connectOnly:t}){return`okx://wallet/dapp/url?dappUrl=${Y({client:this.client,isSolana:e,connectOnly:t})}`}}});function V({connectorType:e,walletClientType:t}){for(let n of Q)if(e===n||t===n)return X[n]}function Y({client:e,isSolana:t,connectOnly:n}){let i=new URL(window.location.href);return i.searchParams.set("privy_connector",t?"solana_adapter":"injected"),i.searchParams.set("privy_wallet_client",e),i.searchParams.set("privy_connect_only",String(n)),encodeURIComponent(i.href.replace(/\/$/g,""))}class Z extends _{get walletBranding(){return{id:this.id,name:this.name,icon:this.icon}}async initialize(){this.initialized=!0,this.emit("initialized")}async connect(){throw Error("connect called for an uninstalled wallet via the SolanaNullConnector")}constructor({id:e,name:t,icon:n}){super({name:t},!1),this.connectorType="null",this.proxyProvider=new K(void 0,s),this.disconnect=async()=>{throw Error("disconnect called for an uninstalled wallet via the SolanaNullConnector")},this.promptConnection=async()=>{throw Error("promptConnection called for an uninstalled wallet via the SolanaNullConnector")},this.id=e,this.name=t,this.icon=n}}function ee(e){return"solana"===e.chainType}function te(e){return"solana"===e.type}const ne=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},ie=P.div`
|
|
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-DanhWeBg.mjs";import{isAddress as h}from"viem";import{getAddress as p,toHex as u}from"viem/utils";import{P as m,u as w}from"./internal-context-C4ZqP8IF.mjs";import{r as y,o as g,n as f,c as b,i as v,a as x,f as k,w as C,S as _}from"./use-export-wallet-9if9oowB.mjs";import{jsxs as T,jsx as z}from"react/jsx-runtime";import*as $ from"react-device-detect";import{styled as P,css as S}from"styled-components";import{u as j}from"./events-context-CI0iqAXA.mjs";import{P as I}from"./privy-context-pimLCE3L.mjs";import{u as N}from"./get-entropy-details-for-user-BGqBIfqR.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=>p(t.address)===p(e)));return{type:"ethereum",address:p(e),chainId:t,meta:n,imported:i,switchChain:async n=>{let i,l;if(!a)throw new m("Wallet is not currently connected.");let o=this.wallets.find((t=>p(t.address)===p(e)))?.chainId;if(!o)throw new m("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 m(`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 m(`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 m("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new m("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(!h(i))return;let a=p(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=>p(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(p(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=>p(e)===p(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:[u(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 m(`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=[]}}class G extends J{get walletBranding(){return{id:this.id,name:this.name,icon:this.icon}}async initialize(){this.initialized=!0,this.emit("initialized")}async connect(){throw Error("connect called for an uninstalled wallet via the EthereumNullConnector")}disconnect(){throw Error("disconnect called for an uninstalled wallet via the EthereumNullConnector")}promptConnection(e){throw Error(`promptConnection called for an uninstalled wallet via the EthereumNullConnector for ${e}`)}constructor({id:e,name:t,icon:n,walletClientType:i,defaultChain:a}){super(i,[],a,{}),this.connectorType="null",this.proxyProvider=new K(void 0,s),this.id=e,this.name=t,this.icon=n}}const H=({...e})=>/*#__PURE__*/T("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",...e,children:[/*#__PURE__*/z("rect",{width:"32",height:"32",rx:"6",fill:"#121314"}),/*#__PURE__*/z("g",{transform:"translate(4, 4)",children:/*#__PURE__*/T("svg",{width:"24",height:"24",viewBox:"0 0 318.6 318.6",children:[/*#__PURE__*/z("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),/*#__PURE__*/z("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),/*#__PURE__*/z("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),/*#__PURE__*/z("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),/*#__PURE__*/z("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),/*#__PURE__*/z("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),/*#__PURE__*/z("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),/*#__PURE__*/z("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),/*#__PURE__*/z("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),/*#__PURE__*/z("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),/*#__PURE__*/z("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),/*#__PURE__*/z("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),/*#__PURE__*/z("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]})})]}),Q=["metamask","phantom","brave_wallet","rainbow","uniswap_wallet_extension","uniswap_extension","rabby_wallet","bybit_wallet","ronin_wallet","haha_wallet","crypto.com_wallet_extension","crypto.com_onchain","binance","bitget_wallet","coinbase_wallet","coinbase_smart_wallet","base_account","metamask","trust","safe","rainbow","uniswap","zerion","argent","spot","omni","cryptocom","blockchain","safepal","bitget_wallet","zengo","1inch","binance","exodus","mew_wallet","alphawallet","keyring_pro","mathwallet","unstoppable","obvious","ambire","internet_money_wallet","coin98","abc_wallet","arculus_wallet","haha","cling_wallet","broearn","copiosa","burrito_wallet","enjin_wallet","plasma_wallet","avacus","bee","pitaka","pltwallet","minerva","kryptogo","prema","slingshot","kriptonio","timeless","secux","bitizen","blocto","okx_wallet","safemoon","rabby_wallet","bybit_wallet","ronin_wallet","haha_wallet","privy","unknown","phantom","solflare","glow","backpack","jupiter","mobile_wallet_adapter"],X=Object.freeze({phantom:{client:"phantom",name:"Phantom",installLink:$.isFirefox?"https://addons.mozilla.org/en-US/firefox/addon/phantom-app/":"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa?hl=en",chainTypes:["ethereum","solana"],get isInstalled(){if("phantom"in window){let e=window;if(e?.phantom?.ethereum?.isPhantom&&e?.phantom?.ethereum?.chainId||e?.phantom?.solana?.isPhantom)return!0}return!1},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=Y({client:this.client,isSolana:t,connectOnly:n});return`${e?"phantom://":"https://phantom.app/ul/"}browse/${i}?ref=${i}`}},solflare:{client:"solflare",name:"Solflare",installLink:$.isFirefox?"https://addons.mozilla.org/es/firefox/addon/solflare-wallet/":"https://chromewebstore.google.com/detail/solflare-wallet/bhhhlbepdkbapadjdnnojkbgioiodbic",chainTypes:["solana"],get isInstalled(){return"solflare"in window&&!!window?.solflare?.isSolflare},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=Y({client:this.client,isSolana:t,connectOnly:n});return`${e?"solflare://ul/v1/":"https://solflare.com/ul/v1/"}browse/${i}?ref=${i}`}},jupiter:{client:"jupiter",name:"Jupiter Wallet",installLink:"https://chromewebstore.google.com/detail/jupiter-wallet/iledlaeogohbilgbfhmbgkgmpplbfboh",chainTypes:["solana"],get isInstalled(){return"jupiter"in window&&!!window?.jupiter?.isJupiter},getMobileRedirect({isSolana:e,connectOnly:t}){let n=Y({client:this.client,isSolana:e,connectOnly:t});return`jupjupjup://jup.ag/browse/${n}?ref=${n}`}},backpack:{client:"backpack",name:"Backpack",installLink:"https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof",chainTypes:["ethereum","solana"],get isInstalled(){return!(!("backpack"in window)||!window?.backpack?.ethereum?.isBackpack&&!window?.backpack?.solana?.isBackpack)},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=Y({client:this.client,isSolana:t,connectOnly:n});return`${e?"backpack://ul/v1/":"https://backpack.app/ul/v1/"}browse/${i}?ref=${i}`}},okx_wallet:{client:"okx_wallet",name:"OKX Wallet",installLink:"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",chainTypes:["ethereum","solana"],get isInstalled(){return"okxwallet"in window&&!!window?.okxwallet?.isOkxWallet},getMobileRedirect({isSolana:e,connectOnly:t}){return`okx://wallet/dapp/url?dappUrl=${Y({client:this.client,isSolana:e,connectOnly:t})}`}}});function V({connectorType:e,walletClientType:t}){for(let n of Q)if(e===n||t===n)return X[n]}function Y({client:e,isSolana:t,connectOnly:n}){let i=new URL(window.location.href);return i.searchParams.set("privy_connector",t?"solana_adapter":"injected"),i.searchParams.set("privy_wallet_client",e),i.searchParams.set("privy_connect_only",String(n)),encodeURIComponent(i.href.replace(/\/$/g,""))}class Z extends _{get walletBranding(){return{id:this.id,name:this.name,icon:this.icon}}async initialize(){this.initialized=!0,this.emit("initialized")}async connect(){throw Error("connect called for an uninstalled wallet via the SolanaNullConnector")}constructor({id:e,name:t,icon:n}){super({name:t},!1),this.connectorType="null",this.proxyProvider=new K(void 0,s),this.disconnect=async()=>{throw Error("disconnect called for an uninstalled wallet via the SolanaNullConnector")},this.promptConnection=async()=>{throw Error("promptConnection called for an uninstalled wallet via the SolanaNullConnector")},this.id=e,this.name=t,this.icon=n}}function ee(e){return"solana"===e.chainType}function te(e){return"solana"===e.type}const ne=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},ie=P.div`
|
|
2
2
|
text-align: left;
|
|
3
3
|
flex-grow: 1;
|
|
4
4
|
`,ae=P.div`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as r,useEffect as e}from"react";import{addToDefaultChains as o}from"@privy-io/js-sdk-core";import{s as i}from"./context-
|
|
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-DanhWeBg.mjs";import{u as n}from"./internal-context-C4ZqP8IF.mjs";import{u as t}from"./useGetSolPrice-DaxM-vxD.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-DanhWeBg.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 r}from"react-device-detect";import{b as t,c as a,u as n}from"./internal-context-C4ZqP8IF.mjs";import{useCallback as o,useContext as i}from"react";import{q as s,u as l}from"./use-export-wallet-9if9oowB.mjs";import{f as d,d as c,g as p,a as u,h as y,e as m,u as E,P as w}from"./privy-context-pimLCE3L.mjs";import{a as h,u as v}from"./events-context-CI0iqAXA.mjs";import{create as f,generateWalletIdempotencyKey as T}from"@privy-io/js-sdk-core";import{b as W,j as g}from"./get-entropy-details-for-user-BGqBIfqR.mjs";import{u as A,W as S}from"./context-DanhWeBg.mjs";function D(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}function U(a,n){let o=D(n);if(e&&r&&o.universalLink)return C(o.universalLink,a);if(o.deepLink)return L(o.deepLink,a);if(o.universalLink)return C(o.universalLink,a);throw new t(`Unsupported wallet ${n.id}`)}function x(e,r){let t=D(r);if(t.universalLink)return C(t.universalLink,e)}let I="WALLETCONNECT_DEEPLINK_CHOICE";function _(){try{localStorage.removeItem(I)}catch{}}function b({href:e,name:r}){try{localStorage.setItem(I,JSON.stringify({href:e,name:r}))}catch{}}function k(){try{localStorage.removeItem(I)}catch{}}function M(e){return e.startsWith("http://")||e.startsWith("https://")}function L(e,r){if(M(e))return C(e,r);let t=e;return t.includes("://")||(t=e.replaceAll("/","").replaceAll(":",""),t=`${t}://`),t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function C(e,r){if(!M(e))return L(e,r);let t=e;return t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function R(e,r){window.open(e,r,"noreferrer noopener")}const P=({address:e,nonce:r})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${r}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`,N=Symbol("solana-funding-plugin"),O=Symbol("solana-ledger-plugin"),K=async({user:e,accessToken:r,proxy:t,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 t.create({accessToken:r,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 t.createSolana({accessToken:r,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}=W(e);await i(),await t.addWallet({accessToken:r,entropyId:a,entropyIdVerifier:n,chainType:u,hdWalletIndex:p})}let v=await a(),T=g(v,{chainType:u,walletIndex:p})[0];return l(v),{user:v,account:T}},$=async({appConfig:e,getAccessToken:r,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),r()]);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 t("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 W=u&&"createAdditional"in u&&u.createAdditional,A=g(o,{chainType:E});if(A[0]&&!W)throw s("createWallet","onError",a.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");let S=(U=A,U.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null))?.walletIndex??-1,D=w??(W?void 0:await T(o.id,E));var U;return B({accessToken:f,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:v,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:S+1,chainType:E,refreshSessionAndUser:m,setUser:p,idempotencyKey:D,additionalSigners:h})};let B=async({accessToken:e,appConfig:r,privy:t,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(r.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===r.embeddedWallets.mode)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!h&&r.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await j({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});let v=g(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 K({appConfig:r,walletIndex:d,chainType:y,user:l,accessToken:e,proxy:o,refreshSessionAndUser:i,privy:t,recoverEmbeddedWallet:s,setUser:m,idempotencyKey:E,additionalSigners:w})},j=async({emitPrivyEvent:e,setModalData:r,openModal:t,chainType:n})=>new Promise(((o,i)=>{r({createWallet:{onSuccess:({user:r,account:t})=>{e("createWallet","onSuccess",{wallet:t}),o({user:r,account:t})},onFailure:r=>{e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),i(r)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===n,shouldCreateSol:"solana"===n}}),t("EmbeddedWalletOnAccountCreateScreen")}));const z=()=>{let e=A(),r=h(),{setModalData:t}=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 r("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:r,recoverEmbeddedWallet:i,setModalData:t,openModal:l,setUser:s,options:u,timeoutDuration:S,chainType:n,idempotencyKey:m,additionalSigners:u?.signers})}}};function q(e){let{create:r}=z();return v("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const F=async({emitPrivyEvent:e,getAccessToken:r,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 t("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 t("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([r(),n(15e3)]);if(!E||!u)throw e("linkAccount","onError",a.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new t("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:r,refreshSessionAndUser:t,initializeWalletProxy:a}=n(),i=h(),s=A();return{importWallet:o((({privateKey:n,additionalSigners:o})=>F({getAccessToken:()=>r.getAccessToken(),user:e,initializeWalletProxy:a,refreshSessionAndUser:t,emitPrivyEvent:i,appConfig:s},{privateKey:n,chainType:"ethereum",additionalSigners:o})),[e,r,t,a,i,s])}},V=()=>{let{importWallet:e}=H(),{exportWallet:r}=l(),{createWallet:t}=q();return{...i(w),importWallet:e,createWallet:t,exportWallet:r}};export{N as S,x as a,U as b,K as c,_ as d,O as e,z as f,q as g,H as h,F as i,R as o,P as p,k as r,b 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-DanhWeBg.mjs";import{b as i,c as s}from"./internal-context-C4ZqP8IF.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 e,useCallback as a,useEffect as t}from"react";import{createPublicClient as o,http as n}from"viem";import{i}from"./get-entropy-details-for-user-
|
|
1
|
+
import{useState as r,useMemo as e,useCallback as a,useEffect as t}from"react";import{createPublicClient as o,http as n}from"viem";import{i}from"./get-entropy-details-for-user-BGqBIfqR.mjs";import{u as c}from"./internal-context-C4ZqP8IF.mjs";function s({rpcConfig:s,appId:l,address:m,chain:p}){let{chains:d}=c(),[f,u]=r(0n),[h,g]=r(!1),j=e((()=>{let r=p||d[0];if(r)return o({chain:p,transport:n(i(r,s,l))})}),[p,s,l]),v=a((async()=>{if(!m||!j)return;g(!0);let r=await j.getBalance({address:m}).catch(console.error);return r?(u(r),g(!1),r):void 0}),[j,m,u]);return t((()=>{v().catch(console.error)}),[]),{balance:f,isLoading:h,reloadBalance:v}}export{s as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getBase58Decoder as e,getTransactionDecoder as n,address as t,getTransactionEncoder as a}from"@solana/kit";import{useMemo as s,useEffect as i,useState as r}from"react";import{rpc as o,ConnectedStandardSolanaWallet as c}from"@privy-io/js-sdk-core";import{u as l,b as d,c as u,l as g}from"./internal-context-C4ZqP8IF.mjs";import{a as h,j as p,b as f,m as w,h as y}from"./privy-context-CkPtrpbt.mjs";import{u as A}from"./usePrivy-DPZ1iMmn.mjs";import{b as m,u as v}from"./get-entropy-details-for-user-DkZdXKpr.mjs";import b from"eventemitter3";import{base58 as T}from"@scure/base";import{u as O}from"./context-aGvo4MVQ.mjs";import{u as S}from"./use-sign-with-user-signer-BYctG7hm.mjs";import{b as _,a as E,u as I}from"./useSolanaRpcClient-DgxuhW6A.mjs";import{encoding as j}from"@privy-io/encoding";import{x as W}from"./use-export-wallet-Db8GdSAT.mjs";const M=["solana:mainnet","solana:devnet","solana:testnet"];function P(n){return e().decode(n)}function F(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var C=0,U="__private_"+C+++"__implementation";function D(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var N=0;function B(e){return"__private_"+N+++"_"+e}var x=/*#__PURE__*/B("_address"),R=/*#__PURE__*/B("_publicKey"),L=/*#__PURE__*/B("_chains"),V=/*#__PURE__*/B("_features"),Q=/*#__PURE__*/B("_label"),G=/*#__PURE__*/B("_icon");class K{get address(){return D(this,x)[x]}get publicKey(){return D(this,R)[R].slice()}get chains(){return D(this,L)[L].slice()}get features(){return D(this,V)[V].slice()}get label(){return D(this,Q)[Q]}get icon(){return D(this,G)[G]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),D(this,x)[x]=e,D(this,R)[R]=n,D(this,L)[L]=M,D(this,Q)[Q]=t,D(this,G)[G]=a,D(this,V)[V]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===K&&Object.freeze(this)}}function H(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var J=0;function Y(e){return"__private_"+J+++"_"+e}var k=/*#__PURE__*/Y("_listeners"),Z=/*#__PURE__*/Y("_version"),z=/*#__PURE__*/Y("_name"),q=/*#__PURE__*/Y("_icon"),X=/*#__PURE__*/Y("_injection"),$=/*#__PURE__*/Y("_isPrivyWallet"),ee=/*#__PURE__*/Y("_accounts"),ne=/*#__PURE__*/Y("_on"),te=/*#__PURE__*/Y("_emit"),ae=/*#__PURE__*/Y("_off"),se=/*#__PURE__*/Y("_connected"),ie=/*#__PURE__*/Y("_connect"),re=/*#__PURE__*/Y("_disconnect"),oe=/*#__PURE__*/Y("_signMessage"),ce=/*#__PURE__*/Y("_signAndSendTransaction"),le=/*#__PURE__*/Y("_signTransaction");function de(e,...n){H(this,k)[k][e]?.forEach((e=>e.apply(null,n)))}function ue(e,n){H(this,k)[k][e]=H(this,k)[k][e]?.filter((e=>n!==e))}function ge(e,s,i){let r=structuredClone(n().decode(e)),o=t(s);return o in r.signatures&&(r.signatures[o]=i),new Uint8Array(a().encode(r))}function he(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:s,privy:i,client:r}=l(),{user:c}=A(),{setModalData:g}=h(),{signWithUserSigner:w}=S();return{signMessage:({message:l,address:h,options:y})=>new Promise((async(A,v)=>{let b=p(c,h);if("privy"!==b?.walletClientType)return void v(new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:T,entropyIdVerifier:O}=m(c,b),S=f(b),E=_(l).toString("base64");if(E.length<1)return void v(new d("Message must be a non-empty string",void 0,u.INVALID_MESSAGE));let I=async()=>{let e;if(!c)throw Error("User must be authenticated before signing with a Privy wallet");let s=await r.getAccessToken();if(!s)throw Error("User must be authenticated to use their embedded wallet.");let l=n??await t(15e3);if(!l)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:b.address}))throw Error("Unable to connect to wallet");if(S){let n=await o(i,w,{chain_type:"solana",method:"signMessage",params:{message:E,encoding:"base64"},wallet_id:b.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await l.rpc({accessToken:s,entropyId:T,entropyIdVerifier:O,chainType:"solana",hdWalletIndex:b.walletIndex??0,requesterAppId:y?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:E}}});e=n.data.signature}return e};if(e({showWalletUIs:y?.uiOptions?.showWalletUIs}))try{let e=await I(),n=new Uint8Array(_(e,"base64"));A({signature:n})}catch(e){v(e)}else g({signMessage:{method:"solana_signMessage",data:E,confirmAndSign:I,onSuccess:e=>{A({signature:new Uint8Array(_(e,"base64"))})},onFailure:e=>{v(e)},uiOptions:y?.uiOptions??{}},connectWallet:{recoveryMethod:b.recoveryMethod,connectingWalletAddress:b.address,entropyId:T,entropyIdVerifier:O,isUnifiedWallet:S,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{v(new d("Failed to connect to wallet",e,u.UNKNOWN_CONNECT_WALLET_ERROR))}}}),s("EmbeddedWalletConnectingScreen")}))}}function pe(){let{isHeadlessSigning:e,openModal:n,privy:t}=l(),{setModalData:a}=h(),{signMessage:s}=he(),{signWithUserSigner:i}=S(),{user:r}=A();return{signTransaction:async({transaction:c,options:l,chain:g="solana:mainnet",address:h})=>{let w=p(r,h);if("privy"!==w?.walletClientType)throw new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND);let y=f(w);async function A(e){if(y){let n=await o(t,i,{chain_type:"solana",method:"signTransaction",params:{transaction:j.base64.fromBytes(e),encoding:"base64"},wallet_id:w.id});if(n.data&&"signed_transaction"in n.data)return{signedTransaction:new Uint8Array(j.base64.toBytes(n.data.signed_transaction))};throw Error("Failed to sign transaction")}let{signature:n}=await s({message:E(e),address:h,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:ge(e,h,n)}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?A(c):new Promise((async(e,t)=>{let{entropyId:s,entropyIdVerifier:i}=m(r,w);function o(e){return n=>{t(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let h={account:w,transaction:c,chain:g,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:A,onSuccess:e,onFailure:o(u.TRANSACTION_FAILURE)};a({connectWallet:{recoveryMethod:w.recoveryMethod,connectingWalletAddress:w.address,entropyId:s,entropyIdVerifier:i,isUnifiedWallet:y,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:o(u.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:h}),n("EmbeddedWalletConnectingScreen")}))}}}let fe=new class extends b{setImplementation(e){F(this,U)[U]=e}async signMessage(e){return F(this,U)[U].signMessage(e)}async signAndSendTransaction(e){return F(this,U)[U].signAndSendTransaction(e)}async signTransaction(e){return F(this,U)[U].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,U,{writable:!0,value:void 0}),F(this,U)[U]=e}}({signTransaction:g("signTransaction was not injected"),signAndSendTransaction:g("signAndSendTransaction was not injected"),signMessage:g("signMessage was not injected")}),we=new class{get version(){return H(this,Z)[Z]}get name(){return H(this,z)[z]}get icon(){return H(this,q)[q]}get chains(){return M.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:H(this,ie)[ie]},"standard:disconnect":{version:"1.0.0",disconnect:H(this,re)[re]},"standard:events":{version:"1.0.0",on:H(this,ne)[ne]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:H(this,ce)[ce]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:H(this,le)[le]},"solana:signMessage":{version:"1.0.0",signMessage:H(this,oe)[oe]},"privy:":{privy:{signMessage:H(this,X)[X].signMessage,signTransaction:H(this,X)[X].signTransaction,signAndSendTransaction:H(this,X)[X].signAndSendTransaction}}}}get accounts(){return H(this,ee)[ee].slice()}get isPrivyWallet(){return H(this,$)[$]}constructor({name:e,icon:n,version:t,injection:a,wallets:s}){Object.defineProperty(this,te,{value:de}),Object.defineProperty(this,ae,{value:ue}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,Z,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,X,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),Object.defineProperty(this,ne,{writable:!0,value:void 0}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),H(this,k)[k]={},H(this,ne)[ne]=(e,n)=>(H(this,k)[k][e]?.push(n)||(H(this,k)[k][e]=[n]),()=>H(this,ae)[ae](e,n)),H(this,se)[se]=e=>{null!=e&&(H(this,ee)[ee]=e.map((({address:e})=>new K({address:e,publicKey:T.decode(e)})))),H(this,te)[te]("change",{accounts:this.accounts})},H(this,ie)[ie]=async()=>(H(this,te)[te]("change",{accounts:this.accounts}),{accounts:this.accounts}),H(this,re)[re]=async()=>{H(this,te)[te]("change",{accounts:this.accounts})},H(this,oe)[oe]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await H(this,X)[X].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},H(this,ce)[ce]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await H(this,X)[X].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},H(this,le)[le]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:s,chain:i}of e){let{signedTransaction:e}=await H(this,X)[X].signTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:s});n.push({signedTransaction:e})}return n},H(this,z)[z]=e,H(this,q)[q]=n,H(this,Z)[Z]=t,H(this,X)[X]=a,H(this,ee)[ee]=[],H(this,$)[$]=!0,a.on("accountChanged",H(this,se)[se],this),H(this,se)[se](s)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:fe});function ye(){let{ready:e}=v(),{user:n}=A(),{signMessage:t}=he(),{signTransaction:a}=pe(),{signAndSendTransaction:r}=function(){let e=O(),{isHeadlessSigning:n,openModal:t,privy:a}=l(),{setModalData:s}=h(),{signTransaction:i}=pe(),r=I(),{user:c}=A(),{signWithUserSigner:g}=S();return{signAndSendTransaction:async({transaction:l,address:h,chain:w="solana:mainnet",options:y})=>{let A=p(c,h);if("privy"!==A?.walletClientType)throw new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND);let v=f(A);async function b(e){if(y?.sponsor)return await(async e=>{if(!v)throw new d("Sponsoring transactions is only supported for wallets on the TEE stack",u.INVALID_DATA);let n=await o(a,g,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:_(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await r(w).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:A.id});if(n.data&&"hash"in n.data)return{signature:T.decode(n.data.hash)};throw Error("Failed to sign and send transaction")})(e);let{signedTransaction:n}=await i({transaction:e,address:h,chain:w,options:{...y,uiOptions:{...y?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(w).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:y?.uiOptions?.showWalletUIs})?b(l):new Promise((async(n,a)=>{let i,r,{entropyId:o,entropyIdVerifier:g}=m(c,A);function p(e){return n=>{a(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let f={account:A,transaction:l,chain:w,signOnly:!1,uiOptions:y?.uiOptions||{},onConfirm:b,onSuccess:n,onFailure:p(u.TRANSACTION_FAILURE),isSponsored:!!y?.sponsor},T={recoveryMethod:A.recoveryMethod,connectingWalletAddress:A.address,entropyId:o,entropyIdVerifier:g,isUnifiedWallet:v,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:p(u.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(i=W({address:h,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...y,asset:"native-currency",chain:w},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),r={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:w,destinationAddress:h,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),s({connectWallet:T,standardSignAndSendTransaction:f,funding:i,solanaFundingData:r}),t("EmbeddedWalletConnectingScreen")}))}}}(),c=s((()=>{let e=[...w(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=y(n);return t.length?[...e,...t]:e}),[n]),g=s((()=>({signMessage:async({message:e,address:n,options:a})=>await t({message:e,address:n,options:a}),signTransaction:async({transaction:e,address:n,chain:t,options:s})=>await a({transaction:e,address:n,chain:t,options:s}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:s}=await r({transaction:e,address:n,chain:t,options:a});return{signature:s}}})),[t,a,r]);return i((()=>{fe?.setImplementation(g)}),[g]),i((()=>{var n;!e||(n=we.accounts).length===c.length&&n.every(((e,n)=>e.address===c[n]?.address))||fe?.emit("accountChanged",c)}),[e,c]),{ready:e,wallet:we}}function Ae(){let{client:e}=l(),{ready:n,wallet:t}=ye(),[a,s]=r([]),[o,c]=r([]);return i((()=>{let e=[t,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];c(e);let n=a.flatMap((n=>{let t=()=>c([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),s=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{s.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[a]),i((()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[n,e.connectors]),{ready:n,wallets:o}}function me(){let{ready:e,wallets:n}=Ae();return{ready:e,wallets:s((()=>n.flatMap((e=>e.accounts.map((n=>new c({wallet:e,account:n})))))),[n])}}export{M as S,Ae as a,P as g,me as u};
|
|
1
|
+
import{getBase58Decoder as e,getTransactionDecoder as n,address as t,getTransactionEncoder as a}from"@solana/kit";import{useMemo as s,useEffect as i,useState as r}from"react";import{rpc as o,ConnectedStandardSolanaWallet as c}from"@privy-io/js-sdk-core";import{u as l,b as d,c as u,l as g}from"./internal-context-C4ZqP8IF.mjs";import{a as h,j as p,b as f,m as w,h as y}from"./privy-context-pimLCE3L.mjs";import{u as A}from"./usePrivy-ChZSTtn2.mjs";import{b as m,u as v}from"./get-entropy-details-for-user-BGqBIfqR.mjs";import b from"eventemitter3";import{base58 as T}from"@scure/base";import{u as O}from"./context-DanhWeBg.mjs";import{u as S}from"./use-sign-with-user-signer-BYctG7hm.mjs";import{b as _,a as E,u as I}from"./useSolanaRpcClient-C7No0-0C.mjs";import{encoding as j}from"@privy-io/encoding";import{x as W}from"./use-export-wallet-9if9oowB.mjs";const M=["solana:mainnet","solana:devnet","solana:testnet"];function P(n){return e().decode(n)}function F(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var C=0,U="__private_"+C+++"__implementation";function D(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var N=0;function B(e){return"__private_"+N+++"_"+e}var x=/*#__PURE__*/B("_address"),R=/*#__PURE__*/B("_publicKey"),L=/*#__PURE__*/B("_chains"),V=/*#__PURE__*/B("_features"),Q=/*#__PURE__*/B("_label"),G=/*#__PURE__*/B("_icon");class K{get address(){return D(this,x)[x]}get publicKey(){return D(this,R)[R].slice()}get chains(){return D(this,L)[L].slice()}get features(){return D(this,V)[V].slice()}get label(){return D(this,Q)[Q]}get icon(){return D(this,G)[G]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),D(this,x)[x]=e,D(this,R)[R]=n,D(this,L)[L]=M,D(this,Q)[Q]=t,D(this,G)[G]=a,D(this,V)[V]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===K&&Object.freeze(this)}}function H(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var J=0;function Y(e){return"__private_"+J+++"_"+e}var k=/*#__PURE__*/Y("_listeners"),Z=/*#__PURE__*/Y("_version"),z=/*#__PURE__*/Y("_name"),q=/*#__PURE__*/Y("_icon"),X=/*#__PURE__*/Y("_injection"),$=/*#__PURE__*/Y("_isPrivyWallet"),ee=/*#__PURE__*/Y("_accounts"),ne=/*#__PURE__*/Y("_on"),te=/*#__PURE__*/Y("_emit"),ae=/*#__PURE__*/Y("_off"),se=/*#__PURE__*/Y("_connected"),ie=/*#__PURE__*/Y("_connect"),re=/*#__PURE__*/Y("_disconnect"),oe=/*#__PURE__*/Y("_signMessage"),ce=/*#__PURE__*/Y("_signAndSendTransaction"),le=/*#__PURE__*/Y("_signTransaction");function de(e,...n){H(this,k)[k][e]?.forEach((e=>e.apply(null,n)))}function ue(e,n){H(this,k)[k][e]=H(this,k)[k][e]?.filter((e=>n!==e))}function ge(e,s,i){let r=structuredClone(n().decode(e)),o=t(s);return o in r.signatures&&(r.signatures[o]=i),new Uint8Array(a().encode(r))}function he(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:s,privy:i,client:r}=l(),{user:c}=A(),{setModalData:g}=h(),{signWithUserSigner:w}=S();return{signMessage:({message:l,address:h,options:y})=>new Promise((async(A,v)=>{let b=p(c,h);if("privy"!==b?.walletClientType)return void v(new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:T,entropyIdVerifier:O}=m(c,b),S=f(b),E=_(l).toString("base64");if(E.length<1)return void v(new d("Message must be a non-empty string",void 0,u.INVALID_MESSAGE));let I=async()=>{let e;if(!c)throw Error("User must be authenticated before signing with a Privy wallet");let s=await r.getAccessToken();if(!s)throw Error("User must be authenticated to use their embedded wallet.");let l=n??await t(15e3);if(!l)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:b.address}))throw Error("Unable to connect to wallet");if(S){let n=await o(i,w,{chain_type:"solana",method:"signMessage",params:{message:E,encoding:"base64"},wallet_id:b.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await l.rpc({accessToken:s,entropyId:T,entropyIdVerifier:O,chainType:"solana",hdWalletIndex:b.walletIndex??0,requesterAppId:y?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:E}}});e=n.data.signature}return e};if(e({showWalletUIs:y?.uiOptions?.showWalletUIs}))try{let e=await I(),n=new Uint8Array(_(e,"base64"));A({signature:n})}catch(e){v(e)}else g({signMessage:{method:"solana_signMessage",data:E,confirmAndSign:I,onSuccess:e=>{A({signature:new Uint8Array(_(e,"base64"))})},onFailure:e=>{v(e)},uiOptions:y?.uiOptions??{}},connectWallet:{recoveryMethod:b.recoveryMethod,connectingWalletAddress:b.address,entropyId:T,entropyIdVerifier:O,isUnifiedWallet:S,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{v(new d("Failed to connect to wallet",e,u.UNKNOWN_CONNECT_WALLET_ERROR))}}}),s("EmbeddedWalletConnectingScreen")}))}}function pe(){let{isHeadlessSigning:e,openModal:n,privy:t}=l(),{setModalData:a}=h(),{signMessage:s}=he(),{signWithUserSigner:i}=S(),{user:r}=A();return{signTransaction:async({transaction:c,options:l,chain:g="solana:mainnet",address:h})=>{let w=p(r,h);if("privy"!==w?.walletClientType)throw new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND);let y=f(w);async function A(e){if(y){let n=await o(t,i,{chain_type:"solana",method:"signTransaction",params:{transaction:j.base64.fromBytes(e),encoding:"base64"},wallet_id:w.id});if(n.data&&"signed_transaction"in n.data)return{signedTransaction:new Uint8Array(j.base64.toBytes(n.data.signed_transaction))};throw Error("Failed to sign transaction")}let{signature:n}=await s({message:E(e),address:h,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:ge(e,h,n)}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?A(c):new Promise((async(e,t)=>{let{entropyId:s,entropyIdVerifier:i}=m(r,w);function o(e){return n=>{t(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let h={account:w,transaction:c,chain:g,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:A,onSuccess:e,onFailure:o(u.TRANSACTION_FAILURE)};a({connectWallet:{recoveryMethod:w.recoveryMethod,connectingWalletAddress:w.address,entropyId:s,entropyIdVerifier:i,isUnifiedWallet:y,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:o(u.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:h}),n("EmbeddedWalletConnectingScreen")}))}}}let fe=new class extends b{setImplementation(e){F(this,U)[U]=e}async signMessage(e){return F(this,U)[U].signMessage(e)}async signAndSendTransaction(e){return F(this,U)[U].signAndSendTransaction(e)}async signTransaction(e){return F(this,U)[U].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,U,{writable:!0,value:void 0}),F(this,U)[U]=e}}({signTransaction:g("signTransaction was not injected"),signAndSendTransaction:g("signAndSendTransaction was not injected"),signMessage:g("signMessage was not injected")}),we=new class{get version(){return H(this,Z)[Z]}get name(){return H(this,z)[z]}get icon(){return H(this,q)[q]}get chains(){return M.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:H(this,ie)[ie]},"standard:disconnect":{version:"1.0.0",disconnect:H(this,re)[re]},"standard:events":{version:"1.0.0",on:H(this,ne)[ne]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:H(this,ce)[ce]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:H(this,le)[le]},"solana:signMessage":{version:"1.0.0",signMessage:H(this,oe)[oe]},"privy:":{privy:{signMessage:H(this,X)[X].signMessage,signTransaction:H(this,X)[X].signTransaction,signAndSendTransaction:H(this,X)[X].signAndSendTransaction}}}}get accounts(){return H(this,ee)[ee].slice()}get isPrivyWallet(){return H(this,$)[$]}constructor({name:e,icon:n,version:t,injection:a,wallets:s}){Object.defineProperty(this,te,{value:de}),Object.defineProperty(this,ae,{value:ue}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,Z,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,X,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),Object.defineProperty(this,ne,{writable:!0,value:void 0}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),H(this,k)[k]={},H(this,ne)[ne]=(e,n)=>(H(this,k)[k][e]?.push(n)||(H(this,k)[k][e]=[n]),()=>H(this,ae)[ae](e,n)),H(this,se)[se]=e=>{null!=e&&(H(this,ee)[ee]=e.map((({address:e})=>new K({address:e,publicKey:T.decode(e)})))),H(this,te)[te]("change",{accounts:this.accounts})},H(this,ie)[ie]=async()=>(H(this,te)[te]("change",{accounts:this.accounts}),{accounts:this.accounts}),H(this,re)[re]=async()=>{H(this,te)[te]("change",{accounts:this.accounts})},H(this,oe)[oe]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await H(this,X)[X].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},H(this,ce)[ce]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await H(this,X)[X].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},H(this,le)[le]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:s,chain:i}of e){let{signedTransaction:e}=await H(this,X)[X].signTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:s});n.push({signedTransaction:e})}return n},H(this,z)[z]=e,H(this,q)[q]=n,H(this,Z)[Z]=t,H(this,X)[X]=a,H(this,ee)[ee]=[],H(this,$)[$]=!0,a.on("accountChanged",H(this,se)[se],this),H(this,se)[se](s)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:fe});function ye(){let{ready:e}=v(),{user:n}=A(),{signMessage:t}=he(),{signTransaction:a}=pe(),{signAndSendTransaction:r}=function(){let e=O(),{isHeadlessSigning:n,openModal:t,privy:a}=l(),{setModalData:s}=h(),{signTransaction:i}=pe(),r=I(),{user:c}=A(),{signWithUserSigner:g}=S();return{signAndSendTransaction:async({transaction:l,address:h,chain:w="solana:mainnet",options:y})=>{let A=p(c,h);if("privy"!==A?.walletClientType)throw new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND);let v=f(A);async function b(e){if(y?.sponsor)return await(async e=>{if(!v)throw new d("Sponsoring transactions is only supported for wallets on the TEE stack",u.INVALID_DATA);let n=await o(a,g,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:_(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await r(w).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:A.id});if(n.data&&"hash"in n.data)return{signature:T.decode(n.data.hash)};throw Error("Failed to sign and send transaction")})(e);let{signedTransaction:n}=await i({transaction:e,address:h,chain:w,options:{...y,uiOptions:{...y?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(w).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:y?.uiOptions?.showWalletUIs})?b(l):new Promise((async(n,a)=>{let i,r,{entropyId:o,entropyIdVerifier:g}=m(c,A);function p(e){return n=>{a(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let f={account:A,transaction:l,chain:w,signOnly:!1,uiOptions:y?.uiOptions||{},onConfirm:b,onSuccess:n,onFailure:p(u.TRANSACTION_FAILURE),isSponsored:!!y?.sponsor},T={recoveryMethod:A.recoveryMethod,connectingWalletAddress:A.address,entropyId:o,entropyIdVerifier:g,isUnifiedWallet:v,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:p(u.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(i=W({address:h,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...y,asset:"native-currency",chain:w},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),r={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:w,destinationAddress:h,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),s({connectWallet:T,standardSignAndSendTransaction:f,funding:i,solanaFundingData:r}),t("EmbeddedWalletConnectingScreen")}))}}}(),c=s((()=>{let e=[...w(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=y(n);return t.length?[...e,...t]:e}),[n]),g=s((()=>({signMessage:async({message:e,address:n,options:a})=>await t({message:e,address:n,options:a}),signTransaction:async({transaction:e,address:n,chain:t,options:s})=>await a({transaction:e,address:n,chain:t,options:s}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:s}=await r({transaction:e,address:n,chain:t,options:a});return{signature:s}}})),[t,a,r]);return i((()=>{fe?.setImplementation(g)}),[g]),i((()=>{var n;!e||(n=we.accounts).length===c.length&&n.every(((e,n)=>e.address===c[n]?.address))||fe?.emit("accountChanged",c)}),[e,c]),{ready:e,wallet:we}}function Ae(){let{client:e}=l(),{ready:n,wallet:t}=ye(),[a,s]=r([]),[o,c]=r([]);return i((()=>{let e=[t,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];c(e);let n=a.flatMap((n=>{let t=()=>c([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),s=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{s.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[a]),i((()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[n,e.connectors]),{ready:n,wallets:o}}function me(){let{ready:e,wallets:n}=Ae();return{ready:e,wallets:s((()=>n.flatMap((e=>e.accounts.map((n=>new c({wallet:e,account:n})))))),[n])}}export{M as S,Ae as a,P as g,me as u};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privy-io/react-auth",
|
|
3
|
-
"version": "3.19.0-beta-
|
|
3
|
+
"version": "3.19.0-beta-20260328154708",
|
|
4
4
|
"description": "React client for the Privy Auth API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -176,11 +176,11 @@
|
|
|
176
176
|
"x402": "^0.7.1",
|
|
177
177
|
"zustand": "^5.0.0",
|
|
178
178
|
"@privy-io/are-addresses-equal": "0.0.2",
|
|
179
|
-
"@privy-io/chains": "0.1.3-beta-
|
|
180
|
-
"@privy-io/api-base": "1.8.2",
|
|
179
|
+
"@privy-io/chains": "0.1.3-beta-20260328154708",
|
|
181
180
|
"@privy-io/ethereum": "0.0.9",
|
|
181
|
+
"@privy-io/api-base": "1.8.2",
|
|
182
182
|
"@privy-io/encoding": "0.1.1",
|
|
183
|
-
"@privy-io/js-sdk-core": "0.60.7-beta-
|
|
183
|
+
"@privy-io/js-sdk-core": "0.60.7-beta-20260328154708",
|
|
184
184
|
"@privy-io/routes": "0.0.9",
|
|
185
185
|
"@privy-io/popup": "0.0.2",
|
|
186
186
|
"@privy-io/urls": "0.0.3"
|
|
@@ -246,10 +246,10 @@
|
|
|
246
246
|
"ts-jest": "^29.2.5",
|
|
247
247
|
"typescript": "~5.5.3",
|
|
248
248
|
"vite": "^5.4.0",
|
|
249
|
-
"@privy-io/build-config": "1.0.0",
|
|
250
|
-
"@privy-io/testing": "1.0.0",
|
|
251
249
|
"@privy-io/eslint-config-custom": "0.0.0",
|
|
252
|
-
"@privy-io/eslint-plugin-privy-rules": "1.0.1"
|
|
250
|
+
"@privy-io/eslint-plugin-privy-rules": "1.0.1",
|
|
251
|
+
"@privy-io/testing": "1.0.0",
|
|
252
|
+
"@privy-io/build-config": "1.0.0"
|
|
253
253
|
},
|
|
254
254
|
"peerDependencies": {
|
|
255
255
|
"@abstract-foundation/agw-client": "^1.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react-device-detect"),r=require("./internal-context-BJv4f_bO.js"),t=require("react"),n=require("./use-export-wallet-D-UqGx7Q.js"),i=require("./privy-context-CJMUK9qU.js"),a=require("./events-context-Di6--rDg.js"),o=require("./get-entropy-details-for-user-CfpHdOOL.js"),l=require("@privy-io/js-sdk-core"),s=require("./context-RXM4aLoW.js");function d(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}let c="WALLETCONNECT_DEEPLINK_CHOICE";function p(e){return e.startsWith("http://")||e.startsWith("https://")}function u(e,r){if(p(e))return y(e,r);let t=e;return t.includes("://")||(t=e.replaceAll("/","").replaceAll(":",""),t=`${t}://`),t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function y(e,r){if(!p(e))return u(e,r);let t=e;return t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}const E=Symbol("solana-funding-plugin"),v=Symbol("solana-ledger-plugin"),h=async({user:e,accessToken:r,proxy:t,refreshSessionAndUser:a,privy:s,appConfig:d,recoverEmbeddedWallet:c,setUser:p,walletIndex:u,chainType:y,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h,idempotencyKey:m,additionalSigners:w})=>{if(0===u)if("user-controlled-server-wallets-only"===d.embeddedWallets.mode)await l.create(s,{request:{chain_type:y,additional_signers:w?n.parseAdditionalSigners(w):void 0},headers:m?{"privy-idempotency-key":m}:void 0});else if("ethereum"===y){let n=i.getPrivySolanaWallet(e);n&&await c({address:n.address}),await t.create({accessToken:r,solanaAddress:n?.address,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h})}else{if("solana"!==y)throw Error("Invalid input to create wallet");{let n=i.getPrivyEthereumWallet(e);n&&await c({address:n.address}),await t.createSolana({accessToken:r,ethereumAddress:n?.address,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h})}}else if("user-controlled-server-wallets-only"===d.embeddedWallets.mode)await l.create(s,{request:{chain_type:y,additional_signers:w?n.parseAdditionalSigners(w):void 0}});else{let{entropyId:n,entropyIdVerifier:i}=o.getEntropyDetailsForUser(e);await c(),await t.addWallet({accessToken:r,entropyId:n,entropyIdVerifier:i,chainType:y,hdWalletIndex:u})}let W=await a(),f=o.getPrivyWalletsWithFilter(W,{chainType:y,walletIndex:u})[0];return p(W),{user:W,account:f}},m=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),w=async({appConfig:e,getAccessToken:t,initializeWalletProxy:n,user:i,privy:a,emitPrivyEvent:l,recoverEmbeddedWallet:s,setModalData:d,openModal:c,setUser:p,options:u,timeoutDuration:y,refreshSessionAndUser:E,chainType:v,idempotencyKey:h,additionalSigners:w})=>{let[f,T]=await Promise.all([n(y),t()]);if(!T||!i)throw l("createWallet","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!f&&e.customAuth?.enabled)throw l("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(w&&"user-controlled-server-wallets-only"!==e.embeddedWallets.mode)throw new r.PrivyClientError("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");if(u&&"walletIndex"in u&&"number"==typeof u.walletIndex){if("user-controlled-server-wallets-only"===e.embeddedWallets.mode)throw l("createWallet","onError",r.PrivyErrorCode.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return W({accessToken:T,appConfig:e,privy:a,emitPrivyEvent:l,openModal:c,proxy:f,refreshSessionAndUser:E,recoverEmbeddedWallet:s,setModalData:d,user:i,walletIndex:u.walletIndex,chainType:v,setUser:p,additionalSigners:w})}let g=u&&"createAdditional"in u&&u.createAdditional,A=o.getPrivyWalletsWithFilter(i,{chainType:v});if(A[0]&&!g)throw l("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return W({accessToken:T,appConfig:e,privy:a,emitPrivyEvent:l,openModal:c,proxy:f,recoverEmbeddedWallet:s,setModalData:d,user:i,walletIndex:(m(A)?.walletIndex??-1)+1,chainType:v,refreshSessionAndUser:E,setUser:p,idempotencyKey:h,additionalSigners:w})};let W=async({accessToken:e,appConfig:t,privy:n,emitPrivyEvent:a,proxy:l,refreshSessionAndUser:s,recoverEmbeddedWallet:d,user:c,walletIndex:p,setModalData:u,openModal:y,chainType:E,setUser:v,idempotencyKey:m,additionalSigners:w})=>{if(p<0)throw a("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${p}) is invalid.`);let W=i.getPrivyPrimaryWallet(c);if(p>0&&!W)throw a("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw a("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!W&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await f({emitPrivyEvent:a,setModalData:u,openModal:y,chainType:E});let T=o.getPrivyWalletsWithFilter(c,{chainType:E,walletIndex:p})[0];if(T)return{user:c,account:T};if(0===p&&!l)return f({emitPrivyEvent:a,setModalData:u,openModal:y,chainType:E});if(!l)throw a("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return h({appConfig:t,walletIndex:p,chainType:E,user:c,accessToken:e,proxy:l,refreshSessionAndUser:s,privy:n,recoverEmbeddedWallet:d,setUser:v,idempotencyKey:m,additionalSigners:w})},f=async({emitPrivyEvent:e,setModalData:t,openModal:n,chainType:i})=>new Promise(((a,o)=>{t({createWallet:{onSuccess:({user:r,account:t})=>{e("createWallet","onSuccess",{wallet:t}),a({user:r,account:t})},onFailure:t=>{e("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),o(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===i,shouldCreateSol:"solana"===i}}),n("EmbeddedWalletOnAccountCreateScreen")}));const T=()=>{let e=s.useAppConfig(),t=a.useEmitPrivyEvent(),{setModalData:n}=i.usePrivyModal(),{initializeWalletProxy:o,recoverEmbeddedWallet:l,setUser:d,openModal:c,refreshSessionAndUser:p,privy:u,client:y}=r.usePrivyInternal();return{create:async({chainType:i,options:a,latestUser:E,idempotencyKey:v})=>{let h=E;if(h||(h=await p()),!h)throw t("createWallet","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await w({appConfig:e,privy:u,getAccessToken:()=>y.getAccessToken(),refreshSessionAndUser:p,initializeWalletProxy:o,user:h,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:n,openModal:c,setUser:d,options:a,timeoutDuration:s.WALLET_PROXY_TIMEOUT,chainType:i,idempotencyKey:v,additionalSigners:a?.signers})}}};function g(e){let{create:r}=T();return a.usePrivyEventSubscription("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const A=async({emitPrivyEvent:e,getAccessToken:t,initializeWalletProxy:n,refreshSessionAndUser:a,user:o,appConfig:l},{privateKey:s,chainType:d,additionalSigners:c})=>{if(!o)throw e("linkAccount","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r.PrivyClientError("User must be authenticated before linking an account.");let p="user-controlled-server-wallets-only"===l.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===p)throw new r.PrivyClientError("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[u,y]=await Promise.all([t(),n(15e3)]);if(!y||!u)throw e("linkAccount","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r.PrivyClientError("User must be authenticated before linking an account.");let{address:E}=await y.importWallet({privateKey:s,accessToken:u,chainType:d,mode:p,additionalSigners:c}),v=await a(),h="solana"===d?i.getImportedPrivySolanaWallets(v):i.getImportedPrivyEthereumWallets(v),m=h?.find((e=>e.address===E));if(!m)throw e("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:m}),m},P=()=>{let{user:e}=i.usePrivyContext(),{client:n,refreshSessionAndUser:o,initializeWalletProxy:l}=r.usePrivyInternal(),d=a.useEmitPrivyEvent(),c=s.useAppConfig();return{importWallet:t.useCallback((({privateKey:r,additionalSigners:t})=>A({getAccessToken:()=>n.getAccessToken(),user:e,initializeWalletProxy:l,refreshSessionAndUser:o,emitPrivyEvent:d,appConfig:c},{privateKey:r,chainType:"ethereum",additionalSigners:t})),[e,n,o,l,d,c])}};exports.SOLANA_FUNDING_PLUGIN_ID=E,exports.SOLANA_LEDGER_PLUGIN_ID=v,exports.buildTargetUrl=function(t,n){let i=d(n);if(e.isMobile&&e.isAndroid&&i.universalLink)return y(i.universalLink,t);if(i.deepLink)return u(i.deepLink,t);if(i.universalLink)return y(i.universalLink,t);throw new r.PrivyClientError(`Unsupported wallet ${n.id}`)},exports.buildUniversalFallbackUrl=function(e,r){let t=d(r);if(t.universalLink)return y(t.universalLink,e)},exports.createWalletAtIndex=h,exports.deleteWalletConnectDeepLink=function(){try{localStorage.removeItem(c)}catch{}},exports.importWallet=A,exports.openHref=function(e,r){window.open(e,r,"noreferrer noopener")},exports.prepareSiwsMessageWithNonce=({address:e,nonce:r})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${r}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`,exports.removeWalletConnectDeepLink=function(){try{localStorage.removeItem(c)}catch{}},exports.setWalletConnectDeepLink=function({href:e,name:r}){try{localStorage.setItem(c,JSON.stringify({href:e,name:r}))}catch{}},exports.useCreateWallet=g,exports.useCreateWalletInternal=T,exports.useImportWallet=P,exports.usePrivy=()=>{let{importWallet:e}=P(),{exportWallet:r}=n.useExportWallet(),{createWallet:a}=g();return{...t.useContext(i.PrivyContext),importWallet:e,createWallet:a,exportWallet:r}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{isMobile as e,isAndroid as r}from"react-device-detect";import{b as t,c as a,u as n}from"./internal-context-C4ZqP8IF.mjs";import{useCallback as o,useContext as i}from"react";import{q as s,u as l}from"./use-export-wallet-Db8GdSAT.mjs";import{f as d,d as c,g as p,a as u,h as y,e as m,u as E,P as h}from"./privy-context-CkPtrpbt.mjs";import{a as w,u as f}from"./events-context-CI0iqAXA.mjs";import{b as v,j as T}from"./get-entropy-details-for-user-DkZdXKpr.mjs";import{create as W}from"@privy-io/js-sdk-core";import{u as g,W as A}from"./context-aGvo4MVQ.mjs";function S(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}function D(a,n){let o=S(n);if(e&&r&&o.universalLink)return L(o.universalLink,a);if(o.deepLink)return M(o.deepLink,a);if(o.universalLink)return L(o.universalLink,a);throw new t(`Unsupported wallet ${n.id}`)}function U(e,r){let t=S(r);if(t.universalLink)return L(t.universalLink,e)}let x="WALLETCONNECT_DEEPLINK_CHOICE";function I(){try{localStorage.removeItem(x)}catch{}}function _({href:e,name:r}){try{localStorage.setItem(x,JSON.stringify({href:e,name:r}))}catch{}}function b(){try{localStorage.removeItem(x)}catch{}}function k(e){return e.startsWith("http://")||e.startsWith("https://")}function M(e,r){if(k(e))return L(e,r);let t=e;return t.includes("://")||(t=e.replaceAll("/","").replaceAll(":",""),t=`${t}://`),t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function L(e,r){if(!k(e))return M(e,r);let t=e;return t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function C(e,r){window.open(e,r,"noreferrer noopener")}const R=({address:e,nonce:r})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${r}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`,P=Symbol("solana-funding-plugin"),N=Symbol("solana-ledger-plugin"),O=async({user:e,accessToken:r,proxy:t,refreshSessionAndUser:a,privy:n,appConfig:o,recoverEmbeddedWallet:i,setUser:l,walletIndex:p,chainType:u,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E,idempotencyKey:h,additionalSigners:w})=>{if(0===p)if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await W(n,{request:{chain_type:u,additional_signers:w?s(w):void 0},headers:h?{"privy-idempotency-key":h}:void 0});else if("ethereum"===u){let a=d(e);a&&await i({address:a.address}),await t.create({accessToken:r,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 t.createSolana({accessToken:r,ethereumAddress:a?.address,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E})}}else if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await W(n,{request:{chain_type:u,additional_signers:w?s(w):void 0}});else{let{entropyId:a,entropyIdVerifier:n}=v(e);await i(),await t.addWallet({accessToken:r,entropyId:a,entropyIdVerifier:n,chainType:u,hdWalletIndex:p})}let f=await a(),g=T(f,{chainType:u,walletIndex:p})[0];return l(f),{user:f,account:g}},K=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),$=async({appConfig:e,getAccessToken:r,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:h,additionalSigners:w})=>{let[f,v]=await Promise.all([n(y),r()]);if(!v||!o)throw s("createWallet","onError",a.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!f&&e.customAuth?.enabled)throw s("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(w&&"user-controlled-server-wallets-only"!==e.embeddedWallets.mode)throw new t("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:v,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:f,refreshSessionAndUser:m,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:u.walletIndex,chainType:E,setUser:p,additionalSigners:w})}let W=u&&"createAdditional"in u&&u.createAdditional,g=T(o,{chainType:E});if(g[0]&&!W)throw s("createWallet","onError",a.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return B({accessToken:v,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:f,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:(K(g)?.walletIndex??-1)+1,chainType:E,refreshSessionAndUser:m,setUser:p,idempotencyKey:h,additionalSigners:w})};let B=async({accessToken:e,appConfig:r,privy:t,emitPrivyEvent:n,proxy:o,refreshSessionAndUser:i,recoverEmbeddedWallet:s,user:l,walletIndex:d,setModalData:c,openModal:u,chainType:y,setUser:m,idempotencyKey:E,additionalSigners:h})=>{if(d<0)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${d}) is invalid.`);let w=p(l);if(d>0&&!w)throw n("createWallet","onError",a.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(r.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===r.embeddedWallets.mode)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!w&&r.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await j({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});let f=T(l,{chainType:y,walletIndex:d})[0];if(f)return{user:l,account:f};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:r,walletIndex:d,chainType:y,user:l,accessToken:e,proxy:o,refreshSessionAndUser:i,privy:t,recoverEmbeddedWallet:s,setUser:m,idempotencyKey:E,additionalSigners:h})},j=async({emitPrivyEvent:e,setModalData:r,openModal:t,chainType:n})=>new Promise(((o,i)=>{r({createWallet:{onSuccess:({user:r,account:t})=>{e("createWallet","onSuccess",{wallet:t}),o({user:r,account:t})},onFailure:r=>{e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),i(r)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===n,shouldCreateSol:"solana"===n}}),t("EmbeddedWalletOnAccountCreateScreen")}));const z=()=>{let e=g(),r=w(),{setModalData:t}=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 r("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:r,recoverEmbeddedWallet:i,setModalData:t,openModal:l,setUser:s,options:u,timeoutDuration:A,chainType:n,idempotencyKey:m,additionalSigners:u?.signers})}}};function q(e){let{create:r}=z();return f("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const F=async({emitPrivyEvent:e,getAccessToken:r,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 t("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 t("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([r(),n(15e3)]);if(!E||!u)throw e("linkAccount","onError",a.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new t("User must be authenticated before linking an account.");let{address:h}=await E.importWallet({privateKey:l,accessToken:u,chainType:d,mode:p,additionalSigners:c}),w=await o(),f="solana"===d?y(w):m(w),v=f?.find((e=>e.address===h));if(!v)throw e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:v}),v},H=()=>{let{user:e}=E(),{client:r,refreshSessionAndUser:t,initializeWalletProxy:a}=n(),i=w(),s=g();return{importWallet:o((({privateKey:n,additionalSigners:o})=>F({getAccessToken:()=>r.getAccessToken(),user:e,initializeWalletProxy:a,refreshSessionAndUser:t,emitPrivyEvent:i,appConfig:s},{privateKey:n,chainType:"ethereum",additionalSigners:o})),[e,r,t,a,i,s])}},V=()=>{let{importWallet:e}=H(),{exportWallet:r}=l(),{createWallet:t}=q();return{...i(h),importWallet:e,createWallet:t,exportWallet:r}};export{P as S,U as a,D as b,O as c,I as d,N as e,z as f,q as g,H as h,F as i,C as o,R as p,b as r,_ as s,V as u};
|