@privy-io/react-auth 2.6.3 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/{privy-provider-CWADob3g.js → privy-provider-B-yAVEso.js} +2 -2
- package/dist/cjs/{smart-wallets-Dsq1trqs.js → smart-wallets-BUp0Opq4.js} +1 -1
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/ui.js +1 -1
- package/dist/cjs/{useActiveWallet-D5FyaqZJ.js → useActiveWallet-CsKkB2nL.js} +1 -1
- package/dist/cjs/{useFundWallet-BsBuslJV.js → useFundWallet-C-vF194x.js} +1 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/{privy-provider-u_cmfixS.mjs → privy-provider-DSQ8FU83.mjs} +2 -2
- package/dist/esm/{smart-wallets-vK26EMrU.mjs → smart-wallets-CjIUBWJS.mjs} +1 -1
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/ui.mjs +1 -1
- package/dist/esm/{useActiveWallet-Cwj5v4eK.mjs → useActiveWallet-D0FziaS7.mjs} +1 -1
- package/dist/esm/{useFundWallet-BPk4tVPS.mjs → useFundWallet-DGsbN-n3.mjs} +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("@abstract-foundation/agw-client"),r=require("viem"),n=require("viem/accounts"),o=require("viem/chains"),i=require("./privy-provider-
|
|
1
|
+
"use strict";var e=require("@abstract-foundation/agw-client"),r=require("viem"),n=require("viem/accounts"),o=require("viem/chains"),i=require("./privy-provider-B-yAVEso.js"),t=require("./internal-context-HesndSYh.js"),c=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),a=require("./smart-wallets-BUp0Opq4.js");require("react/jsx-runtime"),require("mipd"),require("react"),require("react-device-detect"),require("viem/utils"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/js-sdk-core"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),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/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("zustand"),require("@walletconnect/ethereum-provider"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),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("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),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/ShieldCheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@headlessui/react"),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"),exports.useAbstractSmartWallets=function(){let{user:s}=i.usePrivyContext(),{hideWalletUIs:l,openPrivyModal:u,chains:d,appId:h,rpcConfig:q}=t.usePrivyInternal(),{wallets:p}=i.useWallets(),{setModalData:I}=i.usePrivyModal(),y=i.getPrivyEthereumWallet(s),g=async(t=o.abstractTestnet.id)=>{let a=c.getEmbeddedConnectedWallet(p);if(!a)throw Error("No connected wallet found");let s="string"==typeof t?r.hexToNumber(t):t;if(![o.abstractTestnet.id,2741].includes(s))throw Error("Error, only Abstract chains are supported");let l=d.find((e=>e.id===s));if(!l)throw Error("Chain not configured");await a.switchChain(l.id);let u=await a.getEthereumProvider(),I=r.createWalletClient({account:a.address,transport:r.custom(u)}),y=n.toAccount({address:a.address,signMessage:I.signMessage,signTransaction:I.signTransaction,signTypedData:I.signTypedData});return await e.createAbstractClient({chain:l,transport:r.http(i.getJsonRpcEndpointFromChain(l,q,h)),publicTransport:r.http(i.getJsonRpcEndpointFromChain(l,q,h)),signer:y})};return{signMessage:async({message:e},r)=>{let n=await g(r);return new Promise((async(r,o)=>{let{entropyId:t,entropyIdVerifier:c}=i.getEntropyDetailsForUser(s);l.current=!0,I({connectWallet:{recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:t,entropyIdVerifier:c,onCompleteNavigateTo:i.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"personal_sign",data:e,confirmAndSign:()=>n.signMessage({message:e}),onSuccess:e=>r(e),onFailure:o,uiOptions:{isCancellable:!0}}}),u(i.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},signTypedData:async(e,r)=>{let n=await g(r);return new Promise((async(r,o)=>{l.current=!0;let{entropyId:t,entropyIdVerifier:c}=i.getEntropyDetailsForUser(s);I({connectWallet:{recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:t,entropyIdVerifier:c,onCompleteNavigateTo:i.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>n.signTypedData(e),onSuccess:e=>r(e),onFailure:o,uiOptions:{isCancellable:!0}}}),u(i.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},sendTransaction:async e=>{let r=await g(e.chainId),n=[],o="calls"in e&&void 0!==e.calls;return n=o?[...e.calls]:[e],new Promise((async(t,c)=>{l.current=!0;let{entropyId:d,entropyIdVerifier:h}=i.getEntropyDetailsForUser(s);I({connectWallet:{recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:d,entropyIdVerifier:h,onCompleteNavigateTo:i.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:a.callsToTransactionRequests({calls:n,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:d,entropyIdVerifier:h,transactingWalletAddress:r.account.address,transactingWalletIndex:void 0,signOnly:!1,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>o?r.sendTransactionBatch(e):r.sendTransaction(e),onSuccess:e=>t(e.hash),onFailure:c,uiOptions:{isCancellable:!0}}}),u(i.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},signTransaction:async e=>{let r=await g(e.chainId),n=[],o="calls"in e&&void 0!==e.calls;return n=o?[...e.calls]:[e],new Promise((async(t,c)=>{l.current=!0;let{entropyId:d,entropyIdVerifier:h}=i.getEntropyDetailsForUser(s);I({connectWallet:{recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:d,entropyIdVerifier:h,onCompleteNavigateTo:i.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:a.callsToTransactionRequests({calls:n,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:d,entropyIdVerifier:h,transactingWalletAddress:r.account.address,transactingWalletIndex:void 0,signOnly:!0,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>{if(!o)return r.signTransaction(e);throw Error("Batch transactions not supported for signing")},onSuccess:e=>t(e.hash),onFailure:c,uiOptions:{isCancellable:!0}}}),u(i.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))}}};
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./privy-provider-CWADob3g.js"),r=require("./useActiveWallet-D5FyaqZJ.js"),t=require("react"),o=require("./internal-context-HesndSYh.js"),i=require("viem"),n=require("viem/experimental"),s=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js");require("react/jsx-runtime"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/js-sdk-core"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),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/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("zustand"),require("@walletconnect/ethereum-provider"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),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("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),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/ShieldCheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@headlessui/react"),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");let a=async(e,r,t,i,n)=>{if(!e)throw i("linkAccount","onError",o.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:n}),new o.PrivyClientError("User must be authenticated before linking an account.");if(!r?.linkedAccounts.some((e=>e.type.includes(n))))throw new o.PrivyClientError(`OAuth account of type ${n} not linked to the account.`);await t(n)};exports.Captcha=e.Captcha,exports.ConnectorManager=e.ConnectorManager,exports.EthereumWalletConnector=e.EthereumWalletConnector,exports.LoginModal=e.LoginModal,exports.PrivyClient=e.PrivyClient,exports.PrivyProvider=e.PrivyProvider,exports.SUPPORTED_CHAINS=e.DEFAULT_SUPPORTED_CHAINS,exports.VERSION=e.VERSION,exports.WalletConnector=e.WalletConnector,exports.addPrivyRpcToChain=e.addPrivyRpcToChain,exports.addRpcUrlOverrideToChain=e.addRpcUrlOverrideToChain,exports.errorIndicatesMaxMfaRetries=e.errorIndicatesMaxMfaRetries,exports.errorIndicatesMfaTimeout=e.errorIndicatesMfaTimeout,exports.errorIndicatesMfaVerificationFailed=e.errorIndicatesMfaVerificationFailed,exports.getAccessToken=e.getCustomerAccessToken,exports.useIdentityToken=e.useIdentityToken,exports.useImportWallet=e.useImportWallet,exports.useLogout=e.useLogout,exports.useMfa=e.useMfa,exports.useMfaEnrollment=e.useMfaEnrollment,exports.usePrivy=e.usePrivy,exports.useRegisterMfaListener=e.useRegisterMfaListener,exports.useSolanaWallets=e.useSolanaWallets,exports.useWallets=e.useWallets,exports.useActiveWallet=r.useActiveWallet,exports.useConnectWallet=r.useConnectWallet,exports.useFundWallet=r.useFundWallet,exports.useLogin=r.useLogin,exports.getEmbeddedConnectedWallet=s.getEmbeddedConnectedWallet,exports.useConnectCoinbaseSmartWallet=()=>{let{connectCoinbaseSmartWallet:e}=o.usePrivyInternal();return{connectCoinbaseSmartWallet:e}},exports.useConnectOrCreateWallet=r=>{let{connectOrCreateWallet:t}=e.usePrivyContext();return e.usePrivyEventSubscription("connectOrCreateWallet",r),{connectOrCreateWallet:t}},exports.useCreateWallet=function(r){let{createWallet:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("createWallet",r),{createWallet:o}},exports.useCrossAppAccounts=()=>{let{startCrossAppAuthFlow:r,unlinkCrossAppAccount:t,signMessageWithCrossAppWallet:o,signTypedDataWithCrossAppWallet:i,sendTransactionWithCrossAppWallet:n}=e.usePrivyContext();return{loginWithCrossAppAccount:({appId:e})=>r({appId:e,action:"login"}),linkCrossAppAccount:({appId:e})=>r({appId:e,action:"link"}),unlinkCrossAppAccount:t,signMessage:o,signTypedData:i,sendTransaction:n}},exports.useCustomAuth=r=>{let{customAuthStatus:t}=o.usePrivyInternal();return e.usePrivyEventSubscription("customAuth",r),{status:t}},exports.useDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=o.usePrivyInternal();return{delegateWallet:async({address:e,chainType:t})=>await r({address:e,chainType:t,showDelegationUIs:!0}),revokeWallets:async()=>await e({showDelegationUIs:!0})}},exports.useFarcasterSigner=function(){let{getFarcasterSignerPublicKey:r,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:o}=e.usePrivyContext();return{getFarcasterSignerPublicKey:r,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:o}},exports.useGuestAccounts=function(){let r=e.useAppConfig(),{getAccessToken:t,createWallet:i}=e.usePrivy(),n=e.useEmitPrivyEvent(),{client:s,setUser:a,setAuthenticated:u,setIsNewUser:l,initializeWalletProxy:c,refreshSessionAndUser:d}=o.usePrivyInternal();return{createGuestAccount:async()=>{if(!r.id||!s)throw Error("SDK not yet ready");s.startAuthFlow(new e.GuestFlow(r.id));try{let{user:h,isNewUser:p}=await s.authenticate();if(p=p||!1,!h)throw new o.PrivyClientError("Unable to authenticate guest account");let y=await t(),C=await c(e.WALLET_PROXY_TIMEOUT);if(y&&C)try{let t=e.shouldCreateEmbeddedEthWallet(h,r.embeddedWallets.ethereum.createOnLogin),o=e.shouldCreateEmbeddedSolWallet(h,r.embeddedWallets.solana.createOnLogin);if(t&&o){let e=await i();await C.createSolana({accessToken:y,ethereumAddress:e?.address}),h=await d()}else o?(await C.createSolana({accessToken:y,ethereumAddress:e.getPrivyEthereumWallet(h)?.address}),h=await d()):t?(await i(),h=await d()):a(h)}catch(e){a(h),console.warn("Unable to create embedded wallet for guest account")}return l(p),u(!0),n("login","onComplete",{user:h,isNewUser:p,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),h}catch(e){throw n("login","onError",e.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}}},exports.useHeadlessDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=o.usePrivyInternal();return{delegateWallet:async({address:e,chainType:t})=>await r({address:e,chainType:t,showDelegationUIs:!1}),revokeWallets:async()=>await e({showDelegationUIs:!1})}},exports.useLinkAccount=function(r){let{linkEmail:o,linkPhone:i,linkWallet:n,linkGoogle:s,linkApple:a,linkTwitter:u,linkDiscord:l,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:p,linkInstagram:y,linkTelegram:C,linkFarcaster:g}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("linkAccount",r),{linkEmail:o,linkPhone:i,linkWallet:n,linkGoogle:s,linkApple:a,linkTwitter:u,linkDiscord:l,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:p,linkInstagram:y,linkFarcaster:g,linkTelegram:C}},exports.useLinkWithPasskey=e=>{let{initLinkWithPasskey:r,linkWithPasskey:i,passkeyAuthState:n,setPasskeyAuthState:s}=o.usePrivyInternal();return{linkWithPasskey:t.useCallback((async()=>{try{await r();let t=await i();if(!t)throw Error("Error, user not found");let o=t.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,r)=>r.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:t,linkMethod:"passkey",linkedAccount:o})}catch(r){throw s({status:"error",error:r}),e?.onError?.(r.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),r}}),[i]),state:n}},exports.useLinkWithSiwe=r=>{let i=e.useCaptcha(),{siweState:n,setSiweState:s,linkWithSiwe:a,generateSiweMessage:u}=o.usePrivyInternal();return{generateSiweMessage:t.useCallback((async({address:e,chainId:t})=>{try{if(!e||!t)throw Error("wallet address and chainId required to generate nonce");return await u({address:e,chainId:t}).then((e=>e))}catch(e){throw s({status:"error",error:e}),r?.onError?.(e.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),e}}),[u]),linkWithSiwe:t.useCallback((async({signature:t,message:n,chainId:u,walletClientType:l,connectorType:c})=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);let{user:s,linkedAccount:d}=await a({message:n,signature:t,chainId:u,walletClientType:l,connectorType:c});d&&r?.onSuccess?.({user:s,linkMethod:"siwe",linkedAccount:d})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),t}}),[a,i.status]),state:n}},exports.useLoginWithEmail=r=>{let i=e.useCaptcha(),{emailOtpState:n,setEmailOtpState:s,initLoginWithEmail:a,loginWithCode:u}=o.usePrivyInternal();return{sendCode:t.useCallback((async({email:t,disableSignup:n})=>{try{let r;if(!t)throw Error("Email required to send OTP code");if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);return i.enabled&&"success"!==i.status&&(i.execute(),r=await i.waitForResult()),await a({email:t,captchaToken:r,disableSignup:n,withPrivyUi:!1})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[a]),loginWithCode:t.useCallback((async({code:t})=>{try{if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);let{user:n,isNewUser:s,wasAlreadyAuthenticated:a,linkedAccount:l}=await u(t);r?.onComplete?.({user:n,isNewUser:s,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:l})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[u,i.status]),state:n}},exports.useLoginWithOAuth=r=>{e.usePrivyEventSubscription("login",r);let i=e.useCaptcha(),n=e.useIsServerConfigLoaded(),{ready:s,user:a}=e.usePrivyContext(),{initLoginWithHeadlessOAuth:u,loginWithHeadlessOAuth:l,oAuthState:c,setOAuthState:d,isHeadlessOAuthLoading:h}=o.usePrivyInternal(),p=t.useCallback((async r=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);return await u(r.provider,i.token,r.disableSignup)}catch(r){throw d({status:"error",error:r}),r}}),[u,i]),y=t.useCallback((async()=>{let r=e.detectCompletingOAuthFlow();try{if(a)return console.warn("Cannot login with OAuth when already logged in"),a;if(!r.inProgress)throw Error("Cannot login with OAuth because no OAuth flow is in progress");if(r.popupFlow)return}catch(r){throw d({status:"error",error:r}),r}try{return await l(r)}catch(r){throw d({status:"error",error:r}),r}finally{e.stripUrlOAuthParamsAndRemoveStateCode()}}),[l]);return t.useEffect((()=>{let r=e.detectCompletingOAuthFlow();s&&n&&r.inProgress&&!r.withPrivyUi&&!r.popupFlow&&y().catch((()=>{}))}),[s,n]),{initOAuth:p,loading:h,state:c}},exports.useLoginWithPasskey=r=>{let i=e.useCaptcha(),{initLoginWithPasskey:n,loginWithPasskey:s,passkeyAuthState:a,setPasskeyAuthState:u}=o.usePrivyInternal();return{loginWithPasskey:t.useCallback((async t=>{try{let a;if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);i.enabled&&"success"!==i.status&&(i.execute(),a=await i.waitForResult()),await n({captchaToken:a,withPrivyUi:!1});let{user:u,isNewUser:l,wasAlreadyAuthenticated:c,loginAccount:d}=await s(t);r?.onComplete?.({user:u,isNewUser:l,wasAlreadyAuthenticated:c,loginMethod:"passkey",loginAccount:d})}catch(t){throw u({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[s,i.status]),state:a}},exports.useLoginWithSms=r=>{let i=e.useCaptcha(),{smsOtpState:n,setSmsOtpState:s,initLoginWithSms:a,loginWithCode:u}=o.usePrivyInternal();return{sendCode:t.useCallback((async({phoneNumber:t,disableSignup:n})=>{try{let r;if(!t)throw Error("SMS required to send OTP code");if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);return i.enabled&&"success"!==i.status&&(i.execute(),r=await i.waitForResult()),await a({phoneNumber:t,captchaToken:r,disableSignup:n,withPrivyUi:!1})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[a]),loginWithCode:t.useCallback((async({code:t})=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);let{user:n,isNewUser:s,wasAlreadyAuthenticated:a,linkedAccount:l}=await u(t);r?.onComplete?.({user:n,isNewUser:s,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:l})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[u,i.status]),state:n}},exports.useLoginWithTelegram=r=>{let i=e.useCaptcha(),{initLoginWithTelegram:n,loginWithTelegram:s,telegramAuthState:a,setTelegramAuthState:u}=o.usePrivyInternal();return{login:t.useCallback((async t=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);await n(i.token,t?.disableSignup);let{user:a,isNewUser:u,loginAccount:l,wasAlreadyAuthenticated:c}=await s({intent:"login"});r?.onComplete?.({user:a,isNewUser:u,wasAlreadyAuthenticated:c,loginMethod:"telegram",loginAccount:l})}catch(t){throw u({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[n,s,i]),state:a}},exports.useModalStatus=()=>{let{isModalOpen:r}=t.useContext(e.PrivyContext);return{isOpen:r}},exports.useOAuthTokens=function(r){let{authenticated:t,user:i}=e.usePrivyContext(),{initLoginWithOAuth:n}=o.usePrivyInternal(),s=e.useEmitPrivyEvent();return e.usePrivyEventSubscription("oAuthAuthorization",r),{reauthorize:e=>a(t,i,n,s,e.provider)}},exports.useSendTransaction=function(r){let{sendTransaction:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("sendTransaction",r),{sendTransaction:o}},exports.useSetWalletPassword=function(r){let{setWalletPassword:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletPassword",r),{setWalletPassword:o}},exports.useSetWalletRecovery=function(r){let{setWalletRecovery:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletRecovery",r),{setWalletRecovery:o}},exports.useSignAuthorization=()=>{let{ready:r,wallets:s}=e.useWallets(),{user:a}=e.usePrivyContext(),{rpcConfig:u,chains:l,appId:c}=o.usePrivyInternal();return{signAuthorization:t.useCallback((async(t,o)=>{if(!a)throw Error("User must be authenticated before signing with a Privy wallet");if(!r)throw Error("Wallets are not ready");let d=o?.address??e.getPrivyEthereumWallet(a)?.address??i.zeroAddress,h=s.find((e=>i.getAddress(e.address)===i.getAddress(d)));if(!h)throw Error("Signing wallet not found.");let p=t.chainId??Number(h.chainId.split(":")[1]),y=l.find((e=>e.id===p));if(!y)throw Error("Error, chain not configured in PrivyProvider config");let C=i.createWalletClient({account:d,chain:y,transport:i.http(e.getJsonRpcEndpointFromChain(y,u,c))}).extend(n.eip7702Actions()),g=await C.prepareAuthorization({...t,sponsor:t.sponsor||void 0}),w=await h.getEthereumProvider(),A=await w.request({method:"secp256k1_sign",params:[n.hashAuthorization(g)]});return{...g,...i.parseSignature(A)}}),[r,s,a,l])}},exports.useSignMessage=function(r){let{signMessage:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signMessage",r),{signMessage:o}},exports.useSignTransaction=function(){let{signTransaction:r}=t.useContext(e.PrivyContext);return{signTransaction:r}},exports.useSignTypedData=function(r){let{signTypedData:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signTypedData",r),{signTypedData:o}},exports.useSignupWithPasskey=r=>{let i=e.useCaptcha(),{initSignupWithPasskey:n,signupWithPasskey:s,passkeyAuthState:a,setPasskeyAuthState:u}=o.usePrivyInternal();return{signupWithPasskey:t.useCallback((async()=>{try{let t;if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);i.enabled&&"success"!==i.status&&(i.execute(),t=await i.waitForResult()),await n({captchaToken:t,withPrivyUi:!1});let{user:a,isNewUser:u,wasAlreadyAuthenticated:l,loginAccount:c}=await s();r?.onComplete?.({user:a,isNewUser:u,wasAlreadyAuthenticated:l,loginMethod:"passkey",loginAccount:c})}catch(e){throw u({status:"error",error:e}),r?.onError?.(e.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}),[s,i.status]),state:a}},exports.useToken=function(r){let{getAccessToken:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("accessToken",r),{getAccessToken:o}},exports.useUpdateAccount=function(r){let{updateEmail:o,updatePhone:i}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("update",r),{updateEmail:o,updatePhone:i}},exports.useUser=()=>{let{setUser:r,client:i}=t.useContext(o.InternalPrivyContext),{user:n}=t.useContext(e.PrivyContext);return{user:n,refreshUser:t.useCallback((async()=>{let e=await(i?.updateUserAndIdToken());return r(e??null),e}),[i,r])}};
|
|
1
|
+
"use strict";var e=require("./privy-provider-B-yAVEso.js"),r=require("./useActiveWallet-CsKkB2nL.js"),t=require("react"),o=require("./internal-context-HesndSYh.js"),i=require("viem"),n=require("viem/experimental"),s=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js");require("react/jsx-runtime"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/js-sdk-core"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),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/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("zustand"),require("@walletconnect/ethereum-provider"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),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("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),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/ShieldCheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@headlessui/react"),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");let a=async(e,r,t,i,n)=>{if(!e)throw i("linkAccount","onError",o.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:n}),new o.PrivyClientError("User must be authenticated before linking an account.");if(!r?.linkedAccounts.some((e=>e.type.includes(n))))throw new o.PrivyClientError(`OAuth account of type ${n} not linked to the account.`);await t(n)};exports.Captcha=e.Captcha,exports.ConnectorManager=e.ConnectorManager,exports.EthereumWalletConnector=e.EthereumWalletConnector,exports.LoginModal=e.LoginModal,exports.PrivyClient=e.PrivyClient,exports.PrivyProvider=e.PrivyProvider,exports.SUPPORTED_CHAINS=e.DEFAULT_SUPPORTED_CHAINS,exports.VERSION=e.VERSION,exports.WalletConnector=e.WalletConnector,exports.addPrivyRpcToChain=e.addPrivyRpcToChain,exports.addRpcUrlOverrideToChain=e.addRpcUrlOverrideToChain,exports.errorIndicatesMaxMfaRetries=e.errorIndicatesMaxMfaRetries,exports.errorIndicatesMfaTimeout=e.errorIndicatesMfaTimeout,exports.errorIndicatesMfaVerificationFailed=e.errorIndicatesMfaVerificationFailed,exports.getAccessToken=e.getCustomerAccessToken,exports.useIdentityToken=e.useIdentityToken,exports.useImportWallet=e.useImportWallet,exports.useLogout=e.useLogout,exports.useMfa=e.useMfa,exports.useMfaEnrollment=e.useMfaEnrollment,exports.usePrivy=e.usePrivy,exports.useRegisterMfaListener=e.useRegisterMfaListener,exports.useSolanaWallets=e.useSolanaWallets,exports.useWallets=e.useWallets,exports.useActiveWallet=r.useActiveWallet,exports.useConnectWallet=r.useConnectWallet,exports.useFundWallet=r.useFundWallet,exports.useLogin=r.useLogin,exports.getEmbeddedConnectedWallet=s.getEmbeddedConnectedWallet,exports.useConnectCoinbaseSmartWallet=()=>{let{connectCoinbaseSmartWallet:e}=o.usePrivyInternal();return{connectCoinbaseSmartWallet:e}},exports.useConnectOrCreateWallet=r=>{let{connectOrCreateWallet:t}=e.usePrivyContext();return e.usePrivyEventSubscription("connectOrCreateWallet",r),{connectOrCreateWallet:t}},exports.useCreateWallet=function(r){let{createWallet:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("createWallet",r),{createWallet:o}},exports.useCrossAppAccounts=()=>{let{startCrossAppAuthFlow:r,unlinkCrossAppAccount:t,signMessageWithCrossAppWallet:o,signTypedDataWithCrossAppWallet:i,sendTransactionWithCrossAppWallet:n}=e.usePrivyContext();return{loginWithCrossAppAccount:({appId:e})=>r({appId:e,action:"login"}),linkCrossAppAccount:({appId:e})=>r({appId:e,action:"link"}),unlinkCrossAppAccount:t,signMessage:o,signTypedData:i,sendTransaction:n}},exports.useCustomAuth=r=>{let{customAuthStatus:t}=o.usePrivyInternal();return e.usePrivyEventSubscription("customAuth",r),{status:t}},exports.useDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=o.usePrivyInternal();return{delegateWallet:async({address:e,chainType:t})=>await r({address:e,chainType:t,showDelegationUIs:!0}),revokeWallets:async()=>await e({showDelegationUIs:!0})}},exports.useFarcasterSigner=function(){let{getFarcasterSignerPublicKey:r,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:o}=e.usePrivyContext();return{getFarcasterSignerPublicKey:r,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:o}},exports.useGuestAccounts=function(){let r=e.useAppConfig(),{getAccessToken:t,createWallet:i}=e.usePrivy(),n=e.useEmitPrivyEvent(),{client:s,setUser:a,setAuthenticated:u,setIsNewUser:l,initializeWalletProxy:c,refreshSessionAndUser:d}=o.usePrivyInternal();return{createGuestAccount:async()=>{if(!r.id||!s)throw Error("SDK not yet ready");s.startAuthFlow(new e.GuestFlow(r.id));try{let{user:h,isNewUser:p}=await s.authenticate();if(p=p||!1,!h)throw new o.PrivyClientError("Unable to authenticate guest account");let y=await t(),C=await c(e.WALLET_PROXY_TIMEOUT);if(y&&C)try{let t=e.shouldCreateEmbeddedEthWallet(h,r.embeddedWallets.ethereum.createOnLogin),o=e.shouldCreateEmbeddedSolWallet(h,r.embeddedWallets.solana.createOnLogin);if(t&&o){let e=await i();await C.createSolana({accessToken:y,ethereumAddress:e?.address}),h=await d()}else o?(await C.createSolana({accessToken:y,ethereumAddress:e.getPrivyEthereumWallet(h)?.address}),h=await d()):t?(await i(),h=await d()):a(h)}catch(e){a(h),console.warn("Unable to create embedded wallet for guest account")}return l(p),u(!0),n("login","onComplete",{user:h,isNewUser:p,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),h}catch(e){throw n("login","onError",e.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}}},exports.useHeadlessDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=o.usePrivyInternal();return{delegateWallet:async({address:e,chainType:t})=>await r({address:e,chainType:t,showDelegationUIs:!1}),revokeWallets:async()=>await e({showDelegationUIs:!1})}},exports.useLinkAccount=function(r){let{linkEmail:o,linkPhone:i,linkWallet:n,linkGoogle:s,linkApple:a,linkTwitter:u,linkDiscord:l,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:p,linkInstagram:y,linkTelegram:C,linkFarcaster:g}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("linkAccount",r),{linkEmail:o,linkPhone:i,linkWallet:n,linkGoogle:s,linkApple:a,linkTwitter:u,linkDiscord:l,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:p,linkInstagram:y,linkFarcaster:g,linkTelegram:C}},exports.useLinkWithPasskey=e=>{let{initLinkWithPasskey:r,linkWithPasskey:i,passkeyAuthState:n,setPasskeyAuthState:s}=o.usePrivyInternal();return{linkWithPasskey:t.useCallback((async()=>{try{await r();let t=await i();if(!t)throw Error("Error, user not found");let o=t.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,r)=>r.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:t,linkMethod:"passkey",linkedAccount:o})}catch(r){throw s({status:"error",error:r}),e?.onError?.(r.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),r}}),[i]),state:n}},exports.useLinkWithSiwe=r=>{let i=e.useCaptcha(),{siweState:n,setSiweState:s,linkWithSiwe:a,generateSiweMessage:u}=o.usePrivyInternal();return{generateSiweMessage:t.useCallback((async({address:e,chainId:t})=>{try{if(!e||!t)throw Error("wallet address and chainId required to generate nonce");return await u({address:e,chainId:t}).then((e=>e))}catch(e){throw s({status:"error",error:e}),r?.onError?.(e.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),e}}),[u]),linkWithSiwe:t.useCallback((async({signature:t,message:n,chainId:u,walletClientType:l,connectorType:c})=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);let{user:s,linkedAccount:d}=await a({message:n,signature:t,chainId:u,walletClientType:l,connectorType:c});d&&r?.onSuccess?.({user:s,linkMethod:"siwe",linkedAccount:d})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),t}}),[a,i.status]),state:n}},exports.useLoginWithEmail=r=>{let i=e.useCaptcha(),{emailOtpState:n,setEmailOtpState:s,initLoginWithEmail:a,loginWithCode:u}=o.usePrivyInternal();return{sendCode:t.useCallback((async({email:t,disableSignup:n})=>{try{let r;if(!t)throw Error("Email required to send OTP code");if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);return i.enabled&&"success"!==i.status&&(i.execute(),r=await i.waitForResult()),await a({email:t,captchaToken:r,disableSignup:n,withPrivyUi:!1})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[a]),loginWithCode:t.useCallback((async({code:t})=>{try{if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);let{user:n,isNewUser:s,wasAlreadyAuthenticated:a,linkedAccount:l}=await u(t);r?.onComplete?.({user:n,isNewUser:s,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:l})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[u,i.status]),state:n}},exports.useLoginWithOAuth=r=>{e.usePrivyEventSubscription("login",r);let i=e.useCaptcha(),n=e.useIsServerConfigLoaded(),{ready:s,user:a}=e.usePrivyContext(),{initLoginWithHeadlessOAuth:u,loginWithHeadlessOAuth:l,oAuthState:c,setOAuthState:d,isHeadlessOAuthLoading:h}=o.usePrivyInternal(),p=t.useCallback((async r=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);return await u(r.provider,i.token,r.disableSignup)}catch(r){throw d({status:"error",error:r}),r}}),[u,i]),y=t.useCallback((async()=>{let r=e.detectCompletingOAuthFlow();try{if(a)return console.warn("Cannot login with OAuth when already logged in"),a;if(!r.inProgress)throw Error("Cannot login with OAuth because no OAuth flow is in progress");if(r.popupFlow)return}catch(r){throw d({status:"error",error:r}),r}try{return await l(r)}catch(r){throw d({status:"error",error:r}),r}finally{e.stripUrlOAuthParamsAndRemoveStateCode()}}),[l]);return t.useEffect((()=>{let r=e.detectCompletingOAuthFlow();s&&n&&r.inProgress&&!r.withPrivyUi&&!r.popupFlow&&y().catch((()=>{}))}),[s,n]),{initOAuth:p,loading:h,state:c}},exports.useLoginWithPasskey=r=>{let i=e.useCaptcha(),{initLoginWithPasskey:n,loginWithPasskey:s,passkeyAuthState:a,setPasskeyAuthState:u}=o.usePrivyInternal();return{loginWithPasskey:t.useCallback((async t=>{try{let a;if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);i.enabled&&"success"!==i.status&&(i.execute(),a=await i.waitForResult()),await n({captchaToken:a,withPrivyUi:!1});let{user:u,isNewUser:l,wasAlreadyAuthenticated:c,loginAccount:d}=await s(t);r?.onComplete?.({user:u,isNewUser:l,wasAlreadyAuthenticated:c,loginMethod:"passkey",loginAccount:d})}catch(t){throw u({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[s,i.status]),state:a}},exports.useLoginWithSms=r=>{let i=e.useCaptcha(),{smsOtpState:n,setSmsOtpState:s,initLoginWithSms:a,loginWithCode:u}=o.usePrivyInternal();return{sendCode:t.useCallback((async({phoneNumber:t,disableSignup:n})=>{try{let r;if(!t)throw Error("SMS required to send OTP code");if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);return i.enabled&&"success"!==i.status&&(i.execute(),r=await i.waitForResult()),await a({phoneNumber:t,captchaToken:r,disableSignup:n,withPrivyUi:!1})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[a]),loginWithCode:t.useCallback((async({code:t})=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);let{user:n,isNewUser:s,wasAlreadyAuthenticated:a,linkedAccount:l}=await u(t);r?.onComplete?.({user:n,isNewUser:s,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:l})}catch(t){throw s({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[u,i.status]),state:n}},exports.useLoginWithTelegram=r=>{let i=e.useCaptcha(),{initLoginWithTelegram:n,loginWithTelegram:s,telegramAuthState:a,setTelegramAuthState:u}=o.usePrivyInternal();return{login:t.useCallback((async t=>{try{if(i.enabled&&"success"!==i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);await n(i.token,t?.disableSignup);let{user:a,isNewUser:u,loginAccount:l,wasAlreadyAuthenticated:c}=await s({intent:"login"});r?.onComplete?.({user:a,isNewUser:u,wasAlreadyAuthenticated:c,loginMethod:"telegram",loginAccount:l})}catch(t){throw u({status:"error",error:t}),r?.onError?.(t.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),t}}),[n,s,i]),state:a}},exports.useModalStatus=()=>{let{isModalOpen:r}=t.useContext(e.PrivyContext);return{isOpen:r}},exports.useOAuthTokens=function(r){let{authenticated:t,user:i}=e.usePrivyContext(),{initLoginWithOAuth:n}=o.usePrivyInternal(),s=e.useEmitPrivyEvent();return e.usePrivyEventSubscription("oAuthAuthorization",r),{reauthorize:e=>a(t,i,n,s,e.provider)}},exports.useSendTransaction=function(r){let{sendTransaction:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("sendTransaction",r),{sendTransaction:o}},exports.useSetWalletPassword=function(r){let{setWalletPassword:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletPassword",r),{setWalletPassword:o}},exports.useSetWalletRecovery=function(r){let{setWalletRecovery:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletRecovery",r),{setWalletRecovery:o}},exports.useSignAuthorization=()=>{let{ready:r,wallets:s}=e.useWallets(),{user:a}=e.usePrivyContext(),{rpcConfig:u,chains:l,appId:c}=o.usePrivyInternal();return{signAuthorization:t.useCallback((async(t,o)=>{if(!a)throw Error("User must be authenticated before signing with a Privy wallet");if(!r)throw Error("Wallets are not ready");let d=o?.address??e.getPrivyEthereumWallet(a)?.address??i.zeroAddress,h=s.find((e=>i.getAddress(e.address)===i.getAddress(d)));if(!h)throw Error("Signing wallet not found.");let p=t.chainId??Number(h.chainId.split(":")[1]),y=l.find((e=>e.id===p));if(!y)throw Error("Error, chain not configured in PrivyProvider config");let C=i.createWalletClient({account:d,chain:y,transport:i.http(e.getJsonRpcEndpointFromChain(y,u,c))}).extend(n.eip7702Actions()),g=await C.prepareAuthorization({...t,sponsor:t.sponsor||void 0}),w=await h.getEthereumProvider(),A=await w.request({method:"secp256k1_sign",params:[n.hashAuthorization(g)]});return{...g,...i.parseSignature(A)}}),[r,s,a,l])}},exports.useSignMessage=function(r){let{signMessage:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signMessage",r),{signMessage:o}},exports.useSignTransaction=function(){let{signTransaction:r}=t.useContext(e.PrivyContext);return{signTransaction:r}},exports.useSignTypedData=function(r){let{signTypedData:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signTypedData",r),{signTypedData:o}},exports.useSignupWithPasskey=r=>{let i=e.useCaptcha(),{initSignupWithPasskey:n,signupWithPasskey:s,passkeyAuthState:a,setPasskeyAuthState:u}=o.usePrivyInternal();return{signupWithPasskey:t.useCallback((async()=>{try{let t;if(i.enabled&&"error"===i.status)throw new e.CaptchaError(i.error,null,o.PrivyErrorCode.CAPTCHA_FAILURE);i.enabled&&"success"!==i.status&&(i.execute(),t=await i.waitForResult()),await n({captchaToken:t,withPrivyUi:!1});let{user:a,isNewUser:u,wasAlreadyAuthenticated:l,loginAccount:c}=await s();r?.onComplete?.({user:a,isNewUser:u,wasAlreadyAuthenticated:l,loginMethod:"passkey",loginAccount:c})}catch(e){throw u({status:"error",error:e}),r?.onError?.(e.privyErrorCode||o.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}),[s,i.status]),state:a}},exports.useToken=function(r){let{getAccessToken:o}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("accessToken",r),{getAccessToken:o}},exports.useUpdateAccount=function(r){let{updateEmail:o,updatePhone:i}=t.useContext(e.PrivyContext);return e.usePrivyEventSubscription("update",r),{updateEmail:o,updatePhone:i}},exports.useUser=()=>{let{setUser:r,client:i}=t.useContext(o.InternalPrivyContext),{user:n}=t.useContext(e.PrivyContext);return{user:n,refreshUser:t.useCallback((async()=>{let e=await(i?.updateUserAndIdToken());return r(e??null),e}),[i,r])}};
|