@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 6.83 kB
JavaScript
var e=require("react/jsx-runtime"),r=require("react"),i=require("./privy-provider-CU_DJPSa.js"),o=require("./internal-context-GxD_jR-e.js"),t=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),n=require("./smart-wallets-byarphWU.js");require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("viem"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),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("@heroicons/react/24/outline/ChevronDownIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("zustand"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/ArrowTopRightOnSquareIcon"),require("@heroicons/react/24/solid/DocumentCheckIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("qrcode"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("@heroicons/react/24/outline/CreditCardIcon"),require("@heroicons/react/24/outline/QrCodeIcon"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("ofetch"),require("@heroicons/react/24/outline"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/outline/CloudArrowUpIcon"),require("@heroicons/react/24/outline/NoSymbolIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/IdentificationIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("js-cookie"),require("permissionless"),require("permissionless/accounts"),require("permissionless/clients/pimlico"),require("viem/account-abstraction");let c=/*#__PURE__*/r.createContext({client:void 0,getClientForChain:o.notImplemented});let a=/*#__PURE__*/r.createContext({config:void 0}),l=()=>{let{config:e}=r.useContext(a);return{config:e}},s=({children:i})=>{let[t,n]=r.useState(void 0),{client:c}=o.usePrivyInternal();return r.useEffect((()=>{!t&&c&&(async()=>{try{if(!c)return void console.warn("No client found");let e=await c.getSmartWalletsConfig();n(e)}catch(e){console.warn("Error generating smart wallet config: ",e)}})()}),[!!c]),/*#__PURE__*/e.jsx(a.Provider,{value:{config:t},children:i})},u=({config:c,children:a})=>{let{config:s}=l(),{appId:u}=o.usePrivyInternal(),{chains:h,defaultChain:q,rpcConfig:C}=i.useAppConfig(),{wallets:I}=i.useWallets(),{user:g}=i.usePrivyContext(),[m,f]=r.useState(),{wrapSmartAccountClientWithUIs:p}=n.useSmartWalletsUIWrapper(),v=t.getEmbeddedConnectedWallet(I);r.useEffect((()=>{(async()=>{if(!s?.enabled)return;let e=s.configuredNetworks.find((e=>e.chainId===`eip155:${q.id}`))?q:h.find((e=>s.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new o.PrivyClientError("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");f(await n.getSmartWalletClient({chain:e,privyAppId:u,paymasterContext:c?.paymasterContext,rpcConfig:C,embeddedWallet:v,user:g,smartWalletsConfig:s}))})()}),[!!s?.enabled,!!g?.smartWallet,!!v]);/*#__PURE__*/return e.jsx(d.Provider,{value:{client:m,config:c,getClientForChain:async({id:e})=>{let r=t.getEmbeddedConnectedWallet(I),i=await n.getSmartWalletClient({chain:h.find((r=>r.id===e)),privyAppId:u,paymasterContext:c?.paymasterContext,rpcConfig:C,embeddedWallet:r,user:g,smartWalletsConfig:s});if(!i)throw new o.PrivyClientError(`Failed to create smart wallet client for chain id: ${e}`);return p(i)}},children:a})},d=/*#__PURE__*/r.createContext({client:void 0,config:void 0,getClientForChain:o.notImplemented}),h=({children:t})=>{let{client:a,config:s,getClientForChain:u}=(()=>{let{client:e,config:i,getClientForChain:o}=r.useContext(d);return{client:e,config:i,getClientForChain:o}})(),{config:h}=l(),{wrapSmartAccountClient:q}=n.useSmartWalletsWrapper({clientConfig:s,smartWalletsConfig:h}),{user:C}=i.usePrivyContext(),{generateSiweMessageForSmartWallet:I,linkSmartWallet:g,hideWalletUIs:m}=o.usePrivyInternal();return r.useEffect((()=>{(async()=>{if(a&&C&&!C?.smartWallet&&h?.enabled)try{let e=await I({address:a.account.address,chainId:`eip155:${a.chain.id}`});m.current=!0;let r=await a.signMessage({message:e});await g({signature:r,message:e,smartWalletType:h.smartWalletType})}catch(e){console.error("Error creating smart wallet:",e)}finally{m.current=!1}})()}),[!!a,!!C?.smartWallet,!!h?.enabled]),/*#__PURE__*/e.jsx(c.Provider,{value:{client:C?.smartWallet&&a?q(a):void 0,getClientForChain:u},children:t})};exports.SmartWalletsProvider=({config:r,children:i})=>/*#__PURE__*/e.jsx(s,{children:/*#__PURE__*/e.jsx(u,{config:r,children:/*#__PURE__*/e.jsx(h,{children:i})})}),exports.useSmartWallets=()=>{let{client:e,getClientForChain:i}=r.useContext(c);return{client:e,getClientForChain:i}};
;