@privy-io/react-auth 2.7.1 → 2.7.2

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 (30) 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-B-Or6HA6.js → frame-DIECoMyK.js} +1 -1
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/cjs/internal-context-Z2Asu_e_.js +1 -0
  6. package/dist/cjs/privy-provider-CRh83ztH.js +27 -0
  7. package/dist/cjs/{smart-wallets-DC0Ul4x6.js → smart-wallets-DTEjSVDG.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-Vcnggwyv.js → useActiveWallet-w-uaXTaQ.js} +1 -1
  12. package/dist/cjs/{useFundWallet-BYGqrtqz.js → useFundWallet-Be6Xcbzi.js} +1 -1
  13. package/dist/dts/index.d.mts +1 -1
  14. package/dist/dts/index.d.ts +1 -1
  15. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  16. package/dist/esm/farcaster.mjs +1 -1
  17. package/dist/esm/{frame-BpnDpebm.mjs → frame-Df-urdO7.mjs} +1 -1
  18. package/dist/esm/index.mjs +1 -1
  19. package/dist/esm/{internal-context-D95Bns6A.mjs → internal-context-VSJVgTzy.mjs} +1 -1
  20. package/dist/esm/privy-provider-Bdp7T8ta.mjs +27 -0
  21. package/dist/esm/{smart-wallets-CkUTq3Ym.mjs → smart-wallets-BpSOJT8g.mjs} +1 -1
  22. package/dist/esm/smart-wallets.mjs +1 -1
  23. package/dist/esm/solana.mjs +1 -1
  24. package/dist/esm/ui.mjs +1 -1
  25. package/dist/esm/{useActiveWallet-jAsui8zn.mjs → useActiveWallet-BNKxAK-E.mjs} +1 -1
  26. package/dist/esm/{useFundWallet-ChktspDK.mjs → useFundWallet-BZzm1dvU.mjs} +1 -1
  27. package/package.json +3 -3
  28. package/dist/cjs/internal-context-D-972JmA.js +0 -1
  29. package/dist/cjs/privy-provider-kUjrC6Cw.js +0 -27
  30. package/dist/esm/privy-provider-BCKJFtPt.mjs +0 -27
@@ -1 +1 @@
1
- import{createAbstractClient as e}from"@abstract-foundation/agw-client";import{getBatchTransactionObject as o}from"@abstract-foundation/agw-client/actions";import{hexToNumber as r,createWalletClient as t,custom as n,http as i}from"viem";import{toAccount as a}from"viem/accounts";import{abstractTestnet as c}from"viem/chains";import{u as s,f as l,m as d,aj as m,l as p,a as u,ar as h,as as I,at as g,n as y}from"./privy-provider-BCKJFtPt.mjs";import{u as f}from"./internal-context-D95Bns6A.mjs";import{g as v}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{c as w}from"./smart-wallets-CkUTq3Ym.mjs";import"react/jsx-runtime";import"mipd";import"react";import"react-device-detect";import"viem/utils";import"@privy-io/js-sdk-core";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@marsidev/react-turnstile";import"styled-components";import"tinycolor2";import"@heroicons/react/24/outline/DevicePhoneMobileIcon";import"@heroicons/react/24/outline/FingerPrintIcon";import"@heroicons/react/24/outline/PhoneIcon";import"@heroicons/react/24/outline/ShieldCheckIcon";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"@heroicons/react/24/outline/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"zustand";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/ArrowTopRightOnSquareIcon";import"@heroicons/react/24/solid/DocumentCheckIcon";import"@heroicons/react/24/solid/XCircleIcon";import"@heroicons/react/24/solid/CheckCircleIcon";import"qrcode";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/LockClosedIcon";import"@heroicons/react/24/outline/PencilSquareIcon";import"@heroicons/react/24/outline/ArrowPathIcon";import"@heroicons/react/24/outline/EyeIcon";import"@heroicons/react/24/outline/EyeSlashIcon";import"@heroicons/react/24/outline/KeyIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/InformationCircleIcon";import"@heroicons/react/24/outline/CreditCardIcon";import"@heroicons/react/24/outline/QrCodeIcon";import"@heroicons/react/24/solid/ArrowsRightLeftIcon";import"@heroicons/react/24/outline/GlobeAltIcon";import"@solana/web3.js";import"ofetch";import"@heroicons/react/24/outline";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/outline/CloudArrowUpIcon";import"@heroicons/react/24/outline/NoSymbolIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";import"permissionless";import"permissionless/accounts";import"permissionless/clients/pimlico";import"viem/account-abstraction";function C(){let{user:C}=s(),{hideWalletUIs:T,openPrivyModal:P,chains:S,appId:b,rpcConfig:A,client:M}=f(),k=l(),{wallets:F}=d(),{setModalData:W}=m(),x=p(C),E=async(o=c.id)=>{let s=v(F);if(!s)throw Error("No connected wallet found");let l="string"==typeof o?r(o):o;if(![c.id,2741].includes(l))throw Error("Error, only Abstract chains are supported");let d=S.find((e=>e.id===l));if(!d)throw Error("Chain not configured");await s.switchChain(d.id);let m=await s.getEthereumProvider(),p=t({account:s.address,transport:n(m)}),u=a({address:s.address,signMessage:p.signMessage,signTransaction:p.signTransaction,signTypedData:p.signTypedData});return await e({chain:d,transport:i(y(d,A,b)),publicTransport:i(y(d,A,b)),signer:u})};return{signMessage:async({message:e},o)=>{let r=await E(o);return new Promise((async(o,t)=>{let{entropyId:n,entropyIdVerifier:i}=u(C);T.current=!0,W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:n,entropyIdVerifier:i,onCompleteNavigateTo:h,onFailure:()=>{}},signMessage:{method:"personal_sign",data:e,confirmAndSign:()=>r.signMessage({message:e}),onSuccess:e=>o(e),onFailure:t,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))},signTypedData:async(e,o)=>{let r=await E(o);return new Promise((async(o,t)=>{T.current=!0;let{entropyId:n,entropyIdVerifier:i}=u(C);W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:n,entropyIdVerifier:i,onCompleteNavigateTo:h,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>o(e),onFailure:t,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))},sendTransaction:async e=>{let r=await E(e.chainId),t=[],n="calls"in e&&void 0!==e.calls;return t=n?[...e.calls]:[e],new Promise((async(i,a)=>{T.current=!0;let{entropyId:c,entropyIdVerifier:s}=u(C);W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:c,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},sendTransaction:{transactionRequests:w({calls:t,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:c,entropyIdVerifier:s,transactingWalletAddress:r.account.address,transactingWalletIndex:void 0,scanTransaction:async()=>{if(!M)throw Error("Privy client not found");let t=n?o(r.account.address,e):e,i=await r.prepareAbstractTransactionRequest(t);return await M.scanTransaction({metadata:{domain:k.embeddedWallets.transactionScanning.domain},chain_id:i.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:i.from,to:i.to,value:i.value?.toString(),gas:i.gas?.toString(),gasPrice:i.gasPrice?.toString(),nonce:i.nonce?.toString(),data:i.data,eip_712_meta:{paymaster_params:{paymaster:i.paymaster,paymaster_input:i.paymasterInput}}}]}})},signOnly:!1,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>n?r.sendTransactionBatch(e):r.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:a,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))},signTransaction:async e=>{let r=await E(e.chainId),t=[],n="calls"in e&&void 0!==e.calls;return t=n?[...e.calls]:[e],new Promise((async(i,a)=>{T.current=!0;let{entropyId:c,entropyIdVerifier:s}=u(C);W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:c,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},sendTransaction:{transactionRequests:w({calls:t,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:c,entropyIdVerifier:s,transactingWalletAddress:r.account.address,transactingWalletIndex:void 0,scanTransaction:async()=>{if(!M)throw Error("Privy client not found");let t=n?o(r.account.address,e):e,i=await r.prepareAbstractTransactionRequest(t);return await M.scanTransaction({metadata:{domain:k.embeddedWallets.transactionScanning.domain},chain_id:i.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:i.from,to:i.to,value:i.value?.toString(),gas:i.gas?.toString(),gasPrice:i.gasPrice?.toString(),nonce:i.nonce?.toString(),data:i.data}]}})},signOnly:!0,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>{if(!n)return r.signTransaction(e);throw Error("Batch transactions not supported for signing")},onSuccess:e=>i(e.hash),onFailure:a,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))}}}export{C as useAbstractSmartWallets};
1
+ import{createAbstractClient as e}from"@abstract-foundation/agw-client";import{getBatchTransactionObject as o}from"@abstract-foundation/agw-client/actions";import{hexToNumber as r,createWalletClient as t,custom as n,http as i}from"viem";import{toAccount as a}from"viem/accounts";import{abstractTestnet as c}from"viem/chains";import{u as s,f as l,l as d,al as m,m as p,a as u,at as h,au as I,av as g,n as y}from"./privy-provider-Bdp7T8ta.mjs";import{u as f}from"./internal-context-VSJVgTzy.mjs";import{g as v}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{c as w}from"./smart-wallets-BpSOJT8g.mjs";import"react/jsx-runtime";import"mipd";import"react";import"react-device-detect";import"viem/utils";import"@privy-io/js-sdk-core";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@marsidev/react-turnstile";import"styled-components";import"tinycolor2";import"@heroicons/react/24/outline/DevicePhoneMobileIcon";import"@heroicons/react/24/outline/FingerPrintIcon";import"@heroicons/react/24/outline/PhoneIcon";import"@heroicons/react/24/outline/ShieldCheckIcon";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"@heroicons/react/24/outline/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"zustand";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/ArrowTopRightOnSquareIcon";import"@heroicons/react/24/solid/DocumentCheckIcon";import"@heroicons/react/24/solid/XCircleIcon";import"@heroicons/react/24/solid/CheckCircleIcon";import"qrcode";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/LockClosedIcon";import"@heroicons/react/24/outline/PencilSquareIcon";import"@heroicons/react/24/outline/ArrowPathIcon";import"@heroicons/react/24/outline/EyeIcon";import"@heroicons/react/24/outline/EyeSlashIcon";import"@heroicons/react/24/outline/KeyIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/InformationCircleIcon";import"@heroicons/react/24/outline/CreditCardIcon";import"@heroicons/react/24/outline/QrCodeIcon";import"@heroicons/react/24/solid/ArrowsRightLeftIcon";import"@heroicons/react/24/outline/GlobeAltIcon";import"@solana/web3.js";import"ofetch";import"@heroicons/react/24/outline";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/outline/CloudArrowUpIcon";import"@heroicons/react/24/outline/NoSymbolIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";import"permissionless";import"permissionless/accounts";import"permissionless/clients/pimlico";import"viem/account-abstraction";function C(){let{user:C}=s(),{hideWalletUIs:T,openPrivyModal:P,chains:S,appId:b,rpcConfig:A,client:M}=f(),k=l(),{wallets:F}=d(),{setModalData:W}=m(),x=p(C),E=async(o=c.id)=>{let s=v(F);if(!s)throw Error("No connected wallet found");let l="string"==typeof o?r(o):o;if(![c.id,2741].includes(l))throw Error("Error, only Abstract chains are supported");let d=S.find((e=>e.id===l));if(!d)throw Error("Chain not configured");await s.switchChain(d.id);let m=await s.getEthereumProvider(),p=t({account:s.address,transport:n(m)}),u=a({address:s.address,signMessage:p.signMessage,signTransaction:p.signTransaction,signTypedData:p.signTypedData});return await e({chain:d,transport:i(y(d,A,b)),publicTransport:i(y(d,A,b)),signer:u})};return{signMessage:async({message:e},o)=>{let r=await E(o);return new Promise((async(o,t)=>{let{entropyId:n,entropyIdVerifier:i}=u(C);T.current=!0,W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:n,entropyIdVerifier:i,onCompleteNavigateTo:h,onFailure:()=>{}},signMessage:{method:"personal_sign",data:e,confirmAndSign:()=>r.signMessage({message:e}),onSuccess:e=>o(e),onFailure:t,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))},signTypedData:async(e,o)=>{let r=await E(o);return new Promise((async(o,t)=>{T.current=!0;let{entropyId:n,entropyIdVerifier:i}=u(C);W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:n,entropyIdVerifier:i,onCompleteNavigateTo:h,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>o(e),onFailure:t,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))},sendTransaction:async e=>{let r=await E(e.chainId),t=[],n="calls"in e&&void 0!==e.calls;return t=n?[...e.calls]:[e],new Promise((async(i,a)=>{T.current=!0;let{entropyId:c,entropyIdVerifier:s}=u(C);W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:c,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},sendTransaction:{transactionRequests:w({calls:t,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:c,entropyIdVerifier:s,transactingWalletAddress:r.account.address,transactingWalletIndex:void 0,scanTransaction:async()=>{if(!M)throw Error("Privy client not found");let t=n?o(r.account.address,e):e,i=await r.prepareAbstractTransactionRequest(t);return await M.scanTransaction({metadata:{domain:k.embeddedWallets.transactionScanning.domain},chain_id:i.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:i.from,to:i.to,value:i.value?.toString(),gas:i.gas?.toString(),gasPrice:i.gasPrice?.toString(),nonce:i.nonce?.toString(),data:i.data,eip_712_meta:{paymaster_params:{paymaster:i.paymaster,paymaster_input:i.paymasterInput}}}]}})},signOnly:!1,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>n?r.sendTransactionBatch(e):r.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:a,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))},signTransaction:async e=>{let r=await E(e.chainId),t=[],n="calls"in e&&void 0!==e.calls;return t=n?[...e.calls]:[e],new Promise((async(i,a)=>{T.current=!0;let{entropyId:c,entropyIdVerifier:s}=u(C);W({connectWallet:{recoveryMethod:x.recoveryMethod,connectingWalletAddress:x.address,entropyId:c,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},sendTransaction:{transactionRequests:w({calls:t,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:c,entropyIdVerifier:s,transactingWalletAddress:r.account.address,transactingWalletIndex:void 0,scanTransaction:async()=>{if(!M)throw Error("Privy client not found");let t=n?o(r.account.address,e):e,i=await r.prepareAbstractTransactionRequest(t);return await M.scanTransaction({metadata:{domain:k.embeddedWallets.transactionScanning.domain},chain_id:i.chainId.toString(),request:{method:"eth_sendTransaction",params:[{from:i.from,to:i.to,value:i.value?.toString(),gas:i.gas?.toString(),gasPrice:i.gasPrice?.toString(),nonce:i.nonce?.toString(),data:i.data}]}})},signOnly:!0,getIsSponsored:async()=>void 0!==e.paymaster&&void 0!==e.paymasterInput,onConfirm:()=>{if(!n)return r.signTransaction(e);throw Error("Batch transactions not supported for signing")},onSuccess:e=>i(e.hash),onFailure:a,uiOptions:{isCancellable:!0}}}),P(I)})).finally((()=>{T.current=!1}))}}}export{C as useAbstractSmartWallets};
@@ -1 +1 @@
1
- import{useCallback as t}from"react";import{F as e}from"./frame-BpnDpebm.mjs";import{u as i,P as r}from"./internal-context-D95Bns6A.mjs";import"ofetch";const a=()=>{let{client:a,setAuthenticated:n,setUser:s}=i();return{initLoginToFrame:t((async()=>{let t=new e;if(!a)throw new r("Must initialize Privy client first.");return a.startAuthFlow(t),await t.init()}),[a]),loginToFrame:t((async({message:t,signature:i})=>{if(!a)throw new r("Must initialize Privy client first.");if(!(a.authFlow instanceof e))throw new r("Must initialize Farcaster frame flow first.");let o=(t=>{let e=t.match(/farcaster:\/\/fid\/(\d+)/);return e&&e[1]?parseInt(e[1],10):null})(t);if(!o)throw new r("Invalid message format; could not parse Farcaster ID.");a.authFlow.setAuthData({message:t,signature:i,fid:o});let{user:l}=await a.authenticate();return l&&(s(l),n(!0)),l}),[a,s,n])}};export{a as useLoginToFrame};
1
+ import{useCallback as t}from"react";import{F as e}from"./frame-Df-urdO7.mjs";import{u as i,P as r}from"./internal-context-VSJVgTzy.mjs";import"ofetch";const a=()=>{let{client:a,setAuthenticated:n,setUser:s}=i();return{initLoginToFrame:t((async()=>{let t=new e;if(!a)throw new r("Must initialize Privy client first.");return a.startAuthFlow(t),await t.init()}),[a]),loginToFrame:t((async({message:t,signature:i})=>{if(!a)throw new r("Must initialize Privy client first.");if(!(a.authFlow instanceof e))throw new r("Must initialize Farcaster frame flow first.");let o=(t=>{let e=t.match(/farcaster:\/\/fid\/(\d+)/);return e&&e[1]?parseInt(e[1],10):null})(t);if(!o)throw new r("Invalid message format; could not parse Farcaster ID.");a.authFlow.setAuthData({message:t,signature:i,fid:o});let{user:l}=await a.authenticate();return l&&(s(l),n(!0)),l}),[a,s,n])}};export{a as useLoginToFrame};
@@ -1 +1 @@
1
- import{P as t,am as s,an as i,f as e}from"./internal-context-D95Bns6A.mjs";class a{async init(){if(!this.api)throw new t("Auth flow has no API instance");let{nonce:i,expires_at:e}=await this.api.post(s,{});return{nonce:i,expiresAt:e}}async authenticate(){if(!this.message||!this.signature||!this.fid)throw new t("Auth flow has no message, signature, or fid");if(!this.api)throw new t("Auth flow has no API instance");try{let s=await this.api.post(i,{message:this.message,signature:this.signature,fid:this.fid});if(!s)throw new t("No response from authentication");return s}catch(t){throw e(t)}}async link(){throw Error("Not implemented")}setAuthData({message:t,signature:s,fid:i}){this.message=t,this.signature=s,this.fid=i}constructor(){this.meta={}}}export{a as F};
1
+ import{P as t,am as s,an as i,f as e}from"./internal-context-VSJVgTzy.mjs";class a{async init(){if(!this.api)throw new t("Auth flow has no API instance");let{nonce:i,expires_at:e}=await this.api.post(s,{});return{nonce:i,expiresAt:e}}async authenticate(){if(!this.message||!this.signature||!this.fid)throw new t("Auth flow has no message, signature, or fid");if(!this.api)throw new t("Auth flow has no API instance");try{let s=await this.api.post(i,{message:this.message,signature:this.signature,fid:this.fid});if(!s)throw new t("No response from authentication");return s}catch(t){throw e(t)}}async link(){throw Error("Not implemented")}setAuthData({message:t,signature:s,fid:i}){this.message=t,this.signature=s,this.fid=i}constructor(){this.meta={}}}export{a as F};
@@ -1 +1 @@
1
- import{u as e,g as i,a as n,b as s,c as l,d as h,C as d,e as m,s as k,P as f,f as C,h as W,i as T,G as U,W as S,j as P,k as R,l as N,m as O,n as M}from"./privy-provider-BCKJFtPt.mjs";export{q as Captcha,r as ConnectorManager,E as EthereumWalletConnector,L as LoginModal,A as PrivyClient,o as PrivyProvider,V as VERSION,t as WalletConnector,y as errorIndicatesMaxMfaRetries,z as errorIndicatesMfaTimeout,x as errorIndicatesMfaVerificationFailed,p as getAccessToken,B as useIdentityToken,I as useImportWallet,D as useLogout,v as useMfa,w as useMfaEnrollment,F as useRegisterMfaListener,H as useSolanaWallets}from"./privy-provider-BCKJFtPt.mjs";import{useCallback as _,useMemo as K,useEffect as j,useContext as G}from"react";import{u as Q,P as X,a as $,I as J}from"./internal-context-D95Bns6A.mjs";export{c as useActiveWallet,a as useConnectWallet,b as useFundWallet,u as useLogin}from"./useActiveWallet-jAsui8zn.mjs";import{F as Y}from"./frame-BpnDpebm.mjs";import{zeroAddress as Z,getAddress as ee,createWalletClient as te,http as re,parseSignature as oe}from"viem";import{hashAuthorization as ie}from"viem/utils";export{DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS,addPrivyRpcToChain,addRpcUrlOverrideToChain}from"@privy-io/js-sdk-core";export{g as getEmbeddedConnectedWallet}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import"react/jsx-runtime";import"mipd";import"react-device-detect";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@marsidev/react-turnstile";import"styled-components";import"tinycolor2";import"@heroicons/react/24/outline/DevicePhoneMobileIcon";import"@heroicons/react/24/outline/FingerPrintIcon";import"@heroicons/react/24/outline/PhoneIcon";import"@heroicons/react/24/outline/ShieldCheckIcon";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"@heroicons/react/24/outline/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"zustand";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/ArrowTopRightOnSquareIcon";import"@heroicons/react/24/solid/DocumentCheckIcon";import"@heroicons/react/24/solid/XCircleIcon";import"@heroicons/react/24/solid/CheckCircleIcon";import"qrcode";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/LockClosedIcon";import"@heroicons/react/24/outline/PencilSquareIcon";import"@heroicons/react/24/outline/ArrowPathIcon";import"@heroicons/react/24/outline/EyeIcon";import"@heroicons/react/24/outline/EyeSlashIcon";import"@heroicons/react/24/outline/KeyIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/InformationCircleIcon";import"@heroicons/react/24/outline/CreditCardIcon";import"@heroicons/react/24/outline/QrCodeIcon";import"@heroicons/react/24/solid/ArrowsRightLeftIcon";import"@heroicons/react/24/outline/GlobeAltIcon";import"@solana/web3.js";import"ofetch";import"@heroicons/react/24/outline";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/outline/CloudArrowUpIcon";import"@heroicons/react/24/outline/NoSymbolIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";const ne=()=>{let{user:t}=e(),{walletProxy:r}=Q();return{recover:_((async e=>{if(!r)throw Error("Wallet proxy is not ready");let o=await i();if(!t||!o)throw new X("User must be logged in before attempting to modify the recovery method.");let{entropyId:a,entropyIdVerifier:s}=n(t);try{await r.recover({entropyId:a,entropyIdVerifier:s,accessToken:o,...e})}catch{throw new X("Unable to recover wallets")}}),[r,t])}},ae=()=>{let{client:e,setAuthenticated:t,setUser:r}=Q();return K((()=>({init:async()=>{if(!e)throw new X("Must initialize Privy client first.");let t=new Y;return e.startAuthFlow(t),await t.init()},login:async({fid:o,message:i,signature:n})=>{if(!e)throw new X("Must initialize Privy client first.");if(!(e.authFlow instanceof Y))throw new X("Must initialize Farcaster frame flow first.");e.authFlow.setAuthData({message:i,signature:n,fid:o});let{user:a}=await e.authenticate();if(!a)throw new X("Failed to login with Farcaster V2");return r(a),t(!0),{user:a}}})),[e,r,t])},se=t=>{s("login",t);let r=l(),o=h(),{ready:i,user:n}=e(),{initLoginWithHeadlessOAuth:a,loginWithHeadlessOAuth:c,oAuthState:u,setOAuthState:p,isHeadlessOAuthLoading:w}=Q(),g=_((async e=>{try{if(r.enabled&&"success"!==r.status)throw new d(r.error,null,$.CAPTCHA_FAILURE);return await a(e.provider,r.token,e.disableSignup)}catch(e){throw p({status:"error",error:e}),e}}),[a,r]),A=_((async()=>{let e=m();try{if(n)return console.warn("Cannot login with OAuth when already logged in"),n;if(!e.inProgress)throw Error("Cannot login with OAuth because no OAuth flow is in progress");if(e.popupFlow)return}catch(e){throw p({status:"error",error:e}),e}try{return await c(e)}catch(e){throw p({status:"error",error:e}),e}finally{k()}}),[c]);return j((()=>{let e=m();i&&o&&e.inProgress&&!e.withPrivyUi&&!e.popupFlow&&A().catch((()=>{}))}),[i,o]),{initOAuth:g,loading:w,state:u}},ce=e=>{let t=l(),{emailOtpState:r,setEmailOtpState:o,initLoginWithEmail:i,loginWithCode:n}=Q();return{sendCode:_((async({email:r,disableSignup:n})=>{try{let e;if(!r)throw Error("Email required to send OTP code");if(t.enabled&&"error"===t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);return t.enabled&&"success"!==t.status&&(t.execute(),e=await t.waitForResult()),await i({email:r,captchaToken:e,disableSignup:n,withPrivyUi:!1})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||$.UNKNOWN_AUTH_ERROR),r}}),[i]),loginWithCode:_((async({code:r})=>{try{if(t.enabled&&"error"===t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);let{user:o,isNewUser:i,wasAlreadyAuthenticated:a,linkedAccount:s}=await n(r);e?.onComplete?.({user:o,isNewUser:i,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:s})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||$.UNKNOWN_AUTH_ERROR),r}}),[n,t.status]),state:r}},le=e=>{let t=l(),{initSignupWithPasskey:r,signupWithPasskey:o,passkeyAuthState:i,setPasskeyAuthState:n}=Q();return{signupWithPasskey:_((async()=>{try{let i;if(t.enabled&&"error"===t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);t.enabled&&"success"!==t.status&&(t.execute(),i=await t.waitForResult()),await r({captchaToken:i,withPrivyUi:!1});let{user:n,isNewUser:a,wasAlreadyAuthenticated:s,loginAccount:c}=await o();e?.onComplete?.({user:n,isNewUser:a,wasAlreadyAuthenticated:s,loginMethod:"passkey",loginAccount:c})}catch(t){throw n({status:"error",error:t}),e?.onError?.(t.privyErrorCode||$.UNKNOWN_AUTH_ERROR),t}}),[o,t.status]),state:i}},ue=e=>{let t=l(),{initLoginWithPasskey:r,loginWithPasskey:o,passkeyAuthState:i,setPasskeyAuthState:n}=Q();return{loginWithPasskey:_((async i=>{try{let n;if(t.enabled&&"error"===t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);t.enabled&&"success"!==t.status&&(t.execute(),n=await t.waitForResult()),await r({captchaToken:n,withPrivyUi:!1});let{user:a,isNewUser:s,wasAlreadyAuthenticated:c,loginAccount:l}=await o(i);e?.onComplete?.({user:a,isNewUser:s,wasAlreadyAuthenticated:c,loginMethod:"passkey",loginAccount:l})}catch(i){throw n({status:"error",error:i}),e?.onError?.(i.privyErrorCode||$.UNKNOWN_AUTH_ERROR),i}}),[o,t.status]),state:i}},he=e=>{let{initLinkWithPasskey:t,linkWithPasskey:r,passkeyAuthState:o,setPasskeyAuthState:i}=Q();return{linkWithPasskey:_((async()=>{try{await t();let o=await r();if(!o)throw Error("Error, user not found");let i=o.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,t)=>t.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:o,linkMethod:"passkey",linkedAccount:i})}catch(t){throw i({status:"error",error:t}),e?.onError?.(t.privyErrorCode||$.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),t}}),[r]),state:o}},de=e=>{let t=l(),{smsOtpState:r,setSmsOtpState:o,initLoginWithSms:i,loginWithCode:n}=Q();return{sendCode:_((async({phoneNumber:r,disableSignup:n})=>{try{let e;if(!r)throw Error("SMS required to send OTP code");if(t.enabled&&"error"===t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);return t.enabled&&"success"!==t.status&&(t.execute(),e=await t.waitForResult()),await i({phoneNumber:r,captchaToken:e,disableSignup:n,withPrivyUi:!1})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||$.UNKNOWN_AUTH_ERROR),r}}),[i]),loginWithCode:_((async({code:r})=>{try{if(t.enabled&&"success"!==t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);let{user:o,isNewUser:i,wasAlreadyAuthenticated:a,linkedAccount:s}=await n(r);e?.onComplete?.({user:o,isNewUser:i,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:s})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||$.UNKNOWN_AUTH_ERROR),r}}),[n,t.status]),state:r}},pe=t=>{let{connectOrCreateWallet:r}=e();return s("connectOrCreateWallet",t),{connectOrCreateWallet:r}},we=e=>{let t=l(),{siweState:r,setSiweState:o,linkWithSiwe:i,generateSiweMessage:n}=Q();return{generateSiweMessage:_((async({address:t,chainId:r})=>{try{if(!t||!r)throw Error("wallet address and chainId required to generate nonce");return await n({address:t,chainId:r}).then((e=>e))}catch(t){throw o({status:"error",error:t}),e?.onError?.(t.privyErrorCode||$.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),t}}),[n]),linkWithSiwe:_((async({signature:r,message:n,chainId:a,walletClientType:s,connectorType:c})=>{try{if(t.enabled&&"success"!==t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);let{user:o,linkedAccount:l}=await i({message:n,signature:r,chainId:a,walletClientType:s,connectorType:c});l&&e?.onSuccess?.({user:o,linkMethod:"siwe",linkedAccount:l})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||$.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),r}}),[i,t.status]),state:r}};function me(){let{signTransaction:e}=G(f);return{signTransaction:e}}function ge(e){let{linkEmail:t,linkPhone:r,linkWallet:o,linkGoogle:i,linkApple:n,linkTwitter:a,linkDiscord:c,linkGithub:l,linkLinkedIn:u,linkTiktok:h,linkSpotify:d,linkInstagram:p,linkTelegram:w,linkFarcaster:m}=G(f);return s("linkAccount",e),{linkEmail:t,linkPhone:r,linkWallet:o,linkGoogle:i,linkApple:n,linkTwitter:a,linkDiscord:c,linkGithub:l,linkLinkedIn:u,linkTiktok:h,linkSpotify:d,linkInstagram:p,linkFarcaster:m,linkTelegram:w}}function Ae(e){let{updateEmail:t,updatePhone:r}=G(f);return s("update",e),{updateEmail:t,updatePhone:r}}function ye(e){let{createWallet:t}=G(f);return s("createWallet",e),{createWallet:t}}const ke=()=>{let{connectCoinbaseSmartWallet:e}=Q();return{connectCoinbaseSmartWallet:e}},fe=()=>{let{startCrossAppAuthFlow:t,unlinkCrossAppAccount:r,signMessageWithCrossAppWallet:o,signTypedDataWithCrossAppWallet:i,sendTransactionWithCrossAppWallet:n}=e();return{loginWithCrossAppAccount:({appId:e})=>t({appId:e,action:"login"}),linkCrossAppAccount:({appId:e})=>t({appId:e,action:"link"}),unlinkCrossAppAccount:r,signMessage:o,signTypedData:i,sendTransaction:n}};function Ce(e){let{sendTransaction:t}=G(f);return s("sendTransaction",e),{sendTransaction:t}}function Ie(e){let{setWalletPassword:t}=G(f);return s("setWalletPassword",e),{setWalletPassword:t}}function We(){let e=C(),{getAccessToken:t,createWallet:r}=W(),o=T(),{client:i,setUser:n,setAuthenticated:a,setIsNewUser:s,initializeWalletProxy:c,refreshSessionAndUser:l}=Q();return{createGuestAccount:async()=>{if(!e.id||!i)throw Error("SDK not yet ready");i.startAuthFlow(new U(e.id));try{let{user:u,isNewUser:h}=await i.authenticate();if(h=h||!1,!u)throw new X("Unable to authenticate guest account");let d=await t(),p=await c(S);if(d&&p)try{let t=P(u,e.embeddedWallets.ethereum.createOnLogin),o=R(u,e.embeddedWallets.solana.createOnLogin);if(t&&o){let e=await r();await p.createSolana({accessToken:d,ethereumAddress:e?.address}),u=await l()}else o?(await p.createSolana({accessToken:d,ethereumAddress:N(u)?.address}),u=await l()):t?(await r(),u=await l()):n(u)}catch(e){n(u),console.warn("Unable to create embedded wallet for guest account")}return s(h),a(!0),o("login","onComplete",{user:u,isNewUser:h,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),u}catch(e){throw o("login","onError",e.privyErrorCode||$.UNKNOWN_AUTH_ERROR),e}}}}function Ee(e){let{setWalletRecovery:t}=G(f);return s("setWalletRecovery",e),{setWalletRecovery:t}}function Te(e){let{signMessage:t}=G(f);return s("signMessage",e),{signMessage:t}}const Ue=()=>{let{ready:t,wallets:r}=O(),{user:o}=e(),{rpcConfig:i,chains:n,appId:a}=Q();return{signAuthorization:_((async(e,s)=>{if(!o)throw Error("User must be authenticated before signing with a Privy wallet");if(!t)throw Error("Wallets are not ready");let c=s?.address??N(o)?.address??Z,l=r.find((e=>ee(e.address)===ee(c)));if(!l)throw Error("Signing wallet not found.");let u=e.chainId??Number(l.chainId.split(":")[1]),h=n.find((e=>e.id===u));if(!h)throw Error("Error, chain not configured in PrivyProvider config");let d=te({account:c,chain:h,transport:re(M(h,i,a))}),p=await d.prepareAuthorization({...e}),w=await l.getEthereumProvider(),m=await w.request({method:"secp256k1_sign",params:[ie(p)]});return{...p,...oe(m)}}),[t,r,o,n])}};function Se(e){let{signTypedData:t}=G(f);return s("signTypedData",e),{signTypedData:t}}const Pe=()=>{let{isModalOpen:e}=G(f);return{isOpen:e}};function Re(e){let{getAccessToken:t}=G(f);return s("accessToken",e),{getAccessToken:t}}function ve(t){let{authenticated:r,user:o}=e(),{initLoginWithOAuth:i}=Q(),n=T();return s("oAuthAuthorization",t),{reauthorize:e=>Ne(r,o,i,n,e.provider)}}let Ne=async(e,t,r,o,i)=>{if(!e)throw o("linkAccount","onError",$.MUST_BE_AUTHENTICATED,{linkMethod:i}),new X("User must be authenticated before linking an account.");if(!t?.linkedAccounts.some((e=>e.type.includes(i))))throw new X(`OAuth account of type ${i} not linked to the account.`);await r(i)};const be=e=>{let{customAuthStatus:t}=Q();return s("customAuth",e),{status:t}};function Oe(){let{getFarcasterSignerPublicKey:t,signFarcasterMessage:r,requestFarcasterSignerFromWarpcast:o}=e();return{getFarcasterSignerPublicKey:t,signFarcasterMessage:r,requestFarcasterSignerFromWarpcast:o}}const Me=()=>{let{revokeDelegatedWallets:e,delegateWallet:t}=Q();return{delegateWallet:async({address:e,chainType:r})=>await t({address:e,chainType:r,showDelegationUIs:!0}),revokeWallets:async()=>await e({showDelegationUIs:!0})}},Fe=()=>{let{setUser:e,client:t}=G(J),{user:r}=G(f);return{user:r,refreshUser:_((async()=>{let r=await(t?.updateUserAndIdToken());return e(r??null),r}),[t,e])}},_e=e=>{let t=l(),{initLoginWithTelegram:r,loginWithTelegram:o,telegramAuthState:i,setTelegramAuthState:n}=Q();return{login:_((async i=>{try{if(t.enabled&&"success"!==t.status)throw new d(t.error,null,$.CAPTCHA_FAILURE);await r(t.token,i?.disableSignup);let{user:n,isNewUser:a,loginAccount:s,wasAlreadyAuthenticated:c}=await o({intent:"login"});e?.onComplete?.({user:n,isNewUser:a,wasAlreadyAuthenticated:c,loginMethod:"telegram",loginAccount:s})}catch(i){throw n({status:"error",error:i}),e?.onError?.(i.privyErrorCode||$.UNKNOWN_AUTH_ERROR),i}}),[r,o,t]),state:i}},Le=()=>{let{revokeDelegatedWallets:e,delegateWallet:t}=Q();return{delegateWallet:async({address:e,chainType:r})=>await t({address:e,chainType:r,showDelegationUIs:!1}),revokeWallets:async()=>await e({showDelegationUIs:!1})}};export{ke as useConnectCoinbaseSmartWallet,pe as useConnectOrCreateWallet,ye as useCreateWallet,fe as useCrossAppAccounts,be as useCustomAuth,Me as useDelegatedActions,Oe as useFarcasterSigner,We as useGuestAccounts,Le as useHeadlessDelegatedActions,ge as useLinkAccount,he as useLinkWithPasskey,we as useLinkWithSiwe,ce as useLoginWithEmail,ae as useLoginWithFarcasterV2,se as useLoginWithOAuth,ue as useLoginWithPasskey,de as useLoginWithSms,_e as useLoginWithTelegram,Pe as useModalStatus,ve as useOAuthTokens,W as usePrivy,ne as useRecoverEmbeddedWallet,Ce as useSendTransaction,Ie as useSetWalletPassword,Ee as useSetWalletRecovery,Ue as useSignAuthorization,Te as useSignMessage,me as useSignTransaction,Se as useSignTypedData,le as useSignupWithPasskey,Re as useToken,Ae as useUpdateAccount,Fe as useUser,O as useWallets};
1
+ import{u as e,g as i,a as n,b as s,c as l,d as h,C as d,e as m,s as k,P as C,f,h as T,i as W,G as U,W as P,j as R,k as S,l as N,m as O,n as M}from"./privy-provider-Bdp7T8ta.mjs";export{q as Captcha,r as ConnectorManager,E as EthereumWalletConnector,L as LoginModal,B as PrivyClient,o as PrivyProvider,V as VERSION,t as WalletConnector,z as errorIndicatesMaxMfaRetries,A as errorIndicatesMfaTimeout,y as errorIndicatesMfaVerificationFailed,p as getAccessToken,I as useCreateWallet,D as useIdentityToken,K as useImportWallet,F as useLogout,w as useMfa,x as useMfaEnrollment,v as usePrivy,H as useRegisterMfaListener,J as useSolanaWallets}from"./privy-provider-Bdp7T8ta.mjs";import{useCallback as _,useMemo as j,useEffect as G,useContext as Q}from"react";import{u as X,P as $,a as Y,I as Z}from"./internal-context-VSJVgTzy.mjs";export{c as useActiveWallet,a as useConnectWallet,b as useFundWallet,u as useLogin}from"./useActiveWallet-BNKxAK-E.mjs";import{F as ee}from"./frame-Df-urdO7.mjs";import{zeroAddress as te,getAddress as re,createWalletClient as oe,http as ie,parseSignature as ne}from"viem";import{hashAuthorization as ae}from"viem/utils";export{DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS,addPrivyRpcToChain,addRpcUrlOverrideToChain}from"@privy-io/js-sdk-core";export{g as getEmbeddedConnectedWallet}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import"react/jsx-runtime";import"mipd";import"react-device-detect";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@marsidev/react-turnstile";import"styled-components";import"tinycolor2";import"@heroicons/react/24/outline/DevicePhoneMobileIcon";import"@heroicons/react/24/outline/FingerPrintIcon";import"@heroicons/react/24/outline/PhoneIcon";import"@heroicons/react/24/outline/ShieldCheckIcon";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"@heroicons/react/24/outline/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@headlessui/react";import"@walletconnect/ethereum-provider";import"zustand";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/ArrowTopRightOnSquareIcon";import"@heroicons/react/24/solid/DocumentCheckIcon";import"@heroicons/react/24/solid/XCircleIcon";import"@heroicons/react/24/solid/CheckCircleIcon";import"qrcode";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/LockClosedIcon";import"@heroicons/react/24/outline/PencilSquareIcon";import"@heroicons/react/24/outline/ArrowPathIcon";import"@heroicons/react/24/outline/EyeIcon";import"@heroicons/react/24/outline/EyeSlashIcon";import"@heroicons/react/24/outline/KeyIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/InformationCircleIcon";import"@heroicons/react/24/outline/CreditCardIcon";import"@heroicons/react/24/outline/QrCodeIcon";import"@heroicons/react/24/solid/ArrowsRightLeftIcon";import"@heroicons/react/24/outline/GlobeAltIcon";import"@solana/web3.js";import"ofetch";import"@heroicons/react/24/outline";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/outline/CloudArrowUpIcon";import"@heroicons/react/24/outline/NoSymbolIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";const se=()=>{let{user:t}=e(),{walletProxy:r}=X();return{recover:_((async e=>{if(!r)throw Error("Wallet proxy is not ready");let o=await i();if(!t||!o)throw new $("User must be logged in before attempting to modify the recovery method.");let{entropyId:a,entropyIdVerifier:s}=n(t);try{await r.recover({entropyId:a,entropyIdVerifier:s,accessToken:o,...e})}catch{throw new $("Unable to recover wallets")}}),[r,t])}},ce=()=>{let{client:e,setAuthenticated:t,setUser:r}=X();return j((()=>({init:async()=>{if(!e)throw new $("Must initialize Privy client first.");let t=new ee;return e.startAuthFlow(t),await t.init()},login:async({fid:o,message:i,signature:n})=>{if(!e)throw new $("Must initialize Privy client first.");if(!(e.authFlow instanceof ee))throw new $("Must initialize Farcaster frame flow first.");e.authFlow.setAuthData({message:i,signature:n,fid:o});let{user:a}=await e.authenticate();if(!a)throw new $("Failed to login with Farcaster V2");return r(a),t(!0),{user:a}}})),[e,r,t])},le=t=>{s("login",t);let r=l(),o=h(),{ready:i,user:n}=e(),{initLoginWithHeadlessOAuth:a,loginWithHeadlessOAuth:c,oAuthState:u,setOAuthState:p,isHeadlessOAuthLoading:w}=X(),g=_((async e=>{try{if(r.enabled&&"success"!==r.status)throw new d(r.error,null,Y.CAPTCHA_FAILURE);return await a(e.provider,r.token,e.disableSignup)}catch(e){throw p({status:"error",error:e}),e}}),[a,r]),y=_((async()=>{let e=m();try{if(n)return console.warn("Cannot login with OAuth when already logged in"),n;if(!e.inProgress)throw Error("Cannot login with OAuth because no OAuth flow is in progress");if(e.popupFlow)return}catch(e){throw p({status:"error",error:e}),e}try{return await c(e)}catch(e){throw p({status:"error",error:e}),e}finally{k()}}),[c]);return G((()=>{let e=m();i&&o&&e.inProgress&&!e.withPrivyUi&&!e.popupFlow&&y().catch((()=>{}))}),[i,o]),{initOAuth:g,loading:w,state:u}},ue=e=>{let t=l(),{emailOtpState:r,setEmailOtpState:o,initLoginWithEmail:i,loginWithCode:n}=X();return{sendCode:_((async({email:r,disableSignup:n})=>{try{let e;if(!r)throw Error("Email required to send OTP code");if(t.enabled&&"error"===t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);return t.enabled&&"success"!==t.status&&(t.execute(),e=await t.waitForResult()),await i({email:r,captchaToken:e,disableSignup:n,withPrivyUi:!1})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),r}}),[i]),loginWithCode:_((async({code:r})=>{try{if(t.enabled&&"error"===t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);let{user:o,isNewUser:i,wasAlreadyAuthenticated:a,linkedAccount:s}=await n(r);e?.onComplete?.({user:o,isNewUser:i,wasAlreadyAuthenticated:a,loginMethod:"email",loginAccount:s})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),r}}),[n,t.status]),state:r}},he=e=>{let t=l(),{initSignupWithPasskey:r,signupWithPasskey:o,passkeyAuthState:i,setPasskeyAuthState:n}=X();return{signupWithPasskey:_((async()=>{try{let i;if(t.enabled&&"error"===t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);t.enabled&&"success"!==t.status&&(t.execute(),i=await t.waitForResult()),await r({captchaToken:i,withPrivyUi:!1});let{user:n,isNewUser:a,wasAlreadyAuthenticated:s,loginAccount:c}=await o();e?.onComplete?.({user:n,isNewUser:a,wasAlreadyAuthenticated:s,loginMethod:"passkey",loginAccount:c})}catch(t){throw n({status:"error",error:t}),e?.onError?.(t.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),t}}),[o,t.status]),state:i}},de=e=>{let t=l(),{initLoginWithPasskey:r,loginWithPasskey:o,passkeyAuthState:i,setPasskeyAuthState:n}=X();return{loginWithPasskey:_((async i=>{try{let n;if(t.enabled&&"error"===t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);t.enabled&&"success"!==t.status&&(t.execute(),n=await t.waitForResult()),await r({captchaToken:n,withPrivyUi:!1});let{user:a,isNewUser:s,wasAlreadyAuthenticated:c,loginAccount:l}=await o(i);e?.onComplete?.({user:a,isNewUser:s,wasAlreadyAuthenticated:c,loginMethod:"passkey",loginAccount:l})}catch(i){throw n({status:"error",error:i}),e?.onError?.(i.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),i}}),[o,t.status]),state:i}},pe=e=>{let{initLinkWithPasskey:t,linkWithPasskey:r,passkeyAuthState:o,setPasskeyAuthState:i}=X();return{linkWithPasskey:_((async()=>{try{await t();let o=await r();if(!o)throw Error("Error, user not found");let i=o.linkedAccounts.filter((e=>"passkey"===e.type)).sort(((e,t)=>t.latestVerifiedAt.getTime()-e.latestVerifiedAt.getTime()))[0];e?.onSuccess?.({user:o,linkMethod:"passkey",linkedAccount:i})}catch(t){throw i({status:"error",error:t}),e?.onError?.(t.privyErrorCode||Y.UNKNOWN_AUTH_ERROR,{linkMethod:"passkey"}),t}}),[r]),state:o}},we=e=>{let t=l(),{smsOtpState:r,setSmsOtpState:o,initLoginWithSms:i,loginWithCode:n}=X();return{sendCode:_((async({phoneNumber:r,disableSignup:n})=>{try{let e;if(!r)throw Error("SMS required to send OTP code");if(t.enabled&&"error"===t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);return t.enabled&&"success"!==t.status&&(t.execute(),e=await t.waitForResult()),await i({phoneNumber:r,captchaToken:e,disableSignup:n,withPrivyUi:!1})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),r}}),[i]),loginWithCode:_((async({code:r})=>{try{if(t.enabled&&"success"!==t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);let{user:o,isNewUser:i,wasAlreadyAuthenticated:a,linkedAccount:s}=await n(r);e?.onComplete?.({user:o,isNewUser:i,wasAlreadyAuthenticated:a,loginMethod:"sms",loginAccount:s})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),r}}),[n,t.status]),state:r}},me=t=>{let{connectOrCreateWallet:r}=e();return s("connectOrCreateWallet",t),{connectOrCreateWallet:r}},ge=e=>{let t=l(),{siweState:r,setSiweState:o,linkWithSiwe:i,generateSiweMessage:n}=X();return{generateSiweMessage:_((async({address:t,chainId:r})=>{try{if(!t||!r)throw Error("wallet address and chainId required to generate nonce");return await n({address:t,chainId:r}).then((e=>e))}catch(t){throw o({status:"error",error:t}),e?.onError?.(t.privyErrorCode||Y.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),t}}),[n]),linkWithSiwe:_((async({signature:r,message:n,chainId:a,walletClientType:s,connectorType:c})=>{try{if(t.enabled&&"success"!==t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);let{user:o,linkedAccount:l}=await i({message:n,signature:r,chainId:a,walletClientType:s,connectorType:c});l&&e?.onSuccess?.({user:o,linkMethod:"siwe",linkedAccount:l})}catch(r){throw o({status:"error",error:r}),e?.onError?.(r.privyErrorCode||Y.UNKNOWN_AUTH_ERROR,{linkMethod:"siwe"}),r}}),[i,t.status]),state:r}};function ye(){let{signTransaction:e}=Q(C);return{signTransaction:e}}function Ae(e){let{linkEmail:t,linkPhone:r,linkWallet:o,linkGoogle:i,linkApple:n,linkTwitter:a,linkDiscord:c,linkGithub:l,linkLinkedIn:u,linkTiktok:h,linkSpotify:d,linkInstagram:p,linkTelegram:w,linkFarcaster:m}=Q(C);return s("linkAccount",e),{linkEmail:t,linkPhone:r,linkWallet:o,linkGoogle:i,linkApple:n,linkTwitter:a,linkDiscord:c,linkGithub:l,linkLinkedIn:u,linkTiktok:h,linkSpotify:d,linkInstagram:p,linkFarcaster:m,linkTelegram:w}}function ke(e){let{updateEmail:t,updatePhone:r}=Q(C);return s("update",e),{updateEmail:t,updatePhone:r}}const Ce=()=>{let{connectCoinbaseSmartWallet:e}=X();return{connectCoinbaseSmartWallet:e}},fe=()=>{let{startCrossAppAuthFlow:t,unlinkCrossAppAccount:r,signMessageWithCrossAppWallet:o,signTypedDataWithCrossAppWallet:i,sendTransactionWithCrossAppWallet:n}=e();return{loginWithCrossAppAccount:({appId:e})=>t({appId:e,action:"login"}),linkCrossAppAccount:({appId:e})=>t({appId:e,action:"link"}),unlinkCrossAppAccount:r,signMessage:o,signTypedData:i,sendTransaction:n}};function Ie(e){let{sendTransaction:t}=Q(C);return s("sendTransaction",e),{sendTransaction:t}}function Te(e){let{setWalletPassword:t}=Q(C);return s("setWalletPassword",e),{setWalletPassword:t}}function Ee(){let t=f(),{getAccessToken:r}=e(),o=T(),{client:i,setUser:n,setAuthenticated:a,setIsNewUser:s,initializeWalletProxy:c}=X(),{create:l}=W();return{createGuestAccount:async()=>{if(!t.id||!i)throw Error("SDK not yet ready");i.startAuthFlow(new U(t.id));try{let e=await i.authenticate(),u=e.user,h=e.isNewUser??!1;if(!u)throw new $("Unable to authenticate guest account");let d=await r(),p=await c(P);if(d&&p)try{let e=R(u,t.embeddedWallets.ethereum.createOnLogin),r=S(u,t.embeddedWallets.solana.createOnLogin);e&&r?(u=(await l({chainType:"ethereum",latestUser:u})).user,u=(await l({chainType:"solana",latestUser:u})).user):r?u=(await l({chainType:"solana",latestUser:u})).user:e?u=(await l({chainType:"ethereum",latestUser:u})).user:n(u)}catch(e){n(u),console.warn("Unable to create embedded wallet for guest account")}return s(h),a(!0),o("login","onComplete",{user:u,isNewUser:h,wasAlreadyAuthenticated:!1,loginMethod:"guest",loginAccount:null}),u}catch(e){throw o("login","onError",e.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),e}}}}function We(e){let{setWalletRecovery:t}=Q(C);return s("setWalletRecovery",e),{setWalletRecovery:t}}function Ue(e){let{signMessage:t}=Q(C);return s("signMessage",e),{signMessage:t}}const Pe=()=>{let{ready:t,wallets:r}=N(),{user:o}=e(),{rpcConfig:i,chains:n,appId:a}=X();return{signAuthorization:_((async(e,s)=>{if(!o)throw Error("User must be authenticated before signing with a Privy wallet");if(!t)throw Error("Wallets are not ready");let c=s?.address??O(o)?.address??te,l=r.find((e=>re(e.address)===re(c)));if(!l)throw Error("Signing wallet not found.");let u=e.chainId??Number(l.chainId.split(":")[1]),h=n.find((e=>e.id===u));if(!h)throw Error("Error, chain not configured in PrivyProvider config");let d=oe({account:c,chain:h,transport:ie(M(h,i,a))}),p=await d.prepareAuthorization({...e}),w=await l.getEthereumProvider(),m=await w.request({method:"secp256k1_sign",params:[ae(p)]});return{...p,...ne(m)}}),[t,r,o,n])}};function Re(e){let{signTypedData:t}=Q(C);return s("signTypedData",e),{signTypedData:t}}const Se=()=>{let{isModalOpen:e}=Q(C);return{isOpen:e}};function ve(e){let{getAccessToken:t}=Q(C);return s("accessToken",e),{getAccessToken:t}}function Ne(t){let{authenticated:r,user:o}=e(),{initLoginWithOAuth:i}=X(),n=T();return s("oAuthAuthorization",t),{reauthorize:e=>be(r,o,i,n,e.provider)}}let be=async(e,t,r,o,i)=>{if(!e)throw o("linkAccount","onError",Y.MUST_BE_AUTHENTICATED,{linkMethod:i}),new $("User must be authenticated before linking an account.");if(!t?.linkedAccounts.some((e=>e.type.includes(i))))throw new $(`OAuth account of type ${i} not linked to the account.`);await r(i)};const Oe=e=>{let{customAuthStatus:t}=X();return s("customAuth",e),{status:t}};function Me(){let{getFarcasterSignerPublicKey:t,signFarcasterMessage:r,requestFarcasterSignerFromWarpcast:o}=e();return{getFarcasterSignerPublicKey:t,signFarcasterMessage:r,requestFarcasterSignerFromWarpcast:o}}const Fe=()=>{let{revokeDelegatedWallets:e,delegateWallet:t}=X();return{delegateWallet:async({address:e,chainType:r})=>await t({address:e,chainType:r,showDelegationUIs:!0}),revokeWallets:async()=>await e({showDelegationUIs:!0})}},_e=()=>{let{setUser:e,client:t}=Q(Z),{user:r}=Q(C);return{user:r,refreshUser:_((async()=>{let r=await(t?.updateUserAndIdToken());return e(r??null),r}),[t,e])}},Le=e=>{let t=l(),{initLoginWithTelegram:r,loginWithTelegram:o,telegramAuthState:i,setTelegramAuthState:n}=X();return{login:_((async i=>{try{if(t.enabled&&"success"!==t.status)throw new d(t.error,null,Y.CAPTCHA_FAILURE);await r(t.token,i?.disableSignup);let{user:n,isNewUser:a,loginAccount:s,wasAlreadyAuthenticated:c}=await o({intent:"login"});e?.onComplete?.({user:n,isNewUser:a,wasAlreadyAuthenticated:c,loginMethod:"telegram",loginAccount:s})}catch(i){throw n({status:"error",error:i}),e?.onError?.(i.privyErrorCode||Y.UNKNOWN_AUTH_ERROR),i}}),[r,o,t]),state:i}},De=()=>{let{revokeDelegatedWallets:e,delegateWallet:t}=X();return{delegateWallet:async({address:e,chainType:r})=>await t({address:e,chainType:r,showDelegationUIs:!1}),revokeWallets:async()=>await e({showDelegationUIs:!1})}};export{Ce as useConnectCoinbaseSmartWallet,me as useConnectOrCreateWallet,fe as useCrossAppAccounts,Oe as useCustomAuth,Fe as useDelegatedActions,Me as useFarcasterSigner,Ee as useGuestAccounts,De as useHeadlessDelegatedActions,Ae as useLinkAccount,pe as useLinkWithPasskey,ge as useLinkWithSiwe,ue as useLoginWithEmail,ce as useLoginWithFarcasterV2,le as useLoginWithOAuth,de as useLoginWithPasskey,we as useLoginWithSms,Le as useLoginWithTelegram,Se as useModalStatus,Ne as useOAuthTokens,se as useRecoverEmbeddedWallet,Ie as useSendTransaction,Te as useSetWalletPassword,We as useSetWalletRecovery,Pe as useSignAuthorization,Ue as useSignMessage,ye as useSignTransaction,Re as useSignTypedData,he as useSignupWithPasskey,ve as useToken,ke as useUpdateAccount,_e as useUser,N as useWallets};
@@ -1 +1 @@
1
- import{FetchError as a}from"ofetch";import{createContext as e,useContext as s}from"react";var t;class i extends Error{toString(){return`${this.type}${this.privyErrorCode?`-${this.privyErrorCode}`:""}: ${this.message}${this.cause?` [cause: ${this.cause}]`:""}`}constructor(a,e,s){super(a),e instanceof Error&&(this.cause=e),this.privyErrorCode=s}}class n extends i{constructor(a,e,s,t,i,n){super(s,t,i),this.type=a,this.status=e,this.data=n}}class r extends i{constructor(a,e,s){super(a,e,s),this.type="client_error"}}class _ extends r{constructor(){super("Request timed out",void 0,"client_request_timeout")}}class o extends i{constructor(a,e,s){super(a,e,s),this.type="connector_error"}}const l=e=>{if(e instanceof i)return e;if(!(e instanceof a))return u(e);if(!e.response)return new n("api_error",null,e.message,e);let{type:s,message:t,error:r,code:_}=e.data;return new n(s||"ApiError",e.response.status,t||r,e,_,e.data)},u=a=>a instanceof i?a:a instanceof Error?new r(a.message,a):new r(`Internal error: ${a}`);var d=((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);class p extends r{constructor(){super("Method called before `ready`. Ensure you wait until `ready` is true before calling.")}}class c extends r{constructor(a="Embedded wallet error",e){super(a,e,"unknown_embedded_wallet_error")}}class E extends r{constructor(a="User must be authenticated"){super(a,void 0,"must_be_authenticated")}}class A extends r{constructor(a){super("This application is in development mode and must be upgraded to production to log in new users.",a,"max_accounts_reached")}}const h="/api/v1/sessions",v="/api/v1/sessions/logout",S="/api/v1/siwe/init",T="/api/v1/siwe/authenticate",m="/api/v1/siwe/link",w="/api/v1/siwe/link_smart_wallet",I="/api/v1/siwe/unlink",D="/api/v1/siwe/transfer",N="/api/v1/siws/init",O="/api/v1/siws/authenticate",L="/api/v1/siws/link",g="/api/v1/siws/unlink",R="/api/v1/farcaster/init",W="/api/v1/farcaster/authenticate",U="/api/v1/farcaster/link",f="/api/v1/farcaster/status",k="/api/v1/farcaster/unlink",y="/api/v1/farcaster/transfer",C="api/v2/farcaster/init",P="api/v2/farcaster/authenticate",M="/api/v1/passwordless/init",F="/api/v1/passwordless/authenticate",b="/api/v1/passwordless/link",x="/api/v1/passwordless/unlink",H="/api/v1/passwordless/update",B="/api/v1/passwordless/transfer",V="/api/v1/passwordless_sms/init",K="/api/v1/passwordless_sms/link",Y="/api/v1/passwordless_sms/unlink",G="/api/v1/passwordless_sms/authenticate",X="/api/v1/passwordless_sms/update",$="/api/v1/passwordless_sms/transfer",q="/api/v1/oauth/init",j="/api/v1/oauth/authenticate",Q="/api/v1/oauth/link",z="/api/v1/oauth/unlink",J="/api/v1/oauth/transfer",Z="/api/v1/recovery/oauth/init",aa="/api/v1/recovery/oauth/init_icloud",ea="/api/v1/recovery/oauth/authenticate",sa="/api/v1/passkeys/link/init",ta="/api/v1/passkeys/authenticate/init",ia="/api/v1/passkeys/register/init",na="/api/v1/passkeys/link",ra="/api/v1/passkeys/authenticate",_a="/api/v1/passkeys/register",oa="/api/v1/telegram/authenticate",la="/api/v1/telegram/link",ua="/api/v1/telegram/unlink",da="/api/v1/telegram/transfer",pa="/api/v1/mfa/passwordless_sms/init",ca="/api/v1/mfa/passkeys/init",Ea="/api/v1/users/me/accept_terms",Aa="/api/v1/analytics_events",ha="/api/v1/custom_jwt_account/authenticate",va="/api/v1/guest/authenticate",Sa="/api/v1/plugins/moonpay_on_ramp/sign",Ta="/api/v1/funding/coinbase_on_ramp/init",ma="/api/v1/funding/coinbase_on_ramp/status",wa="/api/v1/wallets/revoke",Ia="/api/v1/users/me",Da="/api/v1/scan/transaction",Na=()=>{throw Error("You need to wrap your application with the <PrivyProvider> initialized with your app id.")},Oa=a=>()=>{throw Error(a.trim())},La=/*#__PURE__*/e({setAuthenticated:Na,setUser:Na,setIsNewUser:Na,isNewUserThisSession:!1,walletConnectionStatus:null,connectors:[],solanaWallets:[],rpcConfig:{rpcUrls:{}},showFiatPrices:!0,chains:[],clientAnalyticsId:null,pendingTransaction:null,client:null,privy:null,appId:"notAdded",customAuthStatus:{status:"not-enabled"},hideWalletUIs:{current:!1},nativeTokenSymbolForChainId:Na,initializeWalletProxy:Na,getAuthMeta:Na,getAuthFlow:Na,closePrivyModal:Na,openPrivyModal:Na,connectWallet:Na,initLoginWithWallet:Na,loginWithWallet:Na,initLoginWithFarcaster:Na,loginWithFarcaster:Na,loginWithCode:Na,initLoginWithEmail:Na,initLoginWithSms:Na,initUpdateEmail:Na,initUpdatePhone:Na,resendEmailCode:Na,resendSmsCode:Na,initLoginWithHeadlessOAuth:Na,loginWithHeadlessOAuth:Na,crossAppAuthFlow:Na,initLoginWithOAuth:Na,loginWithOAuth:Na,passkeyAuthState:{status:"initial"},setPasskeyAuthState:Na,initSignupWithPasskey:Na,signupWithPasskey:Na,initLoginWithPasskey:Na,loginWithPasskey:Na,initLinkWithPasskey:Na,linkWithPasskey:Na,refreshSessionAndUser:Na,walletProxy:null,createAnalyticsEvent:Na,acceptTerms:Na,getUsdTokenPrice:Na,getUsdPriceForSol:Na,getSplTokenMetadata:Na,recoverPrimaryWallet:Na,updateWallets:Na,fundWallet:Na,openModal:Na,setReadyToTrue:Na,requestFarcasterSignerStatus:Na,initLoginWithTelegram:Na,loginWithTelegram:Na,generateSiweMessage:Na,generateSiweMessageForSmartWallet:Na,linkWithSiwe:Na,linkSmartWallet:Na,delegateWallet:Na,revokeDelegatedWallets:Na,createEmbeddedSolanaWallet:Na,exportSolanaWallet:Na,connectCoinbaseSmartWallet:Na,initiateAccountTransfer:Na,emailOtpState:{status:"initial"},setEmailOtpState:Na,smsOtpState:{status:"initial"},setSmsOtpState:Na,siweState:{status:"initial"},setSiweState:Na,oAuthState:{status:"initial"},setOAuthState:Na,telegramAuthState:{status:"initial"},setTelegramAuthState:Na,isHeadlessOAuthLoading:!1,isHeadlessSigning:Na}),ga=()=>s(La);export{ma as $,i as A,oa as B,la as C,Oa as D,_ as E,h as F,v as G,Aa as H,La as I,ha as J,va as K,u as L,n as M,pa as N,ca as O,r as P,Ea as Q,x as R,Y as S,I as T,g as U,z as V,k as W,ua as X,wa as Y,Sa as Z,Ta as _,d as a,S as a0,T as a1,m as a2,w as a3,N as a4,O as a5,J as a6,da as a7,y as a8,D as a9,$ as aa,B as ab,L as ac,Ia as ad,Da as ae,ea as af,aa as ag,Z as ah,c as ai,A as aj,E as ak,p as al,C as am,P as an,b,M as c,H as d,o as e,l as f,W as g,U as h,R as i,f as j,Q as k,q as l,_a as m,Na as n,j as o,F as p,ra as q,na as r,ia as s,ta as t,ga as u,sa as v,G as w,K as x,V as y,X as z};
1
+ import{FetchError as a}from"ofetch";import{createContext as e,useContext as s}from"react";var t;class i extends Error{toString(){return`${this.type}${this.privyErrorCode?`-${this.privyErrorCode}`:""}: ${this.message}${this.cause?` [cause: ${this.cause}]`:""}`}constructor(a,e,s){super(a),e instanceof Error&&(this.cause=e),this.privyErrorCode=s}}class n extends i{constructor(a,e,s,t,i,n){super(s,t,i),this.type=a,this.status=e,this.data=n}}class r extends i{constructor(a,e,s){super(a,e,s),this.type="client_error"}}class _ extends r{constructor(){super("Request timed out",void 0,"client_request_timeout")}}class o extends i{constructor(a,e,s){super(a,e,s),this.type="connector_error"}}const l=e=>{if(e instanceof i)return e;if(!(e instanceof a))return u(e);if(!e.response)return new n("api_error",null,e.message,e);let{type:s,message:t,error:r,code:_}=e.data;return new n(s||"ApiError",e.response.status,t||r,e,_,e.data)},u=a=>a instanceof i?a:a instanceof Error?new r(a.message,a):new r(`Internal error: ${a}`);var p=((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);class d extends r{constructor(){super("Method called before `ready`. Ensure you wait until `ready` is true before calling.")}}class c extends r{constructor(a="Embedded wallet error",e){super(a,e,"unknown_embedded_wallet_error")}}class E extends r{constructor(a="User must be authenticated"){super(a,void 0,"must_be_authenticated")}}class A extends r{constructor(a){super("This application is in development mode and must be upgraded to production to log in new users.",a,"max_accounts_reached")}}const h="/api/v1/sessions",v="/api/v1/sessions/logout",S="/api/v1/siwe/init",T="/api/v1/siwe/authenticate",m="/api/v1/siwe/link",w="/api/v1/siwe/link_smart_wallet",I="/api/v1/siwe/unlink",D="/api/v1/siwe/transfer",N="/api/v1/siws/init",O="/api/v1/siws/authenticate",L="/api/v1/siws/link",g="/api/v1/siws/unlink",R="/api/v1/farcaster/init",W="/api/v1/farcaster/authenticate",U="/api/v1/farcaster/link",f="/api/v1/farcaster/status",k="/api/v1/farcaster/unlink",y="/api/v1/farcaster/transfer",C="api/v2/farcaster/init",P="api/v2/farcaster/authenticate",M="/api/v1/passwordless/init",F="/api/v1/passwordless/authenticate",b="/api/v1/passwordless/link",x="/api/v1/passwordless/unlink",H="/api/v1/passwordless/update",B="/api/v1/passwordless/transfer",V="/api/v1/passwordless_sms/init",K="/api/v1/passwordless_sms/link",Y="/api/v1/passwordless_sms/unlink",G="/api/v1/passwordless_sms/authenticate",X="/api/v1/passwordless_sms/update",$="/api/v1/passwordless_sms/transfer",q="/api/v1/oauth/init",j="/api/v1/oauth/authenticate",Q="/api/v1/oauth/link",z="/api/v1/oauth/unlink",J="/api/v1/oauth/transfer",Z="/api/v1/recovery/oauth/init",aa="/api/v1/recovery/oauth/init_icloud",ea="/api/v1/recovery/oauth/authenticate",sa="/api/v1/passkeys/link/init",ta="/api/v1/passkeys/authenticate/init",ia="/api/v1/passkeys/register/init",na="/api/v1/passkeys/link",ra="/api/v1/passkeys/authenticate",_a="/api/v1/passkeys/register",oa="/api/v1/telegram/authenticate",la="/api/v1/telegram/link",ua="/api/v1/telegram/unlink",pa="/api/v1/telegram/transfer",da="/api/v1/mfa/passwordless_sms/init",ca="/api/v1/mfa/passkeys/init",Ea="/api/v1/users/me/accept_terms",Aa="/api/v1/analytics_events",ha="/api/v1/custom_jwt_account/authenticate",va="/api/v1/guest/authenticate",Sa="/api/v1/plugins/moonpay_on_ramp/sign",Ta="/api/v1/funding/coinbase_on_ramp/init",ma="/api/v1/funding/coinbase_on_ramp/status",wa="/api/v1/wallets/revoke",Ia="/api/v1/users/me",Da="/api/v1/scan/transaction",Na=()=>{throw Error("You need to wrap your application with the <PrivyProvider> initialized with your app id.")},Oa=a=>()=>{throw Error(a.trim())},La=/*#__PURE__*/e({setAuthenticated:Na,setUser:Na,setIsNewUser:Na,isNewUserThisSession:!1,walletConnectionStatus:null,connectors:[],solanaWallets:[],rpcConfig:{rpcUrls:{}},showFiatPrices:!0,chains:[],clientAnalyticsId:null,pendingTransaction:null,client:null,privy:null,appId:"notAdded",customAuthStatus:{status:"not-enabled"},hideWalletUIs:{current:!1},nativeTokenSymbolForChainId:Na,initializeWalletProxy:Na,getAuthMeta:Na,getAuthFlow:Na,closePrivyModal:Na,openPrivyModal:Na,connectWallet:Na,initLoginWithWallet:Na,loginWithWallet:Na,initLoginWithFarcaster:Na,loginWithFarcaster:Na,loginWithCode:Na,initLoginWithEmail:Na,initLoginWithSms:Na,initUpdateEmail:Na,initUpdatePhone:Na,resendEmailCode:Na,resendSmsCode:Na,initLoginWithHeadlessOAuth:Na,loginWithHeadlessOAuth:Na,crossAppAuthFlow:Na,initLoginWithOAuth:Na,loginWithOAuth:Na,passkeyAuthState:{status:"initial"},setPasskeyAuthState:Na,initSignupWithPasskey:Na,signupWithPasskey:Na,initLoginWithPasskey:Na,loginWithPasskey:Na,initLinkWithPasskey:Na,linkWithPasskey:Na,refreshSessionAndUser:Na,walletProxy:null,createAnalyticsEvent:Na,acceptTerms:Na,getUsdTokenPrice:Na,getUsdPriceForSol:Na,getSplTokenMetadata:Na,recoverPrimaryWallet:Na,updateWallets:Na,fundWallet:Na,openModal:Na,setReadyToTrue:Na,requestFarcasterSignerStatus:Na,initLoginWithTelegram:Na,loginWithTelegram:Na,generateSiweMessage:Na,generateSiweMessageForSmartWallet:Na,linkWithSiwe:Na,linkSmartWallet:Na,delegateWallet:Na,revokeDelegatedWallets:Na,exportSolanaWallet:Na,connectCoinbaseSmartWallet:Na,initiateAccountTransfer:Na,emailOtpState:{status:"initial"},setEmailOtpState:Na,smsOtpState:{status:"initial"},setSmsOtpState:Na,siweState:{status:"initial"},setSiweState:Na,oAuthState:{status:"initial"},setOAuthState:Na,telegramAuthState:{status:"initial"},setTelegramAuthState:Na,isHeadlessOAuthLoading:!1,isHeadlessSigning:Na}),ga=()=>s(La);export{ma as $,i as A,oa as B,la as C,Oa as D,_ as E,h as F,v as G,Aa as H,La as I,ha as J,va as K,u as L,n as M,da as N,ca as O,r as P,Ea as Q,x as R,Y as S,I as T,g as U,z as V,k as W,ua as X,wa as Y,Sa as Z,Ta as _,p as a,S as a0,T as a1,m as a2,w as a3,N as a4,O as a5,J as a6,pa as a7,y as a8,D as a9,$ as aa,B as ab,L as ac,Ia as ad,Da as ae,ea as af,aa as ag,Z as ah,c as ai,A as aj,E as ak,d as al,C as am,P as an,b,M as c,H as d,o as e,l as f,W as g,U as h,R as i,f as j,Q as k,q as l,_a as m,Na as n,j as o,F as p,ra as q,na as r,ia as s,ta as t,ga as u,sa as v,G as w,K as x,V as y,X as z};