@privy-io/react-auth 2.13.3 → 2.13.5

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 (41) hide show
  1. package/dist/cjs/abstract-smart-wallets.js +1 -1
  2. package/dist/cjs/farcaster.js +1 -1
  3. package/dist/cjs/{frame-gaUtF4i1.js → frame-Czznns2Z.js} +1 -1
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/cjs/internal-context-VGU3duZo.js +1 -0
  6. package/dist/cjs/{privy-provider-BZ-EOdfp.js → privy-provider-MQXR_94C.js} +6 -6
  7. package/dist/cjs/{smart-wallets-ZbySP4Ih.js → smart-wallets-QMreSRgO.js} +1 -1
  8. package/dist/cjs/smart-wallets.js +1 -1
  9. package/dist/cjs/solana.js +1 -1
  10. package/dist/cjs/ui.js +1 -1
  11. package/dist/cjs/{useActiveWallet-DHiaJEM-.js → useActiveWallet-KIL5_ZKg.js} +1 -1
  12. package/dist/cjs/{useFundWallet-DAr5V8vT.js → useFundWallet-B-tpTxi5.js} +1 -1
  13. package/dist/dts/farcaster.d.mts +1 -1
  14. package/dist/dts/farcaster.d.ts +1 -1
  15. package/dist/dts/index.d.mts +4 -4
  16. package/dist/dts/index.d.ts +4 -4
  17. package/dist/dts/smart-wallets.d.mts +1 -1
  18. package/dist/dts/smart-wallets.d.ts +1 -1
  19. package/dist/dts/solana.d.mts +4 -4
  20. package/dist/dts/solana.d.ts +4 -4
  21. package/dist/dts/{types-DyEV6BvF.d.mts → types-BWtvBcM8.d.mts} +2 -1
  22. package/dist/dts/{types-DyEV6BvF.d.ts → types-BWtvBcM8.d.ts} +2 -1
  23. package/dist/dts/ui.d.mts +1 -1
  24. package/dist/dts/ui.d.ts +1 -1
  25. package/dist/dts/{useSolanaWallets-Du4VmXQ1.d.mts → useSolanaWallets-mdkbgoJN.d.mts} +1 -1
  26. package/dist/dts/{useSolanaWallets-Du4VmXQ1.d.ts → useSolanaWallets-mdkbgoJN.d.ts} +1 -1
  27. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  28. package/dist/esm/farcaster.mjs +1 -1
  29. package/dist/esm/{frame-DcLJJ5Fa.mjs → frame-S_4wR3Zf.mjs} +1 -1
  30. package/dist/esm/index.mjs +1 -1
  31. package/dist/esm/internal-context-pX7RZwl3.mjs +1 -0
  32. package/dist/esm/{privy-provider-CeZefZDF.mjs → privy-provider-CKeDZ7hH.mjs} +6 -6
  33. package/dist/esm/{smart-wallets-DO8wiGL0.mjs → smart-wallets-svgZ8ws9.mjs} +1 -1
  34. package/dist/esm/smart-wallets.mjs +1 -1
  35. package/dist/esm/solana.mjs +1 -1
  36. package/dist/esm/ui.mjs +1 -1
  37. package/dist/esm/{useActiveWallet-BzaD7wH1.mjs → useActiveWallet-C-0_400K.mjs} +1 -1
  38. package/dist/esm/{useFundWallet-5tP5V2a8.mjs → useFundWallet-Bj-cO428.mjs} +1 -1
  39. package/package.json +3 -3
  40. package/dist/cjs/internal-context-D-v3o9iX.js +0 -1
  41. package/dist/esm/internal-context-BOEPXMqX.mjs +0 -1
@@ -1 +1 @@
1
- "use strict";var e=require("@abstract-foundation/agw-client"),r=require("@abstract-foundation/agw-client/actions"),n=require("viem"),t=require("viem/accounts"),i=require("viem/chains"),o=require("./privy-provider-BZ-EOdfp.js"),a=require("./internal-context-D-v3o9iX.js"),c=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),s=require("./smart-wallets-ZbySP4Ih.js");require("react/jsx-runtime"),require("mipd"),require("react"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),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/solid/ArrowsRightLeftIcon"),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/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:l}=o.usePrivyContext(),{hideWalletUIs:u,openPrivyModal:d,chains:h,appId:p,rpcConfig:q,client:g}=a.usePrivyInternal(),y=o.useAppConfig(),{wallets:m}=o.useWallets(),{setModalData:I}=o.usePrivyModal(),v=o.getPrivyEthereumWallet(l),C=!!v&&o.getIsUnifiedWallet(v),T=async(r=i.abstractTestnet.id)=>{let a=c.getEmbeddedConnectedWallet(m);if(!a)throw Error("No connected wallet found");let s="string"==typeof r?n.hexToNumber(r):r;if(![i.abstractTestnet.id,2741].includes(s))throw Error("Error, only Abstract chains are supported");let l=h.find((e=>e.id===s));if(!l)throw Error("Chain not configured");await a.switchChain(l.id);let u=await a.getEthereumProvider(),d=n.createWalletClient({account:a.address,transport:n.custom(u)}),g=t.toAccount({address:a.address,signMessage:d.signMessage,signTransaction:d.signTransaction,signTypedData:d.signTypedData});return await e.createAbstractClient({chain:l,transport:n.http(o.getJsonRpcEndpointFromChain(l,q,p)),publicTransport:n.http(o.getJsonRpcEndpointFromChain(l,q,p)),signer:g})};return{signMessage:async({message:e},r)=>{let n=await T(r);return new Promise((async(r,t)=>{let{entropyId:i,entropyIdVerifier:a}=o.getEntropyDetailsForUser(l);u.current=!0,I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:i,entropyIdVerifier:a,onCompleteNavigateTo:o.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"personal_sign",data:e,confirmAndSign:()=>n.signMessage({message:e}),onSuccess:e=>r(e),onFailure:t,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))},signTypedData:async(e,r)=>{let n=await T(r);return new Promise((async(r,t)=>{u.current=!0;let{entropyId:i,entropyIdVerifier:a}=o.getEntropyDetailsForUser(l);I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:i,entropyIdVerifier:a,onCompleteNavigateTo:o.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>n.signTypedData(e),onSuccess:e=>r(e),onFailure:t,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))},sendTransaction:async e=>{let n=await T(e.chainId),t=[],i="calls"in e&&void 0!==e.calls;return t=i?[...e.calls]:[e],new Promise((async(a,c)=>{u.current=!0;let{entropyId:h,entropyIdVerifier:p}=o.getEntropyDetailsForUser(l);I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:h,entropyIdVerifier:p,onCompleteNavigateTo:o.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:s.callsToTransactionRequests({calls:t,chain:n.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:h,entropyIdVerifier:p,transactingWalletAddress:n.account.address,transactingWalletIndex:void 0,prepareTransactionRequest:async()=>{let t=i?r.getBatchTransactionObject(n.account.address,e):e;return await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput})},scanTransaction:async()=>{if(!g)throw Error("Privy client not found");let t=i?r.getBatchTransactionObject(n.account.address,e):e,o=await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput});return await g.scanTransaction({metadata:{domain:y.embeddedWallets.transactionScanning.domain},chain_id:e.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:o.from,to:o.to,value:o.value?.toString(),gas:o.gas?.toString(),gasPrice:o.gasPrice?.toString(),nonce:o.nonce?.toString(),data:o.data,eip_712_meta:{paymaster_params:{paymaster:o.paymaster,paymaster_input:o.paymasterInput}}}]}})},signOnly:!1,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>i?n.sendTransactionBatch(e):n.sendTransaction(e),onSuccess:e=>a(e.hash),onFailure:c,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))},signTransaction:async e=>{let n=await T(e.chainId),t=[],i="calls"in e&&void 0!==e.calls;return t=i?[...e.calls]:[e],new Promise((async(a,c)=>{u.current=!0;let{entropyId:h,entropyIdVerifier:p}=o.getEntropyDetailsForUser(l);I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:h,entropyIdVerifier:p,onCompleteNavigateTo:o.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:s.callsToTransactionRequests({calls:t,chain:n.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:h,entropyIdVerifier:p,transactingWalletAddress:n.account.address,transactingWalletIndex:void 0,prepareTransactionRequest:async()=>{let t=i?r.getBatchTransactionObject(n.account.address,e):e;return await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput})},scanTransaction:async()=>{if(!g)throw Error("Privy client not found");let t=i?r.getBatchTransactionObject(n.account.address,e):e,o=await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput});return await g.scanTransaction({metadata:{domain:y.embeddedWallets.transactionScanning.domain},chain_id:e.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:o.from,to:o.to,value:o.value?.toString(),gas:o.gas?.toString(),gasPrice:o.gasPrice?.toString(),nonce:o.nonce?.toString(),data:o.data}]}})},signOnly:!0,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:async()=>{let t=i?r.getBatchTransactionObject(n.account.address,e):e,o=await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput});return n.signTransaction(o)},onSuccess:e=>a(e.hash),onFailure:c,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))}}};
1
+ "use strict";var e=require("@abstract-foundation/agw-client"),r=require("@abstract-foundation/agw-client/actions"),n=require("viem"),t=require("viem/accounts"),i=require("viem/chains"),o=require("./privy-provider-MQXR_94C.js"),a=require("./internal-context-VGU3duZo.js"),c=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),s=require("./smart-wallets-QMreSRgO.js");require("react/jsx-runtime"),require("mipd"),require("react"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),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/solid/ArrowsRightLeftIcon"),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/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:l}=o.usePrivyContext(),{hideWalletUIs:u,openPrivyModal:d,chains:h,appId:p,rpcConfig:q,client:g}=a.usePrivyInternal(),y=o.useAppConfig(),{wallets:m}=o.useWallets(),{setModalData:I}=o.usePrivyModal(),v=o.getPrivyEthereumWallet(l),C=!!v&&o.getIsUnifiedWallet(v),T=async(r=i.abstractTestnet.id)=>{let a=c.getEmbeddedConnectedWallet(m);if(!a)throw Error("No connected wallet found");let s="string"==typeof r?n.hexToNumber(r):r;if(![i.abstractTestnet.id,2741].includes(s))throw Error("Error, only Abstract chains are supported");let l=h.find((e=>e.id===s));if(!l)throw Error("Chain not configured");await a.switchChain(l.id);let u=await a.getEthereumProvider(),d=n.createWalletClient({account:a.address,transport:n.custom(u)}),g=t.toAccount({address:a.address,signMessage:d.signMessage,signTransaction:d.signTransaction,signTypedData:d.signTypedData});return await e.createAbstractClient({chain:l,transport:n.http(o.getJsonRpcEndpointFromChain(l,q,p)),publicTransport:n.http(o.getJsonRpcEndpointFromChain(l,q,p)),signer:g})};return{signMessage:async({message:e},r)=>{let n=await T(r);return new Promise((async(r,t)=>{let{entropyId:i,entropyIdVerifier:a}=o.getEntropyDetailsForUser(l);u.current=!0,I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:i,entropyIdVerifier:a,onCompleteNavigateTo:o.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"personal_sign",data:e,confirmAndSign:()=>n.signMessage({message:e}),onSuccess:e=>r(e),onFailure:t,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))},signTypedData:async(e,r)=>{let n=await T(r);return new Promise((async(r,t)=>{u.current=!0;let{entropyId:i,entropyIdVerifier:a}=o.getEntropyDetailsForUser(l);I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:i,entropyIdVerifier:a,onCompleteNavigateTo:o.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>n.signTypedData(e),onSuccess:e=>r(e),onFailure:t,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))},sendTransaction:async e=>{let n=await T(e.chainId),t=[],i="calls"in e&&void 0!==e.calls;return t=i?[...e.calls]:[e],new Promise((async(a,c)=>{u.current=!0;let{entropyId:h,entropyIdVerifier:p}=o.getEntropyDetailsForUser(l);I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:h,entropyIdVerifier:p,onCompleteNavigateTo:o.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:s.callsToTransactionRequests({calls:t,chain:n.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:h,entropyIdVerifier:p,transactingWalletAddress:n.account.address,transactingWalletIndex:void 0,prepareTransactionRequest:async()=>{let t=i?r.getBatchTransactionObject(n.account.address,e):e;return await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput})},scanTransaction:async()=>{if(!g)throw Error("Privy client not found");let t=i?r.getBatchTransactionObject(n.account.address,e):e,o=await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput});return await g.scanTransaction({metadata:{domain:y.embeddedWallets.transactionScanning.domain},chain_id:e.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:o.from,to:o.to,value:o.value?.toString(),gas:o.gas?.toString(),gasPrice:o.gasPrice?.toString(),nonce:o.nonce?.toString(),data:o.data,eip_712_meta:{paymaster_params:{paymaster:o.paymaster,paymaster_input:o.paymasterInput}}}]}})},signOnly:!1,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>i?n.sendTransactionBatch(e):n.sendTransaction(e),onSuccess:e=>a(e.hash),onFailure:c,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))},signTransaction:async e=>{let n=await T(e.chainId),t=[],i="calls"in e&&void 0!==e.calls;return t=i?[...e.calls]:[e],new Promise((async(a,c)=>{u.current=!0;let{entropyId:h,entropyIdVerifier:p}=o.getEntropyDetailsForUser(l);I({connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,isUnifiedWallet:C,entropyId:h,entropyIdVerifier:p,onCompleteNavigateTo:o.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:s.callsToTransactionRequests({calls:t,chain:n.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:h,entropyIdVerifier:p,transactingWalletAddress:n.account.address,transactingWalletIndex:void 0,prepareTransactionRequest:async()=>{let t=i?r.getBatchTransactionObject(n.account.address,e):e;return await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput})},scanTransaction:async()=>{if(!g)throw Error("Privy client not found");let t=i?r.getBatchTransactionObject(n.account.address,e):e,o=await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput});return await g.scanTransaction({metadata:{domain:y.embeddedWallets.transactionScanning.domain},chain_id:e.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:o.from,to:o.to,value:o.value?.toString(),gas:o.gas?.toString(),gasPrice:o.gasPrice?.toString(),nonce:o.nonce?.toString(),data:o.data}]}})},signOnly:!0,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:async()=>{let t=i?r.getBatchTransactionObject(n.account.address,e):e,o=await n.prepareAbstractTransactionRequest({...t,isSponsored:void 0!==t.paymaster&&void 0!==t.paymasterInput});return n.signTransaction(o)},onSuccess:e=>a(e.hash),onFailure:c,uiOptions:{isCancellable:!0}}}),d(o.EmbeddedWalletConnectingScreen)})).finally((()=>{u.current=!1}))}}};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("./frame-gaUtF4i1.js"),t=require("./internal-context-D-v3o9iX.js");require("ofetch");exports.useLoginToFrame=()=>{let{client:i,setAuthenticated:a,setUser:n}=t.usePrivyInternal();return{initLoginToFrame:e.useCallback((async()=>{let e=new r.FarcasterFramesFlow;if(!i)throw new t.PrivyClientError("Must initialize Privy client first.");return i.startAuthFlow(e),await e.init()}),[i]),loginToFrame:e.useCallback((async({message:e,signature:s})=>{if(!i)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(i.authFlow instanceof r.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster frame flow first.");let l=(e=>{let r=e.match(/farcaster:\/\/fid\/(\d+)/);return r&&r[1]?parseInt(r[1],10):null})(e);if(!l)throw new t.PrivyClientError("Invalid message format; could not parse Farcaster ID.");i.authFlow.setAuthData({message:e,signature:s,fid:l});let{user:o}=await i.authenticate();return o&&(n(o),a(!0)),o}),[i,n,a])}};
1
+ "use strict";var e=require("react"),r=require("./frame-Czznns2Z.js"),t=require("./internal-context-VGU3duZo.js");require("ofetch");exports.useLoginToFrame=()=>{let{client:i,setAuthenticated:a,setUser:n}=t.usePrivyInternal();return{initLoginToFrame:e.useCallback((async()=>{let e=new r.FarcasterFramesFlow;if(!i)throw new t.PrivyClientError("Must initialize Privy client first.");return i.startAuthFlow(e),await e.init()}),[i]),loginToFrame:e.useCallback((async({message:e,signature:s})=>{if(!i)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(i.authFlow instanceof r.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster frame flow first.");let l=(e=>{let r=e.match(/farcaster:\/\/fid\/(\d+)/);return r&&r[1]?parseInt(r[1],10):null})(e);if(!l)throw new t.PrivyClientError("Invalid message format; could not parse Farcaster ID.");i.authFlow.setAuthData({message:e,signature:s,fid:l});let{user:o}=await i.authenticate();return o&&(n(o),a(!0)),o}),[i,n,a])}};
@@ -1 +1 @@
1
- "use strict";var t=require("./internal-context-D-v3o9iX.js");exports.FarcasterFramesFlow=class{async init(){if(!this.api)throw new t.PrivyClientError("Auth flow has no API instance");let{nonce:i,expires_at:e}=await this.api.post(t.initFarcasterV2Path,{});return{nonce:i,expiresAt:e}}async authenticate(){if(!this.message||!this.signature||!this.fid)throw new t.PrivyClientError("Auth flow has no message, signature, or fid");if(!this.api)throw new t.PrivyClientError("Auth flow has no API instance");try{let i=await this.api.post(t.authenticateFarcasterV2Path,{message:this.message,signature:this.signature,fid:this.fid});if(!i)throw new t.PrivyClientError("No response from authentication");return i}catch(i){throw t.formatApiError(i)}}async link(){throw Error("Not implemented")}setAuthData({message:t,signature:i,fid:e}){this.message=t,this.signature=i,this.fid=e}constructor(){this.meta={}}};
1
+ "use strict";var t=require("./internal-context-VGU3duZo.js");exports.FarcasterFramesFlow=class{async init(){if(!this.api)throw new t.PrivyClientError("Auth flow has no API instance");let{nonce:i,expires_at:e}=await this.api.post(t.initFarcasterV2Path,{});return{nonce:i,expiresAt:e}}async authenticate(){if(!this.message||!this.signature||!this.fid)throw new t.PrivyClientError("Auth flow has no message, signature, or fid");if(!this.api)throw new t.PrivyClientError("Auth flow has no API instance");try{let i=await this.api.post(t.authenticateFarcasterV2Path,{message:this.message,signature:this.signature,fid:this.fid});if(!i)throw new t.PrivyClientError("No response from authentication");return i}catch(i){throw t.formatApiError(i)}}async link(){throw Error("Not implemented")}setAuthData({message:t,signature:i,fid:e}){this.message=t,this.signature=i,this.fid=e}constructor(){this.meta={}}};
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./privy-provider-BZ-EOdfp.js"),r=require("react"),t=require("./internal-context-D-v3o9iX.js"),i=require("./useActiveWallet-DHiaJEM-.js"),o=require("./frame-gaUtF4i1.js"),s=require("viem"),n=require("viem/utils"),a=require("@privy-io/js-sdk-core"),l=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js");require("react/jsx-runtime"),require("mipd"),require("react-device-detect"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),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/solid/ArrowsRightLeftIcon"),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/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 u=async(e,r,i,o,s)=>{if(!e)throw o("linkAccount","onError",t.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:s}),new t.PrivyClientError("User must be authenticated before linking an account.");if(!r?.linkedAccounts.some((e=>e.type.includes(s))))throw new t.PrivyClientError(`OAuth account of type ${s} not linked to the account.`);await i(s)};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.VERSION=e.VERSION,exports.WalletConnector=e.WalletConnector,exports.errorIndicatesMaxMfaRetries=e.errorIndicatesMaxMfaRetries,exports.errorIndicatesMfaTimeout=e.errorIndicatesMfaTimeout,exports.errorIndicatesMfaVerificationFailed=e.errorIndicatesMfaVerificationFailed,exports.getAccessToken=e.getCustomerAccessToken,exports.useCreateWallet=e.useCreateWallet,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.useSyncJwtBasedAuthState=e.useSyncJwtBasedAuthState,exports.useWallets=e.useWallets,exports.useActiveWallet=i.useActiveWallet,exports.useConnectWallet=i.useConnectWallet,exports.useFundWallet=i.useFundWallet,exports.useLogin=i.useLogin,Object.defineProperty(exports,"SUPPORTED_CHAINS",{enumerable:!0,get:function(){return a.DEFAULT_SUPPORTED_CHAINS}}),Object.defineProperty(exports,"addPrivyRpcToChain",{enumerable:!0,get:function(){return a.addPrivyRpcToChain}}),Object.defineProperty(exports,"addRpcUrlOverrideToChain",{enumerable:!0,get:function(){return a.addRpcUrlOverrideToChain}}),exports.getEmbeddedConnectedWallet=l.getEmbeddedConnectedWallet,exports.useConnectCoinbaseSmartWallet=()=>{let{connectCoinbaseSmartWallet:e}=t.usePrivyInternal();return{connectCoinbaseSmartWallet:e}},exports.useConnectOrCreateWallet=r=>{let{connectOrCreateWallet:t}=e.usePrivyContext();return e.usePrivyEventSubscription("connectOrCreateWallet",r),{connectOrCreateWallet:t}},exports.useCrossAppAccounts=()=>{let{startCrossAppAuthFlow:r,unlinkCrossAppAccount:t,signMessageWithCrossAppWallet:i,signTypedDataWithCrossAppWallet:o,sendTransactionWithCrossAppWallet:s}=e.usePrivyContext();return{loginWithCrossAppAccount:({appId:e})=>r({appId:e,action:"login"}),linkCrossAppAccount:({appId:e})=>r({appId:e,action:"link"}),unlinkCrossAppAccount:t,signMessage:i,signTypedData:o,sendTransaction:s}},exports.useCustomAuth=r=>{let t=e.useJwtAuthFlowState();return e.usePrivyEventSubscription("customAuth",r),{status:t}},exports.useDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=t.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:i}=e.usePrivyContext();return{getFarcasterSignerPublicKey:r,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:i}},exports.useGuestAccounts=function(){let r=e.useAppConfig(),{getAccessToken:i}=e.usePrivyContext(),o=e.useEmitPrivyEvent(),{client:s,setUser:n,setAuthenticated:a,setIsNewUser:l,initializeWalletProxy:u}=t.usePrivyInternal(),{create:c}=e.useCreateWalletInternal();return{createGuestAccount:async()=>{if(!r.id||!s)throw Error("SDK not yet ready");s.startAuthFlow(new e.GuestFlow(r.id));try{let d=await s.authenticate(),h=d.user,y=d.isNewUser??!1;if(!h)throw new t.PrivyClientError("Unable to authenticate guest account");let w=await i(),p=await u(e.WALLET_PROXY_TIMEOUT);if(w&&p)try{let t=e.shouldCreateEmbeddedEthWallet(h,r.embeddedWallets.ethereum.createOnLogin),i=e.shouldCreateEmbeddedSolWallet(h,r.embeddedWallets.solana.createOnLogin);t&&i?(h=(await c({chainType:"ethereum",latestUser:h})).user,h=(await c({chainType:"solana",latestUser:h})).user):i?h=(await c({chainType:"solana",latestUser:h})).user:t?h=(await c({chainType:"ethereum",latestUser:h})).user:n(h)}catch(e){n(h),console.warn("Unable to create embedded wallet for guest account")}return l(y),a(!0),o("login","onComplete",{user:h,isNewUser:y,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),h}catch(e){throw o("login","onError",e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}}},exports.useHeadlessDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=t.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(t){let{linkEmail:i,linkPhone:o,linkWallet:s,linkGoogle:n,linkApple:a,linkTwitter:l,linkDiscord:u,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:y,linkInstagram:w,linkTelegram:p,linkFarcaster:g,linkPasskey:C}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("linkAccount",t),{linkEmail:i,linkPhone:o,linkWallet:s,linkGoogle:n,linkApple:a,linkTwitter:l,linkDiscord:u,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:y,linkInstagram:w,linkFarcaster:g,linkTelegram:p,linkPasskey:C}},exports.useLinkJwtAccount=function(i){let{client:o}=t.usePrivyInternal(),[s,n]=r.useState({status:"initial"});return{linkWithCustomJwt:r.useCallback((async r=>{try{n({status:"initial"}),o.startAuthFlow(new e.CustomJwtAccountFlow(r)),n({status:"loading"});let{user:t}=await o.link();if(!t)throw Error("Error, user not found");let s=t.linkedAccounts.filter((e=>"custom_auth"===e.type)).sort(((e,r)=>r.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime())).at(0);return n({status:"done"}),i?.onSuccess?.({user:t,linkMethod:"custom",linkedAccount:s}),{user:t}}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"custom"}),r}}),[o.startAuthFlow,o.link]),state:s}},exports.useLinkWithPasskey=e=>{let{initLinkWithPasskey:i,linkWithPasskey:o,passkeyAuthState:s,setPasskeyAuthState:n}=t.usePrivyInternal();return{linkWithPasskey:r.useCallback((async()=>{try{await i();let r=await o();if(!r)throw Error("Error, user not found");let t=r.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,r)=>r.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:r,linkMethod:"passkey",linkedAccount:t})}catch(r){throw n({status:"error",error:r}),e?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),r}}),[o]),state:s}},exports.useLinkWithSiwe=i=>{let o=e.useCaptcha(),{siweState:s,setSiweState:n,linkWithSiwe:a,generateSiweMessage:l}=t.usePrivyInternal();return{generateSiweMessage:r.useCallback((async({address:e,chainId:r})=>{try{if(!e||!r)throw Error("wallet address and chainId required to generate nonce");return await l({address:e,chainId:r}).then((e=>e))}catch(e){throw n({status:"error",error:e}),i?.onError?.(e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),e}}),[l]),linkWithSiwe:r.useCallback((async({signature:r,message:s,chainId:l,walletClientType:u,connectorType:c})=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);let{user:n,linkedAccount:d}=await a({message:s,signature:r,chainId:l,walletClientType:u,connectorType:c});d&&i?.onSuccess?.({user:n,linkMethod:"siwe",linkedAccount:d})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),r}}),[a,o.status]),state:s}},exports.useLoginWithEmail=i=>{let o=e.useCaptcha(),{emailOtpState:s,setEmailOtpState:n,initLoginWithEmail:a,loginWithCode:l}=t.usePrivyInternal();return{sendCode:r.useCallback((async({email:r,disableSignup:s})=>{try{let i;if(!r)throw Error("Email required to send OTP code");if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);return o.enabled&&"success"!==o.status&&(o.execute(),i=await o.waitForResult()),await a({email:r,captchaToken:i,disableSignup:s,withPrivyUi:!1})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[a]),loginWithCode:r.useCallback((async({code:r})=>{try{if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);let{user:s,isNewUser:n,wasAlreadyAuthenticated:a,linkedAccount:u}=await l(r);i?.onComplete?.({user:s,isNewUser:n,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:u})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[l,o.status]),state:s}},exports.useLoginWithFarcasterV2=()=>{let{client:e,setAuthenticated:i,setUser:s}=t.usePrivyInternal();return r.useMemo((()=>({init:async()=>{if(!e)throw new t.PrivyClientError("Must initialize Privy client first.");let r=new o.FarcasterFramesFlow;return e.startAuthFlow(r),await r.init()},login:async({fid:r,message:n,signature:a})=>{if(!e)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(e.authFlow instanceof o.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster frame flow first.");e.authFlow.setAuthData({message:n,signature:a,fid:r});let{user:l}=await e.authenticate();if(!l)throw new t.PrivyClientError("Failed to login with Farcaster V2");return s(l),i(!0),{user:l}}})),[e,s,i])},exports.useLoginWithOAuth=i=>{e.usePrivyEventSubscription("login",i);let o=e.useCaptcha(),s=e.useIsServerConfigLoaded(),{ready:n,user:a}=e.usePrivyContext(),{initLoginWithHeadlessOAuth:l,loginWithHeadlessOAuth:u,oAuthState:c,setOAuthState:d,isHeadlessOAuthLoading:h}=t.usePrivyInternal(),y=r.useCallback((async r=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);return await l(r.provider,o.token,r.disableSignup)}catch(r){throw d({status:"error",error:r}),r}}),[l,o]),w=r.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 u(r)}catch(r){throw d({status:"error",error:r}),r}finally{e.stripUrlOAuthParamsAndRemoveStateCode()}}),[u]);return r.useEffect((()=>{let r=e.detectCompletingOAuthFlow();n&&s&&r.inProgress&&!r.withPrivyUi&&!r.popupFlow&&w().catch((()=>{}))}),[n,s]),{initOAuth:y,loading:h,state:c}},exports.useLoginWithPasskey=i=>{let o=e.useCaptcha(),{initLoginWithPasskey:s,loginWithPasskey:n,passkeyAuthState:a,setPasskeyAuthState:l}=t.usePrivyInternal();return{loginWithPasskey:r.useCallback((async r=>{try{let a;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),a=await o.waitForResult()),await s({captchaToken:a,withPrivyUi:!1});let{user:l,isNewUser:u,wasAlreadyAuthenticated:c,loginAccount:d}=await n(r);i?.onComplete?.({user:l,isNewUser:u,wasAlreadyAuthenticated:c,loginMethod:"passkey",loginAccount:d})}catch(r){throw l({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[n,o.status]),state:a}},exports.useLoginWithSiwe=i=>{let o=e.useCaptcha(),{siweState:s,setSiweState:n,client:a,generateSiweMessage:l,loginWithSiwe:u}=t.usePrivyInternal();return{generateSiweNonce:r.useCallback((async r=>{try{let i;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),i=await o.waitForResult()),n({status:"generating-message"});let s=await a.generateSiweNonce({address:r?.address,captchaToken:i});return n({status:"awaiting-signature"}),s}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[a,o]),generateSiweMessage:r.useCallback((async({address:e,chainId:r})=>{try{return await l({address:e,chainId:r})}catch(e){throw n({status:"error",error:e}),i?.onError?.(e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}),[l]),loginWithSiwe:r.useCallback((async({message:r,signature:s,disableSignup:a})=>{try{let n;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),n=await o.waitForResult());let l=await u({message:r,signature:s,captchaToken:n,disableSignup:a});return i?.onComplete?.({user:l,isNewUser:!1,wasAlreadyAuthenticated:!1,loginMethod:"siwe",loginAccount:null}),l}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[u,o.status]),state:s}},exports.useLoginWithSms=i=>{let o=e.useCaptcha(),{smsOtpState:s,setSmsOtpState:n,initLoginWithSms:a,loginWithCode:l}=t.usePrivyInternal();return{sendCode:r.useCallback((async({phoneNumber:r,disableSignup:s})=>{try{let i;if(!r)throw Error("SMS required to send OTP code");if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);return o.enabled&&"success"!==o.status&&(o.execute(),i=await o.waitForResult()),await a({phoneNumber:r,captchaToken:i,disableSignup:s,withPrivyUi:!1})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[a]),loginWithCode:r.useCallback((async({code:r})=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);let{user:s,isNewUser:n,wasAlreadyAuthenticated:a,linkedAccount:u}=await l(r);i?.onComplete?.({user:s,isNewUser:n,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:u})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[l,o.status]),state:s}},exports.useLoginWithTelegram=i=>{let o=e.useCaptcha(),{initLoginWithTelegram:s,loginWithTelegram:n,telegramAuthState:a,setTelegramAuthState:l}=t.usePrivyInternal();return{login:r.useCallback((async r=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);await s(o.token,r?.disableSignup);let{user:a,isNewUser:l,loginAccount:u,wasAlreadyAuthenticated:c}=await n({intent:"login"});i?.onComplete?.({user:a,isNewUser:l,wasAlreadyAuthenticated:c,loginMethod:"telegram",loginAccount:u})}catch(r){throw l({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[s,n,o]),state:a}},exports.useModalStatus=()=>{let{isModalOpen:t}=r.useContext(e.PrivyContext);return{isOpen:t}},exports.useOAuthTokens=function(r){let{authenticated:i,user:o}=e.usePrivyContext(),{initLoginWithOAuth:s}=t.usePrivyInternal(),n=e.useEmitPrivyEvent();return e.usePrivyEventSubscription("oAuthAuthorization",r),{reauthorize:e=>u(i,o,s,n,e.provider)}},exports.useRecoverEmbeddedWallet=()=>{let{user:i}=e.usePrivyContext(),{walletProxy:o}=t.usePrivyInternal();return{recover:r.useCallback((async r=>{if(!o)throw Error("Wallet proxy is not ready");let s=await e.getAccessToken();if(!i||!s)throw new t.PrivyClientError("User must be logged in before attempting to modify the recovery method.");let{entropyId:n,entropyIdVerifier:a}=e.getEntropyDetailsForUser(i);try{await o.recover({entropyId:n,entropyIdVerifier:a,accessToken:s,...r})}catch{throw new t.PrivyClientError("Unable to recover wallets")}}),[o,i])}},exports.useSendTransaction=function(t){let{sendTransaction:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("sendTransaction",t),{sendTransaction:i}},exports.useSessionSigners=()=>{let{addSessionSignersInternal:r,removeSessionSignersInternal:i}=(()=>{let{getAccessToken:r,user:i}=e.usePrivyContext(),o=t.usePrivyInternal(),{signWithUserSigner:s}=e.useSignWithUserSigner(),n=async({wallet:e,additional_signers:n})=>{let l=await r();if(!i||!l)throw new t.PrivyClientError("User must be authenticated and have an embedded wallet to delegate actions.");if(!e.id)throw new t.PrivyClientError("Wallet to add signers to must have ID on server");if(!o.walletProxy)throw new t.PrivyClientError("Wallet proxy not initialized.");await a.updateWallet(o.privy,{wallet_id:e.id},s,{additional_signers:n})};return{addSessionSignersInternal:async({address:s,signers:l})=>{let u=await r();if(!i||!u)throw new t.PrivyClientError("User must be authenticated and have an embedded wallet to add a session signer.");let c=o.walletProxy??await o.initializeWalletProxy(15e3);if(!c)throw new t.PrivyClientError("Wallet proxy not initialized.");let d=e.getPrivyWalletWithAddress(i,s);if(!d)throw new t.PrivyClientError("Address to add signers too is not associated with current user.");if(e.getIsUnifiedWallet(d)){if(0===l.length)throw new t.PrivyClientError("Must specify at least one signer to add.");let r=[...(await a.getWallet(o.privy,{wallet_id:d.id})).additional_signers,...e.parseAdditionalSigners(l)];await n({wallet:d,additional_signers:r})}else{if(d.delegated)return{user:i};if(l.length>0)throw new t.PrivyClientError("This embedded wallet does not support specifying signers. If signing is enabled in the dashboard, signer will default to that key. Otherwise, no signatures will be required for the wallet.");let r=e.getDelegatedWalletsData({address:s,user:i}),n=e.getRootWalletDataForDelegation({address:s,user:i});await o.recoverEmbeddedWallet({address:s}),await c.createDelegatedAction({accessToken:u,rootWallet:n,delegatedWallets:[r]})}let h=await o.refreshSessionAndUser();if(!h)throw Error("Could not refresh user");return{user:h}},removeSessionSignersInternal:async({address:s})=>{let a=await r();if(!i||!a)throw new t.PrivyClientError("User must be authenticated and have an embedded wallet to delegate actions.");if(!(o.walletProxy??await o.initializeWalletProxy(15e3)))throw new t.PrivyClientError("Wallet proxy not initialized.");let l=e.getPrivyWalletWithAddress(i,s);if(!l)throw new t.PrivyClientError("Address to remove signers from is not associated with current user.");e.getIsUnifiedWallet(l)?await n({wallet:l,additional_signers:[]}):await o.client.revokeDelegatedWallet();let u=await o.refreshSessionAndUser();if(!u)throw Error("Could not refresh user");return{user:u}}}})();return{addSessionSigners:async({address:e,signers:t})=>r({address:e,signers:t}),removeSessionSigners:async({address:e})=>i({address:e})}},exports.useSetWalletPassword=function(t){let{setWalletPassword:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletPassword",t),{setWalletPassword:i}},exports.useSetWalletRecovery=function(t){let{setWalletRecovery:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletRecovery",t),{setWalletRecovery:i}},exports.useSignAuthorization=()=>{let{ready:i,wallets:o}=e.useWallets(),{user:a}=e.usePrivyContext(),{rpcConfig:l,chains:u,appId:c}=t.usePrivyInternal();return{signAuthorization:r.useCallback((async(r,t)=>{let d;if(!a)throw Error("User must be authenticated before signing with a Privy wallet");if(!i)throw Error("Wallets are not ready");let h=t?.address??e.getPrivyEthereumWallet(a)?.address??s.zeroAddress,y=o.find((e=>s.getAddress(e.address)===s.getAddress(h)));if(!y)throw Error("Signing wallet not found.");let w=r.chainId??Number(y.chainId.split(":")[1]);if(0===w)d={chainId:0,address:r.contractAddress,nonce:r.nonce??0};else{let t=u.find((e=>e.id===w));if(!t)throw Error("Error, chain not configured in PrivyProvider config");let i=s.createWalletClient({account:h,chain:t,transport:s.http(e.getJsonRpcEndpointFromChain(t,l,c))});d=await i.prepareAuthorization({...r})}let p=await y.getEthereumProvider(),g=await p.request({method:"secp256k1_sign",params:[n.hashAuthorization(d)]});return{...d,...s.parseSignature(g)}}),[i,o,a,u])}},exports.useSignMessage=function(t){let{signMessage:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signMessage",t),{signMessage:i}},exports.useSignTransaction=function(){let{signTransaction:t}=r.useContext(e.PrivyContext);return{signTransaction:t}},exports.useSignTypedData=function(t){let{signTypedData:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signTypedData",t),{signTypedData:i}},exports.useSignupWithPasskey=i=>{let o=e.useCaptcha(),{initSignupWithPasskey:s,signupWithPasskey:n,passkeyAuthState:a,setPasskeyAuthState:l}=t.usePrivyInternal();return{signupWithPasskey:r.useCallback((async()=>{try{let r;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),r=await o.waitForResult()),await s({captchaToken:r,withPrivyUi:!1});let{user:a,isNewUser:l,wasAlreadyAuthenticated:u,loginAccount:c}=await n();i?.onComplete?.({user:a,isNewUser:l,wasAlreadyAuthenticated:u,loginMethod:"passkey",loginAccount:c})}catch(e){throw l({status:"error",error:e}),i?.onError?.(e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}),[n,o.status]),state:a}},exports.useSubscribeToJwtAuthWithFlag=function({isAuthenticated:t,isLoading:i,...o}){let s=r.useRef();r.useEffect((()=>{i||s.current?.()}),[t,i]);let n=r.useCallback((e=>(s.current=e,()=>{s.current=void 0})),[]);return e.useSyncJwtBasedAuthState({...o,subscribe:n})},exports.useToken=function(t){let{getAccessToken:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("accessToken",t),{getAccessToken:i}},exports.useUpdateAccount=function(t){let{updateEmail:i,updatePhone:o}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("update",t),{updateEmail:i,updatePhone:o}},exports.useUser=()=>{let{setUser:i,client:o}=r.useContext(t.InternalPrivyContext),{user:s}=r.useContext(e.PrivyContext);return{user:s,refreshUser:r.useCallback((async()=>{let e=await(o?.updateUserAndIdToken());return i(e??null),e}),[o,i])}};
1
+ "use strict";var e=require("./privy-provider-MQXR_94C.js"),r=require("react"),t=require("./internal-context-VGU3duZo.js"),i=require("./useActiveWallet-KIL5_ZKg.js"),o=require("./frame-Czznns2Z.js"),s=require("viem"),n=require("viem/utils"),a=require("@privy-io/js-sdk-core"),l=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js");require("react/jsx-runtime"),require("mipd"),require("react-device-detect"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),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/solid/ArrowsRightLeftIcon"),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/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 u=async(e,r,i,o,s)=>{if(!e)throw o("linkAccount","onError",t.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:s}),new t.PrivyClientError("User must be authenticated before linking an account.");if(!r?.linkedAccounts.some((e=>e.type.includes(s))))throw new t.PrivyClientError(`OAuth account of type ${s} not linked to the account.`);await i(s)};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.VERSION=e.VERSION,exports.WalletConnector=e.WalletConnector,exports.errorIndicatesMaxMfaRetries=e.errorIndicatesMaxMfaRetries,exports.errorIndicatesMfaTimeout=e.errorIndicatesMfaTimeout,exports.errorIndicatesMfaVerificationFailed=e.errorIndicatesMfaVerificationFailed,exports.getAccessToken=e.getCustomerAccessToken,exports.useCreateWallet=e.useCreateWallet,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.useSyncJwtBasedAuthState=e.useSyncJwtBasedAuthState,exports.useWallets=e.useWallets,exports.useActiveWallet=i.useActiveWallet,exports.useConnectWallet=i.useConnectWallet,exports.useFundWallet=i.useFundWallet,exports.useLogin=i.useLogin,Object.defineProperty(exports,"SUPPORTED_CHAINS",{enumerable:!0,get:function(){return a.DEFAULT_SUPPORTED_CHAINS}}),Object.defineProperty(exports,"addPrivyRpcToChain",{enumerable:!0,get:function(){return a.addPrivyRpcToChain}}),Object.defineProperty(exports,"addRpcUrlOverrideToChain",{enumerable:!0,get:function(){return a.addRpcUrlOverrideToChain}}),exports.getEmbeddedConnectedWallet=l.getEmbeddedConnectedWallet,exports.useConnectCoinbaseSmartWallet=()=>{let{connectCoinbaseSmartWallet:e}=t.usePrivyInternal();return{connectCoinbaseSmartWallet:e}},exports.useConnectOrCreateWallet=r=>{let{connectOrCreateWallet:t}=e.usePrivyContext();return e.usePrivyEventSubscription("connectOrCreateWallet",r),{connectOrCreateWallet:t}},exports.useCrossAppAccounts=()=>{let{startCrossAppAuthFlow:r,unlinkCrossAppAccount:t,signMessageWithCrossAppWallet:i,signTypedDataWithCrossAppWallet:o,sendTransactionWithCrossAppWallet:s}=e.usePrivyContext();return{loginWithCrossAppAccount:({appId:e})=>r({appId:e,action:"login"}),linkCrossAppAccount:({appId:e})=>r({appId:e,action:"link"}),unlinkCrossAppAccount:t,signMessage:i,signTypedData:o,sendTransaction:s}},exports.useCustomAuth=r=>{let t=e.useJwtAuthFlowState();return e.usePrivyEventSubscription("customAuth",r),{status:t}},exports.useDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=t.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:i}=e.usePrivyContext();return{getFarcasterSignerPublicKey:r,signFarcasterMessage:t,requestFarcasterSignerFromWarpcast:i}},exports.useGuestAccounts=function(){let r=e.useAppConfig(),{getAccessToken:i}=e.usePrivyContext(),o=e.useEmitPrivyEvent(),{client:s,setUser:n,setAuthenticated:a,setIsNewUser:l,initializeWalletProxy:u}=t.usePrivyInternal(),{create:c}=e.useCreateWalletInternal();return{createGuestAccount:async()=>{if(!r.id||!s)throw Error("SDK not yet ready");s.startAuthFlow(new e.GuestFlow(r.id));try{let d=await s.authenticate(),h=d.user,y=d.isNewUser??!1;if(!h)throw new t.PrivyClientError("Unable to authenticate guest account");let w=await i(),p=await u(e.WALLET_PROXY_TIMEOUT);if(w&&p)try{let t=e.shouldCreateEmbeddedEthWallet(h,r.embeddedWallets.ethereum.createOnLogin),i=e.shouldCreateEmbeddedSolWallet(h,r.embeddedWallets.solana.createOnLogin);t&&i?(h=(await c({chainType:"ethereum",latestUser:h})).user,h=(await c({chainType:"solana",latestUser:h})).user):i?h=(await c({chainType:"solana",latestUser:h})).user:t?h=(await c({chainType:"ethereum",latestUser:h})).user:n(h)}catch(e){n(h),console.warn("Unable to create embedded wallet for guest account")}return l(y),a(!0),o("login","onComplete",{user:h,isNewUser:y,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),h}catch(e){throw o("login","onError",e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}}},exports.useHeadlessDelegatedActions=()=>{let{revokeDelegatedWallets:e,delegateWallet:r}=t.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(t){let{linkEmail:i,linkPhone:o,linkWallet:s,linkGoogle:n,linkApple:a,linkTwitter:l,linkDiscord:u,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:y,linkInstagram:w,linkTelegram:p,linkFarcaster:g,linkPasskey:C}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("linkAccount",t),{linkEmail:i,linkPhone:o,linkWallet:s,linkGoogle:n,linkApple:a,linkTwitter:l,linkDiscord:u,linkGithub:c,linkLinkedIn:d,linkTiktok:h,linkSpotify:y,linkInstagram:w,linkFarcaster:g,linkTelegram:p,linkPasskey:C}},exports.useLinkJwtAccount=function(i){let{client:o}=t.usePrivyInternal(),[s,n]=r.useState({status:"initial"});return{linkWithCustomJwt:r.useCallback((async r=>{try{n({status:"initial"}),o.startAuthFlow(new e.CustomJwtAccountFlow(r)),n({status:"loading"});let{user:t}=await o.link();if(!t)throw Error("Error, user not found");let s=t.linkedAccounts.filter((e=>"custom_auth"===e.type)).sort(((e,r)=>r.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime())).at(0);return n({status:"done"}),i?.onSuccess?.({user:t,linkMethod:"custom",linkedAccount:s}),{user:t}}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"custom"}),r}}),[o.startAuthFlow,o.link]),state:s}},exports.useLinkWithPasskey=e=>{let{initLinkWithPasskey:i,linkWithPasskey:o,passkeyAuthState:s,setPasskeyAuthState:n}=t.usePrivyInternal();return{linkWithPasskey:r.useCallback((async()=>{try{await i();let r=await o();if(!r)throw Error("Error, user not found");let t=r.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,r)=>r.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:r,linkMethod:"passkey",linkedAccount:t})}catch(r){throw n({status:"error",error:r}),e?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),r}}),[o]),state:s}},exports.useLinkWithSiwe=i=>{let o=e.useCaptcha(),{siweState:s,setSiweState:n,linkWithSiwe:a,generateSiweMessage:l}=t.usePrivyInternal();return{generateSiweMessage:r.useCallback((async({address:e,chainId:r})=>{try{if(!e||!r)throw Error("wallet address and chainId required to generate nonce");return await l({address:e,chainId:r}).then((e=>e))}catch(e){throw n({status:"error",error:e}),i?.onError?.(e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),e}}),[l]),linkWithSiwe:r.useCallback((async({signature:r,message:s,chainId:l,walletClientType:u,connectorType:c})=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);let{user:n,linkedAccount:d}=await a({message:s,signature:r,chainId:l,walletClientType:u,connectorType:c});d&&i?.onSuccess?.({user:n,linkMethod:"siwe",linkedAccount:d})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),r}}),[a,o.status]),state:s}},exports.useLoginWithEmail=i=>{let o=e.useCaptcha(),{emailOtpState:s,setEmailOtpState:n,initLoginWithEmail:a,loginWithCode:l}=t.usePrivyInternal();return{sendCode:r.useCallback((async({email:r,disableSignup:s})=>{try{let i;if(!r)throw Error("Email required to send OTP code");if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);return o.enabled&&"success"!==o.status&&(o.execute(),i=await o.waitForResult()),await a({email:r,captchaToken:i,disableSignup:s,withPrivyUi:!1})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[a]),loginWithCode:r.useCallback((async({code:r})=>{try{if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);let{user:s,isNewUser:n,wasAlreadyAuthenticated:a,linkedAccount:u}=await l(r);i?.onComplete?.({user:s,isNewUser:n,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:u})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[l,o.status]),state:s}},exports.useLoginWithFarcasterV2=()=>{let{client:e,setAuthenticated:i,setUser:s}=t.usePrivyInternal();return r.useMemo((()=>({init:async()=>{if(!e)throw new t.PrivyClientError("Must initialize Privy client first.");let r=new o.FarcasterFramesFlow;return e.startAuthFlow(r),await r.init()},login:async({fid:r,message:n,signature:a})=>{if(!e)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(e.authFlow instanceof o.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster frame flow first.");e.authFlow.setAuthData({message:n,signature:a,fid:r});let{user:l}=await e.authenticate();if(!l)throw new t.PrivyClientError("Failed to login with Farcaster V2");return s(l),i(!0),{user:l}}})),[e,s,i])},exports.useLoginWithOAuth=i=>{e.usePrivyEventSubscription("login",i);let o=e.useCaptcha(),s=e.useIsServerConfigLoaded(),{ready:n,user:a}=e.usePrivyContext(),{initLoginWithHeadlessOAuth:l,loginWithHeadlessOAuth:u,oAuthState:c,setOAuthState:d,isHeadlessOAuthLoading:h}=t.usePrivyInternal(),y=r.useCallback((async r=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);return await l(r.provider,o.token,r.disableSignup)}catch(r){throw d({status:"error",error:r}),r}}),[l,o]),w=r.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 u(r)}catch(r){throw d({status:"error",error:r}),r}finally{e.stripUrlOAuthParamsAndRemoveStateCode()}}),[u]);return r.useEffect((()=>{let r=e.detectCompletingOAuthFlow();n&&s&&r.inProgress&&!r.withPrivyUi&&!r.popupFlow&&w().catch((()=>{}))}),[n,s]),{initOAuth:y,loading:h,state:c}},exports.useLoginWithPasskey=i=>{let o=e.useCaptcha(),{initLoginWithPasskey:s,loginWithPasskey:n,passkeyAuthState:a,setPasskeyAuthState:l}=t.usePrivyInternal();return{loginWithPasskey:r.useCallback((async r=>{try{let a;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),a=await o.waitForResult()),await s({captchaToken:a,withPrivyUi:!1});let{user:l,isNewUser:u,wasAlreadyAuthenticated:c,loginAccount:d}=await n(r);i?.onComplete?.({user:l,isNewUser:u,wasAlreadyAuthenticated:c,loginMethod:"passkey",loginAccount:d})}catch(r){throw l({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[n,o.status]),state:a}},exports.useLoginWithSiwe=i=>{let o=e.useCaptcha(),{siweState:s,setSiweState:n,client:a,generateSiweMessage:l,loginWithSiwe:u}=t.usePrivyInternal();return{generateSiweNonce:r.useCallback((async r=>{try{let i;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),i=await o.waitForResult()),n({status:"generating-message"});let s=await a.generateSiweNonce({address:r?.address,captchaToken:i});return n({status:"awaiting-signature"}),s}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[a,o]),generateSiweMessage:r.useCallback((async({address:e,chainId:r})=>{try{return await l({address:e,chainId:r})}catch(e){throw n({status:"error",error:e}),i?.onError?.(e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}),[l]),loginWithSiwe:r.useCallback((async({message:r,signature:s,disableSignup:a})=>{try{let n;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),n=await o.waitForResult());let l=await u({message:r,signature:s,captchaToken:n,disableSignup:a});return i?.onComplete?.({user:l,isNewUser:!1,wasAlreadyAuthenticated:!1,loginMethod:"siwe",loginAccount:null}),l}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[u,o.status]),state:s}},exports.useLoginWithSms=i=>{let o=e.useCaptcha(),{smsOtpState:s,setSmsOtpState:n,initLoginWithSms:a,loginWithCode:l}=t.usePrivyInternal();return{sendCode:r.useCallback((async({phoneNumber:r,disableSignup:s})=>{try{let i;if(!r)throw Error("SMS required to send OTP code");if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);return o.enabled&&"success"!==o.status&&(o.execute(),i=await o.waitForResult()),await a({phoneNumber:r,captchaToken:i,disableSignup:s,withPrivyUi:!1})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[a]),loginWithCode:r.useCallback((async({code:r})=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);let{user:s,isNewUser:n,wasAlreadyAuthenticated:a,linkedAccount:u}=await l(r);i?.onComplete?.({user:s,isNewUser:n,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:u})}catch(r){throw n({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[l,o.status]),state:s}},exports.useLoginWithTelegram=i=>{let o=e.useCaptcha(),{initLoginWithTelegram:s,loginWithTelegram:n,telegramAuthState:a,setTelegramAuthState:l}=t.usePrivyInternal();return{login:r.useCallback((async r=>{try{if(o.enabled&&"success"!==o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);await s(o.token,r?.disableSignup);let{user:a,isNewUser:l,loginAccount:u,wasAlreadyAuthenticated:c}=await n({intent:"login"});i?.onComplete?.({user:a,isNewUser:l,wasAlreadyAuthenticated:c,loginMethod:"telegram",loginAccount:u})}catch(r){throw l({status:"error",error:r}),i?.onError?.(r.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),r}}),[s,n,o]),state:a}},exports.useModalStatus=()=>{let{isModalOpen:t}=r.useContext(e.PrivyContext);return{isOpen:t}},exports.useOAuthTokens=function(r){let{authenticated:i,user:o}=e.usePrivyContext(),{initLoginWithOAuth:s}=t.usePrivyInternal(),n=e.useEmitPrivyEvent();return e.usePrivyEventSubscription("oAuthAuthorization",r),{reauthorize:e=>u(i,o,s,n,e.provider)}},exports.useRecoverEmbeddedWallet=()=>{let{user:i}=e.usePrivyContext(),{walletProxy:o}=t.usePrivyInternal();return{recover:r.useCallback((async r=>{if(!o)throw Error("Wallet proxy is not ready");let s=await e.getAccessToken();if(!i||!s)throw new t.PrivyClientError("User must be logged in before attempting to modify the recovery method.");let{entropyId:n,entropyIdVerifier:a}=e.getEntropyDetailsForUser(i);try{await o.recover({entropyId:n,entropyIdVerifier:a,accessToken:s,...r})}catch{throw new t.PrivyClientError("Unable to recover wallets")}}),[o,i])}},exports.useSendTransaction=function(t){let{sendTransaction:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("sendTransaction",t),{sendTransaction:i}},exports.useSessionSigners=()=>{let{addSessionSignersInternal:r,removeSessionSignersInternal:i}=(()=>{let{getAccessToken:r,user:i}=e.usePrivyContext(),o=t.usePrivyInternal(),{signWithUserSigner:s}=e.useSignWithUserSigner(),n=async({wallet:e,additional_signers:n})=>{let l=await r();if(!i||!l)throw new t.PrivyClientError("User must be authenticated and have an embedded wallet to delegate actions.");if(!e.id)throw new t.PrivyClientError("Wallet to add signers to must have ID on server");if(!o.walletProxy)throw new t.PrivyClientError("Wallet proxy not initialized.");await a.updateWallet(o.privy,{wallet_id:e.id},s,{additional_signers:n})};return{addSessionSignersInternal:async({address:s,signers:l})=>{let u=await r();if(!i||!u)throw new t.PrivyClientError("User must be authenticated and have an embedded wallet to add a session signer.");let c=o.walletProxy??await o.initializeWalletProxy(15e3);if(!c)throw new t.PrivyClientError("Wallet proxy not initialized.");let d=e.getPrivyWalletWithAddress(i,s);if(!d)throw new t.PrivyClientError("Address to add signers too is not associated with current user.");if(e.getIsUnifiedWallet(d)){if(0===l.length)throw new t.PrivyClientError("Must specify at least one signer to add.");let r=[...(await a.getWallet(o.privy,{wallet_id:d.id})).additional_signers,...e.parseAdditionalSigners(l)];await n({wallet:d,additional_signers:r})}else{if(d.delegated)return{user:i};if(l.length>0)throw new t.PrivyClientError("This embedded wallet does not support specifying signers. If signing is enabled in the dashboard, signer will default to that key. Otherwise, no signatures will be required for the wallet.");let r=e.getDelegatedWalletsData({address:s,user:i}),n=e.getRootWalletDataForDelegation({address:s,user:i});await o.recoverEmbeddedWallet({address:s}),await c.createDelegatedAction({accessToken:u,rootWallet:n,delegatedWallets:[r]})}let h=await o.refreshSessionAndUser();if(!h)throw Error("Could not refresh user");return{user:h}},removeSessionSignersInternal:async({address:s})=>{let a=await r();if(!i||!a)throw new t.PrivyClientError("User must be authenticated and have an embedded wallet to delegate actions.");if(!(o.walletProxy??await o.initializeWalletProxy(15e3)))throw new t.PrivyClientError("Wallet proxy not initialized.");let l=e.getPrivyWalletWithAddress(i,s);if(!l)throw new t.PrivyClientError("Address to remove signers from is not associated with current user.");e.getIsUnifiedWallet(l)?await n({wallet:l,additional_signers:[]}):await o.client.revokeDelegatedWallet();let u=await o.refreshSessionAndUser();if(!u)throw Error("Could not refresh user");return{user:u}}}})();return{addSessionSigners:async({address:e,signers:t})=>r({address:e,signers:t}),removeSessionSigners:async({address:e})=>i({address:e})}},exports.useSetWalletPassword=function(t){let{setWalletPassword:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletPassword",t),{setWalletPassword:i}},exports.useSetWalletRecovery=function(t){let{setWalletRecovery:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("setWalletRecovery",t),{setWalletRecovery:i}},exports.useSignAuthorization=()=>{let{ready:i,wallets:o}=e.useWallets(),{user:a}=e.usePrivyContext(),{rpcConfig:l,chains:u,appId:c}=t.usePrivyInternal();return{signAuthorization:r.useCallback((async(r,t)=>{let d;if(!a)throw Error("User must be authenticated before signing with a Privy wallet");if(!i)throw Error("Wallets are not ready");let h=t?.address??e.getPrivyEthereumWallet(a)?.address??s.zeroAddress,y=o.find((e=>s.getAddress(e.address)===s.getAddress(h)));if(!y)throw Error("Signing wallet not found.");let w=r.chainId??Number(y.chainId.split(":")[1]);if(0===w)d={chainId:0,address:r.contractAddress,nonce:r.nonce??0};else{let t=u.find((e=>e.id===w));if(!t)throw Error("Error, chain not configured in PrivyProvider config");let i=s.createWalletClient({account:h,chain:t,transport:s.http(e.getJsonRpcEndpointFromChain(t,l,c))});d=await i.prepareAuthorization({...r})}let p=await y.getEthereumProvider(),g=await p.request({method:"secp256k1_sign",params:[n.hashAuthorization(d)]});return{...d,...s.parseSignature(g)}}),[i,o,a,u])}},exports.useSignMessage=function(t){let{signMessage:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signMessage",t),{signMessage:i}},exports.useSignTransaction=function(){let{signTransaction:t}=r.useContext(e.PrivyContext);return{signTransaction:t}},exports.useSignTypedData=function(t){let{signTypedData:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("signTypedData",t),{signTypedData:i}},exports.useSignupWithPasskey=i=>{let o=e.useCaptcha(),{initSignupWithPasskey:s,signupWithPasskey:n,passkeyAuthState:a,setPasskeyAuthState:l}=t.usePrivyInternal();return{signupWithPasskey:r.useCallback((async()=>{try{let r;if(o.enabled&&"error"===o.status)throw new e.CaptchaError(o.error,null,t.PrivyErrorCode.CAPTCHA_FAILURE);o.enabled&&"success"!==o.status&&(o.execute(),r=await o.waitForResult()),await s({captchaToken:r,withPrivyUi:!1});let{user:a,isNewUser:l,wasAlreadyAuthenticated:u,loginAccount:c}=await n();i?.onComplete?.({user:a,isNewUser:l,wasAlreadyAuthenticated:u,loginMethod:"passkey",loginAccount:c})}catch(e){throw l({status:"error",error:e}),i?.onError?.(e.privyErrorCode||t.PrivyErrorCode.UNKNOWN_AUTH_ERROR),e}}),[n,o.status]),state:a}},exports.useSubscribeToJwtAuthWithFlag=function({isAuthenticated:t,isLoading:i,...o}){let s=r.useRef();r.useEffect((()=>{i||s.current?.()}),[t,i]);let n=r.useCallback((e=>(s.current=e,()=>{s.current=void 0})),[]);return e.useSyncJwtBasedAuthState({...o,subscribe:n})},exports.useToken=function(t){let{getAccessToken:i}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("accessToken",t),{getAccessToken:i}},exports.useUpdateAccount=function(t){let{updateEmail:i,updatePhone:o}=r.useContext(e.PrivyContext);return e.usePrivyEventSubscription("update",t),{updateEmail:i,updatePhone:o}},exports.useUser=()=>{let{setUser:i,client:o}=r.useContext(t.InternalPrivyContext),{user:s}=r.useContext(e.PrivyContext);return{user:s,refreshUser:r.useCallback((async()=>{let e=await(o?.updateUserAndIdToken());return i(e??null),e}),[o,i])}};
@@ -0,0 +1 @@
1
+ "use strict";var t,e=require("ofetch"),s=require("react");class a extends Error{toString(){return`${this.type}${this.privyErrorCode?`-${this.privyErrorCode}`:""}: ${this.message}${this.cause?` [cause: ${this.cause}]`:""}`}constructor(t,e,s){super(t),e instanceof Error&&(this.cause=e),this.privyErrorCode=s}}class i extends a{constructor(t,e,s,a,i,r){super(s,a,i),this.type=t,this.status=e,this.data=r}}class r extends a{constructor(t,e,s){super(t,e,s),this.type="client_error"}}const n=t=>t instanceof a?t:t instanceof Error?new r(t.message,t):new r(`Internal error: ${t}`);var o=((t={}).OAUTH_ACCOUNT_SUSPENDED="oauth_account_suspended",t.MISSING_OR_INVALID_PRIVY_APP_ID="missing_or_invalid_privy_app_id",t.MISSING_OR_INVALID_PRIVY_ACCOUNT_ID="missing_or_invalid_privy_account_id",t.MISSING_OR_INVALID_TOKEN="missing_or_invalid_token",t.INVALID_DATA="invalid_data",t.INVALID_CAPTCHA="invalid_captcha",t.LINKED_TO_ANOTHER_USER="linked_to_another_user",t.CANNOT_LINK_MORE_OF_TYPE="cannot_link_more_of_type",t.FAILED_TO_LINK_ACCOUNT="failed_to_link_account",t.FAILED_TO_UPDATE_ACCOUNT="failed_to_update_account",t.USER_EXITED_UPDATE_FLOW="exited_update_flow",t.ALLOWLIST_REJECTED="allowlist_rejected",t.OAUTH_USER_DENIED="oauth_user_denied",t.OAUTH_UNEXPECTED="oauth_unexpected",t.UNKNOWN_AUTH_ERROR="unknown_auth_error",t.USER_EXITED_AUTH_FLOW="exited_auth_flow",t.USER_EXITED_LINK_FLOW="exited_link_flow",t.USER_EXITED_SET_PASSWORD_FLOW="user_exited_set_password_flow",t.MUST_BE_AUTHENTICATED="must_be_authenticated",t.UNKNOWN_CONNECT_WALLET_ERROR="unknown_connect_wallet_error",t.GENERIC_CONNECT_WALLET_ERROR="generic_connect_wallet_error",t.CLIENT_REQUEST_TIMEOUT="client_request_timeout",t.INVALID_CREDENTIALS="invalid_credentials",t.MISSING_MFA_CREDENTIALS="missing_or_invalid_mfa",t.UNKNOWN_MFA_ERROR="unknown_mfa_error",t.EMBEDDED_WALLET_ALREADY_EXISTS="embedded_wallet_already_exists",t.EMBEDDED_WALLET_NOT_FOUND="embedded_wallet_not_found",t.EMBEDDED_WALLET_CREATE_ERROR="embedded_wallet_create_error",t.UNKNOWN_EMBEDDED_WALLET_ERROR="unknown_embedded_wallet_error",t.EMBEDDED_WALLET_PASSWORD_UNCONFIRMED="embedded_wallet_password_unconfirmed",t.EMBEDDED_WALLET_PASSWORD_ALREADY_EXISTS="embedded_wallet_password_already_exists",t.EMBEDDED_WALLET_RECOVERY_ALREADY_EXISTS="embedded_wallet_recovery_already_exists",t.TRANSACTION_FAILURE="transaction_failure",t.UNSUPPORTED_CHAIN_ID="unsupported_chain_id",t.NOT_SUPPORTED="not_supported",t.CAPTCHA_TIMEOUT="captcha_timeout",t.INVALID_MESSAGE="invalid_message",t.UNABLE_TO_SIGN="unable_to_sign",t.CAPTCHA_FAILURE="captcha_failure",t.CAPTCHA_DISABLED="captcha_disabled",t.SESSION_STORAGE_UNAVAILABLE="session_storage_unavailable",t.TOO_MANY_REQUESTS="too_many_requests",t.USER_LIMIT_REACHED="max_accounts_reached",t.DISALLOWED_LOGIN_METHOD="disallowed_login_method",t.DISALLOWED_PLUS_EMAIL="disallowed_plus_email",t.PASSKEY_NOT_ALLOWED="passkey_not_allowed",t.USER_DOES_NOT_EXIST="user_does_not_exist",t.INSUFFICIENT_BALANCE="insufficient_balance",t.ACCOUNT_TRANSFER_REQUIRED="account_transfer_required",t.BUFFER_NOT_DEFINED="buffer_not_defined",t.UNSUPPORTED_WALLET_TYPE="unsupported_wallet_type",t);const p=()=>{throw Error("You need to wrap your application with the <PrivyProvider> initialized with your app id.")},_=/*#__PURE__*/s.createContext({setAuthenticated:p,setUser:p,setIsNewUser:p,isNewUserThisSession:!1,walletConnectionStatus:null,connectors:[],solanaWallets:[],rpcConfig:{rpcUrls:{}},showFiatPrices:!0,chains:[],clientAnalyticsId:null,pendingTransaction:null,client:null,privy:null,appId:"notAdded",onCustomAuthAuthenticated:p,hideWalletUIs:{current:!1},nativeTokenSymbolForChainId:p,initializeWalletProxy:p,getAuthMeta:p,getAuthFlow:p,closePrivyModal:p,openPrivyModal:p,connectWallet:p,initLoginWithWallet:p,loginWithWallet:p,initLoginWithFarcaster:p,loginWithFarcaster:p,loginWithCode:p,initLoginWithEmail:p,initLoginWithSms:p,initUpdateEmail:p,initUpdatePhone:p,resendEmailCode:p,resendSmsCode:p,initLoginWithHeadlessOAuth:p,loginWithHeadlessOAuth:p,crossAppAuthFlow:p,initLoginWithOAuth:p,loginWithOAuth:p,passkeyAuthState:{status:"initial"},setPasskeyAuthState:p,initSignupWithPasskey:p,signupWithPasskey:p,initLoginWithPasskey:p,loginWithPasskey:p,initLinkWithPasskey:p,linkWithPasskey:p,refreshSessionAndUser:p,walletProxy:null,createAnalyticsEvent:p,acceptTerms:p,getUsdTokenPrice:p,getUsdPriceForSol:p,getSplTokenMetadata:p,recoverEmbeddedWallet:p,updateWallets:p,fundWallet:p,openModal:p,setReadyToTrue:p,requestFarcasterSignerStatus:p,initLoginWithTelegram:p,loginWithTelegram:p,generateSiweMessage:p,generateSiweMessageForSmartWallet:p,loginWithSiwe:p,linkWithSiwe:p,linkSmartWallet:p,delegateWallet:p,revokeDelegatedWallets:p,exportSolanaWallet:p,connectCoinbaseSmartWallet:p,initiateAccountTransfer:p,emailOtpState:{status:"initial"},setEmailOtpState:p,smsOtpState:{status:"initial"},setSmsOtpState:p,siweState:{status:"initial"},setSiweState:p,oAuthState:{status:"initial"},setOAuthState:p,telegramAuthState:{status:"initial"},setTelegramAuthState:p,isHeadlessOAuthLoading:!1,isHeadlessSigning:p});exports.InternalPrivyContext=_,exports.PrivyApiError=i,exports.PrivyClientError=r,exports.PrivyConnectorError=class extends a{constructor(t,e,s){super(t,e,s),this.type="connector_error"}},exports.PrivyEmbeddedWalletError=class extends r{constructor(t="Embedded wallet error",e){super(t,e,"unknown_embedded_wallet_error")}},exports.PrivyError=a,exports.PrivyErrorCode=o,exports.PrivyNotReadyError=class extends r{constructor(){super("Method called before `ready`. Ensure you wait until `ready` is true before calling.")}},exports.PrivyTimeoutError=class extends r{constructor(){super("Request timed out",void 0,"client_request_timeout")}},exports.PrivyUnauthenticatedError=class extends r{constructor(t="User must be authenticated"){super(t,void 0,"must_be_authenticated")}},exports.PrivyUserLimitReachedError=class extends r{constructor(t){super("This application is in development mode and must be upgraded to production to log in new users.",t,"max_accounts_reached")}},exports.acceptTermsPath="/api/v1/users/me/accept_terms",exports.analyticsEventsPath="/api/v1/analytics_events",exports.authenticateFarcasterV2Path="api/v2/farcaster/authenticate",exports.coinbaseOnRampInitPath="/api/v1/funding/coinbase_on_ramp/init",exports.coinbaseOnRampStatusPath="/api/v1/funding/coinbase_on_ramp/status",exports.customJwtAccountAuthenticatePath="/api/v1/custom_jwt_account/authenticate",exports.customJwtAccountLinkPath="/api/v1/custom_jwt_account/link",exports.delegatedActionsRevokePath="/api/v1/wallets/revoke",exports.farcasterAuthenticatePath="/api/v1/farcaster/authenticate",exports.farcasterInitPath="/api/v1/farcaster/init",exports.farcasterLinkPath="/api/v1/farcaster/link",exports.farcasterStatusPath="/api/v1/farcaster/status",exports.formatApiError=t=>{if(t instanceof a)return t;if(!(t instanceof e.FetchError))return n(t);if(!t.response)return new i("api_error",null,t.message,t);let{type:s,message:r,error:o,code:p}=t.data;return new i(s||"ApiError",t.response.status,r||o,t,p,t.data)},exports.formatPrivyError=n,exports.guestAccountAuthenticatePath="/api/v1/guest/authenticate",exports.initFarcasterV2Path="api/v2/farcaster/init",exports.mfaPasskeyInitPath="/api/v1/mfa/passkeys/init",exports.mfaPasswordlessSmsInitPath="/api/v1/mfa/passwordless_sms/init",exports.moonpayPluginOnRampPath="/api/v1/plugins/moonpay_on_ramp/sign",exports.notImplemented=p,exports.notImplementedWithMessage=t=>()=>{throw Error(t.trim())},exports.oAuthAuthenticatePath="/api/v1/oauth/authenticate",exports.oAuthInitPath="/api/v1/oauth/init",exports.oAuthLinkPath="/api/v1/oauth/link",exports.passkeyAuthenticatePath="/api/v1/passkeys/authenticate",exports.passkeyInitAuthenticatePath="/api/v1/passkeys/authenticate/init",exports.passkeyInitLinkPath="/api/v1/passkeys/link/init",exports.passkeyInitRegisterPath="/api/v1/passkeys/register/init",exports.passkeyLinkPath="/api/v1/passkeys/link",exports.passkeyRegisterPath="/api/v1/passkeys/register",exports.passwordlessAuthenticatePath="/api/v1/passwordless/authenticate",exports.passwordlessInitPath="/api/v1/passwordless/init",exports.passwordlessLinkPath="/api/v1/passwordless/link",exports.passwordlessSmsAuthenticatePath="/api/v1/passwordless_sms/authenticate",exports.passwordlessSmsInitPath="/api/v1/passwordless_sms/init",exports.passwordlessSmsLinkPath="/api/v1/passwordless_sms/link",exports.recoveryOAuthAuthenticatePath="/api/v1/recovery/oauth/authenticate",exports.recoveryOAuthInitICloudPath="/api/v1/recovery/oauth/init_icloud",exports.recoveryOAuthInitPath="/api/v1/recovery/oauth/init",exports.sessionsLogoutPath="/api/v1/sessions/logout",exports.sessionsRefreshPath="/api/v1/sessions",exports.siweAuthenticatePath="/api/v1/siwe/authenticate",exports.siweInitPath="/api/v1/siwe/init",exports.siweLinkPath="/api/v1/siwe/link",exports.siwsAuthenticatePath="/api/v1/siws/authenticate",exports.siwsInitPath="/api/v1/siws/init",exports.siwsLinkPath="/api/v1/siws/link",exports.siwsUnlinkWalletPath="/api/v1/siws/unlink",exports.smartWalletLinkPath="/api/v1/siwe/link_smart_wallet",exports.telegramAccountAuthenticatePath="/api/v1/telegram/authenticate",exports.telegramAccountLinkPath="/api/v1/telegram/link",exports.telegramAccountTransferPath="/api/v1/telegram/transfer",exports.telegramAccountUnlinkPath="/api/v1/telegram/unlink",exports.transactionScanningPath="/api/v1/scan/transaction",exports.transferEmailPath="/api/v1/passwordless/transfer",exports.transferFarcasterPath="/api/v1/farcaster/transfer",exports.transferOAuthPath="/api/v1/oauth/transfer",exports.transferPhonePath="/api/v1/passwordless_sms/transfer",exports.transferWalletPath="/api/v1/siwe/transfer",exports.unlinkEmailPath="/api/v1/passwordless/unlink",exports.unlinkFarcasterPath="/api/v1/farcaster/unlink",exports.unlinkOAuthPath="/api/v1/oauth/unlink",exports.unlinkPhonePath="/api/v1/passwordless_sms/unlink",exports.unlinkWalletPath="/api/v1/siwe/unlink",exports.updateEmailPath="/api/v1/passwordless/update",exports.updatePhonePath="/api/v1/passwordless_sms/update",exports.usePrivyInternal=()=>s.useContext(_),exports.usersMePath="/api/v1/users/me";