@privy-io/react-auth 2.0.1 → 2.0.2-beta-20250114201156
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/ModalFooter.js +2 -2
- package/dist/cjs/components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordForm.js +1 -1
- package/dist/cjs/components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordSaved.js +1 -1
- package/dist/cjs/components/embedded-wallets/SetWalletPasswordForm/CreateWalletPassword.js +1 -1
- package/dist/cjs/components/embedded-wallets/SetWalletPasswordForm/SaveWalletPassword.js +1 -1
- package/dist/cjs/components/embedded-wallets/SetWalletPasswordForm/SetWalletPasswordComplete.js +1 -1
- package/dist/cjs/config.js +1 -1
- package/dist/cjs/connectors/embeddedProvider.js +1 -1
- package/dist/cjs/connectors/index.js +1 -1
- package/dist/cjs/constants.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/index.js +1 -1
- package/dist/cjs/privy-components/user-pill/UserMenu.js +1 -1
- package/dist/cjs/privy-provider-CjsU1Mr4.js +3 -0
- package/dist/cjs/screens/AccountTransferScreen/EmbeddedWalletInfoView.js +1 -1
- package/dist/cjs/screens/AccountTransferScreen/LinkConflictScreen.js +1 -1
- package/dist/cjs/screens/AffirmativeConsentScreen.js +1 -1
- package/dist/cjs/screens/AwaitingPasswordlessCodeScreen.js +1 -1
- package/dist/cjs/screens/CaptchaScreen.js +1 -1
- 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 +1 -1
- package/dist/cjs/screens/CrossAppAuthScreen.js +1 -1
- package/dist/cjs/screens/DelegatedActionsConsentScreen.js +1 -1
- package/dist/cjs/screens/DelegatedActionsRevokeScreen.js +1 -1
- package/dist/cjs/screens/EmbeddedWalletCreatedScreen.js +1 -1
- package/dist/cjs/screens/EmbeddedWalletKeyExportScreen.js +1 -1
- package/dist/cjs/screens/EmbeddedWalletPasswordUpdateSplashScreen.js +1 -1
- package/dist/cjs/screens/FarcasterConnectStatusScreen.js +1 -1
- package/dist/cjs/screens/FarcasterSignerStatusScreen.js +1 -1
- package/dist/cjs/screens/Funding/AwaitingEvmToSolBridgingScreen.js +1 -1
- package/dist/cjs/screens/Funding/AwaitingExternalSolanaTransferScreen.js +1 -1
- package/dist/cjs/screens/Funding/AwaitingExternalTransferScreen.js +1 -1
- package/dist/cjs/screens/Funding/AwaitingSolToEvmBridgingScreen.js +1 -1
- package/dist/cjs/screens/Funding/BridgeNetworkSelectionView.js +1 -1
- package/dist/cjs/screens/Funding/CoinbaseOnrampStatusScreen.js +1 -1
- package/dist/cjs/screens/Funding/FundingEditAmountScreen.js +1 -1
- package/dist/cjs/screens/Funding/FundingMethodSelectionScreen.js +1 -1
- package/dist/cjs/screens/Funding/ManualTransferScreen.js +1 -1
- package/dist/cjs/screens/Funding/MoonpayStatusScreen.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/Funding/styles.js +1 -1
- package/dist/cjs/screens/InAppBrowserLoginNotPossible.js +1 -1
- package/dist/cjs/screens/InstallPhantomScreen.js +1 -1
- package/dist/cjs/screens/LandingScreen/CustomLandingScreenView.js +1 -1
- package/dist/cjs/screens/LandingScreen/LandingScreenView.js +1 -1
- package/dist/cjs/screens/LinkPasskeyScreen.js +1 -1
- package/dist/cjs/screens/LinkWalletScreen.js +1 -1
- package/dist/cjs/screens/LoginFailedScreen.js +1 -1
- package/dist/cjs/screens/MfaScreens/EnrollLandingScreen.js +1 -1
- package/dist/cjs/screens/MfaScreens/EnrollPasskey.js +1 -1
- package/dist/cjs/screens/MfaScreens/EnrollTotp.js +1 -1
- package/dist/cjs/screens/MfaScreens/MfaEnrollmentFlowScreen.js +1 -1
- package/dist/cjs/screens/MfaScreens/MfaVerifyFlowScreen.js +1 -1
- package/dist/cjs/screens/MfaScreens/VerifyWithPasskey.js +1 -1
- package/dist/cjs/screens/OAuthStatusScreen.js +1 -1
- package/dist/cjs/screens/PasskeySelectSignupOrLogin.js +1 -1
- package/dist/cjs/screens/PasskeyStatusScreen.js +1 -1
- package/dist/cjs/screens/PhantomInterstitialScreen.js +1 -1
- package/dist/cjs/screens/Recovery/PasswordRecoveryScreen.js +1 -1
- package/dist/cjs/screens/Recovery/RecoveryOAuthStatusScreen.js +1 -1
- package/dist/cjs/screens/Recovery/RecoverySelectionScreen.js +1 -1
- package/dist/cjs/screens/Recovery/SetAutomaticRecoveryScreen.js +1 -1
- package/dist/cjs/screens/SendSolanaTransactionScreen/SolanaTransactionReceiptView.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/SendTransactionScreenView.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/TransactionErrorView.js +1 -1
- package/dist/cjs/screens/SendTransactionScreen/TransactionReceiptView.js +1 -1
- package/dist/cjs/screens/SignRequestScreen.js +1 -1
- package/dist/cjs/screens/TelegramAuthScreen.js +1 -1
- package/dist/cjs/screens/UpdateEmailScreen.js +1 -1
- package/dist/cjs/screens/UserLimitReachedScreen.js +1 -1
- package/dist/cjs/session.js +1 -1
- package/dist/esm/client.mjs +1 -1
- package/dist/esm/components/ModalFooter.mjs +2 -2
- package/dist/esm/components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordForm.mjs +1 -1
- package/dist/esm/components/embedded-wallets/SetWalletPasswordForm/ConfimWalletPasswordSaved.mjs +1 -1
- package/dist/esm/components/embedded-wallets/SetWalletPasswordForm/CreateWalletPassword.mjs +1 -1
- package/dist/esm/components/embedded-wallets/SetWalletPasswordForm/SaveWalletPassword.mjs +1 -1
- package/dist/esm/components/embedded-wallets/SetWalletPasswordForm/SetWalletPasswordComplete.mjs +1 -1
- package/dist/esm/config.mjs +1 -1
- package/dist/esm/connectors/embeddedProvider.mjs +1 -1
- package/dist/esm/connectors/index.mjs +1 -1
- package/dist/esm/constants.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/index.mjs +1 -1
- package/dist/esm/privy-components/user-pill/UserMenu.mjs +1 -1
- package/dist/esm/privy-provider-BUvuLRa8.mjs +3 -0
- package/dist/esm/screens/AccountTransferScreen/EmbeddedWalletInfoView.mjs +1 -1
- package/dist/esm/screens/AccountTransferScreen/LinkConflictScreen.mjs +1 -1
- package/dist/esm/screens/AffirmativeConsentScreen.mjs +1 -1
- package/dist/esm/screens/AwaitingPasswordlessCodeScreen.mjs +1 -1
- package/dist/esm/screens/CaptchaScreen.mjs +1 -1
- 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/CrossAppAuthScreen.mjs +1 -1
- package/dist/esm/screens/DelegatedActionsConsentScreen.mjs +1 -1
- package/dist/esm/screens/DelegatedActionsRevokeScreen.mjs +1 -1
- package/dist/esm/screens/EmbeddedWalletCreatedScreen.mjs +1 -1
- package/dist/esm/screens/EmbeddedWalletKeyExportScreen.mjs +1 -1
- package/dist/esm/screens/EmbeddedWalletPasswordUpdateSplashScreen.mjs +1 -1
- package/dist/esm/screens/FarcasterConnectStatusScreen.mjs +1 -1
- package/dist/esm/screens/FarcasterSignerStatusScreen.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/BridgeNetworkSelectionView.mjs +1 -1
- package/dist/esm/screens/Funding/CoinbaseOnrampStatusScreen.mjs +1 -1
- package/dist/esm/screens/Funding/FundingEditAmountScreen.mjs +1 -1
- package/dist/esm/screens/Funding/FundingMethodSelectionScreen.mjs +1 -1
- package/dist/esm/screens/Funding/ManualTransferScreen.mjs +1 -1
- package/dist/esm/screens/Funding/MoonpayStatusScreen.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/Funding/styles.mjs +1 -1
- package/dist/esm/screens/InAppBrowserLoginNotPossible.mjs +1 -1
- package/dist/esm/screens/InstallPhantomScreen.mjs +1 -1
- package/dist/esm/screens/LandingScreen/CustomLandingScreenView.mjs +1 -1
- package/dist/esm/screens/LandingScreen/LandingScreenView.mjs +1 -1
- package/dist/esm/screens/LinkPasskeyScreen.mjs +1 -1
- package/dist/esm/screens/LinkWalletScreen.mjs +1 -1
- package/dist/esm/screens/LoginFailedScreen.mjs +1 -1
- package/dist/esm/screens/MfaScreens/EnrollLandingScreen.mjs +1 -1
- package/dist/esm/screens/MfaScreens/EnrollPasskey.mjs +1 -1
- package/dist/esm/screens/MfaScreens/EnrollTotp.mjs +1 -1
- package/dist/esm/screens/MfaScreens/MfaEnrollmentFlowScreen.mjs +1 -1
- package/dist/esm/screens/MfaScreens/MfaVerifyFlowScreen.mjs +1 -1
- package/dist/esm/screens/MfaScreens/VerifyWithPasskey.mjs +1 -1
- package/dist/esm/screens/OAuthStatusScreen.mjs +1 -1
- package/dist/esm/screens/PasskeySelectSignupOrLogin.mjs +1 -1
- package/dist/esm/screens/PasskeyStatusScreen.mjs +1 -1
- package/dist/esm/screens/PhantomInterstitialScreen.mjs +1 -1
- package/dist/esm/screens/Recovery/PasswordRecoveryScreen.mjs +1 -1
- package/dist/esm/screens/Recovery/RecoveryOAuthStatusScreen.mjs +1 -1
- package/dist/esm/screens/Recovery/RecoverySelectionScreen.mjs +1 -1
- package/dist/esm/screens/Recovery/SetAutomaticRecoveryScreen.mjs +1 -1
- package/dist/esm/screens/SendSolanaTransactionScreen/SolanaTransactionReceiptView.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/SendTransactionScreenView.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/TransactionErrorView.mjs +1 -1
- package/dist/esm/screens/SendTransactionScreen/TransactionReceiptView.mjs +1 -1
- package/dist/esm/screens/SignRequestScreen.mjs +1 -1
- package/dist/esm/screens/TelegramAuthScreen.mjs +1 -1
- package/dist/esm/screens/UpdateEmailScreen.mjs +1 -1
- package/dist/esm/screens/UserLimitReachedScreen.mjs +1 -1
- package/dist/esm/session.mjs +1 -1
- package/package.json +3 -3
- package/dist/cjs/privy-provider-CpJ88X4F.js +0 -3
- package/dist/esm/privy-provider-B3m8Pe2u.mjs +0 -3
|
@@ -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"../../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"../../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"../../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 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}):
|
|
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 A}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as C}from"../../utils/index.mjs";import{ModalScreen as N}from"../index.mjs";import{TransferOrBridgeLoadingScreen as k}from"./TransferOrBridgeLoadingScreen.mjs";import{useSolanaWallets as x}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../
|
|
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 A}from"../../plugins/solana-funding/id.mjs";import{formatWalletAddress as C}from"../../utils/index.mjs";import{ModalScreen as N}from"../index.mjs";import{TransferOrBridgeLoadingScreen as k}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/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"../../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=_(A);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 ${C(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:N.FUNDING_TRANSFER_FROM_WALLET_SCREEN};F({funding:U?.funding,sendTransaction:U?.sendTransaction,errorModalData:o}),R(N.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(k,{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"../../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"../../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"../../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 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}):
|
|
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 E}from"../../plugins/solana-funding/id.mjs";import{formatSolanaWalletAddress as x}from"../../utils/index.mjs";import{TransferOrBridgeLoadingScreen as R}from"./TransferOrBridgeLoadingScreen.mjs";import{useSolanaWallets as k}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../
|
|
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 E}from"../../plugins/solana-funding/id.mjs";import{formatSolanaWalletAddress as x}from"../../utils/index.mjs";import{TransferOrBridgeLoadingScreen as R}from"./TransferOrBridgeLoadingScreen.mjs";import{useSolanaWallets as k}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/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"../../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}=k(),$=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(E);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(R,{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 n,jsx as i}from"react/jsx-runtime";import{useRef as t}from"react";import{formatWalletAddress as e}from"@privy-io/js-sdk-core";import{PrimaryButtonWithoutGray as r}from"../../components/Button.mjs";import{RefactorSpacerTop as m,RefactorSpacerBottom as s}from"../../components/Layouts.mjs";import{BlobbyFooter as c}from"../../components/ModalFooter.mjs";import a from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{Row as p}from"../../components/ui/layout/Row.mjs";import{ErrorMessage as l}from"../../components/ui/typography/ErrorMessage.mjs";import{LabelSm as h}from"../../components/ui/typography/LabelSm.mjs";import{Subtitle as j}from"../../components/ui/typography/Subtitle.mjs";import{Title as u}from"../../components/ui/typography/Title.mjs";import{NetworkBalanceCard as d}from"../../components/ui/wallet/NetworkBalanceCard.mjs";import{NetworkSelectorPanel as g}from"../../components/ui/wallet/NetworkSelectorPanel.mjs";import{getNativeCurrencyFromWei as f}from"../../lib/ethers.mjs";import{FundingQuantityWrapper as y,FundingQuantity as b,FundingAmountInput as k,FundingCurrency as C,FundingDollars as w}from"./styles.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../
|
|
1
|
+
import{jsxs as o,Fragment as n,jsx as i}from"react/jsx-runtime";import{useRef as t}from"react";import{formatWalletAddress as e}from"@privy-io/js-sdk-core";import{PrimaryButtonWithoutGray as r}from"../../components/Button.mjs";import{RefactorSpacerTop as m,RefactorSpacerBottom as s}from"../../components/Layouts.mjs";import{BlobbyFooter as c}from"../../components/ModalFooter.mjs";import a from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{Row as p}from"../../components/ui/layout/Row.mjs";import{ErrorMessage as l}from"../../components/ui/typography/ErrorMessage.mjs";import{LabelSm as h}from"../../components/ui/typography/LabelSm.mjs";import{Subtitle as j}from"../../components/ui/typography/Subtitle.mjs";import{Title as u}from"../../components/ui/typography/Title.mjs";import{NetworkBalanceCard as d}from"../../components/ui/wallet/NetworkBalanceCard.mjs";import{NetworkSelectorPanel as g}from"../../components/ui/wallet/NetworkSelectorPanel.mjs";import{getNativeCurrencyFromWei as f}from"../../lib/ethers.mjs";import{FundingQuantityWrapper as y,FundingQuantity as b,FundingAmountInput as k,FundingCurrency as C,FundingDollars as w}from"./styles.mjs";import"styled-components";import"../../components/Loader.mjs";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"../../hooks/modal-context.mjs";import"../../components/PrefetchedImage.mjs";import"../index.mjs";import"../../hooks/index.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/internal-context.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"@headlessui/react";import"@heroicons/react/24/outline/ChevronDownIcon";import"viem";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"../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 v=({displayName:v,errorMessage:S,configuredFundingChain:I,formattedBalance:A,fundingAmount:T,fundingCurrency:x,fundingAmountInUsd:M,options:L,selectedOption:B,isPreparing:F,isSubmitting:P,addressToFund:N,fundingWalletAddress:z,onSubmit:H,onSelect:W,onAmountChange:O})=>{let R=t(null);/*#__PURE__*/return o(n,{children:[/*#__PURE__*/i(a,{}),/*#__PURE__*/i(m,{}),/*#__PURE__*/i(u,{children:"Transfer from another network"}),/*#__PURE__*/o(j,{children:["You need more funds on the ",I.name," network. Bridge from another blockchain network."]}),/*#__PURE__*/o(y,{style:{marginTop:"2rem"},children:[/*#__PURE__*/o(b,{onClick:()=>R.current?.focus(),children:[/*#__PURE__*/i(k,{ref:R,value:T,onChange:o=>{let n=o.target.value;/^[0-9.]*$/.test(n)&&n.split(".").length-1<=1&&O(n)}}),/*#__PURE__*/i(C,{children:x})]}),M&&/*#__PURE__*/i(w,{children:M})]}),/*#__PURE__*/o(p,{style:{marginTop:"1.5rem"},children:[/*#__PURE__*/i(h,{children:"From"}),/*#__PURE__*/i(h,{children:e(z)})]}),/*#__PURE__*/i(g,{selected:{chain:B.chain,balance:f(B.balance,B.chain.nativeCurrency.symbol,3,!0)},options:L.map((({chain:o,balance:n})=>({chain:o,balance:f(n,o.nativeCurrency.symbol,3,!0)}))),onSelect:W}),/*#__PURE__*/o(p,{style:{marginTop:"1.5rem"},children:[/*#__PURE__*/i(h,{children:"To"}),/*#__PURE__*/i(h,{children:e(N)})]}),/*#__PURE__*/i(d,{chain:I,balance:A}),/*#__PURE__*/i(l,{style:{marginTop:"1rem"},children:S}),/*#__PURE__*/o(r,{style:{marginTop:"1rem"},loading:P||F,disabled:F||P,onClick:H,children:["Confirm with ",v]}),/*#__PURE__*/i(s,{}),/*#__PURE__*/i(c,{})]})};export{v as BridgeNetworkSelectionView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as r,jsx as e}from"react/jsx-runtime";import n from"@heroicons/react/24/solid/ArrowsRightLeftIcon";import t from"@heroicons/react/24/solid/CheckCircleIcon";import{useState as i,useRef as s,useEffect as c,useMemo as a}from"react";import{styled as m}from"styled-components";import{PrimaryButton as l}from"../../components/Button.mjs";import{FixedGappedContainer as p}from"../../components/Layouts.mjs";import{Loader as d,LoaderFaint as u}from"../../components/Loader.mjs";import{BlobbyFooter as h}from"../../components/ModalFooter.mjs";import{ModalHeader as f}from"../../components/ModalHeader.mjs";import{usePrivyInternal as g}from"../../hooks/internal-context.mjs";import{usePrivyModal as j}from"../../hooks/modal-context.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as y}from"../../lib/funding/analytics.mjs";import{CoinbaseWallet as b}from"../../svg/coinbase-wallet.mjs";import{ModalScreen as v}from"../index.mjs";import"../../
|
|
1
|
+
import{jsxs as o,Fragment as r,jsx as e}from"react/jsx-runtime";import n from"@heroicons/react/24/solid/ArrowsRightLeftIcon";import t from"@heroicons/react/24/solid/CheckCircleIcon";import{useState as i,useRef as s,useEffect as c,useMemo as a}from"react";import{styled as m}from"styled-components";import{PrimaryButton as l}from"../../components/Button.mjs";import{FixedGappedContainer as p}from"../../components/Layouts.mjs";import{Loader as d,LoaderFaint as u}from"../../components/Loader.mjs";import{BlobbyFooter as h}from"../../components/ModalFooter.mjs";import{ModalHeader as f}from"../../components/ModalHeader.mjs";import{usePrivyInternal as g}from"../../hooks/internal-context.mjs";import{usePrivyModal as j}from"../../hooks/modal-context.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as y}from"../../lib/funding/analytics.mjs";import{CoinbaseWallet as b}from"../../svg/coinbase-wallet.mjs";import{ModalScreen as v}from"../index.mjs";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/PrefetchedImage.mjs";const C=()=>{let{data:n,setModalData:t,navigate:a,navigateBack:m}=j(),{closePrivyModal:l,createAnalyticsEvent:p,client:d}=g(),[u,b]=i("pending-in-flow"),C=s(0),I={...n?.funding,showAlternateFundingMethod:!0};I.usingDefaultFundingMethod&&(I.usingDefaultFundingMethod=!1);let{partnerUserId:k,popup:x}=n?.coinbaseOnrampStatus??{};return c((()=>{if("pending-in-flow"===u||"pending-after-flow"===u){let o=setInterval((async()=>{if(k)try{let{status:o}=await d.getCoinbaseOnRampStatus({partnerUserId:k});if("success"===o)return void b("success");if("failure"===o)throw Error("There was an error completing Coinbase Onramp flow.");if(C.current>=3)return t({funding:I}),void a(v.FUNDING_METHOD_SELECTION_SCREEN);x?.closed&&(C.current=C.current+1,b("pending-after-flow"))}catch(o){console.error(o),b("error"),p({eventName:y,payload:{status:"failure",provider:"coinbase-onramp",error:o.message}}),t({funding:{...I,errorMessage:"Something went wrong adding funds. Please try again or use another method."}}),a(v.FUNDING_METHOD_SELECTION_SCREEN)}}),1500);return()=>clearInterval(o)}}),[k,x,u]),/*#__PURE__*/o(r,{children:[/*#__PURE__*/e(f,{title:"Fund account",backFn:()=>{t({funding:I}),m()}},"header"),/*#__PURE__*/e(w,{status:u,onClickCta:l}),/*#__PURE__*/e(h,{})]})};let w=({status:n,onClickCta:t})=>{let{title:i,body:s,cta:c}=a((()=>(o=>{switch(o){case"success":return{title:"You've funded your account!",body:"It may take a few minutes for the assets to appear.",cta:"Continue"};case"pending-after-flow":return{title:"In Progress",body:"Almost done. Retrieving transaction status from Coinbase",cta:""};case"error":case"pending-in-flow":return{title:"In Progress",body:"Go back to Coinbase Onramp to finish funding your account.",cta:""}}})(n)),[n]);/*#__PURE__*/return o(r,{children:[/*#__PURE__*/o(S,{children:[/*#__PURE__*/e(k,{isSucccess:"success"===n}),/*#__PURE__*/o(p,{children:[/*#__PURE__*/e("h3",{children:i}),/*#__PURE__*/e(x,{children:s})]})]}),c&&/*#__PURE__*/e(l,{onClick:t,children:c})]})},I=o=>o?t:()=>/*#__PURE__*/e(n,{width:"3rem",height:"3rem",style:{backgroundColor:"var(--privy-color-foreground-4)",color:"var(--privy-color-background)",borderRadius:"100%",padding:"0.5rem",margin:"0.5rem"}}),k=({isSucccess:r})=>{if(!r){let r="var(--privy-color-foreground-4)";/*#__PURE__*/return o("div",{style:{position:"relative"},children:[/*#__PURE__*/e(d,{color:r,style:{position:"absolute"}}),/*#__PURE__*/e(u,{color:r}),/*#__PURE__*/e(b,{style:{position:"absolute",width:"2.8rem",height:"2.8rem",top:"1.2rem",left:"1.2rem"}})]})}let n=I(r),t=r?"var(--privy-color-success)":"var(--privy-color-foreground-4)";/*#__PURE__*/return e("div",{style:{borderColor:t,display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"100%",borderWidth:2,padding:"0.5rem",marginBottom:"0.5rem"},children:n&&/*#__PURE__*/e(n,{width:"4rem",height:"4rem",color:t})})},x=/*#__PURE__*/m.p.withConfig({displayName:"StatusBody",componentId:"sc-96ef1540-0"})(["font-size:1rem;color:var(--privy-color-foreground-3);margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem;"]),S=/*#__PURE__*/m.div.withConfig({displayName:"ConnectContainer",componentId:"sc-96ef1540-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:1.75rem;margin-right:1.75rem;padding:2rem 0;"]);export{C as CoinbaseOnrampStatusScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import{useRef as i}from"react";import{PrimaryButtonWithoutGray as r}from"../../components/Button.mjs";import{FlexContainer as e}from"../../components/Layouts.mjs";import{BlobbyFooter as s}from"../../components/ModalFooter.mjs";import m from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as c}from"../../components/primitives/NeutralSpinner/index.mjs";import{Title as a}from"../../components/ui/typography/Title.mjs";import{usePrivyModal as p}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as l}from"../../hooks/useGetTokenPrice.mjs";import{getDollarsFromStringFloat as h}from"../../lib/ethers.mjs";import{FundingQuantityWrapper as j,FundingQuantity as d,FundingAmountInputLarge as u,FundingCurrency as f,FundingDollars as g}from"./styles.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../
|
|
1
|
+
import{jsxs as o,Fragment as t,jsx as n}from"react/jsx-runtime";import{useRef as i}from"react";import{PrimaryButtonWithoutGray as r}from"../../components/Button.mjs";import{FlexContainer as e}from"../../components/Layouts.mjs";import{BlobbyFooter as s}from"../../components/ModalFooter.mjs";import m from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{NeutralSpinner as c}from"../../components/primitives/NeutralSpinner/index.mjs";import{Title as a}from"../../components/ui/typography/Title.mjs";import{usePrivyModal as p}from"../../hooks/modal-context.mjs";import{useGetTokenPrice as l}from"../../hooks/useGetTokenPrice.mjs";import{getDollarsFromStringFloat as h}from"../../lib/ethers.mjs";import{FundingQuantityWrapper as j,FundingQuantity as d,FundingAmountInputLarge as u,FundingCurrency as f,FundingDollars as g}from"./styles.mjs";import"styled-components";import"../../components/Loader.mjs";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"../index.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/internal-context.mjs";import"../../hooks/index.mjs";import"../../components/PrefetchedImage.mjs";import"../../hooks/useGetSolPrice.mjs";import"viem";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"../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 y=()=>{let{data:y,setModalData:k}=p(),C=y?.funding,b="solana"===C.chainType,v=i(null),{tokenPrice:x}=l(b?"solana":C.chain.id),I=b?void 0:C,S=!(!I?.erc20Address||I?.erc20ContractInfo),T=b?"SOL":C.erc20Address?C.erc20ContractInfo?.symbol:C.chain.nativeCurrency.symbol||"ETH",A=parseFloat(C.amount),M=!isNaN(A)&&A>0,L=x?h(C.amount,x):void 0;/*#__PURE__*/return o(t,{children:[/*#__PURE__*/n(m,{}),/*#__PURE__*/n(a,{children:"Confirm or edit amount"}),/*#__PURE__*/o(e,{style:{marginTop:"32px"},children:[/*#__PURE__*/n(j,{children:S?/*#__PURE__*/n(c,{size:"50px"}):/*#__PURE__*/o(t,{children:[/*#__PURE__*/o(d,{onClick:()=>v.current?.focus(),children:[/*#__PURE__*/n(u,{ref:v,value:C.amount,onChange:o=>{let t=o.target.value;/^[0-9.]*$/.test(t)&&t.split(".").length-1<=1&&k({...y,funding:{...C,amount:t}})}}),/*#__PURE__*/n(f,{children:T})]}),!I?.erc20Address&&/*#__PURE__*/n(g,{children:L&&M?`${L} USD`:""})]})}),/*#__PURE__*/n(r,{style:{marginTop:"1rem"},disabled:!M,onClick:C.onContinueWithExternalWallet,children:"Continue"})]}),/*#__PURE__*/n(s,{})]})};export{y as FundingAmountEditScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as n,jsx as i}from"react/jsx-runtime";import e from"@heroicons/react/24/outline/CreditCardIcon";import r 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 w}from"../../lib/external-wallets/displayHelpers.mjs";import{prepareFundingMethods as F}from"../../lib/funding/prepareFundingMethods.mjs";import{isApplePayPotentiallyAvailable as k,isGooglePayPotentiallyAvailable as I}from"../../payment-request/isPaymentRequestAvailable.mjs";import{LoginMethodButton as W}from"../LandingScreen/styles.mjs";import{ModalScreen as A}from"../index.mjs";import{FundingMethodContainer as x,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"../../
|
|
1
|
+
import{jsxs as o,Fragment as n,jsx as i}from"react/jsx-runtime";import e from"@heroicons/react/24/outline/CreditCardIcon";import r 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 w}from"../../lib/external-wallets/displayHelpers.mjs";import{prepareFundingMethods as F}from"../../lib/funding/prepareFundingMethods.mjs";import{isApplePayPotentiallyAvailable as k,isGooglePayPotentiallyAvailable as I}from"../../payment-request/isPaymentRequestAvailable.mjs";import{LoginMethodButton as W}from"../LandingScreen/styles.mjs";import{ModalScreen as A}from"../index.mjs";import{FundingMethodContainer as x,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/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"../../lib/funding/coinbase/isSupportedChainIdForCoinbaseOnramp.mjs";import"../../lib/funding/coinbase/triggerCoinbaseFlow.mjs";import"@privy-io/js-sdk-core";import"../../lib/popup/triggerPopup.mjs";import"../../lib/funding/coinbase/toCoinbaseBlockchainFromChainId.mjs";import"../../lib/funding/moonpay/index.mjs";import"../../lib/funding/analytics.mjs";import"../../lib/funding/moonpay/triggerMoonpayFlow.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(k),U=f(I),G="solana"===H.chainType,q=G?void 0:H,Q=s((()=>F(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(A.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 O=G?N.find((({address:o})=>o===H.address)):L.find((({address:o})=>c(o)===c(H.address))),V=O&&"privy"!==O.walletClientType?w(O.walletClientType,O.connectorType,O.walletClientType):D.name,X=!(!q?.erc20Address||q?.erc20ContractInfo);/*#__PURE__*/return o(n,{children:[/*#__PURE__*/i(l,{}),/*#__PURE__*/o("h3",{children:["Add funds to your"," ",V?.toLowerCase().endsWith("wallet")?V:V+" wallet"]}),/*#__PURE__*/o(x,{children:[H.errorMessage&&/*#__PURE__*/i(p,{theme:D.appearance.palette.colorScheme,children:H.errorMessage}),Q.onFundWithCard?.[0]&&/*#__PURE__*/o(W,{disabled:X,onClick:Q.onFundWithCard[0],children:[/*#__PURE__*/i(M,{children:/*#__PURE__*/i(e,{style:{width:24}})}),"Pay with card",z?/*#__PURE__*/i(h,{style:{marginLeft:"auto",maxWidth:"100%",width:"auto",height:"0.875rem"}}):U?/*#__PURE__*/i(j,{style:{marginLeft:"auto",maxWidth:"100%",width:"auto",height:"0.875rem"}}):null]}),Q.onFundWithExchange&&/*#__PURE__*/o(W,{disabled:X,onClick:Q.onFundWithExchange,children:[/*#__PURE__*/i(M,{children:/*#__PURE__*/i(t,{style:{width:24}})}),"Transfer from an exchange"]}),Q.onFundWithWallet&&/*#__PURE__*/o(W,{disabled:X,onClick:Q.onFundWithWallet,children:[/*#__PURE__*/i(M,{children:/*#__PURE__*/i(C,{style:{width:24}})}),"Transfer from wallet"]}),/*#__PURE__*/o(W,{disabled:X,onClick:()=>R(A.FUNDING_MANUAL_TRANSFER_SCREEN),children:[/*#__PURE__*/i(M,{children:/*#__PURE__*/i(r,{style:{width:24}})}),"Receive funds"]}),H?.showAlternateFundingMethod&&Q.onFundWithCard?.[1]&&/*#__PURE__*/i(d,{theme:D.appearance.palette.colorScheme,children:/*#__PURE__*/o(S,{children:["Having trouble or facing location restrictions?"," ",/*#__PURE__*/i(T,{onClick:Q.onFundWithCard[1],children:"Try a different provider."})]})})]}),/*#__PURE__*/i(a,{})]})};export{L as FundingMethodSelectionScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,Fragment as e,jsxs as n}from"react/jsx-runtime";import{useState as t,useEffect as r,useMemo as s}from"react";import{formatTokenAmount as i,formatWeiAmount as a}from"@privy-io/js-sdk-core";import{PrimaryButton as m}from"../../components/Button.mjs";import{FlexContainer as c}from"../../components/Layouts.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{QrCode as p}from"../../components/QrCode.mjs";import d from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{InfoBanner as u}from"../../components/ui/banners/InfoBanner.mjs";import{Subtitle as h}from"../../components/ui/typography/Subtitle.mjs";import{Title as j}from"../../components/ui/typography/Title.mjs";import{WalletInfoCard as f}from"../../components/ui/wallet/WalletInfoCard.mjs";import{useAppConfig as g}from"../../configuration/context.mjs";import{usePrivyInternal as y}from"../../hooks/internal-context.mjs";import{usePrivyModal as v}from"../../hooks/modal-context.mjs";import{useWalletBalance as b}from"../../hooks/useWalletBalance.mjs";import{useWallets as C}from"../../hooks/useWallets.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as I}from"../../lib/funding/analytics.mjs";import{getNativeCurrencyFromLamports as S}from"../../lib/solana/transaction.mjs";import{getErc20Balance as k}from"../../lib/wallets/actions/getErc20Balance.mjs";import{usePlugins as w}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as T}from"../../plugins/solana-funding/id.mjs";import{Blobby as E}from"../../svg/blobby.mjs";import{formatWalletAddress as x}from"../../utils/index.mjs";import{ModalScreen as A}from"../index.mjs";import{useSolanaWallets as M}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../svg/protected-by-privy.mjs";import"
|
|
1
|
+
import{jsx as o,Fragment as e,jsxs as n}from"react/jsx-runtime";import{useState as t,useEffect as r,useMemo as s}from"react";import{formatTokenAmount as i,formatWeiAmount as a}from"@privy-io/js-sdk-core";import{PrimaryButton as m}from"../../components/Button.mjs";import{FlexContainer as c}from"../../components/Layouts.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{QrCode as p}from"../../components/QrCode.mjs";import d from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{InfoBanner as u}from"../../components/ui/banners/InfoBanner.mjs";import{Subtitle as h}from"../../components/ui/typography/Subtitle.mjs";import{Title as j}from"../../components/ui/typography/Title.mjs";import{WalletInfoCard as f}from"../../components/ui/wallet/WalletInfoCard.mjs";import{useAppConfig as g}from"../../configuration/context.mjs";import{usePrivyInternal as y}from"../../hooks/internal-context.mjs";import{usePrivyModal as v}from"../../hooks/modal-context.mjs";import{useWalletBalance as b}from"../../hooks/useWalletBalance.mjs";import{useWallets as C}from"../../hooks/useWallets.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as I}from"../../lib/funding/analytics.mjs";import{getNativeCurrencyFromLamports as S}from"../../lib/solana/transaction.mjs";import{getErc20Balance as k}from"../../lib/wallets/actions/getErc20Balance.mjs";import{usePlugins as w}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as T}from"../../plugins/solana-funding/id.mjs";import{Blobby as E}from"../../svg/blobby.mjs";import{formatWalletAddress as x}from"../../utils/index.mjs";import{ModalScreen as A}from"../index.mjs";import{useSolanaWallets as M}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../components/Loader.mjs";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"qrcode";import"../../svg/black-rounded-square.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/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/InformationCircleIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/layout/Column.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelXs.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../components/ui/wallet/shared.mjs";import"../../components/PrefetchedImage.mjs";import"../../utils/buffer/readBigInt64LE.mjs";const L=()=>{let{wallets:E}=C(),{wallets:L}=M(),{data:R,setModalData:D,navigate:P,lastScreen:F}=v(),{rpcConfig:O,appId:W,createAnalyticsEvent:q,closePrivyModal:z}=y(),H=g(),[_,U]=t(void 0),[Q,X]=t(!1),$=w(),G=R?.funding,{reloadBalance:Y}=b({rpcConfig:O,appId:W,address:"ethereum"===G.chainType?G.address:void 0,chain:"ethereum"===G.chainType?G.chain:void 0}),J="solana"===G.chainType,K=J?"SOL":G.erc20Address?G.erc20ContractInfo?.symbol:G.chain.nativeCurrency.symbol,V=J?L.find((({address:o})=>o===G.address)):E.find((({address:o})=>x(o)===x(G.address)));if(!G)return D({errorModalData:{error:Error("Couldn't find funding config"),previousScreen:F||A.FUNDING_METHOD_SELECTION_SCREEN},funding:R?.funding,sendTransaction:R?.sendTransaction}),P(A.ERROR_SCREEN),/*#__PURE__*/o(e,{});r((()=>{let o=J?async function(){if("solana"!==G.chainType)return;let o=$(T);o?o.getBalance({address:G.address,cluster:G.cluster}).then((o=>{let e=BigInt(o);_&&e>_&&(X(!0),q({eventName:I,payload:{provider:"manual",status:"success",chainType:"solana",address:V?.address,value:(e-_).toString()}})),U(e)})):console.warn("Unable to load solana plugin, skipping balance")}:async function(){"ethereum"===G.chainType&&(async()=>{if(!G.erc20Address)return await Y()??BigInt(0);{let{balance:o}=await k({chain:G.chain,address:G.address,erc20Address:G.erc20Address,rpcConfig:O,appId:W});return o}})().then((o=>{_&&o>_&&(X(!0),q({eventName:I,payload:{provider:"manual",status:"success",chainType:"ethereum",address:V?.address,value:(o-_).toString()}})),U(o)})).catch((()=>U(void 0)))},e=setInterval(o,2e3);return o(),()=>clearInterval(e)}),[_]);let Z=s((()=>void 0!==_&&_>=parseFloat(G.amount)),[_,G.amount]),oo=s((()=>null==_?"":G.isUSDC?i({amount:_,decimals:6}):J?S(_,3,!0,!0):null!=G.erc20ContractInfo?.decimals?i({amount:_,decimals:G.erc20ContractInfo.decimals}):a({wei:_})),[_,J,G]),eo="ethereum"===G.chainType?G.chain.name:N[G.cluster.name];/*#__PURE__*/return n(e,{children:[/*#__PURE__*/o(d,{}),/*#__PURE__*/n(j,{children:["Receive ",G.amount," ",K]}),/*#__PURE__*/n(h,{children:["Scan this code or copy your wallet address to receive funds on ",eo,"."]}),/*#__PURE__*/n(c,{style:{gap:"1rem",margin:"1rem 0"},children:[/*#__PURE__*/o(p,{url:G.address,size:200,squareLogoElement:B}),/*#__PURE__*/n(u,{theme:H.appearance.palette.colorScheme,children:["Make sure to send funds on ",eo,"."]}),/*#__PURE__*/o(f,{title:"Your wallet",errMsg:void 0,showIcon:!0,isLoading:!G||void 0===_,isPulsing:!Z,balance:`${oo} ${K}`,address:G.address,statusColor:Z?"green":"gray"}),Q&&/*#__PURE__*/o(m,{onClick:()=>z({shouldCallAuthOnSuccess:!1,isSuccess:!0}),children:"Continue"})]}),/*#__PURE__*/o(l,{})]})};let B=({...e})=>/*#__PURE__*/o(E,{color:"black",...e}),N={devnet:"Devnet","mainnet-beta":"Solana",testnet:"Testnet"};export{L as ManualTransferScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as r,jsx as t}from"react/jsx-runtime";import n from"@heroicons/react/24/solid/ArrowsRightLeftIcon";import i from"@heroicons/react/24/solid/CheckCircleIcon";import{useMemo as e}from"react";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../../components/Button.mjs";import{FixedGappedContainer as a}from"../../components/Layouts.mjs";import{Loader as m,LoaderFaint as l}from"../../components/Loader.mjs";import{BlobbyFooter as p}from"../../components/ModalFooter.mjs";import{ModalHeader as d}from"../../components/ModalHeader.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as h}from"../../hooks/modal-context.mjs";import{usePollMoonpayTransactionStatus as f}from"../../lib/funding/moonpay/index.mjs";import{Moonpay as g}from"../../svg/moonpay.mjs";import"../../
|
|
1
|
+
import{jsxs as o,Fragment as r,jsx as t}from"react/jsx-runtime";import n from"@heroicons/react/24/solid/ArrowsRightLeftIcon";import i from"@heroicons/react/24/solid/CheckCircleIcon";import{useMemo as e}from"react";import{styled as s}from"styled-components";import{PrimaryButton as c}from"../../components/Button.mjs";import{FixedGappedContainer as a}from"../../components/Layouts.mjs";import{Loader as m,LoaderFaint as l}from"../../components/Loader.mjs";import{BlobbyFooter as p}from"../../components/ModalFooter.mjs";import{ModalHeader as d}from"../../components/ModalHeader.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as h}from"../../hooks/modal-context.mjs";import{usePollMoonpayTransactionStatus as f}from"../../lib/funding/moonpay/index.mjs";import{Moonpay as g}from"../../svg/moonpay.mjs";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/PrefetchedImage.mjs";import"../index.mjs";import"ofetch";import"../../lib/funding/analytics.mjs";const j=()=>{let{app:n,data:i,setModalData:e,navigateBack:s}=h(),{closePrivyModal:c}=u(),{externalTransactionId:a}=i?.moonpayStatus,m=f(a||null,n.fundingMethodConfig.moonpay.useSandbox??!1);/*#__PURE__*/return o(r,{children:[/*#__PURE__*/t(d,{title:"Fund account",backFn:()=>{let o={...i?.funding,showAlternateFundingMethod:!0};o.usingDefaultFundingMethod&&(o.usingDefaultFundingMethod=!1),e({funding:o}),s()}}),/*#__PURE__*/t(y,{status:m,onClickCta:c}),/*#__PURE__*/t(p,{})]})};let y=({status:n,onClickCta:i})=>{let{title:s,body:m,cta:l}=e((()=>(o=>{switch(o){case"completed":return{title:"You've funded your account!",body:"It may take a few minutes for the assets to appear.",cta:"Continue"};case"waitingAuthorization":return{title:"Processing payment",body:"This may take up to a few hours. You will receive an email when the purchase is complete.",cta:"Continue"};default:return{title:"In Progress",body:"Go back to MoonPay to finish funding your account.",cta:""}}})(n)),[n]);/*#__PURE__*/return o(r,{children:[/*#__PURE__*/o(k,{children:[/*#__PURE__*/t(b,{status:n}),/*#__PURE__*/o(a,{children:[/*#__PURE__*/t("h3",{children:s}),/*#__PURE__*/t(C,{children:m})]})]}),l&&/*#__PURE__*/t(c,{onClick:i,children:l})]})},v=o=>{switch(o){case"completed":return i;case"waitingAuthorization":return()=>/*#__PURE__*/t(n,{width:"3rem",height:"3rem",style:{backgroundColor:"var(--privy-color-foreground-4)",color:"var(--privy-color-background)",borderRadius:"100%",padding:"0.5rem",margin:"0.5rem"}});default:return}},b=({status:r})=>{if(!r||"pending"===r){let r="var(--privy-color-foreground-4)";/*#__PURE__*/return o("div",{style:{position:"relative"},children:[/*#__PURE__*/t(m,{color:r,style:{position:"absolute"}}),/*#__PURE__*/t(l,{color:r}),/*#__PURE__*/t(g,{size:"3rem",style:{position:"absolute",top:"1rem",left:"1rem"}})]})}let n=v(r),i=(e=r)?{completed:"var(--privy-color-success)",failed:"var(--privy-color-error)",serviceFailure:"var(--privy-color-error)",waitingAuthorization:"var(--privy-color-accent)",pending:"var(--privy-color-foreground-4)"}[e]:"var(--privy-color-foreground-4)";var e;/*#__PURE__*/return t("div",{style:{borderColor:i,display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"100%",borderWidth:2,padding:"0.5rem",marginBottom:"0.5rem"},children:n&&/*#__PURE__*/t(n,{width:"4rem",height:"4rem",color:i})})},C=/*#__PURE__*/s.p.withConfig({displayName:"StatusBody",componentId:"sc-56bea42a-0"})(["font-size:1rem;color:var(--privy-color-foreground-3);margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem;"]),k=/*#__PURE__*/s.div.withConfig({displayName:"ConnectContainer",componentId:"sc-56bea42a-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:1.75rem;margin-right:1.75rem;padding:2rem 0;"]);export{j as MoonpayStatusScreen};
|