@privy-io/react-auth 3.19.0-beta-20260327145607 → 3.19.0-beta-20260328154708

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/cjs/{AccountNotFoundScreen-BGWhw5JF.js → AccountNotFoundScreen-DVNyPmsv.js} +1 -1
  2. package/dist/cjs/{Address-Ccb_vB_O.js → Address-DS8jr4KC.js} +1 -1
  3. package/dist/cjs/{AffirmativeConsentScreen-BeNpA8vg.js → AffirmativeConsentScreen-DyJJyib-.js} +1 -1
  4. package/dist/cjs/{AllowlistRejectionScreen-DiQ106Je.js → AllowlistRejectionScreen-BA5CtMhJ.js} +1 -1
  5. package/dist/cjs/{AuthenticateWithWalletScreen-fOZ6wpNr.js → AuthenticateWithWalletScreen-C9AjdT7D.js} +1 -1
  6. package/dist/cjs/{AwaitingEvmToSolBridgingScreen-5zCafWqh.js → AwaitingEvmToSolBridgingScreen-DhBnzI7i.js} +1 -1
  7. package/dist/cjs/{AwaitingExternalEthereumTransferScreen-BCDcDb5e.js → AwaitingExternalEthereumTransferScreen-CErFwU8W.js} +1 -1
  8. package/dist/cjs/{AwaitingPasswordlessCodeScreen-9ZGMTuto.js → AwaitingPasswordlessCodeScreen-DwygNK8c.js} +1 -1
  9. package/dist/cjs/{AwaitingSolToEvmBridgingScreen-DrU5HjJs.js → AwaitingSolToEvmBridgingScreen-BDbp4VVX.js} +1 -1
  10. package/dist/cjs/{BridgeNetworkSelectionView-ByOqmqhr.js → BridgeNetworkSelectionView-QbDzAkBf.js} +1 -1
  11. package/dist/cjs/{CaptchaScreen-CpC_t_wY.js → CaptchaScreen-25cmBeXd.js} +1 -1
  12. package/dist/cjs/{CoinbaseOnrampStatusScreen-BED_Uc3M.js → CoinbaseOnrampStatusScreen-B4O76TSW.js} +1 -1
  13. package/dist/cjs/{ConnectEmailForm-CkOZyqGm.js → ConnectEmailForm-TUr_nIXO.js} +1 -1
  14. package/dist/cjs/{ConnectLedgerScreen-BRRli2qt.js → ConnectLedgerScreen-C56HhWZ4.js} +1 -1
  15. package/dist/cjs/{ConnectOnlyLandingScreen-Cb8nxLme.js → ConnectOnlyLandingScreen-C6zMfgKT.js} +1 -1
  16. package/dist/cjs/{ConnectOnlyStatusScreen-BH3D3Vhb.js → ConnectOnlyStatusScreen-BW4GRWjY.js} +1 -1
  17. package/dist/cjs/{ConnectOrCreateScreen-DrwTfZH8.js → ConnectOrCreateScreen-BOXNG4xb.js} +1 -1
  18. package/dist/cjs/{ConnectPhoneForm-j-Cyd_qm.js → ConnectPhoneForm-C64ut2YA.js} +1 -1
  19. package/dist/cjs/{ConnectWalletView-CTLd5C6n.js → ConnectWalletView-CxT8A3PO.js} +5 -5
  20. package/dist/cjs/{ConnectionStatusScreen-Z01aygJs.js → ConnectionStatusScreen-D5ml_1JB.js} +1 -1
  21. package/dist/cjs/{CrossAppAuthScreen-piMA7do8.js → CrossAppAuthScreen-BUgwjQEo.js} +1 -1
  22. package/dist/cjs/{CustomLandingScreenView-CheZxCX8.js → CustomLandingScreenView-DpZylDys.js} +1 -1
  23. package/dist/cjs/{DelegatedActionsConsentScreen-Cw3Fo8gM.js → DelegatedActionsConsentScreen-vjp34amr.js} +1 -1
  24. package/dist/cjs/{DelegatedActionsRevokeScreen-BDzCEVqg.js → DelegatedActionsRevokeScreen-BRnymqb4.js} +1 -1
  25. package/dist/cjs/{EmbeddedWalletConnectingScreen-VUzY2VsQ.js → EmbeddedWalletConnectingScreen-CJImT0xn.js} +1 -1
  26. package/dist/cjs/{EmbeddedWalletCreatedScreen-DYU_efvf.js → EmbeddedWalletCreatedScreen-olFu2XaK.js} +1 -1
  27. package/dist/cjs/{EmbeddedWalletKeyExportScreen-BZtOjZpV.js → EmbeddedWalletKeyExportScreen-fUNftcl9.js} +1 -1
  28. package/dist/cjs/{EmbeddedWalletOnAccountCreateScreen-BduYIHj0.js → EmbeddedWalletOnAccountCreateScreen-3gQ_ueMW.js} +1 -1
  29. package/dist/cjs/{EmbeddedWalletPasswordUpdateScreen-CfehwM23.js → EmbeddedWalletPasswordUpdateScreen-BwR98GME.js} +1 -1
  30. package/dist/cjs/{EmbeddedWalletPasswordUpdateSplashScreen-cYsDDghn.js → EmbeddedWalletPasswordUpdateSplashScreen-Cq3Q12cU.js} +1 -1
  31. package/dist/cjs/{EnrollTotp-Ol5CsgOA.js → EnrollTotp-gb2ZD1OP.js} +1 -1
  32. package/dist/cjs/{ErrorScreen-BLknI5mu.js → ErrorScreen-8lum7GuV.js} +1 -1
  33. package/dist/cjs/{FarcasterConnectStatusScreen-Bp5BSNvP.js → FarcasterConnectStatusScreen-HjVUl4T8.js} +1 -1
  34. package/dist/cjs/{FarcasterSignerStatusScreen-CQcKmS-B.js → FarcasterSignerStatusScreen-DM8JCOtc.js} +1 -1
  35. package/dist/cjs/{FiatOnrampScreen-dUYsHWAv.js → FiatOnrampScreen-CssEDddD.js} +1 -1
  36. package/dist/cjs/{FundSolWalletWithExternalSolanaWallet-BrB3MaI7.js → FundSolWalletWithExternalSolanaWallet-Cd6aE4Ez.js} +1 -1
  37. package/dist/cjs/{FundWalletMethodHeader-Dp0qK8-s.js → FundWalletMethodHeader-B2m4qoMl.js} +1 -1
  38. package/dist/cjs/{FundWithBankDepositScreen-B7jC-0EU.js → FundWithBankDepositScreen-Bd3qwIja.js} +1 -1
  39. package/dist/cjs/{FundingEditAmountScreen-CHIv-Klg.js → FundingEditAmountScreen-CpH4uW9e.js} +1 -1
  40. package/dist/cjs/{FundingMethodSelectionScreen-wXU7ZFOV.js → FundingMethodSelectionScreen-oPLywPNT.js} +1 -1
  41. package/dist/cjs/{InAppBrowserLoginNotPossible-BFWIzrVG.js → InAppBrowserLoginNotPossible-CNMLB23G.js} +1 -1
  42. package/dist/cjs/{InstallWalletScreen-vRXPRhOy.js → InstallWalletScreen-DCflfk0L.js} +1 -1
  43. package/dist/cjs/{LandingScreen-6YsWMMj3.js → LandingScreen-DpcaJnN8.js} +1 -1
  44. package/dist/cjs/{LinkConflictScreen-DC4hgB0t.js → LinkConflictScreen-qwJetI_-.js} +1 -1
  45. package/dist/cjs/{LinkEmailScreen-BbDbprJy.js → LinkEmailScreen-a5if5KVZ.js} +1 -1
  46. package/dist/cjs/{LinkPasskeyScreen-DP4u6Lgj.js → LinkPasskeyScreen-CIH1emcH.js} +1 -1
  47. package/dist/cjs/{LinkPhoneScreen-B6D_a4Ej.js → LinkPhoneScreen-D5CEG6v7.js} +1 -1
  48. package/dist/cjs/{LoginFailedScreen-BDDXHvvn.js → LoginFailedScreen-BaCiZhaf.js} +1 -1
  49. package/dist/cjs/{ManualTransferScreen-DQTp_iKx.js → ManualTransferScreen-DrrYyEWA.js} +1 -1
  50. package/dist/cjs/{MfaAuthEnrollmentFlowScreen-CIbZ0xIA.js → MfaAuthEnrollmentFlowScreen-CxGPcI3e.js} +1 -1
  51. package/dist/cjs/{MfaAuthVerifyFlowScreen-DCG37dVx.js → MfaAuthVerifyFlowScreen-DLG-BVQm.js} +1 -1
  52. package/dist/cjs/{MfaEnrollmentFlowScreen-BMvFxN4m.js → MfaEnrollmentFlowScreen-DN5QEHfD.js} +1 -1
  53. package/dist/cjs/{MfaVerifyFlowScreen-A1ir9y_A.js → MfaVerifyFlowScreen-DFkfpD5B.js} +1 -1
  54. package/dist/cjs/{ModalHeader-DIWI7Qd8.js → ModalHeader-D-XonahD.js} +1 -1
  55. package/dist/cjs/{MoonpayStatusScreen-DJIqzTLu.js → MoonpayStatusScreen-4U5kZOj_.js} +1 -1
  56. package/dist/cjs/{OAuthStatusScreen-3YsQvDT2.js → OAuthStatusScreen-Dh3Q2rRA.js} +1 -1
  57. package/dist/cjs/{PasskeySelectSignupOrLogin-CPzx0bS6.js → PasskeySelectSignupOrLogin-DukRCiqA.js} +1 -1
  58. package/dist/cjs/{PasskeyStatusScreen-Y0HfrSs0.js → PasskeyStatusScreen-3qjN5wk9.js} +1 -1
  59. package/dist/cjs/{PasswordRecoveryScreen-DnBSIkCR.js → PasswordRecoveryScreen-Bu7cI0ZC.js} +1 -1
  60. package/dist/cjs/{QrCode-DgJWNtET.js → QrCode-Cic3j7zf.js} +1 -1
  61. package/dist/cjs/{RecoveryOAuthStatusScreen-O90TAb-V.js → RecoveryOAuthStatusScreen-CrjCmmBP.js} +1 -1
  62. package/dist/cjs/{RecoveryPasswordCreateScreen-CSEj-YHC.js → RecoveryPasswordCreateScreen-4iIWUlG8.js} +1 -1
  63. package/dist/cjs/{RecoverySelectionScreen-ASIhYmAi.js → RecoverySelectionScreen-BtfJrsxz.js} +1 -1
  64. package/dist/cjs/{Screen-QiXdkVhj.js → Screen-B544esap.js} +1 -1
  65. package/dist/cjs/{ScreenLayout-BKim1Ivq.js → ScreenLayout-Ct2ArhVz.js} +1 -1
  66. package/dist/cjs/{SelectSourceAsset-Bvvzhx1z.js → SelectSourceAsset-DavDKcHK.js} +1 -1
  67. package/dist/cjs/{SetAutomaticRecoveryScreen-xWSOwMal.js → SetAutomaticRecoveryScreen-Ca7Woguz.js} +1 -1
  68. package/dist/cjs/{SetWalletPasswordForm-If1qCSys.js → SetWalletPasswordForm-CI4cOM1Z.js} +1 -1
  69. package/dist/cjs/{SignRequestScreen-BsqcuRPT.js → SignRequestScreen-fvlO4Zbo.js} +1 -1
  70. package/dist/cjs/{StandardSignAndSendTransactionScreen-CwrOUIqL.js → StandardSignAndSendTransactionScreen-B5NbB4UA.js} +1 -1
  71. package/dist/cjs/{TelegramAuthScreen-CCy2dkrp.js → TelegramAuthScreen-Bxwk45I6.js} +1 -1
  72. package/dist/cjs/{TransactionDetails-6PDseXbG.js → TransactionDetails-CF3pWzeu.js} +1 -1
  73. package/dist/cjs/{TransactionErrorView-kWt_0R3I.js → TransactionErrorView-ijhsEu6z.js} +1 -1
  74. package/dist/cjs/{TransferFromWalletScreen-0TLfcjLe.js → TransferFromWalletScreen-BvbRgShb.js} +1 -1
  75. package/dist/cjs/{TransferOrBridgeLoadingScreen-BkGgll1g.js → TransferOrBridgeLoadingScreen-Bk38xeKC.js} +1 -1
  76. package/dist/cjs/{UpdateEmailScreen-Bk2OG5C2.js → UpdateEmailScreen-BFdQGPVR.js} +1 -1
  77. package/dist/cjs/{UpdatePhoneScreen-BBSNlATd.js → UpdatePhoneScreen-D7Y31sc6.js} +1 -1
  78. package/dist/cjs/{UserLimitReachedScreen-CI5im3l3.js → UserLimitReachedScreen-CYEaYgHR.js} +1 -1
  79. package/dist/cjs/{WalletInfoCard-BkhIxyu0.js → WalletInfoCard-BFqk5nx-.js} +1 -1
  80. package/dist/cjs/{WalletInterstitialScreen-DVj91uDW.js → WalletInterstitialScreen-DIxj_CfT.js} +1 -1
  81. package/dist/cjs/{WalletLink-BNAUeqsj.js → WalletLink-Bn2Sg1t5.js} +1 -1
  82. package/dist/cjs/{WalletOverflowButton-CYOV-_Ot.js → WalletOverflowButton-GNSOyAYk.js} +1 -1
  83. package/dist/cjs/abstract-smart-wallets.js +1 -1
  84. package/dist/cjs/{context-RXM4aLoW.js → context-CxOMsWEC.js} +1 -1
  85. package/dist/cjs/{ethers-1Tcci65u.js → ethers-BLM3stsp.js} +1 -1
  86. package/dist/cjs/extended-chains.js +1 -1
  87. package/dist/cjs/{get-entropy-details-for-user-CfpHdOOL.js → get-entropy-details-for-user-DvVkUB6X.js} +1 -1
  88. package/dist/cjs/{getErc20Balance-D3GMY7bi.js → getErc20Balance-CQ9xkgw_.js} +1 -1
  89. package/dist/cjs/{getErc20TokenInfo-D7Op14dW.js → getErc20TokenInfo-RGU5DUkq.js} +1 -1
  90. package/dist/cjs/{index-D31YtUmO.js → index-B6Hq5QIl.js} +1 -1
  91. package/dist/cjs/{index-Cg7lD262.js → index-BSLfxEzu.js} +3 -3
  92. package/dist/cjs/{index-ChrxGj1W.js → index-BxxiFBfO.js} +1 -1
  93. package/dist/cjs/index.js +1 -1
  94. package/dist/cjs/internal.js +1 -1
  95. package/dist/cjs/{privy-context-CJMUK9qU.js → privy-context-DhB5mzyL.js} +1 -1
  96. package/dist/cjs/{shared-CX36Xo8K.js → shared-DiCZ9TOS.js} +1 -1
  97. package/dist/cjs/{shouldProceedtoEmbeddedWalletCreationFlow-CPd-uKKS.js → shouldProceedtoEmbeddedWalletCreationFlow-Clzt7zrv.js} +1 -1
  98. package/dist/cjs/{smart-wallets-W-C3-7mX.js → smart-wallets-CtIyBfrY.js} +1 -1
  99. package/dist/cjs/smart-wallets.js +1 -1
  100. package/dist/cjs/solana.js +1 -1
  101. package/dist/cjs/{styles-CZ7NmfYl.js → styles-BTg5229F.js} +1 -1
  102. package/dist/cjs/{to-ui-error-waPPZTE3.js → to-ui-error-xMaiBclO.js} +1 -1
  103. package/dist/cjs/ui.js +1 -1
  104. package/dist/cjs/{use-export-wallet-w7BPerzn.js → use-export-wallet-C6g3tNhp.js} +1 -1
  105. package/dist/cjs/{use-export-wallet-D-UqGx7Q.js → use-export-wallet-CxvMZkka.js} +1 -1
  106. package/dist/cjs/{useActiveWallet-mN0aJ9Aw.js → useActiveWallet-Ca1F42NZ.js} +1 -1
  107. package/dist/cjs/{useGetTokenPrice-DYrgDlJ6.js → useGetTokenPrice-fI9ARjVI.js} +1 -1
  108. package/dist/cjs/{useI18n-B652ZmJJ.js → useI18n-DipOTna5.js} +1 -1
  109. package/dist/cjs/usePrivy-U6wMbctH.js +1 -0
  110. package/dist/cjs/{useSolanaRpcClient-H6-9qxr1.js → useSolanaRpcClient-aKVbP2JU.js} +1 -1
  111. package/dist/cjs/{useWalletBalance-BoqIc-xj.js → useWalletBalance-p7qfqjRC.js} +1 -1
  112. package/dist/cjs/{useWallets-TGALIhje.js → useWallets-gb9Umiju.js} +1 -1
  113. package/dist/esm/{AccountNotFoundScreen-iWb1klHB.mjs → AccountNotFoundScreen-C7To-5vI.mjs} +1 -1
  114. package/dist/esm/{Address-PwZSXm9b.mjs → Address-DFhsL61i.mjs} +1 -1
  115. package/dist/esm/{AffirmativeConsentScreen-TmfMGlOl.mjs → AffirmativeConsentScreen-Dl7lWml4.mjs} +1 -1
  116. package/dist/esm/{AllowlistRejectionScreen-Bg7x1RNv.mjs → AllowlistRejectionScreen-CQz_DxeI.mjs} +1 -1
  117. package/dist/esm/{AuthenticateWithWalletScreen-Bfceh8Ep.mjs → AuthenticateWithWalletScreen-BJfgl_9b.mjs} +1 -1
  118. package/dist/esm/{AwaitingEvmToSolBridgingScreen-CPok6C1U.mjs → AwaitingEvmToSolBridgingScreen-CPK1mbrP.mjs} +1 -1
  119. package/dist/esm/{AwaitingExternalEthereumTransferScreen-DJ5AqFjU.mjs → AwaitingExternalEthereumTransferScreen-C2Ic-wWl.mjs} +1 -1
  120. package/dist/esm/{AwaitingPasswordlessCodeScreen-BFhcvo2a.mjs → AwaitingPasswordlessCodeScreen-CKhOpauy.mjs} +1 -1
  121. package/dist/esm/{AwaitingSolToEvmBridgingScreen-yiXjF4aq.mjs → AwaitingSolToEvmBridgingScreen-0silAflP.mjs} +1 -1
  122. package/dist/esm/{BridgeNetworkSelectionView-DTgXCOhN.mjs → BridgeNetworkSelectionView-P9DT3N3B.mjs} +1 -1
  123. package/dist/esm/{CaptchaScreen-BPixv0U9.mjs → CaptchaScreen-BxWtZF1r.mjs} +1 -1
  124. package/dist/esm/{CoinbaseOnrampStatusScreen-BYIZM_n_.mjs → CoinbaseOnrampStatusScreen-kfdMBs7p.mjs} +1 -1
  125. package/dist/esm/{ConnectEmailForm-BCqawfO-.mjs → ConnectEmailForm-MZhtYjvT.mjs} +1 -1
  126. package/dist/esm/{ConnectLedgerScreen-0WQeyQIz.mjs → ConnectLedgerScreen--Er5X0K2.mjs} +1 -1
  127. package/dist/esm/{ConnectOnlyLandingScreen-BHOEo5M4.mjs → ConnectOnlyLandingScreen-O42h34bB.mjs} +1 -1
  128. package/dist/esm/{ConnectOnlyStatusScreen-CCxiAXex.mjs → ConnectOnlyStatusScreen-BCXAj_gW.mjs} +1 -1
  129. package/dist/esm/{ConnectOrCreateScreen-BnN5Eocd.mjs → ConnectOrCreateScreen-vbXuI2JY.mjs} +1 -1
  130. package/dist/esm/{ConnectPhoneForm-DCm_Nfv1.mjs → ConnectPhoneForm-DptByaXA.mjs} +1 -1
  131. package/dist/esm/{ConnectWalletView-DSry6Xg-.mjs → ConnectWalletView-rdXlInEf.mjs} +3 -3
  132. package/dist/esm/{ConnectionStatusScreen-CS1PwenJ.mjs → ConnectionStatusScreen-BsUwbpes.mjs} +1 -1
  133. package/dist/esm/{CrossAppAuthScreen-XZ2iPEDY.mjs → CrossAppAuthScreen-XgfNqS_E.mjs} +1 -1
  134. package/dist/esm/{CustomLandingScreenView-l2CDbRP5.mjs → CustomLandingScreenView-C5YFt-eX.mjs} +1 -1
  135. package/dist/esm/{DelegatedActionsConsentScreen-C0Dc6Xjx.mjs → DelegatedActionsConsentScreen-BArG2a2j.mjs} +1 -1
  136. package/dist/esm/{DelegatedActionsRevokeScreen-uqLZgEZY.mjs → DelegatedActionsRevokeScreen-D4iRvuQE.mjs} +1 -1
  137. package/dist/esm/{EmbeddedWalletConnectingScreen-Ber6xBu2.mjs → EmbeddedWalletConnectingScreen-BsMOU99D.mjs} +1 -1
  138. package/dist/esm/{EmbeddedWalletCreatedScreen-Cf2s9crl.mjs → EmbeddedWalletCreatedScreen-zesLpyMv.mjs} +1 -1
  139. package/dist/esm/{EmbeddedWalletKeyExportScreen-DTqkrVOj.mjs → EmbeddedWalletKeyExportScreen-DqAsv8gU.mjs} +1 -1
  140. package/dist/esm/{EmbeddedWalletOnAccountCreateScreen-CRJF2oQX.mjs → EmbeddedWalletOnAccountCreateScreen-DdyATYUI.mjs} +1 -1
  141. package/dist/esm/{EmbeddedWalletPasswordUpdateScreen-BnFOssqj.mjs → EmbeddedWalletPasswordUpdateScreen-CxnIbTsV.mjs} +1 -1
  142. package/dist/esm/{EmbeddedWalletPasswordUpdateSplashScreen-CypdEeoF.mjs → EmbeddedWalletPasswordUpdateSplashScreen-D5vd3wxy.mjs} +1 -1
  143. package/dist/esm/{EnrollTotp-BMGn5sqG.mjs → EnrollTotp-DdrqF-3H.mjs} +1 -1
  144. package/dist/esm/{ErrorScreen-DYZatCfj.mjs → ErrorScreen-D11us51W.mjs} +1 -1
  145. package/dist/esm/{FarcasterConnectStatusScreen-DDm7pIDd.mjs → FarcasterConnectStatusScreen-fyZcmQgu.mjs} +1 -1
  146. package/dist/esm/{FarcasterSignerStatusScreen-DlCt0kxK.mjs → FarcasterSignerStatusScreen-Dk_lmMg7.mjs} +1 -1
  147. package/dist/esm/{FiatOnrampScreen-isedatpo.mjs → FiatOnrampScreen-CCjWM9Ur.mjs} +1 -1
  148. package/dist/esm/{FundSolWalletWithExternalSolanaWallet-gBuJgt9U.mjs → FundSolWalletWithExternalSolanaWallet-BcWESWy7.mjs} +1 -1
  149. package/dist/esm/{FundWalletMethodHeader-dEfQKUIt.mjs → FundWalletMethodHeader-y6GQmPN-.mjs} +1 -1
  150. package/dist/esm/{FundWithBankDepositScreen-CslZ9KKD.mjs → FundWithBankDepositScreen-KmI-NyT-.mjs} +1 -1
  151. package/dist/esm/{FundingEditAmountScreen-x1Yf2Eyo.mjs → FundingEditAmountScreen-39sxv4-N.mjs} +1 -1
  152. package/dist/esm/{FundingMethodSelectionScreen-CsMVaK3F.mjs → FundingMethodSelectionScreen-C9T6oLOo.mjs} +1 -1
  153. package/dist/esm/{InAppBrowserLoginNotPossible-BdS_u6t4.mjs → InAppBrowserLoginNotPossible-DmQye6Pk.mjs} +1 -1
  154. package/dist/esm/{InstallWalletScreen-BeYedfev.mjs → InstallWalletScreen-UxD8rNul.mjs} +1 -1
  155. package/dist/esm/{LandingScreen-DUDImYql.mjs → LandingScreen-DmPu0MPZ.mjs} +1 -1
  156. package/dist/esm/{LinkConflictScreen-ClUq6bHA.mjs → LinkConflictScreen-Dk3MkQpa.mjs} +1 -1
  157. package/dist/esm/{LinkEmailScreen-DXSe8U9d.mjs → LinkEmailScreen-CfRqXrNI.mjs} +1 -1
  158. package/dist/esm/{LinkPasskeyScreen-C1QMXwHt.mjs → LinkPasskeyScreen-BTtF-B9N.mjs} +1 -1
  159. package/dist/esm/{LinkPhoneScreen-CRXA4Hy0.mjs → LinkPhoneScreen-DrNHNW0i.mjs} +1 -1
  160. package/dist/esm/{LoginFailedScreen-BWx9URVV.mjs → LoginFailedScreen-CRidKWt0.mjs} +1 -1
  161. package/dist/esm/{ManualTransferScreen-CGq7L0Ci.mjs → ManualTransferScreen-CaeG3gSm.mjs} +1 -1
  162. package/dist/esm/{MfaAuthEnrollmentFlowScreen-CDtJNWv8.mjs → MfaAuthEnrollmentFlowScreen-QNnZztPK.mjs} +1 -1
  163. package/dist/esm/{MfaAuthVerifyFlowScreen-DT0vQYdD.mjs → MfaAuthVerifyFlowScreen-CxnNg5C5.mjs} +1 -1
  164. package/dist/esm/{MfaEnrollmentFlowScreen-DoVI0gRh.mjs → MfaEnrollmentFlowScreen-DzgC_f-O.mjs} +1 -1
  165. package/dist/esm/{MfaVerifyFlowScreen-p8IPHVQN.mjs → MfaVerifyFlowScreen-B1GNo8Xm.mjs} +1 -1
  166. package/dist/esm/{ModalHeader-Duq1Izpl.mjs → ModalHeader-DnjCPU3j.mjs} +1 -1
  167. package/dist/esm/{MoonpayStatusScreen-C1Z_6gNn.mjs → MoonpayStatusScreen-CklNYEWb.mjs} +1 -1
  168. package/dist/esm/{OAuthStatusScreen-BTVsCmCg.mjs → OAuthStatusScreen-B6GSPYhl.mjs} +1 -1
  169. package/dist/esm/{PasskeySelectSignupOrLogin-B-onsqZo.mjs → PasskeySelectSignupOrLogin-MBv2tZo-.mjs} +1 -1
  170. package/dist/esm/{PasskeyStatusScreen-B1umlQqV.mjs → PasskeyStatusScreen-BPWbs5Nw.mjs} +1 -1
  171. package/dist/esm/{PasswordRecoveryScreen-I3ZUDm0-.mjs → PasswordRecoveryScreen-CZCj98I8.mjs} +1 -1
  172. package/dist/esm/{QrCode-DZ4mEmXc.mjs → QrCode-BHbLI4rX.mjs} +1 -1
  173. package/dist/esm/{RecoveryOAuthStatusScreen-GJOLz9Qg.mjs → RecoveryOAuthStatusScreen-DVsqHDmE.mjs} +1 -1
  174. package/dist/esm/{RecoveryPasswordCreateScreen-BnvmaEYh.mjs → RecoveryPasswordCreateScreen-C89EWiuO.mjs} +1 -1
  175. package/dist/esm/{RecoverySelectionScreen-iOlIYqRe.mjs → RecoverySelectionScreen-1Vlp8fVi.mjs} +1 -1
  176. package/dist/esm/{Screen-Ce8BE24H.mjs → Screen-BHWyivgu.mjs} +1 -1
  177. package/dist/esm/{ScreenLayout-B6n5Feil.mjs → ScreenLayout-D7WpqBtE.mjs} +1 -1
  178. package/dist/esm/{SelectSourceAsset-zsEmZ5td.mjs → SelectSourceAsset-CiSao4AW.mjs} +1 -1
  179. package/dist/esm/{SetAutomaticRecoveryScreen-BS08blBS.mjs → SetAutomaticRecoveryScreen-DietkZKW.mjs} +1 -1
  180. package/dist/esm/{SetWalletPasswordForm-Dptwfaam.mjs → SetWalletPasswordForm-DTi1Jbtw.mjs} +1 -1
  181. package/dist/esm/{SignRequestScreen-DSZ9BlSE.mjs → SignRequestScreen-B_Ox6MOX.mjs} +1 -1
  182. package/dist/esm/{StandardSignAndSendTransactionScreen-BxF1ai6w.mjs → StandardSignAndSendTransactionScreen-CrVpHuvN.mjs} +1 -1
  183. package/dist/esm/{TelegramAuthScreen-BgAQJBxJ.mjs → TelegramAuthScreen-CZZaAiYq.mjs} +1 -1
  184. package/dist/esm/{TransactionDetails-CVClqqlA.mjs → TransactionDetails-DUAqjI_O.mjs} +1 -1
  185. package/dist/esm/{TransactionErrorView-B_dlkXgb.mjs → TransactionErrorView-BehNZVCh.mjs} +1 -1
  186. package/dist/esm/{TransferFromWalletScreen-7dBrxdtu.mjs → TransferFromWalletScreen-BCEzW4SH.mjs} +1 -1
  187. package/dist/esm/{TransferOrBridgeLoadingScreen-CknmH__D.mjs → TransferOrBridgeLoadingScreen-BfVr4ZWB.mjs} +1 -1
  188. package/dist/esm/{UpdateEmailScreen-COQBeTV_.mjs → UpdateEmailScreen-Ci2FSOkW.mjs} +1 -1
  189. package/dist/esm/{UpdatePhoneScreen-SH0ZMLhy.mjs → UpdatePhoneScreen-DCaxJSCD.mjs} +1 -1
  190. package/dist/esm/{UserLimitReachedScreen-Bbjr58Rh.mjs → UserLimitReachedScreen-CsD_fKH1.mjs} +1 -1
  191. package/dist/esm/{WalletInfoCard-CSqr9o--.mjs → WalletInfoCard-DkYb13at.mjs} +1 -1
  192. package/dist/esm/{WalletInterstitialScreen-C62appnM.mjs → WalletInterstitialScreen-a-o6jPKb.mjs} +1 -1
  193. package/dist/esm/{WalletLink-WeWEMb7C.mjs → WalletLink-BRkUlo2K.mjs} +1 -1
  194. package/dist/esm/{WalletOverflowButton-XkatV0nc.mjs → WalletOverflowButton-DSPUFJ5T.mjs} +1 -1
  195. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  196. package/dist/esm/{context-aGvo4MVQ.mjs → context-DanhWeBg.mjs} +1 -1
  197. package/dist/esm/{ethers-BNftJuZG.mjs → ethers-iL-1LJcq.mjs} +1 -1
  198. package/dist/esm/extended-chains.mjs +1 -1
  199. package/dist/esm/{get-entropy-details-for-user-DkZdXKpr.mjs → get-entropy-details-for-user-BGqBIfqR.mjs} +1 -1
  200. package/dist/esm/{getErc20Balance-B5YTRX0-.mjs → getErc20Balance-gArwSiSB.mjs} +1 -1
  201. package/dist/esm/{getErc20TokenInfo-Dx_e_xiA.mjs → getErc20TokenInfo-CagSRUvz.mjs} +1 -1
  202. package/dist/esm/{index-6ULxuXBn.mjs → index-B9BAjdI3.mjs} +1 -1
  203. package/dist/esm/{index-D23O4czL.mjs → index-cnyso2Fp.mjs} +3 -3
  204. package/dist/esm/{index-BmQvaRvI.mjs → index-vGEfIWzb.mjs} +1 -1
  205. package/dist/esm/index.mjs +1 -1
  206. package/dist/esm/internal.mjs +1 -1
  207. package/dist/esm/{privy-context-CkPtrpbt.mjs → privy-context-pimLCE3L.mjs} +1 -1
  208. package/dist/esm/{shared-BivH4vdQ.mjs → shared-DkAMLjm5.mjs} +1 -1
  209. package/dist/esm/{shouldProceedtoEmbeddedWalletCreationFlow-BSnOzrud.mjs → shouldProceedtoEmbeddedWalletCreationFlow-CvbohbW6.mjs} +1 -1
  210. package/dist/esm/{smart-wallets-BhZ-uX3v.mjs → smart-wallets-Bp1oklP0.mjs} +1 -1
  211. package/dist/esm/smart-wallets.mjs +1 -1
  212. package/dist/esm/solana.mjs +1 -1
  213. package/dist/esm/{styles--34ZnZR_.mjs → styles-DMbxOKl7.mjs} +1 -1
  214. package/dist/esm/{to-ui-error-DgTXOCnh.mjs → to-ui-error-S-MThHnv.mjs} +1 -1
  215. package/dist/esm/ui.mjs +1 -1
  216. package/dist/esm/{use-export-wallet-Db8GdSAT.mjs → use-export-wallet-9if9oowB.mjs} +1 -1
  217. package/dist/esm/{use-export-wallet-BqvE_ud1.mjs → use-export-wallet-BdeWv8ke.mjs} +1 -1
  218. package/dist/esm/{useActiveWallet-By6UNJY1.mjs → useActiveWallet-DFp38Dx-.mjs} +1 -1
  219. package/dist/esm/{useGetTokenPrice-CveNETyP.mjs → useGetTokenPrice-CwmlFVt_.mjs} +1 -1
  220. package/dist/esm/{useI18n-D3p37xc_.mjs → useI18n-BpRybzwE.mjs} +1 -1
  221. package/dist/esm/usePrivy-ChZSTtn2.mjs +1 -0
  222. package/dist/esm/{useSolanaRpcClient-DgxuhW6A.mjs → useSolanaRpcClient-C7No0-0C.mjs} +1 -1
  223. package/dist/esm/{useWalletBalance-DyK680KW.mjs → useWalletBalance-BFMUBOkj.mjs} +1 -1
  224. package/dist/esm/{useWallets-DHM1PNtl.mjs → useWallets-QiqVPxAb.mjs} +1 -1
  225. package/package.json +7 -7
  226. package/dist/cjs/usePrivy-NgERWVoo.js +0 -1
  227. package/dist/esm/usePrivy-DPZ1iMmn.mjs +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";var e=require("react"),t=require("zustand"),n=require("./context-RXM4aLoW.js"),r=require("viem"),o=require("viem/utils"),i=require("./internal-context-BJv4f_bO.js"),l=require("./use-export-wallet-D-UqGx7Q.js"),a=require("react/jsx-runtime"),s=require("react-device-detect"),c=require("styled-components"),d=require("./events-context-Di6--rDg.js"),h=require("./privy-context-CJMUK9qU.js"),p=require("./get-entropy-details-for-user-CfpHdOOL.js");function u(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var w=/*#__PURE__*/u(s);const m=t.create((()=>({listings:[],loading:!1}))),g=m.setState,y=(t=!0)=>{let r=n.useAppConfig(),o=m((e=>e.listings)),i=m((e=>e.loading)),l=!!o.length;return e.useEffect((()=>{t&&!l&&(g({listings:[],loading:!0}),(async e=>{let t=new URL("v3/wallets","https://explorer-api.walletconnect.com");t.searchParams.append("projectId",e);let n=await fetch(t);return n.ok?Object.values((await n.json()).listings).sort((({slug:e},{slug:t})=>"rainbow"===e&&"metamask"===t?1:"metamask"===e||"rainbow"===e?-1:1)):(console.debug(`Failed to fetch WalletConnect listings: ${await n.text().catch((()=>"No response."))}`),[])})(r.walletConnectCloudProjectId).then((e=>g({listings:e,loading:!1}))).catch((e=>{console.error(e),g({listings:[],loading:!1})})))}),[t,l,r.walletConnectCloudProjectId]),{listings:o,loading:i}};function f(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function b(e){return"ethereum"===e.type}function v(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],o=t[n];if(r?.address!==o?.address||r&&o&&b(r)&&b(o)&&r?.chainId!==o?.chainId||r?.connectorType!==o?.connectorType||r?.connectedAt!==o?.connectedAt||r?.walletClientType!==o?.walletClientType||r?.isConnected!==o?.isConnected||r?.linked!==o?.linked)return!1}return!0}const x=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||n.DEFAULT_RPC_TIMEOUT;class C extends l.WalletConnector{buildConnectedWallet(e,t,n,r){let a=async()=>!!this.wallets.find((t=>o.getAddress(t.address)===o.getAddress(e)));return{type:"ethereum",address:o.getAddress(e),chainId:t,meta:n,imported:r,switchChain:async n=>{let r,s;if(!a)throw new i.PrivyConnectorError("Wallet is not currently connected.");let c=this.wallets.find((t=>o.getAddress(t.address)===o.getAddress(e)))?.chainId;if(!c)throw new i.PrivyConnectorError("Unable to determine current chainId.");if("number"==typeof n?(r=`0x${n.toString(16)}`,s=n):(r=n,s=Number(n)),c===l.formatChainIdToCAIP2(r))return;let d=this.chains.find((e=>e.id===s));if(!d)throw new i.PrivyConnectorError(`Unsupported chainId: ${n}`);let h=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:r}]})};try{return await h()}catch(e){if(((e,t)=>{switch(t){case"coinbase_wallet":case"base_account":return e.message.includes("addEthereumChain");case"rabby_wallet":return e.message.includes("Unrecognized chain ID");default:return 4902===e.code||e.message?.includes("4902")}})(e,this.walletClientType))return"rabby_wallet"===this.walletClientType&&await l.sleep(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:r,chainName:d.name,nativeCurrency:d.nativeCurrency,rpcUrls:[d.rpcUrls.default?.http[0]??""],blockExplorerUrls:[d.blockExplorers?.default.url??""]}]}),h();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new i.PrivyConnectorError(`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 i.PrivyConnectorError("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new i.PrivyConnectorError("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t;l.connectorLogger.debug("Syncing accounts",{wallet:this.walletClientType});let i=e;try{if(void 0===i){l.connectorLogger.rpcRequest("eth_accounts",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});l.connectorLogger.rpcResponse("eth_accounts",this.walletClientType),Array.isArray(e)&&(i=e)}}catch(e){l.connectorLogger.warn("Wallet did not respond to eth_accounts, using prefetched accounts",{wallet:this.walletClientType})}if(!i||!Array.isArray(i)||i.length<=0||!i[0])return void l.connectorLogger.debug("No accounts found",{wallet:this.walletClientType});let a=i[0];if(!r.isAddress(a))return;let s=o.getAddress(a),c=[];if("privy"===this.walletClientType){let e=l.s.get(n.getPrivyWalletKey(s));this.chains.find((t=>t.id===Number(e)))||(l.s.del(n.getPrivyWalletKey(s)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){l.connectorLogger.warn("Unable to switch embedded wallet chain on initialization",{wallet:this.walletClientType,chainId:t})}}else try{l.connectorLogger.rpcRequest("eth_chainId",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(l.connectorLogger.rpcResponse("eth_chainId",this.walletClientType),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){l.connectorLogger.warn("Failed to get chainId from provider, using default",{wallet:this.walletClientType,defaultChainId:n.DEFAULT_NETWORK}),t=n.DEFAULT_NETWORK}let d=l.formatChainIdToCAIP2(t);if(!c.find((e=>o.getAddress(e.address)===s))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};c.push(this.buildConnectedWallet(o.getAddress(a),d,e,"embedded_imported"===this.connectorType))}v(c,this.wallets)||(l.connectorLogger.debug("Wallets updated",{wallet:this.walletClientType,address:s,chainId:d}),this.wallets=c,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=>o.getAddress(e)===o.getAddress(t.address)))))||null}async isConnected(){let e=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}async sign(e){return await this.connect({showPrompt:!1}),this.proxyProvider.request({method:"personal_sign",params:[o.toHex(e),this.wallets[0]?.address]})}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}constructor(e,t,r,o){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{l.connectorLogger.providerEvent("accountsChanged",this.walletClientType,{accountsCount:e.length}),0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{l.connectorLogger.providerEvent("chainChanged",this.walletClientType,{chainId:e}),this.wallets.forEach((t=>{t.chainId=l.formatChainIdToCAIP2(e),"privy"===this.walletClientType&&l.s.put(n.getPrivyWalletKey(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{l.connectorLogger.providerEvent("disconnect",this.walletClientType),this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{l.connectorLogger.providerEvent("connect",this.walletClientType),"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await l.sleep(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=r,this.rpcConfig=o,this.rpcTimeoutDuration=x(o,e),this.connected=!1,this.initialized=!1}}class k{on(e,t){if(this.walletProvider)return this.walletProvider.on(e,t);this._subscriptions.push({eventName:e,listener:t})}async request(e){if(!this.walletProvider)throw new i.PrivyConnectorError(`A wallet request of type ${e.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(e),this.walletTimeout()]).catch((e=>{throw l.formatConnectorError(e)}))}constructor(e,t){this.removeListener=(e,t)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(e,t)}catch(e){console.warn("Unable to remove wallet provider listener")}},this.walletTimeout=(e=new l.WalletTimeoutError,t=this.rpcTimeoutDuration)=>new Promise(((n,r)=>setTimeout((()=>{r(e)}),t))),this.setWalletProvider=e=>{this.walletProvider&&this._subscriptions.forEach((e=>{this.removeListener(e.eventName,e.listener)})),this.walletProvider=e,this._subscriptions.forEach((e=>{this.walletProvider?.on(e.eventName,e.listener)}))},this.walletProvider=e,this.rpcTimeoutDuration=t||n.DEFAULT_RPC_TIMEOUT,this._subscriptions=[]}}const T=["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"],_=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 r=P({client:this.client,isSolana:t,connectOnly:n});return`${e?"phantom://":"https://phantom.app/ul/"}browse/${r}?ref=${r}`}},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 r=P({client:this.client,isSolana:t,connectOnly:n});return`${e?"solflare://ul/v1/":"https://solflare.com/ul/v1/"}browse/${r}?ref=${r}`}},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=P({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 r=P({client:this.client,isSolana:t,connectOnly:n});return`${e?"backpack://ul/v1/":"https://backpack.app/ul/v1/"}browse/${r}?ref=${r}`}},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=${P({client:this.client,isSolana:e,connectOnly:t})}`}}});function P({client:e,isSolana:t,connectOnly:n}){let r=new URL(window.location.href);return r.searchParams.set("privy_connector",t?"solana_adapter":"injected"),r.searchParams.set("privy_wallet_client",e),r.searchParams.set("privy_connect_only",String(n)),encodeURIComponent(r.href.replace(/\/$/g,""))}class E extends l.SolanaWalletConnector{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:r}){super({name:t},!1),this.connectorType="null",this.proxyProvider=new k(void 0,n.DEFAULT_RPC_TIMEOUT),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=r}}function j(e){return"solana"===e.chainType}const z=c.styled.div`
1
+ "use strict";var e=require("react"),t=require("zustand"),n=require("./context-CxOMsWEC.js"),r=require("viem"),o=require("viem/utils"),i=require("./internal-context-BJv4f_bO.js"),l=require("./use-export-wallet-CxvMZkka.js"),a=require("react/jsx-runtime"),s=require("react-device-detect"),c=require("styled-components"),d=require("./events-context-Di6--rDg.js"),h=require("./privy-context-DhB5mzyL.js"),p=require("./get-entropy-details-for-user-DvVkUB6X.js");function u(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var w=/*#__PURE__*/u(s);const m=t.create((()=>({listings:[],loading:!1}))),g=m.setState,y=(t=!0)=>{let r=n.useAppConfig(),o=m((e=>e.listings)),i=m((e=>e.loading)),l=!!o.length;return e.useEffect((()=>{t&&!l&&(g({listings:[],loading:!0}),(async e=>{let t=new URL("v3/wallets","https://explorer-api.walletconnect.com");t.searchParams.append("projectId",e);let n=await fetch(t);return n.ok?Object.values((await n.json()).listings).sort((({slug:e},{slug:t})=>"rainbow"===e&&"metamask"===t?1:"metamask"===e||"rainbow"===e?-1:1)):(console.debug(`Failed to fetch WalletConnect listings: ${await n.text().catch((()=>"No response."))}`),[])})(r.walletConnectCloudProjectId).then((e=>g({listings:e,loading:!1}))).catch((e=>{console.error(e),g({listings:[],loading:!1})})))}),[t,l,r.walletConnectCloudProjectId]),{listings:o,loading:i}};function f(e){return"cryptocom"===e?"cryptocom-defi":"binance"===e?"binance-defi":e.replace(/[-_]wallet$/,"")}function b(e){return"ethereum"===e.type}function v(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],o=t[n];if(r?.address!==o?.address||r&&o&&b(r)&&b(o)&&r?.chainId!==o?.chainId||r?.connectorType!==o?.connectorType||r?.connectedAt!==o?.connectedAt||r?.walletClientType!==o?.walletClientType||r?.isConnected!==o?.isConnected||r?.linked!==o?.linked)return!1}return!0}const x=(e,t)=>e.rpcTimeouts&&e.rpcTimeouts[t]||n.DEFAULT_RPC_TIMEOUT;class C extends l.WalletConnector{buildConnectedWallet(e,t,n,r){let a=async()=>!!this.wallets.find((t=>o.getAddress(t.address)===o.getAddress(e)));return{type:"ethereum",address:o.getAddress(e),chainId:t,meta:n,imported:r,switchChain:async n=>{let r,s;if(!a)throw new i.PrivyConnectorError("Wallet is not currently connected.");let c=this.wallets.find((t=>o.getAddress(t.address)===o.getAddress(e)))?.chainId;if(!c)throw new i.PrivyConnectorError("Unable to determine current chainId.");if("number"==typeof n?(r=`0x${n.toString(16)}`,s=n):(r=n,s=Number(n)),c===l.formatChainIdToCAIP2(r))return;let d=this.chains.find((e=>e.id===s));if(!d)throw new i.PrivyConnectorError(`Unsupported chainId: ${n}`);let h=async()=>{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:r}]})};try{return await h()}catch(e){if(((e,t)=>{switch(t){case"coinbase_wallet":case"base_account":return e.message.includes("addEthereumChain");case"rabby_wallet":return e.message.includes("Unrecognized chain ID");default:return 4902===e.code||e.message?.includes("4902")}})(e,this.walletClientType))return"rabby_wallet"===this.walletClientType&&await l.sleep(300),await this.proxyProvider.request({method:"wallet_addEthereumChain",params:[{chainId:r,chainName:d.name,nativeCurrency:d.nativeCurrency,rpcUrls:[d.rpcUrls.default?.http[0]??""],blockExplorerUrls:[d.blockExplorers?.default.url??""]}]}),h();if("rainbow"===this.walletClientType&&e.message?.includes("wallet_switchEthereumChain"))throw new i.PrivyConnectorError(`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 i.PrivyConnectorError("Wallet is not currently connected.");return this.proxyProvider},sign:async e=>{if(!await a())throw new i.PrivyConnectorError("Wallet is not currently connected.");return await this.sign(e)},disconnect:()=>{this.disconnect()}}}async syncAccounts(e){let t;l.connectorLogger.debug("Syncing accounts",{wallet:this.walletClientType});let i=e;try{if(void 0===i){l.connectorLogger.rpcRequest("eth_accounts",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_accounts"})),{maxAttempts:10,delayMs:500});l.connectorLogger.rpcResponse("eth_accounts",this.walletClientType),Array.isArray(e)&&(i=e)}}catch(e){l.connectorLogger.warn("Wallet did not respond to eth_accounts, using prefetched accounts",{wallet:this.walletClientType})}if(!i||!Array.isArray(i)||i.length<=0||!i[0])return void l.connectorLogger.debug("No accounts found",{wallet:this.walletClientType});let a=i[0];if(!r.isAddress(a))return;let s=o.getAddress(a),c=[];if("privy"===this.walletClientType){let e=l.s.get(n.getPrivyWalletKey(s));this.chains.find((t=>t.id===Number(e)))||(l.s.del(n.getPrivyWalletKey(s)),e=null),t=e||`0x${this.defaultChain.id.toString(16)}`;try{await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]})}catch(e){l.connectorLogger.warn("Unable to switch embedded wallet chain on initialization",{wallet:this.walletClientType,chainId:t})}}else try{l.connectorLogger.rpcRequest("eth_chainId",this.walletClientType);let e=await l.invokeUntilSettled((()=>this.proxyProvider.request({method:"eth_chainId"})),{maxAttempts:10,delayMs:500});if(l.connectorLogger.rpcResponse("eth_chainId",this.walletClientType),"string"==typeof e)t=e;else{if("number"!=typeof e)throw Error("Invalid chainId returned from provider");t=`0x${e.toString(16)}`}}catch(e){l.connectorLogger.warn("Failed to get chainId from provider, using default",{wallet:this.walletClientType,defaultChainId:n.DEFAULT_NETWORK}),t=n.DEFAULT_NETWORK}let d=l.formatChainIdToCAIP2(t);if(!c.find((e=>o.getAddress(e.address)===s))){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};c.push(this.buildConnectedWallet(o.getAddress(a),d,e,"embedded_imported"===this.connectorType))}v(c,this.wallets)||(l.connectorLogger.debug("Wallets updated",{wallet:this.walletClientType,address:s,chainId:d}),this.wallets=c,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=>o.getAddress(e)===o.getAddress(t.address)))))||null}async isConnected(){let e=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}async sign(e){return await this.connect({showPrompt:!1}),this.proxyProvider.request({method:"personal_sign",params:[o.toHex(e),this.wallets[0]?.address]})}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}constructor(e,t,r,o){super(e),this.chainType="ethereum",this.onAccountsChanged=e=>{l.connectorLogger.providerEvent("accountsChanged",this.walletClientType,{accountsCount:e.length}),0===e.length?this.onDisconnect():this.syncAccounts(e)},this.onChainChanged=e=>{l.connectorLogger.providerEvent("chainChanged",this.walletClientType,{chainId:e}),this.wallets.forEach((t=>{t.chainId=l.formatChainIdToCAIP2(e),"privy"===this.walletClientType&&l.s.put(n.getPrivyWalletKey(t.address),e)})),this.emit("walletsUpdated")},this.onDisconnect=()=>{l.connectorLogger.providerEvent("disconnect",this.walletClientType),this.connected=!1,this.wallets=[],this.emit("walletsUpdated")},this.onConnect=async()=>{l.connectorLogger.providerEvent("connect",this.walletClientType),"base_account"===this.connectorType&&this.connected||(this.connected=!0,"coinbase_wallet"===this.connectorType&&await l.sleep(500),this.syncAccounts())},this.wallets=[],this.walletClientType=e,this.chains=t,this.defaultChain=r,this.rpcConfig=o,this.rpcTimeoutDuration=x(o,e),this.connected=!1,this.initialized=!1}}class k{on(e,t){if(this.walletProvider)return this.walletProvider.on(e,t);this._subscriptions.push({eventName:e,listener:t})}async request(e){if(!this.walletProvider)throw new i.PrivyConnectorError(`A wallet request of type ${e.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(e),this.walletTimeout()]).catch((e=>{throw l.formatConnectorError(e)}))}constructor(e,t){this.removeListener=(e,t)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(e,t)}catch(e){console.warn("Unable to remove wallet provider listener")}},this.walletTimeout=(e=new l.WalletTimeoutError,t=this.rpcTimeoutDuration)=>new Promise(((n,r)=>setTimeout((()=>{r(e)}),t))),this.setWalletProvider=e=>{this.walletProvider&&this._subscriptions.forEach((e=>{this.removeListener(e.eventName,e.listener)})),this.walletProvider=e,this._subscriptions.forEach((e=>{this.walletProvider?.on(e.eventName,e.listener)}))},this.walletProvider=e,this.rpcTimeoutDuration=t||n.DEFAULT_RPC_TIMEOUT,this._subscriptions=[]}}const T=["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"],_=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 r=P({client:this.client,isSolana:t,connectOnly:n});return`${e?"phantom://":"https://phantom.app/ul/"}browse/${r}?ref=${r}`}},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 r=P({client:this.client,isSolana:t,connectOnly:n});return`${e?"solflare://ul/v1/":"https://solflare.com/ul/v1/"}browse/${r}?ref=${r}`}},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=P({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 r=P({client:this.client,isSolana:t,connectOnly:n});return`${e?"backpack://ul/v1/":"https://backpack.app/ul/v1/"}browse/${r}?ref=${r}`}},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=${P({client:this.client,isSolana:e,connectOnly:t})}`}}});function P({client:e,isSolana:t,connectOnly:n}){let r=new URL(window.location.href);return r.searchParams.set("privy_connector",t?"solana_adapter":"injected"),r.searchParams.set("privy_wallet_client",e),r.searchParams.set("privy_connect_only",String(n)),encodeURIComponent(r.href.replace(/\/$/g,""))}class E extends l.SolanaWalletConnector{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:r}){super({name:t},!1),this.connectorType="null",this.proxyProvider=new k(void 0,n.DEFAULT_RPC_TIMEOUT),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=r}}function j(e){return"solana"===e.chainType}const z=c.styled.div`
2
2
  text-align: left;
3
3
  flex-grow: 1;
4
4
  `,S=c.styled.div`
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./context-RXM4aLoW.js"),o=require("./internal-context-BJv4f_bO.js"),t=require("./useGetSolPrice-Ca32VAbF.js");let n=t=>{let{showFiatPrices:n,getUsdTokenPrice:c,chains:a}=o.usePrivyInternal(),[s,l]=e.useState(!0),[P,u]=e.useState(void 0),[d,k]=e.useState(void 0);return e.useEffect((()=>{t||=i.CHAIN_ID_MAINNET;let e=r.addToDefaultChains(a).find((e=>e.id===Number(t)));(async()=>{if(n){if(!e)return l(!1),void u(Error(`Unable to fetch token price on chain id ${t}`));try{l(!0);let r=await c(e);r?k(r):u(Error(`Unable to fetch token price on chain id ${e.id}`))}catch(e){u(e)}finally{l(!1)}}else l(!1)})()}),[t]),{tokenPrice:d,isTokenPriceLoading:s,tokenPriceError:P}};exports.useGetTokenPrice=function(e){let{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}=n("solana"===e?-1:e),{solPrice:c,isSolPriceLoading:a,solPriceError:s}=t.useGetSolPrice({enabled:"solana"===e});return"solana"===e?{tokenPrice:c,isTokenPriceLoading:a,tokenPriceError:s}:{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}};
1
+ "use strict";var e=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./context-CxOMsWEC.js"),o=require("./internal-context-BJv4f_bO.js"),t=require("./useGetSolPrice-Ca32VAbF.js");let n=t=>{let{showFiatPrices:n,getUsdTokenPrice:c,chains:a}=o.usePrivyInternal(),[s,l]=e.useState(!0),[P,u]=e.useState(void 0),[d,k]=e.useState(void 0);return e.useEffect((()=>{t||=i.CHAIN_ID_MAINNET;let e=r.addToDefaultChains(a).find((e=>e.id===Number(t)));(async()=>{if(n){if(!e)return l(!1),void u(Error(`Unable to fetch token price on chain id ${t}`));try{l(!0);let r=await c(e);r?k(r):u(Error(`Unable to fetch token price on chain id ${e.id}`))}catch(e){u(e)}finally{l(!1)}}else l(!1)})()}),[t]),{tokenPrice:d,isTokenPriceLoading:s,tokenPriceError:P}};exports.useGetTokenPrice=function(e){let{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}=n("solana"===e?-1:e),{solPrice:c,isSolPriceLoading:a,solPriceError:s}=t.useGetSolPrice({enabled:"solana"===e});return"solana"===e?{tokenPrice:c,isTokenPriceLoading:a,tokenPriceError:s}:{tokenPrice:r,isTokenPriceLoading:i,tokenPriceError:o}};
@@ -1 +1 @@
1
- "use strict";var e=require("./context-RXM4aLoW.js");const n={"connectionStatus.successfullyConnected":"Successfully connected with {walletName}","connectionStatus.errorTitle":"{errorMessage}","connectionStatus.connecting":"Connecting","connectionStatus.connectOneWallet":"For the best experience, connect only one wallet at a time.","connectionStatus.checkOtherWindows":"Don't see your wallet? Check your other browser windows.","connectionStatus.stillHere":"Still here?","connectionStatus.tryConnectingAgain":"Try connecting again","connectionStatus.or":"or","connectionStatus.useDifferentLink":"use this different link","connectWallet.connectYourWallet":"Connect a wallet","connectWallet.waitingForWallet":"Waiting for {walletName}","connectWallet.connectToAccount":"Connect a wallet to your {appName} account","connectWallet.installAndConnect":"To connect to {walletName}, install and open the app. Then confirm the connection when prompted.","connectWallet.tryConnectingAgain":"Please try connecting again.","connectWallet.openInApp":"Open in app","connectWallet.copyLink":"Copy link","connectWallet.retry":"Retry","connectWallet.searchPlaceholder":"Search through {count} wallets","connectWallet.noWalletsFound":"No wallets found. Try another search.","connectWallet.lastUsed":"Last used","connectWallet.selectYourWallet":"Select your wallet","connectWallet.selectNetwork":"Select network","connectWallet.goToWallet":"Go to {walletName} to continue","connectWallet.scanToConnect":"Scan code to connect to {walletName}","connectWallet.openOrInstall":"Open or install {walletName}"};exports.useI18n=function(){let t=e.useAppConfig();return{t:(e,o)=>function(e,t,o){let c=t?.[e]??n[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,n)=>o[n]??e)):c}(e,t.intl.textLocalization,o)}};
1
+ "use strict";var e=require("./context-CxOMsWEC.js");const n={"connectionStatus.successfullyConnected":"Successfully connected with {walletName}","connectionStatus.errorTitle":"{errorMessage}","connectionStatus.connecting":"Connecting","connectionStatus.connectOneWallet":"For the best experience, connect only one wallet at a time.","connectionStatus.checkOtherWindows":"Don't see your wallet? Check your other browser windows.","connectionStatus.stillHere":"Still here?","connectionStatus.tryConnectingAgain":"Try connecting again","connectionStatus.or":"or","connectionStatus.useDifferentLink":"use this different link","connectWallet.connectYourWallet":"Connect a wallet","connectWallet.waitingForWallet":"Waiting for {walletName}","connectWallet.connectToAccount":"Connect a wallet to your {appName} account","connectWallet.installAndConnect":"To connect to {walletName}, install and open the app. Then confirm the connection when prompted.","connectWallet.tryConnectingAgain":"Please try connecting again.","connectWallet.openInApp":"Open in app","connectWallet.copyLink":"Copy link","connectWallet.retry":"Retry","connectWallet.searchPlaceholder":"Search through {count} wallets","connectWallet.noWalletsFound":"No wallets found. Try another search.","connectWallet.lastUsed":"Last used","connectWallet.selectYourWallet":"Select your wallet","connectWallet.selectNetwork":"Select network","connectWallet.goToWallet":"Go to {walletName} to continue","connectWallet.scanToConnect":"Scan code to connect to {walletName}","connectWallet.openOrInstall":"Open or install {walletName}"};exports.useI18n=function(){let t=e.useAppConfig();return{t:(e,o)=>function(e,t,o){let c=t?.[e]??n[e];return o&&0!==Object.keys(o).length?c.replace(/\{(\w+)\}/g,((e,n)=>o[n]??e)):c}(e,t.intl.textLocalization,o)}};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("react-device-detect"),r=require("./internal-context-BJv4f_bO.js"),t=require("react"),n=require("./use-export-wallet-CxvMZkka.js"),i=require("./privy-context-DhB5mzyL.js"),a=require("./events-context-Di6--rDg.js"),o=require("@privy-io/js-sdk-core"),l=require("./get-entropy-details-for-user-DvVkUB6X.js"),s=require("./context-CxOMsWEC.js");function d(e){return{name:e.metadata?.shortName||e.name||"",universalLink:e.mobile.universal,deepLink:e.mobile.native}}let c="WALLETCONNECT_DEEPLINK_CHOICE";function p(e){return e.startsWith("http://")||e.startsWith("https://")}function u(e,r){if(p(e))return y(e,r);let t=e;return t.includes("://")||(t=e.replaceAll("/","").replaceAll(":",""),t=`${t}://`),t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}function y(e,r){if(!p(e))return u(e,r);let t=e;return t.endsWith("/")||(t=`${t}/`),{redirect:`${t}wc?uri=${encodeURIComponent(r)}`,href:t}}const E=Symbol("solana-funding-plugin"),v=Symbol("solana-ledger-plugin"),h=async({user:e,accessToken:r,proxy:t,refreshSessionAndUser:a,privy:s,appConfig:d,recoverEmbeddedWallet:c,setUser:p,walletIndex:u,chainType:y,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h,idempotencyKey:m,additionalSigners:w})=>{if(0===u)if("user-controlled-server-wallets-only"===d.embeddedWallets.mode)await o.create(s,{request:{chain_type:y,additional_signers:w?n.parseAdditionalSigners(w):void 0},headers:m?{"privy-idempotency-key":m}:void 0});else if("ethereum"===y){let n=i.getPrivySolanaWallet(e);n&&await c({address:n.address}),await t.create({accessToken:r,solanaAddress:n?.address,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h})}else{if("solana"!==y)throw Error("Invalid input to create wallet");{let n=i.getPrivyEthereumWallet(e);n&&await c({address:n.address}),await t.createSolana({accessToken:r,ethereumAddress:n?.address,recoveryMethod:E,recoveryPassword:v,recoveryAccessToken:h})}}else if("user-controlled-server-wallets-only"===d.embeddedWallets.mode)await o.create(s,{request:{chain_type:y,additional_signers:w?n.parseAdditionalSigners(w):void 0}});else{let{entropyId:n,entropyIdVerifier:i}=l.getEntropyDetailsForUser(e);await c(),await t.addWallet({accessToken:r,entropyId:n,entropyIdVerifier:i,chainType:y,hdWalletIndex:u})}let W=await a(),f=l.getPrivyWalletsWithFilter(W,{chainType:y,walletIndex:u})[0];return p(W),{user:W,account:f}},m=async({appConfig:e,getAccessToken:t,initializeWalletProxy:n,user:i,privy:a,emitPrivyEvent:s,recoverEmbeddedWallet:d,setModalData:c,openModal:p,setUser:u,options:y,timeoutDuration:E,refreshSessionAndUser:v,chainType:h,idempotencyKey:m,additionalSigners:W})=>{let[f,T]=await Promise.all([n(E),t()]);if(!T||!i)throw s("createWallet","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!f&&e.customAuth?.enabled)throw s("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(W&&"user-controlled-server-wallets-only"!==e.embeddedWallets.mode)throw new r.PrivyClientError("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");if(y&&"walletIndex"in y&&"number"==typeof y.walletIndex){if("user-controlled-server-wallets-only"===e.embeddedWallets.mode)throw s("createWallet","onError",r.PrivyErrorCode.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return w({accessToken:T,appConfig:e,privy:a,emitPrivyEvent:s,openModal:p,proxy:f,refreshSessionAndUser:v,recoverEmbeddedWallet:d,setModalData:c,user:i,walletIndex:y.walletIndex,chainType:h,setUser:u,additionalSigners:W})}let g=y&&"createAdditional"in y&&y.createAdditional,A=l.getPrivyWalletsWithFilter(i,{chainType:h});if(A[0]&&!g)throw s("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");let P=(e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null))(A)?.walletIndex??-1,x=m??(g?void 0:await o.generateWalletIdempotencyKey(i.id,h));return w({accessToken:T,appConfig:e,privy:a,emitPrivyEvent:s,openModal:p,proxy:f,recoverEmbeddedWallet:d,setModalData:c,user:i,walletIndex:P+1,chainType:h,refreshSessionAndUser:v,setUser:u,idempotencyKey:x,additionalSigners:W})};let w=async({accessToken:e,appConfig:t,privy:n,emitPrivyEvent:a,proxy:o,refreshSessionAndUser:s,recoverEmbeddedWallet:d,user:c,walletIndex:p,setModalData:u,openModal:y,chainType:E,setUser:v,idempotencyKey:m,additionalSigners:w})=>{if(p<0)throw a("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${p}) is invalid.`);let f=i.getPrivyPrimaryWallet(c);if(p>0&&!f)throw a("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw a("createWallet","onError",r.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!f&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await W({emitPrivyEvent:a,setModalData:u,openModal:y,chainType:E});let T=l.getPrivyWalletsWithFilter(c,{chainType:E,walletIndex:p})[0];if(T)return{user:c,account:T};if(0===p&&!o)return W({emitPrivyEvent:a,setModalData:u,openModal:y,chainType:E});if(!o)throw a("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return h({appConfig:t,walletIndex:p,chainType:E,user:c,accessToken:e,proxy:o,refreshSessionAndUser:s,privy:n,recoverEmbeddedWallet:d,setUser:v,idempotencyKey:m,additionalSigners:w})},W=async({emitPrivyEvent:e,setModalData:t,openModal:n,chainType:i})=>new Promise(((a,o)=>{t({createWallet:{onSuccess:({user:r,account:t})=>{e("createWallet","onSuccess",{wallet:t}),a({user:r,account:t})},onFailure:t=>{e("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),o(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===i,shouldCreateSol:"solana"===i}}),n("EmbeddedWalletOnAccountCreateScreen")}));const f=()=>{let e=s.useAppConfig(),t=a.useEmitPrivyEvent(),{setModalData:n}=i.usePrivyModal(),{initializeWalletProxy:o,recoverEmbeddedWallet:l,setUser:d,openModal:c,refreshSessionAndUser:p,privy:u,client:y}=r.usePrivyInternal();return{create:async({chainType:i,options:a,latestUser:E,idempotencyKey:v})=>{let h=E;if(h||(h=await p()),!h)throw t("createWallet","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await m({appConfig:e,privy:u,getAccessToken:()=>y.getAccessToken(),refreshSessionAndUser:p,initializeWalletProxy:o,user:h,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:n,openModal:c,setUser:d,options:a,timeoutDuration:s.WALLET_PROXY_TIMEOUT,chainType:i,idempotencyKey:v,additionalSigners:a?.signers})}}};function T(e){let{create:r}=f();return a.usePrivyEventSubscription("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const g=async({emitPrivyEvent:e,getAccessToken:t,initializeWalletProxy:n,refreshSessionAndUser:a,user:o,appConfig:l},{privateKey:s,chainType:d,additionalSigners:c})=>{if(!o)throw e("linkAccount","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r.PrivyClientError("User must be authenticated before linking an account.");let p="user-controlled-server-wallets-only"===l.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===p)throw new r.PrivyClientError("Specifying additionalSigners is only supported for TEE execution and this app uses on-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[u,y]=await Promise.all([t(),n(15e3)]);if(!y||!u)throw e("linkAccount","onError",r.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r.PrivyClientError("User must be authenticated before linking an account.");let{address:E}=await y.importWallet({privateKey:s,accessToken:u,chainType:d,mode:p,additionalSigners:c}),v=await a(),h="solana"===d?i.getImportedPrivySolanaWallets(v):i.getImportedPrivyEthereumWallets(v),m=h?.find((e=>e.address===E));if(!m)throw e("createWallet","onError",r.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return e("createWallet","onSuccess",{wallet:m}),m},A=()=>{let{user:e}=i.usePrivyContext(),{client:n,refreshSessionAndUser:o,initializeWalletProxy:l}=r.usePrivyInternal(),d=a.useEmitPrivyEvent(),c=s.useAppConfig();return{importWallet:t.useCallback((({privateKey:r,additionalSigners:t})=>g({getAccessToken:()=>n.getAccessToken(),user:e,initializeWalletProxy:l,refreshSessionAndUser:o,emitPrivyEvent:d,appConfig:c},{privateKey:r,chainType:"ethereum",additionalSigners:t})),[e,n,o,l,d,c])}};exports.SOLANA_FUNDING_PLUGIN_ID=E,exports.SOLANA_LEDGER_PLUGIN_ID=v,exports.buildTargetUrl=function(t,n){let i=d(n);if(e.isMobile&&e.isAndroid&&i.universalLink)return y(i.universalLink,t);if(i.deepLink)return u(i.deepLink,t);if(i.universalLink)return y(i.universalLink,t);throw new r.PrivyClientError(`Unsupported wallet ${n.id}`)},exports.buildUniversalFallbackUrl=function(e,r){let t=d(r);if(t.universalLink)return y(t.universalLink,e)},exports.createWalletAtIndex=h,exports.deleteWalletConnectDeepLink=function(){try{localStorage.removeItem(c)}catch{}},exports.importWallet=g,exports.openHref=function(e,r){window.open(e,r,"noreferrer noopener")},exports.prepareSiwsMessageWithNonce=({address:e,nonce:r})=>`${window.location.host} wants you to sign in with your Solana account:\n${e}\n\n${`You are proving you own ${e}.`}\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: mainnet\nNonce: ${r}\nIssued At: ${(new Date).toISOString()}\nResources:\n- https://privy.io`,exports.removeWalletConnectDeepLink=function(){try{localStorage.removeItem(c)}catch{}},exports.setWalletConnectDeepLink=function({href:e,name:r}){try{localStorage.setItem(c,JSON.stringify({href:e,name:r}))}catch{}},exports.useCreateWallet=T,exports.useCreateWalletInternal=f,exports.useImportWallet=A,exports.usePrivy=()=>{let{importWallet:e}=A(),{exportWallet:r}=n.useExportWallet(),{createWallet:a}=T();return{...t.useContext(i.PrivyContext),importWallet:e,createWallet:a,exportWallet:r}};
@@ -1 +1 @@
1
- "use strict";var e=require("@solana/kit"),r=require("react"),n=require("./context-RXM4aLoW.js"),t=require("./internal-context-BJv4f_bO.js");function o(r){return new Uint8Array(e.getTransactionDecoder().decode(r).messageBytes)}const a=(...e)=>{if("undefined"==typeof Buffer)throw new t.PrivyClientError("Buffer is not defined.",void 0,t.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};async function i({rpcSubscriptions:e,signature:r,timeout:n}){let t=new AbortController,o=await e.signatureNotifications(r,{commitment:"confirmed"}).subscribe({abortSignal:t.signal}),a=await Promise.race([new Promise((e=>{setTimeout((()=>{t.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let r of o){if(t.abort(),r.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(a instanceof Error)throw a}function s({rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o}){let s=function({rpc:r,rpcSubscriptions:n}){return async t=>new Promise((async(o,s)=>{try{let s=await r.sendTransaction(a(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await i({rpcSubscriptions:n,signature:s,timeout:1e4}),o({signature:new Uint8Array(e.getBase58Encoder().encode(s))})}catch(e){s(e)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o,sendAndConfirmTransaction:s}}exports.bufferFrom=a,exports.fetchTransactionEstimatedFees=async function({solanaClient:r,tx:n}){let t=e.getBase64Decoder().decode(o(n)),{value:a}=await r.rpc.getFeeForMessage(t).send();return a??0n},exports.getSolanaRpcClient=s,exports.getTransactionMessageBytes=o,exports.simulateTransaction=async function r({solanaClient:n,tx:t,replaceRecentBlockhash:o}){let{value:a}=await n.rpc.simulateTransaction(e.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===a.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await r({solanaClient:n,tx:t,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}},exports.useSolanaRpcClient=function(){let e=n.useAppConfig(),t=r.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((r=>[r,e.solanaRpcs[r]?s({chain:r,rpc:e.solanaRpcs[r].rpc,rpcSubscriptions:e.solanaRpcs[r].rpcSubscriptions,blockExplorerUrl:e.solanaRpcs[r].blockExplorerUrl??`https://explorer.solana.com?cluster=${r.replace("solana:","")}`}):null])))),[e.solanaRpcs]);return r.useCallback((e=>{if(!t[e])throw Error(`No RPC configuration found for chain ${e}`);return t[e]}),[t])},exports.waitForSignatureConfirmation=i;
1
+ "use strict";var e=require("@solana/kit"),r=require("react"),n=require("./context-CxOMsWEC.js"),t=require("./internal-context-BJv4f_bO.js");function o(r){return new Uint8Array(e.getTransactionDecoder().decode(r).messageBytes)}const a=(...e)=>{if("undefined"==typeof Buffer)throw new t.PrivyClientError("Buffer is not defined.",void 0,t.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};async function i({rpcSubscriptions:e,signature:r,timeout:n}){let t=new AbortController,o=await e.signatureNotifications(r,{commitment:"confirmed"}).subscribe({abortSignal:t.signal}),a=await Promise.race([new Promise((e=>{setTimeout((()=>{t.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let r of o){if(t.abort(),r.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(a instanceof Error)throw a}function s({rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o}){let s=function({rpc:r,rpcSubscriptions:n}){return async t=>new Promise((async(o,s)=>{try{let s=await r.sendTransaction(a(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await i({rpcSubscriptions:n,signature:s,timeout:1e4}),o({signature:new Uint8Array(e.getBase58Encoder().encode(s))})}catch(e){s(e)}}))}({rpc:r,rpcSubscriptions:n});return{rpc:r,rpcSubscriptions:n,chain:t,blockExplorerUrl:o,sendAndConfirmTransaction:s}}exports.bufferFrom=a,exports.fetchTransactionEstimatedFees=async function({solanaClient:r,tx:n}){let t=e.getBase64Decoder().decode(o(n)),{value:a}=await r.rpc.getFeeForMessage(t).send();return a??0n},exports.getSolanaRpcClient=s,exports.getTransactionMessageBytes=o,exports.simulateTransaction=async function r({solanaClient:n,tx:t,replaceRecentBlockhash:o}){let{value:a}=await n.rpc.simulateTransaction(e.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:o}).send();if("BlockhashNotFound"===a.err&&o)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await r({solanaClient:n,tx:t,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}},exports.useSolanaRpcClient=function(){let e=n.useAppConfig(),t=r.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((r=>[r,e.solanaRpcs[r]?s({chain:r,rpc:e.solanaRpcs[r].rpc,rpcSubscriptions:e.solanaRpcs[r].rpcSubscriptions,blockExplorerUrl:e.solanaRpcs[r].blockExplorerUrl??`https://explorer.solana.com?cluster=${r.replace("solana:","")}`}):null])))),[e.solanaRpcs]);return r.useCallback((e=>{if(!t[e])throw Error(`No RPC configuration found for chain ${e}`);return t[e]}),[t])},exports.waitForSignatureConfirmation=i;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("viem"),t=require("./get-entropy-details-for-user-CfpHdOOL.js"),a=require("./internal-context-BJv4f_bO.js");exports.useWalletBalance=function({rpcConfig:n,appId:c,address:s,chain:i}){let{chains:o}=a.usePrivyInternal(),[l,u]=e.useState(0n),[d,p]=e.useState(!1),f=e.useMemo((()=>{let e=i||o[0];if(e)return r.createPublicClient({chain:i,transport:r.http(t.getJsonRpcEndpointFromChain(e,n,c))})}),[i,n,c]),h=e.useCallback((async()=>{if(!s||!f)return;p(!0);let e=await f.getBalance({address:s}).catch(console.error);return e?(u(e),p(!1),e):void 0}),[f,s,u]);return e.useEffect((()=>{h().catch(console.error)}),[]),{balance:l,isLoading:d,reloadBalance:h}};
1
+ "use strict";var e=require("react"),r=require("viem"),t=require("./get-entropy-details-for-user-DvVkUB6X.js"),a=require("./internal-context-BJv4f_bO.js");exports.useWalletBalance=function({rpcConfig:n,appId:c,address:s,chain:i}){let{chains:o}=a.usePrivyInternal(),[l,u]=e.useState(0n),[d,p]=e.useState(!1),f=e.useMemo((()=>{let e=i||o[0];if(e)return r.createPublicClient({chain:i,transport:r.http(t.getJsonRpcEndpointFromChain(e,n,c))})}),[i,n,c]),h=e.useCallback((async()=>{if(!s||!f)return;p(!0);let e=await f.getBalance({address:s}).catch(console.error);return e?(u(e),p(!1),e):void 0}),[f,s,u]);return e.useEffect((()=>{h().catch(console.error)}),[]),{balance:l,isLoading:d,reloadBalance:h}};
@@ -1 +1 @@
1
- "use strict";var e=require("@solana/kit"),n=require("react"),t=require("@privy-io/js-sdk-core"),i=require("./internal-context-BJv4f_bO.js"),s=require("./privy-context-CJMUK9qU.js"),a=require("./usePrivy-NgERWVoo.js"),r=require("./get-entropy-details-for-user-CfpHdOOL.js"),o=require("eventemitter3"),l=require("@scure/base"),c=require("./context-RXM4aLoW.js"),d=require("./use-sign-with-user-signer-Cu_6Bx7m.js"),u=require("./useSolanaRpcClient-H6-9qxr1.js"),g=require("@privy-io/encoding"),h=require("./use-export-wallet-D-UqGx7Q.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=/*#__PURE__*/p(o);const f=["solana:mainnet","solana:devnet","solana:testnet"];function v(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var A=0,w="__private_"+A+++"__implementation";class b extends y.default{setImplementation(e){v(this,w)[w]=e}async signMessage(e){return v(this,w)[w].signMessage(e)}async signAndSendTransaction(e){return v(this,w)[w].signAndSendTransaction(e)}async signTransaction(e){return v(this,w)[w].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,w,{writable:!0,value:void 0}),v(this,w)[w]=e}}function E(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var T=0;function m(e){return"__private_"+T+++"_"+e}var S=/*#__PURE__*/m("_address"),P=/*#__PURE__*/m("_publicKey"),W=/*#__PURE__*/m("_chains"),O=/*#__PURE__*/m("_features"),I=/*#__PURE__*/m("_label"),_=/*#__PURE__*/m("_icon");class C{get address(){return E(this,S)[S]}get publicKey(){return E(this,P)[P].slice()}get chains(){return E(this,W)[W].slice()}get features(){return E(this,O)[O].slice()}get label(){return E(this,I)[I]}get icon(){return E(this,_)[_]}constructor({address:e,publicKey:n,label:t,icon:i}){Object.defineProperty(this,S,{writable:!0,value:void 0}),Object.defineProperty(this,P,{writable:!0,value:void 0}),Object.defineProperty(this,W,{writable:!0,value:void 0}),Object.defineProperty(this,O,{writable:!0,value:void 0}),Object.defineProperty(this,I,{writable:!0,value:void 0}),Object.defineProperty(this,_,{writable:!0,value:void 0}),E(this,S)[S]=e,E(this,P)[P]=n,E(this,W)[W]=f,E(this,I)[I]=t,E(this,_)[_]=i,E(this,O)[O]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===C&&Object.freeze(this)}}function M(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var F=0;function j(e){return"__private_"+F+++"_"+e}var U=/*#__PURE__*/j("_listeners"),D=/*#__PURE__*/j("_version"),N=/*#__PURE__*/j("_name"),B=/*#__PURE__*/j("_icon"),x=/*#__PURE__*/j("_injection"),R=/*#__PURE__*/j("_isPrivyWallet"),L=/*#__PURE__*/j("_accounts"),q=/*#__PURE__*/j("_on"),V=/*#__PURE__*/j("_emit"),Q=/*#__PURE__*/j("_off"),H=/*#__PURE__*/j("_connected"),G=/*#__PURE__*/j("_connect"),K=/*#__PURE__*/j("_disconnect"),J=/*#__PURE__*/j("_signMessage"),Y=/*#__PURE__*/j("_signAndSendTransaction"),k=/*#__PURE__*/j("_signTransaction");function Z(e,...n){M(this,U)[U][e]?.forEach((e=>e.apply(null,n)))}function z(e,n){M(this,U)[U][e]=M(this,U)[U][e]?.filter((e=>n!==e))}function X(n,t,i){let s=structuredClone(e.getTransactionDecoder().decode(n)),a=e.address(t);return a in s.signatures&&(s.signatures[a]=i),new Uint8Array(e.getTransactionEncoder().encode(s))}function $(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:o,recoverEmbeddedWallet:l,openModal:c,privy:g,client:h}=i.usePrivyInternal(),{user:p}=a.usePrivy(),{setModalData:y}=s.usePrivyModal(),{signWithUserSigner:f}=d.useSignWithUserSigner();return{signMessage:({message:a,address:d,options:v})=>new Promise((async(A,w)=>{let b=s.getPrivyWalletWithAddress(p,d);if("privy"!==b?.walletClientType)return void w(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:E,entropyIdVerifier:T}=r.getEntropyDetailsForUser(p,b),m=s.getIsUnifiedWallet(b),S=u.bufferFrom(a).toString("base64");if(S.length<1)return void w(new i.PrivyClientError("Message must be a non-empty string",void 0,i.PrivyErrorCode.INVALID_MESSAGE));let P=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let i=await h.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let s=n??await o(15e3);if(!s)throw Error("Failed to initialize embedded wallet proxy.");if(!await l({address:b.address}))throw Error("Unable to connect to wallet");if(m){let n=await t.rpc(g,f,{chain_type:"solana",method:"signMessage",params:{message:S,encoding:"base64"},wallet_id:b.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await s.rpc({accessToken:i,entropyId:E,entropyIdVerifier:T,chainType:"solana",hdWalletIndex:b.walletIndex??0,requesterAppId:v?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:S}}});e=n.data.signature}return e};if(e({showWalletUIs:v?.uiOptions?.showWalletUIs}))try{let e=await P(),n=new Uint8Array(u.bufferFrom(e,"base64"));A({signature:n})}catch(e){w(e)}else y({signMessage:{method:"solana_signMessage",data:S,confirmAndSign:P,onSuccess:e=>{A({signature:new Uint8Array(u.bufferFrom(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:v?.uiOptions??{}},connectWallet:{recoveryMethod:b.recoveryMethod,connectingWalletAddress:b.address,entropyId:E,entropyIdVerifier:T,isUnifiedWallet:m,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{w(new i.PrivyClientError("Failed to connect to wallet",e,i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),c("EmbeddedWalletConnectingScreen")}))}}function ee(){let{isHeadlessSigning:e,openModal:n,privy:o}=i.usePrivyInternal(),{setModalData:l}=s.usePrivyModal(),{signMessage:c}=$(),{signWithUserSigner:h}=d.useSignWithUserSigner(),{user:p}=a.usePrivy();return{signTransaction:async({transaction:a,options:d,chain:y="solana:mainnet",address:f})=>{let v=s.getPrivyWalletWithAddress(p,f);if("privy"!==v?.walletClientType)throw new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let A=s.getIsUnifiedWallet(v);async function w(e){if(A){let n=await t.rpc(o,h,{chain_type:"solana",method:"signTransaction",params:{transaction:g.encoding.base64.fromBytes(e),encoding:"base64"},wallet_id:v.id});if(n.data&&"signed_transaction"in n.data)return{signedTransaction:new Uint8Array(g.encoding.base64.toBytes(n.data.signed_transaction))};throw Error("Failed to sign transaction")}let{signature:n}=await c({message:u.getTransactionMessageBytes(e),address:f,options:{...d,uiOptions:{...d?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:X(e,f,n)}}return e({showWalletUIs:d?.uiOptions?.showWalletUIs})?w(a):new Promise((async(e,t)=>{let{entropyId:s,entropyIdVerifier:o}=r.getEntropyDetailsForUser(p,v);function c(e){return n=>{n instanceof i.PrivyClientError?t(n):t(new i.PrivyClientError("Failed to connect to wallet",n,e))}}let u={account:v,transaction:a,chain:y,signOnly:!0,uiOptions:d?.uiOptions||{},onConfirm:w,onSuccess:e,onFailure:c(i.PrivyErrorCode.TRANSACTION_FAILURE)};l({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:s,entropyIdVerifier:o,isUnifiedWallet:A,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:c(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:u}),n("EmbeddedWalletConnectingScreen")}))}}}let ne=new b({signTransaction:i.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:i.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:i.notImplementedWithMessage("signMessage was not injected")}),te=new class{get version(){return M(this,D)[D]}get name(){return M(this,N)[N]}get icon(){return M(this,B)[B]}get chains(){return f.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:M(this,G)[G]},"standard:disconnect":{version:"1.0.0",disconnect:M(this,K)[K]},"standard:events":{version:"1.0.0",on:M(this,q)[q]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:M(this,Y)[Y]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:M(this,k)[k]},"solana:signMessage":{version:"1.0.0",signMessage:M(this,J)[J]},"privy:":{privy:{signMessage:M(this,x)[x].signMessage,signTransaction:M(this,x)[x].signTransaction,signAndSendTransaction:M(this,x)[x].signAndSendTransaction}}}}get accounts(){return M(this,L)[L].slice()}get isPrivyWallet(){return M(this,R)[R]}constructor({name:e,icon:n,version:t,injection:i,wallets:s}){Object.defineProperty(this,V,{value:Z}),Object.defineProperty(this,Q,{value:z}),Object.defineProperty(this,U,{writable:!0,value:void 0}),Object.defineProperty(this,D,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,K,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),M(this,U)[U]={},M(this,q)[q]=(e,n)=>(M(this,U)[U][e]?.push(n)||(M(this,U)[U][e]=[n]),()=>M(this,Q)[Q](e,n)),M(this,H)[H]=e=>{null!=e&&(M(this,L)[L]=e.map((({address:e})=>new C({address:e,publicKey:l.base58.decode(e)})))),M(this,V)[V]("change",{accounts:this.accounts})},M(this,G)[G]=async()=>(M(this,V)[V]("change",{accounts:this.accounts}),{accounts:this.accounts}),M(this,K)[K]=async()=>{M(this,V)[V]("change",{accounts:this.accounts})},M(this,J)[J]=async(...e)=>{let n=[];for(let{account:t,...i}of e){let{signature:e}=await M(this,x)[x].signMessage({...i,address:t.address});n.push({signedMessage:i.message,signature:e})}return n},M(this,Y)[Y]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await M(this,x)[x].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},M(this,k)[k]=async(...e)=>{let n=[];for(let{transaction:t,account:i,options:s,chain:a}of e){let{signedTransaction:e}=await M(this,x)[x].signTransaction({transaction:t,address:i.address,chain:a||"solana:mainnet",options:s});n.push({signedTransaction:e})}return n},M(this,N)[N]=e,M(this,B)[B]=n,M(this,D)[D]=t,M(this,x)[x]=i,M(this,L)[L]=[],M(this,R)[R]=!0,i.on("accountChanged",M(this,H)[H],this),M(this,H)[H](s)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:ne});function ie(){let{ready:e}=r.useWallets(),{user:o}=a.usePrivy(),{signMessage:g}=$(),{signTransaction:p}=ee(),{signAndSendTransaction:y}=function(){let e=c.useAppConfig(),{isHeadlessSigning:n,openModal:o,privy:g}=i.usePrivyInternal(),{setModalData:p}=s.usePrivyModal(),{signTransaction:y}=ee(),f=u.useSolanaRpcClient(),{user:v}=a.usePrivy(),{signWithUserSigner:A}=d.useSignWithUserSigner();return{signAndSendTransaction:async({transaction:a,address:c,chain:d="solana:mainnet",options:w})=>{let b=s.getPrivyWalletWithAddress(v,c);if("privy"!==b?.walletClientType)throw new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let E=s.getIsUnifiedWallet(b);async function T(e){if(w?.sponsor)return await(async e=>{if(!E)throw new i.PrivyClientError("Sponsoring transactions is only supported for wallets on the TEE stack",i.PrivyErrorCode.INVALID_DATA);let n=await t.rpc(g,A,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:u.bufferFrom(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await f(d).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:b.id});if(n.data&&"hash"in n.data)return{signature:l.base58.decode(n.data.hash)};throw Error("Failed to sign and send transaction")})(e);let{signedTransaction:n}=await y({transaction:e,address:c,chain:d,options:{...w,uiOptions:{...w?.uiOptions,showWalletUIs:!1}}}),{signature:s}=await f(d).sendAndConfirmTransaction(n);return{signature:s}}return n({showWalletUIs:w?.uiOptions?.showWalletUIs})?T(a):new Promise((async(n,t)=>{let s,l,{entropyId:u,entropyIdVerifier:g}=r.getEntropyDetailsForUser(v,b);function y(e){return n=>{n instanceof i.PrivyClientError?t(n):t(new i.PrivyClientError("Failed to connect to wallet",n,e))}}let f={account:b,transaction:a,chain:d,signOnly:!1,uiOptions:w?.uiOptions||{},onConfirm:T,onSuccess:n,onFailure:y(i.PrivyErrorCode.TRANSACTION_FAILURE),isSponsored:!!w?.sponsor},A={recoveryMethod:b.recoveryMethod,connectingWalletAddress:b.address,entropyId:u,entropyIdVerifier:g,isUnifiedWallet:E,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:y(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(s=h.prepareSolanaFundingModalData({address:c,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...w,asset:"native-currency",chain:d},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),l={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:d,destinationAddress:c,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),p({connectWallet:A,standardSignAndSendTransaction:f,funding:s,solanaFundingData:l}),o("EmbeddedWalletConnectingScreen")}))}}}(),f=n.useMemo((()=>{let e=[...s.getPrivySolanaHDWallets(o).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=s.getImportedPrivySolanaWallets(o);return n.length?[...e,...n]:e}),[o]),v=n.useMemo((()=>({signMessage:async({message:e,address:n,options:t})=>await g({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:i})=>await p({transaction:e,address:n,chain:t,options:i}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:i}){let{signature:s}=await y({transaction:e,address:n,chain:t,options:i});return{signature:s}}})),[g,p,y]);return n.useEffect((()=>{ne?.setImplementation(v)}),[v]),n.useEffect((()=>{var n;!e||(n=te.accounts).length===f.length&&n.every(((e,n)=>e.address===f[n]?.address))||ne?.emit("accountChanged",f)}),[e,f]),{ready:e,wallet:te}}function se(){let{client:e}=i.usePrivyInternal(),{ready:t,wallet:s}=ie(),[a,r]=n.useState([]),[o,l]=n.useState([]);return n.useEffect((()=>{let e=[s,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let n=a.flatMap((n=>{let t=()=>l([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),t=e.map((n=>n.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{t.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[a]),n.useEffect((()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[t,e.connectors]),{ready:t,wallets:o}}exports.SOLANA_CHAINS=f,exports.getAddressFromBuffer=function(n){return e.getBase58Decoder().decode(n)},exports.useSolanaStandardWallets=se,exports.useWallets=function(){let{ready:e,wallets:i}=se();return{ready:e,wallets:n.useMemo((()=>i.flatMap((e=>e.accounts.map((n=>new t.ConnectedStandardSolanaWallet({wallet:e,account:n})))))),[i])}};
1
+ "use strict";var e=require("@solana/kit"),n=require("react"),t=require("@privy-io/js-sdk-core"),i=require("./internal-context-BJv4f_bO.js"),s=require("./privy-context-DhB5mzyL.js"),a=require("./usePrivy-U6wMbctH.js"),r=require("./get-entropy-details-for-user-DvVkUB6X.js"),o=require("eventemitter3"),l=require("@scure/base"),c=require("./context-CxOMsWEC.js"),d=require("./use-sign-with-user-signer-Cu_6Bx7m.js"),u=require("./useSolanaRpcClient-aKVbP2JU.js"),g=require("@privy-io/encoding"),h=require("./use-export-wallet-CxvMZkka.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=/*#__PURE__*/p(o);const f=["solana:mainnet","solana:devnet","solana:testnet"];function v(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var A=0,w="__private_"+A+++"__implementation";class b extends y.default{setImplementation(e){v(this,w)[w]=e}async signMessage(e){return v(this,w)[w].signMessage(e)}async signAndSendTransaction(e){return v(this,w)[w].signAndSendTransaction(e)}async signTransaction(e){return v(this,w)[w].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,w,{writable:!0,value:void 0}),v(this,w)[w]=e}}function E(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var T=0;function m(e){return"__private_"+T+++"_"+e}var S=/*#__PURE__*/m("_address"),P=/*#__PURE__*/m("_publicKey"),W=/*#__PURE__*/m("_chains"),O=/*#__PURE__*/m("_features"),I=/*#__PURE__*/m("_label"),_=/*#__PURE__*/m("_icon");class C{get address(){return E(this,S)[S]}get publicKey(){return E(this,P)[P].slice()}get chains(){return E(this,W)[W].slice()}get features(){return E(this,O)[O].slice()}get label(){return E(this,I)[I]}get icon(){return E(this,_)[_]}constructor({address:e,publicKey:n,label:t,icon:i}){Object.defineProperty(this,S,{writable:!0,value:void 0}),Object.defineProperty(this,P,{writable:!0,value:void 0}),Object.defineProperty(this,W,{writable:!0,value:void 0}),Object.defineProperty(this,O,{writable:!0,value:void 0}),Object.defineProperty(this,I,{writable:!0,value:void 0}),Object.defineProperty(this,_,{writable:!0,value:void 0}),E(this,S)[S]=e,E(this,P)[P]=n,E(this,W)[W]=f,E(this,I)[I]=t,E(this,_)[_]=i,E(this,O)[O]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===C&&Object.freeze(this)}}function M(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var F=0;function j(e){return"__private_"+F+++"_"+e}var U=/*#__PURE__*/j("_listeners"),D=/*#__PURE__*/j("_version"),N=/*#__PURE__*/j("_name"),B=/*#__PURE__*/j("_icon"),x=/*#__PURE__*/j("_injection"),R=/*#__PURE__*/j("_isPrivyWallet"),L=/*#__PURE__*/j("_accounts"),q=/*#__PURE__*/j("_on"),V=/*#__PURE__*/j("_emit"),Q=/*#__PURE__*/j("_off"),H=/*#__PURE__*/j("_connected"),G=/*#__PURE__*/j("_connect"),K=/*#__PURE__*/j("_disconnect"),J=/*#__PURE__*/j("_signMessage"),Y=/*#__PURE__*/j("_signAndSendTransaction"),k=/*#__PURE__*/j("_signTransaction");function Z(e,...n){M(this,U)[U][e]?.forEach((e=>e.apply(null,n)))}function z(e,n){M(this,U)[U][e]=M(this,U)[U][e]?.filter((e=>n!==e))}function X(n,t,i){let s=structuredClone(e.getTransactionDecoder().decode(n)),a=e.address(t);return a in s.signatures&&(s.signatures[a]=i),new Uint8Array(e.getTransactionEncoder().encode(s))}function $(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:o,recoverEmbeddedWallet:l,openModal:c,privy:g,client:h}=i.usePrivyInternal(),{user:p}=a.usePrivy(),{setModalData:y}=s.usePrivyModal(),{signWithUserSigner:f}=d.useSignWithUserSigner();return{signMessage:({message:a,address:d,options:v})=>new Promise((async(A,w)=>{let b=s.getPrivyWalletWithAddress(p,d);if("privy"!==b?.walletClientType)return void w(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:E,entropyIdVerifier:T}=r.getEntropyDetailsForUser(p,b),m=s.getIsUnifiedWallet(b),S=u.bufferFrom(a).toString("base64");if(S.length<1)return void w(new i.PrivyClientError("Message must be a non-empty string",void 0,i.PrivyErrorCode.INVALID_MESSAGE));let P=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let i=await h.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let s=n??await o(15e3);if(!s)throw Error("Failed to initialize embedded wallet proxy.");if(!await l({address:b.address}))throw Error("Unable to connect to wallet");if(m){let n=await t.rpc(g,f,{chain_type:"solana",method:"signMessage",params:{message:S,encoding:"base64"},wallet_id:b.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await s.rpc({accessToken:i,entropyId:E,entropyIdVerifier:T,chainType:"solana",hdWalletIndex:b.walletIndex??0,requesterAppId:v?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:S}}});e=n.data.signature}return e};if(e({showWalletUIs:v?.uiOptions?.showWalletUIs}))try{let e=await P(),n=new Uint8Array(u.bufferFrom(e,"base64"));A({signature:n})}catch(e){w(e)}else y({signMessage:{method:"solana_signMessage",data:S,confirmAndSign:P,onSuccess:e=>{A({signature:new Uint8Array(u.bufferFrom(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:v?.uiOptions??{}},connectWallet:{recoveryMethod:b.recoveryMethod,connectingWalletAddress:b.address,entropyId:E,entropyIdVerifier:T,isUnifiedWallet:m,onCompleteNavigateTo:"SignRequestScreen",onFailure:e=>{w(new i.PrivyClientError("Failed to connect to wallet",e,i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),c("EmbeddedWalletConnectingScreen")}))}}function ee(){let{isHeadlessSigning:e,openModal:n,privy:o}=i.usePrivyInternal(),{setModalData:l}=s.usePrivyModal(),{signMessage:c}=$(),{signWithUserSigner:h}=d.useSignWithUserSigner(),{user:p}=a.usePrivy();return{signTransaction:async({transaction:a,options:d,chain:y="solana:mainnet",address:f})=>{let v=s.getPrivyWalletWithAddress(p,f);if("privy"!==v?.walletClientType)throw new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let A=s.getIsUnifiedWallet(v);async function w(e){if(A){let n=await t.rpc(o,h,{chain_type:"solana",method:"signTransaction",params:{transaction:g.encoding.base64.fromBytes(e),encoding:"base64"},wallet_id:v.id});if(n.data&&"signed_transaction"in n.data)return{signedTransaction:new Uint8Array(g.encoding.base64.toBytes(n.data.signed_transaction))};throw Error("Failed to sign transaction")}let{signature:n}=await c({message:u.getTransactionMessageBytes(e),address:f,options:{...d,uiOptions:{...d?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:X(e,f,n)}}return e({showWalletUIs:d?.uiOptions?.showWalletUIs})?w(a):new Promise((async(e,t)=>{let{entropyId:s,entropyIdVerifier:o}=r.getEntropyDetailsForUser(p,v);function c(e){return n=>{n instanceof i.PrivyClientError?t(n):t(new i.PrivyClientError("Failed to connect to wallet",n,e))}}let u={account:v,transaction:a,chain:y,signOnly:!0,uiOptions:d?.uiOptions||{},onConfirm:w,onSuccess:e,onFailure:c(i.PrivyErrorCode.TRANSACTION_FAILURE)};l({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:s,entropyIdVerifier:o,isUnifiedWallet:A,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:c(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:u}),n("EmbeddedWalletConnectingScreen")}))}}}let ne=new b({signTransaction:i.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:i.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:i.notImplementedWithMessage("signMessage was not injected")}),te=new class{get version(){return M(this,D)[D]}get name(){return M(this,N)[N]}get icon(){return M(this,B)[B]}get chains(){return f.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:M(this,G)[G]},"standard:disconnect":{version:"1.0.0",disconnect:M(this,K)[K]},"standard:events":{version:"1.0.0",on:M(this,q)[q]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:M(this,Y)[Y]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:M(this,k)[k]},"solana:signMessage":{version:"1.0.0",signMessage:M(this,J)[J]},"privy:":{privy:{signMessage:M(this,x)[x].signMessage,signTransaction:M(this,x)[x].signTransaction,signAndSendTransaction:M(this,x)[x].signAndSendTransaction}}}}get accounts(){return M(this,L)[L].slice()}get isPrivyWallet(){return M(this,R)[R]}constructor({name:e,icon:n,version:t,injection:i,wallets:s}){Object.defineProperty(this,V,{value:Z}),Object.defineProperty(this,Q,{value:z}),Object.defineProperty(this,U,{writable:!0,value:void 0}),Object.defineProperty(this,D,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,K,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),M(this,U)[U]={},M(this,q)[q]=(e,n)=>(M(this,U)[U][e]?.push(n)||(M(this,U)[U][e]=[n]),()=>M(this,Q)[Q](e,n)),M(this,H)[H]=e=>{null!=e&&(M(this,L)[L]=e.map((({address:e})=>new C({address:e,publicKey:l.base58.decode(e)})))),M(this,V)[V]("change",{accounts:this.accounts})},M(this,G)[G]=async()=>(M(this,V)[V]("change",{accounts:this.accounts}),{accounts:this.accounts}),M(this,K)[K]=async()=>{M(this,V)[V]("change",{accounts:this.accounts})},M(this,J)[J]=async(...e)=>{let n=[];for(let{account:t,...i}of e){let{signature:e}=await M(this,x)[x].signMessage({...i,address:t.address});n.push({signedMessage:i.message,signature:e})}return n},M(this,Y)[Y]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await M(this,x)[x].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},M(this,k)[k]=async(...e)=>{let n=[];for(let{transaction:t,account:i,options:s,chain:a}of e){let{signedTransaction:e}=await M(this,x)[x].signTransaction({transaction:t,address:i.address,chain:a||"solana:mainnet",options:s});n.push({signedTransaction:e})}return n},M(this,N)[N]=e,M(this,B)[B]=n,M(this,D)[D]=t,M(this,x)[x]=i,M(this,L)[L]=[],M(this,R)[R]=!0,i.on("accountChanged",M(this,H)[H],this),M(this,H)[H](s)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:ne});function ie(){let{ready:e}=r.useWallets(),{user:o}=a.usePrivy(),{signMessage:g}=$(),{signTransaction:p}=ee(),{signAndSendTransaction:y}=function(){let e=c.useAppConfig(),{isHeadlessSigning:n,openModal:o,privy:g}=i.usePrivyInternal(),{setModalData:p}=s.usePrivyModal(),{signTransaction:y}=ee(),f=u.useSolanaRpcClient(),{user:v}=a.usePrivy(),{signWithUserSigner:A}=d.useSignWithUserSigner();return{signAndSendTransaction:async({transaction:a,address:c,chain:d="solana:mainnet",options:w})=>{let b=s.getPrivyWalletWithAddress(v,c);if("privy"!==b?.walletClientType)throw new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let E=s.getIsUnifiedWallet(b);async function T(e){if(w?.sponsor)return await(async e=>{if(!E)throw new i.PrivyClientError("Sponsoring transactions is only supported for wallets on the TEE stack",i.PrivyErrorCode.INVALID_DATA);let n=await t.rpc(g,A,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:u.bufferFrom(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await f(d).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:b.id});if(n.data&&"hash"in n.data)return{signature:l.base58.decode(n.data.hash)};throw Error("Failed to sign and send transaction")})(e);let{signedTransaction:n}=await y({transaction:e,address:c,chain:d,options:{...w,uiOptions:{...w?.uiOptions,showWalletUIs:!1}}}),{signature:s}=await f(d).sendAndConfirmTransaction(n);return{signature:s}}return n({showWalletUIs:w?.uiOptions?.showWalletUIs})?T(a):new Promise((async(n,t)=>{let s,l,{entropyId:u,entropyIdVerifier:g}=r.getEntropyDetailsForUser(v,b);function y(e){return n=>{n instanceof i.PrivyClientError?t(n):t(new i.PrivyClientError("Failed to connect to wallet",n,e))}}let f={account:b,transaction:a,chain:d,signOnly:!1,uiOptions:w?.uiOptions||{},onConfirm:T,onSuccess:n,onFailure:y(i.PrivyErrorCode.TRANSACTION_FAILURE),isSponsored:!!w?.sponsor},A={recoveryMethod:b.recoveryMethod,connectingWalletAddress:b.address,entropyId:u,entropyIdVerifier:g,isUnifiedWallet:E,onCompleteNavigateTo:"StandardSignAndSendTransactionScreen",onFailure:y(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(s=h.prepareSolanaFundingModalData({address:c,appConfig:e,methodScreen:"FundingMethodSelectionScreen",fundWalletConfig:{...w,asset:"native-currency",chain:d},externalSolanaFundingScreen:"FundSolWalletWithExternalSolanaWallet"}),l={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:d,destinationAddress:c,afterSuccessScreen:"StandardSignAndSendTransactionScreen",sourceWalletData:void 0}),p({connectWallet:A,standardSignAndSendTransaction:f,funding:s,solanaFundingData:l}),o("EmbeddedWalletConnectingScreen")}))}}}(),f=n.useMemo((()=>{let e=[...s.getPrivySolanaHDWallets(o).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=s.getImportedPrivySolanaWallets(o);return n.length?[...e,...n]:e}),[o]),v=n.useMemo((()=>({signMessage:async({message:e,address:n,options:t})=>await g({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:i})=>await p({transaction:e,address:n,chain:t,options:i}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:i}){let{signature:s}=await y({transaction:e,address:n,chain:t,options:i});return{signature:s}}})),[g,p,y]);return n.useEffect((()=>{ne?.setImplementation(v)}),[v]),n.useEffect((()=>{var n;!e||(n=te.accounts).length===f.length&&n.every(((e,n)=>e.address===f[n]?.address))||ne?.emit("accountChanged",f)}),[e,f]),{ready:e,wallet:te}}function se(){let{client:e}=i.usePrivyInternal(),{ready:t,wallet:s}=ie(),[a,r]=n.useState([]),[o,l]=n.useState([]);return n.useEffect((()=>{let e=[s,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let n=a.flatMap((n=>{let t=()=>l([...e]);return n.on("walletsUpdated",t),{connector:n,off:t}})),t=e.map((n=>n.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{t.forEach((e=>e?.())),n.forEach((({connector:e,off:n})=>e.off("walletsUpdated",n)))}}),[a]),n.useEffect((()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[t,e.connectors]),{ready:t,wallets:o}}exports.SOLANA_CHAINS=f,exports.getAddressFromBuffer=function(n){return e.getBase58Decoder().decode(n)},exports.useSolanaStandardWallets=se,exports.useWallets=function(){let{ready:e,wallets:i}=se();return{ready:e,wallets:n.useMemo((()=>i.flatMap((e=>e.accounts.map((n=>new t.ConnectedStandardSolanaWallet({wallet:e,account:n})))))),[i])}};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{HelpCircle as o}from"lucide-react";import{u as e}from"./context-aGvo4MVQ.mjs";import{u as r}from"./internal-context-C4ZqP8IF.mjs";import{a as i}from"./privy-context-CkPtrpbt.mjs";import{S as a}from"./ScreenLayout-B6n5Feil.mjs";import"react";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./ModalHeader-Duq1Izpl.mjs";import"styled-components";import"./useActiveWallet-By6UNJY1.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-Db8GdSAT.mjs";import"./get-entropy-details-for-user-DkZdXKpr.mjs";import"eventemitter3";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-Ce8BE24H.mjs";import"./index-Dq_xe9dz.mjs";const n=({title:e="Account not found",subtitle:r,appName:i="this app",ctaText:n="Try logging in again",onRetry:m})=>/*#__PURE__*/t(a,{title:e,subtitle:r||`Please try logging in again or go to ${i} to create an account.`,icon:o,iconVariant:"warning",primaryCta:{label:n,onClick:m},watermark:!0}),m={component:()=>{let{navigate:o,setModalData:a,data:m}=i(),c=e(),{getAuthMeta:p,client:s}=r();/*#__PURE__*/return t(n,{appName:c?.name,onRetry:()=>{let t=p();a({...m,login:{...m?.login,...t?.disableSignup?{disableSignup:!0}:{}}}),s?.authFlow&&(s.authFlow=void 0),o("LandingScreen")}})}};export{m as AccountNotFoundScreen,n as AccountNotFoundScreenView,m as default};
1
+ import{jsx as t}from"react/jsx-runtime";import{HelpCircle as o}from"lucide-react";import{u as e}from"./context-DanhWeBg.mjs";import{u as r}from"./internal-context-C4ZqP8IF.mjs";import{a as i}from"./privy-context-pimLCE3L.mjs";import{S as a}from"./ScreenLayout-D7WpqBtE.mjs";import"react";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./ModalHeader-DnjCPU3j.mjs";import"styled-components";import"./useActiveWallet-DFp38Dx-.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-9if9oowB.mjs";import"./get-entropy-details-for-user-BGqBIfqR.mjs";import"eventemitter3";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-BHWyivgu.mjs";import"./index-Dq_xe9dz.mjs";const n=({title:e="Account not found",subtitle:r,appName:i="this app",ctaText:n="Try logging in again",onRetry:m})=>/*#__PURE__*/t(a,{title:e,subtitle:r||`Please try logging in again or go to ${i} to create an account.`,icon:o,iconVariant:"warning",primaryCta:{label:n,onClick:m},watermark:!0}),m={component:()=>{let{navigate:o,setModalData:a,data:m}=i(),c=e(),{getAuthMeta:p,client:s}=r();/*#__PURE__*/return t(n,{appName:c?.name,onRetry:()=>{let t=p();a({...m,login:{...m?.login,...t?.disableSignup?{disableSignup:!0}:{}}}),s?.authFlow&&(s.authFlow=void 0),o("LandingScreen")}})}};export{m as AccountNotFoundScreen,n as AccountNotFoundScreenView,m as default};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import{Check as t,Copy as i}from"lucide-react";import{useState as n,useEffect as l}from"react";import{styled as s}from"styled-components";import{v as a}from"./use-export-wallet-Db8GdSAT.mjs";import{S as c}from"./ModalHeader-Duq1Izpl.mjs";const p=({address:s,showCopyIcon:p,url:h,className:u})=>{let[g,x]=n(!1);function y(e){e.stopPropagation(),navigator.clipboard.writeText(s).then((()=>x(!0))).catch(console.error)}return l((()=>{if(g){let e=setTimeout((()=>x(!1)),3e3);return()=>clearTimeout(e)}}),[g]),/*#__PURE__*/e(d,h?{children:[/*#__PURE__*/r(f,{title:s,className:u,href:`${h}/address/${s}`,target:"_blank",children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(t,{size:16})]}:{children:["Copy",/*#__PURE__*/r(i,{size:16})]})})]}:{children:[/*#__PURE__*/r(m,{title:s,className:u,children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem",fontSize:"14px"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(t,{size:14})]}:{children:["Copy",/*#__PURE__*/r(i,{size:14})]})})]})};let d=s.span`
1
+ import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import{Check as t,Copy as i}from"lucide-react";import{useState as n,useEffect as l}from"react";import{styled as s}from"styled-components";import{v as a}from"./use-export-wallet-9if9oowB.mjs";import{S as c}from"./ModalHeader-DnjCPU3j.mjs";const p=({address:s,showCopyIcon:p,url:h,className:u})=>{let[g,x]=n(!1);function y(e){e.stopPropagation(),navigator.clipboard.writeText(s).then((()=>x(!0))).catch(console.error)}return l((()=>{if(g){let e=setTimeout((()=>x(!1)),3e3);return()=>clearTimeout(e)}}),[g]),/*#__PURE__*/e(d,h?{children:[/*#__PURE__*/r(f,{title:s,className:u,href:`${h}/address/${s}`,target:"_blank",children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(t,{size:16})]}:{children:["Copy",/*#__PURE__*/r(i,{size:16})]})})]}:{children:[/*#__PURE__*/r(m,{title:s,className:u,children:a(s)}),p&&/*#__PURE__*/r(c,{onClick:y,size:"sm",style:{gap:"0.375rem",fontSize:"14px"},children:/*#__PURE__*/e(o,g?{children:["Copied",/*#__PURE__*/r(t,{size:14})]}:{children:["Copy",/*#__PURE__*/r(i,{size:14})]})})]})};let d=s.span`
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  gap: 0.5rem;
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{FileCheck as r,ExternalLink as o}from"lucide-react";import"react";import{styled as i}from"styled-components";import{a as s}from"./ModalHeader-Duq1Izpl.mjs";import{u as a}from"./context-aGvo4MVQ.mjs";import{u as n}from"./internal-context-C4ZqP8IF.mjs";import{u as m,a as l}from"./privy-context-CkPtrpbt.mjs";import{s as c}from"./shouldProceedtoEmbeddedWalletCreationFlow-BSnOzrud.mjs";import{S as p}from"./ScreenLayout-B6n5Feil.mjs";import"./useActiveWallet-By6UNJY1.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-Db8GdSAT.mjs";import"./get-entropy-details-for-user-DkZdXKpr.mjs";import"@privy-io/js-sdk-core";import"eventemitter3";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./index-D23O4czL.mjs";import"uuid";import"jose";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-DPZ1iMmn.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./Screen-Ce8BE24H.mjs";import"./index-Dq_xe9dz.mjs";const d={component:()=>{let{user:t,logout:r}=m(),{onUserCloseViaDialogOrKeybindRef:o,setModalData:i,navigate:s}=l(),p=a(),{acceptTerms:d,closePrivyModal:y,createAnalyticsEvent:v}=n(),h=e=>{e?.preventDefault(),y({shouldCallAuthOnSuccess:!1}),r()};o.current=h;/*#__PURE__*/return e(u,{termsAndConditionsUrl:p?.legal.termsAndConditionsUrl,privacyPolicyUrl:p?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await d(),t&&c(t,p.embeddedWallets)?(i({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),v({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AffirmativeConsentScreen"}}),r()},callAuthOnSuccessOnClose:!0}}),s("EmbeddedWalletOnAccountCreateScreen")):y()},onDecline:h})}},u=({termsAndConditionsUrl:i,privacyPolicyUrl:a,onAccept:n,onDecline:m,title:l="One last step",subtitle:c="By signing up, you agree to our terms and privacy policy."})=>/*#__PURE__*/e(p,{title:l,subtitle:c,icon:r,primaryCta:{label:"Accept",onClick:n},secondaryCta:{label:"No thanks",onClick:m},watermark:!0,children:(i||a)&&/*#__PURE__*/t(y,{children:[i&&/*#__PURE__*/t(s,{variant:"muted",href:i,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Terms",/*#__PURE__*/e(o,{width:16,height:16,strokeWidth:2.25})]}),a&&/*#__PURE__*/t(s,{variant:"muted",href:a,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Privacy Policy",/*#__PURE__*/e(o,{width:16,height:16,strokeWidth:2.25})]})]})});let y=i.div`
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{FileCheck as r,ExternalLink as o}from"lucide-react";import"react";import{styled as i}from"styled-components";import{a as s}from"./ModalHeader-DnjCPU3j.mjs";import{u as a}from"./context-DanhWeBg.mjs";import{u as n}from"./internal-context-C4ZqP8IF.mjs";import{u as m,a as l}from"./privy-context-pimLCE3L.mjs";import{s as c}from"./shouldProceedtoEmbeddedWalletCreationFlow-CvbohbW6.mjs";import{S as p}from"./ScreenLayout-D7WpqBtE.mjs";import"./useActiveWallet-DFp38Dx-.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-9if9oowB.mjs";import"./get-entropy-details-for-user-BGqBIfqR.mjs";import"@privy-io/js-sdk-core";import"eventemitter3";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./index-cnyso2Fp.mjs";import"uuid";import"jose";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-ChZSTtn2.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./Screen-BHWyivgu.mjs";import"./index-Dq_xe9dz.mjs";const d={component:()=>{let{user:t,logout:r}=m(),{onUserCloseViaDialogOrKeybindRef:o,setModalData:i,navigate:s}=l(),p=a(),{acceptTerms:d,closePrivyModal:y,createAnalyticsEvent:v}=n(),h=e=>{e?.preventDefault(),y({shouldCallAuthOnSuccess:!1}),r()};o.current=h;/*#__PURE__*/return e(u,{termsAndConditionsUrl:p?.legal.termsAndConditionsUrl,privacyPolicyUrl:p?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await d(),t&&c(t,p.embeddedWallets)?(i({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),v({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AffirmativeConsentScreen"}}),r()},callAuthOnSuccessOnClose:!0}}),s("EmbeddedWalletOnAccountCreateScreen")):y()},onDecline:h})}},u=({termsAndConditionsUrl:i,privacyPolicyUrl:a,onAccept:n,onDecline:m,title:l="One last step",subtitle:c="By signing up, you agree to our terms and privacy policy."})=>/*#__PURE__*/e(p,{title:l,subtitle:c,icon:r,primaryCta:{label:"Accept",onClick:n},secondaryCta:{label:"No thanks",onClick:m},watermark:!0,children:(i||a)&&/*#__PURE__*/t(y,{children:[i&&/*#__PURE__*/t(s,{variant:"muted",href:i,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Terms",/*#__PURE__*/e(o,{width:16,height:16,strokeWidth:2.25})]}),a&&/*#__PURE__*/t(s,{variant:"muted",href:a,target:"_blank",size:"lg",style:{justifyContent:"space-between"},as:"a",children:["View Privacy Policy",/*#__PURE__*/e(o,{width:16,height:16,strokeWidth:2.25})]})]})});let y=i.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: 12px;
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Lock as o}from"lucide-react";import"react";import{u as e}from"./context-aGvo4MVQ.mjs";import{a as r}from"./privy-context-CkPtrpbt.mjs";import{S as i}from"./ScreenLayout-B6n5Feil.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"@privy-io/are-addresses-equal";import"./internal-context-C4ZqP8IF.mjs";import"ofetch";import"./ModalHeader-Duq1Izpl.mjs";import"styled-components";import"./useActiveWallet-By6UNJY1.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-Db8GdSAT.mjs";import"./get-entropy-details-for-user-DkZdXKpr.mjs";import"eventemitter3";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-Ce8BE24H.mjs";import"./index-Dq_xe9dz.mjs";const n=({title:e="You don't have access to this app",subtitle:r="Have you been invited?",ctaText:n="Try another account",ctaLink:a,onCtaClick:c})=>/*#__PURE__*/t(i,{title:e,subtitle:r,icon:o,iconVariant:"warning",primaryCta:{label:n,onClick:()=>{a?window.open(a,"_blank"):c?.()}},watermark:!0}),a={component:()=>{let{navigate:o}=r(),i=e(),a=i?.allowlistConfig.errorTitle||"You don't have access to this app",c=i?.allowlistConfig.errorDetail||"Have you been invited?",m=i?.allowlistConfig.errorCtaText||"Try another account",s=i?.allowlistConfig.errorCtaLink;/*#__PURE__*/return t(n,{title:a,subtitle:c,ctaText:m,ctaLink:s??void 0,onCtaClick:()=>{o("LandingScreen")}})}};export{a as AllowlistRejectionScreen,n as AllowlistRejectionScreenView,a as default};
1
+ import{jsx as t}from"react/jsx-runtime";import{Lock as o}from"lucide-react";import"react";import{u as e}from"./context-DanhWeBg.mjs";import{a as r}from"./privy-context-pimLCE3L.mjs";import{S as i}from"./ScreenLayout-D7WpqBtE.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"@privy-io/are-addresses-equal";import"./internal-context-C4ZqP8IF.mjs";import"ofetch";import"./ModalHeader-DnjCPU3j.mjs";import"styled-components";import"./useActiveWallet-DFp38Dx-.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-9if9oowB.mjs";import"./get-entropy-details-for-user-BGqBIfqR.mjs";import"eventemitter3";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-BHWyivgu.mjs";import"./index-Dq_xe9dz.mjs";const n=({title:e="You don't have access to this app",subtitle:r="Have you been invited?",ctaText:n="Try another account",ctaLink:a,onCtaClick:c})=>/*#__PURE__*/t(i,{title:e,subtitle:r,icon:o,iconVariant:"warning",primaryCta:{label:n,onClick:()=>{a?window.open(a,"_blank"):c?.()}},watermark:!0}),a={component:()=>{let{navigate:o}=r(),i=e(),a=i?.allowlistConfig.errorTitle||"You don't have access to this app",c=i?.allowlistConfig.errorDetail||"Have you been invited?",m=i?.allowlistConfig.errorCtaText||"Try another account",s=i?.allowlistConfig.errorCtaLink;/*#__PURE__*/return t(n,{title:a,subtitle:c,ctaText:m,ctaLink:s??void 0,onCtaClick:()=>{o("LandingScreen")}})}};export{a as AllowlistRejectionScreen,n as AllowlistRejectionScreenView,a as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useRef as t,useCallback as o}from"react";import{u as r}from"./context-aGvo4MVQ.mjs";import{u as n,g as a,c as i}from"./internal-context-C4ZqP8IF.mjs";import{a as l}from"./events-context-CI0iqAXA.mjs";import{a as c}from"./privy-context-CkPtrpbt.mjs";import{i as s}from"./ConnectWalletView-DSry6Xg-.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"react-device-detect";import"styled-components";import"./ModalHeader-Duq1Izpl.mjs";import"./useActiveWallet-By6UNJY1.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-Db8GdSAT.mjs";import"./get-entropy-details-for-user-DkZdXKpr.mjs";import"eventemitter3";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./CopyableText-BCytXyJL.mjs";import"lucide-react";import"./Link-DJ5gq9Di.mjs";import"./QrCode-DZ4mEmXc.mjs";import"qrcode";import"./EmailInputForm-Dgoii4vf.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./useI18n-D3p37xc_.mjs";import"./WalletCards-DH1rqayz.mjs";import"./Screen-Ce8BE24H.mjs";import"./index-Dq_xe9dz.mjs";const m={component:()=>{let{setWalletConnectionStatus:m,closePrivyModal:p,inProgressAuthFlowRef:u}=n(),{data:d,navigate:C}=c(),j=r(),W=l(),E=d?.externalConnectWallet?.description,w=t(d?.externalConnectWallet?.walletList??j.appearance.walletList),x=t(d?.externalConnectWallet?.walletChainType??j.appearance.walletChainType),v=w.current,y=x.current,f="link"===u.current?void 0:()=>C("LandingScreen");/*#__PURE__*/return e(s,{walletList:v,walletChainType:y,onClose:p,onConnect:o((({connector:e,wallet:t})=>{W("connectWallet","onSuccess",{wallet:t}),m({status:"connected",connectedWallet:t,connector:e,connectError:null,connectRetry:()=>null}),C("ConnectionStatusScreen",!d?.externalConnectWallet?.preSelectedWalletId)}),[m,C,d?.login?.disableSignup,d?.externalConnectWallet?.preSelectedWalletId]),onConnectError:e=>{e instanceof a?(console.warn(e.cause?e.cause:e.message),W("connectWallet","onError",e.privyErrorCode||i.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),W("connectWallet","onError",i.UNKNOWN_CONNECT_WALLET_ERROR))},onBack:f,customDescription:E||"",preSelectedWalletId:d?.externalConnectWallet?.preSelectedWalletId,app:j})},isUnauthenticatedScreem:!0};export{m as AuthenticateWithWalletScreen,m as default};
1
+ import{jsx as e}from"react/jsx-runtime";import{useRef as t,useCallback as o}from"react";import{u as r}from"./context-DanhWeBg.mjs";import{u as n,g as a,c as i}from"./internal-context-C4ZqP8IF.mjs";import{a as l}from"./events-context-CI0iqAXA.mjs";import{a as c}from"./privy-context-pimLCE3L.mjs";import{i as s}from"./ConnectWalletView-rdXlInEf.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"react-device-detect";import"styled-components";import"./ModalHeader-DnjCPU3j.mjs";import"./useActiveWallet-DFp38Dx-.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-9if9oowB.mjs";import"./get-entropy-details-for-user-BGqBIfqR.mjs";import"eventemitter3";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./CopyableText-BCytXyJL.mjs";import"lucide-react";import"./Link-DJ5gq9Di.mjs";import"./QrCode-BHbLI4rX.mjs";import"qrcode";import"./EmailInputForm-Dgoii4vf.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./useI18n-BpRybzwE.mjs";import"./WalletCards-DH1rqayz.mjs";import"./Screen-BHWyivgu.mjs";import"./index-Dq_xe9dz.mjs";const m={component:()=>{let{setWalletConnectionStatus:m,closePrivyModal:p,inProgressAuthFlowRef:u}=n(),{data:d,navigate:C}=c(),j=r(),W=l(),E=d?.externalConnectWallet?.description,w=t(d?.externalConnectWallet?.walletList??j.appearance.walletList),x=t(d?.externalConnectWallet?.walletChainType??j.appearance.walletChainType),v=w.current,y=x.current,f="link"===u.current?void 0:()=>C("LandingScreen");/*#__PURE__*/return e(s,{walletList:v,walletChainType:y,onClose:p,onConnect:o((({connector:e,wallet:t})=>{W("connectWallet","onSuccess",{wallet:t}),m({status:"connected",connectedWallet:t,connector:e,connectError:null,connectRetry:()=>null}),C("ConnectionStatusScreen",!d?.externalConnectWallet?.preSelectedWalletId)}),[m,C,d?.login?.disableSignup,d?.externalConnectWallet?.preSelectedWalletId]),onConnectError:e=>{e instanceof a?(console.warn(e.cause?e.cause:e.message),W("connectWallet","onError",e.privyErrorCode||i.GENERIC_CONNECT_WALLET_ERROR)):(console.warn(e),W("connectWallet","onError",i.UNKNOWN_CONNECT_WALLET_ERROR))},onBack:f,customDescription:E||"",preSelectedWalletId:d?.externalConnectWallet?.preSelectedWalletId,app:j})},isUnauthenticatedScreem:!0};export{m as AuthenticateWithWalletScreen,m as default};
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as t,jsx as i}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as a,useEffect as o}from"react";import{createWalletClient as n,custom as s,publicActions as d,createPublicClient as c,http as m,formatUnits as l}from"viem";import{addToDefaultChains as p}from"@privy-io/js-sdk-core";import{b as u,c as h,R as g}from"./Layouts-BlFm53ED.mjs";import{B as f}from"./ModalHeader-Duq1Izpl.mjs";import{C as v}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as y}from"./FundWalletMethodHeader-dEfQKUIt.mjs";import{N as j}from"./index-Dq_xe9dz.mjs";import{u as I,t as w}from"./context-aGvo4MVQ.mjs";import{u as T,b as C,c as b}from"./internal-context-C4ZqP8IF.mjs";import{z as S}from"./useActiveWallet-By6UNJY1.mjs";import{a as x}from"./privy-context-CkPtrpbt.mjs";import{u as N}from"./useGetTokenPrice-CveNETyP.mjs";import{u as F,i as A}from"./get-entropy-details-for-user-DkZdXKpr.mjs";import{O as P}from"./analytics-mkkvFRju.mjs";import{g as k,t as E,a as L,b as U,c as B,u as M}from"./reservoir-DGil2p_K.mjs";import{x as W}from"./index-D23O4czL.mjs";import{g as q}from"./getChainName-DjpPdUSc.mjs";import{g as H,a as O}from"./transaction-CnfuREWo.mjs";import{g as G,B as R}from"./BridgeNetworkSelectionView-DTgXCOhN.mjs";import{v as D}from"./use-export-wallet-Db8GdSAT.mjs";import{T as $}from"./TransferOrBridgeLoadingScreen-CknmH__D.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"viem/utils";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@privy-io/are-addresses-equal";import"./useGetSolPrice-DaxM-vxD.mjs";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-DPZ1iMmn.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./getFormattedUsdFromLamports-B6EqSEho.mjs";import"./getErc20Balance-B5YTRX0-.mjs";import"./Row-C9vrS4Zi.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Subtitle-CV-2yKE4.mjs";import"./Title-BnzYV3Is.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./Chip-D2-wZOHJ.mjs";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"./shared-FM0rljBt.mjs";import"@heroicons/react/24/outline/ChevronDownIcon";import"./formatErc20TokenAmount-BuPk9xcy.mjs";import"./ethers-BNftJuZG.mjs";import"./styles--34ZnZR_.mjs";import"./LinkPasskeyScreen-C1QMXwHt.mjs";import"lucide-react";import"./TodoList-CgrU7uwu.mjs";import"./ScreenLayout-B6n5Feil.mjs";import"./Screen-Ce8BE24H.mjs";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"./Address-PwZSXm9b.mjs";const _={component:()=>{let _=I(),{rpcConfig:V,appId:z,closePrivyModal:Q,createAnalyticsEvent:X}=T(),{navigate:Y,setModalData:J,data:K}=x(),Z=I(),{wallets:ee}=F(),[te,ie]=a(null),[re,ae]=a(null),[oe,ne]=a([]),[se,de]=a(0),[ce,me]=a(!1),[le,pe]=a(!1),[ue,he]=a(!1),[ge,fe]=a(!1),[ve,ye]=a(),[je,Ie]=a();if(!K?.funding||"solana"!==K.funding.chainType)throw Error("Invalid funding data");let{address:we,chain:Te,connectedWallet:Ce}=K.funding,[be,Se]=a(K.funding.amount),xe=("ethereum"===Ce?.type?Ce:void 0)??ee[0],Ne=S(xe?.walletClientType||"unknown"),Fe=Ne?.name||"wallet",[Ae,Pe]=a(null);o((()=>{(async()=>{if(!xe)return;let e=await xe.getEthereumProvider();Pe(n({account:xe.address,transport:s(e)}).extend(d))})().catch(console.error)}),[xe]);let[ke,Ee]=a(0n),Le=H(ke);o((()=>{let e=_.solanaRpcs[Te];e?W({rpc:e.rpc,address:we}).then((e=>Ee(BigInt(e)))).catch(console.error):console.warn("Unable to load solana rpc, skipping balance")}),[]);let[Ue,Be]=a(),{tokenPrice:Me}=N("solana"),{fundingAmountInBaseUnit:We,fundingAmountInUsd:qe}=O({amount:be,fee:0n,tokenPrice:Me,isUsdc:K.funding.isUSDC});if(o((()=>{(async()=>{if(!Ae||!xe)return;let e=["solana:testnet","solana:devnet"].includes(Te);e&&console.warn("Solana testnets are not supported for bridging");let t=p(Z.chains).filter((({testnet:t})=>!!t===e)),i=(await G({chains:t,address:xe.address,appId:z,rpcConfig:V})).filter((e=>e.balance>0n));if(i.length<1)return void ie(new C(`Wallet ${D(xe.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));i.sort(((e,t)=>Number(t.balance-e.balance)));let r=(await Promise.allSettled(i.map((async e=>({...e,quote:await k({isTestnet:!1,input:E({appId:z,amount:We.toString(),user:xe.address,recipient:we,destinationChainId:U,destinationCurrency:L,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(r.length<1)return void ie(new C(`Unable to fetch quotes for bridging. Wallet ${D(xe.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));let a=r.map((({quote:e,balance:t,chain:i})=>({bridgeTx:B(e),balance:t,chain:i,isErc20Quote:!1}))).filter((({bridgeTx:e})=>!!e));if(a.length>1)return void ne(a);let o=a.at(0);o?(pe(!0),Be({data:o.bridgeTx.data,to:o.bridgeTx.to,value:o.bridgeTx.value,chain:o.chain})):ie(new C(`Unable to select bridge option from quotes. Wallet ${D(xe.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE))})().catch(console.error)}),[Ae]),o((()=>{(async()=>{let e,t;if(!Ae||!xe||ce||ue||!Ue)return;me(!0);let i=c({chain:Ue.chain,transport:m(A(Ue.chain,V,z))});try{e=await i.prepareTransactionRequest({account:xe.address,to:Ue.to,chain:Ue.chain,data:Ue.data,value:BigInt(Ue.value??0)})}catch(e){console.error(e),oe.length>1&&ae(e.shortMessage??"Something went wrong")}if(e){"eip1559"===e.type||"eip4844"===e.type||"eip7702"===e.type?void 0!==e.gasPrice&&delete e.gasPrice:("legacy"===e.type||"eip2930"===e.type)&&(void 0!==e.maxFeePerGas&&delete e.maxFeePerGas,void 0!==e.maxPriorityFeePerGas&&delete e.maxPriorityFeePerGas),me(!1),he(!0);try{await Ae.switchChain({id:Ue.chain.id})}catch(e){await Ae.addChain({chain:Ue.chain}),await Ae.switchChain({id:Ue.chain.id})}try{t=await Ae.sendTransaction(e)}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(oe.length<1?ie(new C(e.shortMessage,void 0,b.TRANSACTION_FAILURE)):ae(e.shortMessage??"Something went wrong"))}if(t)return await Ae.waitForTransactionReceipt({hash:t}),le?(Ie("pending"),void ye(t)):(he(!1),fe(!0),void X({eventName:P,payload:{provider:"external",status:"success",txHash:t,address:xe.address,chainId:Ue.chain.id,chainType:"ethereum",value:Ue.value?l(BigInt(Ue.value),18):void 0,token:"ETH",destination:we,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:l(We,9),destinationToken:"SOL"}}));he(!1)}else me(!1)})().catch(console.error)}),[Ae,Ue]),M({transactionHash:ve,isTestnet:!1,bridgingStatus:je,setBridgingStatus:Ie,onSuccess({transactionHash:e}){pe(!1),fe(!0),X({eventName:P,payload:{provider:"external",status:"success",txHash:e,address:xe?.address,chainId:Ue?.chain.id,chainType:"ethereum",value:Ue?.value?l(BigInt(Ue.value),18):void 0,token:"ETH",destination:we,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:l(We,9),destinationToken:"SOL"}})},onFailure({error:e}){pe(!1),ie(e)}}),o((()=>{te&&(J({funding:K?.funding,solanaFundingData:K?.solanaFundingData,sendTransaction:K?.sendTransaction,errorModalData:{error:te,previousScreen:"TransferFromWalletScreen"}}),Y("ErrorScreen",!1))}),[te]),o((()=>{if(!ge)return;let e=setTimeout(Q,w);return()=>clearTimeout(e)}),[ge]),ge/*#__PURE__*/)return e(t,{children:[/*#__PURE__*/i(y,{}),/*#__PURE__*/i(u,{}),/*#__PURE__*/e(h,{children:[/*#__PURE__*/i(r,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/i(v,{title:"Success!",description:`You’ve successfully added ${be} SOL to your ${Z.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/i(g,{}),/*#__PURE__*/i(f,{})]});let He=oe[se];return oe.length>1&&He?/*#__PURE__*/i(R,{displayName:Fe,configuredFundingChain:Te,formattedBalance:Le,fundingAmount:be,fundingCurrency:"SOL",fundingAmountInUsd:qe,options:oe,selectedOption:He,isPreparing:ce,isSubmitting:ue,addressToFund:we,fundingWalletAddress:xe?.address||"",errorMessage:re,onSubmit:()=>{K.funding?.amount!==be?async function(){if(xe&&He)try{let e=await k({isTestnet:!1,input:E({appId:z,amount:We.toString(),user:xe.address,recipient:we,destinationChainId:U,destinationCurrency:L,originChainId:He.chain.id})}),t=B(e);if(!t)throw Error("Invalid transaction request");pe(!0),Be({data:t.data,to:t.to,value:t.value,chain:He.chain})}catch(e){console.error(e),ie(new C("Unable to fetch quotes for bridging",e,b.INSUFFICIENT_BALANCE))}}().catch(console.error):Be({to:He.bridgeTx.to,data:He.bridgeTx.data,value:He.bridgeTx.value,chain:He.chain})},onSelect:e=>{e!==se&&(ae(null),de(e))},onAmountChange:Se}):ue&&xe?/*#__PURE__*/i($,{walletClientType:xe?.walletClientType||"unknown",displayName:Fe,addressToFund:we,isBridging:le,isErc20Flow:!1,chainId:"solana",chainName:q(Te),totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
1
+ import{jsxs as e,Fragment as t,jsx as i}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as a,useEffect as o}from"react";import{createWalletClient as n,custom as s,publicActions as d,createPublicClient as c,http as m,formatUnits as l}from"viem";import{addToDefaultChains as p}from"@privy-io/js-sdk-core";import{b as u,c as h,R as g}from"./Layouts-BlFm53ED.mjs";import{B as f}from"./ModalHeader-DnjCPU3j.mjs";import{C as v}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as y}from"./FundWalletMethodHeader-y6GQmPN-.mjs";import{N as j}from"./index-Dq_xe9dz.mjs";import{u as I,t as w}from"./context-DanhWeBg.mjs";import{u as T,b as C,c as b}from"./internal-context-C4ZqP8IF.mjs";import{z as S}from"./useActiveWallet-DFp38Dx-.mjs";import{a as x}from"./privy-context-pimLCE3L.mjs";import{u as N}from"./useGetTokenPrice-CwmlFVt_.mjs";import{u as F,i as A}from"./get-entropy-details-for-user-BGqBIfqR.mjs";import{O as P}from"./analytics-mkkvFRju.mjs";import{g as k,t as E,a as L,b as U,c as B,u as M}from"./reservoir-DGil2p_K.mjs";import{x as W}from"./index-cnyso2Fp.mjs";import{g as q}from"./getChainName-DjpPdUSc.mjs";import{g as H,a as O}from"./transaction-CnfuREWo.mjs";import{g as G,B as R}from"./BridgeNetworkSelectionView-P9DT3N3B.mjs";import{v as D}from"./use-export-wallet-9if9oowB.mjs";import{T as $}from"./TransferOrBridgeLoadingScreen-BfVr4ZWB.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"viem/utils";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@privy-io/are-addresses-equal";import"./useGetSolPrice-DaxM-vxD.mjs";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-ChZSTtn2.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./getFormattedUsdFromLamports-B6EqSEho.mjs";import"./getErc20Balance-gArwSiSB.mjs";import"./Row-C9vrS4Zi.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Subtitle-CV-2yKE4.mjs";import"./Title-BnzYV3Is.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./Chip-D2-wZOHJ.mjs";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"./shared-FM0rljBt.mjs";import"@heroicons/react/24/outline/ChevronDownIcon";import"./formatErc20TokenAmount-BuPk9xcy.mjs";import"./ethers-iL-1LJcq.mjs";import"./styles-DMbxOKl7.mjs";import"./LinkPasskeyScreen-BTtF-B9N.mjs";import"lucide-react";import"./TodoList-CgrU7uwu.mjs";import"./ScreenLayout-D7WpqBtE.mjs";import"./Screen-BHWyivgu.mjs";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"./Address-DFhsL61i.mjs";const _={component:()=>{let _=I(),{rpcConfig:V,appId:z,closePrivyModal:Q,createAnalyticsEvent:X}=T(),{navigate:Y,setModalData:J,data:K}=x(),Z=I(),{wallets:ee}=F(),[te,ie]=a(null),[re,ae]=a(null),[oe,ne]=a([]),[se,de]=a(0),[ce,me]=a(!1),[le,pe]=a(!1),[ue,he]=a(!1),[ge,fe]=a(!1),[ve,ye]=a(),[je,Ie]=a();if(!K?.funding||"solana"!==K.funding.chainType)throw Error("Invalid funding data");let{address:we,chain:Te,connectedWallet:Ce}=K.funding,[be,Se]=a(K.funding.amount),xe=("ethereum"===Ce?.type?Ce:void 0)??ee[0],Ne=S(xe?.walletClientType||"unknown"),Fe=Ne?.name||"wallet",[Ae,Pe]=a(null);o((()=>{(async()=>{if(!xe)return;let e=await xe.getEthereumProvider();Pe(n({account:xe.address,transport:s(e)}).extend(d))})().catch(console.error)}),[xe]);let[ke,Ee]=a(0n),Le=H(ke);o((()=>{let e=_.solanaRpcs[Te];e?W({rpc:e.rpc,address:we}).then((e=>Ee(BigInt(e)))).catch(console.error):console.warn("Unable to load solana rpc, skipping balance")}),[]);let[Ue,Be]=a(),{tokenPrice:Me}=N("solana"),{fundingAmountInBaseUnit:We,fundingAmountInUsd:qe}=O({amount:be,fee:0n,tokenPrice:Me,isUsdc:K.funding.isUSDC});if(o((()=>{(async()=>{if(!Ae||!xe)return;let e=["solana:testnet","solana:devnet"].includes(Te);e&&console.warn("Solana testnets are not supported for bridging");let t=p(Z.chains).filter((({testnet:t})=>!!t===e)),i=(await G({chains:t,address:xe.address,appId:z,rpcConfig:V})).filter((e=>e.balance>0n));if(i.length<1)return void ie(new C(`Wallet ${D(xe.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));i.sort(((e,t)=>Number(t.balance-e.balance)));let r=(await Promise.allSettled(i.map((async e=>({...e,quote:await k({isTestnet:!1,input:E({appId:z,amount:We.toString(),user:xe.address,recipient:we,destinationChainId:U,destinationCurrency:L,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(r.length<1)return void ie(new C(`Unable to fetch quotes for bridging. Wallet ${D(xe.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));let a=r.map((({quote:e,balance:t,chain:i})=>({bridgeTx:B(e),balance:t,chain:i,isErc20Quote:!1}))).filter((({bridgeTx:e})=>!!e));if(a.length>1)return void ne(a);let o=a.at(0);o?(pe(!0),Be({data:o.bridgeTx.data,to:o.bridgeTx.to,value:o.bridgeTx.value,chain:o.chain})):ie(new C(`Unable to select bridge option from quotes. Wallet ${D(xe.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE))})().catch(console.error)}),[Ae]),o((()=>{(async()=>{let e,t;if(!Ae||!xe||ce||ue||!Ue)return;me(!0);let i=c({chain:Ue.chain,transport:m(A(Ue.chain,V,z))});try{e=await i.prepareTransactionRequest({account:xe.address,to:Ue.to,chain:Ue.chain,data:Ue.data,value:BigInt(Ue.value??0)})}catch(e){console.error(e),oe.length>1&&ae(e.shortMessage??"Something went wrong")}if(e){"eip1559"===e.type||"eip4844"===e.type||"eip7702"===e.type?void 0!==e.gasPrice&&delete e.gasPrice:("legacy"===e.type||"eip2930"===e.type)&&(void 0!==e.maxFeePerGas&&delete e.maxFeePerGas,void 0!==e.maxPriorityFeePerGas&&delete e.maxPriorityFeePerGas),me(!1),he(!0);try{await Ae.switchChain({id:Ue.chain.id})}catch(e){await Ae.addChain({chain:Ue.chain}),await Ae.switchChain({id:Ue.chain.id})}try{t=await Ae.sendTransaction(e)}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(oe.length<1?ie(new C(e.shortMessage,void 0,b.TRANSACTION_FAILURE)):ae(e.shortMessage??"Something went wrong"))}if(t)return await Ae.waitForTransactionReceipt({hash:t}),le?(Ie("pending"),void ye(t)):(he(!1),fe(!0),void X({eventName:P,payload:{provider:"external",status:"success",txHash:t,address:xe.address,chainId:Ue.chain.id,chainType:"ethereum",value:Ue.value?l(BigInt(Ue.value),18):void 0,token:"ETH",destination:we,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:l(We,9),destinationToken:"SOL"}}));he(!1)}else me(!1)})().catch(console.error)}),[Ae,Ue]),M({transactionHash:ve,isTestnet:!1,bridgingStatus:je,setBridgingStatus:Ie,onSuccess({transactionHash:e}){pe(!1),fe(!0),X({eventName:P,payload:{provider:"external",status:"success",txHash:e,address:xe?.address,chainId:Ue?.chain.id,chainType:"ethereum",value:Ue?.value?l(BigInt(Ue.value),18):void 0,token:"ETH",destination:we,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:l(We,9),destinationToken:"SOL"}})},onFailure({error:e}){pe(!1),ie(e)}}),o((()=>{te&&(J({funding:K?.funding,solanaFundingData:K?.solanaFundingData,sendTransaction:K?.sendTransaction,errorModalData:{error:te,previousScreen:"TransferFromWalletScreen"}}),Y("ErrorScreen",!1))}),[te]),o((()=>{if(!ge)return;let e=setTimeout(Q,w);return()=>clearTimeout(e)}),[ge]),ge/*#__PURE__*/)return e(t,{children:[/*#__PURE__*/i(y,{}),/*#__PURE__*/i(u,{}),/*#__PURE__*/e(h,{children:[/*#__PURE__*/i(r,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/i(v,{title:"Success!",description:`You’ve successfully added ${be} SOL to your ${Z.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/i(g,{}),/*#__PURE__*/i(f,{})]});let He=oe[se];return oe.length>1&&He?/*#__PURE__*/i(R,{displayName:Fe,configuredFundingChain:Te,formattedBalance:Le,fundingAmount:be,fundingCurrency:"SOL",fundingAmountInUsd:qe,options:oe,selectedOption:He,isPreparing:ce,isSubmitting:ue,addressToFund:we,fundingWalletAddress:xe?.address||"",errorMessage:re,onSubmit:()=>{K.funding?.amount!==be?async function(){if(xe&&He)try{let e=await k({isTestnet:!1,input:E({appId:z,amount:We.toString(),user:xe.address,recipient:we,destinationChainId:U,destinationCurrency:L,originChainId:He.chain.id})}),t=B(e);if(!t)throw Error("Invalid transaction request");pe(!0),Be({data:t.data,to:t.to,value:t.value,chain:He.chain})}catch(e){console.error(e),ie(new C("Unable to fetch quotes for bridging",e,b.INSUFFICIENT_BALANCE))}}().catch(console.error):Be({to:He.bridgeTx.to,data:He.bridgeTx.data,value:He.bridgeTx.value,chain:He.chain})},onSelect:e=>{e!==se&&(ae(null),de(e))},onAmountChange:Se}):ue&&xe?/*#__PURE__*/i($,{walletClientType:xe?.walletClientType||"unknown",displayName:Fe,addressToFund:we,isBridging:le,isErc20Flow:!1,chainId:"solana",chainName:q(Te),totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
2
  /*#__PURE__*/e(t,{children:[/*#__PURE__*/i(y,{}),/*#__PURE__*/i(j,{}),/*#__PURE__*/i("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/i(f,{})]})}};export{_ as AwaitingEvmToSolBridgingScreen,_ as default};
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as t,jsx as a}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as n}from"react";import{parseEther as o,createWalletClient as s,custom as d,publicActions as c,createPublicClient as l,http as m,encodeFunctionData as u,formatUnits as p}from"viem";import{addToDefaultChains as h}from"@privy-io/js-sdk-core";import{b as f,c as g,R as v}from"./Layouts-BlFm53ED.mjs";import{B as y}from"./ModalHeader-Duq1Izpl.mjs";import{C}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as I}from"./FundWalletMethodHeader-dEfQKUIt.mjs";import{N as w}from"./index-Dq_xe9dz.mjs";import{u as j,t as T}from"./context-aGvo4MVQ.mjs";import{u as b,b as E,c as S}from"./internal-context-C4ZqP8IF.mjs";import{z as N}from"./useActiveWallet-By6UNJY1.mjs";import{a as A}from"./privy-context-CkPtrpbt.mjs";import{u as x}from"./useGetTokenPrice-CveNETyP.mjs";import{u as F,i as k}from"./get-entropy-details-for-user-DkZdXKpr.mjs";import{E as B,a as P}from"./transfer-6YztDh-t.mjs";import{f as L}from"./formatErc20TokenAmount-BuPk9xcy.mjs";import{c as M,a as U,g as W,s as q}from"./ethers-BNftJuZG.mjs";import{O as H}from"./analytics-mkkvFRju.mjs";import{t as $,g as G,d as R,c as _,u as D}from"./reservoir-DGil2p_K.mjs";import{y as O}from"./index-D23O4czL.mjs";import{g as Q,B as V}from"./BridgeNetworkSelectionView-DTgXCOhN.mjs";import{g as z}from"./getErc20Balance-B5YTRX0-.mjs";import{v as X}from"./use-export-wallet-Db8GdSAT.mjs";import{T as Y}from"./TransferOrBridgeLoadingScreen-CknmH__D.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"viem/utils";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@privy-io/are-addresses-equal";import"./useGetSolPrice-DaxM-vxD.mjs";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-DPZ1iMmn.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./Row-C9vrS4Zi.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Subtitle-CV-2yKE4.mjs";import"./Title-BnzYV3Is.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./getChainName-DjpPdUSc.mjs";import"./Chip-D2-wZOHJ.mjs";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"./shared-FM0rljBt.mjs";import"@heroicons/react/24/outline/ChevronDownIcon";import"./styles--34ZnZR_.mjs";import"./LinkPasskeyScreen-C1QMXwHt.mjs";import"lucide-react";import"./TodoList-CgrU7uwu.mjs";import"./ScreenLayout-B6n5Feil.mjs";import"./Screen-Ce8BE24H.mjs";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"./Address-PwZSXm9b.mjs";const Z={component:()=>{let{rpcConfig:Z,appId:J,closePrivyModal:K,createAnalyticsEvent:ee}=b(),{navigate:te,setModalData:ae,data:re}=A(),ie=j(),{wallets:ne}=F(),[oe,se]=i(!1),[de,ce]=i(0n),[le,me]=i(!1),[ue,pe]=i(null),[he,fe]=i(null),[ge,ve]=i([]),[ye,Ce]=i(0),[Ie,we]=i([]),[je,Te]=i(!1),[be,Ee]=i(!1),[Se,Ne]=i(!1),[Ae,xe]=i(!1),[Fe,ke]=i(),[Be,Pe]=i();if(!re?.funding||"ethereum"!==re.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:Le,chain:Me,connectedWallet:Ue}=re.funding,We=re.funding.address,qe=re.funding.erc20Address,[He,$e]=i(re.funding.amount);n((()=>{qe&&!Le&&pe(Error("Unable to fetch token details"))}),[]);let Ge=!!qe&&!!Le,Re=Ge?BigInt(parseFloat(He)*10**Le.decimals):o(He),_e=("ethereum"===Ue?.type?Ue:void 0)??ne[0],De=N(_e?.walletClientType||"unknown"),Oe=De?.name||"wallet",[Qe,Ve]=i(null);n((()=>{(async()=>{if(!_e)return;let e=await _e.getEthereumProvider();Ve(s({account:_e.address,transport:d(e)}).extend(c))})().catch(console.error)}),[_e]);let[ze,Xe]=i(0n);n((()=>{l({chain:Me,transport:m(k(Me,Z,J))}).getBalance({address:We}).then(Xe).catch(console.error)}),[]);let[Ye,Ze]=i(0n);n((()=>{Ge&&z({chain:Me,address:We,appId:J,rpcConfig:Z,erc20Address:qe}).then((e=>Ze(e.balance))).catch(console.error)}),[]);let{tokenPrice:Je}=x(Me.id),[Ke,et]=i({to:We,chain:Me,value:Re,data:void 0});n((()=>{(async()=>{let e,t;if(!Qe||!_e||je||Se)return;Te(!0);let a=l({chain:Ke.chain,transport:m(k(Ke.chain,Z,J))});if(Ge&&!Ke.data)return await a.simulateContract({address:qe,chain:Ke.chain,abi:B,functionName:"transfer",args:[We,Re],account:_e.address}).catch((e=>{if("ContractFunctionZeroDataError"===e?.cause?.name||e?.message?.includes("returned no data"))return a.simulateContract({address:qe,chain:Ke.chain,abi:P,functionName:"transfer",args:[We,Re],account:_e.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)}))?(Te(!1),void et({to:qe,chain:Ke.chain,data:u({abi:B,functionName:"transfer",args:[We,Re]}),value:"0x0"})):(Te(!1),void me(!0));try{e=await a.prepareTransactionRequest({account:_e.address,to:Ke.to,chain:Ke.chain,data:Ke.data,value:BigInt(Ke.value??0)})}catch(e){if(console.error(e),ge.length>1)fe(e.shortMessage??"Something went wrong");else if(be&&0===ge.length)return void pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE))}if(!e)return Te(!1),void me(!0);"eip1559"===e.type||"eip4844"===e.type||"eip7702"===e.type?void 0!==e.gasPrice&&delete e.gasPrice:("legacy"===e.type||"eip2930"===e.type)&&(void 0!==e.maxFeePerGas&&delete e.maxFeePerGas,void 0!==e.maxPriorityFeePerGas&&delete e.maxPriorityFeePerGas),Te(!1),Ne(!0),se(!0),ce(e.gas);try{await Qe.switchChain({id:Ke.chain.id})}catch(e){await Qe.addChain({chain:Ke.chain}),await Qe.switchChain({id:Ke.chain.id})}try{t=await Qe.sendTransaction(e)}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(ge.length<1){let t=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(t="User rejected the request."),pe(new E(t,void 0,S.TRANSACTION_FAILURE))}else fe(e.shortMessage??"Something went wrong")}if(t){if(await Qe.waitForTransactionReceipt({hash:t}),Ne(!1),be){if(Ie.length>0){let[e,...t]=Ie;if(!e)return;return we(t),void et(e)}return ke(t),void Pe("pending")}xe(!0),ae(O(re,"completed",t,_e?.walletClientType,Ge,Le,Me)),ee({eventName:H,payload:{provider:"external",status:"success",txHash:t,address:_e.address,chainId:Ke.chain.id,chainType:"ethereum",value:Ke.value?p(BigInt(Ke.value),Le?.decimals??18):void 0,token:Le?.symbol??qe??"ETH",destinationAddress:We,destinationChainId:Me.id,destinationChainType:"ethereum",destinationValue:Re?p(Re,Le?.decimals??18):void 0,destinationToken:Le?.symbol??qe??Me.nativeCurrency.name}})}else Ne(!1)})().catch(console.error)}),[Qe,Ke]),n((()=>{(async()=>{if(!le||!Qe||!_e)return;let e=h(ie.chains).filter((e=>e.id!==Me.id&&!!e.testnet==!!Me.testnet));Ge&&e.unshift(Me);let t=await Q({chains:e,address:_e.address,appId:J,rpcConfig:Z}),a=Ge?t.filter((e=>e.balance>0n)):t.filter((e=>e.balance>Re)),r=Ge&&t.every((e=>0n===e.balance));if(a.length<1)return void pe(new E(r?`Wallet ${X(_e.address)} doesn't have enough funds to cover gas fees. Top up your wallet and try again.`:`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));a.sort(((e,t)=>Number(Ge?(t.erc20Balance??0n)-(e.erc20Balance??0n):t.balance-e.balance)));let i=a.flatMap((e=>{let t=[{...e,isErc20Quote:!1,isTestnet:!!Me.testnet,input:$({appId:J,amount:Re.toString(),user:_e.address,recipient:We,destinationChainId:Me.id,destinationCurrency:qe,originChainId:e.chain.id})}];return Ge&&qe&&(e.erc20Balance??0n)>0n&&t.push({...e,isErc20Quote:!0,isTestnet:!!Me.testnet,input:$({appId:J,amount:Re.toString(),user:_e.address,recipient:We,destinationChainId:Me.id,destinationCurrency:qe,originChainId:e.chain.id,originCurrency:e.erc20Address})}),t})),n=(await Promise.allSettled(i.map((async e=>({...e,quote:await G(e)}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(n.length<1)return void pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));let o=n.map((e=>({bridgeTx:_(e.quote),allTxSteps:R(e.quote),balance:e.balance,chain:e.chain,erc20Balance:e.erc20Balance,isErc20Quote:e.isErc20Quote}))).filter((e=>!!e.bridgeTx));if(o.length>1)return void ve(o);let s=o[0];if(!s)return void pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));let[d,...c]=s.allTxSteps??[s.bridgeTx];d?(Ee(!0),we(c.map((e=>({...e,chain:s.chain})))),et({data:d.data,to:d.to,value:d.value,chain:s.chain})):pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE))})().catch(console.error)}),[le]),D({transactionHash:Fe,isTestnet:!!Me.testnet,bridgingStatus:Be,setBridgingStatus:Pe,onSuccess({transactionHash:e}){Ee(!1),xe(!0),ae(O(re,"completed",e,_e?.walletClientType,Ge,Le,Me)),ee({eventName:H,payload:{provider:"external",status:"success",txHash:e,address:_e?.address,chainId:Ke.chain.id,chainType:"ethereum",value:Ke.value?p(BigInt(Ke.value),Le?.decimals??18):void 0,token:Le?.symbol??qe??"ETH",destinationAddress:We,destinationChainId:Me.id,destinationChainType:"ethereum",destinationValue:Re?p(Re,Le?.decimals??18):void 0,destinationToken:Le?.symbol??qe??Me.nativeCurrency.name}})},onFailure({error:e}){Ee(!1),pe(e)}}),n((()=>{ue&&(ae({funding:re?.funding,solanaFundingData:re?.solanaFundingData,sendTransaction:re?.sendTransaction,errorModalData:{error:ue,previousScreen:"TransferFromWalletScreen"}}),te("ErrorScreen",!1))}),[ue]);let tt=!Ge&&Je?M(He??"0",Je):void 0,at=Ge?de:q([de,Re]),rt=at&&Je?U(at,Je):void 0,it=at?W(at,re?.funding?.erc20Address?re?.funding?.erc20ContractInfo?.symbol||"ETH":re?.funding?.chain.nativeCurrency.symbol||"ETH"):void 0,nt=de&&Je?U(de,Je):void 0,ot=de?W(de,Me?.nativeCurrency?.symbol||"ETH"):void 0;if(n((()=>{if(!Ae)return;let e=setTimeout(K,T);return()=>clearTimeout(e)}),[Ae]),Ae/*#__PURE__*/)return e(t,{children:[/*#__PURE__*/a(I,{}),/*#__PURE__*/a(f,{}),/*#__PURE__*/e(g,{children:[/*#__PURE__*/a(r,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/a(C,{title:"Success!",description:`You’ve successfully added ${He} ${Ge?Le.symbol:Me.nativeCurrency.symbol} to your ${ie.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/a(v,{}),/*#__PURE__*/a(y,{})]});let st=Ge?`${L({amount:Ye,decimals:Le.decimals})} ${Le.symbol}`:W(ze,Me.nativeCurrency.symbol,3,!0),dt=ge[ye];return ge.length>1&&dt?/*#__PURE__*/a(V,{displayName:Oe,configuredFundingChain:Me,formattedBalance:st,fundingAmount:He,fundingCurrency:Ge?Le.symbol:Me.nativeCurrency.symbol,fundingAmountInUsd:tt,options:ge,selectedOption:dt,isPreparing:je,isSubmitting:Se,addressToFund:We,fundingWalletAddress:_e?.address||"",errorMessage:he,onSubmit:()=>{if(re.funding?.amount===He){let[e,...t]=dt.allTxSteps??[dt.bridgeTx];if(!e)return;return Ee(!0),we(t.map((e=>({...e,chain:dt.chain})))),void et({to:e.to,data:e.data,value:e.value,chain:dt.chain})}(async function(){if(_e&&dt)try{let e=await G({isTestnet:!!Me.testnet,input:$({appId:J,amount:Re.toString(),user:_e.address,recipient:We,destinationChainId:Me.id,destinationCurrency:qe,originChainId:dt.chain.id})}),[t,...a]=R(e);if(!t)throw Error("Invalid transaction request");Ee(!0),we(a.map((e=>({...e,chain:dt.chain})))),et({data:t.data,to:t.to,value:t.value,chain:dt.chain})}catch(e){console.error(e),pe(new E("Unable to fetch quotes for bridging",e,S.INSUFFICIENT_BALANCE))}})().catch(console.error)},onSelect:e=>{e!==ye&&(fe(null),Ce(e))},onAmountChange:$e}):oe&&de&&_e&&re?.funding?/*#__PURE__*/a(Y,{walletClientType:_e?.walletClientType||"unknown",displayName:Oe,addressToFund:We,isBridging:be,isErc20Flow:Ge,totalPriceInUsd:rt,totalPriceInNativeCurrency:it,gasPriceInUsd:nt,gasPriceInNativeCurrency:ot,chainId:Me.id,chainName:Me.name}):
1
+ import{jsxs as e,Fragment as t,jsx as a}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as n}from"react";import{parseEther as o,createWalletClient as s,custom as d,publicActions as c,createPublicClient as l,http as m,encodeFunctionData as u,formatUnits as p}from"viem";import{addToDefaultChains as h}from"@privy-io/js-sdk-core";import{b as f,c as g,R as v}from"./Layouts-BlFm53ED.mjs";import{B as y}from"./ModalHeader-DnjCPU3j.mjs";import{C}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as I}from"./FundWalletMethodHeader-y6GQmPN-.mjs";import{N as w}from"./index-Dq_xe9dz.mjs";import{u as j,t as T}from"./context-DanhWeBg.mjs";import{u as b,b as E,c as S}from"./internal-context-C4ZqP8IF.mjs";import{z as N}from"./useActiveWallet-DFp38Dx-.mjs";import{a as A}from"./privy-context-pimLCE3L.mjs";import{u as x}from"./useGetTokenPrice-CwmlFVt_.mjs";import{u as F,i as k}from"./get-entropy-details-for-user-BGqBIfqR.mjs";import{E as B,a as P}from"./transfer-6YztDh-t.mjs";import{f as L}from"./formatErc20TokenAmount-BuPk9xcy.mjs";import{c as M,a as U,g as W,s as q}from"./ethers-iL-1LJcq.mjs";import{O as H}from"./analytics-mkkvFRju.mjs";import{t as $,g as G,d as R,c as _,u as D}from"./reservoir-DGil2p_K.mjs";import{y as O}from"./index-cnyso2Fp.mjs";import{g as Q,B as V}from"./BridgeNetworkSelectionView-P9DT3N3B.mjs";import{g as z}from"./getErc20Balance-gArwSiSB.mjs";import{v as X}from"./use-export-wallet-9if9oowB.mjs";import{T as Y}from"./TransferOrBridgeLoadingScreen-BfVr4ZWB.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"viem/utils";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"@privy-io/are-addresses-equal";import"./useGetSolPrice-DaxM-vxD.mjs";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-ChZSTtn2.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./Row-C9vrS4Zi.mjs";import"./ErrorMessage-D8VaAP5m.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Subtitle-CV-2yKE4.mjs";import"./Title-BnzYV3Is.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./getChainName-DjpPdUSc.mjs";import"./Chip-D2-wZOHJ.mjs";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"./shared-FM0rljBt.mjs";import"@heroicons/react/24/outline/ChevronDownIcon";import"./styles-DMbxOKl7.mjs";import"./LinkPasskeyScreen-BTtF-B9N.mjs";import"lucide-react";import"./TodoList-CgrU7uwu.mjs";import"./ScreenLayout-D7WpqBtE.mjs";import"./Screen-BHWyivgu.mjs";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"./Address-DFhsL61i.mjs";const Z={component:()=>{let{rpcConfig:Z,appId:J,closePrivyModal:K,createAnalyticsEvent:ee}=b(),{navigate:te,setModalData:ae,data:re}=A(),ie=j(),{wallets:ne}=F(),[oe,se]=i(!1),[de,ce]=i(0n),[le,me]=i(!1),[ue,pe]=i(null),[he,fe]=i(null),[ge,ve]=i([]),[ye,Ce]=i(0),[Ie,we]=i([]),[je,Te]=i(!1),[be,Ee]=i(!1),[Se,Ne]=i(!1),[Ae,xe]=i(!1),[Fe,ke]=i(),[Be,Pe]=i();if(!re?.funding||"ethereum"!==re.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:Le,chain:Me,connectedWallet:Ue}=re.funding,We=re.funding.address,qe=re.funding.erc20Address,[He,$e]=i(re.funding.amount);n((()=>{qe&&!Le&&pe(Error("Unable to fetch token details"))}),[]);let Ge=!!qe&&!!Le,Re=Ge?BigInt(parseFloat(He)*10**Le.decimals):o(He),_e=("ethereum"===Ue?.type?Ue:void 0)??ne[0],De=N(_e?.walletClientType||"unknown"),Oe=De?.name||"wallet",[Qe,Ve]=i(null);n((()=>{(async()=>{if(!_e)return;let e=await _e.getEthereumProvider();Ve(s({account:_e.address,transport:d(e)}).extend(c))})().catch(console.error)}),[_e]);let[ze,Xe]=i(0n);n((()=>{l({chain:Me,transport:m(k(Me,Z,J))}).getBalance({address:We}).then(Xe).catch(console.error)}),[]);let[Ye,Ze]=i(0n);n((()=>{Ge&&z({chain:Me,address:We,appId:J,rpcConfig:Z,erc20Address:qe}).then((e=>Ze(e.balance))).catch(console.error)}),[]);let{tokenPrice:Je}=x(Me.id),[Ke,et]=i({to:We,chain:Me,value:Re,data:void 0});n((()=>{(async()=>{let e,t;if(!Qe||!_e||je||Se)return;Te(!0);let a=l({chain:Ke.chain,transport:m(k(Ke.chain,Z,J))});if(Ge&&!Ke.data)return await a.simulateContract({address:qe,chain:Ke.chain,abi:B,functionName:"transfer",args:[We,Re],account:_e.address}).catch((e=>{if("ContractFunctionZeroDataError"===e?.cause?.name||e?.message?.includes("returned no data"))return a.simulateContract({address:qe,chain:Ke.chain,abi:P,functionName:"transfer",args:[We,Re],account:_e.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)}))?(Te(!1),void et({to:qe,chain:Ke.chain,data:u({abi:B,functionName:"transfer",args:[We,Re]}),value:"0x0"})):(Te(!1),void me(!0));try{e=await a.prepareTransactionRequest({account:_e.address,to:Ke.to,chain:Ke.chain,data:Ke.data,value:BigInt(Ke.value??0)})}catch(e){if(console.error(e),ge.length>1)fe(e.shortMessage??"Something went wrong");else if(be&&0===ge.length)return void pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE))}if(!e)return Te(!1),void me(!0);"eip1559"===e.type||"eip4844"===e.type||"eip7702"===e.type?void 0!==e.gasPrice&&delete e.gasPrice:("legacy"===e.type||"eip2930"===e.type)&&(void 0!==e.maxFeePerGas&&delete e.maxFeePerGas,void 0!==e.maxPriorityFeePerGas&&delete e.maxPriorityFeePerGas),Te(!1),Ne(!0),se(!0),ce(e.gas);try{await Qe.switchChain({id:Ke.chain.id})}catch(e){await Qe.addChain({chain:Ke.chain}),await Qe.switchChain({id:Ke.chain.id})}try{t=await Qe.sendTransaction(e)}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(ge.length<1){let t=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(t="User rejected the request."),pe(new E(t,void 0,S.TRANSACTION_FAILURE))}else fe(e.shortMessage??"Something went wrong")}if(t){if(await Qe.waitForTransactionReceipt({hash:t}),Ne(!1),be){if(Ie.length>0){let[e,...t]=Ie;if(!e)return;return we(t),void et(e)}return ke(t),void Pe("pending")}xe(!0),ae(O(re,"completed",t,_e?.walletClientType,Ge,Le,Me)),ee({eventName:H,payload:{provider:"external",status:"success",txHash:t,address:_e.address,chainId:Ke.chain.id,chainType:"ethereum",value:Ke.value?p(BigInt(Ke.value),Le?.decimals??18):void 0,token:Le?.symbol??qe??"ETH",destinationAddress:We,destinationChainId:Me.id,destinationChainType:"ethereum",destinationValue:Re?p(Re,Le?.decimals??18):void 0,destinationToken:Le?.symbol??qe??Me.nativeCurrency.name}})}else Ne(!1)})().catch(console.error)}),[Qe,Ke]),n((()=>{(async()=>{if(!le||!Qe||!_e)return;let e=h(ie.chains).filter((e=>e.id!==Me.id&&!!e.testnet==!!Me.testnet));Ge&&e.unshift(Me);let t=await Q({chains:e,address:_e.address,appId:J,rpcConfig:Z}),a=Ge?t.filter((e=>e.balance>0n)):t.filter((e=>e.balance>Re)),r=Ge&&t.every((e=>0n===e.balance));if(a.length<1)return void pe(new E(r?`Wallet ${X(_e.address)} doesn't have enough funds to cover gas fees. Top up your wallet and try again.`:`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));a.sort(((e,t)=>Number(Ge?(t.erc20Balance??0n)-(e.erc20Balance??0n):t.balance-e.balance)));let i=a.flatMap((e=>{let t=[{...e,isErc20Quote:!1,isTestnet:!!Me.testnet,input:$({appId:J,amount:Re.toString(),user:_e.address,recipient:We,destinationChainId:Me.id,destinationCurrency:qe,originChainId:e.chain.id})}];return Ge&&qe&&(e.erc20Balance??0n)>0n&&t.push({...e,isErc20Quote:!0,isTestnet:!!Me.testnet,input:$({appId:J,amount:Re.toString(),user:_e.address,recipient:We,destinationChainId:Me.id,destinationCurrency:qe,originChainId:e.chain.id,originCurrency:e.erc20Address})}),t})),n=(await Promise.allSettled(i.map((async e=>({...e,quote:await G(e)}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(n.length<1)return void pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));let o=n.map((e=>({bridgeTx:_(e.quote),allTxSteps:R(e.quote),balance:e.balance,chain:e.chain,erc20Balance:e.erc20Balance,isErc20Quote:e.isErc20Quote}))).filter((e=>!!e.bridgeTx));if(o.length>1)return void ve(o);let s=o[0];if(!s)return void pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE));let[d,...c]=s.allTxSteps??[s.bridgeTx];d?(Ee(!0),we(c.map((e=>({...e,chain:s.chain})))),et({data:d.data,to:d.to,value:d.value,chain:s.chain})):pe(new E(`Wallet ${X(_e.address)} does not have enough funds.`,void 0,S.INSUFFICIENT_BALANCE))})().catch(console.error)}),[le]),D({transactionHash:Fe,isTestnet:!!Me.testnet,bridgingStatus:Be,setBridgingStatus:Pe,onSuccess({transactionHash:e}){Ee(!1),xe(!0),ae(O(re,"completed",e,_e?.walletClientType,Ge,Le,Me)),ee({eventName:H,payload:{provider:"external",status:"success",txHash:e,address:_e?.address,chainId:Ke.chain.id,chainType:"ethereum",value:Ke.value?p(BigInt(Ke.value),Le?.decimals??18):void 0,token:Le?.symbol??qe??"ETH",destinationAddress:We,destinationChainId:Me.id,destinationChainType:"ethereum",destinationValue:Re?p(Re,Le?.decimals??18):void 0,destinationToken:Le?.symbol??qe??Me.nativeCurrency.name}})},onFailure({error:e}){Ee(!1),pe(e)}}),n((()=>{ue&&(ae({funding:re?.funding,solanaFundingData:re?.solanaFundingData,sendTransaction:re?.sendTransaction,errorModalData:{error:ue,previousScreen:"TransferFromWalletScreen"}}),te("ErrorScreen",!1))}),[ue]);let tt=!Ge&&Je?M(He??"0",Je):void 0,at=Ge?de:q([de,Re]),rt=at&&Je?U(at,Je):void 0,it=at?W(at,re?.funding?.erc20Address?re?.funding?.erc20ContractInfo?.symbol||"ETH":re?.funding?.chain.nativeCurrency.symbol||"ETH"):void 0,nt=de&&Je?U(de,Je):void 0,ot=de?W(de,Me?.nativeCurrency?.symbol||"ETH"):void 0;if(n((()=>{if(!Ae)return;let e=setTimeout(K,T);return()=>clearTimeout(e)}),[Ae]),Ae/*#__PURE__*/)return e(t,{children:[/*#__PURE__*/a(I,{}),/*#__PURE__*/a(f,{}),/*#__PURE__*/e(g,{children:[/*#__PURE__*/a(r,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/a(C,{title:"Success!",description:`You’ve successfully added ${He} ${Ge?Le.symbol:Me.nativeCurrency.symbol} to your ${ie.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/a(v,{}),/*#__PURE__*/a(y,{})]});let st=Ge?`${L({amount:Ye,decimals:Le.decimals})} ${Le.symbol}`:W(ze,Me.nativeCurrency.symbol,3,!0),dt=ge[ye];return ge.length>1&&dt?/*#__PURE__*/a(V,{displayName:Oe,configuredFundingChain:Me,formattedBalance:st,fundingAmount:He,fundingCurrency:Ge?Le.symbol:Me.nativeCurrency.symbol,fundingAmountInUsd:tt,options:ge,selectedOption:dt,isPreparing:je,isSubmitting:Se,addressToFund:We,fundingWalletAddress:_e?.address||"",errorMessage:he,onSubmit:()=>{if(re.funding?.amount===He){let[e,...t]=dt.allTxSteps??[dt.bridgeTx];if(!e)return;return Ee(!0),we(t.map((e=>({...e,chain:dt.chain})))),void et({to:e.to,data:e.data,value:e.value,chain:dt.chain})}(async function(){if(_e&&dt)try{let e=await G({isTestnet:!!Me.testnet,input:$({appId:J,amount:Re.toString(),user:_e.address,recipient:We,destinationChainId:Me.id,destinationCurrency:qe,originChainId:dt.chain.id})}),[t,...a]=R(e);if(!t)throw Error("Invalid transaction request");Ee(!0),we(a.map((e=>({...e,chain:dt.chain})))),et({data:t.data,to:t.to,value:t.value,chain:dt.chain})}catch(e){console.error(e),pe(new E("Unable to fetch quotes for bridging",e,S.INSUFFICIENT_BALANCE))}})().catch(console.error)},onSelect:e=>{e!==ye&&(fe(null),Ce(e))},onAmountChange:$e}):oe&&de&&_e&&re?.funding?/*#__PURE__*/a(Y,{walletClientType:_e?.walletClientType||"unknown",displayName:Oe,addressToFund:We,isBridging:be,isErc20Flow:Ge,totalPriceInUsd:rt,totalPriceInNativeCurrency:it,gasPriceInUsd:nt,gasPriceInNativeCurrency:ot,chainId:Me.id,chainName:Me.name}):
2
2
  /*#__PURE__*/e(t,{children:[/*#__PURE__*/a(I,{}),/*#__PURE__*/a(w,{}),/*#__PURE__*/a("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/a(y,{})]})}};export{Z as AwaitingExternalEthereumTransferScreen,Z as default};
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import o from"@heroicons/react/20/solid/CheckIcon";import t from"@heroicons/react/24/outline/EnvelopeIcon";import i from"@heroicons/react/24/outline/PhoneIcon";import{useState as n,useEffect as a}from"react";import{isMobile as s}from"react-device-detect";import{styled as c}from"styled-components";import{H as l}from"./Layouts-BlFm53ED.mjs";import{L as d}from"./Link-DJ5gq9Di.mjs";import{u as p,q as m}from"./context-aGvo4MVQ.mjs";import{u,e as f,c as v,k as h}from"./internal-context-C4ZqP8IF.mjs";import{a as y,u as g}from"./privy-context-CkPtrpbt.mjs";import{s as x}from"./shouldProceedtoEmbeddedWalletCreationFlow-BSnOzrud.mjs";import{S as E}from"./ScreenLayout-B6n5Feil.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./index-D23O4czL.mjs";import"uuid";import"jose";import"eventemitter3";import"./useActiveWallet-By6UNJY1.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-Db8GdSAT.mjs";import"./get-entropy-details-for-user-DkZdXKpr.mjs";import"./events-context-CI0iqAXA.mjs";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-DPZ1iMmn.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./ModalHeader-Duq1Izpl.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-Ce8BE24H.mjs";import"./index-Dq_xe9dz.mjs";const b=({contactMethod:c,authFlow:p,appName:m="Privy",whatsAppEnabled:u=!1,onBack:f,onCodeSubmit:v,onResend:h,errorMessage:y,success:g=!1,resendCountdown:x=0,onInvalidInput:b,onClearError:A})=>{let[w,T]=n(S);a((()=>{y||T(S)}),[y]);let k=async e=>{e.preventDefault();let r=e.currentTarget.value.replace(" ","");if(""===r)return;if(isNaN(Number(r)))return void b?.("Code should be numeric");A?.();let o=Number(e.currentTarget.name?.charAt(5)),t=[...r||[""]].slice(0,C-o),i=[...w.slice(0,o),...t,...w.slice(o+t.length)];T(i);let n=Math.min(Math.max(o+t.length,0),C-1);if(!isNaN(Number(e.currentTarget.value))){let e=document.querySelector(`input[name=code-${n}]`);e?.focus()}if(i.every((e=>e&&!isNaN(+e)))){let e=document.querySelector(`input[name=code-${n}]`);e?.blur(),await(v?.(i.join("")))}};/*#__PURE__*/return e(E,{title:"Enter confirmation code",subtitle:/*#__PURE__*/r("span","email"===p?{children:["Please check ",/*#__PURE__*/e(M,{children:c})," for an email from privy.io and enter your code below."]}:{children:["Please check ",/*#__PURE__*/e(M,{children:c})," for a",u?" WhatsApp":""," message from ",m," and enter your code below."]}),icon:"email"===p?t:i,onBack:f,showBack:!0,helpText:/*#__PURE__*/r(L,{children:[/*#__PURE__*/r("span",{children:["Didn't get ","email"===p?"an email":"a message","?"]}),x?/*#__PURE__*/r(R,{children:[/*#__PURE__*/e(o,{color:"var(--privy-color-foreground)",strokeWidth:1.33,height:"12px",width:"12px"}),/*#__PURE__*/e("span",{children:"Code sent"})]}):/*#__PURE__*/e(d,{as:"button",size:"sm",onClick:h,children:"Resend code"})]}),children:/*#__PURE__*/e(_,{children:/*#__PURE__*/e(l,{children:/*#__PURE__*/r(j,{children:[/*#__PURE__*/e("div",{children:w.map(((r,o)=>/*#__PURE__*/e("input",{name:`code-${o}`,type:"text",value:w[o],onChange:k,onKeyUp:e=>{"Backspace"===e.key&&(e=>{if(A?.(),T([...w.slice(0,e),"",...w.slice(e+1)]),e>0){let r=document.querySelector(`input[name=code-${e-1}]`);r?.focus()}})(o)},inputMode:"numeric",autoFocus:0===o,pattern:"[0-9]",className:`${g?"success":""} ${y?"fail":""}`,autoComplete:s?"one-time-code":"off"},o)))}),/*#__PURE__*/e(I,{$fail:!!y,$success:g,children:/*#__PURE__*/e("span",{children:"Invalid or expired verification code"===y?"Incorrect code":y||(g?"Success!":"")})})]})})})})};let C=6,S=Array(6).fill("");var A,w,T=((A=T||{})[A.RESET_AFTER_DELAY=0]="RESET_AFTER_DELAY",A[A.CLEAR_ON_NEXT_VALID_INPUT=1]="CLEAR_ON_NEXT_VALID_INPUT",A),k=((w=k||{})[w.EMAIL=0]="EMAIL",w[w.SMS=1]="SMS",w);const N={component:()=>{let{navigate:r,lastScreen:o,navigateBack:t,setModalData:i,onUserCloseViaDialogOrKeybindRef:s}=y(),c=p(),{closePrivyModal:l,resendEmailCode:d,resendSmsCode:E,getAuthMeta:C,loginWithCode:S,updateWallets:A,createAnalyticsEvent:w}=u(),{authenticated:T,logout:k,user:N}=g(),{whatsAppEnabled:_}=p(),[j,I]=n(!1),[L,R]=n(null),[M,D]=n(null),[O,P]=n(0);s.current=()=>null;let U=C()?.email?0:1,W=0===U?C()?.email||"":C()?.phoneNumber||"",F=m-500;a((()=>{if(O){let e=setTimeout((()=>{P(O-1)}),1e3);return()=>clearTimeout(e)}}),[O]),a((()=>{if(T&&j&&N){if(c?.legal.requireUsersAcceptTerms&&!N.hasAcceptedTerms){let e=setTimeout((()=>{r("AffirmativeConsentScreen")}),F);return()=>clearTimeout(e)}if(x(N,c.embeddedWallets)){let e=setTimeout((()=>{i({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),w({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AwaitingPasswordlessCodeScreen"}}),k()},callAuthOnSuccessOnClose:!0}}),r("EmbeddedWalletOnAccountCreateScreen")}),F);return()=>clearTimeout(e)}{A();let e=setTimeout((()=>l({shouldCallAuthOnSuccess:!0,isSuccess:!0})),m);return()=>clearTimeout(e)}}}),[T,j,N]),a((()=>{if(L&&0===M){let e=setTimeout((()=>{R(null),D(null);let e=document.querySelector("input[name=code-0]");e?.focus()}),1400);return()=>clearTimeout(e)}}),[L,M]);/*#__PURE__*/return e(b,{contactMethod:W,authFlow:0===U?"email":"sms",appName:c?.name,whatsAppEnabled:_,onBack:()=>t(),onCodeSubmit:async e=>{try{await S(e),I(!0)}catch(e){if(e instanceof f&&e.privyErrorCode===v.INVALID_CREDENTIALS)R("Invalid or expired verification code"),D(0);else if(e instanceof f&&e.privyErrorCode===v.CANNOT_LINK_MORE_OF_TYPE)R(e.message);else{if(e instanceof f&&e.privyErrorCode===v.USER_LIMIT_REACHED)return console.error(new h(e).toString()),void r("UserLimitReachedScreen");if(e instanceof f&&e.privyErrorCode===v.USER_DOES_NOT_EXIST)return void r("AccountNotFoundScreen");if(e instanceof f&&e.privyErrorCode===v.LINKED_TO_ANOTHER_USER)return i({errorModalData:{error:e,previousScreen:o??"AwaitingPasswordlessCodeScreen"}}),void r("ErrorScreen",!1);if(e instanceof f&&e.privyErrorCode===v.DISALLOWED_PLUS_EMAIL)return i({inlineError:{error:e}}),void r("ConnectOrCreateScreen",!1);if(e instanceof f&&e.privyErrorCode===v.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return i({accountTransfer:{nonce:e.data?.data?.nonce,account:W,displayName:e.data?.data?.account?.displayName,linkMethod:0===U?"email":"sms",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void r("LinkConflictScreen");R("Issue verifying code"),D(0)}}},onResend:async()=>{P(30),0===U?await d():await E()},errorMessage:L||void 0,success:j,resendCountdown:O,onInvalidInput:e=>{R(e),D(1)},onClearError:()=>{1===M&&(R(null),D(null))}})}};let _=c.div`
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import o from"@heroicons/react/20/solid/CheckIcon";import t from"@heroicons/react/24/outline/EnvelopeIcon";import i from"@heroicons/react/24/outline/PhoneIcon";import{useState as n,useEffect as a}from"react";import{isMobile as s}from"react-device-detect";import{styled as c}from"styled-components";import{H as l}from"./Layouts-BlFm53ED.mjs";import{L as d}from"./Link-DJ5gq9Di.mjs";import{u as p,q as m}from"./context-DanhWeBg.mjs";import{u,e as f,c as v,k as h}from"./internal-context-C4ZqP8IF.mjs";import{a as y,u as g}from"./privy-context-pimLCE3L.mjs";import{s as x}from"./shouldProceedtoEmbeddedWalletCreationFlow-CvbohbW6.mjs";import{S as E}from"./ScreenLayout-D7WpqBtE.mjs";import"@privy-io/js-sdk-core";import"tinycolor2";import"ofetch";import"@privy-io/are-addresses-equal";import"./index-cnyso2Fp.mjs";import"uuid";import"jose";import"eventemitter3";import"./useActiveWallet-DFp38Dx-.mjs";import"zustand";import"viem";import"viem/utils";import"./use-export-wallet-9if9oowB.mjs";import"./get-entropy-details-for-user-BGqBIfqR.mjs";import"./events-context-CI0iqAXA.mjs";import"@coinbase/wallet-sdk";import"@walletconnect/ethereum-provider";import"./usePrivy-ChZSTtn2.mjs";import"./paths-BzM95ysC.mjs";import"js-cookie";import"./PrivyPluginContext-2QN2dVUw.mjs";import"mipd";import"@privy-io/popup";import"@scure/base";import"@headlessui/react";import"@privy-io/urls";import"@privy-io/ethereum";import"./getEmbeddedConnectedWallet-JzK4iD-L.mjs";import"./frame-CjhCpycO.mjs";import"@privy-io/routes";import"x402/client";import"@privy-io/api-base";import"viem/accounts";import"./use-sign-with-user-signer-BYctG7hm.mjs";import"./ModalHeader-DnjCPU3j.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"./Screen-BHWyivgu.mjs";import"./index-Dq_xe9dz.mjs";const b=({contactMethod:c,authFlow:p,appName:m="Privy",whatsAppEnabled:u=!1,onBack:f,onCodeSubmit:v,onResend:h,errorMessage:y,success:g=!1,resendCountdown:x=0,onInvalidInput:b,onClearError:A})=>{let[w,T]=n(S);a((()=>{y||T(S)}),[y]);let k=async e=>{e.preventDefault();let r=e.currentTarget.value.replace(" ","");if(""===r)return;if(isNaN(Number(r)))return void b?.("Code should be numeric");A?.();let o=Number(e.currentTarget.name?.charAt(5)),t=[...r||[""]].slice(0,C-o),i=[...w.slice(0,o),...t,...w.slice(o+t.length)];T(i);let n=Math.min(Math.max(o+t.length,0),C-1);if(!isNaN(Number(e.currentTarget.value))){let e=document.querySelector(`input[name=code-${n}]`);e?.focus()}if(i.every((e=>e&&!isNaN(+e)))){let e=document.querySelector(`input[name=code-${n}]`);e?.blur(),await(v?.(i.join("")))}};/*#__PURE__*/return e(E,{title:"Enter confirmation code",subtitle:/*#__PURE__*/r("span","email"===p?{children:["Please check ",/*#__PURE__*/e(M,{children:c})," for an email from privy.io and enter your code below."]}:{children:["Please check ",/*#__PURE__*/e(M,{children:c})," for a",u?" WhatsApp":""," message from ",m," and enter your code below."]}),icon:"email"===p?t:i,onBack:f,showBack:!0,helpText:/*#__PURE__*/r(L,{children:[/*#__PURE__*/r("span",{children:["Didn't get ","email"===p?"an email":"a message","?"]}),x?/*#__PURE__*/r(R,{children:[/*#__PURE__*/e(o,{color:"var(--privy-color-foreground)",strokeWidth:1.33,height:"12px",width:"12px"}),/*#__PURE__*/e("span",{children:"Code sent"})]}):/*#__PURE__*/e(d,{as:"button",size:"sm",onClick:h,children:"Resend code"})]}),children:/*#__PURE__*/e(_,{children:/*#__PURE__*/e(l,{children:/*#__PURE__*/r(j,{children:[/*#__PURE__*/e("div",{children:w.map(((r,o)=>/*#__PURE__*/e("input",{name:`code-${o}`,type:"text",value:w[o],onChange:k,onKeyUp:e=>{"Backspace"===e.key&&(e=>{if(A?.(),T([...w.slice(0,e),"",...w.slice(e+1)]),e>0){let r=document.querySelector(`input[name=code-${e-1}]`);r?.focus()}})(o)},inputMode:"numeric",autoFocus:0===o,pattern:"[0-9]",className:`${g?"success":""} ${y?"fail":""}`,autoComplete:s?"one-time-code":"off"},o)))}),/*#__PURE__*/e(I,{$fail:!!y,$success:g,children:/*#__PURE__*/e("span",{children:"Invalid or expired verification code"===y?"Incorrect code":y||(g?"Success!":"")})})]})})})})};let C=6,S=Array(6).fill("");var A,w,T=((A=T||{})[A.RESET_AFTER_DELAY=0]="RESET_AFTER_DELAY",A[A.CLEAR_ON_NEXT_VALID_INPUT=1]="CLEAR_ON_NEXT_VALID_INPUT",A),k=((w=k||{})[w.EMAIL=0]="EMAIL",w[w.SMS=1]="SMS",w);const N={component:()=>{let{navigate:r,lastScreen:o,navigateBack:t,setModalData:i,onUserCloseViaDialogOrKeybindRef:s}=y(),c=p(),{closePrivyModal:l,resendEmailCode:d,resendSmsCode:E,getAuthMeta:C,loginWithCode:S,updateWallets:A,createAnalyticsEvent:w}=u(),{authenticated:T,logout:k,user:N}=g(),{whatsAppEnabled:_}=p(),[j,I]=n(!1),[L,R]=n(null),[M,D]=n(null),[O,P]=n(0);s.current=()=>null;let U=C()?.email?0:1,W=0===U?C()?.email||"":C()?.phoneNumber||"",F=m-500;a((()=>{if(O){let e=setTimeout((()=>{P(O-1)}),1e3);return()=>clearTimeout(e)}}),[O]),a((()=>{if(T&&j&&N){if(c?.legal.requireUsersAcceptTerms&&!N.hasAcceptedTerms){let e=setTimeout((()=>{r("AffirmativeConsentScreen")}),F);return()=>clearTimeout(e)}if(x(N,c.embeddedWallets)){let e=setTimeout((()=>{i({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),w({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"AwaitingPasswordlessCodeScreen"}}),k()},callAuthOnSuccessOnClose:!0}}),r("EmbeddedWalletOnAccountCreateScreen")}),F);return()=>clearTimeout(e)}{A();let e=setTimeout((()=>l({shouldCallAuthOnSuccess:!0,isSuccess:!0})),m);return()=>clearTimeout(e)}}}),[T,j,N]),a((()=>{if(L&&0===M){let e=setTimeout((()=>{R(null),D(null);let e=document.querySelector("input[name=code-0]");e?.focus()}),1400);return()=>clearTimeout(e)}}),[L,M]);/*#__PURE__*/return e(b,{contactMethod:W,authFlow:0===U?"email":"sms",appName:c?.name,whatsAppEnabled:_,onBack:()=>t(),onCodeSubmit:async e=>{try{await S(e),I(!0)}catch(e){if(e instanceof f&&e.privyErrorCode===v.INVALID_CREDENTIALS)R("Invalid or expired verification code"),D(0);else if(e instanceof f&&e.privyErrorCode===v.CANNOT_LINK_MORE_OF_TYPE)R(e.message);else{if(e instanceof f&&e.privyErrorCode===v.USER_LIMIT_REACHED)return console.error(new h(e).toString()),void r("UserLimitReachedScreen");if(e instanceof f&&e.privyErrorCode===v.USER_DOES_NOT_EXIST)return void r("AccountNotFoundScreen");if(e instanceof f&&e.privyErrorCode===v.LINKED_TO_ANOTHER_USER)return i({errorModalData:{error:e,previousScreen:o??"AwaitingPasswordlessCodeScreen"}}),void r("ErrorScreen",!1);if(e instanceof f&&e.privyErrorCode===v.DISALLOWED_PLUS_EMAIL)return i({inlineError:{error:e}}),void r("ConnectOrCreateScreen",!1);if(e instanceof f&&e.privyErrorCode===v.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return i({accountTransfer:{nonce:e.data?.data?.nonce,account:W,displayName:e.data?.data?.account?.displayName,linkMethod:0===U?"email":"sms",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void r("LinkConflictScreen");R("Issue verifying code"),D(0)}}},onResend:async()=>{P(30),0===U?await d():await E()},errorMessage:L||void 0,success:j,resendCountdown:O,onInvalidInput:e=>{R(e),D(1)},onClearError:()=>{1===M&&(R(null),D(null))}})}};let _=c.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  align-items: center;
@@ -1,2 +1,2 @@
1
- import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useRef as o,useState as a,useMemo as i,useEffect as s}from"react";import{parseEther as c}from"viem";import{ConnectedStandardSolanaWallet as d}from"@privy-io/js-sdk-core";import{b as l,c as m,R as u}from"./Layouts-BlFm53ED.mjs";import{B as p}from"./ModalHeader-Duq1Izpl.mjs";import{C as f}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as h}from"./FundWalletMethodHeader-dEfQKUIt.mjs";import{N as g}from"./index-Dq_xe9dz.mjs";import{u as v,t as w}from"./context-aGvo4MVQ.mjs";import{u as I,b as y,c as C}from"./internal-context-C4ZqP8IF.mjs";import{z as T}from"./useActiveWallet-By6UNJY1.mjs";import{a as S}from"./privy-context-CkPtrpbt.mjs";import{O as j}from"./analytics-mkkvFRju.mjs";import{g as A,t as b,e as N,a as F,b as U,u as x}from"./reservoir-DGil2p_K.mjs";import{u as E}from"./PrivyPluginContext-2QN2dVUw.mjs";import{S as k}from"./usePrivy-DPZ1iMmn.mjs";import{H as R,I as W}from"./use-export-wallet-Db8GdSAT.mjs";import{T as L}from"./TransferOrBridgeLoadingScreen-CknmH__D.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"viem/utils";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"./get-entropy-details-for-user-DkZdXKpr.mjs";import"@privy-io/are-addresses-equal";import"eventemitter3";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./Row-C9vrS4Zi.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Address-PwZSXm9b.mjs";import"lucide-react";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";const P={component:function(){let P=v(),{closePrivyModal:B,createAnalyticsEvent:D,connectors:H}=I(),{navigate:$,setModalData:M,data:q}=S(),O=v(),_=o(!1),z=E(),[G,Q]=a(!1),[V,X]=a(!1),[Y,J]=a(null),[K,Z]=a(),[ee,te]=a();if(!q?.funding||"ethereum"!==q.funding.chainType)throw Error("Invalid funding data");let{amount:re,connectedWallet:ne,chain:oe,solanaChain:ae,isUSDC:ie}=q.funding,se=q.funding.address,ce=q.funding.erc20Address,de=q.funding.isUSDC?"USDC":oe.nativeCurrency.symbol,le=i((()=>"solana"===ne?.type?ne.provider:function({connectors:e,connectedWalletAddress:t}){let r=e.find((e=>"solana"===e.chainType&&e.wallets.some((e=>e.address===t)))),n=r?.wallet.accounts.find((e=>e.address===t));if(!r||!n)throw new y("Unable to find source wallet connector");return new d({wallet:r.wallet,account:n})}({connectors:H,connectedWalletAddress:ne?.address||""})),[ne,H]),me=i((()=>{let e=z(k);if(!e)throw new y("Unable to load solana plugin");let t=P.solanaRpcs["solana:mainnet"];if(!t)throw new y("Unable to load mainnet RPC");return e.getSolanaRpcClient({rpc:t.rpc,rpcSubscriptions:t.rpcSubscriptions,chain:"solana:mainnet",blockExplorerUrl:t.blockExplorerUrl??"https://explorer.solana.com"})}),[]),ue=T(R(le?.standardWallet.name||"unknown")),pe=ue?.name||"wallet";return s((()=>{(async function(){if(!le||!oe||_.current)return;let e=z(k);if(!e)return void J(new y("Unable to solana plugin"));_.current=!0,oe?.testnet&&console.warn("Solana testnets are not supported for bridging");let t=ie?1e6*parseFloat(re):c(re),r=await A({isTestnet:!!oe.testnet,input:b({appId:O.id,amount:t.toString(),user:le.address,recipient:se,destinationChainId:oe.id,originChainId:U,originCurrency:ie?N:F,destinationCurrency:ie?ce:void 0})}).catch(console.error);if(!r)return void J(new y(`Unable to fetch quotes for bridging. Wallet ${W(le.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));let n=await e.createTransactionFromRelayQuote({quote:r,source:le.address,solanaClient:me});if(n)try{Q(!0);let t=await e.simulateTransaction({solanaClient:me,tx:n});if(t.hasError)return t.hasFunds?(console.error("Transaction failed:",t.error),void J(new y("Something went wrong",void 0,C.TRANSACTION_FAILURE))):void J(new y(`Wallet ${W(le?.address)} does not have enough funds. ${r.details.currencyIn.amountFormatted} ${de} are needed to complete the transaction.`,void 0,C.INSUFFICIENT_BALANCE));let{signature:o}=await le.signAndSendTransaction({chain:"solana:mainnet",transaction:n}),a=e.getAddressFromBuffer(o);Z(a),te("pending")}catch(e){if(console.error(e),/user rejected the request/gi.test(e.message||""))return void J(new y("Transaction was rejected by the user",void 0,C.TRANSACTION_FAILURE));J(new y("Something went wrong",void 0,C.TRANSACTION_FAILURE))}else J(new y(`Unable to select bridge option from quotes. Wallet ${W(le.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))})().catch(console.error)}),[]),x({transactionHash:K,isTestnet:!1,bridgingStatus:ee,setBridgingStatus:te,onSuccess({transactionHash:e}){Q(!1),X(!0),D({eventName:j,payload:{provider:"external",status:"success",txHash:e,address:le.address,chainType:"solana",clusterName:ae,token:"SOL",destinationAddress:se,destinationChainId:oe.id,destinationChainType:"ethereum",destinationValue:re,destinationToken:ie?"USDC":"ETH"}})},onFailure({error:e}){Q(!1),J(e)}}),s((()=>{if(!V)return;let e=setTimeout(B,w);return()=>clearTimeout(e)}),[V]),s((()=>{Y&&(M({funding:q?.funding,solanaFundingData:q?.solanaFundingData,sendTransaction:q?.sendTransaction,errorModalData:{error:Y,previousScreen:"TransferFromWalletScreen"}}),$("ErrorScreen",!1))}),[Y]),V?/*#__PURE__*/e(r,{children:[/*#__PURE__*/t(h,{}),/*#__PURE__*/t(l,{}),/*#__PURE__*/e(m,{children:[/*#__PURE__*/t(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t(f,{title:"Success!",description:`You’ve successfully added ${re} ${de} to your ${O.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t(u,{}),/*#__PURE__*/t(p,{})]}):G&&le?/*#__PURE__*/t(L,{walletClientType:R(le?.standardWallet.name||"unknown"),displayName:pe,addressToFund:se,isBridging:G,isErc20Flow:!1,chainId:oe.id,chainName:oe.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
1
+ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useRef as o,useState as a,useMemo as i,useEffect as s}from"react";import{parseEther as c}from"viem";import{ConnectedStandardSolanaWallet as d}from"@privy-io/js-sdk-core";import{b as l,c as m,R as u}from"./Layouts-BlFm53ED.mjs";import{B as p}from"./ModalHeader-DnjCPU3j.mjs";import{C as f}from"./ScreenHeader-CHmc4-Lu.mjs";import{t as h}from"./FundWalletMethodHeader-y6GQmPN-.mjs";import{N as g}from"./index-Dq_xe9dz.mjs";import{u as v,t as w}from"./context-DanhWeBg.mjs";import{u as I,b as y,c as C}from"./internal-context-C4ZqP8IF.mjs";import{z as T}from"./useActiveWallet-DFp38Dx-.mjs";import{a as S}from"./privy-context-pimLCE3L.mjs";import{O as j}from"./analytics-mkkvFRju.mjs";import{g as A,t as b,e as N,a as F,b as U,u as x}from"./reservoir-DGil2p_K.mjs";import{u as E}from"./PrivyPluginContext-2QN2dVUw.mjs";import{S as k}from"./usePrivy-ChZSTtn2.mjs";import{H as R,I as W}from"./use-export-wallet-9if9oowB.mjs";import{T as L}from"./TransferOrBridgeLoadingScreen-BfVr4ZWB.mjs";import"styled-components";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"tinycolor2";import"ofetch";import"zustand";import"viem/utils";import"react-device-detect";import"./events-context-CI0iqAXA.mjs";import"./get-entropy-details-for-user-BGqBIfqR.mjs";import"@privy-io/are-addresses-equal";import"eventemitter3";import"./InjectedWalletIcon-DLcYOGDj.mjs";import"@heroicons/react/24/outline/WalletIcon";import"./Row-C9vrS4Zi.mjs";import"./Value-tcJV9e0L.mjs";import"./LoadingSkeleton-U6-3yFwI.mjs";import"./Address-DFhsL61i.mjs";import"lucide-react";import"./NetworkIcon-B48ilzF8.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";const P={component:function(){let P=v(),{closePrivyModal:B,createAnalyticsEvent:D,connectors:H}=I(),{navigate:$,setModalData:M,data:q}=S(),O=v(),_=o(!1),z=E(),[G,Q]=a(!1),[V,X]=a(!1),[Y,J]=a(null),[K,Z]=a(),[ee,te]=a();if(!q?.funding||"ethereum"!==q.funding.chainType)throw Error("Invalid funding data");let{amount:re,connectedWallet:ne,chain:oe,solanaChain:ae,isUSDC:ie}=q.funding,se=q.funding.address,ce=q.funding.erc20Address,de=q.funding.isUSDC?"USDC":oe.nativeCurrency.symbol,le=i((()=>"solana"===ne?.type?ne.provider:function({connectors:e,connectedWalletAddress:t}){let r=e.find((e=>"solana"===e.chainType&&e.wallets.some((e=>e.address===t)))),n=r?.wallet.accounts.find((e=>e.address===t));if(!r||!n)throw new y("Unable to find source wallet connector");return new d({wallet:r.wallet,account:n})}({connectors:H,connectedWalletAddress:ne?.address||""})),[ne,H]),me=i((()=>{let e=z(k);if(!e)throw new y("Unable to load solana plugin");let t=P.solanaRpcs["solana:mainnet"];if(!t)throw new y("Unable to load mainnet RPC");return e.getSolanaRpcClient({rpc:t.rpc,rpcSubscriptions:t.rpcSubscriptions,chain:"solana:mainnet",blockExplorerUrl:t.blockExplorerUrl??"https://explorer.solana.com"})}),[]),ue=T(R(le?.standardWallet.name||"unknown")),pe=ue?.name||"wallet";return s((()=>{(async function(){if(!le||!oe||_.current)return;let e=z(k);if(!e)return void J(new y("Unable to solana plugin"));_.current=!0,oe?.testnet&&console.warn("Solana testnets are not supported for bridging");let t=ie?1e6*parseFloat(re):c(re),r=await A({isTestnet:!!oe.testnet,input:b({appId:O.id,amount:t.toString(),user:le.address,recipient:se,destinationChainId:oe.id,originChainId:U,originCurrency:ie?N:F,destinationCurrency:ie?ce:void 0})}).catch(console.error);if(!r)return void J(new y(`Unable to fetch quotes for bridging. Wallet ${W(le.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));let n=await e.createTransactionFromRelayQuote({quote:r,source:le.address,solanaClient:me});if(n)try{Q(!0);let t=await e.simulateTransaction({solanaClient:me,tx:n});if(t.hasError)return t.hasFunds?(console.error("Transaction failed:",t.error),void J(new y("Something went wrong",void 0,C.TRANSACTION_FAILURE))):void J(new y(`Wallet ${W(le?.address)} does not have enough funds. ${r.details.currencyIn.amountFormatted} ${de} are needed to complete the transaction.`,void 0,C.INSUFFICIENT_BALANCE));let{signature:o}=await le.signAndSendTransaction({chain:"solana:mainnet",transaction:n}),a=e.getAddressFromBuffer(o);Z(a),te("pending")}catch(e){if(console.error(e),/user rejected the request/gi.test(e.message||""))return void J(new y("Transaction was rejected by the user",void 0,C.TRANSACTION_FAILURE));J(new y("Something went wrong",void 0,C.TRANSACTION_FAILURE))}else J(new y(`Unable to select bridge option from quotes. Wallet ${W(le.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))})().catch(console.error)}),[]),x({transactionHash:K,isTestnet:!1,bridgingStatus:ee,setBridgingStatus:te,onSuccess({transactionHash:e}){Q(!1),X(!0),D({eventName:j,payload:{provider:"external",status:"success",txHash:e,address:le.address,chainType:"solana",clusterName:ae,token:"SOL",destinationAddress:se,destinationChainId:oe.id,destinationChainType:"ethereum",destinationValue:re,destinationToken:ie?"USDC":"ETH"}})},onFailure({error:e}){Q(!1),J(e)}}),s((()=>{if(!V)return;let e=setTimeout(B,w);return()=>clearTimeout(e)}),[V]),s((()=>{Y&&(M({funding:q?.funding,solanaFundingData:q?.solanaFundingData,sendTransaction:q?.sendTransaction,errorModalData:{error:Y,previousScreen:"TransferFromWalletScreen"}}),$("ErrorScreen",!1))}),[Y]),V?/*#__PURE__*/e(r,{children:[/*#__PURE__*/t(h,{}),/*#__PURE__*/t(l,{}),/*#__PURE__*/e(m,{children:[/*#__PURE__*/t(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t(f,{title:"Success!",description:`You’ve successfully added ${re} ${de} to your ${O.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t(u,{}),/*#__PURE__*/t(p,{})]}):G&&le?/*#__PURE__*/t(L,{walletClientType:R(le?.standardWallet.name||"unknown"),displayName:pe,addressToFund:se,isBridging:G,isErc20Flow:!1,chainId:oe.id,chainName:oe.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
2
  /*#__PURE__*/e(r,{children:[/*#__PURE__*/t(h,{}),/*#__PURE__*/t(g,{}),/*#__PURE__*/t("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/t(p,{})]})}};export{P as AwaitingSolToEvmBridgingScreen,P as default};
@@ -1,4 +1,4 @@
1
- import{createPublicClient as e,http as r}from"viem";import{UsdcAddressMap as a,formatWalletAddress as o}from"@privy-io/js-sdk-core";import{i}from"./get-entropy-details-for-user-DkZdXKpr.mjs";import{g as n}from"./getErc20Balance-B5YTRX0-.mjs";import{jsx as t,jsxs as s,Fragment as c}from"react/jsx-runtime";import{useRef as m}from"react";import{c as l,B as d}from"./ModalHeader-Duq1Izpl.mjs";import{b as h,R as p}from"./Layouts-BlFm53ED.mjs";import{t as u}from"./FundWalletMethodHeader-dEfQKUIt.mjs";import{R as f}from"./Row-C9vrS4Zi.mjs";import{E as g}from"./ErrorMessage-D8VaAP5m.mjs";import{V as b,L as y}from"./Value-tcJV9e0L.mjs";import{S as v}from"./Subtitle-CV-2yKE4.mjs";import{T as j}from"./Title-BnzYV3Is.mjs";import w from"@heroicons/react/24/outline/WalletIcon";import{styled as C}from"styled-components";import{g as x}from"./getChainName-DjpPdUSc.mjs";import{C as k}from"./Chip-D2-wZOHJ.mjs";import{N}from"./NetworkIcon-B48ilzF8.mjs";import{B as T,a as B}from"./shared-FM0rljBt.mjs";import{Menu as S,MenuButton as A,MenuItems as I,MenuItem as $}from"@headlessui/react";import E from"@heroicons/react/24/outline/ChevronDownIcon";import{f as F}from"./formatErc20TokenAmount-BuPk9xcy.mjs";import{g as M}from"./ethers-BNftJuZG.mjs";import{F as P,a as U,b as D,c as L,d as R}from"./styles--34ZnZR_.mjs";const W=({chains:o,appId:t,address:s,rpcConfig:c})=>Promise.all(o.map((async o=>{let m=e({chain:o,transport:r(i(o,c,t))}),l=await m.getBalance({address:s}).catch((()=>0n)),d=null,h=a[o.id];if(h){let{balance:e}=await n({address:s,chain:o,rpcConfig:c,appId:t,erc20Address:h});d=e}return{balance:l,erc20Balance:d,erc20Address:h,chain:o}}))),H=({balance:e,className:r,chain:a})=>/*#__PURE__*/t(T,{className:r,$state:void 0,children:/*#__PURE__*/t(Q,{balance:e,chain:a})}),Q=({balance:e,chain:r})=>/*#__PURE__*/s(c,{children:[/*#__PURE__*/s(V,{children:[/*#__PURE__*/t(z,{chainId:"object"==typeof r?r.id:"solana"}),/*#__PURE__*/t(b,{children:"object"==typeof r?r.name:x(r)})]}),/*#__PURE__*/s(k,{isLoading:!1,isPulsing:!1,color:"gray",children:[/*#__PURE__*/t(q,{children:/*#__PURE__*/t(w,{})}),e]})]});let V=C.div`
1
+ import{createPublicClient as e,http as r}from"viem";import{UsdcAddressMap as a,formatWalletAddress as o}from"@privy-io/js-sdk-core";import{i}from"./get-entropy-details-for-user-BGqBIfqR.mjs";import{g as n}from"./getErc20Balance-gArwSiSB.mjs";import{jsx as t,jsxs as s,Fragment as c}from"react/jsx-runtime";import{useRef as m}from"react";import{c as l,B as d}from"./ModalHeader-DnjCPU3j.mjs";import{b as h,R as p}from"./Layouts-BlFm53ED.mjs";import{t as u}from"./FundWalletMethodHeader-y6GQmPN-.mjs";import{R as f}from"./Row-C9vrS4Zi.mjs";import{E as g}from"./ErrorMessage-D8VaAP5m.mjs";import{V as b,L as y}from"./Value-tcJV9e0L.mjs";import{S as v}from"./Subtitle-CV-2yKE4.mjs";import{T as j}from"./Title-BnzYV3Is.mjs";import w from"@heroicons/react/24/outline/WalletIcon";import{styled as C}from"styled-components";import{g as x}from"./getChainName-DjpPdUSc.mjs";import{C as k}from"./Chip-D2-wZOHJ.mjs";import{N}from"./NetworkIcon-B48ilzF8.mjs";import{B as T,a as B}from"./shared-FM0rljBt.mjs";import{Menu as S,MenuButton as A,MenuItems as I,MenuItem as $}from"@headlessui/react";import E from"@heroicons/react/24/outline/ChevronDownIcon";import{f as F}from"./formatErc20TokenAmount-BuPk9xcy.mjs";import{g as M}from"./ethers-iL-1LJcq.mjs";import{F as P,a as U,b as D,c as L,d as R}from"./styles-DMbxOKl7.mjs";const W=({chains:o,appId:t,address:s,rpcConfig:c})=>Promise.all(o.map((async o=>{let m=e({chain:o,transport:r(i(o,c,t))}),l=await m.getBalance({address:s}).catch((()=>0n)),d=null,h=a[o.id];if(h){let{balance:e}=await n({address:s,chain:o,rpcConfig:c,appId:t,erc20Address:h});d=e}return{balance:l,erc20Balance:d,erc20Address:h,chain:o}}))),H=({balance:e,className:r,chain:a})=>/*#__PURE__*/t(T,{className:r,$state:void 0,children:/*#__PURE__*/t(Q,{balance:e,chain:a})}),Q=({balance:e,chain:r})=>/*#__PURE__*/s(c,{children:[/*#__PURE__*/s(V,{children:[/*#__PURE__*/t(z,{chainId:"object"==typeof r?r.id:"solana"}),/*#__PURE__*/t(b,{children:"object"==typeof r?r.name:x(r)})]}),/*#__PURE__*/s(k,{isLoading:!1,isPulsing:!1,color:"gray",children:[/*#__PURE__*/t(q,{children:/*#__PURE__*/t(w,{})}),e]})]});let V=C.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  `,q=C.div`