@privy-io/react-auth 2.0.9 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client.js +1 -1
- package/dist/cjs/components/LoginModal.js +1 -1
- package/dist/cjs/components/Pill.js +1 -0
- package/dist/cjs/components/QrCode.js +1 -1
- package/dist/cjs/components/embedded-wallets/SolanaTransactionDetails.js +1 -1
- package/dist/cjs/components/primitives/InteractiveLabel.js +1 -0
- package/dist/cjs/components/primitives/JsonTree.js +1 -0
- package/dist/cjs/configuration/wallets.js +1 -1
- package/dist/cjs/connectors/embeddedProvider.js +1 -1
- package/dist/cjs/connectors/ethereum/EthereumNullConnector.js +1 -1
- package/dist/cjs/connectors/ethereum/index.js +1 -1
- package/dist/cjs/connectors/index.js +1 -1
- package/dist/cjs/connectors/is-wallet-installed.js +1 -1
- package/dist/cjs/connectors/mobile-wallets.js +1 -0
- package/dist/cjs/connectors/solana/SolanaNullConnector.js +1 -1
- package/dist/cjs/connectors/solana/index.js +1 -1
- package/dist/cjs/connectors/solana/toSolanaWalletConnectors.js +1 -1
- package/dist/cjs/connectors/stored-connection.js +1 -0
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/embedded-wallets/delegated-actions.js +1 -1
- package/dist/cjs/embedded-wallets/solana/provider.js +1 -1
- package/dist/cjs/hooks/privy-provider.js +1 -1
- package/dist/cjs/hooks/useFormattedBalances.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/lib/ethers.js +1 -1
- package/dist/cjs/lib/external-wallets/displayHelpers.js +1 -1
- package/dist/cjs/paths.js +1 -1
- package/dist/cjs/privy-components/wallets-pill/ActiveWalletCard.js +1 -1
- package/dist/cjs/privy-components/wallets-pill/ConnectWalletView.js +1 -1
- package/dist/cjs/privy-components/wallets-pill/SelectActiveWalletView.js +1 -1
- package/dist/cjs/privy-components/wallets-pill/WalletCardView.js +1 -1
- package/dist/cjs/privy-components/wallets-pill/WalletsDialog.js +1 -1
- package/dist/cjs/privy-provider-Cq1Y-Omj.js +3 -0
- package/dist/cjs/screens/ConnectOnlyAuthenticatedScreen.js +1 -1
- package/dist/cjs/screens/ConnectOnlyLandingScreen.js +1 -1
- package/dist/cjs/screens/ConnectOnlyStatusScreen.js +1 -1
- package/dist/cjs/screens/ConnectionStatusScreen.js +2 -2
- package/dist/cjs/screens/Funding/AwaitingEvmToSolBridgingScreen.js +1 -1
- package/dist/cjs/screens/Funding/AwaitingExternalSolanaTransferScreen.js +2 -2
- package/dist/cjs/screens/Funding/AwaitingExternalTransferScreen.js +1 -1
- package/dist/cjs/screens/Funding/AwaitingSolToEvmBridgingScreen.js +1 -1
- package/dist/cjs/screens/Funding/FundingMethodSelectionScreen.js +1 -1
- package/dist/cjs/screens/Funding/TransferFromWalletScreen.js +1 -1
- package/dist/cjs/screens/Funding/TransferOrBridgeLoadingScreen.js +1 -1
- package/dist/cjs/screens/InstallWalletScreen.js +1 -0
- package/dist/cjs/screens/LandingScreen/ConnectOrCreateScreen.js +1 -1
- package/dist/cjs/screens/LandingScreen/CustomLandingScreenView.js +1 -1
- package/dist/cjs/screens/LandingScreen/LandingScreen.js +1 -1
- package/dist/cjs/screens/LandingScreen/LandingScreenView.js +1 -1
- package/dist/cjs/screens/LandingScreen/WalletButton.js +1 -1
- package/dist/cjs/screens/LandingScreen/WalletButtonList.js +1 -1
- package/dist/cjs/screens/LinkWalletScreen.js +1 -1
- package/dist/cjs/screens/SendSolanaTransactionScreen/SendSolanaTransactionScreen.js +1 -1
- package/dist/cjs/screens/SendSolanaTransactionScreen/SolanaTransactionReceiptView.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/ScanDetails.js +1 -0
- package/dist/cjs/screens/SendTransactionScreen/SendTransactionScreen.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/SendTransactionScreenView.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/TokenDescription.js +1 -0
- package/dist/cjs/screens/SendTransactionScreen/TransactionValidation.js +1 -0
- package/dist/cjs/screens/SendTransactionScreen/index.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/lib.js +1 -0
- package/dist/cjs/screens/SignRequestScreen.js +1 -1
- package/dist/cjs/screens/WalletInterstitialScreen.js +1 -0
- package/dist/cjs/screens/index.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/svg/backpack.js +1 -0
- package/dist/cjs/svg/okx-wallet.js +1 -0
- package/dist/cjs/svg/solflare.js +1 -0
- package/dist/cjs/types.js +1 -1
- package/dist/cjs/ui.js +1 -1
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +29 -8
- package/dist/dts/index.d.ts +29 -8
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +4 -4
- package/dist/dts/solana.d.ts +4 -4
- package/dist/dts/{types-B-zTuIEL.d.mts → types-Do6eK2EI.d.mts} +7 -6
- package/dist/dts/{types-B-zTuIEL.d.ts → types-Do6eK2EI.d.ts} +7 -6
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/dts/{useSolanaWallets-DdM-QdoK.d.mts → useSolanaWallets-CtSHyXUi.d.mts} +1 -1
- package/dist/dts/{useSolanaWallets-DdM-QdoK.d.ts → useSolanaWallets-CtSHyXUi.d.ts} +1 -1
- package/dist/esm/client.mjs +1 -1
- package/dist/esm/components/LoginModal.mjs +1 -1
- package/dist/esm/components/Pill.mjs +1 -0
- package/dist/esm/components/QrCode.mjs +2 -2
- package/dist/esm/components/embedded-wallets/SolanaTransactionDetails.mjs +1 -1
- package/dist/esm/components/primitives/InteractiveLabel.mjs +1 -0
- package/dist/esm/components/primitives/JsonTree.mjs +1 -0
- package/dist/esm/configuration/wallets.mjs +1 -1
- package/dist/esm/connectors/embeddedProvider.mjs +1 -1
- package/dist/esm/connectors/ethereum/EthereumNullConnector.mjs +1 -1
- package/dist/esm/connectors/ethereum/index.mjs +1 -1
- package/dist/esm/connectors/index.mjs +1 -1
- package/dist/esm/connectors/is-wallet-installed.mjs +1 -1
- package/dist/esm/connectors/mobile-wallets.mjs +1 -0
- package/dist/esm/connectors/solana/SolanaNullConnector.mjs +1 -1
- package/dist/esm/connectors/solana/index.mjs +1 -1
- package/dist/esm/connectors/solana/toSolanaWalletConnectors.mjs +1 -1
- package/dist/esm/connectors/stored-connection.mjs +1 -0
- package/dist/esm/constants.mjs +1 -1
- package/dist/esm/embedded-wallets/delegated-actions.mjs +1 -1
- package/dist/esm/embedded-wallets/solana/provider.mjs +1 -1
- package/dist/esm/hooks/privy-provider.mjs +1 -1
- package/dist/esm/hooks/useFormattedBalances.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/lib/ethers.mjs +1 -1
- package/dist/esm/lib/external-wallets/displayHelpers.mjs +1 -1
- package/dist/esm/paths.mjs +1 -1
- package/dist/esm/privy-components/wallets-pill/ActiveWalletCard.mjs +1 -1
- package/dist/esm/privy-components/wallets-pill/ConnectWalletView.mjs +1 -1
- package/dist/esm/privy-components/wallets-pill/SelectActiveWalletView.mjs +1 -1
- package/dist/esm/privy-components/wallets-pill/WalletCardView.mjs +1 -1
- package/dist/esm/privy-components/wallets-pill/WalletsDialog.mjs +1 -1
- package/dist/esm/privy-provider-C-cTZKVr.mjs +3 -0
- package/dist/esm/screens/ConnectOnlyAuthenticatedScreen.mjs +1 -1
- package/dist/esm/screens/ConnectOnlyLandingScreen.mjs +1 -1
- package/dist/esm/screens/ConnectOnlyStatusScreen.mjs +1 -1
- package/dist/esm/screens/ConnectionStatusScreen.mjs +1 -1
- package/dist/esm/screens/Funding/AwaitingEvmToSolBridgingScreen.mjs +1 -1
- package/dist/esm/screens/Funding/AwaitingExternalSolanaTransferScreen.mjs +1 -1
- package/dist/esm/screens/Funding/AwaitingExternalTransferScreen.mjs +1 -1
- package/dist/esm/screens/Funding/AwaitingSolToEvmBridgingScreen.mjs +1 -1
- package/dist/esm/screens/Funding/FundingMethodSelectionScreen.mjs +1 -1
- package/dist/esm/screens/Funding/TransferFromWalletScreen.mjs +1 -1
- package/dist/esm/screens/Funding/TransferOrBridgeLoadingScreen.mjs +1 -1
- package/dist/esm/screens/InstallWalletScreen.mjs +1 -0
- package/dist/esm/screens/LandingScreen/ConnectOrCreateScreen.mjs +1 -1
- package/dist/esm/screens/LandingScreen/CustomLandingScreenView.mjs +1 -1
- package/dist/esm/screens/LandingScreen/LandingScreen.mjs +1 -1
- package/dist/esm/screens/LandingScreen/LandingScreenView.mjs +1 -1
- package/dist/esm/screens/LandingScreen/WalletButton.mjs +1 -1
- package/dist/esm/screens/LandingScreen/WalletButtonList.mjs +1 -1
- package/dist/esm/screens/LinkWalletScreen.mjs +1 -1
- package/dist/esm/screens/SendSolanaTransactionScreen/SendSolanaTransactionScreen.mjs +1 -1
- package/dist/esm/screens/SendSolanaTransactionScreen/SolanaTransactionReceiptView.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/ScanDetails.mjs +1 -0
- package/dist/esm/screens/SendTransactionScreen/SendTransactionScreen.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/SendTransactionScreenView.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/TokenDescription.mjs +1 -0
- package/dist/esm/screens/SendTransactionScreen/TransactionValidation.mjs +1 -0
- package/dist/esm/screens/SendTransactionScreen/index.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/lib.mjs +1 -0
- package/dist/esm/screens/SignRequestScreen.mjs +1 -1
- package/dist/esm/screens/WalletInterstitialScreen.mjs +1 -0
- package/dist/esm/screens/index.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/svg/backpack.mjs +1 -0
- package/dist/esm/svg/okx-wallet.mjs +1 -0
- package/dist/esm/svg/solflare.mjs +1 -0
- package/dist/esm/types.mjs +1 -1
- package/dist/esm/ui.mjs +1 -1
- package/package.json +2 -2
- package/dist/cjs/connectors/phantom-redirect.js +0 -1
- package/dist/cjs/connectors/phantom-solana.js +0 -1
- package/dist/cjs/connectors/phantom.js +0 -1
- package/dist/cjs/privy-provider-B8LaAjk_.js +0 -3
- package/dist/cjs/screens/InstallPhantomScreen.js +0 -1
- package/dist/cjs/screens/PhantomInterstitialScreen.js +0 -1
- package/dist/esm/connectors/phantom-redirect.mjs +0 -1
- package/dist/esm/connectors/phantom-solana.mjs +0 -1
- package/dist/esm/connectors/phantom.mjs +0 -1
- package/dist/esm/privy-provider-CuvYT8ML.mjs +0 -3
- package/dist/esm/screens/InstallPhantomScreen.mjs +0 -1
- package/dist/esm/screens/PhantomInterstitialScreen.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as t,jsx as
|
|
1
|
+
import{jsxs as o,Fragment as t,jsx as e}from"react/jsx-runtime";import{BlobbyFooter as n}from"../components/ModalFooter.mjs";import{ModalHeader as s}from"../components/ModalHeader.mjs";import{PaddedScreenHeader as i}from"../components/ScreenHeader.mjs";import{usePrivyInternal as r}from"../hooks/internal-context.mjs";import{usePrivyModal as m}from"../hooks/modal-context.mjs";import{formatWalletAddress as c}from"../utils/index.mjs";import{toWalletButtons as a,WalletButtonList as p}from"./LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as l}from"./LandingScreen/styles.mjs";import"styled-components";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../svg/protected-by-privy.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"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"../utils/eth/getPublicClient.mjs";import"viem";import"./LandingScreen/EmptyWalletView.mjs";import"./LandingScreen/WalletButton.mjs";import"react-device-detect";import"../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../connectors/mobile-wallets.mjs";import"../svg/backpack.mjs";import"../svg/okx-wallet.mjs";import"../svg/phantom.mjs";import"../svg/solflare.mjs";import"../types.mjs";import"../lib/external-wallets/displayHelpers.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../lib/isEmbeddedWebview.mjs";import"../recent-login/context.mjs";import"../hooks/events-context.mjs";import"../storage.mjs";const j=()=>{let{app:j,data:h}=m(),d=h?.externalConnectWallet?.suggestedAddress,g=d?`Connect the wallet with address ${c(d)} ${j?.name?`to ${j.name}.`:"."}`:`Connect a wallet to ${j?.name}`,{connectors:u}=r(),w=a({walletList:h?.externalConnectWallet?.walletList??j.appearance.walletList,walletChainType:j.appearance.walletChainType,connectors:u,connectOnly:!0,ignore:j.appearance.walletList,walletConnectEnabled:j.externalWallets.walletConnect.enabled});/*#__PURE__*/return o(t,{children:[/*#__PURE__*/e(s,{},"header"),w.length>0&&/*#__PURE__*/e(i,{title:"Connect your wallet",description:g}),/*#__PURE__*/e(l,{children:/*#__PURE__*/e(p,{wallets:w})}),/*#__PURE__*/e(n,{})]})};export{j as ConnectOnlyAuthenticatedScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t,Fragment as
|
|
1
|
+
import{jsxs as o,jsx as t,Fragment as e}from"react/jsx-runtime";import{TermsAndConditions as n,BlobbyFooter as s}from"../components/ModalFooter.mjs";import{ModalHeader as i}from"../components/ModalHeader.mjs";import{ScreenHeader as r}from"../components/ScreenHeader.mjs";import{Address as m}from"../components/ui/wallet/Address.mjs";import{usePrivyInternal as c}from"../hooks/internal-context.mjs";import{usePrivyModal as a}from"../hooks/modal-context.mjs";import{toWalletButtons as p,WalletButtonList as l}from"./LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as j}from"./LandingScreen/styles.mjs";import"styled-components";import"../configuration/context.mjs";import"react";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../constants.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../svg/protected-by-privy.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"../hooks/index.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../utils/index.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/is-wallet-installed.mjs";import"../errors.mjs";import"ofetch";import"../utils/eth/getPublicClient.mjs";import"viem";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"./LandingScreen/EmptyWalletView.mjs";import"./LandingScreen/WalletButton.mjs";import"react-device-detect";import"../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../components/ui/chips/Chip.mjs";import"../components/ui/animation/LoadingSkeleton.mjs";import"../connectors/mobile-wallets.mjs";import"../svg/backpack.mjs";import"../svg/okx-wallet.mjs";import"../svg/phantom.mjs";import"../svg/solflare.mjs";import"../types.mjs";import"../lib/external-wallets/displayHelpers.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../lib/isEmbeddedWebview.mjs";import"../recent-login/context.mjs";import"../hooks/events-context.mjs";import"../storage.mjs";const h=()=>{let{app:h,data:d}=a(),g=d?.externalConnectWallet?.suggestedAddress,u=g?/*#__PURE__*/o("span",{children:["Connect the wallet with address ",/*#__PURE__*/t(m,{showCopyIcon:!1,address:g})," ",h?.name?`to ${h.name}.`:"."]}):`Connect a wallet to your ${h?.name} account`,{connectors:w}=c(),b=p({walletList:d?.externalConnectWallet?.walletList??h.appearance.walletList,walletChainType:h.appearance.walletChainType,connectors:w,connectOnly:!0,ignore:h.appearance.walletList,walletConnectEnabled:h.externalWallets.walletConnect.enabled});/*#__PURE__*/return o(e,{children:[/*#__PURE__*/t(i,{},"header"),b.length>0&&/*#__PURE__*/t(r,{title:"Connect your wallet",description:u}),/*#__PURE__*/t(j,{children:/*#__PURE__*/t(l,{wallets:b})}),h&&/*#__PURE__*/t(n,{app:h,alwaysShowImplicitConsent:!0}),/*#__PURE__*/t(s,{})]})};export{h as ConnectOnlyLandingScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as i}from"react-device-detect";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../components/Button.mjs";import{FixedGappedContainer as m}from"../components/Layouts.mjs";import{ModalFooter as a}from"../components/ModalFooter.mjs";import{ModalHeader as l}from"../components/ModalHeader.mjs";import{ConnectorErrors as p}from"../connectors/errors.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as j}from"../constants.mjs";import{usePrivyInternal as h}from"../hooks/internal-context.mjs";import{usePrivyModal as d}from"../hooks/modal-context.mjs";import{WALLET_UI_MAP as u}from"../lib/external-wallets/displayHelpers.mjs";import{BrowserExtensionWallet as g}from"../svg/browser-extension-wallet-icon.mjs";import{WalletLoading as w,getErrorDetails as f}from"./ConnectionStatusScreen.mjs";import"../components/Loader.mjs";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../svg/protected-by-privy.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"../hooks/index.mjs";import"@privy-io/js-sdk-core";import"../errors.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../auth-flows/siwe.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../auth-flows/siws.mjs";import"../lib/siws.mjs";import"../client/user.mjs";import"viem/utils";import"../connectors/is-wallet-installed.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import"viem";import"../connectors/walletconnect-v2.mjs";import"@walletconnect/ethereum-provider";import"../utils/index.mjs";import"../utils/eth/getPublicClient.mjs";import"../connectors/ethereum/index.mjs";import"../storage.mjs";import"../connectors/areWalletArraysEqual.mjs";import"../connectors/isBaseConnectedEthereumWallet.mjs";import"../connectors/base.mjs";import"eventemitter3";import"../connectors/getRpcTimeout.mjs";import"../connectors/privyProxyProvider.mjs";import"../connectors/walletconnect-registry.mjs";import"../hook-utils/useInterval.mjs";import"../hooks/captcha-context.mjs";import"../hooks/privy-context.mjs";import"../lib/useHasTabbedAway.mjs";const
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as i}from"react-device-detect";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../components/Button.mjs";import{FixedGappedContainer as m}from"../components/Layouts.mjs";import{ModalFooter as a}from"../components/ModalFooter.mjs";import{ModalHeader as l}from"../components/ModalHeader.mjs";import{ConnectorErrors as p}from"../connectors/errors.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as j}from"../constants.mjs";import{usePrivyInternal as h}from"../hooks/internal-context.mjs";import{usePrivyModal as d}from"../hooks/modal-context.mjs";import{WALLET_UI_MAP as u}from"../lib/external-wallets/displayHelpers.mjs";import{BrowserExtensionWallet as g}from"../svg/browser-extension-wallet-icon.mjs";import{WalletLoading as w,getErrorDetails as f}from"./ConnectionStatusScreen.mjs";import"../components/Loader.mjs";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../svg/protected-by-privy.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"../hooks/index.mjs";import"@privy-io/js-sdk-core";import"../errors.mjs";import"ofetch";import"../components/PrefetchedImage.mjs";import"./index.mjs";import"../svg/backpack.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/metamask.mjs";import"../svg/okx-wallet.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/solflare.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/wallet-connect.mjs";import"../svg/zerion.mjs";import"../auth-flows/siwe.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../auth-flows/siws.mjs";import"../lib/siws.mjs";import"../client/user.mjs";import"viem/utils";import"../connectors/is-wallet-installed.mjs";import"../connectors/get-legacy-injected-providers.mjs";import"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import"viem";import"../connectors/walletconnect-v2.mjs";import"@walletconnect/ethereum-provider";import"../utils/index.mjs";import"../utils/eth/getPublicClient.mjs";import"../connectors/ethereum/index.mjs";import"../storage.mjs";import"../connectors/areWalletArraysEqual.mjs";import"../connectors/isBaseConnectedEthereumWallet.mjs";import"../connectors/base.mjs";import"eventemitter3";import"../connectors/getRpcTimeout.mjs";import"../connectors/privyProxyProvider.mjs";import"../connectors/walletconnect-registry.mjs";import"../hook-utils/useInterval.mjs";import"../hooks/captcha-context.mjs";import"../hooks/privy-context.mjs";import"../lib/useHasTabbedAway.mjs";const v=()=>{let s,{navigateBack:v,navigate:b,lastScreen:k,currentScreen:C,data:x,setModalData:S}=d(),{walletConnectionStatus:T,closePrivyModal:A}=h(),[E,I]=n(void 0),[M,R]=n(0),W="connected"===T?.status,_="switching_to_supported_chain"===T?.status;r((()=>{if(W){let o;if(x?.externalConnectWallet?.onCompleteNavigateTo){let t=x.externalConnectWallet.onCompleteNavigateTo,e=T.connectedWallet?.address;o=setTimeout((()=>{x.funding&&S({...x,funding:{...x.funding,connectedWalletAddress:e}}),b(t({walletChainType:T.connector?.chainType}))}),j)}else o=setTimeout(A,j);return()=>clearTimeout(o)}}),[W]);r((()=>{var o;T?.connectError&&(o=T?.connectError,I(f(o)))}),[T]);let B=T?.connector?.connectorType||"injected",H=T?.connector?.walletClientType||"unknown",L=u[H]?.displayName||T?.connector?.walletBranding.name||"Browser Extension",P=u[H]?.logo||T?.connector?.walletBranding.icon||(t=>/*#__PURE__*/o(g,{...t})),z="Browser Extension"===L?L.toLowerCase():L;s=W?`Successfully connected with ${z}`:E?E.message:_?"Switching networks":`Waiting for ${z}`;let F="Don’t see your wallet? Check your other browser windows.";return W?F="You’re good to go!":M>=2&&E?F="Unable to connect wallet":E?F=E.detail:_?F="Switch your wallet to the requested network.":"metamask"===H&&i?F="Click to continue to open and connect MetaMask.":"metamask"===H?F="For the best experience, connect only one wallet at a time.":"wallet_connect_v2"===B?F="Open your mobile wallet app to continue":"coinbase_wallet"===B&&(F="Open the Coinbase app on your phone to continue."),/*#__PURE__*/t(e,{children:[/*#__PURE__*/o(l,{backFn:C===k?void 0:v}),/*#__PURE__*/t(y,{children:[/*#__PURE__*/o(w,{walletLogo:P,success:W,fail:!!E}),/*#__PURE__*/t(m,{children:[/*#__PURE__*/o("h3",{children:s}),/*#__PURE__*/o("p",{children:F})]}),E==p.ERROR_USER_EXISTS?/*#__PURE__*/o(c,{onClick:v,children:"Use a different wallet"}):!W&&E?.retryable&&M<2?/*#__PURE__*/o(c,{onClick:()=>{R(M+1),I(void 0),T?.connectRetry()},disabled:!W&&(!E?.retryable||M>=2),children:"Retry"}):!W&&E&&M>=2?/*#__PURE__*/o(c,{onClick:v,children:"Use a different wallet"}):null]}),/*#__PURE__*/o(a,{})]})};let y=/*#__PURE__*/s.div.withConfig({displayName:"ConnectContainer",componentId:"sc-1346f57-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]);export{v as ConnectOnlyStatusScreen};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as i}from"react-device-detect";import{styled as c}from"styled-components";import{SiweFlow as s}from"../auth-flows/siwe.mjs";import{SiwsFlow as a}from"../auth-flows/siws.mjs";import{shouldProceedtoEmbeddedWalletCreationFlow as l}from"../client/user.mjs";import{PrimaryButton as m}from"../components/Button.mjs";import{FixedGappedContainer as p}from"../components/Layouts.mjs";import{ConnectionLoader as d}from"../components/Loader.mjs";import{ModalFooter as h}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{ConnectorErrors as f,PrivyProviderRpcError as j,WalletTimeoutError as g,UserRejectedConnectionError as w}from"../connectors/errors.mjs";import{isCoinbaseWalletInstalled as y}from"../connectors/is-wallet-installed.mjs";import{userAlreadyHasConnectedCoinbaseWallet as E}from"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import{WalletConnectV2WalletConnector as C}from"../connectors/walletconnect-v2.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as _}from"../constants.mjs";import{PrivyErrorCode as v,PrivyUserLimitReachedError as b}from"../errors.mjs";import T from"../hook-utils/useInterval.mjs";import{useCaptcha as R}from"../hooks/captcha-context.mjs";import{usePrivyInternal as S}from"../hooks/internal-context.mjs";import{usePrivyModal as N}from"../hooks/modal-context.mjs";import{usePrivyContext as k}from"../hooks/privy-context.mjs";import{WALLET_UI_MAP as A}from"../lib/external-wallets/displayHelpers.mjs";import{useHasTabbedAway as O}from"../lib/useHasTabbedAway.mjs";import{BrowserExtensionWallet as x}from"../svg/browser-extension-wallet-icon.mjs";import{sleep as I}from"../utils/index.mjs";import{ModalScreen as L}from"./index.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../lib/siws.mjs";import"viem/utils";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../svg/protected-by-privy.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"@privy-io/js-sdk-core";import"../connectors/get-legacy-injected-providers.mjs";import"viem";import"@walletconnect/ethereum-provider";import"../svg/metamask.mjs";import"../svg/wallet-connect.mjs";import"../connectors/ethereum/index.mjs";import"../storage.mjs";import"../connectors/areWalletArraysEqual.mjs";import"../connectors/isBaseConnectedEthereumWallet.mjs";import"../connectors/base.mjs";import"eventemitter3";import"../connectors/getRpcTimeout.mjs";import"../connectors/privyProxyProvider.mjs";import"../connectors/walletconnect-registry.mjs";import"ofetch";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/zerion.mjs";import"../utils/eth/getPublicClient.mjs";const U=e=>e?.privyErrorCode===v.LINKED_TO_ANOTHER_USER?f.ERROR_USER_EXISTS:e instanceof j&&!e.details.default?e.details:e instanceof g?f.ERROR_TIMED_OUT:e instanceof w?f.ERROR_USER_REJECTED_CONNECTION:e?.privyErrorCode===v.CANNOT_LINK_MORE_OF_TYPE?f.ERROR_USER_LIMIT_REACHED:f.ERROR_WALLET_CONNECTION,W=()=>{let c,[d,j]=n(!1),[g,w]=n(!1),[W,D]=n(void 0),{authenticated:H,logout:B}=k(),{app:P,navigate:z,navigateBack:X,lastScreen:q,currentScreen:J,setModalData:K,data:$}=N(),{getAuthFlow:Q,walletConnectionStatus:Y,closePrivyModal:G,initLoginWithWallet:V,loginWithWallet:Z,updateWallets:ee,createAnalyticsEvent:oe}=S(),{walletConnectors:te}=k(),[ne,re]=n(0),{user:ie}=k(),[ce]=n(ie?.linkedAccounts.length||0),[se,ae]=n(""),[le,me]=n(""),[pe,de]=n(!1),{hasTabbedAway:he}=O(),{enabled:ue,token:fe}=R(),je=i&&"wallet_connect_v2"===Y?.connector?.connectorType||i&&"coinbase_wallet"===Y?.connector?.connectorType||i&&"injected"===Y?.connector?.connectorType&&"phantom"===Y?.connector?.walletClientType,ge="connected"===Y?.status,we="switching_to_supported_chain"===Y?.status;r((()=>{let e=Q(),o=e instanceof s||e instanceof a?e:void 0;ge&&!o&&(!ue||fe||H?V(Y.connectedWallet,fe,$?.login?.disableSignup).then((()=>{de(!0)})):(K({captchaModalData:{callback:e=>V(Y.connectedWallet,e,$?.login?.disableSignup).then((()=>{de(!0)})),userIntentRequired:!1,onSuccessNavigateTo:L.AWAITING_CONNECTION,onErrorNavigateTo:L.ERROR_SCREEN}}),z(L.CAPTCHA_SCREEN,!1))),o&&je&&ge&&!o.preparedMessage?o.buildMessage():o&&!je&&ge&&(g||(async()=>{w(!0),D(void 0);try{"wallet_connect_v2"===Y?.connector?.connectorType&&"metamask"===Y?.connector?.walletClientType&&await I(2500),await Ee()}catch(e){console.warn("Auto-prompted signature failed",e)}finally{w(!1)}})())}),[ne,ge,pe]),r((()=>{if(ie&&d){let e=_-500;if(P?.legal.requireUsersAcceptTerms&&!ie.hasAcceptedTerms){let o=setTimeout((()=>{z(L.AFFIRMATIVE_CONSENT_SCREEN)}),e);return()=>clearTimeout(o)}if(l(ie,P?.embeddedWallets?.createOnLogin)){let o=setTimeout((()=>{K({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),oe({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"ConnectionStatusScreen"}}),B()},callAuthOnSuccessOnClose:!0}}),z(L.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),e);return()=>clearTimeout(o)}ee();let o=setTimeout((()=>G({shouldCallAuthOnSuccess:!0,isSuccess:!0})),_);return()=>clearTimeout(o)}}),[ie,d]);let ye=e=>{if(e?.privyErrorCode!==v.ALLOWLIST_REJECTED){if(e?.privyErrorCode===v.USER_LIMIT_REACHED)return console.error(new b(e).toString()),void z(L.USER_LIMIT_REACHED_SCREEN);if(e?.privyErrorCode!==v.USER_DOES_NOT_EXIST)return e?.privyErrorCode===v.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce?(K({accountTransfer:{nonce:e.data?.data?.nonce,account:Q()?.meta.address,displayName:e.data?.data?.account?.displayName,externalWalletMetadata:{walletClientType:Q()?.meta.walletClientType,chainId:Q()?.meta.chainId,connectorType:Q()?.meta.connectorType},linkMethod:"siwe",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void z(L.LINK_CONFLICT_SCREEN)):void D(U(e));z(L.ACCOUNT_NOT_FOUND_SCREEN)}else z(L.ALLOWLIST_REJECTION_SCREEN)};async function Ee(){try{await Z(),j(!0)}catch(e){ye(e)}finally{w(!1)}}r((()=>{Y?.connectError&&ye(Y?.connectError)}),[Y]),T((()=>{let e="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.redirectUri:void 0;e&&ae(e);let o="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.fallbackUniversalRedirectUri:void 0;o&&me(o)}),Y?.connector instanceof C&&!se?500:null);let Ce=Y?.connector?.connectorType||"injected",_e=Y?.connector?.walletClientType||"unknown",ve=A[_e]?.displayName||Y?.connector?.walletBranding.name||"Browser Extension",be=A[_e]?.logo||Y?.connector?.walletBranding.icon||(o=>/*#__PURE__*/e(x,{...o})),Te="Browser Extension"===ve?ve.toLowerCase():ve;c=d?`Successfully connected with ${Te}`:W?W.message:we?"Switching networks":ge?g&&je?"Signing":"Sign to verify":`Waiting for ${Te}`;let Re="Don’t see your wallet? Check your other browser windows.";d?Re=ce===(ie?.linkedAccounts.length||0)?"Wallet was already linked.":"You’re good to go!":ne>=2&&W?Re="Unable to connect wallet":W?Re=W.detail:we?Re="Switch your wallet to the requested network.":ge&&je?Re="Sign the message in your wallet to verify it belongs to you.":"metamask"===_e&&i?Re="Click continue to open and connect MetaMask.":"metamask"===_e?Re="For the best experience, connect only one wallet at a time.":"wallet_connect"===Ce?Re="Open your mobile wallet app to continue":"coinbase_wallet"!==Ce||y()||(Re=E(ie)?"Continue with the Coinbase app. Not the right wallet? Reset your connection below.":"Open the Coinbase app on your phone to continue.");let Se=te?.walletConnectors?.find((e=>"coinbase_wallet"===e.walletClientType)),Ne="coinbase_wallet"===_e&&(E(ie)||W===f.ERROR_USER_EXISTS);/*#__PURE__*/return o(t,{children:[/*#__PURE__*/e(u,{backFn:q&&J!==q?X:void 0}),/*#__PURE__*/o(M,{children:[/*#__PURE__*/e(F,{walletLogo:be,success:d,fail:!!W}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/e("h3",{children:c}),/*#__PURE__*/e("p",{children:Re}),ge||!se||he?null:/*#__PURE__*/o("p",{children:["Still here?"," ",/*#__PURE__*/e("a",{href:se,target:"_blank",style:{textDecoration:"underline"},children:"Try connecting again"}),le&&/*#__PURE__*/o(t,{children:[" ","or"," ",/*#__PURE__*/e("a",{href:le,target:"_blank",style:{textDecoration:"underline"},children:"use this different link"})]})]})]}),Ne?/*#__PURE__*/e(m,{onClick:()=>Se&&Se?.disconnect(),disabled:d,children:"Use a different wallet"}):W==f.ERROR_USER_EXISTS&&J!==q?/*#__PURE__*/e(m,{onClick:X,children:"Use a different wallet"}):ge&&!d&&je?/*#__PURE__*/e(m,{onClick:()=>{w(!0),Ee()},disabled:g,children:g?"Signing":"Sign with your wallet"}):!d&&W?.retryable&&ne<2?/*#__PURE__*/e(m,{onClick:()=>{re(ne+1),D(void 0),ge?(w(!0),Ee()):Y?.connectRetry()},disabled:!d&&(!W?.retryable||ne>=2),children:"Retry"}):d||W?null:/*#__PURE__*/e(m,{onClick:()=>{},disabled:!0,children:"Connecting"})]}),/*#__PURE__*/e(h,{})]})};let M=/*#__PURE__*/c.div.withConfig({displayName:"ConnectContainer",componentId:"sc-afad057-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]),D=/*#__PURE__*/c.div.withConfig({displayName:"StackedContainer",componentId:"sc-afad057-1"})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:82px;> div{position:relative;}> div > span{position:absolute;left:-41px;top:-41px;}> div > :last-child{position:absolute;left:-19px;top:-19px;}"]);const F=n=>{let r=n.walletLogo;/*#__PURE__*/return e(t,{children:/*#__PURE__*/e(D,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/e(d,{success:n.success,fail:n.fail}),"string"==typeof r?
|
|
1
|
+
import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{isMobile as i}from"react-device-detect";import{styled as s}from"styled-components";import{SiweFlow as c}from"../auth-flows/siwe.mjs";import{SiwsFlow as a}from"../auth-flows/siws.mjs";import{shouldProceedtoEmbeddedWalletCreationFlow as l}from"../client/user.mjs";import{PrimaryButton as m}from"../components/Button.mjs";import{FixedGappedContainer as p}from"../components/Layouts.mjs";import{ConnectionLoader as d}from"../components/Loader.mjs";import{ModalFooter as h}from"../components/ModalFooter.mjs";import{ModalHeader as u}from"../components/ModalHeader.mjs";import{ConnectorErrors as j,PrivyProviderRpcError as f,WalletTimeoutError as g,UserRejectedConnectionError as w}from"../connectors/errors.mjs";import{isCoinbaseWalletInstalled as y}from"../connectors/is-wallet-installed.mjs";import{userAlreadyHasConnectedCoinbaseWallet as E}from"../connectors/userAlreadyHasConnectedCoinbaseWallet.mjs";import{WalletConnectV2WalletConnector as C}from"../connectors/walletconnect-v2.mjs";import{DEFAULT_SUCCESS_SCREEN_DURATION_MS as v}from"../constants.mjs";import{PrivyErrorCode as _,PrivyUserLimitReachedError as b}from"../errors.mjs";import T from"../hook-utils/useInterval.mjs";import{useCaptcha as R}from"../hooks/captcha-context.mjs";import{usePrivyInternal as S}from"../hooks/internal-context.mjs";import{usePrivyModal as k}from"../hooks/modal-context.mjs";import{usePrivyContext as N}from"../hooks/privy-context.mjs";import{WALLET_UI_MAP as A}from"../lib/external-wallets/displayHelpers.mjs";import{useHasTabbedAway as O}from"../lib/useHasTabbedAway.mjs";import{BrowserExtensionWallet as x}from"../svg/browser-extension-wallet-icon.mjs";import{sleep as I}from"../utils/index.mjs";import{ModalScreen as L}from"./index.mjs";import"../effect.mjs";import"../lib/siwe.mjs";import"../lib/siws.mjs";import"viem/utils";import"../configuration/context.mjs";import"../config.mjs";import"../configuration/defaultClientConfig.mjs";import"../configuration/login-methods.mjs";import"../configuration/wallets.mjs";import"../connectors/chains/index.mjs";import"../connectors/chains/arbitrum.mjs";import"../connectors/chains/arbitrumSepolia.mjs";import"../connectors/chains/avalanche.mjs";import"../connectors/chains/avalancheFuji.mjs";import"../connectors/chains/base.mjs";import"../connectors/chains/baseSepolia.mjs";import"../connectors/chains/berachainArtio.mjs";import"../connectors/chains/celo.mjs";import"../connectors/chains/celoAlfajores.mjs";import"../connectors/chains/filecoin.mjs";import"../connectors/chains/filecoinCalibration.mjs";import"../connectors/chains/garnetHolesky.mjs";import"../connectors/chains/holesky.mjs";import"../connectors/chains/linea.mjs";import"../connectors/chains/lineaTestnet.mjs";import"../connectors/chains/lukso.mjs";import"../connectors/chains/mainnet.mjs";import"../connectors/chains/optimism.mjs";import"../connectors/chains/optimismSepolia.mjs";import"../connectors/chains/polygon.mjs";import"../connectors/chains/polygonAmoy.mjs";import"../connectors/chains/redstone.mjs";import"../connectors/chains/sepolia.mjs";import"../connectors/chains/zora.mjs";import"../connectors/chains/zoraSepolia.mjs";import"../connectors/chains/zoraTestnet.mjs";import"../connectors/chains/utils.mjs";import"../lib/solana/index.mjs";import"../theme.mjs";import"tinycolor2";import"../lib/cybr53.mjs";import"../svg/protected-by-privy.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"@privy-io/js-sdk-core";import"../connectors/get-legacy-injected-providers.mjs";import"viem";import"@walletconnect/ethereum-provider";import"../svg/metamask.mjs";import"../svg/wallet-connect.mjs";import"../connectors/ethereum/index.mjs";import"../storage.mjs";import"../connectors/areWalletArraysEqual.mjs";import"../connectors/isBaseConnectedEthereumWallet.mjs";import"../connectors/base.mjs";import"eventemitter3";import"../connectors/getRpcTimeout.mjs";import"../connectors/privyProxyProvider.mjs";import"../connectors/walletconnect-registry.mjs";import"ofetch";import"../hooks/index.mjs";import"../components/PrefetchedImage.mjs";import"../svg/backpack.mjs";import"../svg/brave-browser-icon.mjs";import"../svg/bybit.mjs";import"../svg/coinbase-wallet.mjs";import"../svg/cryptocom.mjs";import"../svg/okx-wallet.mjs";import"../svg/phantom.mjs";import"../svg/rabby.mjs";import"../svg/rainbow.mjs";import"../svg/safe.mjs";import"../svg/solflare.mjs";import"../svg/uniswap.mjs";import"../svg/universal-profile.mjs";import"../svg/zerion.mjs";import"../utils/eth/getPublicClient.mjs";const U=e=>e?.privyErrorCode===_.LINKED_TO_ANOTHER_USER?j.ERROR_USER_EXISTS:e instanceof f&&!e.details.default?e.details:e instanceof g?j.ERROR_TIMED_OUT:e instanceof w?j.ERROR_USER_REJECTED_CONNECTION:e?.privyErrorCode===_.CANNOT_LINK_MORE_OF_TYPE?j.ERROR_USER_LIMIT_REACHED:j.ERROR_WALLET_CONNECTION,W=()=>{let s,[d,f]=n(!1),[g,w]=n(!1),[W,D]=n(void 0),{authenticated:H,logout:B}=N(),{app:P,navigate:z,navigateBack:X,lastScreen:q,currentScreen:J,setModalData:K,data:$}=k(),{getAuthFlow:Q,walletConnectionStatus:Y,closePrivyModal:G,initLoginWithWallet:V,loginWithWallet:Z,updateWallets:ee,createAnalyticsEvent:oe}=S(),{walletConnectors:te}=N(),[ne,re]=n(0),{user:ie}=N(),[se]=n(ie?.linkedAccounts.length||0),[ce,ae]=n(""),[le,me]=n(""),[pe,de]=n(!1),{hasTabbedAway:he}=O(),{enabled:ue,token:je}=R(),fe=i&&"wallet_connect_v2"===Y?.connector?.connectorType||i&&"coinbase_wallet"===Y?.connector?.connectorType||i&&"injected"===Y?.connector?.connectorType&&"phantom"===Y?.connector?.walletClientType,ge="connected"===Y?.status,we="switching_to_supported_chain"===Y?.status;r((()=>{let e=Q(),o=e instanceof c||e instanceof a?e:void 0;ge&&!o&&(!ue||je||H?V(Y.connectedWallet,je,$?.login?.disableSignup).then((()=>{de(!0)})):(K({captchaModalData:{callback:e=>V(Y.connectedWallet,e,$?.login?.disableSignup).then((()=>{de(!0)})),userIntentRequired:!1,onSuccessNavigateTo:L.AWAITING_CONNECTION,onErrorNavigateTo:L.ERROR_SCREEN}}),z(L.CAPTCHA_SCREEN,!1))),o&&fe&&ge&&!o.preparedMessage?o.buildMessage():o&&!fe&&ge&&(g||(async()=>{w(!0),D(void 0);try{"wallet_connect_v2"===Y?.connector?.connectorType&&"metamask"===Y?.connector?.walletClientType&&await I(2500),await Ee()}catch(e){console.warn("Auto-prompted signature failed",e)}finally{w(!1)}})())}),[ne,ge,pe]),r((()=>{if(ie&&d){let e=v-500;if(P?.legal.requireUsersAcceptTerms&&!ie.hasAcceptedTerms){let o=setTimeout((()=>{z(L.AFFIRMATIVE_CONSENT_SCREEN)}),e);return()=>clearTimeout(o)}if(l(ie,P?.embeddedWallets?.createOnLogin)){let o=setTimeout((()=>{K({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),oe({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"ConnectionStatusScreen"}}),B()},callAuthOnSuccessOnClose:!0}}),z(L.EMBEDDED_WALLET_ON_ACCOUNT_CREATE_SCREEN)}),e);return()=>clearTimeout(o)}ee();let o=setTimeout((()=>G({shouldCallAuthOnSuccess:!0,isSuccess:!0})),v);return()=>clearTimeout(o)}}),[ie,d]);let ye=e=>{if(e?.privyErrorCode!==_.ALLOWLIST_REJECTED){if(e?.privyErrorCode===_.USER_LIMIT_REACHED)return console.error(new b(e).toString()),void z(L.USER_LIMIT_REACHED_SCREEN);if(e?.privyErrorCode!==_.USER_DOES_NOT_EXIST)return e?.privyErrorCode===_.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce?(K({accountTransfer:{nonce:e.data?.data?.nonce,account:Q()?.meta.address,displayName:e.data?.data?.account?.displayName,externalWalletMetadata:{walletClientType:Q()?.meta.walletClientType,chainId:Q()?.meta.chainId,connectorType:Q()?.meta.connectorType},linkMethod:"siwe",embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress}}),void z(L.LINK_CONFLICT_SCREEN)):void D(U(e));z(L.ACCOUNT_NOT_FOUND_SCREEN)}else z(L.ALLOWLIST_REJECTION_SCREEN)};async function Ee(){try{await Z(),f(!0)}catch(e){ye(e)}finally{w(!1)}}r((()=>{Y?.connectError&&ye(Y?.connectError)}),[Y]),T((()=>{let e="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.redirectUri:void 0;e&&ae(e);let o="wallet_connect_v2"===Ce&&Y?.connector instanceof C?Y.connector.fallbackUniversalRedirectUri:void 0;o&&me(o)}),Y?.connector instanceof C&&!ce?500:null);let Ce=Y?.connector?.connectorType||"injected",ve=Y?.connector?.walletClientType||"unknown",_e=A[ve]?.displayName||Y?.connector?.walletBranding.name||"Browser Extension",be=A[ve]?.logo||Y?.connector?.walletBranding.icon||(o=>/*#__PURE__*/e(x,{...o})),Te="Browser Extension"===_e?_e.toLowerCase():_e;s=d?`Successfully connected with ${Te}`:W?W.message:we?"Switching networks":ge?g&&fe?"Signing":"Sign to verify":`Waiting for ${Te}`;let Re="Don’t see your wallet? Check your other browser windows.";d?Re=se===(ie?.linkedAccounts.length||0)?"Wallet was already linked.":"You’re good to go!":ne>=2&&W?Re="Unable to connect wallet":W?Re=W.detail:we?Re="Switch your wallet to the requested network.":ge&&fe?Re="Sign the message in your wallet to verify it belongs to you.":"metamask"===ve&&i?Re="Click continue to open and connect MetaMask.":"metamask"===ve?Re="For the best experience, connect only one wallet at a time.":"wallet_connect"===Ce?Re="Open your mobile wallet app to continue":"coinbase_wallet"!==Ce||y()||(Re=E(ie)?"Continue with the Coinbase app. Not the right wallet? Reset your connection below.":"Open the Coinbase app on your phone to continue.");let Se=te?.walletConnectors?.find((e=>"coinbase_wallet"===e.walletClientType)),ke="coinbase_wallet"===ve&&(E(ie)||W===j.ERROR_USER_EXISTS);/*#__PURE__*/return o(t,{children:[/*#__PURE__*/e(u,{backFn:q&&J!==q?X:void 0}),/*#__PURE__*/o(M,{children:[/*#__PURE__*/e(F,{walletLogo:be,success:d,fail:!!W}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/e("h3",{children:s}),/*#__PURE__*/e("p",{children:Re}),ge||!ce||he?null:/*#__PURE__*/o("p",{children:["Still here?"," ",/*#__PURE__*/e("a",{href:ce,target:"_blank",style:{textDecoration:"underline"},children:"Try connecting again"}),le&&/*#__PURE__*/o(t,{children:[" ","or"," ",/*#__PURE__*/e("a",{href:le,target:"_blank",style:{textDecoration:"underline"},children:"use this different link"})]})]})]}),ke?/*#__PURE__*/e(m,{onClick:()=>Se&&Se?.disconnect(),disabled:d,children:"Use a different wallet"}):W==j.ERROR_USER_EXISTS&&J!==q?/*#__PURE__*/e(m,{onClick:X,children:"Use a different wallet"}):ge&&!d&&fe?/*#__PURE__*/e(m,{onClick:()=>{w(!0),Ee()},disabled:g,children:g?"Signing":"Sign with your wallet"}):!d&&W?.retryable&&ne<2?/*#__PURE__*/e(m,{onClick:()=>{re(ne+1),D(void 0),ge?(w(!0),Ee()):Y?.connectRetry()},disabled:!d&&(!W?.retryable||ne>=2),children:"Retry"}):d||W?null:/*#__PURE__*/e(m,{onClick:()=>{},disabled:!0,children:"Connecting"})]}),/*#__PURE__*/e(h,{})]})};let M=/*#__PURE__*/s.div.withConfig({displayName:"ConnectContainer",componentId:"sc-afad057-0"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;"]),D=/*#__PURE__*/s.div.withConfig({displayName:"StackedContainer",componentId:"sc-afad057-1"})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:82px;> div{position:relative;}> div > span{position:absolute;left:-41px;top:-41px;}> div > :last-child{position:absolute;left:-19px;top:-19px;}"]);const F=n=>{let r=n.walletLogo;/*#__PURE__*/return e(t,{children:/*#__PURE__*/e(D,{children:/*#__PURE__*/o("div",{children:[/*#__PURE__*/e(d,{success:n.success,fail:n.fail}),"string"==typeof r?
|
|
2
2
|
/*#__PURE__*/e("span",{style:{background:`url('${r}')`,height:"38px",width:"38px",borderRadius:"6px",margin:"auto",backgroundSize:"cover"}}):/*#__PURE__*/e(r,{style:{width:"38px",height:"38px"}})]})})})};export{W as ConnectionStatusScreen,F as WalletLoading,U as getErrorDetails};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as t,jsx as e}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as r}from"react";import{createWalletClient as s,custom as a,publicActions as m,createPublicClient as c,http as l}from"viem";import{RefactorSpacerTop as p,CenteredItemWithGap as d,RefactorSpacerBottom as u}from"../../components/Layouts.mjs";import{BlobbyFooter as h}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as g}from"../../components/ScreenHeader.mjs";import j from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as f}from"../../components/primitives/NeutralSpinner/index.mjs";import{addToDefaultChains as v}from"../../connectors/chains/utils.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as y}from"../../constants.mjs";import{PrivyClientError as w,PrivyErrorCode as b}from"../../errors.mjs";import{usePrivyInternal as I}from"../../hooks/internal-context.mjs";import{usePrivyModal as C}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as S}from"../../hooks/useGetTokenPrice.mjs";import{useWallets as T}from"../../hooks/useWallets.mjs";import{toDisplayName as k}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as N}from"../../lib/funding/analytics.mjs";import{getQuote as x,toGetQuoteInput as A,toEvmTransactionRequestInfoFromQuote as E}from"../../lib/funding/reservoir.mjs";import{RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID as F,RELAY_SOLANA_NATIVE_CURRENCY_ID as L}from"../../lib/solana/index.mjs";import{getNativeCurrencyFromLamports as P,getSolanaFormattedAmounts as B}from"../../lib/solana/transaction.mjs";import{getBalanceForChains as M}from"../../lib/wallets/actions/getBalanceForChains.mjs";import{usePlugins as U}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as R}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as W}from"../../utils/index.mjs";import{getJsonRpcEndpointFromChain as _}from"../../utils/eth/getPublicClient.mjs";import{ModalScreen as q}from"../index.mjs";import{BridgeNetworkSelectionView as O}from"./BridgeNetworkSelectionView.mjs";import{TransferOrBridgeLoadingScreen as H}from"./TransferOrBridgeLoadingScreen.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"../../utils/buffer/readBigInt64LE.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"@privy-io/js-sdk-core";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Subtitle.mjs";import"../../components/ui/typography/Title.mjs";import"../../components/ui/wallet/NetworkBalanceCard.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../components/ui/wallet/shared.mjs";import"../../components/ui/wallet/NetworkSelectorPanel.mjs";import"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"../../lib/ethers.mjs";import"./styles.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";const $=()=>{let{rpcConfig:$,appId:z,closePrivyModal:D,createAnalyticsEvent:G}=I(),{navigate:V,setModalData:Q,app:X,data:Y}=C(),{wallets:Z}=T(),J=U(),[K,oo]=i(null),[to,eo]=i(null),[no,io]=i([]),[ro,so]=i(0),[ao,mo]=i(!1),[co,lo]=i(!1),[po,uo]=i(!1),[ho,go]=i(!1);if(!Y?.funding||"solana"!==Y.funding.chainType)throw Error("Invalid funding data");let{address:jo,cluster:fo,connectedWalletAddress:vo}=Y.funding,[yo,wo]=i(Y.funding.amount),bo=vo?Z.find((({address:o})=>o===vo)):Z[0],[Io,Co]=i(null);r((()=>{(async()=>{if(!bo)return;let o=await bo.getEthereumProvider();Co(s({account:bo.address,transport:a(o)}).extend(m))})().catch(console.error)}),[bo]);let[So,To]=i(0n),ko=P(So);r((()=>{let o=J(R);o?o.getBalance({address:jo,cluster:fo}).then((o=>To(BigInt(o)))):console.warn("Unable to load solana plugin, skipping balance")}),[]);let[No,xo]=i(),{tokenPrice:Ao}=S("solana"),{fundingAmountInBaseUnit:Eo,fundingAmountInUsd:Fo}=B({amount:yo,fee:0n,tokenPrice:Ao});r((()=>{(async()=>{if(!Io||!bo)return;let o=["testnet","devnet"].includes(fo.name);o&&console.warn("Solana testnets are not supported for bridging");let t=v(X.chains).filter((({testnet:t})=>!!t===o)),e=(await M({chains:t,address:bo.address,appId:z,rpcConfig:$})).filter((o=>o.balance>0n));if(e.length<1)return void oo(new w(`Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));e.sort(((o,t)=>Number(t.balance-o.balance)));let n=(await Promise.allSettled(e.map((async o=>({...o,quote:await x({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:o.chain.id})})}))))).filter((o=>"fulfilled"===o.status)).map((o=>o.value));if(n.length<1)return void oo(new w(`Unable to fetch quotes for bridging. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));let i=n.map((({quote:o,balance:t,chain:e})=>({bridgeTx:E(o),balance:t,chain:e}))).filter((({bridgeTx:o})=>!!o));if(i.length>1)return void io(i);let r=i.at(0);r?(lo(!0),xo({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):oo(new w(`Unable to select bridge option from quotes. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE))})().catch(console.error)}),[Io]),r((()=>{(async()=>{let o,t;if(!Io||!bo||ao||po||!No)return;mo(!0);let e=c({chain:No.chain,transport:l(_(No.chain,$,z))});try{o=await e.prepareTransactionRequest({account:bo.address,to:No.to,chain:No.chain,data:No.data,value:BigInt(No.value??0)})}catch(o){console.error(o),no.length>1&&eo(o.shortMessage??"Something went wrong")}if(o){mo(!1),uo(!0);try{await Io.switchChain({id:No.chain.id})}catch(o){await Io.addChain({chain:No.chain}),await Io.switchChain({id:No.chain.id})}try{t=await Io.sendTransaction(o),G({eventName:N,payload:{provider:"external",status:"success",address:bo.address,chainId:No.chain.id,value:No.value?.toString(),txHash:t}})}catch(o){console.error(o),"TransactionExecutionError"===o.name&&(no.length<1?oo(new w(o.shortMessage,void 0,b.TRANSACTION_FAILURE)):eo(o.shortMessage??"Something went wrong"))}t?(await Io.waitForTransactionReceipt({hash:t}),uo(!1),go(!0)):uo(!1)}else mo(!1)})().catch(console.error)}),[Io,No]),r((()=>{if(!K)return;let o={error:K,previousScreen:q.FUNDING_TRANSFER_FROM_WALLET_SCREEN};Q({funding:Y?.funding,sendTransaction:Y?.sendTransaction,errorModalData:o}),V(q.ERROR_SCREEN,!1)}),[K]);let Lo=bo?k(bo.walletClientType,bo.connectorType,bo.walletClientType)||"wallet":null;if(r((()=>{if(!ho)return;let o=setTimeout(D,y);return()=>clearTimeout(o)}),[ho]),ho/*#__PURE__*/)return o(t,{children:[/*#__PURE__*/e(j,{}),/*#__PURE__*/e(p,{}),/*#__PURE__*/o(d,{children:[/*#__PURE__*/e(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e(g,{title:"Success!",description:`You’ve successfully added ${yo} SOL to your ${X.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e(u,{}),/*#__PURE__*/e(h,{})]});let Po=no[ro];return no.length>1&&Po?/*#__PURE__*/e(O,{displayName:Lo,configuredFundingChain:fo,formattedBalance:ko,fundingAmount:yo,fundingCurrency:"SOL",fundingAmountInUsd:Fo,options:no,selectedOption:Po,isPreparing:ao,isSubmitting:po,addressToFund:jo,fundingWalletAddress:bo?.address||"",errorMessage:to,onSubmit:()=>{Y.funding?.amount!==yo?async function(){if(bo&&Po)try{let o=await x({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:Po.chain.id})}),t=E(o);if(!t)throw Error("Invalid transaction request");lo(!0),xo({data:t.data,to:t.to,value:t.value,chain:Po.chain})}catch(o){console.error(o),oo(new w("Unable to fetch quotes for bridging",o,b.INSUFFICIENT_BALANCE))}}().catch(console.error):xo({to:Po.bridgeTx.to,data:Po.bridgeTx.data,value:Po.bridgeTx.value,chain:Po.chain})},onSelect:o=>{o!==ro&&(eo(null),so(o))},onAmountChange:wo}):po&&bo?/*#__PURE__*/e(H,{wallet:bo,displayName:Lo,addressToFund:jo,isBridging:co,isErc20Flow:!1,chainId:"solana",chainName:fo.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
|
|
1
|
+
import{jsxs as o,Fragment as t,jsx as e}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as r}from"react";import{createWalletClient as s,custom as a,publicActions as m,createPublicClient as c,http as l}from"viem";import{RefactorSpacerTop as p,CenteredItemWithGap as d,RefactorSpacerBottom as u}from"../../components/Layouts.mjs";import{BlobbyFooter as h}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as g}from"../../components/ScreenHeader.mjs";import j from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as f}from"../../components/primitives/NeutralSpinner/index.mjs";import{addToDefaultChains as v}from"../../connectors/chains/utils.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as y}from"../../constants.mjs";import{PrivyClientError as w,PrivyErrorCode as b}from"../../errors.mjs";import{usePrivyInternal as I}from"../../hooks/internal-context.mjs";import{usePrivyModal as C}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as S}from"../../hooks/useGetTokenPrice.mjs";import{useWallets as T}from"../../hooks/useWallets.mjs";import{toDisplayName as k}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as x}from"../../lib/funding/analytics.mjs";import{getQuote as N,toGetQuoteInput as A,toEvmTransactionRequestInfoFromQuote as E}from"../../lib/funding/reservoir.mjs";import{RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID as F,RELAY_SOLANA_NATIVE_CURRENCY_ID as L}from"../../lib/solana/index.mjs";import{getNativeCurrencyFromLamports as P,getSolanaFormattedAmounts as B}from"../../lib/solana/transaction.mjs";import{getBalanceForChains as M}from"../../lib/wallets/actions/getBalanceForChains.mjs";import{usePlugins as U}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as R}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as W}from"../../utils/index.mjs";import{getJsonRpcEndpointFromChain as _}from"../../utils/eth/getPublicClient.mjs";import{ModalScreen as q}from"../index.mjs";import{BridgeNetworkSelectionView as O}from"./BridgeNetworkSelectionView.mjs";import{TransferOrBridgeLoadingScreen as H}from"./TransferOrBridgeLoadingScreen.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.mjs";import"../../svg/backpack.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/okx-wallet.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/solflare.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"../../utils/buffer/readBigInt64LE.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"@privy-io/js-sdk-core";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Subtitle.mjs";import"../../components/ui/typography/Title.mjs";import"../../components/ui/wallet/NetworkBalanceCard.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../components/ui/wallet/shared.mjs";import"../../components/ui/wallet/NetworkSelectorPanel.mjs";import"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"../../lib/ethers.mjs";import"./styles.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";const $=()=>{let{rpcConfig:$,appId:z,closePrivyModal:D,createAnalyticsEvent:G}=I(),{navigate:V,setModalData:Q,app:X,data:Y}=C(),{wallets:Z}=T(),J=U(),[K,oo]=i(null),[to,eo]=i(null),[no,io]=i([]),[ro,so]=i(0),[ao,mo]=i(!1),[co,lo]=i(!1),[po,uo]=i(!1),[ho,go]=i(!1);if(!Y?.funding||"solana"!==Y.funding.chainType)throw Error("Invalid funding data");let{address:jo,cluster:fo,connectedWalletAddress:vo}=Y.funding,[yo,wo]=i(Y.funding.amount),bo=vo?Z.find((({address:o})=>o===vo)):Z[0],[Io,Co]=i(null);r((()=>{(async()=>{if(!bo)return;let o=await bo.getEthereumProvider();Co(s({account:bo.address,transport:a(o)}).extend(m))})().catch(console.error)}),[bo]);let[So,To]=i(0n),ko=P(So);r((()=>{let o=J(R);o?o.getBalance({address:jo,cluster:fo}).then((o=>To(BigInt(o)))):console.warn("Unable to load solana plugin, skipping balance")}),[]);let[xo,No]=i(),{tokenPrice:Ao}=S("solana"),{fundingAmountInBaseUnit:Eo,fundingAmountInUsd:Fo}=B({amount:yo,fee:0n,tokenPrice:Ao});r((()=>{(async()=>{if(!Io||!bo)return;let o=["testnet","devnet"].includes(fo.name);o&&console.warn("Solana testnets are not supported for bridging");let t=v(X.chains).filter((({testnet:t})=>!!t===o)),e=(await M({chains:t,address:bo.address,appId:z,rpcConfig:$})).filter((o=>o.balance>0n));if(e.length<1)return void oo(new w(`Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));e.sort(((o,t)=>Number(t.balance-o.balance)));let n=(await Promise.allSettled(e.map((async o=>({...o,quote:await N({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:o.chain.id})})}))))).filter((o=>"fulfilled"===o.status)).map((o=>o.value));if(n.length<1)return void oo(new w(`Unable to fetch quotes for bridging. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE));let i=n.map((({quote:o,balance:t,chain:e})=>({bridgeTx:E(o),balance:t,chain:e}))).filter((({bridgeTx:o})=>!!o));if(i.length>1)return void io(i);let r=i.at(0);r?(lo(!0),No({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):oo(new w(`Unable to select bridge option from quotes. Wallet ${W(bo.address)} does not have enough funds.`,void 0,b.INSUFFICIENT_BALANCE))})().catch(console.error)}),[Io]),r((()=>{(async()=>{let o,t;if(!Io||!bo||ao||po||!xo)return;mo(!0);let e=c({chain:xo.chain,transport:l(_(xo.chain,$,z))});try{o=await e.prepareTransactionRequest({account:bo.address,to:xo.to,chain:xo.chain,data:xo.data,value:BigInt(xo.value??0)})}catch(o){console.error(o),no.length>1&&eo(o.shortMessage??"Something went wrong")}if(o){mo(!1),uo(!0);try{await Io.switchChain({id:xo.chain.id})}catch(o){await Io.addChain({chain:xo.chain}),await Io.switchChain({id:xo.chain.id})}try{t=await Io.sendTransaction(o),G({eventName:x,payload:{provider:"external",status:"success",address:bo.address,chainId:xo.chain.id,value:xo.value?.toString(),txHash:t}})}catch(o){console.error(o),"TransactionExecutionError"===o.name&&(no.length<1?oo(new w(o.shortMessage,void 0,b.TRANSACTION_FAILURE)):eo(o.shortMessage??"Something went wrong"))}t?(await Io.waitForTransactionReceipt({hash:t}),uo(!1),go(!0)):uo(!1)}else mo(!1)})().catch(console.error)}),[Io,xo]),r((()=>{if(!K)return;let o={error:K,previousScreen:q.FUNDING_TRANSFER_FROM_WALLET_SCREEN};Q({funding:Y?.funding,sendTransaction:Y?.sendTransaction,errorModalData:o}),V(q.ERROR_SCREEN,!1)}),[K]);let Lo=bo?k(bo.walletClientType,bo.connectorType,bo.walletClientType)||"wallet":null;if(r((()=>{if(!ho)return;let o=setTimeout(D,y);return()=>clearTimeout(o)}),[ho]),ho/*#__PURE__*/)return o(t,{children:[/*#__PURE__*/e(j,{}),/*#__PURE__*/e(p,{}),/*#__PURE__*/o(d,{children:[/*#__PURE__*/e(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e(g,{title:"Success!",description:`You’ve successfully added ${yo} SOL to your ${X.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e(u,{}),/*#__PURE__*/e(h,{})]});let Po=no[ro];return no.length>1&&Po?/*#__PURE__*/e(O,{displayName:Lo,configuredFundingChain:fo,formattedBalance:ko,fundingAmount:yo,fundingCurrency:"SOL",fundingAmountInUsd:Fo,options:no,selectedOption:Po,isPreparing:ao,isSubmitting:po,addressToFund:jo,fundingWalletAddress:bo?.address||"",errorMessage:to,onSubmit:()=>{Y.funding?.amount!==yo?async function(){if(bo&&Po)try{let o=await N({isTestnet:!1,input:A({amount:Eo.toString(),user:bo.address,recipient:jo,destinationChainId:F,destinationCurrency:L,originChainId:Po.chain.id})}),t=E(o);if(!t)throw Error("Invalid transaction request");lo(!0),No({data:t.data,to:t.to,value:t.value,chain:Po.chain})}catch(o){console.error(o),oo(new w("Unable to fetch quotes for bridging",o,b.INSUFFICIENT_BALANCE))}}().catch(console.error):No({to:Po.bridgeTx.to,data:Po.bridgeTx.data,value:Po.bridgeTx.value,chain:Po.chain})},onSelect:o=>{o!==ro&&(eo(null),so(o))},onAmountChange:wo}):po&&bo?/*#__PURE__*/e(H,{wallet:bo,displayName:Lo,addressToFund:jo,isBridging:co,isErc20Flow:!1,chainId:"solana",chainName:fo.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
|
|
2
2
|
/*#__PURE__*/o(t,{children:[/*#__PURE__*/e(j,{}),/*#__PURE__*/e(f,{}),/*#__PURE__*/e("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e(h,{})]})};export{$ as AwaitingEvmToSolBridgingScreen};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import e from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useRef as r,useEffect as s}from"react";import{RefactorSpacerTop as m,CenteredItemWithGap as a,RefactorSpacerBottom as c}from"../../components/Layouts.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as p}from"../../components/ScreenHeader.mjs";import u from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as d}from"../../components/primitives/NeutralSpinner/index.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as j}from"../../constants.mjs";import{PrivyClientError as h,PrivyErrorCode as f}from"../../errors.mjs";import{usePrivyInternal as g}from"../../hooks/internal-context.mjs";import{usePrivyModal as v}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as y}from"../../hooks/useGetTokenPrice.mjs";import{toDisplayName as w}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as I}from"../../lib/funding/analytics.mjs";import{getSolanaRpcEndpointForCluster as b}from"../../lib/solana/index.mjs";import{getSolanaFormattedAmounts as T}from"../../lib/solana/transaction.mjs";import{usePlugins as S}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as
|
|
1
|
+
import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import e from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useRef as r,useEffect as s}from"react";import{RefactorSpacerTop as m,CenteredItemWithGap as a,RefactorSpacerBottom as c}from"../../components/Layouts.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as p}from"../../components/ScreenHeader.mjs";import u from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as d}from"../../components/primitives/NeutralSpinner/index.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as j}from"../../constants.mjs";import{PrivyClientError as h,PrivyErrorCode as f}from"../../errors.mjs";import{usePrivyInternal as g}from"../../hooks/internal-context.mjs";import{usePrivyModal as v}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as y}from"../../hooks/useGetTokenPrice.mjs";import{toDisplayName as w}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as I}from"../../lib/funding/analytics.mjs";import{getSolanaRpcEndpointForCluster as b}from"../../lib/solana/index.mjs";import{getSolanaFormattedAmounts as T}from"../../lib/solana/transaction.mjs";import{usePlugins as S}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as k}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as A}from"../../utils/index.mjs";import{ModalScreen as C}from"../index.mjs";import{TransferOrBridgeLoadingScreen as N}from"./TransferOrBridgeLoadingScreen.mjs";import{useSolanaWallets as x}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.mjs";import"../../svg/backpack.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/okx-wallet.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/solflare.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"../../utils/buffer/readBigInt64LE.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../hooks/useWallets.mjs";const E=()=>{let{closePrivyModal:E,createAnalyticsEvent:P}=g(),{navigate:R,setModalData:F,app:L,data:U}=v(),{wallets:M}=x(),_=S(),[O,W]=i(0n),[B,H]=i(null),[z,G]=i(!1),[D,$]=i(!1),q=r(!1);if(!U?.funding||"solana"!==U.funding.chainType)throw Error("Invalid funding data");let{address:Q,amount:V,cluster:X,connectedWalletAddress:Y}=U.funding,Z=b(X),{tokenPrice:J}=y("solana"),{fundingAmountInBaseUnit:K,totalPriceInUsd:oo,totalPriceInNativeCurrency:to,feePriceInNativeCurrency:no,feePriceInUsd:eo}=T({amount:V,fee:O,tokenPrice:J}),io=Y?M.find((({address:o})=>o===Y)):M[0];if(s((()=>{(async()=>{if("solana"===io?.type&&io.sendTransaction&&!z&&!q.current){q.current=!0;try{let o=_(k);if(!o)throw new h("Unable to load solana plugin");let{connection:t,transaction:n}=await o.createTransferTransaction({from:io.address,to:Q,amount:K,cluster:X}),e=await n.getEstimatedFee(t);null!=e&&W(BigInt(e)),G(!0);let i=await t.simulateTransaction(n);if(i.value.err)return i.value.logs?.find((o=>/insufficient (lamports|funds)/gi.test(o)))?void H(new h(`Wallet ${A(io.address,void 0,void 0,"solana")} does not have enough funds.`,void 0,f.INSUFFICIENT_BALANCE)):(console.error("Transaction failed:",i.value.err),void H(new h("Something went wrong",void 0,f.TRANSACTION_FAILURE)));let r=await io.sendTransaction(n,t);P({eventName:I,payload:{provider:"external",status:"success",address:io.address,value:K.toString(),txHash:r,chainType:"solana",rpcEndpoint:Z}}),G(!1),$(!0)}catch(o){if(console.error(o),G(!1),/user rejected the request/gi.test(o.message||""))return void H(new h("Transaction was rejected by the user",void 0,f.TRANSACTION_FAILURE));H(new h("Something went wrong",void 0,f.TRANSACTION_FAILURE))}}})().catch(console.error).finally((()=>q.current=!1))}),[]),s((()=>{if(!B)return;let o={error:B,previousScreen:C.FUNDING_TRANSFER_FROM_WALLET_SCREEN};F({funding:U?.funding,sendTransaction:U?.sendTransaction,errorModalData:o}),R(C.ERROR_SCREEN,!1)}),[B]),s((()=>{if(!D)return;let o=setTimeout(E,j);return()=>clearTimeout(o)}),[D]),D/*#__PURE__*/)return o(t,{children:[/*#__PURE__*/n(u,{}),/*#__PURE__*/n(m,{}),/*#__PURE__*/o(a,{children:[/*#__PURE__*/n(e,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/n(p,{title:"Success!",description:`You’ve successfully added ${V} SOL to your ${L.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/n(c,{}),/*#__PURE__*/n(l,{})]});let ro=io?w(io.walletClientType,io.connectorType,io.walletClientType)||"wallet":null;return io&&z?/*#__PURE__*/n(N,{wallet:io,displayName:ro,addressToFund:Q,isBridging:!1,isErc20Flow:!1,totalPriceInUsd:oo,totalPriceInNativeCurrency:to,gasPriceInUsd:eo,gasPriceInNativeCurrency:no,chainId:"solana",chainName:X.name}):
|
|
2
2
|
/*#__PURE__*/o(t,{children:[/*#__PURE__*/n(u,{}),/*#__PURE__*/n(d,{}),/*#__PURE__*/n("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/n(l,{})]})};export{E as AwaitingExternalSolanaTransferScreen};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as r}from"react";import{parseEther as s,createWalletClient as a,custom as c,publicActions as m,createPublicClient as l,http as p,encodeFunctionData as d}from"viem";import{RefactorSpacerTop as u,CenteredItemWithGap as h,RefactorSpacerBottom as g}from"../../components/Layouts.mjs";import{BlobbyFooter as j}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as f}from"../../components/ScreenHeader.mjs";import v from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as y}from"../../components/primitives/NeutralSpinner/index.mjs";import{addToDefaultChains as b}from"../../connectors/chains/utils.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as w}from"../../constants.mjs";import{PrivyClientError as I,PrivyErrorCode as C}from"../../errors.mjs";import{usePrivyInternal as T}from"../../hooks/internal-context.mjs";import{usePrivyModal as S}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as N}from"../../hooks/useGetTokenPrice.mjs";import{useWallets as k}from"../../hooks/useWallets.mjs";import{ERC20_TRANSFER_ABI_STUB as A}from"../../lib/erc20/actions/abis/transfer.mjs";import{formatErc20TokenAmount as E}from"../../lib/erc20/formatErc20TokenAmount.mjs";import{getDollarsFromStringFloat as x,sumWeiQuantities as F,getDollarsFromWei as B,getNativeCurrencyFromWei as L}from"../../lib/ethers.mjs";import{toDisplayName as M}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as P}from"../../lib/funding/analytics.mjs";import{getQuote as R,toGetQuoteInput as U,toEvmTransactionRequestInfoFromQuote as W}from"../../lib/funding/reservoir.mjs";import{getBalanceForChains as _}from"../../lib/wallets/actions/getBalanceForChains.mjs";import{getErc20Balance as q}from"../../lib/wallets/actions/getErc20Balance.mjs";import{formatWalletAddress as $}from"../../utils/index.mjs";import{getJsonRpcEndpointFromChain as H}from"../../utils/eth/getPublicClient.mjs";import{ModalScreen as O}from"../index.mjs";import{BridgeNetworkSelectionView as z}from"./BridgeNetworkSelectionView.mjs";import{TransferOrBridgeLoadingScreen as D}from"./TransferOrBridgeLoadingScreen.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"@privy-io/js-sdk-core";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Subtitle.mjs";import"../../components/ui/typography/Title.mjs";import"../../components/ui/wallet/NetworkBalanceCard.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../components/ui/wallet/shared.mjs";import"../../components/ui/wallet/NetworkSelectorPanel.mjs";import"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"./styles.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";const G=()=>{let{rpcConfig:G,appId:V,closePrivyModal:Q,createAnalyticsEvent:X}=T(),{navigate:Y,setModalData:Z,app:J,data:K}=S(),{wallets:oo}=k(),[eo,to]=i(!1),[no,io]=i(0n),[ro,so]=i(!1),[ao,co]=i(null),[mo,lo]=i(null),[po,uo]=i([]),[ho,go]=i(0),[jo,fo]=i(!1),[vo,yo]=i(!1),[bo,wo]=i(!1),[Io,Co]=i(!1);if(!K?.funding||"ethereum"!==K.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:To,chain:So,connectedWalletAddress:No}=K.funding,ko=K.funding.address,Ao=K.funding.erc20Address,[Eo,xo]=i(K.funding.amount);r((()=>{Ao&&!To&&co(Error("Unable to fetch token details"))}),[]);let Fo=!!Ao&&!!To,Bo=Fo?BigInt(parseFloat(Eo)*10**To.decimals):s(Eo),Lo=No?oo.find((({address:o})=>o===No)):oo[0],[Mo,Po]=i(null);r((()=>{(async()=>{if(!Lo)return;let o=await Lo.getEthereumProvider();Po(a({account:Lo.address,transport:c(o)}).extend(m))})().catch(console.error)}),[Lo]);let[Ro,Uo]=i(0n);r((()=>{l({chain:So,transport:p(H(So,G,V))}).getBalance({address:ko}).then(Uo).catch(console.error)}),[]);let[Wo,_o]=i(0n);r((()=>{Fo&&q({chain:So,address:ko,appId:V,rpcConfig:G,erc20Address:Ao}).then((o=>_o(o.balance))).catch(console.error)}),[]);let{tokenPrice:qo}=N(So.id),[$o,Ho]=i({to:ko,chain:So,value:Bo,data:void 0});r((()=>{(async()=>{let o,e;if(!Mo||!Lo||jo||bo)return;fo(!0);let t=l({chain:$o.chain,transport:p(H($o.chain,G,V))});if(Fo&&!$o.data)return await t.simulateContract({address:Ao,chain:$o.chain,abi:A,functionName:"transfer",args:[ko,Bo],account:Lo.address}).catch((o=>{console.warn("Simulated token transfer failed with error, fetching bridge options.",o)}))?(fo(!1),void Ho({to:Ao,chain:$o.chain,data:d({abi:A,functionName:"transfer",args:[ko,Bo]}),value:"0x0"})):(fo(!1),void so(!0));try{o=await t.prepareTransactionRequest({account:Lo.address,to:$o.to,chain:$o.chain,data:$o.data,value:BigInt($o.value??0)})}catch(o){if(console.error(o),po.length>1)lo(o.shortMessage??"Something went wrong");else if(vo&&0===po.length)return void co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))}if(!o)return fo(!1),void so(!0);fo(!1),wo(!0),to(!0),io(o.gas);try{await Mo.switchChain({id:$o.chain.id})}catch(o){await Mo.addChain({chain:$o.chain}),await Mo.switchChain({id:$o.chain.id})}try{e=await Mo.sendTransaction(o),X({eventName:P,payload:{provider:"external",status:"success",address:Lo.address,chainId:$o.chain.id,value:$o.value?.toString(),txHash:e}})}catch(o){if(console.error(o),"TransactionExecutionError"===o.name)if(po.length<1){let e=o.shortMessage;(o.shortMessage.includes("rejected the request")||o.details.includes("rejected the request"))&&(e="User rejected the request."),co(new I(e,void 0,C.TRANSACTION_FAILURE))}else lo(o.shortMessage??"Something went wrong")}e?(await Mo.waitForTransactionReceipt({hash:e}),wo(!1),Co(!0)):wo(!1)})().catch(console.error)}),[Mo,$o]),r((()=>{(async()=>{if(!ro||!Mo||!Lo)return;let o=b(J.chains).filter((o=>o.id!==So.id&&!!o.testnet==!!So.testnet));Fo&&o.unshift(So);let e=await _({chains:o,address:Lo.address,appId:V,rpcConfig:G}),t=Fo?e.filter((o=>o.balance>0n)):e.filter((o=>o.balance>Bo));if(t.length<1)return void co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));t.sort(((o,e)=>Number(e.balance-o.balance)));let n=(await Promise.allSettled(t.map((async o=>({quote:await R({isTestnet:!!So.testnet,input:U({amount:Bo.toString(),user:Lo.address,recipient:ko,destinationChainId:So.id,destinationCurrency:Ao,originChainId:o.chain.id})}),...o}))))).filter((o=>"fulfilled"===o.status)).map((o=>o.value));if(n.length<1)return void co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));let i=n.map((o=>({bridgeTx:W(o.quote),balance:o.balance,chain:o.chain}))).filter((o=>!!o.bridgeTx));if(i.length>1)return void uo(i);let r=i[0];r?(yo(!0),Ho({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ro]),r((()=>{if(!ao)return;let o={error:ao,previousScreen:O.FUNDING_TRANSFER_FROM_WALLET_SCREEN};Z({funding:K?.funding,sendTransaction:K?.sendTransaction,errorModalData:o}),Y(O.ERROR_SCREEN,!1)}),[ao]);let Oo=Lo?M(Lo.walletClientType,Lo.connectorType,Lo.walletClientType)||"wallet":null,zo=!Fo&&qo?x(Eo??"0",qo):void 0,Do=Fo?no:F([no,Bo]),Go=Do&&qo?B(Do,qo):void 0,Vo=Do?L(Do,"ETH"):void 0,Qo=no&&qo?B(no,qo):void 0,Xo=no?L(no,"ETH"):void 0;if(r((()=>{if(!Io)return;let o=setTimeout(Q,w);return()=>clearTimeout(o)}),[Io]),Io/*#__PURE__*/)return o(e,{children:[/*#__PURE__*/t(v,{}),/*#__PURE__*/t(u,{}),/*#__PURE__*/o(h,{children:[/*#__PURE__*/t(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t(f,{title:"Success!",description:`You’ve successfully added ${Eo} ${Fo?To.symbol:So.nativeCurrency.symbol} to your ${J.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t(g,{}),/*#__PURE__*/t(j,{})]});let Yo=Fo?`${E({amount:Wo,decimals:To.decimals})} ${To.symbol}`:L(Ro,So.nativeCurrency.symbol,3,!0),Zo=po[ho];return po.length>1&&Zo?/*#__PURE__*/t(z,{displayName:Oo,configuredFundingChain:So,formattedBalance:Yo,fundingAmount:Eo,fundingCurrency:Fo?To.symbol:So.nativeCurrency.symbol,fundingAmountInUsd:zo,options:po,selectedOption:Zo,isPreparing:jo,isSubmitting:bo,addressToFund:ko,fundingWalletAddress:Lo?.address||"",errorMessage:mo,onSubmit:()=>{K.funding?.amount!==Eo?async function(){if(Lo&&Zo)try{let o=await R({isTestnet:!!So.testnet,input:U({amount:Bo.toString(),user:Lo.address,recipient:ko,destinationChainId:So.id,destinationCurrency:Ao,originChainId:Zo.chain.id})}),e=W(o);if(!e)throw Error("Invalid transaction request");yo(!0),Ho({data:e.data,to:e.to,value:e.value,chain:Zo.chain})}catch(o){console.error(o),co(new I("Unable to fetch quotes for bridging",o,C.INSUFFICIENT_BALANCE))}}().catch(console.error):Ho({to:Zo.bridgeTx.to,data:Zo.bridgeTx.data,value:Zo.bridgeTx.value,chain:Zo.chain})},onSelect:o=>{o!==ho&&(lo(null),go(o))},onAmountChange:xo}):eo&&no&&Lo&&K?.funding?/*#__PURE__*/t(D,{wallet:Lo,displayName:Oo,addressToFund:ko,isBridging:vo,isErc20Flow:Fo,totalPriceInUsd:Go,totalPriceInNativeCurrency:Vo,gasPriceInUsd:Qo,gasPriceInNativeCurrency:Xo,chainId:So.id,chainName:So.name}):
|
|
1
|
+
import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import n from"@heroicons/react/24/outline/CheckCircleIcon";import{useState as i,useEffect as r}from"react";import{parseEther as s,createWalletClient as a,custom as c,publicActions as m,createPublicClient as l,http as p,encodeFunctionData as d}from"viem";import{RefactorSpacerTop as u,CenteredItemWithGap as h,RefactorSpacerBottom as g}from"../../components/Layouts.mjs";import{BlobbyFooter as j}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as f}from"../../components/ScreenHeader.mjs";import v from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as y}from"../../components/primitives/NeutralSpinner/index.mjs";import{addToDefaultChains as b}from"../../connectors/chains/utils.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as w}from"../../constants.mjs";import{PrivyClientError as I,PrivyErrorCode as C}from"../../errors.mjs";import{usePrivyInternal as T}from"../../hooks/internal-context.mjs";import{usePrivyModal as S}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as k}from"../../hooks/useGetTokenPrice.mjs";import{useWallets as N}from"../../hooks/useWallets.mjs";import{ERC20_TRANSFER_ABI_STUB as A}from"../../lib/erc20/actions/abis/transfer.mjs";import{formatErc20TokenAmount as E}from"../../lib/erc20/formatErc20TokenAmount.mjs";import{getDollarsFromStringFloat as x,sumWeiQuantities as F,getDollarsFromWei as B,getNativeCurrencyFromWei as L}from"../../lib/ethers.mjs";import{toDisplayName as M}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as P}from"../../lib/funding/analytics.mjs";import{getQuote as R,toGetQuoteInput as U,toEvmTransactionRequestInfoFromQuote as W}from"../../lib/funding/reservoir.mjs";import{getBalanceForChains as _}from"../../lib/wallets/actions/getBalanceForChains.mjs";import{getErc20Balance as q}from"../../lib/wallets/actions/getErc20Balance.mjs";import{formatWalletAddress as $}from"../../utils/index.mjs";import{getJsonRpcEndpointFromChain as H}from"../../utils/eth/getPublicClient.mjs";import{ModalScreen as O}from"../index.mjs";import{BridgeNetworkSelectionView as z}from"./BridgeNetworkSelectionView.mjs";import{TransferOrBridgeLoadingScreen as D}from"./TransferOrBridgeLoadingScreen.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../svg/backpack.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/okx-wallet.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/solflare.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"@privy-io/js-sdk-core";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Subtitle.mjs";import"../../components/ui/typography/Title.mjs";import"../../components/ui/wallet/NetworkBalanceCard.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../components/ui/wallet/shared.mjs";import"../../components/ui/wallet/NetworkSelectorPanel.mjs";import"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"./styles.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";const G=()=>{let{rpcConfig:G,appId:V,closePrivyModal:Q,createAnalyticsEvent:X}=T(),{navigate:Y,setModalData:Z,app:J,data:K}=S(),{wallets:oo}=N(),[eo,to]=i(!1),[no,io]=i(0n),[ro,so]=i(!1),[ao,co]=i(null),[mo,lo]=i(null),[po,uo]=i([]),[ho,go]=i(0),[jo,fo]=i(!1),[vo,yo]=i(!1),[bo,wo]=i(!1),[Io,Co]=i(!1);if(!K?.funding||"ethereum"!==K.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:To,chain:So,connectedWalletAddress:ko}=K.funding,No=K.funding.address,Ao=K.funding.erc20Address,[Eo,xo]=i(K.funding.amount);r((()=>{Ao&&!To&&co(Error("Unable to fetch token details"))}),[]);let Fo=!!Ao&&!!To,Bo=Fo?BigInt(parseFloat(Eo)*10**To.decimals):s(Eo),Lo=ko?oo.find((({address:o})=>o===ko)):oo[0],[Mo,Po]=i(null);r((()=>{(async()=>{if(!Lo)return;let o=await Lo.getEthereumProvider();Po(a({account:Lo.address,transport:c(o)}).extend(m))})().catch(console.error)}),[Lo]);let[Ro,Uo]=i(0n);r((()=>{l({chain:So,transport:p(H(So,G,V))}).getBalance({address:No}).then(Uo).catch(console.error)}),[]);let[Wo,_o]=i(0n);r((()=>{Fo&&q({chain:So,address:No,appId:V,rpcConfig:G,erc20Address:Ao}).then((o=>_o(o.balance))).catch(console.error)}),[]);let{tokenPrice:qo}=k(So.id),[$o,Ho]=i({to:No,chain:So,value:Bo,data:void 0});r((()=>{(async()=>{let o,e;if(!Mo||!Lo||jo||bo)return;fo(!0);let t=l({chain:$o.chain,transport:p(H($o.chain,G,V))});if(Fo&&!$o.data)return await t.simulateContract({address:Ao,chain:$o.chain,abi:A,functionName:"transfer",args:[No,Bo],account:Lo.address}).catch((o=>{console.warn("Simulated token transfer failed with error, fetching bridge options.",o)}))?(fo(!1),void Ho({to:Ao,chain:$o.chain,data:d({abi:A,functionName:"transfer",args:[No,Bo]}),value:"0x0"})):(fo(!1),void so(!0));try{o=await t.prepareTransactionRequest({account:Lo.address,to:$o.to,chain:$o.chain,data:$o.data,value:BigInt($o.value??0)})}catch(o){if(console.error(o),po.length>1)lo(o.shortMessage??"Something went wrong");else if(vo&&0===po.length)return void co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))}if(!o)return fo(!1),void so(!0);fo(!1),wo(!0),to(!0),io(o.gas);try{await Mo.switchChain({id:$o.chain.id})}catch(o){await Mo.addChain({chain:$o.chain}),await Mo.switchChain({id:$o.chain.id})}try{e=await Mo.sendTransaction(o),X({eventName:P,payload:{provider:"external",status:"success",address:Lo.address,chainId:$o.chain.id,value:$o.value?.toString(),txHash:e}})}catch(o){if(console.error(o),"TransactionExecutionError"===o.name)if(po.length<1){let e=o.shortMessage;(o.shortMessage.includes("rejected the request")||o.details.includes("rejected the request"))&&(e="User rejected the request."),co(new I(e,void 0,C.TRANSACTION_FAILURE))}else lo(o.shortMessage??"Something went wrong")}e?(await Mo.waitForTransactionReceipt({hash:e}),wo(!1),Co(!0)):wo(!1)})().catch(console.error)}),[Mo,$o]),r((()=>{(async()=>{if(!ro||!Mo||!Lo)return;let o=b(J.chains).filter((o=>o.id!==So.id&&!!o.testnet==!!So.testnet));Fo&&o.unshift(So);let e=await _({chains:o,address:Lo.address,appId:V,rpcConfig:G}),t=Fo?e.filter((o=>o.balance>0n)):e.filter((o=>o.balance>Bo));if(t.length<1)return void co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));t.sort(((o,e)=>Number(e.balance-o.balance)));let n=(await Promise.allSettled(t.map((async o=>({quote:await R({isTestnet:!!So.testnet,input:U({amount:Bo.toString(),user:Lo.address,recipient:No,destinationChainId:So.id,destinationCurrency:Ao,originChainId:o.chain.id})}),...o}))))).filter((o=>"fulfilled"===o.status)).map((o=>o.value));if(n.length<1)return void co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE));let i=n.map((o=>({bridgeTx:W(o.quote),balance:o.balance,chain:o.chain}))).filter((o=>!!o.bridgeTx));if(i.length>1)return void uo(i);let r=i[0];r?(yo(!0),Ho({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):co(new I(`Wallet ${$(Lo.address)} does not have enough funds.`,void 0,C.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ro]),r((()=>{if(!ao)return;let o={error:ao,previousScreen:O.FUNDING_TRANSFER_FROM_WALLET_SCREEN};Z({funding:K?.funding,sendTransaction:K?.sendTransaction,errorModalData:o}),Y(O.ERROR_SCREEN,!1)}),[ao]);let Oo=Lo?M(Lo.walletClientType,Lo.connectorType,Lo.walletClientType)||"wallet":null,zo=!Fo&&qo?x(Eo??"0",qo):void 0,Do=Fo?no:F([no,Bo]),Go=Do&&qo?B(Do,qo):void 0,Vo=Do?L(Do,"ETH"):void 0,Qo=no&&qo?B(no,qo):void 0,Xo=no?L(no,"ETH"):void 0;if(r((()=>{if(!Io)return;let o=setTimeout(Q,w);return()=>clearTimeout(o)}),[Io]),Io/*#__PURE__*/)return o(e,{children:[/*#__PURE__*/t(v,{}),/*#__PURE__*/t(u,{}),/*#__PURE__*/o(h,{children:[/*#__PURE__*/t(n,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t(f,{title:"Success!",description:`You’ve successfully added ${Eo} ${Fo?To.symbol:So.nativeCurrency.symbol} to your ${J.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t(g,{}),/*#__PURE__*/t(j,{})]});let Yo=Fo?`${E({amount:Wo,decimals:To.decimals})} ${To.symbol}`:L(Ro,So.nativeCurrency.symbol,3,!0),Zo=po[ho];return po.length>1&&Zo?/*#__PURE__*/t(z,{displayName:Oo,configuredFundingChain:So,formattedBalance:Yo,fundingAmount:Eo,fundingCurrency:Fo?To.symbol:So.nativeCurrency.symbol,fundingAmountInUsd:zo,options:po,selectedOption:Zo,isPreparing:jo,isSubmitting:bo,addressToFund:No,fundingWalletAddress:Lo?.address||"",errorMessage:mo,onSubmit:()=>{K.funding?.amount!==Eo?async function(){if(Lo&&Zo)try{let o=await R({isTestnet:!!So.testnet,input:U({amount:Bo.toString(),user:Lo.address,recipient:No,destinationChainId:So.id,destinationCurrency:Ao,originChainId:Zo.chain.id})}),e=W(o);if(!e)throw Error("Invalid transaction request");yo(!0),Ho({data:e.data,to:e.to,value:e.value,chain:Zo.chain})}catch(o){console.error(o),co(new I("Unable to fetch quotes for bridging",o,C.INSUFFICIENT_BALANCE))}}().catch(console.error):Ho({to:Zo.bridgeTx.to,data:Zo.bridgeTx.data,value:Zo.bridgeTx.value,chain:Zo.chain})},onSelect:o=>{o!==ho&&(lo(null),go(o))},onAmountChange:xo}):eo&&no&&Lo&&K?.funding?/*#__PURE__*/t(D,{wallet:Lo,displayName:Oo,addressToFund:No,isBridging:vo,isErc20Flow:Fo,totalPriceInUsd:Go,totalPriceInNativeCurrency:Vo,gasPriceInUsd:Qo,gasPriceInNativeCurrency:Xo,chainId:So.id,chainName:So.name}):
|
|
2
2
|
/*#__PURE__*/o(e,{children:[/*#__PURE__*/t(v,{}),/*#__PURE__*/t(y,{}),/*#__PURE__*/t("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/t(j,{})]})};export{G as AwaitingExternalTransferScreen};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as e,jsx as n}from"react/jsx-runtime";import{ModalScreen as t}from"../index.mjs";import i from"@heroicons/react/24/outline/CheckCircleIcon";import{useRef as r,useState as s,useEffect as m}from"react";import{parseEther as a}from"viem";import{RefactorSpacerTop as c,CenteredItemWithGap as l,RefactorSpacerBottom as p}from"../../components/Layouts.mjs";import{BlobbyFooter as d}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as u}from"../../components/ScreenHeader.mjs";import j from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as h}from"../../components/primitives/NeutralSpinner/index.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as f}from"../../constants.mjs";import{PrivyClientError as g,PrivyErrorCode as v}from"../../errors.mjs";import{usePrivyInternal as y}from"../../hooks/internal-context.mjs";import{usePrivyModal as w}from"../../hooks/modal-context.mjs";import{toDisplayName as I}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as b}from"../../lib/funding/analytics.mjs";import{getQuote as C,toGetQuoteInput as S}from"../../lib/funding/reservoir.mjs";import{RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID as T,RELAY_SOLANA_USDC_TOKEN_ID as A,RELAY_SOLANA_NATIVE_CURRENCY_ID as N}from"../../lib/solana/index.mjs";import{usePlugins as F}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as
|
|
1
|
+
import{jsxs as o,Fragment as e,jsx as n}from"react/jsx-runtime";import{ModalScreen as t}from"../index.mjs";import i from"@heroicons/react/24/outline/CheckCircleIcon";import{useRef as r,useState as s,useEffect as m}from"react";import{parseEther as a}from"viem";import{RefactorSpacerTop as c,CenteredItemWithGap as l,RefactorSpacerBottom as p}from"../../components/Layouts.mjs";import{BlobbyFooter as d}from"../../components/ModalFooter.mjs";import{CenteredScreenHeader as u}from"../../components/ScreenHeader.mjs";import j from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as h}from"../../components/primitives/NeutralSpinner/index.mjs";import{DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS as f}from"../../constants.mjs";import{PrivyClientError as g,PrivyErrorCode as v}from"../../errors.mjs";import{usePrivyInternal as y}from"../../hooks/internal-context.mjs";import{usePrivyModal as w}from"../../hooks/modal-context.mjs";import{toDisplayName as I}from"../../lib/external-wallets/displayHelpers.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as b}from"../../lib/funding/analytics.mjs";import{getQuote as C,toGetQuoteInput as S}from"../../lib/funding/reservoir.mjs";import{RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID as T,RELAY_SOLANA_USDC_TOKEN_ID as A,RELAY_SOLANA_NATIVE_CURRENCY_ID as N}from"../../lib/solana/index.mjs";import{usePlugins as F}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as k}from"../../plugins/solana-funding/id.mjs";import{formatSolanaWalletAddress as x}from"../../utils/index.mjs";import{TransferOrBridgeLoadingScreen as E}from"./TransferOrBridgeLoadingScreen.mjs";import{useSolanaWallets as R}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"ofetch";import"../../components/PrefetchedImage.mjs";import"../../svg/backpack.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/okx-wallet.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/solflare.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../utils/eth/getPublicClient.mjs";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"@heroicons/react/24/outline/WalletIcon";import"../../components/ui/layout/Row.mjs";import"../../components/ui/typography/LabelSm.mjs";import"../../components/ui/typography/Value.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../components/ui/wallet/NetworkIcon.mjs";import"@heroicons/react/24/outline/GlobeAltIcon";import"../../components/ui/icons/Arbitum.mjs";import"../../components/ui/icons/Avalanche.mjs";import"../../components/ui/icons/Base.mjs";import"../../components/ui/icons/Celo.mjs";import"../../components/ui/icons/Linea.mjs";import"../../components/ui/icons/Mainnnet.mjs";import"../../components/ui/icons/Optimism.mjs";import"../../components/ui/icons/Polygon.mjs";import"../../components/ui/icons/Solana.mjs";import"../../components/ui/icons/Zora.mjs";import"../../hooks/useWallets.mjs";function U(){let{closePrivyModal:U,createAnalyticsEvent:L}=y(),{navigate:_,setModalData:M,app:P,data:W}=w(),{wallets:O}=R(),$=r(!1),B=F(),[D,H]=s(!1),[q,z]=s(!1),[G,Q]=s(null);if(!W?.funding||"ethereum"!==W.funding.chainType)throw Error("Invalid funding data");let{amount:V,connectedWalletAddress:X,chain:Y,cluster:Z,isUSDC:J}=W.funding,K=W.funding.address,oo=W.funding.erc20Address,eo=W.funding.isUSDC?"USDC":Y.nativeCurrency.symbol,no=Z??{name:"mainnet-beta"},to=X?O.find((({address:o})=>o===X)):O[0];if(m((()=>{(async function(){if(!to||!Y||$.current)return;let o=B(k);if(!o)return void Q(new g("Unable to solana plugin"));$.current=!0,Y?.testnet&&console.warn("Solana testnets are not supported for bridging");let e=J?1e6*parseFloat(V):a(V),n=await C({isTestnet:!!Y.testnet,input:S({amount:e.toString(),user:to.address,recipient:K,destinationChainId:Y.id,originChainId:T,originCurrency:J?A:N,destinationCurrency:J?oo:void 0})}).catch(console.error);if(!n)return void Q(new g(`Unable to fetch quotes for bridging. Wallet ${x(to.address)} does not have enough funds.`,void 0,v.INSUFFICIENT_BALANCE));let t=await o.createBridgeTransactionFromRelayQuote({quote:n,from:to.address,cluster:no});if(t)try{H(!0);let{connection:o,transaction:i}=t,r=await o.simulateTransaction(i);if(r.value.err)return r.value.logs?.find((o=>/insufficient (lamports|funds)/gi.test(o)))?void Q(new g(`Wallet ${x(to?.address)} does not have enough funds. ${n.details.currencyIn.amountFormatted} ${eo} are needed to complete the transaction.`,void 0,v.INSUFFICIENT_BALANCE)):(console.error("Transaction failed:",r.value.err),void Q(new g("Something went wrong",void 0,v.TRANSACTION_FAILURE)));let s=await to.sendTransaction(i,o),m=await o.confirmTransaction(s);if(m.value.err)return console.error("Transaction failed:",m.value.err),void Q(new g("Something went wrong",void 0,v.TRANSACTION_FAILURE));L({eventName:b,payload:{provider:"external",status:"success",address:to.address,chainId:Y.id,value:e.toString(),txHash:s}}),z(!0)}catch(o){if(console.error(o),/user rejected the request/gi.test(o.message||""))return void Q(new g("Transaction was rejected by the user",void 0,v.TRANSACTION_FAILURE));Q(new g("Something went wrong",void 0,v.TRANSACTION_FAILURE))}else Q(new g(`Unable to select bridge option from quotes. Wallet ${x(to.address)} does not have enough funds.`,void 0,v.INSUFFICIENT_BALANCE))})().catch(console.error)}),[]),m((()=>{if(!q)return;let o=setTimeout(U,f);return()=>clearTimeout(o)}),[q]),m((()=>{if(!G)return;let o={error:G,previousScreen:t.FUNDING_TRANSFER_FROM_WALLET_SCREEN};M({funding:W?.funding,sendTransaction:W?.sendTransaction,errorModalData:o}),_(t.ERROR_SCREEN,!1)}),[G]),q/*#__PURE__*/)return o(e,{children:[/*#__PURE__*/n(j,{}),/*#__PURE__*/n(c,{}),/*#__PURE__*/o(l,{children:[/*#__PURE__*/n(i,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/n(u,{title:"Success!",description:`You’ve successfully added ${V} ${eo} to your ${P.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/n(p,{}),/*#__PURE__*/n(d,{})]});if(D&&to){let o=to?I(to.walletClientType,to.connectorType,to.walletClientType)||"wallet":null;/*#__PURE__*/return n(E,{wallet:to,displayName:o,addressToFund:K,isBridging:D,isErc20Flow:!1,chainId:Y.id,chainName:Y.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0})}/*#__PURE__*/
|
|
2
2
|
return o(e,{children:[/*#__PURE__*/n(j,{}),/*#__PURE__*/n(h,{}),/*#__PURE__*/n("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/n(d,{})]})}export{U as AwaitingSolToEvmBridgingScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as
|
|
1
|
+
import{jsxs as o,Fragment as i,jsx as n}from"react/jsx-runtime";import r from"@heroicons/react/24/outline/CreditCardIcon";import e from"@heroicons/react/24/outline/QrCodeIcon";import t from"@heroicons/react/24/solid/ArrowsRightLeftIcon";import{useMemo as s,useEffect as m}from"react";import{getAddress as c}from"viem/utils";import{BlobbyFooter as a}from"../../components/ModalFooter.mjs";import l from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{ErrorBanner as p}from"../../components/ui/banners/ErrorBanner.mjs";import{InfoBanner as d}from"../../components/ui/banners/InfoBanner.mjs";import{ApplePay as h}from"../../components/ui/icons/ApplePay.mjs";import{GooglePay as j}from"../../components/ui/icons/GooglePay.mjs";import{useAppConfig as u}from"../../configuration/context.mjs";import{useAsyncValue as f}from"../../hook-utils/useAsyncValue.mjs";import{usePrivyInternal as g}from"../../hooks/internal-context.mjs";import{usePrivyModal as b}from"../../hooks/modal-context.mjs";import{useWallets as y}from"../../hooks/useWallets.mjs";import{WalletCards as C}from"../../icons/WalletCards.mjs";import{getErc20TokenInfo as v}from"../../lib/erc20/actions/getErc20TokenInfo.mjs";import{toDisplayName as k}from"../../lib/external-wallets/displayHelpers.mjs";import{prepareFundingMethods as w}from"../../lib/funding/prepareFundingMethods.mjs";import{isApplePayPotentiallyAvailable as F,isGooglePayPotentiallyAvailable as I}from"../../payment-request/isPaymentRequestAvailable.mjs";import{LoginMethodButton as W}from"../LandingScreen/styles.mjs";import{ModalScreen as x}from"../index.mjs";import{FundingMethodContainer as A,IconContainer as M,InfoButtonText as S,InfoButtonLink as T}from"./styles.mjs";import{useSolanaWallets as E}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../svg/protected-by-privy.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../components/ModalHeader.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"../../hooks/index.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/InformationCircleIcon";import"../../components/PrefetchedImage.mjs";import"viem";import"../../utils/eth/getPublicClient.mjs";import"../../errors.mjs";import"ofetch";import"../../svg/backpack.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/okx-wallet.mjs";import"../../svg/phantom.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/solflare.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"@privy-io/js-sdk-core";import"../../lib/funding/coinbase/triggerCoinbaseFlow.mjs";import"../../lib/popup/triggerPopup.mjs";import"../../lib/funding/coinbase/toCoinbaseBlockchainFromChainId.mjs";import"../../lib/funding/moonpay/triggerMoonpayFlow.mjs";import"../../lib/funding/moonpay/index.mjs";import"../../lib/funding/analytics.mjs";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";const L=()=>{let{wallets:L}=y(),{wallets:N}=E(),{navigate:R,data:P,setModalData:_}=b(),{client:B}=g(),D=u(),H=P?.funding,z=f(F),U=f(I),G="solana"===H.chainType,q=G?void 0:H,Q=s((()=>w(D,B,H,_,R,P)),[D,B,H,P,_,R]);m((()=>{if(H?.defaultFundingMethod&&H.usingDefaultFundingMethod)switch(_({funding:{...H,usingDefaultFundingMethod:!1}}),H?.defaultFundingMethod){case"card":Q.onFundWithCard[0]&&Q.onFundWithCard[0]();break;case"exchange":Q.onFundWithExchange&&Q.onFundWithExchange();break;case"wallet":Q.onFundWithWallet&&Q.onFundWithWallet();break;case"manual":R(x.FUNDING_MANUAL_TRANSFER_SCREEN)}}),[]),m((()=>{q?.erc20Address&&!q.erc20ContractInfo&&v({address:q.erc20Address,chain:q.chain,rpcConfig:D.rpcConfig,privyAppId:D.id}).then((o=>{_({...P,funding:{...q,erc20ContractInfo:o?{symbol:o.symbol,decimals:o.decimals}:void 0}})})).catch(console.error)}),[q?.erc20Address,q?.chain]);let V=G?N.find((({address:o})=>o===H.address)):L.find((({address:o})=>c(o)===c(H.address))),X=V&&"privy"!==V.walletClientType?k(V.walletClientType,V.connectorType,V.walletClientType):D.name,J=!(!q?.erc20Address||q?.erc20ContractInfo);/*#__PURE__*/return o(i,{children:[/*#__PURE__*/n(l,{}),/*#__PURE__*/o("h3",{children:["Add funds to your"," ",X?.toLowerCase().endsWith("wallet")?X:X+" wallet"]}),/*#__PURE__*/o(A,{children:[H.errorMessage&&/*#__PURE__*/n(p,{theme:D.appearance.palette.colorScheme,children:H.errorMessage}),Q.onFundWithCard?.[0]&&/*#__PURE__*/o(W,{disabled:J,onClick:Q.onFundWithCard[0],children:[/*#__PURE__*/n(M,{children:/*#__PURE__*/n(r,{style:{width:24}})}),"Pay with card",z?/*#__PURE__*/n(h,{style:{marginLeft:"auto",maxWidth:"100%",width:"auto",height:"0.875rem"}}):U?/*#__PURE__*/n(j,{style:{marginLeft:"auto",maxWidth:"100%",width:"auto",height:"0.875rem"}}):null]}),Q.onFundWithExchange&&/*#__PURE__*/o(W,{disabled:J,onClick:Q.onFundWithExchange,children:[/*#__PURE__*/n(M,{children:/*#__PURE__*/n(t,{style:{width:24}})}),"Transfer from an exchange"]}),Q.onFundWithWallet&&/*#__PURE__*/o(W,{disabled:J,onClick:Q.onFundWithWallet,children:[/*#__PURE__*/n(M,{children:/*#__PURE__*/n(C,{style:{width:24}})}),"Transfer from wallet"]}),/*#__PURE__*/o(W,{disabled:J,onClick:()=>R(x.FUNDING_MANUAL_TRANSFER_SCREEN),children:[/*#__PURE__*/n(M,{children:/*#__PURE__*/n(e,{style:{width:24}})}),"Receive funds"]}),H?.showAlternateFundingMethod&&Q.onFundWithCard?.[1]&&/*#__PURE__*/n(d,{theme:D.appearance.palette.colorScheme,children:/*#__PURE__*/o(S,{children:["Having trouble or facing location restrictions?"," ",/*#__PURE__*/n(T,{onClick:Q.onFundWithCard[1],children:"Try a different provider."})]})})]}),/*#__PURE__*/n(a,{})]})};export{L as FundingMethodSelectionScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{BlobbyFooter as r}from"../../components/ModalFooter.mjs";import{ModalHeader as s}from"../../components/ModalHeader.mjs";import{CenteredScreenHeader as m}from"../../components/ScreenHeader.mjs";import a from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{Chip as c}from"../../components/ui/chips/Chip.mjs";import{Subtitle as l}from"../../components/ui/typography/Subtitle.mjs";import{usePrivyInternal as p}from"../../hooks/internal-context.mjs";import{usePrivyModal as h}from"../../hooks/modal-context.mjs";import{useWallets as d}from"../../hooks/useWallets.mjs";import{WalletOverflowButton as j}from"../LandingScreen/WalletOverflowButton.mjs";import{ModalScreen as u}from"../index.mjs";import{toWalletButtons as g}from"../LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as y,LoginMethodButton as f}from"../LandingScreen/styles.mjs";import{IconContainer as C}from"./styles.mjs";import{useSolanaWallets as
|
|
1
|
+
import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{BlobbyFooter as r}from"../../components/ModalFooter.mjs";import{ModalHeader as s}from"../../components/ModalHeader.mjs";import{CenteredScreenHeader as m}from"../../components/ScreenHeader.mjs";import a from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{Chip as c}from"../../components/ui/chips/Chip.mjs";import{Subtitle as l}from"../../components/ui/typography/Subtitle.mjs";import{usePrivyInternal as p}from"../../hooks/internal-context.mjs";import{usePrivyModal as h}from"../../hooks/modal-context.mjs";import{useWallets as d}from"../../hooks/useWallets.mjs";import{WalletOverflowButton as j}from"../LandingScreen/WalletOverflowButton.mjs";import{ModalScreen as u}from"../index.mjs";import{toWalletButtons as g}from"../LandingScreen/WalletButtonList.mjs";import{LoginMethodContainer as y,LoginMethodButton as f}from"../LandingScreen/styles.mjs";import{IconContainer as C}from"./styles.mjs";import{useSolanaWallets as w}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.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"../../hooks/index.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/PrefetchedImage.mjs";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/WalletIcon";import"../LandingScreen/EmptyWalletView.mjs";import"../LandingScreen/WalletButton.mjs";import"react-device-detect";import"../../components/external-wallets/InjectedWalletIcon.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/mobile-wallets.mjs";import"../../svg/backpack.mjs";import"../../svg/okx-wallet.mjs";import"../../svg/phantom.mjs";import"../../svg/solflare.mjs";import"../../types.mjs";import"../../lib/external-wallets/displayHelpers.mjs";import"../../svg/brave-browser-icon.mjs";import"../../svg/bybit.mjs";import"../../svg/coinbase-wallet.mjs";import"../../svg/cryptocom.mjs";import"../../svg/metamask.mjs";import"../../svg/rabby.mjs";import"../../svg/rainbow.mjs";import"../../svg/safe.mjs";import"../../svg/uniswap.mjs";import"../../svg/universal-profile.mjs";import"../../svg/wallet-connect.mjs";import"../../svg/zerion.mjs";import"../../lib/isEmbeddedWebview.mjs";import"../../recent-login/context.mjs";import"../../hooks/events-context.mjs";import"../../storage.mjs";import"../../components/Button.mjs";import"../../components/Loader.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"../../errors.mjs";import"ofetch";import"../../hooks/privy-context.mjs";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../MfaScreens/StyledComponents.mjs";const T=()=>{let c,{connectors:f}=p(),{app:C,setModalData:T,data:I,navigate:N}=h(),{wallets:_}=d(),{wallets:b}=w(),[E,k]=n("default"),S="solana"===I?.funding?.chainType,A=!!I?.funding?.crossChainBridgingEnabled;c="ethereum"===I?.funding?.chainType?I.funding.erc20Address&&!I.funding.isUSDC?"ethereum-only":A&&!I.funding.chain.testnet?"ethereum-and-solana":"ethereum-only":A?"ethereum-and-solana":"solana-only";let L=_.filter((e=>"privy"!==e.walletClientType)),W=L.map((e=>e.walletClientType)),x=b.filter((e=>"privy"!==e.walletClientType)),R=x.map((e=>e.walletClientType)),M=[],F={...I.funding};F.usingDefaultFundingMethod&&(F.usingDefaultFundingMethod=!1);let D=({address:e,walletChainType:o})=>{T({...I,funding:{...F,connectedWalletAddress:e,onContinueWithExternalWallet:()=>N(O({destChainType:S?"solana":"ethereum",sourceChainType:o}))}}),N(u.FUNDING_EDIT_AMOUNT_SCREEN)};"solana-only"!==c&&M.push(...L.map(((o,t)=>/*#__PURE__*/e(v,{onClick:()=>D({address:o.address,walletChainType:"ethereum"}),icon:o.meta.icon,name:o.meta.name,chainType:o.type},t)))),"ethereum-only"!==c&&M.push(...x.map(((o,t)=>/*#__PURE__*/e(v,{onClick:()=>D({address:o.address,walletChainType:"solana"}),icon:o.meta.icon,name:o.meta.name,chainType:o.type},t)))),M.push(...g({walletList:C.appearance.walletList.filter((e=>!L.some((o=>o.walletClientType===e))&&!x.some((o=>o.walletClientType===e)))),walletChainType:c,connectors:f,connectOnly:!0,ignore:[...C.appearance.walletList,...W,...R],walletConnectEnabled:C.externalWallets.walletConnect.enabled}));let G=/*#__PURE__*/e(j,{text:"More wallets",onClick:()=>k("overflow")}),O=({sourceChainType:e,destChainType:o})=>"ethereum"===e&&"solana"===o?u.FUNDING_AWAITING_EVM_TO_SOL_BRIDGING_SCREEN:"ethereum"===e&&"ethereum"===o?u.FUNDING_AWAITING_TRANSFER_FROM_EXTERNAL_WALLET_SCREEN:"solana"===e&&"ethereum"===o?u.FUNDING_AWAITING_SOL_TO_EVM_BRIDGING_SCREEN:u.FUNDING_AWAITING_TRANSFER_FROM_EXTERNAL_SOLANA_WALLET_SCREEN;return i((()=>{T({...I,externalConnectWallet:{onCompleteNavigateTo:({walletChainType:e})=>(T({...I,funding:{...F,onContinueWithExternalWallet:()=>{N(O({destChainType:S?"solana":"ethereum",sourceChainType:e??"ethereum"}))}}}),u.FUNDING_EDIT_AMOUNT_SCREEN)}})}),[]),/*#__PURE__*/o(t,"overflow"===E?{children:[/*#__PURE__*/e(s,{backFn:()=>k("default")},"header"),/*#__PURE__*/o(y,{children:[/*#__PURE__*/e(l,{style:{color:"var(--privy-color-foreground-3)",textAlign:"left"},children:"More wallets"}),M]}),/*#__PURE__*/e(r,{})]}:{children:[/*#__PURE__*/e(a,{}),/*#__PURE__*/e(m,{title:"Transfer from wallet",description:"Connect a wallet to deposit funds or send funds manually to your wallet address."}),/*#__PURE__*/o(y,{children:[M.length>4?M.slice(0,3):M,M.length>4&&G]}),/*#__PURE__*/e(r,{})]})};let v=({onClick:t,icon:n,name:i,chainType:r})=>/*#__PURE__*/o(f,{onClick:t,children:[/*#__PURE__*/e(C,{style:{width:20},children:/*#__PURE__*/e("img",{src:n})}),i,/*#__PURE__*/e(c,{color:"gray",style:{marginLeft:"auto"},children:"Connected"}),"solana"===r&&/*#__PURE__*/e(c,{color:"gray",children:"Solana"})]});export{T as TransferFromWalletScreen};
|