UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 6.54 kB
"use strict";var e=require("react/jsx-runtime"),r=require("react"),i=require("viem"),n=require("@privy-io/js-sdk-core"),s=require("./Button-Bm_Ft0Dw.js"),a=require("./Layouts-dRL0OSpp.js"),t=require("./ModalHeader-DB7Tbjwz.js"),o=require("./QrCode-DsQD8cG6.js"),u=require("./FundWalletMethodHeader-BKgYjMau.js"),c=require("./InfoBanner-CTx1eRnV.js"),d=require("./Subtitle-Dtmrw8l5.js"),l=require("./Title-C-tHJvrb.js"),m=require("./WalletInfoCard-DKVdH9iF.js"),q=require("./context-DFq1obBO.js"),p=require("./useActiveWallet-BOX8xCn9.js"),h=require("./internal-context-NWsAL807.js"),f=require("./get-is-unified-wallet-D4ouXJpi.js"),j=require("./useWalletBalance-BVb8F3RO.js"),g=require("./useWallets-BLFNjTwC.js"),v=require("./analytics-C6C_4JmG.js"),C=require("./index-NJrQkxJ7.js"),y=require("./getChainName-C4rO8-3n.js"),A=require("./getUsdcMintAddress-REYZSOb9.js"),S=require("./transaction-DjF5X-by.js"),I=require("./getErc20Balance-DknCauCO.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-f0cRWc29.js"),require("./LabelXs-CYMv6rOZ.js"),require("./Address-5znFAhQw.js"),require("./shared-BPGwTh8c.js"),require("tinycolor2"),require("zustand"),require("react-device-detect"),require("./prepareFundingModalData-Cnd6rhhJ.js"),require("eventemitter3"),require("./events-context-Di6--rDg.js"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("ofetch"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CcfSRv1R.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("js-cookie"),require("./frame-B14fp9oC.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-BcAsQTGF.js"),require("./getEmbeddedConnectedWallet-6TsVZJkD.js"),require("./getFormattedUsdFromLamports-Mu2fqwL2.js");const T={component:()=>{let{wallets:T}=g.useWallets(),{connectors:b}=h.usePrivyInternal(),x=b.filter(p.isSolanaWalletConnector).flatMap((e=>e.wallets)),{data:E,setModalData:F,navigate:k,lastScreen:w}=f.usePrivyModal(),{rpcConfig:B,appId:U,createAnalyticsEvent:D,closePrivyModal:W}=h.usePrivyInternal(),L=q.useAppConfig(),[P,N]=r.useState(void 0),[$,O]=r.useState(!1),_=E?.funding,{reloadBalance:R}=j.useWalletBalance({rpcConfig:B,appId:U,address:"ethereum"===_.chainType?_.address:void 0,chain:"ethereum"===_.chainType?_.chain:void 0}),Q="solana"===_.chainType,z=Q?_.isUSDC?"USDC":"SOL":_.erc20Address?_.erc20ContractInfo?.symbol:_.chain.nativeCurrency.symbol,H=Q?x.find((({address:e})=>e===_.address)):T.find((({address:e})=>p.formatWalletAddress(e)===p.formatWalletAddress(_.address)));if(!_)return F({errorModalData:{error:Error("Couldn't find funding config"),previousScreen:w||"FundingMethodSelectionScreen"},funding:E?.funding,solanaFundingData:E?.solanaFundingData,sendTransaction:E?.sendTransaction}),k("ErrorScreen"),/*#__PURE__*/e.jsx(e.Fragment,{});r.useEffect((()=>{let e=Q?async function(){if("solana"!==_.chainType)return;let e=L.solanaRpcs[_.chain];e?(_.isUSDC?async function({rpc:e,address:r,mintAddress:i}){let n=await e.getTokenAccountsByOwner(r,{mint:i},{encoding:"jsonParsed",commitment:"confirmed"}).send(),s=n.value[0]?.account;return s?BigInt(s.data.parsed.info.tokenAmount.amount):0n}({rpc:e.rpc,address:_.address,mintAddress:A.getUsdcMintAddress(_.chain)}):C.fetchWalletBalance({rpc:e.rpc,address:_.address})).then((e=>{let r=BigInt(e);P&&r>P&&(O(!0),D({eventName:v.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"manual",status:"success",chainType:"solana",address:H?.address,value:_.isUSDC?i.formatUnits(r-P,6):i.formatUnits(r-P,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 I.getErc20Balance({chain:_.chain,address:_.address,erc20Address:_.erc20Address,rpcConfig:B,appId:U});return e}})().then((e=>{P&&e>P&&(O(!0),D({eventName:v.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"manual",status:"success",chainType:"ethereum",address:H?.address,chainId:_.chain.id,value:i.formatUnits(e-P,_.erc20ContractInfo?.decimals??18),token:_.erc20ContractInfo?.symbol??_.erc20Address??"ETH"}})),N(e)})).catch((()=>N(void 0)))},r=setInterval(e,2e3);return e(),()=>clearInterval(r)}),[P]);let Y=r.useMemo((()=>null==P?"":_.isUSDC?n.formatTokenAmount({amount:P,decimals:6}):Q?S.getNativeCurrencyFromLamports(P,3,!0,!0):null!=_.erc20ContractInfo?.decimals?n.formatTokenAmount({amount:P,decimals:_.erc20ContractInfo.decimals}):n.formatWeiAmount({wei:P})),[P,Q,_]),V="ethereum"===_.chainType?_.chain.name:y.getChainName(_.chain),X=r.useMemo((()=>""===_.uiConfig?.receiveFundsTitle?null:/*#__PURE__*/e.jsx(l.Title,{children:_.uiConfig?.receiveFundsTitle??`Receive ${_.amount} ${z??""}`.trim()})),[_.uiConfig?.receiveFundsTitle,_.amount,z]),G=r.useMemo((()=>""===_.uiConfig?.receiveFundsSubtitle?null:/*#__PURE__*/e.jsx(d.Subtitle,{children:_.uiConfig?.receiveFundsSubtitle??`Scan this code or copy your wallet address to receive funds on ${V}.`})),[_.uiConfig?.receiveFundsSubtitle,V]),J="solana"===_.chainType&&_.isUSDC&&A.getUsdcMintAddress(_.chain)?`?spl-token=${A.getUsdcMintAddress(_.chain)}`:"";/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.t,{}),X,G,/*#__PURE__*/e.jsxs(a.FlexContainer,{style:{gap:"1rem",margin:X||G?"1rem 0":"0"},children:[/*#__PURE__*/e.jsx(o.QrCode,{url:`${_.chainType}:${_.address}${J}`,size:200,squareLogoElement:M}),/*#__PURE__*/e.jsxs(c.InfoBanner,{theme:L.appearance.palette.colorScheme,children:["Make sure to send funds on ",V,"."]}),/*#__PURE__*/e.jsx(m.WalletInfoCard,{title:"Your wallet",errMsg:void 0,showCopyButton:!0,balance:`${Y} ${z}`,address:_.address}),$&&/*#__PURE__*/e.jsx(s.PrimaryButton,{onClick:()=>W({shouldCallAuthOnSuccess:!1,isSuccess:!0}),children:"Continue"})]}),/*#__PURE__*/e.jsx(t.BlobbyFooter,{})]})}};let M=({...r})=>/*#__PURE__*/e.jsx(C.Blobby,{color:"black",...r});exports.ManualTransferScreen=T,exports.default=T;