@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 6.54 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("react"),i=require("viem"),s=require("@privy-io/js-sdk-core"),n=require("./ModalHeader-C5Wuo3-1.js"),a=require("./Layouts-D3TOcPhm.js"),t=require("./QrCode-Bbg48Zky.js"),o=require("./FundWalletMethodHeader-BTGxq_KO.js"),u=require("./InfoBanner-D5_XYHKY.js"),c=require("./Subtitle-CR8zM7ZJ.js"),d=require("./Title-ifTy35V5.js"),l=require("./WalletInfoCard-B7ARTvO5.js"),m=require("./context-Cg3IEi80.js"),q=require("./useActiveWallet-BfMD5hzE.js"),p=require("./internal-context-BJv4f_bO.js"),h=require("./privy-context-CrM9_s6G.js"),f=require("./useWalletBalance-v_jFKi4B.js"),j=require("./useWallets-dikDynAG.js"),v=require("./analytics-C6C_4JmG.js"),y=require("./index-DchMyzt9.js"),g=require("./getChainName-C4rO8-3n.js"),C=require("./getUsdcMintAddress-REYZSOb9.js"),A=require("./transaction-DjF5X-by.js"),S=require("./getErc20Balance-CTO0RtgK.js"),T=require("./use-export-wallet-_EIyxyle.js");require("styled-components"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("qrcode"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("lucide-react"),require("./ErrorMessage-BfTVyue9.js"),require("./LabelXs-C8rLnCfU.js"),require("./Address-BeuDoSGB.js"),require("./shared-DBm7PUrg.js"),require("tinycolor2"),require("zustand"),require("react-device-detect"),require("./events-context-Di6--rDg.js"),require("viem/utils"),require("ofetch"),require("@privy-io/are-addresses-equal"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-C-Rab7yP.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./getFormattedUsdFromLamports-Mu2fqwL2.js");const I={component:()=>{let{wallets:I}=j.useWallets(),{connectors:M}=p.usePrivyInternal(),b=M.filter(q.isSolanaWalletConnector).flatMap((e=>e.wallets)),{data:k,setModalData:E,navigate:U,lastScreen:w}=h.usePrivyModal(),{rpcConfig:F,appId:B,createAnalyticsEvent:W,closePrivyModal:P}=p.usePrivyInternal(),D=m.useAppConfig(),[L,N]=r.useState(void 0),[$,O]=r.useState(!1),_=k?.funding,{reloadBalance:R}=f.useWalletBalance({rpcConfig:F,appId:B,address:"ethereum"===_.chainType?_.address:void 0,chain:"ethereum"===_.chainType?_.chain:void 0}),z="solana"===_.chainType,H=z?_.isUSDC?"USDC":"SOL":_.erc20Address?_.erc20ContractInfo?.symbol:_.chain.nativeCurrency.symbol,Q=z?b.find((({address:e})=>e===_.address)):I.find((({address:e})=>T.formatWalletAddress(e)===T.formatWalletAddress(_.address)));if(!_)return E({errorModalData:{error:Error("Couldn't find funding config"),previousScreen:w||"FundingMethodSelectionScreen"},funding:k?.funding,solanaFundingData:k?.solanaFundingData,sendTransaction:k?.sendTransaction}),U("ErrorScreen"),/*#__PURE__*/e.jsx(e.Fragment,{});r.useEffect((()=>{let e=z?async function(){if("solana"!==_.chainType)return;let e=D.solanaRpcs[_.chain];e?(_.isUSDC?async function({rpc:e,address:r,mintAddress:i}){let s=await e.getTokenAccountsByOwner(r,{mint:i},{encoding:"jsonParsed",commitment:"confirmed"}).send(),n=s.value[0]?.account;return n?BigInt(n.data.parsed.info.tokenAmount.amount):0n}({rpc:e.rpc,address:_.address,mintAddress:C.getUsdcMintAddress(_.chain)}):y.fetchWalletBalance({rpc:e.rpc,address:_.address})).then((e=>{let r=BigInt(e);L&&r>L&&(O(!0),W({eventName:v.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"manual",status:"success",chainType:"solana",address:Q?.address,value:_.isUSDC?i.formatUnits(r-L,6):i.formatUnits(r-L,9),token:_.isUSDC?"USDC":"SOL"}})),N(r)})):console.warn("Unable to load solana rpc, skipping balance")}:async function(){"ethereum"===_.chainType&&(async()=>{if(!_.erc20Address)return await R()??BigInt(0);{let{balance:e}=await S.getErc20Balance({chain:_.chain,address:_.address,erc20Address:_.erc20Address,rpcConfig:F,appId:B});return e}})().then((e=>{L&&e>L&&(O(!0),W({eventName:v.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"manual",status:"success",chainType:"ethereum",address:Q?.address,chainId:_.chain.id,value:i.formatUnits(e-L,_.erc20ContractInfo?.decimals??18),token:_.erc20ContractInfo?.symbol??_.erc20Address??"ETH"}})),N(e)})).catch((()=>N(void 0)))},r=setInterval(e,2e3);return e(),()=>clearInterval(r)}),[L]);let Y=r.useMemo((()=>null==L?"":_.isUSDC?s.formatTokenAmount({amount:L,decimals:6}):z?A.getNativeCurrencyFromLamports(L,3,!0,!0):null!=_.erc20ContractInfo?.decimals?s.formatTokenAmount({amount:L,decimals:_.erc20ContractInfo.decimals}):s.formatWeiAmount({wei:L})),[L,z,_]),V="ethereum"===_.chainType?_.chain.name:g.getChainName(_.chain),X=r.useMemo((()=>""===_.uiConfig?.receiveFundsTitle?null:/*#__PURE__*/e.jsx(d.Title,{children:_.uiConfig?.receiveFundsTitle??`Receive ${_.amount} ${H??""}`.trim()})),[_.uiConfig?.receiveFundsTitle,_.amount,H]),G=r.useMemo((()=>""===_.uiConfig?.receiveFundsSubtitle?null:/*#__PURE__*/e.jsx(c.Subtitle,{children:_.uiConfig?.receiveFundsSubtitle??`Scan this code or copy your wallet address to receive funds on ${V}.`})),[_.uiConfig?.receiveFundsSubtitle,V]),J="solana"===_.chainType&&_.isUSDC&&C.getUsdcMintAddress(_.chain)?`?spl-token=${C.getUsdcMintAddress(_.chain)}`:"";/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(o.t,{}),X,G,/*#__PURE__*/e.jsxs(a.FlexContainer,{style:{gap:"1rem",margin:X||G?"1rem 0":"0"},children:[/*#__PURE__*/e.jsx(t.QrCode,{url:`${_.chainType}:${_.address}${J}`,size:200,squareLogoElement:x}),/*#__PURE__*/e.jsxs(u.InfoBanner,{theme:D.appearance.palette.colorScheme,children:["Make sure to send funds on ",V,"."]}),/*#__PURE__*/e.jsx(l.WalletInfoCard,{title:"Your wallet",errMsg:void 0,showCopyButton:!0,balance:`${Y} ${H}`,address:_.address}),$&&/*#__PURE__*/e.jsx(n.PrimaryButton,{onClick:()=>P({shouldCallAuthOnSuccess:!1,isSuccess:!0}),children:"Continue"})]}),/*#__PURE__*/e.jsx(n.BlobbyFooter,{})]})}};let x=({...r})=>/*#__PURE__*/e.jsx(y.Blobby,{color:"black",...r});exports.ManualTransferScreen=I,exports.default=I;