@privy-io/react-auth 2.3.0 → 2.4.0-beta-20250206213233

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/cjs/auth-flows/passkey.js +1 -1
  2. package/dist/cjs/client.js +1 -1
  3. package/dist/cjs/components/LoginModal.js +1 -1
  4. package/dist/cjs/connectors/embeddedProvider.js +1 -1
  5. package/dist/cjs/connectors/index.js +1 -1
  6. package/dist/cjs/constants.js +1 -1
  7. package/dist/cjs/embedded-wallets/solana/provider.js +1 -1
  8. package/dist/cjs/hooks/internal-context.js +1 -1
  9. package/dist/cjs/hooks/privy-provider.js +1 -1
  10. package/dist/cjs/hooks/useLoginWithPasskey.js +1 -1
  11. package/dist/cjs/hooks/useLoginWithTelegram.js +1 -0
  12. package/dist/cjs/index.js +1 -1
  13. package/dist/cjs/lib/funding/reservoir.js +1 -1
  14. package/dist/cjs/privy-provider-DZHyMCJ6.js +3 -0
  15. package/dist/cjs/screens/ErrorScreen.js +1 -1
  16. package/dist/cjs/screens/Funding/AwaitingEvmToSolBridgingScreen.js +2 -2
  17. package/dist/cjs/screens/Funding/AwaitingExternalTransferScreen.js +1 -1
  18. package/dist/cjs/screens/Funding/AwaitingSolToEvmBridgingScreen.js +1 -1
  19. package/dist/cjs/screens/MfaScreens/EnrollPasskey.js +1 -1
  20. package/dist/cjs/screens/MfaScreens/EnrollSms.js +1 -1
  21. package/dist/cjs/screens/MfaScreens/EnrollTotp.js +1 -1
  22. package/dist/cjs/screens/MfaScreens/MfaEnrollmentFlowScreen.js +1 -1
  23. package/dist/cjs/screens/SendSolanaTransactionScreen/SendSolanaTransactionScreen.js +1 -1
  24. package/dist/cjs/screens/SendTransactionScreen/SendTransactionScreen.js +1 -1
  25. package/dist/cjs/screens/SendTransactionScreen/index.js +1 -1
  26. package/dist/cjs/screens/TelegramAuthScreen.js +1 -1
  27. package/dist/dts/farcaster.d.mts +1 -1
  28. package/dist/dts/farcaster.d.ts +1 -1
  29. package/dist/dts/index.d.mts +34 -6
  30. package/dist/dts/index.d.ts +34 -6
  31. package/dist/dts/smart-wallets.d.mts +1 -1
  32. package/dist/dts/smart-wallets.d.ts +1 -1
  33. package/dist/dts/solana.d.mts +4 -4
  34. package/dist/dts/solana.d.ts +4 -4
  35. package/dist/dts/{types-Bfuea1mp.d.mts → types-CKOwQ4VD.d.mts} +11 -1
  36. package/dist/dts/{types-Bfuea1mp.d.ts → types-CKOwQ4VD.d.ts} +11 -1
  37. package/dist/dts/ui.d.mts +1 -1
  38. package/dist/dts/ui.d.ts +1 -1
  39. package/dist/dts/{useSolanaWallets-Bm_Kiqc9.d.ts → useSolanaWallets-BhtM7p0l.d.mts} +1 -1
  40. package/dist/dts/{useSolanaWallets-Bm_Kiqc9.d.mts → useSolanaWallets-BhtM7p0l.d.ts} +1 -1
  41. package/dist/esm/auth-flows/passkey.mjs +1 -1
  42. package/dist/esm/client.mjs +1 -1
  43. package/dist/esm/components/LoginModal.mjs +1 -1
  44. package/dist/esm/connectors/embeddedProvider.mjs +1 -1
  45. package/dist/esm/connectors/index.mjs +1 -1
  46. package/dist/esm/constants.mjs +1 -1
  47. package/dist/esm/embedded-wallets/solana/provider.mjs +1 -1
  48. package/dist/esm/hooks/internal-context.mjs +1 -1
  49. package/dist/esm/hooks/privy-provider.mjs +1 -1
  50. package/dist/esm/hooks/useLoginWithPasskey.mjs +1 -1
  51. package/dist/esm/hooks/useLoginWithTelegram.mjs +1 -0
  52. package/dist/esm/index.mjs +1 -1
  53. package/dist/esm/lib/funding/reservoir.mjs +1 -1
  54. package/dist/esm/privy-provider-DhAz7i0N.mjs +3 -0
  55. package/dist/esm/screens/ErrorScreen.mjs +1 -1
  56. package/dist/esm/screens/Funding/AwaitingEvmToSolBridgingScreen.mjs +2 -2
  57. package/dist/esm/screens/Funding/AwaitingExternalTransferScreen.mjs +2 -2
  58. package/dist/esm/screens/Funding/AwaitingSolToEvmBridgingScreen.mjs +2 -2
  59. package/dist/esm/screens/MfaScreens/EnrollPasskey.mjs +1 -1
  60. package/dist/esm/screens/MfaScreens/EnrollSms.mjs +1 -1
  61. package/dist/esm/screens/MfaScreens/EnrollTotp.mjs +1 -1
  62. package/dist/esm/screens/MfaScreens/MfaEnrollmentFlowScreen.mjs +1 -1
  63. package/dist/esm/screens/SendSolanaTransactionScreen/SendSolanaTransactionScreen.mjs +1 -1
  64. package/dist/esm/screens/SendTransactionScreen/SendTransactionScreen.mjs +1 -1
  65. package/dist/esm/screens/SendTransactionScreen/index.mjs +1 -1
  66. package/dist/esm/screens/TelegramAuthScreen.mjs +1 -1
  67. package/package.json +1 -1
  68. package/dist/cjs/privy-provider-D3d3i9ev.js +0 -3
  69. package/dist/esm/privy-provider-C0UXORP0.mjs +0 -3
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),n=require("react"),i=require("viem"),t=require("../../components/Layouts.js"),o=require("../../components/ModalFooter.js"),s=require("../../components/ScreenHeader.js"),a=require("../../components/embedded-wallets/FundWalletMethodHeader.js"),c=require("../../components/primitives/NeutralSpinner/index.js"),u=require("../../connectors/chains/utils.js"),l=require("../../constants.js"),d=require("../../errors.js"),h=require("../../hooks/internal-context.js"),q=require("../../hooks/modal-context.js"),g=require("../../hooks/useGetTokenPrice.js"),j=require("../../hooks/useWallets.js"),p=require("../../lib/external-wallets/displayHelpers.js"),m=require("../../lib/funding/analytics.js"),f=require("../../lib/funding/reservoir.js"),v=require("../../lib/solana/index.js"),y=require("../../lib/solana/transaction.js"),C=require("../../lib/wallets/actions/getBalanceForChains.js"),S=require("../../plugins/context/PrivyPluginContext.js"),I=require("../../plugins/solana-funding/id.js"),b=require("../../utils/index.js"),E=require("../../utils/eth/getPublicClient.js"),w=require("../index.js"),A=require("./BridgeNetworkSelectionView.js"),T=require("./TransferOrBridgeLoadingScreen.js");function N(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("ofetch"),require("../../components/PrefetchedImage.js"),require("../../hooks/useGetSolPrice.js"),require("../../svg/backpack.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/okx-wallet.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/solflare.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("../../utils/buffer/readBigInt64LE.js"),require("../../lib/attempt.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("@privy-io/js-sdk-core"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/typography/Subtitle.js"),require("../../components/ui/typography/Title.js"),require("../../components/ui/wallet/NetworkBalanceCard.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/wallet/NetworkIcon.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("../../components/ui/icons/Arbitum.js"),require("../../components/ui/icons/Avalanche.js"),require("../../components/ui/icons/Base.js"),require("../../components/ui/icons/Celo.js"),require("../../components/ui/icons/Linea.js"),require("../../components/ui/icons/Mainnnet.js"),require("../../components/ui/icons/Optimism.js"),require("../../components/ui/icons/Polygon.js"),require("../../components/ui/icons/Solana.js"),require("../../components/ui/icons/Zora.js"),require("../../components/ui/wallet/shared.js"),require("../../components/ui/wallet/NetworkSelectorPanel.js"),require("@headlessui/react"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("../../lib/ethers.js"),require("./styles.js"),require("../LinkPasskeyScreen.js"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("../../hooks/privy-context.js"),require("../../svg/face-id.js"),require("../../svg/fingerprint.js"),require("../MfaScreens/StyledComponents.js"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon");var x=/*#__PURE__*/N(r);exports.AwaitingEvmToSolBridgingScreen=()=>{let{rpcConfig:r,appId:N,closePrivyModal:_,createAnalyticsEvent:k}=h.usePrivyInternal(),{navigate:L,setModalData:P,app:F,data:R}=q.usePrivyModal(),{wallets:B}=j.useWallets(),U=S.usePlugins(),[M,O]=n.useState(null),[W,D]=n.useState(null),[G,H]=n.useState([]),[Y,Q]=n.useState(0),[V,$]=n.useState(!1),[z,X]=n.useState(!1),[J,Z]=n.useState(!1),[K,ee]=n.useState(!1);if(!R?.funding||"solana"!==R.funding.chainType)throw Error("Invalid funding data");let{address:re,cluster:ne,connectedWalletAddress:ie}=R.funding,[te,oe]=n.useState(R.funding.amount),se=ie?B.find((({address:e})=>e===ie)):B[0],[ae,ce]=n.useState(null);n.useEffect((()=>{(async()=>{if(!se)return;let e=await se.getEthereumProvider();ce(i.createWalletClient({account:se.address,transport:i.custom(e)}).extend(i.publicActions))})().catch(console.error)}),[se]);let[ue,le]=n.useState(0n),de=y.getNativeCurrencyFromLamports(ue);n.useEffect((()=>{let e=U(I.SOLANA_FUNDING_PLUGIN_ID);e?e.getBalance({address:re,cluster:ne}).then((e=>le(BigInt(e)))):console.warn("Unable to load solana plugin, skipping balance")}),[]);let[he,qe]=n.useState(),{tokenPrice:ge}=g.useGetTokenPrice("solana"),{fundingAmountInBaseUnit:je,fundingAmountInUsd:pe}=y.getSolanaFormattedAmounts({amount:te,fee:0n,tokenPrice:ge});n.useEffect((()=>{(async()=>{if(!ae||!se)return;let e=["testnet","devnet"].includes(ne.name);e&&console.warn("Solana testnets are not supported for bridging");let n=u.addToDefaultChains(F.chains).filter((({testnet:r})=>!!r===e)),i=(await C.getBalanceForChains({chains:n,address:se.address,appId:N,rpcConfig:r})).filter((e=>e.balance>0n));if(i.length<1)return void O(new d.PrivyClientError(`Wallet ${b.formatWalletAddress(se.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));i.sort(((e,r)=>Number(r.balance-e.balance)));let t=(await Promise.allSettled(i.map((async e=>({...e,quote:await f.getQuote({isTestnet:!1,input:f.toGetQuoteInput({amount:je.toString(),user:se.address,recipient:re,destinationChainId:v.RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(t.length<1)return void O(new d.PrivyClientError(`Unable to fetch quotes for bridging. Wallet ${b.formatWalletAddress(se.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let o=t.map((({quote:e,balance:r,chain:n})=>({bridgeTx:f.toEvmTransactionRequestInfoFromQuote(e),balance:r,chain:n}))).filter((({bridgeTx:e})=>!!e));if(o.length>1)return void H(o);let s=o.at(0);s?(X(!0),qe({data:s.bridgeTx.data,to:s.bridgeTx.to,value:s.bridgeTx.value,chain:s.chain})):O(new d.PrivyClientError(`Unable to select bridge option from quotes. Wallet ${b.formatWalletAddress(se.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[ae]),n.useEffect((()=>{(async()=>{let e,n;if(!ae||!se||V||J||!he)return;$(!0);let t=i.createPublicClient({chain:he.chain,transport:i.http(E.getJsonRpcEndpointFromChain(he.chain,r,N))});try{e=await t.prepareTransactionRequest({account:se.address,to:he.to,chain:he.chain,data:he.data,value:BigInt(he.value??0)})}catch(e){console.error(e),G.length>1&&D(e.shortMessage??"Something went wrong")}if(e){$(!1),Z(!0);try{await ae.switchChain({id:he.chain.id})}catch(e){await ae.addChain({chain:he.chain}),await ae.switchChain({id:he.chain.id})}try{n=await ae.sendTransaction(e),k({eventName:m.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:n,address:se.address,chainId:he.chain.id,chainType:"ethereum",value:he.value?i.formatUnits(BigInt(he.value),18):void 0,token:"ETH",destination:re,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:i.formatUnits(je,9),destinationToken:"SOL"}})}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(G.length<1?O(new d.PrivyClientError(e.shortMessage,void 0,d.PrivyErrorCode.TRANSACTION_FAILURE)):D(e.shortMessage??"Something went wrong"))}n?(await ae.waitForTransactionReceipt({hash:n}),Z(!1),ee(!0)):Z(!1)}else $(!1)})().catch(console.error)}),[ae,he]),n.useEffect((()=>{if(!M)return;let e={error:M,previousScreen:w.ModalScreen.FUNDING_TRANSFER_FROM_WALLET_SCREEN};P({funding:R?.funding,sendTransaction:R?.sendTransaction,errorModalData:e}),L(w.ModalScreen.ERROR_SCREEN,!1)}),[M]);let me=se?p.toDisplayName(se.walletClientType,se.connectorType,se.walletClientType)||"wallet":null;if(n.useEffect((()=>{if(!K)return;let e=setTimeout(_,l.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[K]),K/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(t.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(t.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(x.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(s.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${te} SOL to your ${F.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(t.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(o.BlobbyFooter,{})]});let fe=G[Y];return G.length>1&&fe?/*#__PURE__*/e.jsx(A.BridgeNetworkSelectionView,{displayName:me,configuredFundingChain:ne,formattedBalance:de,fundingAmount:te,fundingCurrency:"SOL",fundingAmountInUsd:pe,options:G,selectedOption:fe,isPreparing:V,isSubmitting:J,addressToFund:re,fundingWalletAddress:se?.address||"",errorMessage:W,onSubmit:()=>{R.funding?.amount!==te?async function(){if(se&&fe)try{let e=await f.getQuote({isTestnet:!1,input:f.toGetQuoteInput({amount:je.toString(),user:se.address,recipient:re,destinationChainId:v.RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:fe.chain.id})}),r=f.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");X(!0),qe({data:r.data,to:r.to,value:r.value,chain:fe.chain})}catch(e){console.error(e),O(new d.PrivyClientError("Unable to fetch quotes for bridging",e,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):qe({to:fe.bridgeTx.to,data:fe.bridgeTx.data,value:fe.bridgeTx.value,chain:fe.chain})},onSelect:e=>{e!==Y&&(D(null),Q(e))},onAmountChange:oe}):J&&se?/*#__PURE__*/e.jsx(T.TransferOrBridgeLoadingScreen,{wallet:se,displayName:me,addressToFund:re,isBridging:z,isErc20Flow:!1,chainId:"solana",chainName:ne.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
- /*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(c.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(o.BlobbyFooter,{})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),n=require("react"),i=require("viem"),t=require("../../components/Layouts.js"),s=require("../../components/ModalFooter.js"),o=require("../../components/ScreenHeader.js"),a=require("../../components/embedded-wallets/FundWalletMethodHeader.js"),c=require("../../components/primitives/NeutralSpinner/index.js"),u=require("../../connectors/chains/utils.js"),l=require("../../constants.js"),d=require("../../errors.js"),h=require("../../hooks/internal-context.js"),g=require("../../hooks/modal-context.js"),q=require("../../hooks/useGetTokenPrice.js"),p=require("../../hooks/useWallets.js"),j=require("../../lib/external-wallets/displayHelpers.js"),m=require("../../lib/funding/analytics.js"),f=require("../../lib/funding/reservoir.js"),v=require("../../lib/solana/index.js"),y=require("../../lib/solana/transaction.js"),S=require("../../lib/wallets/actions/getBalanceForChains.js"),C=require("../../plugins/context/PrivyPluginContext.js"),I=require("../../plugins/solana-funding/id.js"),E=require("../../utils/index.js"),b=require("../../utils/eth/getPublicClient.js"),T=require("../index.js"),w=require("./BridgeNetworkSelectionView.js"),A=require("./TransferOrBridgeLoadingScreen.js");function N(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("ofetch"),require("../../components/PrefetchedImage.js"),require("../../hooks/useGetSolPrice.js"),require("../../svg/backpack.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/okx-wallet.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/solflare.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("../../utils/buffer/readBigInt64LE.js"),require("../../lib/attempt.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("@privy-io/js-sdk-core"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/typography/Subtitle.js"),require("../../components/ui/typography/Title.js"),require("../../components/ui/wallet/NetworkBalanceCard.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/wallet/NetworkIcon.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("../../components/ui/icons/Arbitum.js"),require("../../components/ui/icons/Avalanche.js"),require("../../components/ui/icons/Base.js"),require("../../components/ui/icons/Celo.js"),require("../../components/ui/icons/Linea.js"),require("../../components/ui/icons/Mainnnet.js"),require("../../components/ui/icons/Optimism.js"),require("../../components/ui/icons/Polygon.js"),require("../../components/ui/icons/Solana.js"),require("../../components/ui/icons/Zora.js"),require("../../components/ui/wallet/shared.js"),require("../../components/ui/wallet/NetworkSelectorPanel.js"),require("@headlessui/react"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("../../lib/ethers.js"),require("./styles.js"),require("../LinkPasskeyScreen.js"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("../../hooks/privy-context.js"),require("../../svg/face-id.js"),require("../../svg/fingerprint.js"),require("../MfaScreens/StyledComponents.js"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon");var x=/*#__PURE__*/N(r);exports.AwaitingEvmToSolBridgingScreen=()=>{let{rpcConfig:r,appId:N,closePrivyModal:_,createAnalyticsEvent:k}=h.usePrivyInternal(),{navigate:L,setModalData:P,app:F,data:R}=g.usePrivyModal(),{wallets:B}=p.useWallets(),U=C.usePlugins(),[M,O]=n.useState(null),[W,D]=n.useState(null),[H,G]=n.useState([]),[V,Y]=n.useState(0),[Q,$]=n.useState(!1),[z,X]=n.useState(!1),[J,Z]=n.useState(!1),[K,ee]=n.useState(!1),[re,ne]=n.useState(),[ie,te]=n.useState();if(!R?.funding||"solana"!==R.funding.chainType)throw Error("Invalid funding data");let{address:se,cluster:oe,connectedWalletAddress:ae}=R.funding,[ce,ue]=n.useState(R.funding.amount),le=ae?B.find((({address:e})=>e===ae)):B[0],[de,he]=n.useState(null);n.useEffect((()=>{(async()=>{if(!le)return;let e=await le.getEthereumProvider();he(i.createWalletClient({account:le.address,transport:i.custom(e)}).extend(i.publicActions))})().catch(console.error)}),[le]);let[ge,qe]=n.useState(0n),pe=y.getNativeCurrencyFromLamports(ge);n.useEffect((()=>{let e=U(I.SOLANA_FUNDING_PLUGIN_ID);e?e.getBalance({address:se,cluster:oe}).then((e=>qe(BigInt(e)))):console.warn("Unable to load solana plugin, skipping balance")}),[]);let[je,me]=n.useState(),{tokenPrice:fe}=q.useGetTokenPrice("solana"),{fundingAmountInBaseUnit:ve,fundingAmountInUsd:ye}=y.getSolanaFormattedAmounts({amount:ce,fee:0n,tokenPrice:fe});n.useEffect((()=>{(async()=>{if(!de||!le)return;let e=["testnet","devnet"].includes(oe.name);e&&console.warn("Solana testnets are not supported for bridging");let n=u.addToDefaultChains(F.chains).filter((({testnet:r})=>!!r===e)),i=(await S.getBalanceForChains({chains:n,address:le.address,appId:N,rpcConfig:r})).filter((e=>e.balance>0n));if(i.length<1)return void O(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(le.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));i.sort(((e,r)=>Number(r.balance-e.balance)));let t=(await Promise.allSettled(i.map((async e=>({...e,quote:await f.getQuote({isTestnet:!1,input:f.toGetQuoteInput({amount:ve.toString(),user:le.address,recipient:se,destinationChainId:v.RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:e.chain.id})})}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(t.length<1)return void O(new d.PrivyClientError(`Unable to fetch quotes for bridging. Wallet ${E.formatWalletAddress(le.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let s=t.map((({quote:e,balance:r,chain:n})=>({bridgeTx:f.toEvmTransactionRequestInfoFromQuote(e),balance:r,chain:n}))).filter((({bridgeTx:e})=>!!e));if(s.length>1)return void G(s);let o=s.at(0);o?(X(!0),me({data:o.bridgeTx.data,to:o.bridgeTx.to,value:o.bridgeTx.value,chain:o.chain})):O(new d.PrivyClientError(`Unable to select bridge option from quotes. Wallet ${E.formatWalletAddress(le.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[de]),n.useEffect((()=>{(async()=>{let e,n;if(!de||!le||Q||J||!je)return;$(!0);let t=i.createPublicClient({chain:je.chain,transport:i.http(b.getJsonRpcEndpointFromChain(je.chain,r,N))});try{e=await t.prepareTransactionRequest({account:le.address,to:je.to,chain:je.chain,data:je.data,value:BigInt(je.value??0)})}catch(e){console.error(e),H.length>1&&D(e.shortMessage??"Something went wrong")}if(e){$(!1),Z(!0);try{await de.switchChain({id:je.chain.id})}catch(e){await de.addChain({chain:je.chain}),await de.switchChain({id:je.chain.id})}try{n=await de.sendTransaction(e)}catch(e){console.error(e),"TransactionExecutionError"===e.name&&(H.length<1?O(new d.PrivyClientError(e.shortMessage,void 0,d.PrivyErrorCode.TRANSACTION_FAILURE)):D(e.shortMessage??"Something went wrong"))}if(n)return await de.waitForTransactionReceipt({hash:n}),z?(te("pending"),void ne(n)):(Z(!1),ee(!0),void k({eventName:m.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:n,address:le.address,chainId:je.chain.id,chainType:"ethereum",value:je.value?i.formatUnits(BigInt(je.value),18):void 0,token:"ETH",destination:se,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:i.formatUnits(ve,9),destinationToken:"SOL"}}));Z(!1)}else $(!1)})().catch(console.error)}),[de,je]),f.useBridgingStatusPolling({transactionHash:re,wallet:le,isTestnet:!1,bridgingStatus:ie,setBridgingStatus:te,onSuccess({transactionHash:e,wallet:r}){X(!1),ee(!0),k({eventName:m.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:r.address,chainId:je?.chain.id,chainType:"ethereum",value:je?.value?i.formatUnits(BigInt(je.value),18):void 0,token:"ETH",destination:se,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:i.formatUnits(ve,9),destinationToken:"SOL"}})},onFailure({error:e}){X(!1),O(e)}}),n.useEffect((()=>{if(!M)return;let e={error:M,previousScreen:T.ModalScreen.FUNDING_TRANSFER_FROM_WALLET_SCREEN};P({funding:R?.funding,sendTransaction:R?.sendTransaction,errorModalData:e}),L(T.ModalScreen.ERROR_SCREEN,!1)}),[M]);let Se=le?j.toDisplayName(le.walletClientType,le.connectorType,le.walletClientType)||"wallet":null;if(n.useEffect((()=>{if(!K)return;let e=setTimeout(_,l.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[K]),K/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(t.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(t.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(x.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(o.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${ce} SOL to your ${F.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(t.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]});let Ce=H[V];return H.length>1&&Ce?/*#__PURE__*/e.jsx(w.BridgeNetworkSelectionView,{displayName:Se,configuredFundingChain:oe,formattedBalance:pe,fundingAmount:ce,fundingCurrency:"SOL",fundingAmountInUsd:ye,options:H,selectedOption:Ce,isPreparing:Q,isSubmitting:J,addressToFund:se,fundingWalletAddress:le?.address||"",errorMessage:W,onSubmit:()=>{R.funding?.amount!==ce?async function(){if(le&&Ce)try{let e=await f.getQuote({isTestnet:!1,input:f.toGetQuoteInput({amount:ve.toString(),user:le.address,recipient:se,destinationChainId:v.RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID,destinationCurrency:v.RELAY_SOLANA_NATIVE_CURRENCY_ID,originChainId:Ce.chain.id})}),r=f.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");X(!0),me({data:r.data,to:r.to,value:r.value,chain:Ce.chain})}catch(e){console.error(e),O(new d.PrivyClientError("Unable to fetch quotes for bridging",e,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):me({to:Ce.bridgeTx.to,data:Ce.bridgeTx.data,value:Ce.bridgeTx.value,chain:Ce.chain})},onSelect:e=>{e!==V&&(D(null),Y(e))},onAmountChange:ue}):J&&le?/*#__PURE__*/e.jsx(A.TransferOrBridgeLoadingScreen,{wallet:le,displayName:Se,addressToFund:se,isBridging:z,isErc20Flow:!1,chainId:"solana",chainName:oe.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):
2
+ /*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(c.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})};
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),n=require("react"),i=require("viem"),t=require("../../components/Layouts.js"),s=require("../../components/ModalFooter.js"),o=require("../../components/ScreenHeader.js"),a=require("../../components/embedded-wallets/FundWalletMethodHeader.js"),c=require("../../components/primitives/NeutralSpinner/index.js"),u=require("../../connectors/chains/utils.js"),l=require("../../constants.js"),d=require("../../errors.js"),h=require("../../hooks/internal-context.js"),q=require("../../hooks/modal-context.js"),g=require("../../hooks/useGetTokenPrice.js"),m=require("../../hooks/useWallets.js"),j=require("../../lib/erc20/actions/abis/transfer.js"),p=require("../../lib/erc20/formatErc20TokenAmount.js"),f=require("../../lib/ethers.js"),v=require("../../lib/external-wallets/displayHelpers.js"),y=require("../../lib/funding/analytics.js"),C=require("../../lib/funding/reservoir.js"),b=require("../../lib/wallets/actions/getBalanceForChains.js"),S=require("../../lib/wallets/actions/getErc20Balance.js"),E=require("../../utils/index.js"),I=require("../../utils/eth/getPublicClient.js"),w=require("../index.js"),T=require("./BridgeNetworkSelectionView.js"),A=require("./TransferOrBridgeLoadingScreen.js");function N(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("ofetch"),require("../../components/PrefetchedImage.js"),require("../../hooks/useGetSolPrice.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../svg/backpack.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/okx-wallet.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/solflare.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("@privy-io/js-sdk-core"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/typography/Subtitle.js"),require("../../components/ui/typography/Title.js"),require("../../components/ui/wallet/NetworkBalanceCard.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/wallet/NetworkIcon.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("../../components/ui/icons/Arbitum.js"),require("../../components/ui/icons/Avalanche.js"),require("../../components/ui/icons/Base.js"),require("../../components/ui/icons/Celo.js"),require("../../components/ui/icons/Linea.js"),require("../../components/ui/icons/Mainnnet.js"),require("../../components/ui/icons/Optimism.js"),require("../../components/ui/icons/Polygon.js"),require("../../components/ui/icons/Solana.js"),require("../../components/ui/icons/Zora.js"),require("../../components/ui/wallet/shared.js"),require("../../components/ui/wallet/NetworkSelectorPanel.js"),require("@headlessui/react"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("./styles.js"),require("../LinkPasskeyScreen.js"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("../../hooks/privy-context.js"),require("../../svg/face-id.js"),require("../../svg/fingerprint.js"),require("../MfaScreens/StyledComponents.js"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon");var x=/*#__PURE__*/N(r);exports.AwaitingExternalTransferScreen=()=>{let{rpcConfig:r,appId:N,closePrivyModal:F,createAnalyticsEvent:k}=h.usePrivyInternal(),{navigate:P,setModalData:B,app:R,data:_}=q.usePrivyModal(),{wallets:W}=m.useWallets(),[M,L]=n.useState(!1),[U,D]=n.useState(0n),[O,H]=n.useState(!1),[G,$]=n.useState(null),[Q,V]=n.useState(null),[z,J]=n.useState([]),[X,Y]=n.useState(0),[Z,K]=n.useState(!1),[ee,re]=n.useState(!1),[ne,ie]=n.useState(!1),[te,se]=n.useState(!1);if(!_?.funding||"ethereum"!==_.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:oe,chain:ae,connectedWalletAddress:ce}=_.funding,ue=_.funding.address,le=_.funding.erc20Address,[de,he]=n.useState(_.funding.amount);n.useEffect((()=>{le&&!oe&&$(Error("Unable to fetch token details"))}),[]);let qe=!!le&&!!oe,ge=qe?BigInt(parseFloat(de)*10**oe.decimals):i.parseEther(de),me=ce?W.find((({address:e})=>e===ce)):W[0],[je,pe]=n.useState(null);n.useEffect((()=>{(async()=>{if(!me)return;let e=await me.getEthereumProvider();pe(i.createWalletClient({account:me.address,transport:i.custom(e)}).extend(i.publicActions))})().catch(console.error)}),[me]);let[fe,ve]=n.useState(0n);n.useEffect((()=>{i.createPublicClient({chain:ae,transport:i.http(I.getJsonRpcEndpointFromChain(ae,r,N))}).getBalance({address:ue}).then(ve).catch(console.error)}),[]);let[ye,Ce]=n.useState(0n);n.useEffect((()=>{qe&&S.getErc20Balance({chain:ae,address:ue,appId:N,rpcConfig:r,erc20Address:le}).then((e=>Ce(e.balance))).catch(console.error)}),[]);let{tokenPrice:be}=g.useGetTokenPrice(ae.id),[Se,Ee]=n.useState({to:ue,chain:ae,value:ge,data:void 0});n.useEffect((()=>{(async()=>{let e,n;if(!je||!me||Z||ne)return;K(!0);let t=i.createPublicClient({chain:Se.chain,transport:i.http(I.getJsonRpcEndpointFromChain(Se.chain,r,N))});if(qe&&!Se.data)return await t.simulateContract({address:le,chain:Se.chain,abi:j.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[ue,ge],account:me.address}).catch((e=>{console.warn("Simulated token transfer failed with error, fetching bridge options.",e)}))?(K(!1),void Ee({to:le,chain:Se.chain,data:i.encodeFunctionData({abi:j.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[ue,ge]}),value:"0x0"})):(K(!1),void H(!0));try{e=await t.prepareTransactionRequest({account:me.address,to:Se.to,chain:Se.chain,data:Se.data,value:BigInt(Se.value??0)})}catch(e){if(console.error(e),z.length>1)V(e.shortMessage??"Something went wrong");else if(ee&&0===z.length)return void $(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(me.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}if(!e)return K(!1),void H(!0);K(!1),ie(!0),L(!0),D(e.gas);try{await je.switchChain({id:Se.chain.id})}catch(e){await je.addChain({chain:Se.chain}),await je.switchChain({id:Se.chain.id})}try{n=await je.sendTransaction(e),k({eventName:y.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:n,address:me.address,chainId:Se.chain.id,chainType:"ethereum",value:Se.value?i.formatUnits(BigInt(Se.value),oe?.decimals??18):void 0,token:oe?.symbol??le??"ETH",destinationAddress:ue,destinationChainId:ae.id,destinationChainType:"ethereum",destinationValue:ge?i.formatUnits(ge,oe?.decimals??18):void 0,destinationToken:oe?.symbol??le??ae.nativeCurrency.name}})}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(z.length<1){let r=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(r="User rejected the request."),$(new d.PrivyClientError(r,void 0,d.PrivyErrorCode.TRANSACTION_FAILURE))}else V(e.shortMessage??"Something went wrong")}n?(await je.waitForTransactionReceipt({hash:n}),ie(!1),se(!0)):ie(!1)})().catch(console.error)}),[je,Se]),n.useEffect((()=>{(async()=>{if(!O||!je||!me)return;let e=u.addToDefaultChains(R.chains).filter((e=>e.id!==ae.id&&!!e.testnet==!!ae.testnet));qe&&e.unshift(ae);let n=await b.getBalanceForChains({chains:e,address:me.address,appId:N,rpcConfig:r}),i=qe?n.filter((e=>e.balance>0n)):n.filter((e=>e.balance>ge));if(i.length<1)return void $(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(me.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));i.sort(((e,r)=>Number(r.balance-e.balance)));let t=(await Promise.allSettled(i.map((async e=>({quote:await C.getQuote({isTestnet:!!ae.testnet,input:C.toGetQuoteInput({amount:ge.toString(),user:me.address,recipient:ue,destinationChainId:ae.id,destinationCurrency:le,originChainId:e.chain.id})}),...e}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(t.length<1)return void $(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(me.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let s=t.map((e=>({bridgeTx:C.toEvmTransactionRequestInfoFromQuote(e.quote),balance:e.balance,chain:e.chain}))).filter((e=>!!e.bridgeTx));if(s.length>1)return void J(s);let o=s[0];o?(re(!0),Ee({data:o.bridgeTx.data,to:o.bridgeTx.to,value:o.bridgeTx.value,chain:o.chain})):$(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(me.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[O]),n.useEffect((()=>{if(!G)return;let e={error:G,previousScreen:w.ModalScreen.FUNDING_TRANSFER_FROM_WALLET_SCREEN};B({funding:_?.funding,sendTransaction:_?.sendTransaction,errorModalData:e}),P(w.ModalScreen.ERROR_SCREEN,!1)}),[G]);let Ie=me?v.toDisplayName(me.walletClientType,me.connectorType,me.walletClientType)||"wallet":null,we=!qe&&be?f.getDollarsFromStringFloat(de??"0",be):void 0,Te=qe?U:f.sumWeiQuantities([U,ge]),Ae=Te&&be?f.getDollarsFromWei(Te,be):void 0,Ne=Te?f.getNativeCurrencyFromWei(Te,"ETH"):void 0,xe=U&&be?f.getDollarsFromWei(U,be):void 0,Fe=U?f.getNativeCurrencyFromWei(U,"ETH"):void 0;if(n.useEffect((()=>{if(!te)return;let e=setTimeout(F,l.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[te]),te/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(t.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(t.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(x.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(o.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${de} ${qe?oe.symbol:ae.nativeCurrency.symbol} to your ${R.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(t.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]});let ke=qe?`${p.formatErc20TokenAmount({amount:ye,decimals:oe.decimals})} ${oe.symbol}`:f.getNativeCurrencyFromWei(fe,ae.nativeCurrency.symbol,3,!0),Pe=z[X];return z.length>1&&Pe?/*#__PURE__*/e.jsx(T.BridgeNetworkSelectionView,{displayName:Ie,configuredFundingChain:ae,formattedBalance:ke,fundingAmount:de,fundingCurrency:qe?oe.symbol:ae.nativeCurrency.symbol,fundingAmountInUsd:we,options:z,selectedOption:Pe,isPreparing:Z,isSubmitting:ne,addressToFund:ue,fundingWalletAddress:me?.address||"",errorMessage:Q,onSubmit:()=>{_.funding?.amount!==de?async function(){if(me&&Pe)try{let e=await C.getQuote({isTestnet:!!ae.testnet,input:C.toGetQuoteInput({amount:ge.toString(),user:me.address,recipient:ue,destinationChainId:ae.id,destinationCurrency:le,originChainId:Pe.chain.id})}),r=C.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");re(!0),Ee({data:r.data,to:r.to,value:r.value,chain:Pe.chain})}catch(e){console.error(e),$(new d.PrivyClientError("Unable to fetch quotes for bridging",e,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):Ee({to:Pe.bridgeTx.to,data:Pe.bridgeTx.data,value:Pe.bridgeTx.value,chain:Pe.chain})},onSelect:e=>{e!==X&&(V(null),Y(e))},onAmountChange:he}):M&&U&&me&&_?.funding?/*#__PURE__*/e.jsx(A.TransferOrBridgeLoadingScreen,{wallet:me,displayName:Ie,addressToFund:ue,isBridging:ee,isErc20Flow:qe,totalPriceInUsd:Ae,totalPriceInNativeCurrency:Ne,gasPriceInUsd:xe,gasPriceInNativeCurrency:Fe,chainId:ae.id,chainName:ae.name}):
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),n=require("react"),i=require("viem"),t=require("../../components/Layouts.js"),s=require("../../components/ModalFooter.js"),o=require("../../components/ScreenHeader.js"),a=require("../../components/embedded-wallets/FundWalletMethodHeader.js"),c=require("../../components/primitives/NeutralSpinner/index.js"),u=require("../../connectors/chains/utils.js"),l=require("../../constants.js"),d=require("../../errors.js"),h=require("../../hooks/internal-context.js"),g=require("../../hooks/modal-context.js"),m=require("../../hooks/useGetTokenPrice.js"),q=require("../../hooks/useWallets.js"),j=require("../../lib/erc20/actions/abis/transfer.js"),p=require("../../lib/erc20/formatErc20TokenAmount.js"),f=require("../../lib/ethers.js"),v=require("../../lib/external-wallets/displayHelpers.js"),y=require("../../lib/funding/analytics.js"),C=require("../../lib/funding/reservoir.js"),S=require("../../lib/wallets/actions/getBalanceForChains.js"),b=require("../../lib/wallets/actions/getErc20Balance.js"),E=require("../../utils/index.js"),T=require("../../utils/eth/getPublicClient.js"),I=require("../index.js"),w=require("./BridgeNetworkSelectionView.js"),A=require("./TransferOrBridgeLoadingScreen.js");function N(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("ofetch"),require("../../components/PrefetchedImage.js"),require("../../hooks/useGetSolPrice.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../svg/backpack.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/okx-wallet.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/solflare.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("@privy-io/js-sdk-core"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/typography/Subtitle.js"),require("../../components/ui/typography/Title.js"),require("../../components/ui/wallet/NetworkBalanceCard.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/wallet/NetworkIcon.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("../../components/ui/icons/Arbitum.js"),require("../../components/ui/icons/Avalanche.js"),require("../../components/ui/icons/Base.js"),require("../../components/ui/icons/Celo.js"),require("../../components/ui/icons/Linea.js"),require("../../components/ui/icons/Mainnnet.js"),require("../../components/ui/icons/Optimism.js"),require("../../components/ui/icons/Polygon.js"),require("../../components/ui/icons/Solana.js"),require("../../components/ui/icons/Zora.js"),require("../../components/ui/wallet/shared.js"),require("../../components/ui/wallet/NetworkSelectorPanel.js"),require("@headlessui/react"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("./styles.js"),require("../LinkPasskeyScreen.js"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("../../hooks/privy-context.js"),require("../../svg/face-id.js"),require("../../svg/fingerprint.js"),require("../MfaScreens/StyledComponents.js"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon");var x=/*#__PURE__*/N(r);exports.AwaitingExternalTransferScreen=()=>{let{rpcConfig:r,appId:N,closePrivyModal:F,createAnalyticsEvent:k}=h.usePrivyInternal(),{navigate:P,setModalData:B,app:R,data:_}=g.usePrivyModal(),{wallets:M}=q.useWallets(),[L,W]=n.useState(!1),[U,H]=n.useState(0n),[O,D]=n.useState(!1),[G,$]=n.useState(null),[Q,V]=n.useState(null),[z,Y]=n.useState([]),[J,X]=n.useState(0),[Z,K]=n.useState(!1),[ee,re]=n.useState(!1),[ne,ie]=n.useState(!1),[te,se]=n.useState(!1),[oe,ae]=n.useState(),[ce,ue]=n.useState();if(!_?.funding||"ethereum"!==_.funding.chainType)throw Error("Invalid funding data");let{erc20ContractInfo:le,chain:de,connectedWalletAddress:he}=_.funding,ge=_.funding.address,me=_.funding.erc20Address,[qe,je]=n.useState(_.funding.amount);n.useEffect((()=>{me&&!le&&$(Error("Unable to fetch token details"))}),[]);let pe=!!me&&!!le,fe=pe?BigInt(parseFloat(qe)*10**le.decimals):i.parseEther(qe),ve=he?M.find((({address:e})=>e===he)):M[0],[ye,Ce]=n.useState(null);n.useEffect((()=>{(async()=>{if(!ve)return;let e=await ve.getEthereumProvider();Ce(i.createWalletClient({account:ve.address,transport:i.custom(e)}).extend(i.publicActions))})().catch(console.error)}),[ve]);let[Se,be]=n.useState(0n);n.useEffect((()=>{i.createPublicClient({chain:de,transport:i.http(T.getJsonRpcEndpointFromChain(de,r,N))}).getBalance({address:ge}).then(be).catch(console.error)}),[]);let[Ee,Te]=n.useState(0n);n.useEffect((()=>{pe&&b.getErc20Balance({chain:de,address:ge,appId:N,rpcConfig:r,erc20Address:me}).then((e=>Te(e.balance))).catch(console.error)}),[]);let{tokenPrice:Ie}=m.useGetTokenPrice(de.id),[we,Ae]=n.useState({to:ge,chain:de,value:fe,data:void 0});n.useEffect((()=>{(async()=>{let e,n;if(!ye||!ve||Z||ne)return;K(!0);let t=i.createPublicClient({chain:we.chain,transport:i.http(T.getJsonRpcEndpointFromChain(we.chain,r,N))});if(pe&&!we.data)return await t.simulateContract({address:me,chain:we.chain,abi:j.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[ge,fe],account:ve.address}).catch((e=>{console.warn("Simulated token transfer failed with error, fetching bridge options.",e)}))?(K(!1),void Ae({to:me,chain:we.chain,data:i.encodeFunctionData({abi:j.ERC20_TRANSFER_ABI_STUB,functionName:"transfer",args:[ge,fe]}),value:"0x0"})):(K(!1),void D(!0));try{e=await t.prepareTransactionRequest({account:ve.address,to:we.to,chain:we.chain,data:we.data,value:BigInt(we.value??0)})}catch(e){if(console.error(e),z.length>1)V(e.shortMessage??"Something went wrong");else if(ee&&0===z.length)return void $(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}if(!e)return K(!1),void D(!0);K(!1),ie(!0),W(!0),H(e.gas);try{await ye.switchChain({id:we.chain.id})}catch(e){await ye.addChain({chain:we.chain}),await ye.switchChain({id:we.chain.id})}try{n=await ye.sendTransaction(e)}catch(e){if(console.error(e),"TransactionExecutionError"===e.name)if(z.length<1){let r=e.shortMessage;(e.shortMessage.includes("rejected the request")||e.details.includes("rejected the request"))&&(r="User rejected the request."),$(new d.PrivyClientError(r,void 0,d.PrivyErrorCode.TRANSACTION_FAILURE))}else V(e.shortMessage??"Something went wrong")}if(n)return await ye.waitForTransactionReceipt({hash:n}),ie(!1),ee?(ae(n),void ue("pending")):(se(!0),void k({eventName:y.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:n,address:ve.address,chainId:we.chain.id,chainType:"ethereum",value:we.value?i.formatUnits(BigInt(we.value),le?.decimals??18):void 0,token:le?.symbol??me??"ETH",destinationAddress:ge,destinationChainId:de.id,destinationChainType:"ethereum",destinationValue:fe?i.formatUnits(fe,le?.decimals??18):void 0,destinationToken:le?.symbol??me??de.nativeCurrency.name}}));ie(!1)})().catch(console.error)}),[ye,we]),n.useEffect((()=>{(async()=>{if(!O||!ye||!ve)return;let e=u.addToDefaultChains(R.chains).filter((e=>e.id!==de.id&&!!e.testnet==!!de.testnet));pe&&e.unshift(de);let n=await S.getBalanceForChains({chains:e,address:ve.address,appId:N,rpcConfig:r}),i=pe?n.filter((e=>e.balance>0n)):n.filter((e=>e.balance>fe));if(i.length<1)return void $(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));i.sort(((e,r)=>Number(r.balance-e.balance)));let t=(await Promise.allSettled(i.map((async e=>({quote:await C.getQuote({isTestnet:!!de.testnet,input:C.toGetQuoteInput({amount:fe.toString(),user:ve.address,recipient:ge,destinationChainId:de.id,destinationCurrency:me,originChainId:e.chain.id})}),...e}))))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(t.length<1)return void $(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let s=t.map((e=>({bridgeTx:C.toEvmTransactionRequestInfoFromQuote(e.quote),balance:e.balance,chain:e.chain}))).filter((e=>!!e.bridgeTx));if(s.length>1)return void Y(s);let o=s[0];o?(re(!0),Ae({data:o.bridgeTx.data,to:o.bridgeTx.to,value:o.bridgeTx.value,chain:o.chain})):$(new d.PrivyClientError(`Wallet ${E.formatWalletAddress(ve.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[O]),C.useBridgingStatusPolling({transactionHash:oe,wallet:ve,isTestnet:!!de.testnet,bridgingStatus:ce,setBridgingStatus:ue,onSuccess({transactionHash:e,wallet:r}){re(!1),se(!0),k({eventName:y.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:r.address,chainId:we.chain.id,chainType:"ethereum",value:we.value?i.formatUnits(BigInt(we.value),le?.decimals??18):void 0,token:le?.symbol??me??"ETH",destinationAddress:ge,destinationChainId:de.id,destinationChainType:"ethereum",destinationValue:fe?i.formatUnits(fe,le?.decimals??18):void 0,destinationToken:le?.symbol??me??de.nativeCurrency.name}})},onFailure({error:e}){re(!1),$(e)}}),n.useEffect((()=>{if(!G)return;let e={error:G,previousScreen:I.ModalScreen.FUNDING_TRANSFER_FROM_WALLET_SCREEN};B({funding:_?.funding,sendTransaction:_?.sendTransaction,errorModalData:e}),P(I.ModalScreen.ERROR_SCREEN,!1)}),[G]);let Ne=ve?v.toDisplayName(ve.walletClientType,ve.connectorType,ve.walletClientType)||"wallet":null,xe=!pe&&Ie?f.getDollarsFromStringFloat(qe??"0",Ie):void 0,Fe=pe?U:f.sumWeiQuantities([U,fe]),ke=Fe&&Ie?f.getDollarsFromWei(Fe,Ie):void 0,Pe=Fe?f.getNativeCurrencyFromWei(Fe,"ETH"):void 0,Be=U&&Ie?f.getDollarsFromWei(U,Ie):void 0,Re=U?f.getNativeCurrencyFromWei(U,"ETH"):void 0;if(n.useEffect((()=>{if(!te)return;let e=setTimeout(F,l.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[te]),te/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(t.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(t.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(x.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(o.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${qe} ${pe?le.symbol:de.nativeCurrency.symbol} to your ${R.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(t.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]});let _e=pe?`${p.formatErc20TokenAmount({amount:Ee,decimals:le.decimals})} ${le.symbol}`:f.getNativeCurrencyFromWei(Se,de.nativeCurrency.symbol,3,!0),Me=z[J];return z.length>1&&Me?/*#__PURE__*/e.jsx(w.BridgeNetworkSelectionView,{displayName:Ne,configuredFundingChain:de,formattedBalance:_e,fundingAmount:qe,fundingCurrency:pe?le.symbol:de.nativeCurrency.symbol,fundingAmountInUsd:xe,options:z,selectedOption:Me,isPreparing:Z,isSubmitting:ne,addressToFund:ge,fundingWalletAddress:ve?.address||"",errorMessage:Q,onSubmit:()=>{_.funding?.amount!==qe?async function(){if(ve&&Me)try{let e=await C.getQuote({isTestnet:!!de.testnet,input:C.toGetQuoteInput({amount:fe.toString(),user:ve.address,recipient:ge,destinationChainId:de.id,destinationCurrency:me,originChainId:Me.chain.id})}),r=C.toEvmTransactionRequestInfoFromQuote(e);if(!r)throw Error("Invalid transaction request");re(!0),Ae({data:r.data,to:r.to,value:r.value,chain:Me.chain})}catch(e){console.error(e),$(new d.PrivyClientError("Unable to fetch quotes for bridging",e,d.PrivyErrorCode.INSUFFICIENT_BALANCE))}}().catch(console.error):Ae({to:Me.bridgeTx.to,data:Me.bridgeTx.data,value:Me.bridgeTx.value,chain:Me.chain})},onSelect:e=>{e!==J&&(V(null),X(e))},onAmountChange:je}):L&&U&&ve&&_?.funding?/*#__PURE__*/e.jsx(A.TransferOrBridgeLoadingScreen,{wallet:ve,displayName:Ne,addressToFund:ge,isBridging:ee,isErc20Flow:pe,totalPriceInUsd:ke,totalPriceInNativeCurrency:Pe,gasPriceInUsd:Be,gasPriceInNativeCurrency:Re,chainId:de.id,chainName:de.name}):
2
2
  /*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.default,{}),/*#__PURE__*/e.jsx(c.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})};
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("../index.js"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),i=require("react"),o=require("viem"),s=require("../../components/Layouts.js"),t=require("../../components/ModalFooter.js"),a=require("../../components/ScreenHeader.js"),c=require("../../components/embedded-wallets/FundWalletMethodHeader.js"),u=require("../../components/primitives/NeutralSpinner/index.js"),l=require("../../constants.js"),d=require("../../errors.js"),j=require("../../hooks/internal-context.js"),q=require("../../hooks/modal-context.js"),h=require("../../lib/external-wallets/displayHelpers.js"),g=require("../../lib/funding/analytics.js"),m=require("../../lib/funding/reservoir.js"),p=require("../../lib/solana/index.js"),v=require("../../plugins/context/PrivyPluginContext.js"),f=require("../../plugins/solana-funding/id.js"),y=require("../../utils/index.js"),C=require("./TransferOrBridgeLoadingScreen.js"),S=require("../../hooks/solana/useSolanaWallets.js");function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("ofetch"),require("../../components/PrefetchedImage.js"),require("../../svg/backpack.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/okx-wallet.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/solflare.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("../../components/ui/wallet/NetworkIcon.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("../../components/ui/icons/Arbitum.js"),require("../../components/ui/icons/Avalanche.js"),require("../../components/ui/icons/Base.js"),require("../../components/ui/icons/Celo.js"),require("../../components/ui/icons/Linea.js"),require("../../components/ui/icons/Mainnnet.js"),require("../../components/ui/icons/Optimism.js"),require("../../components/ui/icons/Polygon.js"),require("../../components/ui/icons/Solana.js"),require("../../components/ui/icons/Zora.js"),require("../../hooks/useWallets.js");var A=/*#__PURE__*/E(n);exports.AwaitingSolToEvmBridgingScreen=function(){let{closePrivyModal:n,createAnalyticsEvent:E}=j.usePrivyInternal(),{navigate:I,setModalData:N,app:T,data:w}=q.usePrivyModal(),{wallets:b}=S.useSolanaWallets(),_=i.useRef(!1),x=v.usePlugins(),[R,P]=i.useState(!1),[L,F]=i.useState(!1),[U,k]=i.useState(null);if(!w?.funding||"ethereum"!==w.funding.chainType)throw Error("Invalid funding data");let{amount:O,connectedWalletAddress:M,chain:D,cluster:W,isUSDC:B}=w.funding,H=w.funding.address,$=w.funding.erc20Address,G=w.funding.isUSDC?"USDC":D.nativeCurrency.symbol,Y=W??{name:"mainnet-beta"},z=M?b.find((({address:e})=>e===M)):b[0];if(i.useEffect((()=>{(async function(){if(!z||!D||_.current)return;let e=x(f.SOLANA_FUNDING_PLUGIN_ID);if(!e)return void k(new d.PrivyClientError("Unable to solana plugin"));_.current=!0,D?.testnet&&console.warn("Solana testnets are not supported for bridging");let r=B?1e6*parseFloat(O):o.parseEther(O),n=await m.getQuote({isTestnet:!!D.testnet,input:m.toGetQuoteInput({amount:r.toString(),user:z.address,recipient:H,destinationChainId:D.id,originChainId:p.RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID,originCurrency:B?p.RELAY_SOLANA_USDC_TOKEN_ID:p.RELAY_SOLANA_NATIVE_CURRENCY_ID,destinationCurrency:B?$:void 0})}).catch(console.error);if(!n)return void k(new d.PrivyClientError(`Unable to fetch quotes for bridging. Wallet ${y.formatSolanaWalletAddress(z.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let i=await e.createBridgeTransactionFromRelayQuote({quote:n,from:z.address,cluster:Y});if(i)try{P(!0);let{connection:e,transaction:s}=i,t=await e.simulateTransaction(s);if(t.value.err)return t.value.logs?.find((e=>/insufficient (lamports|funds)/gi.test(e)))?void k(new d.PrivyClientError(`Wallet ${y.formatSolanaWalletAddress(z?.address)} does not have enough funds. ${n.details.currencyIn.amountFormatted} ${G} are needed to complete the transaction.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE)):(console.error("Transaction failed:",t.value.err),void k(new d.PrivyClientError("Something went wrong",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE)));let a=await z.sendTransaction(s,e),c=await e.confirmTransaction(a);if(c.value.err)return console.error("Transaction failed:",c.value.err),void k(new d.PrivyClientError("Something went wrong",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE));E({eventName:g.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:a,address:z.address,chainType:"solana",clusterName:Y.name,token:"SOL",destinationAddress:H,destinationChainId:D.id,destinationChainType:"ethereum",destinationValue:o.formatUnits(BigInt(r),B?6:18),destinationToken:B?"USDC":"ETH"}}),F(!0)}catch(e){if(console.error(e),/user rejected the request/gi.test(e.message||""))return void k(new d.PrivyClientError("Transaction was rejected by the user",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE));k(new d.PrivyClientError("Something went wrong",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE))}else k(new d.PrivyClientError(`Unable to select bridge option from quotes. Wallet ${y.formatSolanaWalletAddress(z.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[]),i.useEffect((()=>{if(!L)return;let e=setTimeout(n,l.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[L]),i.useEffect((()=>{if(!U)return;let e={error:U,previousScreen:r.ModalScreen.FUNDING_TRANSFER_FROM_WALLET_SCREEN};N({funding:w?.funding,sendTransaction:w?.sendTransaction,errorModalData:e}),I(r.ModalScreen.ERROR_SCREEN,!1)}),[U]),L/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.default,{}),/*#__PURE__*/e.jsx(s.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(s.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(A.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(a.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${O} ${G} to your ${T.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(s.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(t.BlobbyFooter,{})]});if(R&&z){let r=z?h.toDisplayName(z.walletClientType,z.connectorType,z.walletClientType)||"wallet":null;/*#__PURE__*/return e.jsx(C.TransferOrBridgeLoadingScreen,{wallet:z,displayName:r,addressToFund:H,isBridging:R,isErc20Flow:!1,chainId:D.id,chainName:D.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0})}/*#__PURE__*/
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("../index.js"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),i=require("react"),o=require("viem"),s=require("../../components/Layouts.js"),t=require("../../components/ModalFooter.js"),a=require("../../components/ScreenHeader.js"),c=require("../../components/embedded-wallets/FundWalletMethodHeader.js"),u=require("../../components/primitives/NeutralSpinner/index.js"),l=require("../../constants.js"),d=require("../../errors.js"),j=require("../../hooks/internal-context.js"),q=require("../../hooks/modal-context.js"),g=require("../../lib/external-wallets/displayHelpers.js"),h=require("../../lib/funding/analytics.js"),m=require("../../lib/funding/reservoir.js"),p=require("../../lib/solana/index.js"),v=require("../../plugins/context/PrivyPluginContext.js"),f=require("../../plugins/solana-funding/id.js"),y=require("../../utils/index.js"),S=require("./TransferOrBridgeLoadingScreen.js"),C=require("../../hooks/solana/useSolanaWallets.js");function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("ofetch"),require("../../components/PrefetchedImage.js"),require("../../svg/backpack.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/okx-wallet.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/solflare.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("../../components/ui/wallet/NetworkIcon.js"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("../../components/ui/icons/Arbitum.js"),require("../../components/ui/icons/Avalanche.js"),require("../../components/ui/icons/Base.js"),require("../../components/ui/icons/Celo.js"),require("../../components/ui/icons/Linea.js"),require("../../components/ui/icons/Mainnnet.js"),require("../../components/ui/icons/Optimism.js"),require("../../components/ui/icons/Polygon.js"),require("../../components/ui/icons/Solana.js"),require("../../components/ui/icons/Zora.js"),require("../../hooks/useWallets.js");var A=/*#__PURE__*/E(n);exports.AwaitingSolToEvmBridgingScreen=function(){let{closePrivyModal:n,createAnalyticsEvent:E}=j.usePrivyInternal(),{navigate:I,setModalData:T,app:N,data:w}=q.usePrivyModal(),{wallets:b}=C.useSolanaWallets(),_=i.useRef(!1),x=v.usePlugins(),[P,R]=i.useState(!1),[L,F]=i.useState(!1),[U,k]=i.useState(null),[O,M]=i.useState(),[D,W]=i.useState();if(!w?.funding||"ethereum"!==w.funding.chainType)throw Error("Invalid funding data");let{amount:B,connectedWalletAddress:H,chain:$,cluster:G,isUSDC:Y}=w.funding,z=w.funding.address,Q=w.funding.erc20Address,V=w.funding.isUSDC?"USDC":$.nativeCurrency.symbol,X=G??{name:"mainnet-beta"},K=H?b.find((({address:e})=>e===H)):b[0];if(i.useEffect((()=>{(async function(){if(!K||!$||_.current)return;let e=x(f.SOLANA_FUNDING_PLUGIN_ID);if(!e)return void k(new d.PrivyClientError("Unable to solana plugin"));_.current=!0,$?.testnet&&console.warn("Solana testnets are not supported for bridging");let r=Y?1e6*parseFloat(B):o.parseEther(B),n=await m.getQuote({isTestnet:!!$.testnet,input:m.toGetQuoteInput({amount:r.toString(),user:K.address,recipient:z,destinationChainId:$.id,originChainId:p.RELAY_SOLANA_MAINNET_CLUSTER_CHAIN_ID,originCurrency:Y?p.RELAY_SOLANA_USDC_TOKEN_ID:p.RELAY_SOLANA_NATIVE_CURRENCY_ID,destinationCurrency:Y?Q:void 0})}).catch(console.error);if(!n)return void k(new d.PrivyClientError(`Unable to fetch quotes for bridging. Wallet ${y.formatSolanaWalletAddress(K.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE));let i=await e.createBridgeTransactionFromRelayQuote({quote:n,from:K.address,cluster:X});if(i)try{R(!0);let{connection:e,transaction:r}=i,o=await e.simulateTransaction(r);if(o.value.err)return o.value.logs?.find((e=>/insufficient (lamports|funds)/gi.test(e)))?void k(new d.PrivyClientError(`Wallet ${y.formatSolanaWalletAddress(K?.address)} does not have enough funds. ${n.details.currencyIn.amountFormatted} ${V} are needed to complete the transaction.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE)):(console.error("Transaction failed:",o.value.err),void k(new d.PrivyClientError("Something went wrong",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE)));let s=await K.sendTransaction(r,e),t=await e.confirmTransaction(s);if(t.value.err)return console.error("Transaction failed:",t.value.err),void k(new d.PrivyClientError("Something went wrong",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE));M(s),W("pending")}catch(e){if(console.error(e),/user rejected the request/gi.test(e.message||""))return void k(new d.PrivyClientError("Transaction was rejected by the user",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE));k(new d.PrivyClientError("Something went wrong",void 0,d.PrivyErrorCode.TRANSACTION_FAILURE))}else k(new d.PrivyClientError(`Unable to select bridge option from quotes. Wallet ${y.formatSolanaWalletAddress(K.address)} does not have enough funds.`,void 0,d.PrivyErrorCode.INSUFFICIENT_BALANCE))})().catch(console.error)}),[]),m.useBridgingStatusPolling({transactionHash:O,wallet:K,isTestnet:!1,bridgingStatus:D,setBridgingStatus:W,onSuccess({transactionHash:e,wallet:r}){R(!1),F(!0),E({eventName:h.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:r.address,chainType:"solana",clusterName:X.name,token:"SOL",destinationAddress:z,destinationChainId:$.id,destinationChainType:"ethereum",destinationValue:B,destinationToken:Y?"USDC":"ETH"}})},onFailure({error:e}){R(!1),k(e)}}),i.useEffect((()=>{if(!L)return;let e=setTimeout(n,l.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[L]),i.useEffect((()=>{if(!U)return;let e={error:U,previousScreen:r.ModalScreen.FUNDING_TRANSFER_FROM_WALLET_SCREEN};T({funding:w?.funding,sendTransaction:w?.sendTransaction,errorModalData:e}),I(r.ModalScreen.ERROR_SCREEN,!1)}),[U]),L/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.default,{}),/*#__PURE__*/e.jsx(s.RefactorSpacerTop,{}),/*#__PURE__*/e.jsxs(s.CenteredItemWithGap,{children:[/*#__PURE__*/e.jsx(A.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/e.jsx(a.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${B} ${V} to your ${N.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/e.jsx(s.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(t.BlobbyFooter,{})]});if(P&&K){let r=K?g.toDisplayName(K.walletClientType,K.connectorType,K.walletClientType)||"wallet":null;/*#__PURE__*/return e.jsx(S.TransferOrBridgeLoadingScreen,{wallet:K,displayName:r,addressToFund:z,isBridging:P,isErc20Flow:!1,chainId:$.id,chainName:$.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0})}/*#__PURE__*/
2
2
  return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.default,{}),/*#__PURE__*/e.jsx(u.NeutralSpinner,{}),/*#__PURE__*/e.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/e.jsx(t.BlobbyFooter,{})]})};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),o=require("@heroicons/react/24/outline/ClockIcon"),i=require("@heroicons/react/24/outline/ShieldCheckIcon"),s=require("react"),t=require("styled-components"),c=require("../../components/Button.js"),a=require("../../components/Loader.js"),l=require("../../components/ModalFooter.js"),u=require("../../components/ModalHeader.js"),d=require("../../hooks/internal-context.js"),h=require("../../hooks/modal-context.js"),j=require("../../hooks/privy-context.js"),m=require("../../hooks/useMfaEnrollment.js"),y=require("../../svg/face-id.js"),q=require("../../svg/fingerprint.js"),p=require("../ErrorScreen.js"),g=require("../LinkPasskeyScreen.js"),x=require("./StyledComponents.js");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("../../components/CircleBorder.js"),require("../../components/layout/StackedContainer.js"),require("../../embedded-wallets/errors.js"),require("../../embedded-wallets/types.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../svg/lock-closed.js"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/LockClosedIcon");var f=/*#__PURE__*/k(r),C=/*#__PURE__*/k(n),I=/*#__PURE__*/k(o),b=/*#__PURE__*/k(i);let w=({onReset:r,onClose:n,onClick:o,isCreating:i})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{backFn:r,onClose:n},"header"),/*#__PURE__*/e.jsx(x.AppLogoContainer,{children:/*#__PURE__*/e.jsxs(g.DoubleIconWrapper,{children:[/*#__PURE__*/e.jsx(y.FaceId,{}),/*#__PURE__*/e.jsx(q.FingerPrint,{})]})}),/*#__PURE__*/e.jsx(x.Title,{children:"Set up passkey verification"}),/*#__PURE__*/e.jsxs(x.List,{children:[/*#__PURE__*/e.jsxs(x.ListItem,{children:[/*#__PURE__*/e.jsx(x.ListItemIcon,{children:/*#__PURE__*/e.jsx(b.default,{})}),"Verify with Touch ID, Face ID, PIN, or hardware key"]}),/*#__PURE__*/e.jsxs(x.ListItem,{children:[/*#__PURE__*/e.jsx(x.ListItemIcon,{children:/*#__PURE__*/e.jsx(I.default,{})}),"Takes seconds to set up and use"]}),/*#__PURE__*/e.jsxs(x.ListItem,{children:[/*#__PURE__*/e.jsx(x.ListItemIcon,{children:/*#__PURE__*/e.jsx(f.default,{})}),"Use your passkey to verify transactions and login to your account"]})]}),/*#__PURE__*/e.jsx(c.PrimaryButton,{style:{marginTop:"2.25rem"},onClick:o,loading:i,children:"Add a new passkey"}),/*#__PURE__*/e.jsx(l.ModalFooter,{})]}),v=({onReset:r,onClose:n,onAddPasskey:o,onSubmitEnrollment:i,passkeys:t,isSubmitting:d,isCreating:h})=>{let[j,m]=s.useState(!1),p=j?t.length:t.length>3?2:3;/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{backFn:j?()=>m(!1):r,onClose:n},"header"),!j&&/*#__PURE__*/e.jsx(x.AppLogoContainer,{children:/*#__PURE__*/e.jsxs(g.DoubleIconWrapper,{children:[/*#__PURE__*/e.jsx(y.FaceId,{}),/*#__PURE__*/e.jsx(q.FingerPrint,{})]})}),/*#__PURE__*/e.jsx(x.Title,{children:"Enable your passkeys for verification"}),/*#__PURE__*/e.jsxs(x.List,{children:[t.slice(0,p).map((r=>/*#__PURE__*/e.jsxs(P,{children:[/*#__PURE__*/e.jsx(L,{children:A(r)}),/*#__PURE__*/e.jsxs(F,{children:["Last used: ",r.latestVerifiedAt?.toLocaleString()]})]},r.credentialId))),!j&&t.length>3&&/*#__PURE__*/e.jsx(E,{onClick:()=>m(!0),children:"View All"})]}),/*#__PURE__*/e.jsx(c.PrimaryButton,{style:{marginTop:"1.5rem"},onClick:i,loading:d,children:"Enable passkeys"}),t.length<5&&/*#__PURE__*/e.jsx(E,{style:{marginTop:"0.5rem"},onClick:o,disabled:h,children:h?/*#__PURE__*/e.jsx(a.Loader,{style:{height:"1rem",width:"1rem",borderWidth:2}}):"Add new passkey"}),/*#__PURE__*/e.jsx(l.ModalFooter,{})]})},S=({onClick:r,onClose:n})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{onClose:n},"header"),/*#__PURE__*/e.jsx(x.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(C.default,{})}),/*#__PURE__*/e.jsx(x.Title,{children:"Passkey verification added"}),/*#__PURE__*/e.jsx(x.SubTitle,{children:"From now on, you'll use the passkey whenever you use your Privy wallet."}),/*#__PURE__*/e.jsx(x.BottomSection,{children:/*#__PURE__*/e.jsx(c.PrimaryButton,{onClick:r,children:"Done"})}),/*#__PURE__*/e.jsx(l.ModalFooter,{})]}),P=/*#__PURE__*/t.styled.div.withConfig({displayName:"PasskeyItem",componentId:"sc-f71dd8ba-0"})(["&&{padding:0.75rem 1rem;text-align:left;border-radius:0.5rem;border:1px solid var(--privy-color-foreground-4);width:100%;}"]),L=/*#__PURE__*/t.styled.div.withConfig({displayName:"PasskeyItemTitle",componentId:"sc-f71dd8ba-1"})(["font-size:0.875rem;line-height:1.375rem;font-weight:500;color:var(--privy-color-foreground-1);"]),F=/*#__PURE__*/t.styled.div.withConfig({displayName:"PasskeyItemSubtitle",componentId:"sc-f71dd8ba-2"})(["font-size:0.75rem;font-weight:400;line-height:1.125rem;color:var(--privy-color-foreground-2);"]),A=e=>e.authenticatorName?e.createdWithBrowser?`${e.authenticatorName} on ${e.createdWithBrowser}`:e.authenticatorName:e.createdWithBrowser?e.createdWithOs?`${e.createdWithBrowser} on ${e.createdWithOs}`:`${e.createdWithBrowser}`:"Unknown device";const E=/*#__PURE__*/t.styled.button.withConfig({displayName:"StyledLink",componentId:"sc-f71dd8ba-3"})(["&&{width:100%;font-size:0.875rem;line-height:1rem;@media (min-width:440px){font-size:14px;}display:flex;gap:12px;justify-content:center;padding:0.75rem 1rem;background-color:var(--privy-color-background);transition:background-color 200ms ease;color:var(--privy-color-accent);:focus{outline:none;box-shadow:none;}}"]);exports.EnrollPasskey=({onComplete:r,onClose:n,onReset:o})=>{let{user:i}=j.usePrivyContext(),{data:t}=h.usePrivyModal(),{initLinkWithPasskey:c,linkWithPasskey:a}=d.usePrivyInternal(),{initEnrollmentWithPasskey:l,submitEnrollmentWithPasskey:u}=m.useMfaEnrollment(),[y,q]=s.useState(!1),[g,x]=s.useState(!1),[k,f]=s.useState(!1),[C,I]=s.useState(null),b=s.useMemo((()=>i?.linkedAccounts.filter((e=>"passkey"===e.type))??[]),[i]),P=()=>{t?.mfaEnrollmentFlow?.onSuccess(),r()},L=async e=>{q(!0);try{await l(),await u({credentialIds:e},{removeForLogin:t?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa}),f(!0)}catch(e){I(e)}finally{q(!1)}},F=async()=>{x(!0),I(null);try{await c();let e=await a(),r=e?.linkedAccounts.filter((e=>"passkey"===e.type)).map((e=>e.credentialId))??[];await L(r)}catch(e){I(e)}finally{x(!1)}};return 0===b.length||g?/*#__PURE__*/e.jsx(w,{onReset:o,onClose:n,onClick:F,isCreating:g}):k?/*#__PURE__*/e.jsx(S,{onClick:P,onClose:P}):C?/*#__PURE__*/e.jsx(p.ErrorScreenView,{error:C,backFn:()=>I(null),onClick:()=>I(null)}):/*#__PURE__*/e.jsx(v,{passkeys:b,isSubmitting:y,isCreating:g,onReset:o,onClose:n,onSubmitEnrollment:()=>L(b.map((e=>e.credentialId))),onAddPasskey:F})},exports.StyledLink=E;
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),o=require("@heroicons/react/24/outline/ClockIcon"),i=require("@heroicons/react/24/outline/ShieldCheckIcon"),s=require("react"),t=require("styled-components"),c=require("../../components/Button.js"),a=require("../../components/Loader.js"),l=require("../../components/ModalFooter.js"),u=require("../../components/ModalHeader.js"),d=require("../../hooks/internal-context.js"),h=require("../../hooks/modal-context.js"),j=require("../../hooks/privy-context.js"),m=require("../../hooks/useMfaEnrollment.js"),p=require("../../svg/face-id.js"),q=require("../../svg/fingerprint.js"),y=require("../ErrorScreen.js"),g=require("../LinkPasskeyScreen.js"),x=require("./StyledComponents.js");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("../../components/CircleBorder.js"),require("../../components/layout/StackedContainer.js"),require("../../embedded-wallets/errors.js"),require("../../embedded-wallets/types.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../lib/funding/reservoir.js"),require("../../svg/lock-closed.js"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/LockClosedIcon");var f=/*#__PURE__*/k(r),b=/*#__PURE__*/k(n),C=/*#__PURE__*/k(o),I=/*#__PURE__*/k(i);let w=({onReset:r,onClose:n,onClick:o,isCreating:i})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{backFn:r,onClose:n},"header"),/*#__PURE__*/e.jsx(x.AppLogoContainer,{children:/*#__PURE__*/e.jsxs(g.DoubleIconWrapper,{children:[/*#__PURE__*/e.jsx(p.FaceId,{}),/*#__PURE__*/e.jsx(q.FingerPrint,{})]})}),/*#__PURE__*/e.jsx(x.Title,{children:"Set up passkey verification"}),/*#__PURE__*/e.jsxs(x.List,{children:[/*#__PURE__*/e.jsxs(x.ListItem,{children:[/*#__PURE__*/e.jsx(x.ListItemIcon,{children:/*#__PURE__*/e.jsx(I.default,{})}),"Verify with Touch ID, Face ID, PIN, or hardware key"]}),/*#__PURE__*/e.jsxs(x.ListItem,{children:[/*#__PURE__*/e.jsx(x.ListItemIcon,{children:/*#__PURE__*/e.jsx(C.default,{})}),"Takes seconds to set up and use"]}),/*#__PURE__*/e.jsxs(x.ListItem,{children:[/*#__PURE__*/e.jsx(x.ListItemIcon,{children:/*#__PURE__*/e.jsx(f.default,{})}),"Use your passkey to verify transactions and login to your account"]})]}),/*#__PURE__*/e.jsx(c.PrimaryButton,{style:{marginTop:"2.25rem"},onClick:o,loading:i,children:"Add a new passkey"}),/*#__PURE__*/e.jsx(l.ModalFooter,{})]}),v=({onReset:r,onClose:n,onAddPasskey:o,onSubmitEnrollment:i,passkeys:t,isSubmitting:d,isCreating:h})=>{let[j,m]=s.useState(!1),y=j?t.length:t.length>3?2:3;/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{backFn:j?()=>m(!1):r,onClose:n},"header"),!j&&/*#__PURE__*/e.jsx(x.AppLogoContainer,{children:/*#__PURE__*/e.jsxs(g.DoubleIconWrapper,{children:[/*#__PURE__*/e.jsx(p.FaceId,{}),/*#__PURE__*/e.jsx(q.FingerPrint,{})]})}),/*#__PURE__*/e.jsx(x.Title,{children:"Enable your passkeys for verification"}),/*#__PURE__*/e.jsxs(x.List,{children:[t.slice(0,y).map((r=>/*#__PURE__*/e.jsxs(P,{children:[/*#__PURE__*/e.jsx(L,{children:A(r)}),/*#__PURE__*/e.jsxs(F,{children:["Last used: ",r.latestVerifiedAt?.toLocaleString()]})]},r.credentialId))),!j&&t.length>3&&/*#__PURE__*/e.jsx(E,{onClick:()=>m(!0),children:"View All"})]}),/*#__PURE__*/e.jsx(c.PrimaryButton,{style:{marginTop:"1.5rem"},onClick:i,loading:d,children:"Enable passkeys"}),t.length<5&&/*#__PURE__*/e.jsx(E,{style:{marginTop:"0.5rem"},onClick:o,disabled:h,children:h?/*#__PURE__*/e.jsx(a.Loader,{style:{height:"1rem",width:"1rem",borderWidth:2}}):"Add new passkey"}),/*#__PURE__*/e.jsx(l.ModalFooter,{})]})},S=({appName:r,onClick:n,onClose:o})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{onClose:o},"header"),/*#__PURE__*/e.jsx(x.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(b.default,{})}),/*#__PURE__*/e.jsx(x.Title,{children:"Passkey verification added"}),/*#__PURE__*/e.jsxs(x.SubTitle,{children:["From now on, you'll use the passkey whenever you use your ",r," wallet."]}),/*#__PURE__*/e.jsx(x.BottomSection,{children:/*#__PURE__*/e.jsx(c.PrimaryButton,{onClick:n,children:"Done"})}),/*#__PURE__*/e.jsx(l.ModalFooter,{})]}),P=/*#__PURE__*/t.styled.div.withConfig({displayName:"PasskeyItem",componentId:"sc-d5b2bf9c-0"})(["&&{padding:0.75rem 1rem;text-align:left;border-radius:0.5rem;border:1px solid var(--privy-color-foreground-4);width:100%;}"]),L=/*#__PURE__*/t.styled.div.withConfig({displayName:"PasskeyItemTitle",componentId:"sc-d5b2bf9c-1"})(["font-size:0.875rem;line-height:1.375rem;font-weight:500;color:var(--privy-color-foreground-1);"]),F=/*#__PURE__*/t.styled.div.withConfig({displayName:"PasskeyItemSubtitle",componentId:"sc-d5b2bf9c-2"})(["font-size:0.75rem;font-weight:400;line-height:1.125rem;color:var(--privy-color-foreground-2);"]),A=e=>e.authenticatorName?e.createdWithBrowser?`${e.authenticatorName} on ${e.createdWithBrowser}`:e.authenticatorName:e.createdWithBrowser?e.createdWithOs?`${e.createdWithBrowser} on ${e.createdWithOs}`:`${e.createdWithBrowser}`:"Unknown device";const E=/*#__PURE__*/t.styled.button.withConfig({displayName:"StyledLink",componentId:"sc-d5b2bf9c-3"})(["&&{width:100%;font-size:0.875rem;line-height:1rem;@media (min-width:440px){font-size:14px;}display:flex;gap:12px;justify-content:center;padding:0.75rem 1rem;background-color:var(--privy-color-background);transition:background-color 200ms ease;color:var(--privy-color-accent);:focus{outline:none;box-shadow:none;}}"]);exports.EnrollPasskey=({appName:r,onComplete:n,onClose:o,onReset:i})=>{let{user:t}=j.usePrivyContext(),{data:c}=h.usePrivyModal(),{initLinkWithPasskey:a,linkWithPasskey:l}=d.usePrivyInternal(),{initEnrollmentWithPasskey:u,submitEnrollmentWithPasskey:p}=m.useMfaEnrollment(),[q,g]=s.useState(!1),[x,k]=s.useState(!1),[f,b]=s.useState(!1),[C,I]=s.useState(null),P=s.useMemo((()=>t?.linkedAccounts.filter((e=>"passkey"===e.type))??[]),[t]),L=()=>{c?.mfaEnrollmentFlow?.onSuccess(),n()},F=async e=>{g(!0);try{await u(),await p({credentialIds:e},{removeForLogin:c?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa}),b(!0)}catch(e){I(e)}finally{g(!1)}},A=async()=>{k(!0),I(null);try{await a();let e=await l(),r=e?.linkedAccounts.filter((e=>"passkey"===e.type)).map((e=>e.credentialId))??[];await F(r)}catch(e){I(e)}finally{k(!1)}};return 0===P.length||x?/*#__PURE__*/e.jsx(w,{onReset:i,onClose:o,onClick:A,isCreating:x}):f?/*#__PURE__*/e.jsx(S,{appName:r,onClick:L,onClose:L}):C?/*#__PURE__*/e.jsx(y.ErrorScreenView,{error:C,backFn:()=>I(null),onClick:()=>I(null)}):/*#__PURE__*/e.jsx(v,{passkeys:P,isSubmitting:q,isCreating:x,onReset:i,onClose:o,onSubmitEnrollment:()=>F(P.map((e=>e.credentialId))),onAddPasskey:A})},exports.StyledLink=E;
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),o=require("@heroicons/react/24/outline/PhoneIcon"),n=require("react"),i=require("@privy-io/js-sdk-core"),s=require("../../components/Button.js"),t=require("../../components/ConnectPhoneForm.js"),c=require("../../components/ModalFooter.js"),a=require("../../components/ModalHeader.js"),u=require("../../components/PinInput.js"),l=require("../../embedded-wallets/errors.js"),h=require("../../hooks/modal-context.js"),j=require("../../hooks/useMfaEnrollment.js"),d=require("../ErrorScreen.js"),m=require("./StyledComponents.js");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../components/Loader.js"),require("../../recent-login/context.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../hooks/events-context.js"),require("../../storage.js"),require("../../components/PhoneCountryDropdown.js"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("../../hooks/index.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/internal-context.js"),require("react-device-detect"),require("../../embedded-wallets/types.js"),require("../../hooks/privy-context.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("../../components/CircleBorder.js"),require("../../components/layout/StackedContainer.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../svg/lock-closed.js");var p=/*#__PURE__*/q(r),x=/*#__PURE__*/q(o);exports.EnrollSms=({onComplete:r,onReset:o,onClose:q})=>{let[f,y]=n.useState(""),[g,b]=n.useState(!1),[v,S]=n.useState(null),[C,k]=n.useState("enroll"),{initEnrollmentWithSms:w,submitEnrollmentWithSms:M}=j.useMfaEnrollment(),{app:F,data:I}=h.usePrivyModal();function E(){I?.mfaEnrollmentFlow?.onSuccess(),r()}return v?/*#__PURE__*/e.jsx(d.ErrorScreenView,{error:v,backFn:()=>S(null),onClick:()=>S(null)}):"enroll"===C?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:o,onClose:q},"header"),/*#__PURE__*/e.jsx(m.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(x.default,{})}),/*#__PURE__*/e.jsx(m.Title,{children:"Set up SMS verification"}),/*#__PURE__*/e.jsx(m.SubTitle,{children:"We'll text a verification code to this mobile device whenever you use your Privy wallet."}),/*#__PURE__*/e.jsxs(m.Container,{children:[/*#__PURE__*/e.jsx(t.ConnectPhoneNumberForm,{onSubmit:async function({qualifiedPhoneNumber:e}){try{await w({phoneNumber:e}),y(e),k("verify")}catch(e){S(e)}},hideRecent:!0}),/*#__PURE__*/e.jsxs(m.TermsText,{children:["By providing your mobile number, you agree to receive text messages from ",F?.name,". Some carrier charges may apply"]})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):g?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{onClose:E},"header"),/*#__PURE__*/e.jsx(m.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(p.default,{})}),/*#__PURE__*/e.jsx(m.Title,{children:"SMS verification added"}),/*#__PURE__*/e.jsx(m.SubTitle,{children:"From now on, you'll enter the verification code sent to your mobile device whenever you use your Privy wallet."}),/*#__PURE__*/e.jsx(m.BottomSection,{children:/*#__PURE__*/e.jsx(s.PrimaryButton,{onClick:E,children:"Done"})}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:function(){"verify"===C?k("enroll"):o()},onClose:q},"header"),/*#__PURE__*/e.jsx(m.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(x.default,{})}),/*#__PURE__*/e.jsx(m.Title,{children:"Enter enrollment code"}),/*#__PURE__*/e.jsxs(m.Container,{children:[/*#__PURE__*/e.jsx(u.NumericPinInput,{onChange:async function(e){try{if(!e)return;await M({phoneNumber:f,mfaCode:e}),b(!0)}catch(e){if(l.errorIndicatesMfaRateLimit(e))throw Error("You have exceeded the maximum number of attempts. Please close this window and try again in 10 seconds.");if(l.errorIndicatesMfaVerificationFailed(e))throw Error("The code you entered is not valid");if(l.errorIndicatesMfaTimeout(e))throw Error("You have exceeded the time limit for code entry. Please try again in 30 seconds.");throw l.errorIndicatesMfaCanceled(e)?Error("Verification canceled"):Error("Unknown error")}}}),/*#__PURE__*/e.jsxs(m.SubTitle,{children:["To continue, enter the 6-digit code sent to ",/*#__PURE__*/e.jsx("strong",{children:i.lastFourDigits(f)})]})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),o=require("@heroicons/react/24/outline/PhoneIcon"),n=require("react"),i=require("@privy-io/js-sdk-core"),s=require("../../components/Button.js"),t=require("../../components/ConnectPhoneForm.js"),c=require("../../components/ModalFooter.js"),a=require("../../components/ModalHeader.js"),u=require("../../components/PinInput.js"),l=require("../../embedded-wallets/errors.js"),j=require("../../hooks/modal-context.js"),h=require("../../hooks/useMfaEnrollment.js"),d=require("../ErrorScreen.js"),m=require("./StyledComponents.js");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../components/Loader.js"),require("../../recent-login/context.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../hooks/events-context.js"),require("../../storage.js"),require("../../components/PhoneCountryDropdown.js"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("../../hooks/index.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/internal-context.js"),require("react-device-detect"),require("../../embedded-wallets/types.js"),require("../../hooks/privy-context.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("../../components/CircleBorder.js"),require("../../components/layout/StackedContainer.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../lib/funding/reservoir.js"),require("../../svg/lock-closed.js");var p=/*#__PURE__*/q(r),x=/*#__PURE__*/q(o);exports.EnrollSms=({appName:r,onComplete:o,onReset:q,onClose:f})=>{let[y,g]=n.useState(""),[b,v]=n.useState(!1),[S,C]=n.useState(null),[k,w]=n.useState("enroll"),{initEnrollmentWithSms:M,submitEnrollmentWithSms:F}=h.useMfaEnrollment(),{app:I,data:E}=j.usePrivyModal();function T(){E?.mfaEnrollmentFlow?.onSuccess(),o()}return S?/*#__PURE__*/e.jsx(d.ErrorScreenView,{error:S,backFn:()=>C(null),onClick:()=>C(null)}):"enroll"===k?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:q,onClose:f},"header"),/*#__PURE__*/e.jsx(m.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(x.default,{})}),/*#__PURE__*/e.jsx(m.Title,{children:"Set up SMS verification"}),/*#__PURE__*/e.jsxs(m.SubTitle,{children:["We'll text a verification code to this mobile device whenever you use your ",r," ","wallet."]}),/*#__PURE__*/e.jsxs(m.Container,{children:[/*#__PURE__*/e.jsx(t.ConnectPhoneNumberForm,{onSubmit:async function({qualifiedPhoneNumber:e}){try{await M({phoneNumber:e}),g(e),w("verify")}catch(e){C(e)}},hideRecent:!0}),/*#__PURE__*/e.jsxs(m.TermsText,{children:["By providing your mobile number, you agree to receive text messages from ",I?.name,". Some carrier charges may apply"]})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):b?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{onClose:T},"header"),/*#__PURE__*/e.jsx(m.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(p.default,{})}),/*#__PURE__*/e.jsx(m.Title,{children:"SMS verification added"}),/*#__PURE__*/e.jsxs(m.SubTitle,{children:["From now on, you'll enter the verification code sent to your mobile device whenever you use your ",r," wallet."]}),/*#__PURE__*/e.jsx(m.BottomSection,{children:/*#__PURE__*/e.jsx(s.PrimaryButton,{onClick:T,children:"Done"})}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:function(){"verify"===k?w("enroll"):q()},onClose:f},"header"),/*#__PURE__*/e.jsx(m.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(x.default,{})}),/*#__PURE__*/e.jsx(m.Title,{children:"Enter enrollment code"}),/*#__PURE__*/e.jsxs(m.Container,{children:[/*#__PURE__*/e.jsx(u.NumericPinInput,{onChange:async function(e){try{if(!e)return;await F({phoneNumber:y,mfaCode:e}),v(!0)}catch(e){if(l.errorIndicatesMfaRateLimit(e))throw Error("You have exceeded the maximum number of attempts. Please close this window and try again in 10 seconds.");if(l.errorIndicatesMfaVerificationFailed(e))throw Error("The code you entered is not valid");if(l.errorIndicatesMfaTimeout(e))throw Error("You have exceeded the time limit for code entry. Please try again in 30 seconds.");throw l.errorIndicatesMfaCanceled(e)?Error("Verification canceled"):Error("Unknown error")}}}),/*#__PURE__*/e.jsxs(m.SubTitle,{children:["To continue, enter the 6-digit code sent to ",/*#__PURE__*/e.jsx("strong",{children:i.lastFourDigits(y)})]})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]})};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),o=require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),n=require("react"),i=require("../../components/Button.js"),s=require("../../components/CopyToClipboard.js"),t=require("../../components/Layouts.js"),c=require("../../components/ModalFooter.js"),a=require("../../components/ModalHeader.js"),u=require("../../components/PinInput.js"),l=require("../../embedded-wallets/errors.js"),d=require("../../hooks/modal-context.js"),h=require("../../hooks/useMfaEnrollment.js"),j=require("../../svg/qr-codes.js"),q=require("./StyledComponents.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../components/Loader.js"),require("../../svg/checkmark.js"),require("../../svg/copy.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/internal-context.js"),require("../../hooks/index.js"),require("react-device-detect"),require("../../embedded-wallets/types.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("../../hooks/privy-context.js"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("../../components/QrCode.js"),require("qrcode"),require("../../svg/black-rounded-square.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../errors.js"),require("ofetch"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../svg/coinbase-wallet.js");var p=/*#__PURE__*/m(r),f=/*#__PURE__*/m(o);exports.EnrollTotp=({onComplete:r,onClose:o,onReset:m,totpInfo:x})=>{let[y,g]=n.useState("enroll"),[C,b]=n.useState(!1),{submitEnrollmentWithTotp:v}=h.useMfaEnrollment(),{data:k}=d.usePrivyModal();function w(){k?.mfaEnrollmentFlow?.onSuccess(),r()}return"enroll"===y?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:m,onClose:o},"header"),/*#__PURE__*/e.jsx(q.Title,{children:"Scan QR code"}),/*#__PURE__*/e.jsx(q.SubTitle,{children:"Open your authenticator app and scan the QR code to continue."}),/*#__PURE__*/e.jsx(t.CenteredItemWithPadding,{children:/*#__PURE__*/e.jsx(j.AddTotpProviderQr,{authUrl:x.authUrl,size:200})}),/*#__PURE__*/e.jsxs(q.BottomSection,{children:[/*#__PURE__*/e.jsx(t.CenteredItem,{children:/*#__PURE__*/e.jsx(s.CopytoClipboardButton,{itemName:"secret",text:x.secret})}),/*#__PURE__*/e.jsx(i.PrimaryButton,{onClick:function(){g("verify")},children:"Continue"})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):C?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{onClose:w},"header"),/*#__PURE__*/e.jsx(q.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(p.default,{})}),/*#__PURE__*/e.jsx(q.Title,{children:"Authenticator app verification added"}),/*#__PURE__*/e.jsx(q.SubTitle,{children:"From now on, you'll enter the verification code generated by your authenticator app whenever you use your Privy wallet."}),/*#__PURE__*/e.jsx(q.BottomSection,{children:/*#__PURE__*/e.jsx(i.PrimaryButton,{onClick:w,children:"Done"})}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:function(){"verify"===y?g("enroll"):m()},onClose:o},"header"),/*#__PURE__*/e.jsx(q.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(f.default,{})}),/*#__PURE__*/e.jsx(q.Title,{children:"Enter enrollment code"}),/*#__PURE__*/e.jsx(q.Container,{children:/*#__PURE__*/e.jsx(u.NumericPinInput,{onChange:async function(e){try{if(!e)return;await v({mfaCode:e}),b(!0)}catch(e){if(l.errorIndicatesMfaRateLimit(e))throw Error("You have exceeded the maximum number of attempts. Please close this window and try again in 10 seconds.");if(l.errorIndicatesMfaVerificationFailed(e))throw Error("The code you entered is not valid");if(l.errorIndicatesMfaTimeout(e))throw Error("You have exceeded the time limit for code entry. Please try again in 30 seconds.");throw l.errorIndicatesMfaCanceled(e)?Error("Verification canceled"):Error("Unknown error")}}})}),/*#__PURE__*/e.jsxs(q.SubTitle,{children:["To continue, enter the 6-digit code generated from your ",/*#__PURE__*/e.jsx("strong",{children:"authenticator app"})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/CheckCircleIcon"),o=require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),n=require("react"),i=require("../../components/Button.js"),s=require("../../components/CopyToClipboard.js"),t=require("../../components/Layouts.js"),c=require("../../components/ModalFooter.js"),a=require("../../components/ModalHeader.js"),u=require("../../components/PinInput.js"),l=require("../../embedded-wallets/errors.js"),d=require("../../hooks/modal-context.js"),h=require("../../hooks/useMfaEnrollment.js"),j=require("../../svg/qr-codes.js"),q=require("./StyledComponents.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../components/Loader.js"),require("../../svg/checkmark.js"),require("../../svg/copy.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/internal-context.js"),require("../../hooks/index.js"),require("react-device-detect"),require("../../embedded-wallets/types.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("../../hooks/privy-context.js"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("../../components/QrCode.js"),require("qrcode"),require("../../svg/black-rounded-square.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../errors.js"),require("ofetch"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../svg/coinbase-wallet.js");var p=/*#__PURE__*/m(r),f=/*#__PURE__*/m(o);exports.EnrollTotp=({onComplete:r,onClose:o,onReset:m,totpInfo:x})=>{let[y,g]=n.useState("enroll"),[C,b]=n.useState(!1),{submitEnrollmentWithTotp:v}=h.useMfaEnrollment(),{data:k}=d.usePrivyModal();function w(){k?.mfaEnrollmentFlow?.onSuccess(),r()}return"enroll"===y?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:m,onClose:o},"header"),/*#__PURE__*/e.jsx(q.Title,{children:"Scan QR code"}),/*#__PURE__*/e.jsx(q.SubTitle,{children:"Open your authenticator app and scan the QR code to continue."}),/*#__PURE__*/e.jsx(t.CenteredItemWithPadding,{children:/*#__PURE__*/e.jsx(j.AddTotpProviderQr,{authUrl:x.authUrl,size:200})}),/*#__PURE__*/e.jsxs(q.BottomSection,{children:[/*#__PURE__*/e.jsx(t.CenteredItem,{children:/*#__PURE__*/e.jsx(s.CopytoClipboardButton,{itemName:"setup key",text:x.secret})}),/*#__PURE__*/e.jsx(i.PrimaryButton,{onClick:function(){g("verify")},children:"Continue"})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):C?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{onClose:w},"header"),/*#__PURE__*/e.jsx(q.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(p.default,{})}),/*#__PURE__*/e.jsx(q.Title,{children:"Authenticator app verification added"}),/*#__PURE__*/e.jsxs(q.SubTitle,{children:["From now on, you'll enter the verification code generated by your authenticator app whenever you use your ",x.appName," wallet."]}),/*#__PURE__*/e.jsx(q.BottomSection,{children:/*#__PURE__*/e.jsx(i.PrimaryButton,{onClick:w,children:"Done"})}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(a.ModalHeader,{backFn:function(){"verify"===y?g("enroll"):m()},onClose:o},"header"),/*#__PURE__*/e.jsx(q.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(f.default,{})}),/*#__PURE__*/e.jsx(q.Title,{children:"Enter enrollment code"}),/*#__PURE__*/e.jsx(q.Container,{children:/*#__PURE__*/e.jsx(u.NumericPinInput,{onChange:async function(e){try{if(!e)return;await v({mfaCode:e}),b(!0)}catch(e){if(l.errorIndicatesMfaRateLimit(e))throw Error("You have exceeded the maximum number of attempts. Please close this window and try again in 10 seconds.");if(l.errorIndicatesMfaVerificationFailed(e))throw Error("The code you entered is not valid");if(l.errorIndicatesMfaTimeout(e))throw Error("You have exceeded the time limit for code entry. Please try again in 30 seconds.");throw l.errorIndicatesMfaCanceled(e)?Error("Verification canceled"):Error("Unknown error")}}})}),/*#__PURE__*/e.jsxs(q.SubTitle,{children:["To continue, enter the 6-digit code generated from your ",/*#__PURE__*/e.jsx("strong",{children:"authenticator app"})]}),/*#__PURE__*/e.jsx(c.ModalFooter,{})]})};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),o=require("@heroicons/react/24/outline/ShieldCheckIcon"),n=require("@heroicons/react/24/solid/CheckBadgeIcon"),s=require("@heroicons/react/24/solid/IdentificationIcon"),i=require("react"),t=require("../../components/Button.js"),c=require("../../components/Loader.js"),a=require("../../components/ModalFooter.js"),l=require("../../components/ModalHeader.js"),u=require("../../hooks/internal-context.js"),h=require("../../hooks/modal-context.js"),d=require("../../hooks/privy-context.js"),j=require("../../hooks/useMfa.js"),m=require("../../hooks/useMfaEnrollment.js"),q=require("../../svg/mfa-shield.js"),p=require("./EnrollLandingScreen.js"),y=require("./EnrollPasskey.js"),f=require("./EnrollSms.js"),x=require("./EnrollTotp.js"),g=require("./StyledComponents.js");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../LandingScreen/styles.js"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("../../svg/face-id.js"),require("../../svg/fingerprint.js"),require("../ErrorScreen.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("../../components/CircleBorder.js"),require("../../components/layout/StackedContainer.js"),require("../../embedded-wallets/errors.js"),require("../../embedded-wallets/types.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../svg/lock-closed.js"),require("../LinkPasskeyScreen.js"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("@privy-io/js-sdk-core"),require("../../components/ConnectPhoneForm.js"),require("../../recent-login/context.js"),require("../../hooks/events-context.js"),require("../../storage.js"),require("../../components/PhoneCountryDropdown.js"),require("../../components/PinInput.js"),require("react-device-detect"),require("../../components/CopyToClipboard.js"),require("../../svg/checkmark.js"),require("../../svg/copy.js"),require("../../components/Layouts.js"),require("../../svg/qr-codes.js"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("../../components/QrCode.js"),require("qrcode"),require("../../svg/black-rounded-square.js"),require("../../svg/coinbase-wallet.js");var M=/*#__PURE__*/k(r),v=/*#__PURE__*/k(o),C=/*#__PURE__*/k(n),S=/*#__PURE__*/k(s);exports.MfaEnrollmentFlowScreen=()=>{let{user:r,enrollInMfa:o}=d.usePrivyContext(),[n,s]=i.useState(null),{unenrollWithSms:k,unenrollWithTotp:I,unenrollWithPasskey:b}=m.useMfaEnrollment(),{app:w,ready:F,data:E,onUserCloseViaDialogOrKeybindRef:P}=h.usePrivyModal(),{closePrivyModal:T}=u.usePrivyInternal(),{promptMfa:A}=j.useMfa(),{initEnrollmentWithTotp:B}=m.useMfaEnrollment(),[L,R]=i.useState(!1),[W,H]=i.useState(null),[U,O]=i.useState(null),z=()=>{T({shouldCallAuthOnSuccess:!0}),o(!1),setTimeout((()=>{s(null),H(null)}),500)},{initEnrollmentWithPasskey:D,submitEnrollmentWithPasskey:Q}=m.useMfaEnrollment(),[Y,K]=i.useState(!1),[N,V]=i.useState(null);P.current=z;let X=r?.mfaMethods.includes("sms"),G=!!r?.phone,J=r?.mfaMethods.includes("totp"),Z=r?.mfaMethods.includes("passkey"),$=X||J||Z,_=r?.linkedAccounts.filter((e=>"passkey"===e.type)).map((e=>e.credentialId))??[];function ee(){s(null),H(null)}if(i.useEffect((()=>{$&&R(!0)}),[$]),!F||!r||!w/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:z},"header"),/*#__PURE__*/e.jsx(g.AppLogoContainer,{children:/*#__PURE__*/e.jsx(q.MfaShieldIcon,{})}),/*#__PURE__*/e.jsx(g.Container,{children:/*#__PURE__*/e.jsx(c.Loader,{})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});if("sms"===n)/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{backFn:ee,onClose:z},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(M.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Remove SMS verification?"}),/*#__PURE__*/e.jsxs(g.SubTitle,{children:["MFA adds an extra layer of security to your ",w?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{warn:!0,onClick:async function(){s(null);try{await k()}catch(e){s(null)}},children:"Remove SMS for MFA"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});if("totp"===n)/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{backFn:ee,onClose:z},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(M.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Remove Authenticator App verification?"}),/*#__PURE__*/e.jsxs(g.SubTitle,{children:["MFA adds an extra layer of security to your ",w?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{warn:!0,onClick:async function(){s(null);try{await I()}catch(e){s(null)}},children:"Remove Authenticator App for MFA"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});if("passkey"===n){let r=E?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa??!0;/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{backFn:ee,onClose:z},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(M.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Are you sure you want to remove this passkey?"}),/*#__PURE__*/e.jsx(g.SubTitle,{children:r?"Removing your passkey will remove as both a verification method and a login method.":"Removing your passkey will remove as a verification method."}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{warn:!0,onClick:async function(){s(null);try{await b({removeForLogin:E?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa})}catch(e){s(null)}},children:"Yes, remove"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]})}if(0===E.mfaEnrollmentFlow.mfaMethods.length&&!$)/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:z},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(v.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Add more security"}),/*#__PURE__*/e.jsxs(g.SubTitle,{children:[w?.name," does not have any verification methods enabled."]}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{onClick:z,children:"Close"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});let re=!$&&!L;return re?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:z},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(v.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Transaction Protection"}),/*#__PURE__*/e.jsx(g.SubTitle,{children:"Set up transaction protection to add an extra layer of security to your account"}),/*#__PURE__*/e.jsxs(g.List,{children:[/*#__PURE__*/e.jsxs(g.ListItem,{children:[/*#__PURE__*/e.jsx(g.ListItemIcon,{children:/*#__PURE__*/e.jsx(C.default,{})}),"Enable 2-Step verification for your ",w?.name," wallet."]}),/*#__PURE__*/e.jsxs(g.ListItem,{children:[/*#__PURE__*/e.jsx(g.ListItemIcon,{children:/*#__PURE__*/e.jsx(S.default,{})}),"You'll be prompted to authenticate to complete transactions."]})]}),/*#__PURE__*/e.jsxs(g.BottomSection,{children:[/*#__PURE__*/e.jsx(t.PrimaryButton,{onClick:()=>R(!0),children:"Continue"}),/*#__PURE__*/e.jsx(t.SecondaryButton,{onClick:z,children:"Not now"})]}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]}):"sms"===W?/*#__PURE__*/e.jsx(f.EnrollSms,{onComplete:z,onReset:ee,onClose:z}):"totp"===W&&U?/*#__PURE__*/e.jsx(x.EnrollTotp,{onComplete:z,onClose:z,onReset:ee,totpInfo:U}):"passkey"===W?/*#__PURE__*/e.jsx(y.EnrollPasskey,{onComplete:z,onReset:ee,onClose:z}):/*#__PURE__*/e.jsx(p.EnrollLandingScreen,{showIntro:re,userMfaMethods:r.mfaMethods,appMfaMethods:w.mfa.methods,userHasAuthSms:G,onBackToIntro:function(){R(!1)},handleSelectMethod:async function(e){return await A().catch(V),"totp"===e?(H(e),O(null),void B().then((e=>{O(e)})).catch((()=>{O(null),ee()}))):"passkey"===e&&1===_.length?await async function(){K(!0);try{await D(),await Q({credentialIds:_},{removeForLogin:E?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa})}catch(e){V(e)}finally{K(!1)}}():void H(e)},isTotpLoading:"totp"===W&&!U,isPasskeyLoading:Y,error:N,onClose:z,setRemovingMfaMethod:async e=>{await A().catch(V),s(e)}})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),o=require("@heroicons/react/24/outline/ShieldCheckIcon"),n=require("@heroicons/react/24/solid/CheckBadgeIcon"),s=require("@heroicons/react/24/solid/IdentificationIcon"),i=require("react"),t=require("../../components/Button.js"),c=require("../../components/Loader.js"),a=require("../../components/ModalFooter.js"),l=require("../../components/ModalHeader.js"),u=require("../../hooks/internal-context.js"),d=require("../../hooks/modal-context.js"),h=require("../../hooks/privy-context.js"),j=require("../../hooks/useMfa.js"),m=require("../../hooks/useMfaEnrollment.js"),q=require("../../svg/mfa-shield.js"),p=require("./EnrollLandingScreen.js"),y=require("./EnrollPasskey.js"),f=require("./EnrollSms.js"),x=require("./EnrollTotp.js"),g=require("./StyledComponents.js");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../LandingScreen/styles.js"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("../../svg/face-id.js"),require("../../svg/fingerprint.js"),require("../ErrorScreen.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("../../components/CircleBorder.js"),require("../../components/layout/StackedContainer.js"),require("../../embedded-wallets/errors.js"),require("../../embedded-wallets/types.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../lib/funding/reservoir.js"),require("../../svg/lock-closed.js"),require("../LinkPasskeyScreen.js"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("@privy-io/js-sdk-core"),require("../../components/ConnectPhoneForm.js"),require("../../recent-login/context.js"),require("../../hooks/events-context.js"),require("../../storage.js"),require("../../components/PhoneCountryDropdown.js"),require("../../components/PinInput.js"),require("react-device-detect"),require("../../components/CopyToClipboard.js"),require("../../svg/checkmark.js"),require("../../svg/copy.js"),require("../../components/Layouts.js"),require("../../svg/qr-codes.js"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("../../components/QrCode.js"),require("qrcode"),require("../../svg/black-rounded-square.js"),require("../../svg/coinbase-wallet.js");var v=/*#__PURE__*/k(r),M=/*#__PURE__*/k(o),C=/*#__PURE__*/k(n),S=/*#__PURE__*/k(s);exports.MfaEnrollmentFlowScreen=()=>{let{user:r,enrollInMfa:o}=h.usePrivyContext(),[n,s]=i.useState(null),{unenrollWithSms:k,unenrollWithTotp:I,unenrollWithPasskey:b}=m.useMfaEnrollment(),{app:w,ready:F,data:P,onUserCloseViaDialogOrKeybindRef:E}=d.usePrivyModal(),{closePrivyModal:T}=u.usePrivyInternal(),{promptMfa:A}=j.useMfa(),{initEnrollmentWithTotp:B}=m.useMfaEnrollment(),[L,R]=i.useState(!1),[W,H]=i.useState(null),[U,O]=i.useState(null),N=()=>{T({shouldCallAuthOnSuccess:!0}),o(!1),setTimeout((()=>{s(null),H(null)}),500)},{initEnrollmentWithPasskey:z,submitEnrollmentWithPasskey:D}=m.useMfaEnrollment(),[Q,Y]=i.useState(!1),[K,V]=i.useState(null);E.current=N;let X=r?.mfaMethods.includes("sms"),G=!!r?.phone,J=r?.mfaMethods.includes("totp"),Z=r?.mfaMethods.includes("passkey"),$=X||J||Z,_=r?.linkedAccounts.filter((e=>"passkey"===e.type)).map((e=>e.credentialId))??[];function ee(){s(null),H(null)}if(i.useEffect((()=>{$&&R(!0)}),[$]),!F||!r||!w/*#__PURE__*/)return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:N},"header"),/*#__PURE__*/e.jsx(g.AppLogoContainer,{children:/*#__PURE__*/e.jsx(q.MfaShieldIcon,{})}),/*#__PURE__*/e.jsx(g.Container,{children:/*#__PURE__*/e.jsx(c.Loader,{})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});if("sms"===n)/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{backFn:ee,onClose:N},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(v.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Remove SMS verification?"}),/*#__PURE__*/e.jsxs(g.SubTitle,{children:["MFA adds an extra layer of security to your ",w?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{warn:!0,onClick:async function(){s(null);try{await k()}catch(e){s(null)}},children:"Remove SMS for MFA"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});if("totp"===n)/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{backFn:ee,onClose:N},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(v.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Remove Authenticator App verification?"}),/*#__PURE__*/e.jsxs(g.SubTitle,{children:["MFA adds an extra layer of security to your ",w?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{warn:!0,onClick:async function(){s(null);try{await I()}catch(e){s(null)}},children:"Remove Authenticator App for MFA"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});if("passkey"===n){let r=P?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa??!0;/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{backFn:ee,onClose:N},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(v.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Are you sure you want to remove this passkey?"}),/*#__PURE__*/e.jsx(g.SubTitle,{children:r?"Removing your passkey will remove as both a verification method and a login method.":"Removing your passkey will remove as a verification method."}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{warn:!0,onClick:async function(){s(null);try{await b({removeForLogin:P?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa})}catch(e){s(null)}},children:"Yes, remove"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]})}if(0===P.mfaEnrollmentFlow.mfaMethods.length&&!$)/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:N},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(M.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Add more security"}),/*#__PURE__*/e.jsxs(g.SubTitle,{children:[w?.name," does not have any verification methods enabled."]}),/*#__PURE__*/e.jsx(g.BottomSection,{children:/*#__PURE__*/e.jsx(t.PrimaryButton,{onClick:N,children:"Close"})}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]});let re=!$&&!L;return re?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:N},"header"),/*#__PURE__*/e.jsx(g.IconWrapper,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/e.jsx(M.default,{})}),/*#__PURE__*/e.jsx(g.Title,{children:"Transaction Protection"}),/*#__PURE__*/e.jsx(g.SubTitle,{children:"Set up transaction protection to add an extra layer of security to your account"}),/*#__PURE__*/e.jsxs(g.List,{children:[/*#__PURE__*/e.jsxs(g.ListItem,{children:[/*#__PURE__*/e.jsx(g.ListItemIcon,{children:/*#__PURE__*/e.jsx(C.default,{})}),"Enable 2-Step verification for your ",w?.name," wallet."]}),/*#__PURE__*/e.jsxs(g.ListItem,{children:[/*#__PURE__*/e.jsx(g.ListItemIcon,{children:/*#__PURE__*/e.jsx(S.default,{})}),"You'll be prompted to authenticate to complete transactions."]})]}),/*#__PURE__*/e.jsxs(g.BottomSection,{children:[/*#__PURE__*/e.jsx(t.PrimaryButton,{onClick:()=>R(!0),children:"Continue"}),/*#__PURE__*/e.jsx(t.SecondaryButton,{onClick:N,children:"Not now"})]}),/*#__PURE__*/e.jsx(a.ModalFooter,{})]}):"sms"===W?/*#__PURE__*/e.jsx(f.EnrollSms,{appName:w?.name||"Privy",onComplete:N,onReset:ee,onClose:N}):"totp"===W&&U?/*#__PURE__*/e.jsx(x.EnrollTotp,{onComplete:N,onClose:N,onReset:ee,totpInfo:{...U,appName:w?.name||"Privy"}}):"passkey"===W?/*#__PURE__*/e.jsx(y.EnrollPasskey,{appName:w?.name||"Privy",onComplete:N,onReset:ee,onClose:N}):/*#__PURE__*/e.jsx(p.EnrollLandingScreen,{showIntro:re,userMfaMethods:r.mfaMethods,appMfaMethods:w.mfa.methods,userHasAuthSms:G,onBackToIntro:function(){R(!1)},handleSelectMethod:async function(e){return await A().catch(V),"totp"===e?(H(e),O(null),void B().then((e=>{O(e)})).catch((()=>{O(null),ee()}))):"passkey"===e&&1===_.length?await async function(){Y(!0);try{await z(),await D({credentialIds:_},{removeForLogin:P?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa})}catch(e){V(e)}finally{Y(!1)}}():void H(e)},isTotpLoading:"totp"===W&&!U,isPasskeyLoading:Q,error:K,onClose:N,setRemovingMfaMethod:async e=>{await A().catch(V),s(e)}})};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),n=require("react"),r=require("viem"),o=require("@privy-io/js-sdk-core"),t=require("../../client/user.js"),s=require("../../configuration/context.js"),i=require("../../embedded-wallets/solana/transaction.js"),a=require("../../hooks/internal-context.js"),c=require("../../hooks/modal-context.js"),l=require("../../hooks/privy-context.js"),u=require("../../hooks/useGetSolPrice.js"),d=require("../../lib/solana/index.js"),p=require("../../lib/solana/transaction.js"),m=require("../ErrorScreen.js"),q=require("../SendTransactionScreen/SendTransactionScreenView.js"),j=require("../SendTransactionScreen/TransactionErrorView.js"),h=require("../index.js"),f=require("./SolanaTransactionReceiptView.js");require("viem/utils"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../utils/buffer/readBigInt64LE.js"),require("../../lib/attempt.js"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("styled-components"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/CircleBorder.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../components/layout/StackedContainer.js"),require("../../embedded-wallets/errors.js"),require("../../embedded-wallets/types.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("../../svg/lock-closed.js"),require("@heroicons/react/24/outline"),require("../../components/ModalFooter.js"),require("../../svg/protected-by-privy.js"),require("../../components/primitives/InteractiveLabel.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../components/ui/typography/Subtitle.js"),require("../../components/ui/typography/Title.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("../../components/ui/wallet/WalletInfoCard.js"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/layout/Column.js"),require("../../components/ui/typography/LabelXs.js"),require("../../components/ui/wallet/shared.js"),require("../LandingScreen/styles.js"),require("../SendTransactionScreen/TokenDescription.js"),require("../SendTransactionScreen/TransactionDetail.js"),require("../SendTransactionScreen/TransactionValidation.js"),require("../../components/Checkbox.js"),require("../../components/Pill.js"),require("../SendTransactionScreen/useTransactionDetails.js"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("../../components/CircleBackground.js"),require("../../components/Layouts.js"),require("../../components/ScreenHeader.js"),require("../../components/embedded-wallets/SolanaTransactionDetails.js"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("../../components/embedded-wallets/PriceDisplay.js"),require("../../lib/ethers.js"),require("../../components/embedded-wallets/WalletLink.js");exports.SendSolanaTransactionScreen=()=>{let{data:g,onUserCloseViaDialogOrKeybindRef:y,setModalData:S,navigate:k}=c.usePrivyModal(),{client:b,closePrivyModal:T,walletProxy:w}=a.usePrivyInternal(),v=s.useAppConfig(),{user:I,getAccessToken:A}=l.usePrivyContext(),[x,C]=n.useState(g?.sendSolanaTransaction?.transactionRequest),[E,L]=n.useState(),[O,P]=n.useState(),[D,F]=n.useState(0),[M,V]=n.useState({value:0n,isLoading:!1}),[W,R]=n.useState(!1),[B,N]=n.useState(),[U,H]=n.useState(),$=g?.sendSolanaTransaction?.connection,z=g?.sendSolanaTransaction?.transactingWallet,G=g?.sendSolanaTransaction?.signOnly??!1,_=E?.instructions.length??1,X=z?.imported?t.getImportedPrivySolanaWallet(I):t.getPrivyPrimaryWallet(I),K=d.getSolanaNetworkFromRpcEndpoint($?.rpcEndpoint||""),Q="fiat-currency"===v.embeddedWallets.priceDisplay.primary,{solPrice:J,isSolPriceLoading:Y}=u.useGetSolPrice({enabled:Q}),Z=n.useMemo((()=>{let e,n;if(!E)return;let o=E.spender;0===D&&z?.address===o&&(e=p.getNativeCurrencyFromLamports(E.fee));let t=p.getNativeCurrencyFromLamports(M.value,3,!0),s=E.instructions[D];if(!s)return{fee:e,spender:o,balance:t};if("unknown"===s.type)return{fee:e,spender:o,program:s.program,balance:t};if("ata-creation"===s.type)return{fee:e,spender:o,balance:t,tokenAccountOwner:s.owner,tokenAccount:s.ata,tokenAddress:s.mint};let i=s.fromAccount,a="sol-transfer"===s.type?s.toAccount:s.toAccount||s.toAta,c="spl-transfer"===s.type?s.token.address:void 0;return null!=e&&"SOL"===s.token.symbol&&(n=p.getNativeCurrencyFromLamports(s.value+E.fee)),{fee:e,spender:o,from:i,to:a,tokenAddress:c,amount:`${r.formatUnits(s.value,s.token.decimals)} ${s.token.symbol}`.trim(),total:n,balance:t}}),[E,D,z?.address,M]),ee=n.useMemo((()=>{let e,n;if(!E||!Q||!J||Y)return;function o(...e){return p.getDollarsFromLamport(e.reduce(((e,n)=>e+n),0n),J??0)}0===D&&z?.address===E.spender&&(e=o(E.fee));let t=o(M.value),s=E.instructions[D];return s&&"unknown"!==s.type&&"ata-creation"!==s.type?(null!=e&&"SOL"===s.token.symbol&&(n=o(s.value,E.fee)),{fee:e,amount:"SOL"===s.token.symbol?o(s.value):`${r.formatUnits(s.value,s.token.decimals)} ${s.token.symbol}`.trim(),total:n,balance:t}):{fee:e,balance:t}}),[E,Q,J,Y,z?.address,D,M]),ne=n.useMemo((()=>{if(G||!E||M.isLoading||D>0)return!1;let e=E.instructions[D];if(!e)return!1;let n=0n;return z?.address===E.spender&&(n+=E.fee),"value"in e&&z?.address===e.fromAccount&&"SOL"===e.token.symbol&&(n+=e.value),M.value<n}),[E,M,D,G]);if(n.useEffect((()=>{!async function(){if(x&&$&&b)try{P(void 0);let e=await p.parseSolanaTransaction({tx:x,connection:$,client:b});L(e),F(0)}catch(e){console.error("Failed to prepare transaction",e),P(e)}}()}),[x,$,b]),n.useEffect((()=>{(async function(){if(!z||!$)return;V({value:M.value,isLoading:!0});let e=new o.SolanaClient({name:"mainnet-beta",rpcUrl:$.rpcEndpoint});V({value:await e.getBalance(z.address).catch((()=>0n))??0n,isLoading:!1})})().catch(console.error)}),[E,$]),!(x&&g?.sendSolanaTransaction&&z&&$)){let n=Error("Invalid transaction request");/*#__PURE__*/return e.jsx(m.ErrorScreenView,{error:n,onClick:()=>{g?.sendSolanaTransaction?.onFailure(n),T({shouldCallAuthOnSuccess:!1})}})}let re=()=>{if(!W)return B?g?.sendSolanaTransaction?.onSuccess(B):(g?.sendSolanaTransaction?.onFailure(U??O??Error("User exited the modal before submitting the transaction")),F(0)),T({shouldCallAuthOnSuccess:!1})};y.current=re;let oe=g.sendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/e.jsx("img",{src:g.sendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:g.sendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,te=!!(g.funding&&g.funding.supportedOptions.length>0),se=ne&&te;return B?/*#__PURE__*/e.jsx(f.SolanaTransactionReceiptView,{instructions:E?.instructions.reduce(((e,n)=>("ata-creation"===n.type&&e.push({tokenAccountOwner:n.owner,tokenAccount:n.ata}),"spl-transfer"===n.type&&e.push({from:n.fromAccount,to:n.toAccount||n.toAta,amount:n.value,token:n.token}),"sol-transfer"===n.type&&e.push({from:n.fromAccount,to:n.toAccount,amount:n.value,token:n.token}),e)),[])??[],fees:0===D?B.fees:0n,onClose:re,transactionInfo:g.sendTransaction?.uiOptions.transactionInfo,solPrice:J,receiptHeader:g.sendTransaction?.uiOptions.successHeader,receiptDescription:g.sendTransaction?.uiOptions.successDescription,rpcEndpoint:$.rpcEndpoint,signOnly:G}):U?/*#__PURE__*/e.jsx(j.TransactionErrorView,{transactionError:U,connection:$,onClose:re,network:"solana",onRetry:async()=>{H(void 0);let{blockhash:e}=await $.getLatestBlockhash();p.isVersionedTransaction(x)?x.message.recentBlockhash=e:x.recentBlockhash=e,C(x)}}):/*#__PURE__*/e.jsx(q.SendSolanaTransactionScreenView,{img:oe,title:g.sendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:g.sendTransaction?.uiOptions?.description||`${v.name} wants your permission to approve the following transaction.`,cta:se?"Add funds":g.sendTransaction?.uiOptions?.buttonText||"Approve",transactionIndex:D,maxIndex:_-1,network:"mainnet-beta"==K?"Solana":K,blockExplorerUrl:"https://explorer.solana.com",total:Q?ee?.total:Z?.total,amount:Q?ee?.amount:Z?.amount,fee:Q?ee?.fee:Z?.fee,balance:Q?ee?.balance:Z?.balance,from:Z?.from,to:Z?.to,tokenAccount:Z?.tokenAccount,tokenAccountOwner:Z?.tokenAccountOwner,tokenAddress:Z?.tokenAddress,transactingWalletAddress:z.address,programAddress:Z?.program,disabled:ne&&!te,isSubmitting:W,isPreparing:!E||M.isLoading,isTokenPriceLoading:Q&&Y,isMissingFunds:ne,submitError:U??void 0,parseError:O,onClick:se?async()=>{if(!z)return;if(!te)throw Error("Funding wallet is not enabled");let e=h.ModalScreen.FUNDING_METHOD_SELECTION_SCREEN;S({...g,funding:{...g.funding,methodScreen:e}}),k(e)}:async()=>{if(D<(E?.instructions.length??1)-1)F(D+1);else try{R(!0);let e=await A();if(W||!e||!z||!w||!I||!X)return;let{rootWallet:n}=t.getSolanaSigningAndRootWallet(I,z.address);if(!n)throw Error("No root wallet for transacting wallet found");let{entropyId:r,entropyIdVerifier:o}=t.getEntropyDetailsFromAccount(n);if(G)await i.signSolanaTransaction({tx:x,accessToken:e,walletProxy:w,entropyId:r,entropyIdVerifier:o,transactingWalletAddress:z.address,transactingWalletIndex:z.walletIndex??0}),N(p.createSolanaTransactionReceipt("",x,null));else{let{signature:n,receipt:t}=await i.sendSolanaTransaction({tx:x,accessToken:e,connection:$,walletProxy:w,entropyId:r,entropyIdVerifier:o,transactingWalletAddress:z.address,transactingWalletIndex:z.walletIndex??0,transactionOptions:g.sendSolanaTransaction?.transactionOptions});N(p.createSolanaTransactionReceipt(n,x,t))}}catch(e){console.warn({transaction:x,error:e}),H(e)}finally{R(!1)}},onClose:re,onBack:D>0&&_>1?()=>F(D-1):void 0})};
1
+ "use strict";var e=require("react/jsx-runtime"),n=require("react"),r=require("viem"),o=require("@privy-io/js-sdk-core"),t=require("../../client/user.js"),s=require("../../configuration/context.js"),a=require("../../embedded-wallets/solana/transaction.js"),i=require("../../hooks/internal-context.js"),c=require("../../hooks/modal-context.js"),l=require("../../hooks/privy-context.js"),u=require("../../hooks/useGetSolPrice.js"),d=require("../../lib/solana/index.js"),p=require("../../lib/solana/transaction.js"),m=require("../ErrorScreen.js"),q=require("../SendTransactionScreen/SendTransactionScreenView.js"),j=require("../SendTransactionScreen/TransactionErrorView.js"),h=require("../index.js"),f=require("./SolanaTransactionReceiptView.js");require("viem/utils"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../utils/buffer/readBigInt64LE.js"),require("../../lib/attempt.js"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("styled-components"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/CircleBorder.js"),require("../../components/ModalHeader.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../components/layout/StackedContainer.js"),require("../../embedded-wallets/errors.js"),require("../../embedded-wallets/types.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("../../lib/funding/reservoir.js"),require("../../svg/lock-closed.js"),require("@heroicons/react/24/outline"),require("../../components/ModalFooter.js"),require("../../svg/protected-by-privy.js"),require("../../components/primitives/InteractiveLabel.js"),require("../../components/ui/typography/LabelSm.js"),require("../../components/ui/layout/Row.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../components/ui/typography/Subtitle.js"),require("../../components/ui/typography/Title.js"),require("../../components/ui/typography/Value.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/wallet/Address.js"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("../../components/ui/wallet/WalletInfoCard.js"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/layout/Column.js"),require("../../components/ui/typography/LabelXs.js"),require("../../components/ui/wallet/shared.js"),require("../LandingScreen/styles.js"),require("../SendTransactionScreen/TokenDescription.js"),require("../SendTransactionScreen/TransactionDetail.js"),require("../SendTransactionScreen/TransactionValidation.js"),require("../../components/Checkbox.js"),require("../../components/Pill.js"),require("../SendTransactionScreen/useTransactionDetails.js"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("../../components/CircleBackground.js"),require("../../components/Layouts.js"),require("../../components/ScreenHeader.js"),require("../../components/embedded-wallets/SolanaTransactionDetails.js"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("../../components/embedded-wallets/PriceDisplay.js"),require("../../lib/ethers.js"),require("../../components/embedded-wallets/WalletLink.js");exports.SendSolanaTransactionScreen=()=>{let{data:S,onUserCloseViaDialogOrKeybindRef:g,setModalData:y,navigate:k}=c.usePrivyModal(),{client:b,closePrivyModal:T,walletProxy:w}=i.usePrivyInternal(),v=s.useAppConfig(),{user:I,getAccessToken:A}=l.usePrivyContext(),[x,C]=n.useState(S?.sendSolanaTransaction?.transactionRequest),[E,L]=n.useState(),[O,P]=n.useState(),[D,F]=n.useState(0),[M,V]=n.useState({value:0n,isLoading:!1}),[W,R]=n.useState(!1),[B,N]=n.useState(),[U,H]=n.useState(),$=S?.sendSolanaTransaction?.connection,z=S?.sendSolanaTransaction?.transactingWallet,G=S?.sendSolanaTransaction?.signOnly??!1,_=E?.instructions.length??1,X=z?.imported?t.getImportedPrivySolanaWallet(I):t.getPrivyPrimaryWallet(I),K=d.getSolanaNetworkFromRpcEndpoint($?.rpcEndpoint||""),Q="fiat-currency"===v.embeddedWallets.priceDisplay.primary,{solPrice:J,isSolPriceLoading:Y}=u.useGetSolPrice({enabled:Q}),Z=n.useMemo((()=>{let e,n;if(!E)return;let o=E.spender;0===D&&z?.address===o&&(e=p.getNativeCurrencyFromLamports(E.fee));let t=p.getNativeCurrencyFromLamports(M.value,3,!0),s=E.instructions[D];if(!s)return{fee:e,spender:o,balance:t};if("unknown"===s.type)return{fee:e,spender:o,program:s.program,balance:t};if("ata-creation"===s.type)return{fee:e,spender:o,balance:t,tokenAccountOwner:s.owner,tokenAccount:s.ata,tokenAddress:s.mint};let a=s.fromAccount,i="sol-transfer"===s.type?s.toAccount:s.toAccount||s.toAta,c="spl-transfer"===s.type?s.token.address:void 0;return null!=e&&"SOL"===s.token.symbol&&(n=p.getNativeCurrencyFromLamports(s.value+E.fee)),{fee:e,spender:o,from:a,to:i,tokenAddress:c,amount:`${r.formatUnits(s.value,s.token.decimals)} ${s.token.symbol}`.trim(),total:n,balance:t}}),[E,D,z?.address,M]),ee=n.useMemo((()=>{let e,n;if(!E||!Q||!J||Y)return;function o(...e){return p.getDollarsFromLamport(e.reduce(((e,n)=>e+n),0n),J??0)}0===D&&z?.address===E.spender&&(e=o(E.fee));let t=o(M.value),s=E.instructions[D];return s&&"unknown"!==s.type&&"ata-creation"!==s.type?(null!=e&&"SOL"===s.token.symbol&&(n=o(s.value,E.fee)),{fee:e,amount:"SOL"===s.token.symbol?o(s.value):`${r.formatUnits(s.value,s.token.decimals)} ${s.token.symbol}`.trim(),total:n,balance:t}):{fee:e,balance:t}}),[E,Q,J,Y,z?.address,D,M]),ne=n.useMemo((()=>{if(G||!E||M.isLoading||D>0)return!1;let e=E.instructions[D];if(!e)return!1;let n=0n;return z?.address===E.spender&&(n+=E.fee),"value"in e&&z?.address===e.fromAccount&&"SOL"===e.token.symbol&&(n+=e.value),M.value<n}),[E,M,D,G]);if(n.useEffect((()=>{!async function(){if(x&&$&&b)try{P(void 0);let e=await p.parseSolanaTransaction({tx:x,connection:$,client:b});L(e),F(0)}catch(e){console.error("Failed to prepare transaction",e),P(e)}}()}),[x,$,b]),n.useEffect((()=>{(async function(){if(!z||!$)return;V({value:M.value,isLoading:!0});let e=new o.SolanaClient({name:"mainnet-beta",rpcUrl:$.rpcEndpoint});V({value:await e.getBalance(z.address).catch((()=>0n))??0n,isLoading:!1})})().catch(console.error)}),[E,$]),!(x&&S?.sendSolanaTransaction&&z&&$)){let n=Error("Invalid transaction request");/*#__PURE__*/return e.jsx(m.ErrorScreenView,{error:n,onClick:()=>{S?.sendSolanaTransaction?.onFailure(n),T({shouldCallAuthOnSuccess:!1})}})}let re=()=>{if(!W)return B?S?.sendSolanaTransaction?.onSuccess(B):(S?.sendSolanaTransaction?.onFailure(U??O??Error("User exited the modal before submitting the transaction")),F(0)),T({shouldCallAuthOnSuccess:!1})};g.current=re;let oe=S.sendSolanaTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/e.jsx("img",{src:S.sendSolanaTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:S.sendSolanaTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,te=!!(S.funding&&S.funding.supportedOptions.length>0),se=ne&&te;return B?/*#__PURE__*/e.jsx(f.SolanaTransactionReceiptView,{instructions:E?.instructions.reduce(((e,n)=>("ata-creation"===n.type&&e.push({tokenAccountOwner:n.owner,tokenAccount:n.ata}),"spl-transfer"===n.type&&e.push({from:n.fromAccount,to:n.toAccount||n.toAta,amount:n.value,token:n.token}),"sol-transfer"===n.type&&e.push({from:n.fromAccount,to:n.toAccount,amount:n.value,token:n.token}),e)),[])??[],fees:0===D?B.fees:0n,onClose:re,transactionInfo:S.sendSolanaTransaction?.uiOptions.transactionInfo,solPrice:J,receiptHeader:S.sendSolanaTransaction?.uiOptions.successHeader,receiptDescription:S.sendSolanaTransaction?.uiOptions.successDescription,rpcEndpoint:$.rpcEndpoint,signOnly:G}):U?/*#__PURE__*/e.jsx(j.TransactionErrorView,{transactionError:U,connection:$,onClose:re,network:"solana",onRetry:async()=>{H(void 0);let{blockhash:e}=await $.getLatestBlockhash();p.isVersionedTransaction(x)?x.message.recentBlockhash=e:x.recentBlockhash=e,C(x)}}):/*#__PURE__*/e.jsx(q.SendSolanaTransactionScreenView,{img:oe,title:S.sendSolanaTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:S.sendSolanaTransaction?.uiOptions?.description||`${v.name} wants your permission to approve the following transaction.`,cta:se?"Add funds":S.sendSolanaTransaction?.uiOptions?.buttonText||"Approve",transactionIndex:D,maxIndex:_-1,network:"mainnet-beta"==K?"Solana":K,blockExplorerUrl:"https://explorer.solana.com",total:Q?ee?.total:Z?.total,amount:Q?ee?.amount:Z?.amount,fee:Q?ee?.fee:Z?.fee,balance:Q?ee?.balance:Z?.balance,from:Z?.from,to:Z?.to,tokenAccount:Z?.tokenAccount,tokenAccountOwner:Z?.tokenAccountOwner,tokenAddress:Z?.tokenAddress,transactingWalletAddress:z.address,programAddress:Z?.program,disabled:ne&&!te,isSubmitting:W,isPreparing:!E||M.isLoading,isTokenPriceLoading:Q&&Y,isMissingFunds:ne,submitError:U??void 0,parseError:O,onClick:se?async()=>{if(!z)return;if(!te)throw Error("Funding wallet is not enabled");let e=h.ModalScreen.FUNDING_METHOD_SELECTION_SCREEN;y({...S,funding:{...S.funding,methodScreen:e}}),k(e)}:async()=>{if(D<(E?.instructions.length??1)-1)F(D+1);else try{R(!0);let e=await A();if(W||!e||!z||!w||!I||!X)return;let{rootWallet:n}=t.getSolanaSigningAndRootWallet(I,z.address);if(!n)throw Error("No root wallet for transacting wallet found");let{entropyId:r,entropyIdVerifier:o}=t.getEntropyDetailsFromAccount(n);if(G)await a.signSolanaTransaction({tx:x,accessToken:e,walletProxy:w,entropyId:r,entropyIdVerifier:o,transactingWalletAddress:z.address,transactingWalletIndex:z.walletIndex??0}),N(p.createSolanaTransactionReceipt("",x,null));else{let{signature:n,receipt:t}=await a.sendSolanaTransaction({tx:x,accessToken:e,connection:$,walletProxy:w,entropyId:r,entropyIdVerifier:o,transactingWalletAddress:z.address,transactingWalletIndex:z.walletIndex??0,transactionOptions:S.sendSolanaTransaction?.transactionOptions});N(p.createSolanaTransactionReceipt(n,x,t))}}catch(e){console.warn({transaction:x,error:e}),H(e)}finally{R(!1)}},onClose:re,onBack:D>0&&_>1?()=>F(D-1):void 0})};