@privy-io/react-auth 3.15.0 → 3.16.0-beta-20260303155317
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-vfuo7K3q.js +1 -0
- package/dist/cjs/{Address-Xt6eDzsN.js → Address-C2XO5YDn.js} +2 -2
- package/dist/cjs/AffirmativeConsentScreen-DDqJdDR5.js +6 -0
- package/dist/cjs/AllowlistRejectionScreen-bT87iLL0.js +1 -0
- package/dist/cjs/AuthenticateWithWalletScreen-fF9THkYv.js +1 -0
- package/dist/cjs/AwaitingEvmToSolBridgingScreen-DtlBt2Cl.js +2 -0
- package/dist/cjs/AwaitingExternalEthereumTransferScreen-Bc_wou1l.js +2 -0
- package/dist/cjs/AwaitingPasswordlessCodeScreen-B0f3rdjx.js +103 -0
- package/dist/cjs/AwaitingSolToEvmBridgingScreen-CEi0IJTY.js +2 -0
- package/dist/cjs/{BridgeNetworkSelectionView-B-GFim4z.js → BridgeNetworkSelectionView-CEEgCj1m.js} +8 -8
- package/dist/cjs/CaptchaScreen-Dj6ymBPO.js +1 -0
- package/dist/cjs/CoinbaseOnrampStatusScreen-DcmUqAPX.js +16 -0
- package/dist/cjs/ConnectEmailForm-D-0Amqhf.js +3 -0
- package/dist/cjs/ConnectLedgerScreen-CRxctrk4.js +9 -0
- package/dist/cjs/ConnectOnlyLandingScreen-JFMrMqCK.js +1 -0
- package/dist/cjs/ConnectOnlyStatusScreen-DEFH7bgu.js +1 -0
- package/dist/cjs/ConnectOrCreateScreen-CEf0NGlE.js +1 -0
- package/dist/cjs/{ConnectPhoneForm-B6TGW3Jk.js → ConnectPhoneForm-kY70TzuW.js} +1 -1
- package/dist/cjs/{ConnectWalletView-CTc3Uc5v.js → ConnectWalletView-DAxk2klb.js} +1 -1
- package/dist/cjs/ConnectionStatusScreen-C4a4QkqP.js +7 -0
- package/dist/cjs/CrossAppAuthScreen-BHWqG6zR.js +1 -0
- package/dist/cjs/CustomLandingScreenView-Cvi2ftR4.js +23 -0
- package/dist/cjs/DelegatedActionsConsentScreen-BmdAqKq1.js +1 -0
- package/dist/cjs/DelegatedActionsRevokeScreen-DYQnCNQW.js +1 -0
- package/dist/cjs/EmbeddedWalletConnectingScreen-EXc14wEJ.js +1 -0
- package/dist/cjs/EmbeddedWalletCreatedScreen-D5PwFHC7.js +1 -0
- package/dist/cjs/{EmbeddedWalletKeyExportScreen-H0W0Seun.js → EmbeddedWalletKeyExportScreen-DszJVyOe.js} +2 -2
- package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-C4dBDzQV.js +1 -0
- package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-CJQBG3tr.js +1 -0
- package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-DISYQBGG.js +1 -0
- package/dist/cjs/{EnrollTotp-BbePRUGX.js → EnrollTotp-DmEXJI20.js} +8 -8
- package/dist/cjs/ErrorScreen-DBufYBAT.js +4 -0
- package/dist/cjs/{FarcasterConnectStatusScreen-LPCbfVT6.js → FarcasterConnectStatusScreen-BHsQhnxe.js} +6 -6
- package/dist/cjs/FarcasterSignerStatusScreen-ClCsDFns.js +29 -0
- package/dist/cjs/FundSolWalletWithExternalSolanaWallet-DCdJwukp.js +2 -0
- package/dist/cjs/{FundWalletMethodHeader-BvRFQpAq.js → FundWalletMethodHeader-B1WvouQK.js} +1 -1
- package/dist/cjs/{FundWithBankDepositScreen-CW9fQXWW.js → FundWithBankDepositScreen-zihRVyvs.js} +4 -4
- package/dist/cjs/FundingEditAmountScreen-CLd-SUXK.js +1 -0
- package/dist/cjs/FundingMethodSelectionScreen-EKlcEwiq.js +1 -0
- package/dist/cjs/InAppBrowserLoginNotPossible-CzYTb-FD.js +1 -0
- package/dist/cjs/InstallWalletScreen-Bgkyz_sV.js +1 -0
- package/dist/cjs/LandingScreen-CfjCU0Nk.js +1 -0
- package/dist/cjs/{LinkConflictScreen-m-9_Aelz.js → LinkConflictScreen-B5l8Yj72.js} +3 -3
- package/dist/cjs/LinkEmailScreen-C8WgXvy5.js +1 -0
- package/dist/cjs/{LinkPasskeyScreen-BEr2kUd1.js → LinkPasskeyScreen-zZuixNSn.js} +4 -4
- package/dist/cjs/LinkPhoneScreen-Ce-gRgav.js +1 -0
- package/dist/cjs/LoginFailedScreen-z2hTJqor.js +1 -0
- package/dist/cjs/ManualTransferScreen-DvMhwqIJ.js +1 -0
- package/dist/cjs/MfaAuthEnrollmentFlowScreen-Dpg6VFt0.js +1 -0
- package/dist/cjs/MfaAuthVerifyFlowScreen-CMRoZXUS.js +1 -0
- package/dist/cjs/MfaEnrollmentFlowScreen-ihcEpQrd.js +1 -0
- package/dist/cjs/MfaVerifyFlowScreen-CilRXIV0.js +1 -0
- package/dist/cjs/{ModalHeader-GBAwOroa.js → ModalHeader-CyTOtcfZ.js} +1 -1
- package/dist/cjs/MoonpayStatusScreen-Nyj1xMTq.js +16 -0
- package/dist/cjs/OAuthStatusScreen-_TFqeHsJ.js +1 -0
- package/dist/cjs/PasskeySelectSignupOrLogin-Dp0-Ud_g.js +1 -0
- package/dist/cjs/PasskeyStatusScreen-C63gCtWy.js +3 -0
- package/dist/cjs/PasswordRecoveryScreen-Cwa1T4Li.js +20 -0
- package/dist/cjs/{QrCode-B3SMGhXR.js → QrCode-W7V5iJhH.js} +3 -3
- package/dist/cjs/RecoveryOAuthStatusScreen-ByS5mnB4.js +1 -0
- package/dist/cjs/RecoveryPasswordCreateScreen-BKEPFkp5.js +1 -0
- package/dist/cjs/{RecoverySelectionScreen-DvNHxJ5j.js → RecoverySelectionScreen-D1oBvaHv.js} +2 -2
- package/dist/cjs/{Screen-Pj2ZYdHC.js → Screen-CmJw2o9A.js} +1 -1
- package/dist/cjs/{ScreenLayout-BHHlzSio.js → ScreenLayout-DNsKsPML.js} +1 -1
- package/dist/cjs/{SetAutomaticRecoveryScreen-DmszLf5G.js → SetAutomaticRecoveryScreen-IX9a3eUr.js} +2 -2
- package/dist/cjs/{SetWalletPasswordForm-H4Il8ttU.js → SetWalletPasswordForm-DfEhJ79E.js} +2 -2
- package/dist/cjs/{SignRequestScreen-DynNsz8H.js → SignRequestScreen-Dqx7elGz.js} +5 -5
- package/dist/cjs/{StandardSignAndSendTransactionScreen-BPzpZJ9p.js → StandardSignAndSendTransactionScreen-BdCYw0my.js} +3 -3
- package/dist/cjs/TelegramAuthScreen-DHvtkANm.js +1 -0
- package/dist/cjs/{TransactionDetails-hXvXoX9X.js → TransactionDetails-Bkf0lmfq.js} +1 -1
- package/dist/cjs/{TransactionErrorView-BRVtuUfe.js → TransactionErrorView-Ckrj9n7Y.js} +4 -4
- package/dist/cjs/TransferFromWalletScreen-4r3KTkpp.js +31 -0
- package/dist/cjs/{TransferOrBridgeLoadingScreen-CJZ5TtOk.js → TransferOrBridgeLoadingScreen-DlJ5lthW.js} +2 -2
- package/dist/cjs/UpdateEmailScreen-qiSXBq0X.js +1 -0
- package/dist/cjs/UpdatePhoneScreen-DysY1yM-.js +1 -0
- package/dist/cjs/UserLimitReachedScreen-De0w5MuT.js +1 -0
- package/dist/cjs/{WalletInfoCard-C9sF64jD.js → WalletInfoCard-CniJMC32.js} +6 -6
- package/dist/cjs/WalletInterstitialScreen-DyxheWue.js +1 -0
- package/dist/cjs/WalletLink-Vtuq8mBK.js +22 -0
- package/dist/cjs/{WalletOverflowButton-vu5a58lx.js → WalletOverflowButton-CkK93UsZ.js} +1 -1
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/{context-BUtefjlp.js → context-BVD9aHyL.js} +1 -1
- package/dist/cjs/ethers-0NnB0y-d.js +1 -0
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/{get-is-unified-wallet-DZz3zBvv.js → get-is-unified-wallet-3wKKPb8T.js} +1 -1
- package/dist/cjs/getErc20Balance-RxLpb74e.js +1 -0
- package/dist/cjs/getErc20TokenInfo-CwuidUyY.js +1 -0
- package/dist/cjs/{index-B2LlWVGv.js → index-BnLXb15t.js} +1 -1
- package/dist/cjs/index-CZcgFfXk.js +12 -0
- package/dist/cjs/index-DvDZFmbh.js +174 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internal.js +1 -1
- package/dist/cjs/{shared-36UW-DIc.js → shared-TYGDmgn8.js} +1 -1
- package/dist/cjs/{shouldProceedtoEmbeddedWalletCreationFlow-CRa43-i7.js → shouldProceedtoEmbeddedWalletCreationFlow-vPg8Kr3c.js} +1 -1
- package/dist/cjs/smart-wallets-dvV25L_d.js +1 -0
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/{styles-g3kNpNZY.js → styles-CQ0az3cX.js} +4 -4
- package/dist/cjs/{to-ui-error-DaZr6PqV.js → to-ui-error-Csc1sILU.js} +2 -2
- package/dist/cjs/ui.js +9 -9
- package/dist/cjs/{use-export-wallet-Bln7maDs.js → use-export-wallet-CqCBNS7w.js} +1 -1
- package/dist/cjs/use-export-wallet-D-c4_YuN.js +1 -0
- package/dist/cjs/useActiveWallet-DiVVvDrc.js +185 -0
- package/dist/cjs/{useGetTokenPrice-62KL9-pY.js → useGetTokenPrice--7EaVoh2.js} +1 -1
- package/dist/cjs/{useI18n-CAzGX3fh.js → useI18n-BCObhUAf.js} +1 -1
- package/dist/cjs/usePrivy-C8r8d5n6.js +1 -0
- package/dist/cjs/{useSolanaRpcClient-CT_ce08U.js → useSolanaRpcClient-B5PLFTBV.js} +1 -1
- package/dist/cjs/useWalletBalance-B2tDjYdh.js +1 -0
- package/dist/cjs/useWallets-CYbllwnl.js +1 -0
- package/dist/cjs/{useWallets-7pxglx6q.js → useWallets-Ngfy6BRk.js} +1 -1
- package/dist/dts/{events-context-DpeYfJb8.d.mts → events-context-DJ7XN_9I.d.mts} +1 -1
- package/dist/dts/{events-context-DpeYfJb8.d.ts → events-context-DJ7XN_9I.d.ts} +1 -1
- package/dist/dts/extended-chains.d.mts +1 -1
- package/dist/dts/extended-chains.d.ts +1 -1
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +10 -4
- package/dist/dts/index.d.ts +10 -4
- package/dist/dts/internal.d.mts +1 -1
- package/dist/dts/internal.d.ts +1 -1
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +3 -3
- package/dist/dts/solana.d.ts +3 -3
- package/dist/dts/{types-YrdexZMd.d.mts → types-CrwMc83t.d.mts} +10 -0
- package/dist/dts/{types-YrdexZMd.d.ts → types-CrwMc83t.d.ts} +10 -0
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/esm/AccountNotFoundScreen-DxCW4sYL.mjs +1 -0
- package/dist/esm/Address-gS9RaH_3.mjs +17 -0
- package/dist/esm/AffirmativeConsentScreen-BfAJLkHs.mjs +6 -0
- package/dist/esm/AllowlistRejectionScreen-CfIwm_KR.mjs +1 -0
- package/dist/esm/AuthenticateWithWalletScreen-CGMkVkqN.mjs +1 -0
- package/dist/esm/AwaitingEvmToSolBridgingScreen-BEhpNQue.mjs +2 -0
- package/dist/esm/AwaitingExternalEthereumTransferScreen-DXabkUmb.mjs +2 -0
- package/dist/esm/AwaitingPasswordlessCodeScreen-C8_6Jmdn.mjs +103 -0
- package/dist/esm/AwaitingSolToEvmBridgingScreen-DDeK6Ay4.mjs +2 -0
- package/dist/esm/BridgeNetworkSelectionView-BEkgkdcj.mjs +69 -0
- package/dist/esm/CaptchaScreen-AiG4L_WL.mjs +1 -0
- package/dist/esm/CoinbaseOnrampStatusScreen-B2Pe4vVR.mjs +16 -0
- package/dist/esm/ConnectEmailForm-xRPNNO6z.mjs +3 -0
- package/dist/esm/ConnectLedgerScreen-Op6Fai6R.mjs +9 -0
- package/dist/esm/ConnectOnlyLandingScreen-bnn4qrHH.mjs +1 -0
- package/dist/esm/ConnectOnlyStatusScreen-lSx84lvG.mjs +1 -0
- package/dist/esm/ConnectOrCreateScreen-CLmEnt_8.mjs +1 -0
- package/dist/esm/{ConnectPhoneForm-DTZTENXQ.mjs → ConnectPhoneForm-CyET5ztr.mjs} +1 -1
- package/dist/esm/{ConnectWalletView-DMLO1g28.mjs → ConnectWalletView-C7q7CJzF.mjs} +4 -4
- package/dist/esm/ConnectionStatusScreen-Day5J0Vy.mjs +7 -0
- package/dist/esm/CrossAppAuthScreen-CGctDoIE.mjs +1 -0
- package/dist/esm/{CustomLandingScreenView-JGe-GePA.mjs → CustomLandingScreenView-DDjvsORu.mjs} +6 -6
- package/dist/esm/DelegatedActionsConsentScreen-CziDKoEO.mjs +1 -0
- package/dist/esm/DelegatedActionsRevokeScreen-CGCYIB8S.mjs +1 -0
- package/dist/esm/EmbeddedWalletConnectingScreen-D5POWVph.mjs +1 -0
- package/dist/esm/EmbeddedWalletCreatedScreen-CBFugH74.mjs +1 -0
- package/dist/esm/{EmbeddedWalletKeyExportScreen-DdviAcYq.mjs → EmbeddedWalletKeyExportScreen-DvPo1Dqc.mjs} +3 -3
- package/dist/esm/EmbeddedWalletOnAccountCreateScreen-CiVZK25P.mjs +1 -0
- package/dist/esm/EmbeddedWalletPasswordUpdateScreen-CK7LxxHa.mjs +1 -0
- package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-Cqi_wMos.mjs +1 -0
- package/dist/esm/{EnrollTotp-COmXYzq5.mjs → EnrollTotp-KgOCncuG.mjs} +5 -5
- package/dist/esm/ErrorScreen-oC2GYZyz.mjs +4 -0
- package/dist/esm/{FarcasterConnectStatusScreen-BB7egF78.mjs → FarcasterConnectStatusScreen-BhZ_ibkr.mjs} +8 -8
- package/dist/esm/FarcasterSignerStatusScreen-LgZqqLIg.mjs +28 -0
- package/dist/esm/FundSolWalletWithExternalSolanaWallet-Bpbr58Rk.mjs +1 -0
- package/dist/esm/{FundWalletMethodHeader-DRH4o4R5.mjs → FundWalletMethodHeader-Cj0ejXEe.mjs} +1 -1
- package/dist/esm/{FundWithBankDepositScreen-wFJhtxMV.mjs → FundWithBankDepositScreen-D_Bvn9z-.mjs} +12 -12
- package/dist/esm/FundingEditAmountScreen-DHMuyuSU.mjs +1 -0
- package/dist/esm/FundingMethodSelectionScreen-ClAs5ybE.mjs +1 -0
- package/dist/esm/InAppBrowserLoginNotPossible-BTJOkFD8.mjs +1 -0
- package/dist/esm/InstallWalletScreen-MMyGad_h.mjs +1 -0
- package/dist/esm/LandingScreen-5Oa-RLB-.mjs +1 -0
- package/dist/esm/{LinkConflictScreen-CSZu5Mc7.mjs → LinkConflictScreen-CRUt3M0v.mjs} +3 -3
- package/dist/esm/LinkEmailScreen-BODpl3zv.mjs +1 -0
- package/dist/esm/{LinkPasskeyScreen-BfLq2-Q5.mjs → LinkPasskeyScreen-C8-qPCc0.mjs} +8 -8
- package/dist/esm/LinkPhoneScreen-BLeNeU6s.mjs +1 -0
- package/dist/esm/LoginFailedScreen-Db6M5P_W.mjs +1 -0
- package/dist/esm/ManualTransferScreen-B1K2GVns.mjs +1 -0
- package/dist/esm/MfaAuthEnrollmentFlowScreen-FPJhtPEX.mjs +1 -0
- package/dist/esm/MfaAuthVerifyFlowScreen-CWaZHYk3.mjs +1 -0
- package/dist/esm/MfaEnrollmentFlowScreen-BNsNSjMO.mjs +1 -0
- package/dist/esm/MfaVerifyFlowScreen-BiL-DDiE.mjs +1 -0
- package/dist/esm/{ModalHeader-JjfRejxC.mjs → ModalHeader-BO0_ew01.mjs} +6 -6
- package/dist/esm/MoonpayStatusScreen-CYJ55uJj.mjs +16 -0
- package/dist/esm/OAuthStatusScreen-CdyVmpfT.mjs +1 -0
- package/dist/esm/PasskeySelectSignupOrLogin-DknmFq5C.mjs +1 -0
- package/dist/esm/PasskeyStatusScreen-OJ7pdD7_.mjs +3 -0
- package/dist/esm/PasswordRecoveryScreen-B1gO8QHk.mjs +20 -0
- package/dist/esm/{QrCode-VCBMkqqq.mjs → QrCode-CkFpOhWR.mjs} +3 -3
- package/dist/esm/RecoveryOAuthStatusScreen-B-DJ0UpW.mjs +1 -0
- package/dist/esm/RecoveryPasswordCreateScreen-D4xjd6G2.mjs +1 -0
- package/dist/esm/{RecoverySelectionScreen-DfHkr07F.mjs → RecoverySelectionScreen-OaYDY3s0.mjs} +2 -2
- package/dist/esm/{Screen-DE3ldE_X.mjs → Screen-DEU9RkqZ.mjs} +3 -3
- package/dist/esm/{ScreenLayout-Ca6ml9wY.mjs → ScreenLayout-CBKj6lhP.mjs} +1 -1
- package/dist/esm/{SetAutomaticRecoveryScreen-Ol789UQM.mjs → SetAutomaticRecoveryScreen-CeCoPMb9.mjs} +2 -2
- package/dist/esm/{SetWalletPasswordForm-C2hZtfwu.mjs → SetWalletPasswordForm-DasvIAaE.mjs} +4 -4
- package/dist/esm/SignRequestScreen-DvMVqqRy.mjs +26 -0
- package/dist/esm/{StandardSignAndSendTransactionScreen-C8nW4u5b.mjs → StandardSignAndSendTransactionScreen-P41dVhUg.mjs} +3 -3
- package/dist/esm/TelegramAuthScreen-DDi3bZj8.mjs +1 -0
- package/dist/esm/{TransactionDetails-DkPozym_.mjs → TransactionDetails-TElXTRgE.mjs} +4 -4
- package/dist/esm/{TransactionErrorView-f1bQRoCZ.mjs → TransactionErrorView-nAvkCFbn.mjs} +7 -7
- package/dist/esm/{TransferFromWalletScreen-B8AzQgyG.mjs → TransferFromWalletScreen-DJHQToqB.mjs} +4 -4
- package/dist/esm/{TransferOrBridgeLoadingScreen-BKmOAmlN.mjs → TransferOrBridgeLoadingScreen-DfjuIpgw.mjs} +1 -1
- package/dist/esm/UpdateEmailScreen-BYYYeIGc.mjs +1 -0
- package/dist/esm/UpdatePhoneScreen-BK-lEzDy.mjs +1 -0
- package/dist/esm/UserLimitReachedScreen-DJ6LECFo.mjs +1 -0
- package/dist/esm/{WalletInfoCard-CuZCmvHw.mjs → WalletInfoCard-CvaU9hsg.mjs} +1 -1
- package/dist/esm/WalletInterstitialScreen-BBcEvRlE.mjs +1 -0
- package/dist/esm/{WalletLink-B12jNftF.mjs → WalletLink-CGTEPUiO.mjs} +5 -5
- package/dist/esm/{WalletOverflowButton-DJthXlpc.mjs → WalletOverflowButton-CYYzAWaD.mjs} +1 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/context-CE35zxmH.mjs +1 -0
- package/dist/esm/ethers-BQABFn4K.mjs +1 -0
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/{get-is-unified-wallet-CMioBd5c.mjs → get-is-unified-wallet-Dy3_T-CK.mjs} +1 -1
- package/dist/esm/getErc20Balance-DsDepObC.mjs +1 -0
- package/dist/esm/{getErc20TokenInfo-1Q6w1Ibq.mjs → getErc20TokenInfo-CwIeNSfD.mjs} +1 -1
- package/dist/esm/{index-BAAWn9Kv.mjs → index-B5IXvf6Q.mjs} +3 -3
- package/dist/esm/{index-BpieExSM.mjs → index-BgDuUMhM.mjs} +1 -1
- package/dist/esm/index-CvRB3i5Y.mjs +174 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/{shared-BcHk2XA3.mjs → shared-BU9j9DNx.mjs} +1 -1
- package/dist/esm/{shouldProceedtoEmbeddedWalletCreationFlow-BsPl2jCD.mjs → shouldProceedtoEmbeddedWalletCreationFlow-ifSse9fH.mjs} +1 -1
- package/dist/esm/smart-wallets-BfMsOCbS.mjs +1 -0
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/{styles-Dr0J8BuN.mjs → styles-rdvIOTsj.mjs} +15 -15
- package/dist/esm/to-ui-error-D6Ur9EPb.mjs +4 -0
- package/dist/esm/ui.mjs +36 -36
- package/dist/esm/{use-export-wallet-CquCci1U.mjs → use-export-wallet-C8egaVlY.mjs} +1 -1
- package/dist/esm/use-export-wallet-CEsGQUX-.mjs +1 -0
- package/dist/esm/useActiveWallet-C-m0Q1tx.mjs +185 -0
- package/dist/esm/useGetTokenPrice-BPzXHAOr.mjs +1 -0
- package/dist/esm/{useI18n-BdIAB9oU.mjs → useI18n-D15_QND3.mjs} +1 -1
- package/dist/esm/usePrivy-BbA3ewrr.mjs +1 -0
- package/dist/esm/{useSolanaRpcClient-ign2YXAl.mjs → useSolanaRpcClient-BAT_UrqZ.mjs} +1 -1
- package/dist/esm/useWalletBalance-CCxr6ymL.mjs +1 -0
- package/dist/esm/{useWallets-DFA-9f9j.mjs → useWallets-C1MMwBpM.mjs} +1 -1
- package/dist/esm/useWallets-Ca4W6aLm.mjs +1 -0
- package/package.json +6 -6
- package/dist/cjs/AccountNotFoundScreen-tDR43oHW.js +0 -1
- package/dist/cjs/AffirmativeConsentScreen-BRBNsOWi.js +0 -6
- package/dist/cjs/AllowlistRejectionScreen-BHoYCH0v.js +0 -1
- package/dist/cjs/AuthenticateWithWalletScreen-CEggKX3g.js +0 -1
- package/dist/cjs/AwaitingEvmToSolBridgingScreen-BoYhV9tQ.js +0 -2
- package/dist/cjs/AwaitingExternalEthereumTransferScreen-Cz2k5mXb.js +0 -2
- package/dist/cjs/AwaitingPasswordlessCodeScreen-l9n3fNao.js +0 -103
- package/dist/cjs/AwaitingSolToEvmBridgingScreen-yuSZrlo8.js +0 -2
- package/dist/cjs/CaptchaScreen-BndC7zXe.js +0 -1
- package/dist/cjs/CoinbaseOnrampStatusScreen-BmZ1Zvaw.js +0 -16
- package/dist/cjs/ConnectEmailForm-Gz3TJQaS.js +0 -3
- package/dist/cjs/ConnectLedgerScreen-CTd4ew1b.js +0 -9
- package/dist/cjs/ConnectOnlyLandingScreen-BTm5z22a.js +0 -1
- package/dist/cjs/ConnectOnlyStatusScreen-JtIOf9tK.js +0 -1
- package/dist/cjs/ConnectOrCreateScreen-b6jwd3G9.js +0 -1
- package/dist/cjs/ConnectionStatusScreen-BlaYqHPV.js +0 -7
- package/dist/cjs/CrossAppAuthScreen-CLdpzOoL.js +0 -1
- package/dist/cjs/CustomLandingScreenView-C7uyw9AS.js +0 -23
- package/dist/cjs/DelegatedActionsConsentScreen-C66Qamby.js +0 -1
- package/dist/cjs/DelegatedActionsRevokeScreen-WnC6Ml_O.js +0 -1
- package/dist/cjs/EmbeddedWalletConnectingScreen-Lf8XU72H.js +0 -1
- package/dist/cjs/EmbeddedWalletCreatedScreen-DQjc2aO5.js +0 -1
- package/dist/cjs/EmbeddedWalletOnAccountCreateScreen-Cl21QlpI.js +0 -1
- package/dist/cjs/EmbeddedWalletPasswordUpdateScreen-DyznRBRm.js +0 -1
- package/dist/cjs/EmbeddedWalletPasswordUpdateSplashScreen-BzIflp1Z.js +0 -1
- package/dist/cjs/ErrorScreen-CkOQuqz_.js +0 -4
- package/dist/cjs/FarcasterSignerStatusScreen-BepAag3F.js +0 -29
- package/dist/cjs/FundSolWalletWithExternalSolanaWallet-G5WWMpKM.js +0 -2
- package/dist/cjs/FundingEditAmountScreen-CVPt0UFO.js +0 -1
- package/dist/cjs/FundingMethodSelectionScreen-Bfs4t9ic.js +0 -1
- package/dist/cjs/InAppBrowserLoginNotPossible-AwBNR0cT.js +0 -1
- package/dist/cjs/InstallWalletScreen-B6Hbb2zf.js +0 -1
- package/dist/cjs/LandingScreen-B1FOnI7l.js +0 -1
- package/dist/cjs/LinkEmailScreen-Cbrn-OnF.js +0 -1
- package/dist/cjs/LinkPhoneScreen-jLla569a.js +0 -1
- package/dist/cjs/LoginFailedScreen-DbW_n3Ud.js +0 -1
- package/dist/cjs/ManualTransferScreen-DcMiPTb7.js +0 -1
- package/dist/cjs/MfaAuthEnrollmentFlowScreen-CVROFlbO.js +0 -1
- package/dist/cjs/MfaAuthVerifyFlowScreen-CzvKJxko.js +0 -1
- package/dist/cjs/MfaEnrollmentFlowScreen-BC4nUEqe.js +0 -1
- package/dist/cjs/MfaVerifyFlowScreen-BEIBzXix.js +0 -1
- package/dist/cjs/MoonpayStatusScreen-DTHwGL_G.js +0 -16
- package/dist/cjs/OAuthStatusScreen-1ErCNKnQ.js +0 -1
- package/dist/cjs/PasskeySelectSignupOrLogin-DajoZ9ZQ.js +0 -1
- package/dist/cjs/PasskeyStatusScreen-CbNToK-f.js +0 -3
- package/dist/cjs/PasswordRecoveryScreen-HSt33MHO.js +0 -20
- package/dist/cjs/RecoveryOAuthStatusScreen-C9roBryy.js +0 -1
- package/dist/cjs/RecoveryPasswordCreateScreen-D1zbL15z.js +0 -1
- package/dist/cjs/TelegramAuthScreen-DxF54ZK7.js +0 -1
- package/dist/cjs/TransferFromWalletScreen-B1iYTL4A.js +0 -31
- package/dist/cjs/UpdateEmailScreen-Ci24R0Wi.js +0 -1
- package/dist/cjs/UpdatePhoneScreen-C5s7Q1Uq.js +0 -1
- package/dist/cjs/UserLimitReachedScreen-DSozFkdB.js +0 -1
- package/dist/cjs/WalletInterstitialScreen-D2r6qjUr.js +0 -1
- package/dist/cjs/WalletLink-BHFIodVQ.js +0 -22
- package/dist/cjs/ethers-CjXeDhFm.js +0 -1
- package/dist/cjs/getErc20Balance-D2jXMvJ8.js +0 -1
- package/dist/cjs/getErc20TokenInfo-DxDd_HN6.js +0 -1
- package/dist/cjs/getPublicClient-BsmZyCGX.js +0 -1
- package/dist/cjs/index-BioFA041.js +0 -12
- package/dist/cjs/index-tQ5GebzM.js +0 -174
- package/dist/cjs/smart-wallets-DL8bKJhE.js +0 -1
- package/dist/cjs/use-export-wallet-BIBOLyrr.js +0 -1
- package/dist/cjs/useActiveWallet-CbC_e7T4.js +0 -185
- package/dist/cjs/usePrivy-Dl1Nx5y2.js +0 -1
- package/dist/cjs/useWalletBalance-DI8AY31i.js +0 -1
- package/dist/cjs/useWallets-CGZli1jq.js +0 -1
- package/dist/esm/AccountNotFoundScreen-CeH1-Vk6.mjs +0 -1
- package/dist/esm/Address-D-q_5it9.mjs +0 -17
- package/dist/esm/AffirmativeConsentScreen-CXITm_N9.mjs +0 -6
- package/dist/esm/AllowlistRejectionScreen-lgFXWCYE.mjs +0 -1
- package/dist/esm/AuthenticateWithWalletScreen-m06-fuCA.mjs +0 -1
- package/dist/esm/AwaitingEvmToSolBridgingScreen-CckTG9KA.mjs +0 -2
- package/dist/esm/AwaitingExternalEthereumTransferScreen-eF2GWu8M.mjs +0 -2
- package/dist/esm/AwaitingPasswordlessCodeScreen-BOBPSamI.mjs +0 -103
- package/dist/esm/AwaitingSolToEvmBridgingScreen-P3cpg0C5.mjs +0 -2
- package/dist/esm/BridgeNetworkSelectionView-C74EH50n.mjs +0 -69
- package/dist/esm/CaptchaScreen-B3Ykiq24.mjs +0 -1
- package/dist/esm/CoinbaseOnrampStatusScreen-w23Wg5d9.mjs +0 -16
- package/dist/esm/ConnectEmailForm-DQUiQNyc.mjs +0 -3
- package/dist/esm/ConnectLedgerScreen-CeefF4eo.mjs +0 -9
- package/dist/esm/ConnectOnlyLandingScreen-DsUmsQqW.mjs +0 -1
- package/dist/esm/ConnectOnlyStatusScreen-BWSDA11j.mjs +0 -1
- package/dist/esm/ConnectOrCreateScreen-2uZYB3jh.mjs +0 -1
- package/dist/esm/ConnectionStatusScreen-DC1viuqC.mjs +0 -7
- package/dist/esm/CrossAppAuthScreen-BBpfShQF.mjs +0 -1
- package/dist/esm/DelegatedActionsConsentScreen-BcanXrk2.mjs +0 -1
- package/dist/esm/DelegatedActionsRevokeScreen-CEToWbrk.mjs +0 -1
- package/dist/esm/EmbeddedWalletConnectingScreen-CTdp8K5o.mjs +0 -1
- package/dist/esm/EmbeddedWalletCreatedScreen-BEBjX0Mt.mjs +0 -1
- package/dist/esm/EmbeddedWalletOnAccountCreateScreen-eKriq-Nq.mjs +0 -1
- package/dist/esm/EmbeddedWalletPasswordUpdateScreen-BAlUIAfz.mjs +0 -1
- package/dist/esm/EmbeddedWalletPasswordUpdateSplashScreen-DX_WQZdd.mjs +0 -1
- package/dist/esm/ErrorScreen-V8ec2dKP.mjs +0 -4
- package/dist/esm/FarcasterSignerStatusScreen-DE_ssKid.mjs +0 -28
- package/dist/esm/FundSolWalletWithExternalSolanaWallet-DAhHczol.mjs +0 -1
- package/dist/esm/FundingEditAmountScreen-kwQjuyb9.mjs +0 -1
- package/dist/esm/FundingMethodSelectionScreen-CbxUWw1v.mjs +0 -1
- package/dist/esm/InAppBrowserLoginNotPossible-BR9y7vrg.mjs +0 -1
- package/dist/esm/InstallWalletScreen-DkaJ2iZK.mjs +0 -1
- package/dist/esm/LandingScreen-BtCc-4_K.mjs +0 -1
- package/dist/esm/LinkEmailScreen-CMX1b5QU.mjs +0 -1
- package/dist/esm/LinkPhoneScreen-CGYAeavW.mjs +0 -1
- package/dist/esm/LoginFailedScreen-DpfFaY7V.mjs +0 -1
- package/dist/esm/ManualTransferScreen-D3CPPofR.mjs +0 -1
- package/dist/esm/MfaAuthEnrollmentFlowScreen-YWkK-71P.mjs +0 -1
- package/dist/esm/MfaAuthVerifyFlowScreen-BIGip6ll.mjs +0 -1
- package/dist/esm/MfaEnrollmentFlowScreen-XrdyfmmI.mjs +0 -1
- package/dist/esm/MfaVerifyFlowScreen-2H1EX_qQ.mjs +0 -1
- package/dist/esm/MoonpayStatusScreen-CqsI_vjN.mjs +0 -16
- package/dist/esm/OAuthStatusScreen-DB8OcP_K.mjs +0 -1
- package/dist/esm/PasskeySelectSignupOrLogin-DCaGA7kA.mjs +0 -1
- package/dist/esm/PasskeyStatusScreen-5cLO3m8F.mjs +0 -3
- package/dist/esm/PasswordRecoveryScreen-Bfqx2sWJ.mjs +0 -20
- package/dist/esm/RecoveryOAuthStatusScreen-CScuB-aG.mjs +0 -1
- package/dist/esm/RecoveryPasswordCreateScreen-BRb1syw7.mjs +0 -1
- package/dist/esm/SignRequestScreen-CUMcsLye.mjs +0 -26
- package/dist/esm/TelegramAuthScreen-jb192MAl.mjs +0 -1
- package/dist/esm/UpdateEmailScreen-deteEdyS.mjs +0 -1
- package/dist/esm/UpdatePhoneScreen-D3RSZlDk.mjs +0 -1
- package/dist/esm/UserLimitReachedScreen-QT4sbDev.mjs +0 -1
- package/dist/esm/WalletInterstitialScreen-DPTs9K3X.mjs +0 -1
- package/dist/esm/context-CcPjcQxY.mjs +0 -1
- package/dist/esm/ethers-VWEScvge.mjs +0 -1
- package/dist/esm/getErc20Balance-DA4dGV9O.mjs +0 -1
- package/dist/esm/getPublicClient-B4uPLKn-.mjs +0 -1
- package/dist/esm/index-DMvly1BH.mjs +0 -174
- package/dist/esm/smart-wallets-C245MBMI.mjs +0 -1
- package/dist/esm/to-ui-error-CmP4i4IC.mjs +0 -4
- package/dist/esm/use-export-wallet-BzM2a8Is.mjs +0 -1
- package/dist/esm/useActiveWallet-CHY4WQdQ.mjs +0 -185
- package/dist/esm/useGetTokenPrice-PWP-Uiot.mjs +0 -1
- package/dist/esm/usePrivy-DK1coOrO.mjs +0 -1
- package/dist/esm/useWalletBalance-CDyi5_iR.mjs +0 -1
- package/dist/esm/useWallets-rvM1mjSi.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e,c as t,j as n,a,u as i}from"./internal-context-Z-fyxadS.mjs";import{b as s,g as r}from"./useWallets-Ca4W6aLm.mjs";import{ProviderErrors as o,ConnectedStandardSolanaWallet as l,monadMainnet as d,hyperEVMMainnet as c,arbitrumSepolia as u,arbitrum as h,avalancheFuji as p,avalanche as f,baseSepolia as m,base as w,polygonAmoy as g,polygon as C,optimismSepolia as y,optimism as A,sepolia as b,mainnet as E}from"@privy-io/js-sdk-core";import W from"eventemitter3";import{b as v,u as D}from"./context-CE35zxmH.mjs";import{jsxs as x,jsx as T}from"react/jsx-runtime";import{useMemo as S}from"react";import{isAddress as I}from"viem/utils";import{u as M,a as F,j as P,c as O,b as k}from"./get-is-unified-wallet-Dy3_T-CK.mjs";const R=e=>e.isApexWallet?"Apex Wallet":e.isAvalanche?"Core Wallet":e.isBackpack?"Backpack":e.isBifrost?"Bifrost Wallet":e.isBitKeep?"BitKeep":e.isBitski?"Bitski":e.isBlockWallet?"BlockWallet":e.isBraveWallet?"Brave Wallet":e.isClover?"Clover":e.isCoin98?"Coin98 Wallet":e.isCoinbaseWallet?"Coinbase Wallet":e.isDawn?"Dawn Wallet":e.isDefiant?"Defiant":e.isDesig?"Desig Wallet":e.isEnkrypt?"Enkrypt":e.isExodus?"Exodus":e.isFordefi?"Fordefi":e.isFrame?"Frame":e.isFrontier?"Frontier Wallet":e.isGamestop?"GameStop Wallet":e.isHaqqWallet?"HAQQ Wallet":e.isHyperPay?"HyperPay Wallet":e.isImToken?"ImToken":e.isHaloWallet?"Halo Wallet":e.isKuCoinWallet?"KuCoin Wallet":e.isMathWallet?"MathWallet":e.isNovaWallet?"Nova Wallet":e.isOkxWallet||e.isOKExWallet?"OKX Wallet":e.isOneInchIOSWallet||e.isOneInchAndroidWallet?"1inch Wallet":e.isOneKey?"OneKey Wallet":e.isOpera?"Opera":e.isPhantom||"isPhantom"in e?"Phantom":e.isPortal?"Ripio Portal":e.isRabby?"Rabby Wallet":e.isRainbow?"Rainbow":e.isSafePal?"SafePal Wallet":e.isStatus?"Status":e.isSubWallet?"SubWallet":e.isTalisman?"Talisman":e.isTally||e.isTaho?"Taho":e.isTokenPocket?"TokenPocket":e.isTokenary?"Tokenary":e.isTrust||e.isTrustWallet?"Trust Wallet":e.isTTWallet?"TTWallet":e.isXDEFI?"XDEFI Wallet":e.isZeal?"Zeal":e.isZerion?"Zerion":e.isMetaMask?"MetaMask":void 0,_=(e,t)=>{if(!e.isMetaMask)return!1;if(e.isMetaMask&&!t)return!0;if(e.isBraveWallet&&!e._events&&!e._state||"MetaMask"!==R(e))return!1;if(e.providers)for(let t of e.providers)if(!_(t))return!1;return!0},j=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers)for(let t of e.ethereum.providers)if(t&&t.isCoinbaseWallet)return!0;return!1},B=(e,t)=>{let n=[],a=[];for(let[i,s]of e.entries())i<t?n.push(s):a.push(s);return[n,a]},N=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),U=(e,t)=>{let n=e.slice(0),a=[];for(;n.length;)a.push(n.splice(0,t));return a},L=(e,t=3,n=4,a="ethereum")=>{if(!e)return"";let i="ethereum"===a?2:0;return t+n+i+3>=e.length?e:`${e.slice(0,i+t)}...${e.slice(e.length-n,e.length)}`},z=(e,t=3,n=4)=>L(e,t,n,"solana"),Y=e=>new Promise((t=>setTimeout(t,e)));function Z(e,{interval:t=100,timeout:n=5e3}={}){return new Promise(((a,i)=>{let s,r=0,o=()=>{r>=n?i("Max attempts reached without result"):(s=e(),r+=t,null==s?setTimeout(o,t):a(s))};o()}))}const G=(e,t={})=>{let n=t.delayMs||150,a=t.maxAttempts||270;return new Promise((async(i,s)=>{let r=!1,o=0;for(;!r&&o<a;){if(t.abortSignal?.aborted)return;e().then((e=>{r=!0,i(e)}),((...e)=>{r=!0,s(...e)})),o+=1,await Y(n)}r||s(Error("Exceeded max attempts before resolving function"))}))},J=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),H=e=>"string"==typeof e?e:"0x"+e.toString(16);async function X({store:e,walletList:t,externalWalletConfig:n,walletChainType:a,timeout:i=3e3}){let s=!1,r=window;return new Promise((o=>{function l(){if(s)return;s=!0,window.removeEventListener("ethereum#initialized",l);let i=e.getProviders();console.debug("Detected injected providers:",i.map((e=>e.info)));let r=[];for(let e of i)t.includes("coinbase_wallet")&&"com.coinbase.wallet"===e.info.rdns||"solana-only"===a&&"app.phantom"===e.info.rdns||r.push({type:e.info.name.toLowerCase().replace(/\s/g,"_"),eip6963InjectedProvider:e});if("solana-only"!==a)for(let e of function(){let e=window,t=e.ethereum;if(!t)return[];let n=[];if(t.providers?.length)for(let e of t.providers)e&&n.push(e);return n.push(e.ethereum),n}()){let t=R(e);if(!i.some((e=>e.info.name===t))){if(_(e,!0)&&!r.find((e=>"metamask"===e.type))){r.push({type:"metamask",legacyInjectedProvider:e});continue}if("Phantom"===t&&!r.find((e=>"phantom"===e.type))){r.push({type:"phantom",legacyInjectedProvider:e});continue}if("Coinbase Wallet"===t&&!r.find((e=>"coinbase_wallet"===e.type&&"smartWalletOnly"!==n.coinbaseWallet?.config?.preference?.options))){r.push({type:"coinbase_wallet",legacyInjectedProvider:e});continue}r.find((e=>"unknown_browser_extension"===e.type))||r.push({type:"unknown_browser_extension",legacyInjectedProvider:e})}}o(r)}r.ethereum?l():(window.addEventListener("ethereum#initialized",l,{once:!0}),setTimeout((()=>{l()}),i))}))}function q(e){return`eip155:${String(Number(e))}`}const K=(t,n,a,i)=>{let r=Number(t),o=n.find((e=>e.id===r));if(!o)throw new e(`Unsupported chainId ${t}`,4901);return s(o,a,i)},Q=(t,n)=>{let a=Number(t),i=n.find((e=>e.id===a));if(!i)throw new e(`Unsupported chainId ${t}`,4901);return i.blockExplorers?.default.url},V=e=>{let t={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},n=e.types.EIP712Domain??Object.entries(e.domain).map((([e,n])=>{if(null!=n&&"string"==typeof e&&e in t)return{name:e,type:t[e]}})).filter((e=>void 0!==e));return{...e,types:{...e.types,EIP712Domain:n}}};function $(e,{min:t,max:n}){return Math.min(Math.max(e,t),n)}const ee=e=>e?.map((e=>({signer_id:e.signerId,override_policy_ids:e.policyIds})));let te="[Privy:Connectors]";function ne(e){if(!e||0===Object.keys(e).length)return"";let t=Object.entries(e).filter((([,e])=>null!=e)).map((([e,t])=>`${e}=${String(t)}`));return t.length>0?` (${t.join(", ")})`:""}const ae=new class{setEnabled(e){this._enabled=e,e&&this.info("Debug logging enabled")}get enabled(){return this._enabled}debug(e,t){this._enabled&&console.debug(`${te} ${e}${ne(t)}`)}info(e,t){this._enabled&&console.info(`${te} ${e}${ne(t)}`)}warn(e,t){this._enabled&&console.warn(`${te} ${e}${ne(t)}`)}error(e,t,n){if(!this._enabled)return;let a=t instanceof Error?t.message:t?String(t):void 0,i=a?{...n,error:a}:n;console.error(`${te} ${e}${ne(i)}`)}connectionStart(e,t,n){this.info("Connection attempt started",{wallet:e,method:t,...n})}connectionSuccess(e,t){this.info("Connection successful",{wallet:e,...t})}connectionFailed(e,t,n){this.error("Connection failed",t,{wallet:e,...n})}connectorInit(e,t,n){this.debug("Connector initialized",{connector:e,wallet:t,...n})}connectorCreated(e,t,n){this.debug("Connector created",{connector:e,wallet:t,...n})}providerEvent(e,t,n){this.debug(`Provider event: ${e}`,{wallet:t,...n})}rpcRequest(e,t,n){this.debug(`RPC request: ${e}`,{wallet:t,...n})}rpcResponse(e,t,n){this.debug(`RPC response: ${e}`,{wallet:t,...n})}constructor(){this._enabled=!1}};class ie extends e{constructor(){super("Wallet timeout"),this.type="wallet_error",ae.warn("Wallet request timed out")}}const se=t=>{if(t instanceof e)return ae.debug("Connector error (already formatted)",{error:t.message}),t;if(t?.code){let e=new oe(t);return ae.debug("Provider RPC error",{code:e.code,error:e.message}),e}let n=t instanceof Error?t.message:String(t);return ae.debug("Unknown connector error",{error:n}),new e("Unknown connector error",t)};class re extends t{constructor(e,t,n){super(e),this.type="provider_error",this.code=t,this.data=n}}class oe extends re{constructor(e){super(e.message,e.code,e.data);let t=Object.values(o).find((t=>t.eipCode===e.code));this.details=t||o.UNKNOWN_ERROR,-32002===e.code&&(e.message?.includes("already pending for origin")?e.message?.includes("wallet_requestPermissions")?this.details=o.E32002_CONNECTION_ALREADY_PENDING:this.details=o.E32002_REQUEST_ALREADY_PENDING:e.message?.includes("Already processing")&&e.message.includes("eth_requestAccounts")&&(this.details=o.E32002_WALLET_LOCKED))}}const le={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_LIMIT_REACHED:{message:"Unable to link",detail:"You've reached the maximum number of linked wallets.",retryable:!1},...o};class de{get(e){let t=localStorage.getItem(e);return null===t?void 0:JSON.parse(t)}put(e,t){void 0!==t?localStorage.setItem(e,JSON.stringify(t)):this.del(e)}del(e){localStorage.removeItem(e)}getKeys(){return Object.entries(localStorage).map((([e])=>e))}}function ce(){try{let e="privy:__session_storage__test",t=new de;return t.put(e,"blobby"),t.del(e),!0}catch(e){return!1}}var ue="undefined"!=typeof window&&window.localStorage?new de:new class{get(e){return this._cache[e]}put(e,t){void 0!==t?this._cache[e]=t:this.del(e)}del(e){delete this._cache[e]}getKeys(){return Object.keys(this._cache)}constructor(){this._cache={}}};class he extends W{constructor(e){super(),this.walletClientType=e,this.connected=!1,this.initialized=!1}}const pe=()=>{let e=ue.get(v);return e&&Array.isArray(e)&&e.map((e=>(e=>e&&"string"==typeof e.address&&"string"==typeof e.connectorType&&"string"==typeof e.walletClientType&&"number"==typeof e.connectedAt)(e))).every(Boolean)?e:[]};let fe=["phantom","glow","solflare","backpack","okx_wallet","walletconnect","mobile_wallet_adapter","jupiter"];function me(e){return e.toLowerCase().split(" ").join("_")}class we extends he{get isInstalled(){return!0}get wallet(){return this._wallet}buildConnectedWallet(){return this._wallet.accounts.map((e=>({type:"solana",provider:new l({wallet:this._wallet,account:e}),address:e.address,connectedAt:Date.now(),walletClientType:this._wallet.name,connectorType:this.connectorType,imported:!1,meta:{name:this._wallet.name,id:this._wallet.name,icon:this._wallet.icon},isConnected:async()=>this._wallet.accounts.length>0,disconnect:async()=>{await this.disconnect()}})))}async syncAccounts(){this.wallets=this.buildConnectedWallet(),this.emit("walletsUpdated")}get walletBranding(){return{id:ge(this.wallet)?"walletconnect_solana":this.wallet.name,name:this.wallet.name,icon:this.wallet.icon}}async initialize(){ae.debug("Initializing Solana connector",{wallet:this.walletClientType}),this.subscribeListeners(),await this.syncAccounts(),this.shouldAttemptAutoConnect()&&(ae.debug("Attempting Solana auto-connect",{wallet:this.walletClientType}),await(this.wallet.features["standard:connect"]?.connect({silent:!0}).catch((()=>{}))),await this.isConnected()&&(ae.debug("Solana auto-connect successful",{wallet:this.walletClientType}),await this.syncAccounts())),this.initialized=!0,this.emit("initialized")}async connect(e){if(ae.connectionStart(this.walletClientType,"solana_adapter",{showPrompt:e.showPrompt}),e.showPrompt)try{await this.promptConnection()}catch(e){if(0===this._wallet.accounts.length)throw ae.warn("Solana wallet connected but has no accounts",{wallet:this.walletClientType}),new n;throw ae.connectionFailed(this.walletClientType,e,{method:"solana_adapter"}),e}if(!await this.isConnected())throw ae.warn("Solana wallet not connected after prompt",{wallet:this.walletClientType}),new n;await this.syncAccounts();let t=await this.getConnectedWallet();return t&&ae.connectionSuccess(this.walletClientType),t}async getConnectedWallet(){return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt))[0]||null}async isConnected(){return this._wallet.accounts.length>0}subscribeListeners(){this._unsubscribeListeners=this.wallet.features["standard:events"]?.on("change",this.onChange)}unsubscribeListeners(){this._unsubscribeListeners?.()}shouldAttemptAutoConnect(){return!(!this.autoConnectEnabled||!fe.includes(this.walletClientType))&&("phantom"!==this.walletClientType&&"metamask"!==this.walletClientType.toLowerCase()||pe().some((({walletClientType:e})=>"phantom"===e||"metamask"===e.toLowerCase())))}constructor(e,t){super(me(ge(e)?"walletconnect_solana":e.name)),this.chainType="solana",this.connectorType="solana_adapter",this.disconnect=async()=>{ae.debug("Disconnecting Solana wallet",{wallet:this.walletClientType}),await(this.wallet.features["standard:disconnect"]?.disconnect().catch((e=>{ae.error("Error disconnecting Solana wallet",e,{wallet:this.walletClientType})}))),await this.syncAccounts()},this.promptConnection=async()=>{ae.debug("Prompting Solana connection",{wallet:this.walletClientType});try{await(this.wallet.features["standard:connect"]?.connect())}catch(e){throw ae.connectionFailed(this.walletClientType,e,{method:"solana_adapter"}),se(e)}},this.onChange=()=>{this.syncAccounts()},this._wallet=e,this.autoConnectEnabled=t,this.wallets=[]}}function ge(e){return"isWalletConnectSolana"in e&&e.isWalletConnectSolana}const Ce=({style:e,...t})=>{let n=D();/*#__PURE__*/return x("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[/*#__PURE__*/T("rect",{width:"28",height:"28",rx:"3",fill:"dark"===n?.appearance.palette.colorScheme?"#3396ff":"#141414"}),/*#__PURE__*/T("g",{clipPath:"url(#clip0_1765_9946)",children:/*#__PURE__*/T("path",{d:"M8.09448 10.3941C11.3558 7.20196 16.6442 7.20196 19.9055 10.3941L20.2982 10.7782C20.3369 10.8157 20.3677 10.8606 20.3887 10.9102C20.4097 10.9599 20.4206 11.0132 20.4206 11.0671C20.4206 11.121 20.4097 11.1744 20.3887 11.224C20.3677 11.2737 20.3369 11.3186 20.2982 11.3561L18.9554 12.6702C18.9158 12.7086 18.8628 12.7301 18.8077 12.7301C18.7526 12.7301 18.6996 12.7086 18.66 12.6702L18.1198 12.1415C15.8448 9.91503 12.1557 9.91503 9.88015 12.1415L9.30167 12.7075C9.26207 12.7459 9.20909 12.7673 9.15395 12.7673C9.0988 12.7673 9.04582 12.7459 9.00622 12.7075L7.66346 11.3934C7.62475 11.3559 7.59397 11.3109 7.57295 11.2613C7.55193 11.2117 7.5411 11.1583 7.5411 11.1044C7.5411 11.0505 7.55193 10.9971 7.57295 10.9475C7.59397 10.8979 7.62475 10.8529 7.66346 10.8154L8.09448 10.3941ZM22.6829 13.1115L23.8776 14.2814C23.9163 14.319 23.9471 14.3639 23.9681 14.4135C23.9892 14.4632 24 14.5165 24 14.5704C24 14.6243 23.9892 14.6777 23.9681 14.7273C23.9471 14.777 23.9163 14.8219 23.8776 14.8594L18.4893 20.1332C18.4102 20.2101 18.3042 20.2531 18.1938 20.2531C18.0835 20.2531 17.9775 20.2101 17.8984 20.1332L14.0743 16.3901C14.0545 16.3708 14.0279 16.36 14.0003 16.36C13.9726 16.36 13.9461 16.3708 13.9263 16.3901L10.1021 20.1332C10.023 20.2101 9.91703 20.2531 9.8067 20.2531C9.69636 20.2531 9.59038 20.2101 9.51124 20.1332L4.12236 14.8594C4.08365 14.8219 4.05287 14.777 4.03185 14.7273C4.01083 14.6777 4 14.6243 4 14.5704C4 14.5165 4.01083 14.4632 4.03185 14.4135C4.05287 14.3639 4.08365 14.319 4.12236 14.2814L5.31767 13.1115C5.39678 13.0348 5.50265 12.9919 5.61285 12.9919C5.72305 12.9919 5.82892 13.0348 5.90803 13.1115L9.73216 16.8546C9.75194 16.874 9.7785 16.8848 9.80616 16.8848C9.83381 16.8848 9.86037 16.874 9.88015 16.8546L13.7043 13.1115C13.7834 13.0346 13.8894 12.9916 13.9997 12.9916C14.1101 12.9916 14.216 13.0346 14.2952 13.1115L18.1198 16.8546C18.1396 16.874 18.1662 16.8848 18.1938 16.8848C18.2215 16.8848 18.2481 16.874 18.2678 16.8546L22.092 13.1115C22.1711 13.0346 22.2771 12.9916 22.3874 12.9916C22.4977 12.9916 22.6037 13.0346 22.6829 13.1115Z",fill:"white"})}),/*#__PURE__*/T("defs",{children:/*#__PURE__*/T("clipPath",{id:"clip0_1765_9946",children:/*#__PURE__*/T("rect",{width:"20",height:"12.2531",fill:"white",transform:"translate(4 8)"})})})]})},ye="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfoDAIVODUC+w+GAAAGsUlEQVRYw6WXbYwWVxXHf+fOLAtCXYS2QJdIaClipGCTknXXNqBQMVHbfmhItH4Aral+IAEaG03UxJgYKQJGTUxtDWjaxDSNtcZqIGDwpRuW1oYiVqpdpZSlpC3qysu+PHPP3w/3mXnmeXZbPzjJZO7cefn/z/mfe865xlscq3dGDIguGiHLaMQVLja4s87FShcLo5jtApdddnHexUmHIy475JmdUkPRAQMu7gzT4ljnxJpdk0QPmMFkyAKN2OfOFpc2uuh1J3MZDrjAvXmVEQUuoosRxw642FcEG7IoDxiFxNiu8NYE+vcUYIFYRKKs113bXWx2Z34CoQZsVHOiCZ7mopdzdsFhv8NexEgRDHMxUSNREbh1bwNZwBsFblmfu/a4a6AEENYO5i3AOoEWeEUCF4MOOxBDMQAOk99OJALA2u80sBCwWGBZWG/yRwMaCAbBIAsQTJT3gea1OWfNeaPzvjoHEI85rA8ObtB1v7cIdJkIHgkh9AXpocy0LJjIKvB2wPpZB0v3wkrw5jdNEjeYeMhFX3BAyfn2ke9NUrgB9LrrcZcGJFCld4fWNddXbvbWfWzGR6xJFZsBGh0cBh3bBIxIEGTQ3W0h4NuDaSAzyAxCmGq11Vzf5uaa1aG8p+WFtrEYQGwvjICJkAEqvC+YNmcmMlMNvEaCdrcbyUvQAWDTjVuESHObM6cPGWHmzDwLaEtmzG9Z3qF1zUpXmuuZBb1z4bqeNC6f0WE1NtUTwHzEloiy3BvFisy0sYoLlQtT6XW15md2Qf9SY+2Ngfdca/TMSm/9ewz+/Boc/It45h/i4kSTsKw90SQJsPTvjSZbkWemDW7qTRZ0JEYJWSKxZJ7xmf6M224MzMzbX1s8F1YugjtvMg6eErt/4/z1jUrz1rXUKxnZC2zIg2mdBTK1mFUOKC1fOt/48kdzVixIz86Nij+eEacvpJWyZJ5xy7th8VzjjpuMJfMCW58QL73ekXPVlhsyE+vyzFiplJyauEIyrGIquruMq7qTxk+dcB495rzyTzFepCUWLIFv/kBg081Gd55WUk1IDGFTS89K++TDYxddzKnWcbluHd450xgdh7EGrOo1rr868PMTzqWJRGZ2d8oB/xpL33Xnxl2rjeNn4blXRXduzJ4B5y+28kWscAwXl+yeR654FFZPHoUb710YuPeDOUdPO48di1xptKpeEeHqOcYXNwQKGd88EDk3mqxtxPSfGRlsXRtYt8z4ytPOH/7eqpg1Aso7fYKgK4NPrMpYvsC4/poMA34yVJIQC3sCD9yecdsNyaV5yPj6ryJnR1PAvSNP4J+/1cgDfLbfePaMGGtM7Qdyl12WmKOmXgKKAp54vmBRTxfLrjE+tSYjBPjRM5FrrzIeuD2jf2lLzw8vN4JlfPVp581LsO1DgXv7jSzAiXPw/d+JiYLpjsu26Yfjf5O0rF5WoxsNT9G/bX0XKxakmPjlSee6HlizJJXSX7/oRDc+vjKR+f2wODcKd78/gR8/C9uedF44myJxmhh4OY/ipMQyqaWxmjn95TfEroMFOzbkvG+RceeqViPx1Aln1yEnOow1AnffHCpJAJ5/Vex4UvzptZRdY/O/1dJIS/NkcNmR6MTYah6qzseA4TfFtw4UvHBW1bc/O+7sPhwZHYf/jMODh5yfPudVbXj2TAJ/8XxrOZagNamj4Ei2/GNfuyRxh8t6BG2l15up+MIVODEiFr8rcPS0+O6RBF6mrrEGHHtFzOo2Lo7Dl37hvPQ6mNV6R9JYKgnYWcE37K5HlE2OT/5A0udaPUBHH+BQOMzuNsYLuDyZflTW+fTcmJFDHhJhaZqewMuewXDxcDR9IYyPN6Jj+6K4MF2vV8qBtZJScqVRNi6lpGONVJis5mpKi1WbgwsY+zIsBpcR8mzIZfuTRVZrtdu9odrptR/Xx5XONXJqBmCN0P6YMUQq9WJiwt0Je102WHdbpxSqydMObBWYdwDWLVcqcIMYe3NPjg0Ht84od0Ajju1w2XCr9e6QoqM9V23ZtnmI6cfAMMb9AY0YEHdb6oobEh4y3H3Ize6LsmGvN5IdUnhttdQ9UVrfLk/ljWEZ9wXsqAdQk1EA+O22GcgdZTke/bAs3OPY4HSdcB20HhvVtTMu0jmI8ekAhz2IICj2hKpNqI60NcuIRUHEej1quzubXa2tmZhenrfZmv3YYQ9ipDAIgvHptmblccuDjdRcmjFpWbDi/9ycZjZkRbk5jYztai/AUwiUx+qdEQB/m+25i9lxyvbcjrg45Lmd0uT/3p7/Fw6ODf+WO019AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI0LTEyLTAyVDIxOjU2OjQ4KzAwOjAwMVpslgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNC0xMi0wMlQyMTo1Njo0OCswMDowMEAH1CoAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjQtMTItMDJUMjE6NTY6NTMrMDA6MDDZv6GRAAAAAElFTkSuQmCC";function Ae(e){return["ethereum","solana"].includes(e.chainType)}function be(e){let t=e.replace("eip155:","");if(t)return parseInt(t);throw Error("Chain ID not compatible with CAIP-2 format.")}const Ee=e=>e.filter((e=>"wallets"===e.method||("exchange"===e.method?"coinbase"===e.provider:"card"===e.method||"payment-request"===e.method?"coinbase"===e.provider||"moonpay"===e.provider:(e.method,!1)))),We={[E.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[b.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[A.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[y.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[C.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[g.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[w.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[m.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[f.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[p.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[h.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[u.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",[c.id]:"0xb88339CB7199b77E23DB6E890353E22632Ba630f",[d.id]:"0x754704Bc059F8C67012fEd69BC8A327a5aafb603"},ve=({address:e,appConfig:t,fundWalletConfig:n,methodScreen:i,chainIdOverride:s,comingFromSendTransactionScreen:r=!1,onComplete:o,onError:l})=>{let d,c;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let u=Ee(t.fundingConfig.options);if(u.length<1)throw Error("Wallet funding is not enabled");d=s||(n?.chain?n.chain.id:be(t.fundingConfig.defaultRecommendedCurrency.chain));let h=t.chains.find((e=>e.id===d));if(!h)throw new a(`Funding chain ${d} is not in PrivyProvider chains list`);let p=n?.amount??t.fundingConfig.defaultRecommendedAmount,f=!1;function m(){if(!d)return;let e=We[d];u.find((e=>"wallets"===e.method))&&!e&&console.warn("Attempting to fund with USDC on chain where USDC address is not known. Funding via external wallet will be disabled."),c=e,f=!0}n&&"asset"in n?"USDC"===n.asset?m():"string"!=typeof n.asset&&"erc20"in n.asset&&(f=((e,t)=>e===We[t.id])(c=n.asset.erc20,h)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&m();let w=n?.defaultFundingMethod;return{chainType:"ethereum",address:e,amount:p,chain:h,erc20Address:c,erc20ContractInfo:f?{symbol:"USDC",decimals:6}:void 0,isUSDC:f,methodScreen:i,supportedOptions:u,comingFromSendTransactionScreen:r,defaultFundingMethod:w,usingDefaultFundingMethod:!!w,preferredCardProvider:n?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,solanaChain:"solana:mainnet",uiConfig:n&&"uiConfig"in n?n.uiConfig:void 0,externalSolanaFundingScreen:null,onComplete:o??(()=>{}),onError:l??(()=>{})}};function De({address:e,fundWalletConfig:t,appConfig:n,comingFromSendTransactionScreen:a,externalSolanaFundingScreen:i,methodScreen:s}){if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let r=Ee(n.fundingConfig.options);if(r.length<1)throw Error("Wallet funding is not enabled");if("USDC"===t?.asset&&"solana:testnet"===t?.chain)throw Error("USDC funding is not supported on the Solana testnet");let o=t?.amount??n.fundingConfig.defaultRecommendedAmount,l=t?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:r,amount:o,isUSDC:"USDC"===t?.asset,methodScreen:s,comingFromSendTransactionScreen:a,chain:t?.chain||"solana:mainnet",crossChainBridgingEnabled:n.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:l,preferredCardProvider:t?.card?.preferredProvider,usingDefaultFundingMethod:!!l,uiConfig:t?.uiConfig,externalSolanaFundingScreen:i,onComplete:()=>{},onError:()=>{}}}function xe(){let{user:e,getAccessToken:t}=M(),{walletProxy:n,openModal:s,client:o}=i(),{setModalData:l}=F(),d=D();return S((()=>({exportWallet:i=>new Promise((async(c,u)=>{if(!e)return void u(Error("User must be authenticated before exporting their Privy wallet"));i&&"target"in i&&i&&(i=void 0);let h=i?.address?P(e,i.address):O(e);if(!h)return void u(new a("User must have an embedded wallet."));let p=h.address,{entropyId:f,entropyIdVerifier:m}=r(e,h),w=k(h);if(!p)return void u(Error("User does not have an HD Ethereum wallet. To export an imported wallet, pass the `address` of the wallet to `exportWallet`."));if(!I(p))return void u(Error("Must provide a valid Ethereum address."));let g={recoveryMethod:h.recoveryMethod,connectingWalletAddress:h.address,isUnifiedWallet:w,entropyId:f,entropyIdVerifier:m,onCompleteNavigateTo:"EmbeddedWalletKeyExportScreen",onFailure:u,shouldForceMFA:!0};await t()&&n?Ae(h)?(l({keyExport:{appId:d.id,appClientId:d.appClientId,origin:o.apiUrl,address:h.address,entropyId:f,entropyIdVerifier:m,hdWalletIndex:h.walletIndex,chainType:h.chainType,walletId:h.id,isUnifiedWallet:w,imported:h.imported,onSuccess:c,onFailure:u,showBackButton:i?.showBackButton},connectWallet:g}),s("EmbeddedWalletConnectingScreen")):u(Error(`Export is not supported for ${h.chainType} wallets`)):u(Error("Must have valid access token."))}))})),[e,t,n,s,o,l,d])}export{Ce as A,N as B,le as C,$ as D,U as E,Q as F,re as G,me as H,z as I,oe as P,we as S,ye as W,J as a,Ae as b,ae as c,Ee as d,V as e,se as f,K as g,be as h,G as i,ve as j,Y as k,ce as l,q as m,X as n,pe as o,Z as p,ee as q,he as r,ue as s,H as t,xe as u,L as v,ie as w,De as x,j as y,B as z};
|
|
@@ -0,0 +1,185 @@
|
|
|
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-CE35zxmH.mjs";import{styled as h,css as p}from"styled-components";import{jsx as u,jsxs as m}from"react/jsx-runtime";import*as w from"react-device-detect";import{r as y,m as g,k as f,c as b,i as v,s as x,f as k,w as C,S as _}from"./use-export-wallet-CEsGQUX-.mjs";import{u as T}from"./events-context-CI0iqAXA.mjs";import{isAddress as z}from"viem";import{getAddress as $,toHex as P}from"viem/utils";import{P as S,u as j}from"./internal-context-Z-fyxadS.mjs";import{P as I}from"./get-is-unified-wallet-Dy3_T-CK.mjs";import{u as N}from"./useWallets-Ca4W6aLm.mjs";const E=o((()=>({listings:[],loading:!1}))),L=E.setState,A=e=>E.getState().listings.find((({slug:t})=>R(t)===R(e))),O=e=>{let t;try{t=new URL(e).hostname}catch(e){return}return E.getState().listings.find((({homepage:e})=>{let n;try{n=new URL(e).hostname}catch(e){return!1}return t.includes(n)}))},U=(t=!0)=>{let n=r(),i=E((e=>e.listings)),a=E((e=>e.loading)),l=!!i.length;return e((()=>{t&&!l&&(L({listings:[],loading:!0}),(async e=>{let t=new URL("v3/wallets","https://explorer-api.walletconnect.com");t.searchParams.append("projectId",e);let n=await fetch(t);return n.ok?Object.values((await n.json()).listings).sort((({slug:e},{slug:t})=>"rainbow"===e&&"metamask"===t?1:"metamask"===e||"rainbow"===e?-1:1)):(console.debug(`Failed to fetch WalletConnect listings: ${await n.text().catch((()=>"No response."))}`),[])})(n.walletConnectCloudProjectId).then((e=>L({listings:e,loading:!1}))).catch((e=>{console.error(e),L({listings:[],loading:!1})})))}),[t,l,n.walletConnectCloudProjectId]),{listings:i,loading:a}},W=e=>{let{listings:t}=U();return t.find((({slug:t})=>R(t)===R(e)))};function R(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function M(e){return["wallet_connect","backpack","binance","binanceus","bitget_wallet","bybit_wallet","cryptocom","haha_wallet","jupiter","metamask","okx_wallet","phantom","rabby_wallet","rainbow","ronin_wallet","safe","solflare","uniswap","zerion","kraken_wallet"].some((t=>e?.includes(t)))}function q(e){return"ethereum"===e.type}function B(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let i=e[n],a=t[n];if(i?.address!==a?.address||i&&a&&q(i)&&q(a)&&i?.chainId!==a?.chainId||i?.connectorType!==a?.connectorType||i?.connectedAt!==a?.connectedAt||i?.walletClientType!==a?.walletClientType||i?.isConnected!==a?.isConnected||i?.linked!==a?.linked)return!1}return!0}const D=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||s;function F(e){return"ethereum"===e.chainType}class J extends y{buildConnectedWallet(e,t,n,i){let a=async()=>!!this.wallets.find((t=>$(t.address)===$(e)));return{type:"ethereum",address:$(e),chainId:t,meta:n,imported:i,switchChain:async n=>{let i,l;if(!a)throw new S("Wallet is not currently connected.");let o=this.wallets.find((t=>$(t.address)===$(e)))?.chainId;if(!o)throw new S("Unable to determine current chainId.");if("number"==typeof n?(i=`0x${n.toString(16)}`,l=n):(i=n,l=Number(n)),o===g(i))return;let r=this.chains.find((e=>e.id===l));if(!r)throw new S(`Unsupported chainId: ${n}`);let s=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:i}]})};try{return await s()}catch(e){if(((e,t)=>{switch(t){case"coinbase_wallet":case"base_account":return e.message.includes("addEthereumChain");case"rabby_wallet":return e.message.includes("Unrecognized chain ID");default:return 4902===e.code||e.message?.includes("4902")}})(e,this.walletClientType))return"rabby_wallet"===this.walletClientType&&await f(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:i,chainName:r.name,nativeCurrency:r.nativeCurrency,rpcUrls:[r.rpcUrls.default?.http[0]??""],blockExplorerUrls:[r.blockExplorers?.default.url??""]}]}),s();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new S(`Rainbow does not support the chainId ${t}`);throw e}},connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:a,getEthereumProvider:async()=>{if(!await a())throw new S("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new S("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t;b.debug("Syncing accounts",{wallet:this.walletClientType});let n=e;try{if(void 0===n){b.rpcRequest("eth_accounts",this.walletClientType);let e=await v((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});b.rpcResponse("eth_accounts",this.walletClientType),Array.isArray(e)&&(n=e)}}catch(e){b.warn("Wallet did not respond to eth_accounts, using prefetched accounts",{wallet:this.walletClientType})}if(!n||!Array.isArray(n)||n.length<=0||!n[0])return void b.debug("No accounts found",{wallet:this.walletClientType});let i=n[0];if(!z(i))return;let a=$(i),l=[];if("privy"===this.walletClientType){let e=x.get(c(a));this.chains.find((t=>t.id===Number(e)))||(x.del(c(a)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){b.warn("Unable to switch embedded wallet chain on initialization",{wallet:this.walletClientType,chainId:t})}}else try{b.rpcRequest("eth_chainId",this.walletClientType);let e=await v((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(b.rpcResponse("eth_chainId",this.walletClientType),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){b.warn("Failed to get chainId from provider, using default",{wallet:this.walletClientType,defaultChainId:d}),t=d}let o=g(t);if(!l.find((e=>$(e.address)===a))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};l.push(this.buildConnectedWallet($(i),o,e,"embedded_imported"===this.connectorType))}B(l,this.wallets)||(b.debug("Wallets updated",{wallet:this.walletClientType,address:a,chainId:o}),this.wallets=l,this.emit("walletsUpdated"))}async getConnectedWallet(){let e=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt)).find((t=>e.find((e=>$(e)===$(t.address)))))||null}async isConnected(){let e=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}async sign(e){return await this.connect({showPrompt:!1}),this.proxyProvider.request({method:"personal_sign",params:[P(e),this.wallets[0]?.address]})}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}constructor(e,t,n,i){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{b.providerEvent("accountsChanged",this.walletClientType,{accountsCount:e.length}),0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{b.providerEvent("chainChanged",this.walletClientType,{chainId:e}),this.wallets.forEach((t=>{t.chainId=g(e),"privy"===this.walletClientType&&x.put(c(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{b.providerEvent("disconnect",this.walletClientType),this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{b.providerEvent("connect",this.walletClientType),"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await f(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=n,this.rpcConfig=i,this.rpcTimeoutDuration=D(i,e),this.connected=!1,this.initialized=!1}}class K{on(e,t){if(this.walletProvider)return this.walletProvider.on(e,t);this._subscriptions.push({eventName:e,listener:t})}async request(e){if(!this.walletProvider)throw new S(`A wallet request of type ${e.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(e),this.walletTimeout()]).catch((e=>{throw k(e)}))}constructor(e,t){this.removeListener=(e,t)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(e,t)}catch(e){console.warn("Unable to remove wallet provider listener")}},this.walletTimeout=(e=new C,t=this.rpcTimeoutDuration)=>new Promise(((n,i)=>setTimeout((()=>{i(e)}),t))),this.setWalletProvider=e=>{this.walletProvider&&this._subscriptions.forEach((e=>{this.removeListener(e.eventName,e.listener)})),this.walletProvider=e,this._subscriptions.forEach((e=>{this.walletProvider?.on(e.eventName,e.listener)}))},this.walletProvider=e,this.rpcTimeoutDuration=t||s,this._subscriptions=[]}}const G=n=>{let[i,a]=t("auto");return e((()=>{let e=new ResizeObserver((e=>{a(e[0]?.contentRect.height??"auto")}));return n.current&&e.observe(n.current),()=>{n.current&&e.unobserve(n.current)}}),[n.current]),i},H=h.div`
|
|
2
|
+
text-align: left;
|
|
3
|
+
flex-grow: 1;
|
|
4
|
+
`,Q=h.div`
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
justify-content: flex-end;
|
|
8
|
+
flex-grow: 1;
|
|
9
|
+
`,X=h.div`
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: 8px;
|
|
13
|
+
|
|
14
|
+
/* for Internet Explorer, Edge */
|
|
15
|
+
-ms-overflow-style: none;
|
|
16
|
+
|
|
17
|
+
/* for Firefox */
|
|
18
|
+
scrollbar-width: none;
|
|
19
|
+
|
|
20
|
+
/* for Chrome, Safari, and Opera */
|
|
21
|
+
&::-webkit-scrollbar {
|
|
22
|
+
display: none;
|
|
23
|
+
}
|
|
24
|
+
`,V=h(X)`
|
|
25
|
+
${e=>"light"===e.$colorScheme?"background: linear-gradient(var(--privy-color-background), var(--privy-color-background) 70%) bottom, linear-gradient(rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0.06)) bottom;":"dark"===e.$colorScheme?"background: linear-gradient(var(--privy-color-background), var(--privy-color-background) 70%) bottom, linear-gradient(rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 0.06)) bottom;":void 0}
|
|
26
|
+
|
|
27
|
+
background-repeat: no-repeat;
|
|
28
|
+
background-size:
|
|
29
|
+
100% 32px,
|
|
30
|
+
100% 16px;
|
|
31
|
+
background-attachment: local, scroll;
|
|
32
|
+
max-height: 400px;
|
|
33
|
+
overflow-y: auto;
|
|
34
|
+
scrollbar-width: none;
|
|
35
|
+
padding: 3px;
|
|
36
|
+
`;let Y=p`
|
|
37
|
+
&& {
|
|
38
|
+
width: 100%;
|
|
39
|
+
font-size: 16px;
|
|
40
|
+
line-height: 24px;
|
|
41
|
+
min-height: 56px;
|
|
42
|
+
|
|
43
|
+
/* Tablet and Up */
|
|
44
|
+
@media (min-width: 440px) {
|
|
45
|
+
font-size: 14px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
display: flex;
|
|
49
|
+
gap: 12px;
|
|
50
|
+
align-items: center;
|
|
51
|
+
color: var(--privy-color-foreground);
|
|
52
|
+
|
|
53
|
+
padding: 10px 12px;
|
|
54
|
+
border: 1px solid var(--privy-color-foreground-4) !important;
|
|
55
|
+
border-radius: var(--privy-border-radius-md);
|
|
56
|
+
transition: background-color 200ms ease;
|
|
57
|
+
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
|
|
60
|
+
&:hover {
|
|
61
|
+
background-color: var(--privy-color-background-2);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&:disabled {
|
|
65
|
+
cursor: pointer;
|
|
66
|
+
background-color: var(--privy-color-background-2);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
`;const Z=h.div`
|
|
70
|
+
text-align: center;
|
|
71
|
+
font-size: 14px;
|
|
72
|
+
margin-bottom: 24px;
|
|
73
|
+
`,ee=h.button.attrs({className:"login-method-button"})`
|
|
74
|
+
${Y}
|
|
75
|
+
`;h.a`
|
|
76
|
+
${Y}
|
|
77
|
+
`;const te=h.div`
|
|
78
|
+
width: 32px;
|
|
79
|
+
height: 32px;
|
|
80
|
+
border-radius: ${e=>e.$fullSize?"0":"4px"};
|
|
81
|
+
background: ${e=>e.$fullSize?"transparent":"var(--privy-color-background-2)"};
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
justify-content: center;
|
|
85
|
+
flex-shrink: 0;
|
|
86
|
+
|
|
87
|
+
svg {
|
|
88
|
+
width: ${e=>e.$fullSize?"32px":"18px"};
|
|
89
|
+
height: ${e=>e.$fullSize?"32px":"18px"};
|
|
90
|
+
color: ${e=>e.$fullSize?"inherit":"var(--privy-color-icon-muted)"};
|
|
91
|
+
}
|
|
92
|
+
`,ne=h.div`
|
|
93
|
+
width: 100%;
|
|
94
|
+
height: 100%;
|
|
95
|
+
min-height: inherit;
|
|
96
|
+
display: flex;
|
|
97
|
+
flex-direction: column;
|
|
98
|
+
${e=>e.$if?"display: none;":""}
|
|
99
|
+
`,ie=h.div`
|
|
100
|
+
width: 100%;
|
|
101
|
+
height: 100%;
|
|
102
|
+
padding: ${e=>e.$withPadding?"64px 0px":"0px"};
|
|
103
|
+
`,ae=h.div`
|
|
104
|
+
display: flex;
|
|
105
|
+
flex-direction: column;
|
|
106
|
+
align-items: center;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
margin-bottom: 32px;
|
|
109
|
+
gap: 12px;
|
|
110
|
+
& h3 {
|
|
111
|
+
font-size: 18px;
|
|
112
|
+
font-style: normal;
|
|
113
|
+
font-weight: 600;
|
|
114
|
+
line-height: 24px;
|
|
115
|
+
}
|
|
116
|
+
& p {
|
|
117
|
+
max-width: 300px;
|
|
118
|
+
font-size: 14px;
|
|
119
|
+
font-style: normal;
|
|
120
|
+
font-weight: 400;
|
|
121
|
+
line-height: 20px;
|
|
122
|
+
}
|
|
123
|
+
`,le=({success:e,fail:t})=>/*#__PURE__*/m(re,{children:[/*#__PURE__*/u(oe,{children:/*#__PURE__*/u(ce,{className:e?"success":t?"fail":""})}),/*#__PURE__*/u(oe,{children:/*#__PURE__*/u(se,{className:e?"success":t?"fail":""})})]});let oe=h.span`
|
|
124
|
+
&& {
|
|
125
|
+
position: absolute;
|
|
126
|
+
top: 0;
|
|
127
|
+
left: 0;
|
|
128
|
+
z-index: 2;
|
|
129
|
+
}
|
|
130
|
+
`,re=h.span`
|
|
131
|
+
position: relative;
|
|
132
|
+
width: 82px;
|
|
133
|
+
height: 82px;
|
|
134
|
+
display: inline-block;
|
|
135
|
+
`;const se=h.span`
|
|
136
|
+
&& {
|
|
137
|
+
width: 82px;
|
|
138
|
+
height: 82px;
|
|
139
|
+
border-width: 4px;
|
|
140
|
+
border-style: solid;
|
|
141
|
+
border-color: ${e=>e.color??"var(--privy-color-icon-subtle)"};
|
|
142
|
+
border-bottom-color: transparent;
|
|
143
|
+
border-radius: 50%;
|
|
144
|
+
display: inline-block;
|
|
145
|
+
box-sizing: border-box;
|
|
146
|
+
animation: rotation 1.2s linear infinite;
|
|
147
|
+
transition: border-color 800ms;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@keyframes rotation {
|
|
151
|
+
0% {
|
|
152
|
+
transform: rotate(0deg);
|
|
153
|
+
}
|
|
154
|
+
100% {
|
|
155
|
+
transform: rotate(360deg);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&&&.success {
|
|
160
|
+
border-color: var(--privy-color-icon-success);
|
|
161
|
+
border-bottom-color: var(--privy-color-icon-success);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
&&&.fail {
|
|
165
|
+
border-color: var(--privy-color-icon-error);
|
|
166
|
+
border-bottom-color: var(--privy-color-icon-error);
|
|
167
|
+
}
|
|
168
|
+
`,ce=h(se)`
|
|
169
|
+
&& {
|
|
170
|
+
border-bottom-color: ${e=>e.color??"var(--privy-color-border-default)"};
|
|
171
|
+
border-color: ${e=>e.color??"var(--privy-color-border-default)"};
|
|
172
|
+
animation: none;
|
|
173
|
+
opacity: 0.5;
|
|
174
|
+
}
|
|
175
|
+
`,de=e=>/*#__PURE__*/u(he,{color:e.color||"var(--privy-color-foreground-3)"});let he=h(se)`
|
|
176
|
+
&& {
|
|
177
|
+
height: 1rem;
|
|
178
|
+
width: 1rem;
|
|
179
|
+
margin: 2px 0;
|
|
180
|
+
border-width: 1.5px;
|
|
181
|
+
|
|
182
|
+
/* Override default Loader to match button transitions */
|
|
183
|
+
transition: border-color 200ms ease;
|
|
184
|
+
}
|
|
185
|
+
`;const pe=["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"],ue=Object.freeze({phantom:{client:"phantom",name:"Phantom",installLink:w.isFirefox?"https://addons.mozilla.org/en-US/firefox/addon/phantom-app/":"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa?hl=en",chainTypes:["ethereum","solana"],get isInstalled(){if("phantom"in window){let e=window;if(e?.phantom?.ethereum?.isPhantom&&e?.phantom?.ethereum?.chainId||e?.phantom?.solana?.isPhantom)return!0}return!1},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=we({client:this.client,isSolana:t,connectOnly:n});return`${e?"phantom://":"https://phantom.app/ul/"}browse/${i}?ref=${i}`}},solflare:{client:"solflare",name:"Solflare",installLink:w.isFirefox?"https://addons.mozilla.org/es/firefox/addon/solflare-wallet/":"https://chromewebstore.google.com/detail/solflare-wallet/bhhhlbepdkbapadjdnnojkbgioiodbic",chainTypes:["solana"],get isInstalled(){return"solflare"in window&&!!window?.solflare?.isSolflare},getMobileRedirect({useUniversalLink:e,isSolana:t,connectOnly:n}){let i=we({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=we({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=we({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=${we({client:this.client,isSolana:e,connectOnly:t})}`}}});function me({connectorType:e,walletClientType:t}){for(let n of pe)if(e===n||t===n)return ue[n]}function we({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 ye 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 ge(e){return"solana"===e.chainType}function fe(e){return"solana"===e.type}let be=/*#__PURE__*/n({});const ve=({children:n})=>{let i=r(),[a,l]=t({});return T("login",{onComplete:({loginAccount:e})=>{e&&"passkey"!==e.type&&"cross_app"!==e.type&&("wallet"!==e.type||"privy"!==e.walletClientType)&&(x.put(xe(i.id),e.type),"wallet"===e.type?(x.put(ke(i.id),e.walletClientType),x.put(Ce(i.id),e.chainType),l({accountType:e.type,walletClientType:e.walletClientType,chainType:e.chainType})):(x.del(ke(i.id)),x.del(Ce(i.id)),l({accountType:e.type})))}}),e((()=>{if(!i.id)return;let e=x.get(xe(i.id)),t=x.get(ke(i.id)),n=x.get(Ce(i.id));e&&l("wallet"===e?{accountType:e,walletClientType:t,chainType:n}:{accountType:e})}),[i.id]),/*#__PURE__*/u(be.Provider,{value:a,children:n})};let xe=e=>`privy:${e}:recent-login-method`,ke=e=>`privy:${e}:recent-login-wallet-client`,Ce=e=>`privy:${e}:recent-login-chain-type`;const _e=()=>i(be);class Te 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 ze=({...e})=>/*#__PURE__*/m("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",...e,children:[/*#__PURE__*/u("rect",{width:"32",height:"32",rx:"6",fill:"#121314"}),/*#__PURE__*/u("g",{transform:"translate(4, 4)",children:/*#__PURE__*/m("svg",{width:"24",height:"24",viewBox:"0 0 318.6 318.6",children:[/*#__PURE__*/u("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),/*#__PURE__*/u("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),/*#__PURE__*/u("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),/*#__PURE__*/u("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),/*#__PURE__*/u("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),/*#__PURE__*/u("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),/*#__PURE__*/u("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),/*#__PURE__*/u("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),/*#__PURE__*/u("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),/*#__PURE__*/u("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),/*#__PURE__*/u("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),/*#__PURE__*/u("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),/*#__PURE__*/u("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]})})]});function $e(e){let{login:t}=i(I);return T("login",e),{login:t}}function Pe(e){let{logout:t}=i(I);return T("logout",e),{logout:t}}function Se(e){let{connectWallet:t}=i(I);return T("connectWallet",e),{connectWallet:t}}const je=e=>{T("fundWallet",e);let{fundWallet:t}=j();return{fundWallet:({address:e,options:n})=>t(e,n)}},Ie=o((()=>({isModalOpen:!1,resolvers:null})));let Ne=o((()=>({})));const Ee=(e,t)=>Ne((n=>n[e]?.[t])),Le=(e,t,n)=>{Ne.setState((i=>({[e]:{...i[e],[t]:n}})))},Ae=async()=>{let e,t,n=new Promise(((n,i)=>{e=n,t=i}));return Ne.setState({}),Ie.setState({isModalOpen:!0,resolvers:{resolve:e,reject:t}}),await n},Oe=()=>{let e=Ie.getState().resolvers;e||console.warn("useActiveWalletStore: Called close while modal was not open"),Ie.setState({isModalOpen:!1}),e?.resolve({wallet:Ie.getState().wallet})},Ue=({address:e,client:t,appId:n})=>{let i=`${t}:${e}`;n&&x.put(Re(n),i),Ie.setState({wallet:i})},We=()=>Ie((e=>e.isModalOpen)),Re=e=>`privy:${e}:active-wallet-connection`,Me=()=>{let t=r(),{wallets:n}=N(),{connectors:i}=j(),o=a((()=>i.filter(ge).flatMap((e=>e.wallets))),[i]),s=Ie((e=>e.wallet));e((()=>{if(!t.id)return;let e=x.get(Re(t.id));Ie.setState({wallet:e})}),[t.id]);let c=a((()=>{if(!s)return;let[,e]=s.split(":");return n.find((t=>t.address===e))||o.find((t=>t.address===e))}),[s,n,o]),d=a((()=>c?"ethereum"===c.type?c.chainId:"solana":void 0),[c]);return{connect:async e=>{e?.reset&&(x.del(Re(t.id)),Ie.setState({wallet:void 0}));let{wallet:i}=await Ae();if(!i)return{};let[,a]=i.split(":"),l=n.find((e=>e.address===a));if(l)return{wallet:l,network:l.chainId};let r=o.find((e=>e.address===a));return r?{wallet:r,network:"solana"}:{}},setActiveWallet:l((e=>{Ue({address:e.address,client:e.walletClientType,appId:t.id})}),[t.id]),wallet:c,network:d}};export{ee as A,de as B,te as C,ie as D,J as E,ae as F,H as G,ne as H,V as I,Z as J,Q as K,se as L,ze as M,le as N,ce as O,K as P,X as Q,ve as R,ye as S,A as a,D as b,U as c,B as d,me as e,fe as f,O as g,F as h,q as i,ge as j,Te as k,$e as l,ue as m,Pe as n,Se as o,je as p,Me as q,_e as r,M as s,Ee as t,G as u,Le as v,Ue as w,We as x,Oe as y,W as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useState as r,useEffect as e}from"react";import{addToDefaultChains as o}from"@privy-io/js-sdk-core";import{s as i}from"./context-CE35zxmH.mjs";import{u as n}from"./internal-context-Z-fyxadS.mjs";import{u as t}from"./useGetSolPrice-DwwjjGbd.mjs";function c(c){let{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:l}=(t=>{let{showFiatPrices:c,getUsdTokenPrice:a,chains:s}=n(),[l,P]=r(!0),[d,k]=r(void 0),[m,f]=r(void 0);return e((()=>{t||=i;let r=o(s).find((r=>r.id===Number(t)));(async()=>{if(c){if(!r)return P(!1),void k(Error(`Unable to fetch token price on chain id ${t}`));try{P(!0);let e=await a(r);e?f(e):k(Error(`Unable to fetch token price on chain id ${r.id}`))}catch(r){k(r)}finally{P(!1)}}else P(!1)})()}),[t]),{tokenPrice:m,isTokenPriceLoading:l,tokenPriceError:d}})("solana"===c?-1:c),{solPrice:P,isSolPriceLoading:d,solPriceError:k}=t({enabled:"solana"===c});return"solana"===c?{tokenPrice:P,isTokenPriceLoading:d,tokenPriceError:k}:{tokenPrice:a,isTokenPriceLoading:s,tokenPriceError:l}}export{c as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as e}from"./context-
|
|
1
|
+
import{u as e}from"./context-CE35zxmH.mjs";const t={"connectionStatus.successfullyConnected":"Successfully connected with {walletName}","connectionStatus.errorTitle":"{errorMessage}","connectionStatus.connecting":"Connecting","connectionStatus.connectOneWallet":"For the best experience, connect only one wallet at a time.","connectionStatus.checkOtherWindows":"Don't see your wallet? Check your other browser windows.","connectionStatus.stillHere":"Still here?","connectionStatus.tryConnectingAgain":"Try connecting again","connectionStatus.or":"or","connectionStatus.useDifferentLink":"use this different link","connectWallet.connectYourWallet":"Connect a wallet","connectWallet.waitingForWallet":"Waiting for {walletName}","connectWallet.connectToAccount":"Connect a wallet to your {appName} account","connectWallet.installAndConnect":"To connect to {walletName}, install and open the app. Then confirm the connection when prompted.","connectWallet.tryConnectingAgain":"Please try connecting again.","connectWallet.openInApp":"Open in app","connectWallet.copyLink":"Copy link","connectWallet.retry":"Retry","connectWallet.searchPlaceholder":"Search through {count} wallets","connectWallet.noWalletsFound":"No wallets found. Try another search.","connectWallet.lastUsed":"Last used","connectWallet.selectYourWallet":"Select your wallet","connectWallet.selectNetwork":"Select network","connectWallet.goToWallet":"Go to {walletName} to continue","connectWallet.scanToConnect":"Scan code to connect to {walletName}","connectWallet.openOrInstall":"Open or install {walletName}"};function n(){let n=e();return{t:(e,o)=>function(e,n,o){let c=n?.[e]??t[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,t)=>o[t]??e)):c}(e,n.intl.textLocalization,o)}}export{n as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isMobile as e,isAndroid as t}from"react-device-detect";import{a as r,b as a,u as n}from"./internal-context-Z-fyxadS.mjs";import{useCallback as o,useContext as i}from"react";import{q as s,u as l}from"./use-export-wallet-CEsGQUX-.mjs";import{e as d,c,g as p,a as u,f as y,d as m,u as E,P as w}from"./get-is-unified-wallet-Dy3_T-CK.mjs";import{a as h,u as v}from"./events-context-CI0iqAXA.mjs";import{create as f}from"@privy-io/js-sdk-core";import{g as T}from"./useWallets-Ca4W6aLm.mjs";import{u as W,W as g}from"./context-CE35zxmH.mjs";function A(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}function S(a,n){let o=A(n);if(e&&t&&o.universalLink)return b(o.universalLink,a);if(o.deepLink)return M(o.deepLink,a);if(o.universalLink)return b(o.universalLink,a);throw new r(`Unsupported wallet ${n.id}`)}function D(e,t){let r=A(t);if(r.universalLink)return b(r.universalLink,e)}let U="WALLETCONNECT_DEEPLINK_CHOICE";function x(){try{localStorage.removeItem(U)}catch{}}function I({href:e,name:t}){try{localStorage.setItem(U,JSON.stringify({href:e,name:t}))}catch{}}function _(){try{localStorage.removeItem(U)}catch{}}function k(e){return e.startsWith("http://")||e.startsWith("https://")}function M(e,t){if(k(e))return b(e,t);let r=e;return r.includes("://")||(r=e.replaceAll("/","").replaceAll(":",""),r=`${r}://`),r.endsWith("/")||(r=`${r}/`),{redirect:`${r}wc?uri=${encodeURIComponent(t)}`,href:r}}function b(e,t){if(!k(e))return M(e,t);let r=e;return r.endsWith("/")||(r=`${r}/`),{redirect:`${r}wc?uri=${encodeURIComponent(t)}`,href:r}}function L(e,t){window.open(e,t,"noreferrer noopener")}const C=({address:e,nonce:t})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${t}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`,R=Symbol("solana-funding-plugin"),P=Symbol("solana-ledger-plugin"),N=(e,{chainType:t,walletIndex:r}={})=>e?.linkedAccounts.filter((e=>!("wallet"!==e.type||"privy"!==e.walletClientType||void 0!==r&&e.walletIndex!==r||void 0!==t&&e.chainType!==t)))??[],O=async({user:e,accessToken:t,proxy:r,refreshSessionAndUser:a,privy:n,appConfig:o,recoverEmbeddedWallet:i,setUser:l,walletIndex:p,chainType:u,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E,idempotencyKey:w,additionalSigners:h})=>{if(0===p)if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await f(n,{request:{chain_type:u,additional_signers:h?s(h):void 0},headers:w?{"privy-idempotency-key":w}:void 0});else if("ethereum"===u){let a=d(e);a&&await i({address:a.address}),await r.create({accessToken:t,solanaAddress:a?.address,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E})}else{if("solana"!==u)throw Error("Invalid input to create wallet");{let a=c(e);a&&await i({address:a.address}),await r.createSolana({accessToken:t,ethereumAddress:a?.address,recoveryMethod:y,recoveryPassword:m,recoveryAccessToken:E})}}else if("user-controlled-server-wallets-only"===o.embeddedWallets.mode)await f(n,{request:{chain_type:u,additional_signers:h?s(h):void 0}});else{let{entropyId:a,entropyIdVerifier:n}=T(e);await i(),await r.addWallet({accessToken:t,entropyId:a,entropyIdVerifier:n,chainType:u,hdWalletIndex:p})}let v=await a(),W=N(v,{chainType:u,walletIndex:p})[0];return l(v),{user:v,account:W}},K=e=>e.reduce(((e,t)=>!e||e.walletIndex<t.walletIndex?t:e),null),$=async({appConfig:e,getAccessToken:t,initializeWalletProxy:n,user:o,privy:i,emitPrivyEvent:s,recoverEmbeddedWallet:l,setModalData:d,openModal:c,setUser:p,options:u,timeoutDuration:y,refreshSessionAndUser:m,chainType:E,idempotencyKey:w,additionalSigners:h})=>{let[v,f]=await Promise.all([n(y),t()]);if(!f||!o)throw s("createWallet","onError",a.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!v&&e.customAuth?.enabled)throw s("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(h&&"user-controlled-server-wallets-only"!==e.embeddedWallets.mode)throw new r("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");if(u&&"walletIndex"in u&&"number"==typeof u.walletIndex){if("user-controlled-server-wallets-only"===e.embeddedWallets.mode)throw s("createWallet","onError",a.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return B({accessToken:f,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:v,refreshSessionAndUser:m,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:u.walletIndex,chainType:E,setUser:p,additionalSigners:h})}let T=u&&"createAdditional"in u&&u.createAdditional,W=N(o,{chainType:E});if(W[0]&&!T)throw s("createWallet","onError",a.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return B({accessToken:f,appConfig:e,privy:i,emitPrivyEvent:s,openModal:c,proxy:v,recoverEmbeddedWallet:l,setModalData:d,user:o,walletIndex:(K(W)?.walletIndex??-1)+1,chainType:E,refreshSessionAndUser:m,setUser:p,idempotencyKey:w,additionalSigners:h})};let B=async({accessToken:e,appConfig:t,privy:r,emitPrivyEvent:n,proxy:o,refreshSessionAndUser:i,recoverEmbeddedWallet:s,user:l,walletIndex:d,setModalData:c,openModal:u,chainType:y,setUser:m,idempotencyKey:E,additionalSigners:w})=>{if(d<0)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${d}) is invalid.`);let h=p(l);if(d>0&&!h)throw n("createWallet","onError",a.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw n("createWallet","onError",a.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!h&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await j({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});let v=N(l,{chainType:y,walletIndex:d})[0];if(v)return{user:l,account:v};if(0===d&&!o)return j({emitPrivyEvent:n,setModalData:c,openModal:u,chainType:y});if(!o)throw n("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return O({appConfig:t,walletIndex:d,chainType:y,user:l,accessToken:e,proxy:o,refreshSessionAndUser:i,privy:r,recoverEmbeddedWallet:s,setUser:m,idempotencyKey:E,additionalSigners:w})},j=async({emitPrivyEvent:e,setModalData:t,openModal:r,chainType:n})=>new Promise(((o,i)=>{t({createWallet:{onSuccess:({user:t,account:r})=>{e("createWallet","onSuccess",{wallet:r}),o({user:t,account:r})},onFailure:t=>{e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),i(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===n,shouldCreateSol:"solana"===n}}),r("EmbeddedWalletOnAccountCreateScreen")}));const z=()=>{let e=W(),t=h(),{setModalData:r}=u(),{initializeWalletProxy:o,recoverEmbeddedWallet:i,setUser:s,openModal:l,refreshSessionAndUser:d,privy:c,client:p}=n();return{create:async({chainType:n,options:u,latestUser:y,idempotencyKey:m})=>{let E=y;if(E||(E=await d()),!E)throw t("createWallet","onError",a.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await $({appConfig:e,privy:c,getAccessToken:()=>p.getAccessToken(),refreshSessionAndUser:d,initializeWalletProxy:o,user:E,emitPrivyEvent:t,recoverEmbeddedWallet:i,setModalData:r,openModal:l,setUser:s,options:u,timeoutDuration:g,chainType:n,idempotencyKey:m,additionalSigners:u?.signers})}}};function q(e){let{create:t}=z();return v("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:r}=await t({chainType:"ethereum",options:e});return r}}}const F=async({emitPrivyEvent:e,getAccessToken:t,initializeWalletProxy:n,refreshSessionAndUser:o,user:i,appConfig:s},{privateKey:l,chainType:d,additionalSigners:c})=>{if(!i)throw e("linkAccount","onError",a.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let p="user-controlled-server-wallets-only"===s.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===p)throw new r("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[u,E]=await Promise.all([t(),n(15e3)]);if(!E||!u)throw e("linkAccount","onError",a.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let{address:w}=await E.importWallet({privateKey:l,accessToken:u,chainType:d,mode:p,additionalSigners:c}),h=await o(),v="solana"===d?y(h):m(h),f=v?.find((e=>e.address===w));if(!f)throw e("createWallet","onError",a.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:f}),f},H=()=>{let{user:e}=E(),{client:t,refreshSessionAndUser:r,initializeWalletProxy:a}=n(),i=h(),s=W();return{importWallet:o((({privateKey:n,additionalSigners:o})=>F({getAccessToken:()=>t.getAccessToken(),user:e,initializeWalletProxy:a,refreshSessionAndUser:r,emitPrivyEvent:i,appConfig:s},{privateKey:n,chainType:"ethereum",additionalSigners:o})),[e,t,r,a,i,s])}},V=()=>{let{importWallet:e}=H(),{exportWallet:t}=l(),{createWallet:r}=q();return{...i(w),importWallet:e,createWallet:r,exportWallet:t}};export{R as S,D as a,S as b,O as c,x as d,P as e,z as f,q as g,H as h,F as i,L as o,C as p,_ as r,I as s,V as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getTransactionDecoder as r,getBase64Decoder as n,getBase58Encoder as e}from"@solana/kit";import{useMemo as o,useCallback as t}from"react";import{u as a}from"./context-
|
|
1
|
+
import{getTransactionDecoder as r,getBase64Decoder as n,getBase58Encoder as e}from"@solana/kit";import{useMemo as o,useCallback as t}from"react";import{u as a}from"./context-CE35zxmH.mjs";import{a as i,b as s}from"./internal-context-Z-fyxadS.mjs";function c(n){return new Uint8Array(r().decode(n).messageBytes)}async function l({solanaClient:r,tx:e}){let o=n().decode(c(e)),{value:t}=await r.rpc.getFeeForMessage(o).send();return t??0n}async function u({solanaClient:r,tx:e,replaceRecentBlockhash:o}){let{value:t}=await r.rpc.simulateTransaction(n().decode(e),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===t.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===t.err?await u({solanaClient:r,tx:e,replaceRecentBlockhash:!0}):{logs:t.logs??[],error:t.err,hasError:!!t.err,hasFunds:t.logs?.every((r=>!/insufficient funds/gi.test(r)&&!/insufficient lamports/gi.test(r)))??!0}}const f=(...r)=>{if("undefined"==typeof Buffer)throw new i("Buffer is not defined.",void 0,s.BUFFER_NOT_DEFINED);return Buffer.from(...r)};async function p({rpcSubscriptions:r,signature:n,timeout:e}){let o=new AbortController,t=await r.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:o.signal}),a=await Promise.race([new Promise((r=>{setTimeout((()=>{o.abort(),r(Error("Transaction confirmation timed out"))}),e)})),new Promise((async r=>{for await(let n of t){if(o.abort(),n.value.err)return r(Error("Transaction confirmation failed"));r(void 0)}}))]);if(a instanceof Error)throw a}function m({rpc:r,rpcSubscriptions:n,chain:o,blockExplorerUrl:t}){let a=function({rpc:r,rpcSubscriptions:n}){return async o=>new Promise((async(t,a)=>{try{let a=await r.sendTransaction(f(o).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await p({rpcSubscriptions:n,signature:a,timeout:1e4}),t({signature:new Uint8Array(e().encode(a))})}catch(r){a(r)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:o,blockExplorerUrl:t,sendAndConfirmTransaction:a}}function d(){let r=a(),n=o((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((n=>[n,r.solanaRpcs[n]?m({chain:n,rpc:r.solanaRpcs[n].rpc,rpcSubscriptions:r.solanaRpcs[n].rpcSubscriptions,blockExplorerUrl:r.solanaRpcs[n].blockExplorerUrl??`https://explorer.solana.com?cluster=${n.replace("solana:","")}`}):null])))),[r.solanaRpcs]);return t((r=>{if(!n[r])throw Error(`No RPC configuration found for chain ${r}`);return n[r]}),[n])}export{c as a,f as b,l as f,m as g,u as s,d as u,p as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useState as r,useMemo as a,useCallback as e,useEffect as t}from"react";import{createPublicClient as n,http as o}from"viem";import{b as c}from"./useWallets-Ca4W6aLm.mjs";import{u as i}from"./internal-context-Z-fyxadS.mjs";function s({rpcConfig:s,appId:l,address:m,chain:p}){let{chains:d}=i(),[f,u]=r(0n),[h,g]=r(!1),b=a((()=>{let r=p||d[0];if(r)return n({chain:p,transport:o(c(r,s,l))})}),[p,s,l]),j=e((async()=>{if(!m||!b)return;g(!0);let r=await b.getBalance({address:m}).catch(console.error);return r?(u(r),g(!1),r):void 0}),[b,m,u]);return t((()=>{j().catch(console.error)}),[]),{balance:f,isLoading:h,reloadBalance:j}}export{s as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getBase58Decoder as e,getTransactionDecoder as n,address as t,getTransactionEncoder as s}from"@solana/kit";import{useMemo as a,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,a as d,b as u,l as g}from"./internal-context-Z-fyxadS.mjs";import{a as h,h as p,b as f,n as w,k as A}from"./get-is-unified-wallet-CMioBd5c.mjs";import{u as y}from"./usePrivy-DK1coOrO.mjs";import{g as v,u as m}from"./useWallets-rvM1mjSi.mjs";import T from"eventemitter3";import{base58 as b}from"@scure/base";import{u as O}from"./context-CcPjcQxY.mjs";import{u as S}from"./use-sign-with-user-signer-Do5Oi_rb.mjs";import{b as _,a as E,u as I}from"./useSolanaRpcClient-ign2YXAl.mjs";import{h as W}from"./use-export-wallet-BzM2a8Is.mjs";const j=["solana:mainnet","solana:devnet","solana:testnet"];function M(n){return e().decode(n)}function P(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var C=0,F="__private_"+C+++"__implementation";function U(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var D=0;function N(e){return"__private_"+D+++"_"+e}var B=/*#__PURE__*/N("_address"),x=/*#__PURE__*/N("_publicKey"),R=/*#__PURE__*/N("_chains"),L=/*#__PURE__*/N("_features"),V=/*#__PURE__*/N("_label"),Q=/*#__PURE__*/N("_icon");class G{get address(){return U(this,B)[B]}get publicKey(){return U(this,x)[x].slice()}get chains(){return U(this,R)[R].slice()}get features(){return U(this,L)[L].slice()}get label(){return U(this,V)[V]}get icon(){return U(this,Q)[Q]}constructor({address:e,publicKey:n,label:t,icon:s}){Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),U(this,B)[B]=e,U(this,x)[x]=n,U(this,R)[R]=j,U(this,V)[V]=t,U(this,Q)[Q]=s,U(this,L)[L]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===G&&Object.freeze(this)}}function K(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var k=0;function H(e){return"__private_"+k+++"_"+e}var J=/*#__PURE__*/H("_listeners"),Y=/*#__PURE__*/H("_version"),Z=/*#__PURE__*/H("_name"),z=/*#__PURE__*/H("_icon"),q=/*#__PURE__*/H("_injection"),X=/*#__PURE__*/H("_isPrivyWallet"),$=/*#__PURE__*/H("_accounts"),ee=/*#__PURE__*/H("_on"),ne=/*#__PURE__*/H("_emit"),te=/*#__PURE__*/H("_off"),se=/*#__PURE__*/H("_connected"),ae=/*#__PURE__*/H("_connect"),ie=/*#__PURE__*/H("_disconnect"),re=/*#__PURE__*/H("_signMessage"),oe=/*#__PURE__*/H("_signAndSendTransaction"),ce=/*#__PURE__*/H("_signTransaction");function le(e,...n){K(this,J)[J][e]?.forEach((e=>e.apply(null,n)))}function de(e,n){K(this,J)[J][e]=K(this,J)[J][e]?.filter((e=>n!==e))}function ue(e,a,i){let r=structuredClone(n().decode(e)),o=t(a);return o in r.signatures&&(r.signatures[o]=i),new Uint8Array(s().encode(r))}function ge(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:s,openModal:a,privy:i,client:r}=l(),{user:c}=y(),{setModalData:g}=h(),{signWithUserSigner:w}=S();return{signMessage:({message:l,address:h,options:A})=>new Promise((async(y,m)=>{let T=p(c,h);if("privy"!==T?.walletClientType)return void m(new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:b,entropyIdVerifier:O}=v(c,T),S=f(T),E=_(l).toString("base64");if(E.length<1)return void m(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 a=await r.getAccessToken();if(!a)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 s({address:T.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:T.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await l.rpc({accessToken:a,entropyId:b,entropyIdVerifier:O,chainType:"solana",hdWalletIndex:T.walletIndex??0,requesterAppId:A?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:E}}});e=n.data.signature}return e};if(e({showWalletUIs:A?.uiOptions?.showWalletUIs}))try{let e=await I(),n=new Uint8Array(_(e,"base64"));y({signature:n})}catch(e){m(e)}else g({signMessage:{method:"solana_signMessage",data:E,confirmAndSign:I,onSuccess:e=>{y({signature:new Uint8Array(_(e,"base64"))})},onFailure:e=>{m(e)},uiOptions:A?.uiOptions??{}},connectWallet:{recoveryMethod:T.recoveryMethod,connectingWalletAddress:T.address,entropyId:b,entropyIdVerifier:O,isUnifiedWallet:S,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{m(new d("Failed to connect to wallet",e,u.UNKNOWN_CONNECT_WALLET_ERROR))}}}),a("EmbeddedWalletConnectingScreen")}))}}function he(){let{isHeadlessSigning:e,openModal:n}=l(),{setModalData:t}=h(),{signMessage:s}=ge(),{user:a}=y();return{signTransaction:async({transaction:i,options:r,chain:o="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await s({message:E(e),address:c,options:{...r,uiOptions:{...r?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:ue(e,c,n)}}return e({showWalletUIs:r?.uiOptions?.showWalletUIs})?l(i):new Promise((async(e,s)=>{let g=p(a,c);if("privy"!==g?.walletClientType)return void s(new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:w}=v(a,g),A=f(g);function y(e){return n=>{s(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let m={account:g,transaction:i,chain:o,signOnly:!0,uiOptions:r?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:y(u.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:g.recoveryMethod,connectingWalletAddress:g.address,entropyId:h,entropyIdVerifier:w,isUnifiedWallet:A,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:y(u.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:m}),n("EmbeddedWalletConnectingScreen")}))}}}let pe=new class extends T{setImplementation(e){P(this,F)[F]=e}async signMessage(e){return P(this,F)[F].signMessage(e)}async signAndSendTransaction(e){return P(this,F)[F].signAndSendTransaction(e)}async signTransaction(e){return P(this,F)[F].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,F,{writable:!0,value:void 0}),P(this,F)[F]=e}}({signTransaction:g("signTransaction was not injected"),signAndSendTransaction:g("signAndSendTransaction was not injected"),signMessage:g("signMessage was not injected")}),fe=new class{get version(){return K(this,Y)[Y]}get name(){return K(this,Z)[Z]}get icon(){return K(this,z)[z]}get chains(){return j.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:K(this,ae)[ae]},"standard:disconnect":{version:"1.0.0",disconnect:K(this,ie)[ie]},"standard:events":{version:"1.0.0",on:K(this,ee)[ee]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:K(this,oe)[oe]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:K(this,ce)[ce]},"solana:signMessage":{version:"1.0.0",signMessage:K(this,re)[re]},"privy:":{privy:{signMessage:K(this,q)[q].signMessage,signTransaction:K(this,q)[q].signTransaction,signAndSendTransaction:K(this,q)[q].signAndSendTransaction}}}}get accounts(){return K(this,$)[$].slice()}get isPrivyWallet(){return K(this,X)[X]}constructor({name:e,icon:n,version:t,injection:s,wallets:a}){Object.defineProperty(this,ne,{value:le}),Object.defineProperty(this,te,{value:de}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{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,se,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{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}),K(this,J)[J]={},K(this,ee)[ee]=(e,n)=>(K(this,J)[J][e]?.push(n)||(K(this,J)[J][e]=[n]),()=>K(this,te)[te](e,n)),K(this,se)[se]=e=>{null!=e&&(K(this,$)[$]=e.map((({address:e})=>new G({address:e,publicKey:b.decode(e)})))),K(this,ne)[ne]("change",{accounts:this.accounts})},K(this,ae)[ae]=async()=>(K(this,ne)[ne]("change",{accounts:this.accounts}),{accounts:this.accounts}),K(this,ie)[ie]=async()=>{K(this,ne)[ne]("change",{accounts:this.accounts})},K(this,re)[re]=async(...e)=>{let n=[];for(let{account:t,...s}of e){let{signature:e}=await K(this,q)[q].signMessage({...s,address:t.address});n.push({signedMessage:s.message,signature:e})}return n},K(this,oe)[oe]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await K(this,q)[q].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},K(this,ce)[ce]=async(...e)=>{let n=[];for(let{transaction:t,account:s,options:a,chain:i}of e){let{signedTransaction:e}=await K(this,q)[q].signTransaction({transaction:t,address:s.address,chain:i||"solana:mainnet",options:a});n.push({signedTransaction:e})}return n},K(this,Z)[Z]=e,K(this,z)[z]=n,K(this,Y)[Y]=t,K(this,q)[q]=s,K(this,$)[$]=[],K(this,X)[X]=!0,s.on("accountChanged",K(this,se)[se],this),K(this,se)[se](a)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:pe});function we(){let{ready:e}=m(),{user:n}=y(),{signMessage:t}=ge(),{signTransaction:s}=he(),{signAndSendTransaction:r}=function(){let e=O(),{isHeadlessSigning:n,openModal:t,privy:s}=l(),{setModalData:a}=h(),{signTransaction:i}=he(),r=I(),{user:c}=y(),{signWithUserSigner:g}=S();return{signAndSendTransaction:async({transaction:l,address:h,chain:w="solana:mainnet",options:A})=>{let y=p(c,h);if("privy"!==y?.walletClientType)throw new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND);let m=f(y);async function T(e){if(A?.sponsor)return await(async e=>{if(!m)throw new d("Sponsoring transactions is only supported for wallets on the TEE stack",u.INVALID_DATA);let n=await o(s,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:y.id});if(n.data&&"hash"in n.data)return{signature:b.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:{...A,uiOptions:{...A?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(w).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:A?.uiOptions?.showWalletUIs})?T(l):new Promise((async(n,s)=>{let i,r,{entropyId:o,entropyIdVerifier:g}=v(c,y);function p(e){return n=>{s(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let f={account:y,transaction:l,chain:w,signOnly:!1,uiOptions:A?.uiOptions||{},onConfirm:T,onSuccess:n,onFailure:p(u.TRANSACTION_FAILURE),isSponsored:!!A?.sponsor},b={recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:o,entropyIdVerifier:g,isUnifiedWallet:m,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:p(u.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(i=W({address:h,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...A,asset:"native-currency",chain:w},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),r={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:w,destinationAddress:h,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),a({connectWallet:b,standardSignAndSendTransaction:f,funding:i,solanaFundingData:r}),t("EmbeddedWalletConnectingScreen")}))}}}(),c=a((()=>{let e=[...w(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=A(n);return t.length?[...e,...t]:e}),[n]),g=a((()=>({signMessage:async({message:e,address:n,options:s})=>await t({message:e,address:n,options:s}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await s({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:s}){let{signature:a}=await r({transaction:e,address:n,chain:t,options:s});return{signature:a}}})),[t,s,r]);return i((()=>{pe?.setImplementation(g)}),[g]),i((()=>{var n;!e||(n=fe.accounts).length===c.length&&n.every(((e,n)=>e.address===c[n]?.address))||pe?.emit("accountChanged",c)}),[e,c]),{ready:e,wallet:fe}}function Ae(){let{client:e}=l(),{ready:n,wallet:t}=we(),[s,a]=r([]),[o,c]=r([]);return i((()=>{let e=[t,...s.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];c(e);let n=s.flatMap((n=>{let t=()=>c([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),a=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{a.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[s]),i((()=>{a(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{a(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 ye(){let{ready:e,wallets:n}=Ae();return{ready:e,wallets:a((()=>n.flatMap((e=>e.accounts.map((n=>new c({wallet:e,account:n})))))),[n])}}export{j as S,Ae as a,M as g,ye as u};
|
|
1
|
+
import{getBase58Decoder as e,getTransactionDecoder as n,address as t,getTransactionEncoder as s}from"@solana/kit";import{useMemo as a,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,a as d,b as u,l as g}from"./internal-context-Z-fyxadS.mjs";import{a as h,j as p,b as f,n as w,f as A}from"./get-is-unified-wallet-Dy3_T-CK.mjs";import{u as y}from"./usePrivy-BbA3ewrr.mjs";import{g as v,u as m}from"./useWallets-Ca4W6aLm.mjs";import T from"eventemitter3";import{base58 as b}from"@scure/base";import{u as O}from"./context-CE35zxmH.mjs";import{u as S}from"./use-sign-with-user-signer-Do5Oi_rb.mjs";import{b as _,a as E,u as I}from"./useSolanaRpcClient-BAT_UrqZ.mjs";import{x as j}from"./use-export-wallet-CEsGQUX-.mjs";const W=["solana:mainnet","solana:devnet","solana:testnet"];function M(n){return e().decode(n)}function P(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var C=0,F="__private_"+C+++"__implementation";function U(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var D=0;function N(e){return"__private_"+D+++"_"+e}var B=/*#__PURE__*/N("_address"),x=/*#__PURE__*/N("_publicKey"),R=/*#__PURE__*/N("_chains"),L=/*#__PURE__*/N("_features"),V=/*#__PURE__*/N("_label"),Q=/*#__PURE__*/N("_icon");class G{get address(){return U(this,B)[B]}get publicKey(){return U(this,x)[x].slice()}get chains(){return U(this,R)[R].slice()}get features(){return U(this,L)[L].slice()}get label(){return U(this,V)[V]}get icon(){return U(this,Q)[Q]}constructor({address:e,publicKey:n,label:t,icon:s}){Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),U(this,B)[B]=e,U(this,x)[x]=n,U(this,R)[R]=W,U(this,V)[V]=t,U(this,Q)[Q]=s,U(this,L)[L]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===G&&Object.freeze(this)}}function K(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"),H=/*#__PURE__*/Y("_version"),Z=/*#__PURE__*/Y("_name"),z=/*#__PURE__*/Y("_icon"),q=/*#__PURE__*/Y("_injection"),X=/*#__PURE__*/Y("_isPrivyWallet"),$=/*#__PURE__*/Y("_accounts"),ee=/*#__PURE__*/Y("_on"),ne=/*#__PURE__*/Y("_emit"),te=/*#__PURE__*/Y("_off"),se=/*#__PURE__*/Y("_connected"),ae=/*#__PURE__*/Y("_connect"),ie=/*#__PURE__*/Y("_disconnect"),re=/*#__PURE__*/Y("_signMessage"),oe=/*#__PURE__*/Y("_signAndSendTransaction"),ce=/*#__PURE__*/Y("_signTransaction");function le(e,...n){K(this,k)[k][e]?.forEach((e=>e.apply(null,n)))}function de(e,n){K(this,k)[k][e]=K(this,k)[k][e]?.filter((e=>n!==e))}function ue(e,a,i){let r=structuredClone(n().decode(e)),o=t(a);return o in r.signatures&&(r.signatures[o]=i),new Uint8Array(s().encode(r))}function ge(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:s,openModal:a,privy:i,client:r}=l(),{user:c}=y(),{setModalData:g}=h(),{signWithUserSigner:w}=S();return{signMessage:({message:l,address:h,options:A})=>new Promise((async(y,m)=>{let T=p(c,h);if("privy"!==T?.walletClientType)return void m(new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:b,entropyIdVerifier:O}=v(c,T),S=f(T),E=_(l).toString("base64");if(E.length<1)return void m(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 a=await r.getAccessToken();if(!a)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 s({address:T.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:T.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await l.rpc({accessToken:a,entropyId:b,entropyIdVerifier:O,chainType:"solana",hdWalletIndex:T.walletIndex??0,requesterAppId:A?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:E}}});e=n.data.signature}return e};if(e({showWalletUIs:A?.uiOptions?.showWalletUIs}))try{let e=await I(),n=new Uint8Array(_(e,"base64"));y({signature:n})}catch(e){m(e)}else g({signMessage:{method:"solana_signMessage",data:E,confirmAndSign:I,onSuccess:e=>{y({signature:new Uint8Array(_(e,"base64"))})},onFailure:e=>{m(e)},uiOptions:A?.uiOptions??{}},connectWallet:{recoveryMethod:T.recoveryMethod,connectingWalletAddress:T.address,entropyId:b,entropyIdVerifier:O,isUnifiedWallet:S,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{m(new d("Failed to connect to wallet",e,u.UNKNOWN_CONNECT_WALLET_ERROR))}}}),a("EmbeddedWalletConnectingScreen")}))}}function he(){let{isHeadlessSigning:e,openModal:n}=l(),{setModalData:t}=h(),{signMessage:s}=ge(),{user:a}=y();return{signTransaction:async({transaction:i,options:r,chain:o="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await s({message:E(e),address:c,options:{...r,uiOptions:{...r?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:ue(e,c,n)}}return e({showWalletUIs:r?.uiOptions?.showWalletUIs})?l(i):new Promise((async(e,s)=>{let g=p(a,c);if("privy"!==g?.walletClientType)return void s(new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:w}=v(a,g),A=f(g);function y(e){return n=>{s(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let m={account:g,transaction:i,chain:o,signOnly:!0,uiOptions:r?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:y(u.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:g.recoveryMethod,connectingWalletAddress:g.address,entropyId:h,entropyIdVerifier:w,isUnifiedWallet:A,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:y(u.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:m}),n("EmbeddedWalletConnectingScreen")}))}}}let pe=new class extends T{setImplementation(e){P(this,F)[F]=e}async signMessage(e){return P(this,F)[F].signMessage(e)}async signAndSendTransaction(e){return P(this,F)[F].signAndSendTransaction(e)}async signTransaction(e){return P(this,F)[F].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,F,{writable:!0,value:void 0}),P(this,F)[F]=e}}({signTransaction:g("signTransaction was not injected"),signAndSendTransaction:g("signAndSendTransaction was not injected"),signMessage:g("signMessage was not injected")}),fe=new class{get version(){return K(this,H)[H]}get name(){return K(this,Z)[Z]}get icon(){return K(this,z)[z]}get chains(){return W.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:K(this,ae)[ae]},"standard:disconnect":{version:"1.0.0",disconnect:K(this,ie)[ie]},"standard:events":{version:"1.0.0",on:K(this,ee)[ee]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:K(this,oe)[oe]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:K(this,ce)[ce]},"solana:signMessage":{version:"1.0.0",signMessage:K(this,re)[re]},"privy:":{privy:{signMessage:K(this,q)[q].signMessage,signTransaction:K(this,q)[q].signTransaction,signAndSendTransaction:K(this,q)[q].signAndSendTransaction}}}}get accounts(){return K(this,$)[$].slice()}get isPrivyWallet(){return K(this,X)[X]}constructor({name:e,icon:n,version:t,injection:s,wallets:a}){Object.defineProperty(this,ne,{value:le}),Object.defineProperty(this,te,{value:de}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,H,{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,se,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{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}),K(this,k)[k]={},K(this,ee)[ee]=(e,n)=>(K(this,k)[k][e]?.push(n)||(K(this,k)[k][e]=[n]),()=>K(this,te)[te](e,n)),K(this,se)[se]=e=>{null!=e&&(K(this,$)[$]=e.map((({address:e})=>new G({address:e,publicKey:b.decode(e)})))),K(this,ne)[ne]("change",{accounts:this.accounts})},K(this,ae)[ae]=async()=>(K(this,ne)[ne]("change",{accounts:this.accounts}),{accounts:this.accounts}),K(this,ie)[ie]=async()=>{K(this,ne)[ne]("change",{accounts:this.accounts})},K(this,re)[re]=async(...e)=>{let n=[];for(let{account:t,...s}of e){let{signature:e}=await K(this,q)[q].signMessage({...s,address:t.address});n.push({signedMessage:s.message,signature:e})}return n},K(this,oe)[oe]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await K(this,q)[q].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},K(this,ce)[ce]=async(...e)=>{let n=[];for(let{transaction:t,account:s,options:a,chain:i}of e){let{signedTransaction:e}=await K(this,q)[q].signTransaction({transaction:t,address:s.address,chain:i||"solana:mainnet",options:a});n.push({signedTransaction:e})}return n},K(this,Z)[Z]=e,K(this,z)[z]=n,K(this,H)[H]=t,K(this,q)[q]=s,K(this,$)[$]=[],K(this,X)[X]=!0,s.on("accountChanged",K(this,se)[se],this),K(this,se)[se](a)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:pe});function we(){let{ready:e}=m(),{user:n}=y(),{signMessage:t}=ge(),{signTransaction:s}=he(),{signAndSendTransaction:r}=function(){let e=O(),{isHeadlessSigning:n,openModal:t,privy:s}=l(),{setModalData:a}=h(),{signTransaction:i}=he(),r=I(),{user:c}=y(),{signWithUserSigner:g}=S();return{signAndSendTransaction:async({transaction:l,address:h,chain:w="solana:mainnet",options:A})=>{let y=p(c,h);if("privy"!==y?.walletClientType)throw new d("Wallet is not a Privy wallet",void 0,u.EMBEDDED_WALLET_NOT_FOUND);let m=f(y);async function T(e){if(A?.sponsor)return await(async e=>{if(!m)throw new d("Sponsoring transactions is only supported for wallets on the TEE stack",u.INVALID_DATA);let n=await o(s,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:y.id});if(n.data&&"hash"in n.data)return{signature:b.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:{...A,uiOptions:{...A?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(w).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:A?.uiOptions?.showWalletUIs})?T(l):new Promise((async(n,s)=>{let i,r,{entropyId:o,entropyIdVerifier:g}=v(c,y);function p(e){return n=>{s(n instanceof d?n:new d("Failed to connect to wallet",n,e))}}let f={account:y,transaction:l,chain:w,signOnly:!1,uiOptions:A?.uiOptions||{},onConfirm:T,onSuccess:n,onFailure:p(u.TRANSACTION_FAILURE),isSponsored:!!A?.sponsor},b={recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:o,entropyIdVerifier:g,isUnifiedWallet:m,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:p(u.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(i=j({address:h,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...A,asset:"native-currency",chain:w},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),r={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:w,destinationAddress:h,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),a({connectWallet:b,standardSignAndSendTransaction:f,funding:i,solanaFundingData:r}),t("EmbeddedWalletConnectingScreen")}))}}}(),c=a((()=>{let e=[...w(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=A(n);return t.length?[...e,...t]:e}),[n]),g=a((()=>({signMessage:async({message:e,address:n,options:s})=>await t({message:e,address:n,options:s}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await s({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:s}){let{signature:a}=await r({transaction:e,address:n,chain:t,options:s});return{signature:a}}})),[t,s,r]);return i((()=>{pe?.setImplementation(g)}),[g]),i((()=>{var n;!e||(n=fe.accounts).length===c.length&&n.every(((e,n)=>e.address===c[n]?.address))||pe?.emit("accountChanged",c)}),[e,c]),{ready:e,wallet:fe}}function Ae(){let{client:e}=l(),{ready:n,wallet:t}=we(),[s,a]=r([]),[o,c]=r([]);return i((()=>{let e=[t,...s.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];c(e);let n=s.flatMap((n=>{let t=()=>c([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),a=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{a.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[s]),i((()=>{a(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{a(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 ye(){let{ready:e,wallets:n}=Ae();return{ready:e,wallets:a((()=>n.flatMap((e=>e.accounts.map((n=>new c({wallet:e,account:n})))))),[n])}}export{W as S,Ae as a,M as g,ye as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as r}from"./get-is-unified-wallet-Dy3_T-CK.mjs";import{createPublicClient as e,http as t}from"viem";import{P as i}from"./internal-context-Z-fyxadS.mjs";import{useContext as l,createContext as p}from"react";const s=r=>{if("ethereum"===r.chainType)return{entropyId:r.address,entropyIdVerifier:"ethereum-address-verifier"};if("solana"===r.chainType)return{entropyId:r.address,entropyIdVerifier:"solana-address-verifier"};throw Error("Failed to get account entropy details")},a=(e,t)=>{if(t?.imported)return s(t);let i=r(e);if(!i)throw Error("Failed to find primary wallet");return s(i)},n=(r,l,p,s)=>{let a=Number(r),n=l.find((r=>r.id===a));if(!n)throw new i(`Unsupported chainId ${r}`,4901);return e({transport:t(o(n,p,s.appId)),chain:n})},o=(r,e,t)=>{let l,p=r.id,s=Number(r.id);if(r.rpcUrls.privyWalletOverride&&r.rpcUrls.privyWalletOverride.http[0])l=r.rpcUrls.privyWalletOverride.http[0];else if(e.rpcUrls&&e.rpcUrls[s])l=e.rpcUrls[s];else if(r.rpcUrls.privy?.http[0]){let e=new URL(r.rpcUrls.privy.http[0]);e.searchParams.append("privyAppId",t),l=e.toString()}else l=r.rpcUrls.public?.http[0]?r.rpcUrls.public.http[0]:r.rpcUrls.default?.http[0];if(!l)throw new i(`No RPC url found for ${p}`);return l},d=/*#__PURE__*/p(null);function c(){let r=l(d);return null===r?(console.warn("`useWallets` was called outside the PrivyProvider component"),{wallets:[],ready:!1}):r}export{d as U,n as a,o as b,a as g,s as t,c as u};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privy-io/react-auth",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.16.0-beta-20260303155317",
|
|
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/api-base": "1.8.2",
|
|
179
|
-
"@privy-io/are-addresses-equal": "0.0.1",
|
|
180
179
|
"@privy-io/chains": "0.1.2",
|
|
180
|
+
"@privy-io/are-addresses-equal": "0.0.1",
|
|
181
181
|
"@privy-io/ethereum": "0.0.8",
|
|
182
|
-
"@privy-io/js-sdk-core": "0.60.3",
|
|
183
182
|
"@privy-io/routes": "0.0.7",
|
|
183
|
+
"@privy-io/js-sdk-core": "0.60.4-beta-20260303155317",
|
|
184
184
|
"@privy-io/popup": "0.0.2",
|
|
185
185
|
"@privy-io/urls": "0.0.3"
|
|
186
186
|
},
|
|
@@ -245,10 +245,10 @@
|
|
|
245
245
|
"ts-jest": "^29.2.5",
|
|
246
246
|
"typescript": "~5.5.3",
|
|
247
247
|
"vite": "^5.4.0",
|
|
248
|
-
"@privy-io/build-config": "1.0.0",
|
|
249
248
|
"@privy-io/eslint-config-custom": "0.0.0",
|
|
250
|
-
"@privy-io/
|
|
251
|
-
"@privy-io/testing": "1.0.0"
|
|
249
|
+
"@privy-io/build-config": "1.0.0",
|
|
250
|
+
"@privy-io/testing": "1.0.0",
|
|
251
|
+
"@privy-io/eslint-plugin-privy-rules": "1.0.1"
|
|
252
252
|
},
|
|
253
253
|
"peerDependencies": {
|
|
254
254
|
"@abstract-foundation/agw-client": "^1.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),t=require("./context-BUtefjlp.js"),i=require("./internal-context-BJv4f_bO.js"),n=require("./get-is-unified-wallet-DZz3zBvv.js"),o=require("./ScreenLayout-BHHlzSio.js");require("react"),require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("@privy-io/are-addresses-equal"),require("./ModalHeader-GBAwOroa.js"),require("styled-components"),require("./useActiveWallet-CbC_e7T4.js"),require("zustand"),require("react-device-detect"),require("./use-export-wallet-BIBOLyrr.js"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CGZli1jq.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./Screen-Pj2ZYdHC.js"),require("./index-ByFhjjzH.js");const u=({title:t="Account not found",subtitle:i,appName:n="this app",ctaText:u="Try logging in again",onRetry:a})=>/*#__PURE__*/e.jsx(o.ScreenLayout,{title:t,subtitle:i||`Please try logging in again or go to ${n} to create an account.`,icon:r.HelpCircle,iconVariant:"warning",primaryCta:{label:u,onClick:a},watermark:!0}),a={component:()=>{let{navigate:r,setModalData:o,data:a}=n.usePrivyModal(),c=t.useAppConfig(),{getAuthMeta:s,client:l}=i.usePrivyInternal();/*#__PURE__*/return e.jsx(u,{appName:c?.name,onRetry:()=>{let e=s();o({...a,login:{...a?.login,...e?.disableSignup?{disableSignup:!0}:{}}}),l?.authFlow&&(l.authFlow=void 0),r("LandingScreen")}})}};exports.AccountNotFoundScreen=a,exports.AccountNotFoundScreenView=u,exports.default=a;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react");require("react");var i=require("styled-components"),t=require("./ModalHeader-GBAwOroa.js"),s=require("./context-BUtefjlp.js"),n=require("./internal-context-BJv4f_bO.js"),o=require("./get-is-unified-wallet-DZz3zBvv.js"),l=require("./shouldProceedtoEmbeddedWalletCreationFlow-CRa43-i7.js"),u=require("./ScreenLayout-BHHlzSio.js");require("./useActiveWallet-CbC_e7T4.js"),require("zustand"),require("react-device-detect"),require("./use-export-wallet-BIBOLyrr.js"),require("@privy-io/js-sdk-core"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CGZli1jq.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("tinycolor2"),require("ofetch"),require("@privy-io/are-addresses-equal"),require("./index-tQ5GebzM.js"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-Dl1Nx5y2.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./Screen-Pj2ZYdHC.js"),require("./index-ByFhjjzH.js");const a={component:()=>{let{user:r,logout:i}=o.usePrivyContext(),{onUserCloseViaDialogOrKeybindRef:t,setModalData:u,navigate:a}=o.usePrivyModal(),d=s.useAppConfig(),{acceptTerms:q,closePrivyModal:p,createAnalyticsEvent:y}=n.usePrivyInternal(),v=e=>{e?.preventDefault(),p({shouldCallAuthOnSuccess:!1}),i()};t.current=v;/*#__PURE__*/return e.jsx(c,{termsAndConditionsUrl:d?.legal.termsAndConditionsUrl,privacyPolicyUrl:d?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await q(),r&&l.shouldProceedtoEmbeddedWalletCreationFlow(r,d.embeddedWallets)?(u({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),y({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AffirmativeConsentScreen"}}),i()},callAuthOnSuccessOnClose:!0}}),a("EmbeddedWalletOnAccountCreateScreen")):p()},onDecline:v})}},c=({termsAndConditionsUrl:i,privacyPolicyUrl:s,onAccept:n,onDecline:o,title:l="One last step",subtitle:a="By signing up, you agree to our terms and privacy policy."})=>/*#__PURE__*/e.jsx(u.ScreenLayout,{title:l,subtitle:a,icon:r.FileCheck,primaryCta:{label:"Accept",onClick:n},secondaryCta:{label:"No thanks",onClick:o},watermark:!0,children:(i||s)&&/*#__PURE__*/e.jsxs(d,{children:[i&&/*#__PURE__*/e.jsxs(t.Button,{variant:"muted",href:i,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Terms",/*#__PURE__*/e.jsx(r.ExternalLink,{width:16,height:16,strokeWidth:2.25})]}),s&&/*#__PURE__*/e.jsxs(t.Button,{variant:"muted",href:s,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Privacy Policy",/*#__PURE__*/e.jsx(r.ExternalLink,{width:16,height:16,strokeWidth:2.25})]})]})});let d=i.styled.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
gap: 12px;
|
|
5
|
-
margin-top: var(--screen-space);
|
|
6
|
-
`;exports.AffirmativeConsentScreen=a,exports.AffirmativeConsentScreenView=c,exports.default=a;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react");require("react");var i=require("./context-BUtefjlp.js"),t=require("./get-is-unified-wallet-DZz3zBvv.js"),o=require("./ScreenLayout-BHHlzSio.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("@privy-io/are-addresses-equal"),require("./internal-context-BJv4f_bO.js"),require("ofetch"),require("./ModalHeader-GBAwOroa.js"),require("styled-components"),require("./useActiveWallet-CbC_e7T4.js"),require("zustand"),require("react-device-detect"),require("./use-export-wallet-BIBOLyrr.js"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CGZli1jq.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./Screen-Pj2ZYdHC.js"),require("./index-ByFhjjzH.js");const n=({title:i="You don't have access to this app",subtitle:t="Have you been invited?",ctaText:n="Try another account",ctaLink:a,onCtaClick:u})=>/*#__PURE__*/e.jsx(o.ScreenLayout,{title:i,subtitle:t,icon:r.Lock,iconVariant:"warning",primaryCta:{label:n,onClick:()=>{a?window.open(a,"_blank"):u?.()}},watermark:!0}),a={component:()=>{let{navigate:r}=t.usePrivyModal(),o=i.useAppConfig(),a=o?.allowlistConfig.errorTitle||"You don't have access to this app",u=o?.allowlistConfig.errorDetail||"Have you been invited?",c=o?.allowlistConfig.errorCtaText||"Try another account",s=o?.allowlistConfig.errorCtaLink;/*#__PURE__*/return e.jsx(n,{title:a,subtitle:u,ctaText:c,ctaLink:s??void 0,onCtaClick:()=>{r("LandingScreen")}})}};exports.AllowlistRejectionScreen=a,exports.AllowlistRejectionScreenView=n,exports.default=a;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./context-BUtefjlp.js"),n=require("./internal-context-BJv4f_bO.js"),i=require("./events-context-Di6--rDg.js"),l=require("./get-is-unified-wallet-DZz3zBvv.js"),o=require("./ConnectWalletView-CTc3Uc5v.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("@privy-io/are-addresses-equal"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("react-device-detect"),require("styled-components"),require("./ModalHeader-GBAwOroa.js"),require("./useActiveWallet-CbC_e7T4.js"),require("zustand"),require("./use-export-wallet-BIBOLyrr.js"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CGZli1jq.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./CopyableText-DbFeIZI0.js"),require("lucide-react"),require("./Link-BdtTp2J4.js"),require("./QrCode-B3SMGhXR.js"),require("qrcode"),require("./EmailInputForm-Y-nHsEtF.js"),require("./ErrorMessage-BfTVyue9.js"),require("./useI18n-CAzGX3fh.js"),require("./WalletCards-BfpeHH5n.js"),require("./Screen-Pj2ZYdHC.js"),require("./index-ByFhjjzH.js");const a={component:()=>{let{setWalletConnectionStatus:a,closePrivyModal:c,inProgressAuthFlowRef:s}=n.usePrivyInternal(),{data:u,navigate:q}=l.usePrivyModal(),d=t.useAppConfig(),C=i.useEmitPrivyEvent(),p=u?.externalConnectWallet?.description,W=r.useRef(u?.externalConnectWallet?.walletList??d.appearance.walletList),j=r.useRef(u?.externalConnectWallet?.walletChainType??d.appearance.walletChainType),v=W.current,E=j.current,y="link"===s.current?void 0:()=>q("LandingScreen");/*#__PURE__*/return e.jsx(o.i,{walletList:v,walletChainType:E,onClose:c,onConnect:r.useCallback((({connector:e,wallet:r})=>{C("connectWallet","onSuccess",{wallet:r}),a({status:"connected",connectedWallet:r,connector:e,connectError:null,connectRetry:()=>null}),q("ConnectionStatusScreen",!u?.externalConnectWallet?.preSelectedWalletId)}),[a,q,u?.login?.disableSignup,u?.externalConnectWallet?.preSelectedWalletId]),onConnectError:e=>{e instanceof n.PrivyError?(console.warn(e.cause?e.cause:e.message),C("connectWallet","onError",e.privyErrorCode||n.PrivyErrorCode.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),C("connectWallet","onError",n.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))},onBack:y,customDescription:p||"",preSelectedWalletId:u?.externalConnectWallet?.preSelectedWalletId,app:d})},isUnauthenticatedScreem:!0};exports.AuthenticateWithWalletScreen=a,exports.default=a;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),t=require("react"),i=require("viem"),n=require("@privy-io/js-sdk-core"),a=require("./Layouts-D3TOcPhm.js"),s=require("./ModalHeader-GBAwOroa.js"),o=require("./ScreenHeader-CgYJ5Fmg.js"),u=require("./FundWalletMethodHeader-BvRFQpAq.js"),l=require("./index-ByFhjjzH.js"),c=require("./context-BUtefjlp.js"),d=require("./internal-context-BJv4f_bO.js"),h=require("./useActiveWallet-CbC_e7T4.js"),g=require("./get-is-unified-wallet-DZz3zBvv.js"),p=require("./useGetTokenPrice-62KL9-pY.js"),q=require("./useWallets-CGZli1jq.js"),f=require("./analytics-C6C_4JmG.js"),v=require("./reservoir-Bx0HQwbb.js"),m=require("./index-tQ5GebzM.js"),C=require("./getChainName-C4rO8-3n.js"),S=require("./transaction-DjF5X-by.js"),j=require("./BridgeNetworkSelectionView-B-GFim4z.js"),I=require("./getPublicClient-BsmZyCGX.js"),E=require("./TransferOrBridgeLoadingScreen-CJZ5TtOk.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("tinycolor2"),require("ofetch"),require("zustand"),require("react-device-detect"),require("./use-export-wallet-BIBOLyrr.js"),require("eventemitter3"),require("viem/utils"),require("./events-context-Di6--rDg.js"),require("@privy-io/are-addresses-equal"),require("./useGetSolPrice-Ca32VAbF.js"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-Dl1Nx5y2.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./getFormattedUsdFromLamports-Mu2fqwL2.js"),require("./getErc20Balance-D2jXMvJ8.js"),require("./Row-CMqYn75Q.js"),require("./ErrorMessage-BfTVyue9.js"),require("./Value-mhPsfsxe.js"),require("./LoadingSkeleton-BoyADunQ.js"),require("./Subtitle-CR8zM7ZJ.js"),require("./Title-ifTy35V5.js"),require("@heroicons/react/24/outline/WalletIcon"),require("./Chip-C6r7fZiR.js"),require("./NetworkIcon-BZ9Mj6vV.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("./shared-DBm7PUrg.js"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("./formatErc20TokenAmount-DxwoWe7e.js"),require("./ethers-CjXeDhFm.js"),require("./styles-g3kNpNZY.js"),require("./LinkPasskeyScreen-BEr2kUd1.js"),require("lucide-react"),require("./TodoList-Cii_KrAk.js"),require("./ScreenLayout-BHHlzSio.js"),require("./Screen-Pj2ZYdHC.js"),require("./InjectedWalletIcon-UY3nMvZo.js"),require("./Address-Xt6eDzsN.js");var T=/*#__PURE__*/y(r);const A={component:()=>{let r=c.useAppConfig(),{rpcConfig:y,appId:A,closePrivyModal:N,createAnalyticsEvent:w}=d.usePrivyInternal(),{navigate:b,setModalData:x,data:P}=g.usePrivyModal(),L=c.useAppConfig(),{wallets:_}=q.useWallets(),[F,U]=t.useState(null),[k,R]=t.useState(null),[B,M]=t.useState([]),[W,O]=t.useState(0),[D,H]=t.useState(!1),[G,V]=t.useState(!1),[Y,Q]=t.useState(!1),[$,X]=t.useState(!1),[z,J]=t.useState(),[K,Z]=t.useState();if(!P?.funding||"solana"!==P.funding.chainType)throw Error("Invalid funding data");let{address:ee,chain:re,connectedWallet:te}=P.funding,[ie,ne]=t.useState(P.funding.amount),ae=("ethereum"===te?.type?te:void 0)??_[0],se=h.useExternalWalletListing(ae?.walletClientType||"unknown"),oe=se?.name||"wallet",[ue,le]=t.useState(null);t.useEffect((()=>{(async()=>{if(!ae)return;let e=await ae.getEthereumProvider();le(i.createWalletClient({account:ae.address,transport:i.custom(e)}).extend(i.publicActions))})().catch(console.error)}),[ae]);let[ce,de]=t.useState(0n),he=S.getNativeCurrencyFromLamports(ce);t.useEffect((()=>{let e=r.solanaRpcs[re];e?m.fetchWalletBalance({rpc:e.rpc,address:ee}).then((e=>de(BigInt(e)))).catch(console.error):console.warn("Unable to load solana rpc, skipping balance")}),[]);let[ge,pe]=t.useState(),{tokenPrice:qe}=p.useGetTokenPrice("solana"),{fundingAmountInBaseUnit:fe,fundingAmountInUsd:ve}=S.getSolanaFormattedAmounts({amount:ie,fee:0n,tokenPrice:qe,isUsdc:P.funding.isUSDC});if(t.useEffect((()=>{(async()=>{if(!ue||!ae)return;let e=["solana:testnet","solana:devnet"].includes(re);e&&console.warn("Solana testnets are not supported for bridging");let r=n.addToDefaultChains(L.chains).filter((({testnet:r})=>!!r===e)),t=(await j.getBalanceForChains({chains:r,address:ae.address,appId:A,rpcConfig:y})).filter((e=>e.balance>0n));if(t.length<1)return void U(new d.PrivyClientError(`Wallet ${h.formatWalletAddress(ae.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));t.sort(((e,r)=>Number(r.balance-e.balance)));let i=(await Promise.allSettled(t.map((async e=>({...e,quote:await v.getQuote({isTestnet:!1,input:v.toGetQuoteInput({appId:A,amount:fe.toString(),user:ae.address,recipient:ee,destinationChainId:v.RELAY_SOLANA_MAINNET_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(i.length<1)return void U(new d.PrivyClientError(`Unable to fetch quotes for bridging. Wallet ${h.formatWalletAddress(ae.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let a=i.map((({quote:e,balance:r,chain:t})=>({bridgeTx:v.toEvmTransactionRequestInfoFromQuote(e),balance:r,chain:t,isErc20Quote:!1}))).filter((({bridgeTx:e})=>!!e));if(a.length>1)return void M(a);let s=a.at(0);s?(V(!0),pe({data:s.bridgeTx.data,to:s.bridgeTx.to,value:s.bridgeTx.value,chain:s.chain})):U(new d.PrivyClientError(`Unable to select bridge option from quotes. Wallet ${h.formatWalletAddress(ae.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ue]),t.useEffect((()=>{(async()=>{let e,r;if(!ue||!ae||D||Y||!ge)return;H(!0);let t=i.createPublicClient({chain:ge.chain,transport:i.http(I.getJsonRpcEndpointFromChain(ge.chain,y,A))});try{e=await t.prepareTransactionRequest({account:ae.address,to:ge.to,chain:ge.chain,data:ge.data,value:BigInt(ge.value??0)})}catch(e){console.error(e),B.length>1&&R(e.shortMessage??"Something went wrong")}if(e){H(!1),Q(!0);try{await ue.switchChain({id:ge.chain.id})}catch(e){await ue.addChain({chain:ge.chain}),await ue.switchChain({id:ge.chain.id})}try{r=await ue.sendTransaction(e)}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(B.length<1?U(new d.PrivyClientError(e.shortMessage,void 0,d.PrivyErrorCode.TRANSACTION_FAILURE)):R(e.shortMessage??"Something went wrong"))}if(r)return await ue.waitForTransactionReceipt({hash:r}),G?(Z("pending"),void J(r)):(Q(!1),X(!0),void w({eventName:f.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:r,address:ae.address,chainId:ge.chain.id,chainType:"ethereum",value:ge.value?i.formatUnits(BigInt(ge.value),18):void 0,token:"ETH",destination:ee,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:i.formatUnits(fe,9),destinationToken:"SOL"}}));Q(!1)}else H(!1)})().catch(console.error)}),[ue,ge]),v.useBridgingStatusPolling({transactionHash:z,isTestnet:!1,bridgingStatus:K,setBridgingStatus:Z,onSuccess({transactionHash:e}){V(!1),X(!0),w({eventName:f.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:ae?.address,chainId:ge?.chain.id,chainType:"ethereum",value:ge?.value?i.formatUnits(BigInt(ge.value),18):void 0,token:"ETH",destination:ee,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:i.formatUnits(fe,9),destinationToken:"SOL"}})},onFailure({error:e}){V(!1),U(e)}}),t.useEffect((()=>{F&&(x({funding:P?.funding,solanaFundingData:P?.solanaFundingData,sendTransaction:P?.sendTransaction,errorModalData:{error:F,previousScreen:"TransferFromWalletScreen"}}),b("ErrorScreen",!1))}),[F]),t.useEffect((()=>{if(!$)return;let e=setTimeout(N,c.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[$]),$/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(a.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(a.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(T.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(o.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${ie} SOL to your ${L.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(a.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]});let me=B[W];return B.length>1&&me?/*#__PURE__*/e.jsx(j.BridgeNetworkSelectionView,{displayName:oe,configuredFundingChain:re,formattedBalance:he,fundingAmount:ie,fundingCurrency:"SOL",fundingAmountInUsd:ve,options:B,selectedOption:me,isPreparing:D,isSubmitting:Y,addressToFund:ee,fundingWalletAddress:ae?.address||"",errorMessage:k,onSubmit:()=>{P.funding?.amount!==ie?async function(){if(ae&&me)try{let e=await v.getQuote({isTestnet:!1,input:v.toGetQuoteInput({appId:A,amount:fe.toString(),user:ae.address,recipient:ee,destinationChainId:v.RELAY_SOLANA_MAINNET_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:me.chain.id})}),r=v.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");V(!0),pe({data:r.data,to:r.to,value:r.value,chain:me.chain})}catch(e){console.error(e),U(new d.PrivyClientError("Unable to fetch quotes for bridging",e,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):pe({to:me.bridgeTx.to,data:me.bridgeTx.data,value:me.bridgeTx.value,chain:me.chain})},onSelect:e=>{e!==W&&(R(null),O(e))},onAmountChange:ne}):Y&&ae?/*#__PURE__*/e.jsx(E.TransferOrBridgeLoadingScreen,{walletClientType:ae?.walletClientType||"unknown",displayName:oe,addressToFund:ee,isBridging:G,isErc20Flow:!1,chainId:"solana",chainName:C.getChainName(re),totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
|
|
2
|
-
/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(l.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})}};exports.AwaitingEvmToSolBridgingScreen=A,exports.default=A;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),t=require("react"),i=require("viem"),n=require("@privy-io/js-sdk-core"),a=require("./Layouts-D3TOcPhm.js"),s=require("./ModalHeader-GBAwOroa.js"),o=require("./ScreenHeader-CgYJ5Fmg.js"),u=require("./FundWalletMethodHeader-BvRFQpAq.js"),d=require("./index-ByFhjjzH.js"),c=require("./context-BUtefjlp.js"),l=require("./internal-context-BJv4f_bO.js"),h=require("./useActiveWallet-CbC_e7T4.js"),g=require("./get-is-unified-wallet-DZz3zBvv.js"),f=require("./useGetTokenPrice-62KL9-pY.js"),m=require("./useWallets-CGZli1jq.js"),v=require("./transfer-B1Y_9LWi.js"),p=require("./formatErc20TokenAmount-DxwoWe7e.js"),C=require("./ethers-CjXeDhFm.js"),y=require("./analytics-C6C_4JmG.js"),q=require("./reservoir-Bx0HQwbb.js"),E=require("./index-tQ5GebzM.js"),T=require("./BridgeNetworkSelectionView-B-GFim4z.js"),I=require("./getErc20Balance-D2jXMvJ8.js"),S=require("./getPublicClient-BsmZyCGX.js"),j=require("./TransferOrBridgeLoadingScreen-CJZ5TtOk.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("tinycolor2"),require("ofetch"),require("zustand"),require("react-device-detect"),require("./use-export-wallet-BIBOLyrr.js"),require("eventemitter3"),require("viem/utils"),require("./events-context-Di6--rDg.js"),require("@privy-io/are-addresses-equal"),require("./useGetSolPrice-Ca32VAbF.js"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-Dl1Nx5y2.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./Row-CMqYn75Q.js"),require("./ErrorMessage-BfTVyue9.js"),require("./Value-mhPsfsxe.js"),require("./LoadingSkeleton-BoyADunQ.js"),require("./Subtitle-CR8zM7ZJ.js"),require("./Title-ifTy35V5.js"),require("@heroicons/react/24/outline/WalletIcon"),require("./getChainName-C4rO8-3n.js"),require("./Chip-C6r7fZiR.js"),require("./NetworkIcon-BZ9Mj6vV.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("./shared-DBm7PUrg.js"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("./styles-g3kNpNZY.js"),require("./LinkPasskeyScreen-BEr2kUd1.js"),require("lucide-react"),require("./TodoList-Cii_KrAk.js"),require("./ScreenLayout-BHHlzSio.js"),require("./Screen-Pj2ZYdHC.js"),require("./InjectedWalletIcon-UY3nMvZo.js"),require("./Address-Xt6eDzsN.js");var b=/*#__PURE__*/w(r);const A={component:()=>{let{rpcConfig:r,appId:w,closePrivyModal:A,createAnalyticsEvent:N}=l.usePrivyInternal(),{navigate:F,setModalData:x,data:P}=g.usePrivyModal(),B=c.useAppConfig(),{wallets:_}=m.useWallets(),[R,W]=t.useState(!1),[k,U]=t.useState(0n),[L,M]=t.useState(!1),[D,H]=t.useState(null),[Q,O]=t.useState(null),[G,$]=t.useState([]),[V,Y]=t.useState(0),[J,X]=t.useState(!1),[z,Z]=t.useState(!1),[K,ee]=t.useState(!1),[re,te]=t.useState(!1),[ie,ne]=t.useState(),[ae,se]=t.useState();if(!P?.funding||"ethereum"!==P.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:oe,chain:ue,connectedWallet:de}=P.funding,ce=P.funding.address,le=P.funding.erc20Address,[he,ge]=t.useState(P.funding.amount);t.useEffect((()=>{le&&!oe&&H(Error("Unable to fetch token details"))}),[]);let fe=!!le&&!!oe,me=fe?BigInt(parseFloat(he)*10**oe.decimals):i.parseEther(he),ve=("ethereum"===de?.type?de:void 0)??_[0],pe=h.useExternalWalletListing(ve?.walletClientType||"unknown"),Ce=pe?.name||"wallet",[ye,qe]=t.useState(null);t.useEffect((()=>{(async()=>{if(!ve)return;let e=await ve.getEthereumProvider();qe(i.createWalletClient({account:ve.address,transport:i.custom(e)}).extend(i.publicActions))})().catch(console.error)}),[ve]);let[Ee,Te]=t.useState(0n);t.useEffect((()=>{i.createPublicClient({chain:ue,transport:i.http(S.getJsonRpcEndpointFromChain(ue,r,w))}).getBalance({address:ce}).then(Te).catch(console.error)}),[]);let[Ie,Se]=t.useState(0n);t.useEffect((()=>{fe&&I.getErc20Balance({chain:ue,address:ce,appId:w,rpcConfig:r,erc20Address:le}).then((e=>Se(e.balance))).catch(console.error)}),[]);let{tokenPrice:je}=f.useGetTokenPrice(ue.id),[we,be]=t.useState({to:ce,chain:ue,value:me,data:void 0});t.useEffect((()=>{(async()=>{let e,t;if(!ye||!ve||J||K)return;X(!0);let n=i.createPublicClient({chain:we.chain,transport:i.http(S.getJsonRpcEndpointFromChain(we.chain,r,w))});if(fe&&!we.data)return await n.simulateContract({address:le,chain:we.chain,abi:v.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[ce,me],account:ve.address}).catch((e=>{if("ContractFunctionZeroDataError"===e?.cause?.name||e?.message?.includes("returned no data"))return n.simulateContract({address:le,chain:we.chain,abi:v.ERC20_TRANSFER_ABI_STUB_NO_RETURN,functionName:"transfer",args:[ce,me],account:ve.address}).catch((e=>{console.warn("Simulated token transfer failed with error, fetching bridge options.",e)}));console.warn("Simulated token transfer failed with error, fetching bridge options.",e)}))?(X(!1),void be({to:le,chain:we.chain,data:i.encodeFunctionData({abi:v.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[ce,me]}),value:"0x0"})):(X(!1),void M(!0));try{e=await n.prepareTransactionRequest({account:ve.address,to:we.to,chain:we.chain,data:we.data,value:BigInt(we.value??0)})}catch(e){if(console.error(e),G.length>1)O(e.shortMessage??"Something went wrong");else if(z&&0===G.length)return void H(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE))}if(!e)return X(!1),void M(!0);X(!1),ee(!0),W(!0),U(e.gas);try{await ye.switchChain({id:we.chain.id})}catch(e){await ye.addChain({chain:we.chain}),await ye.switchChain({id:we.chain.id})}try{t=await ye.sendTransaction(e)}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(G.length<1){let r=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(r="User rejected the request."),H(new l.PrivyClientError(r,void 0,l.PrivyErrorCode.TRANSACTION_FAILURE))}else O(e.shortMessage??"Something went wrong")}if(t)return await ye.waitForTransactionReceipt({hash:t}),ee(!1),z?(ne(t),void se("pending")):(te(!0),x(E.addFundingResultToModalData(P,"completed",t,ve?.walletClientType,fe,oe,ue)),void N({eventName:y.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:t,address:ve.address,chainId:we.chain.id,chainType:"ethereum",value:we.value?i.formatUnits(BigInt(we.value),oe?.decimals??18):void 0,token:oe?.symbol??le??"ETH",destinationAddress:ce,destinationChainId:ue.id,destinationChainType:"ethereum",destinationValue:me?i.formatUnits(me,oe?.decimals??18):void 0,destinationToken:oe?.symbol??le??ue.nativeCurrency.name}}));ee(!1)})().catch(console.error)}),[ye,we]),t.useEffect((()=>{(async()=>{if(!L||!ye||!ve)return;let e=n.addToDefaultChains(B.chains).filter((e=>e.id!==ue.id&&!!e.testnet==!!ue.testnet));fe&&e.unshift(ue);let t=await T.getBalanceForChains({chains:e,address:ve.address,appId:w,rpcConfig:r,includeUsdc:P.funding?.isUSDC}),i=fe?t.filter((e=>e.balance>0n)):t.filter((e=>e.balance>me)),a=fe&&t.every((e=>0n===e.balance));if(i.length<1)return void H(a?new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ve.address)} doesn't have enough funds to cover gas fees. Top up your wallet and try again.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE):new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE));i.sort(((e,r)=>Number(fe?(r.erc20Balance??0n)-(e.erc20Balance??0n):r.balance-e.balance)));let s=i.flatMap((e=>{let r=[{...e,isErc20Quote:!1,isTestnet:!!ue.testnet,input:q.toGetQuoteInput({appId:w,amount:me.toString(),user:ve.address,recipient:ce,destinationChainId:ue.id,destinationCurrency:le,originChainId:e.chain.id})}];return fe&&le&&(e.erc20Balance??0n)>=me&&r.push({...e,isErc20Quote:!0,isTestnet:!!ue.testnet,input:q.toGetQuoteInput({appId:w,amount:me.toString(),user:ve.address,recipient:ce,destinationChainId:ue.id,destinationCurrency:le,originChainId:e.chain.id,originCurrency:e.erc20Address})}),r})),o=(await Promise.allSettled(s.map((async e=>({...e,quote:await q.getQuote(e)}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(o.length<1)return void H(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE));let u=o.map((e=>({bridgeTx:q.toEvmTransactionRequestInfoFromQuote(e.quote),balance:e.balance,chain:e.chain,erc20Balance:e.erc20Balance,isErc20Quote:e.isErc20Quote}))).filter((e=>!!e.bridgeTx));if(u.length>1)return void $(u);let d=u[0];d?(Z(!0),be({data:d.bridgeTx.data,to:d.bridgeTx.to,value:d.bridgeTx.value,chain:d.chain})):H(new l.PrivyClientError(`Wallet ${h.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,l.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[L]),q.useBridgingStatusPolling({transactionHash:ie,isTestnet:!!ue.testnet,bridgingStatus:ae,setBridgingStatus:se,onSuccess({transactionHash:e}){Z(!1),te(!0),x(E.addFundingResultToModalData(P,"completed",e,ve?.walletClientType,fe,oe,ue)),N({eventName:y.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:ve?.address,chainId:we.chain.id,chainType:"ethereum",value:we.value?i.formatUnits(BigInt(we.value),oe?.decimals??18):void 0,token:oe?.symbol??le??"ETH",destinationAddress:ce,destinationChainId:ue.id,destinationChainType:"ethereum",destinationValue:me?i.formatUnits(me,oe?.decimals??18):void 0,destinationToken:oe?.symbol??le??ue.nativeCurrency.name}})},onFailure({error:e}){Z(!1),H(e)}}),t.useEffect((()=>{D&&(x({funding:P?.funding,solanaFundingData:P?.solanaFundingData,sendTransaction:P?.sendTransaction,errorModalData:{error:D,previousScreen:"TransferFromWalletScreen"}}),F("ErrorScreen",!1))}),[D]);let Ae=!fe&&je?C.getDollarsFromStringFloat(he??"0",je):void 0,Ne=fe?k:C.sumWeiQuantities([k,me]),Fe=Ne&&je?C.getDollarsFromWei(Ne,je):void 0,xe=Ne?C.getNativeCurrencyFromWei(Ne,P?.funding?.erc20Address?P?.funding?.erc20ContractInfo?.symbol||"ETH":P?.funding?.chain.nativeCurrency.symbol||"ETH"):void 0,Pe=k&&je?C.getDollarsFromWei(k,je):void 0,Be=k?C.getNativeCurrencyFromWei(k,ue?.nativeCurrency?.symbol||"ETH"):void 0;if(t.useEffect((()=>{if(!re)return;let e=setTimeout(A,c.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[re]),re/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(a.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(a.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(b.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(o.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${he} ${fe?oe.symbol:ue.nativeCurrency.symbol} to your ${B.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(a.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]});let _e=fe?`${p.formatErc20TokenAmount({amount:Ie,decimals:oe.decimals})} ${oe.symbol}`:C.getNativeCurrencyFromWei(Ee,ue.nativeCurrency.symbol,3,!0),Re=G[V];return G.length>1&&Re?/*#__PURE__*/e.jsx(T.BridgeNetworkSelectionView,{displayName:Ce,configuredFundingChain:ue,erc20ContractInfo:oe,formattedBalance:_e,fundingAmount:he,fundingCurrency:fe?oe.symbol:ue.nativeCurrency.symbol,fundingAmountInUsd:Ae,options:G,selectedOption:Re,isPreparing:J,isSubmitting:K,addressToFund:ce,fundingWalletAddress:ve?.address||"",errorMessage:Q,onSubmit:()=>{P.funding?.amount!==he?async function(){if(ve&&Re)try{let e=await q.getQuote({isTestnet:!!ue.testnet,input:q.toGetQuoteInput({appId:w,amount:me.toString(),user:ve.address,recipient:ce,destinationChainId:ue.id,destinationCurrency:le,originChainId:Re.chain.id})}),r=q.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");Z(!0),be({data:r.data,to:r.to,value:r.value,chain:Re.chain})}catch(e){console.error(e),H(new l.PrivyClientError("Unable to fetch quotes for bridging",e,l.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):be({to:Re.bridgeTx.to,data:Re.bridgeTx.data,value:Re.bridgeTx.value,chain:Re.chain})},onSelect:e=>{e!==V&&(O(null),Y(e))},onAmountChange:ge}):R&&k&&ve&&P?.funding?/*#__PURE__*/e.jsx(j.TransferOrBridgeLoadingScreen,{walletClientType:ve?.walletClientType||"unknown",displayName:Ce,addressToFund:ce,isBridging:z,isErc20Flow:fe,totalPriceInUsd:Fe,totalPriceInNativeCurrency:xe,gasPriceInUsd:Pe,gasPriceInNativeCurrency:Be,chainId:ue.id,chainName:ue.name}):
|
|
2
|
-
/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),/*#__PURE__*/e.jsx(d.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})}};exports.AwaitingExternalEthereumTransferScreen=A,exports.default=A;
|