@privy-io/react-auth 2.6.2 → 2.6.3

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 (54) hide show
  1. package/dist/cjs/abstract-smart-wallets.js +1 -1
  2. package/dist/cjs/farcaster.js +1 -1
  3. package/dist/cjs/getEmbeddedConnectedWallet-DTU4T9TJ.js +1 -0
  4. package/dist/cjs/index.js +1 -5
  5. package/dist/cjs/internal-context-HesndSYh.js +1 -0
  6. package/dist/cjs/privy-provider-CWADob3g.js +27 -0
  7. package/dist/cjs/smart-wallets-Dsq1trqs.js +1 -0
  8. package/dist/cjs/smart-wallets.js +1 -1
  9. package/dist/cjs/solana.js +1 -1
  10. package/dist/cjs/ui.js +2 -2
  11. package/dist/cjs/useActiveWallet-D5FyaqZJ.js +1 -0
  12. package/dist/cjs/useFundWallet-BsBuslJV.js +1 -0
  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 +12 -8
  16. package/dist/dts/index.d.ts +12 -8
  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 +6 -6
  20. package/dist/dts/solana.d.ts +6 -6
  21. package/dist/dts/{types-CcosPsy6.d.mts → types-CsAGoXth.d.mts} +9 -9
  22. package/dist/dts/{types-CcosPsy6.d.ts → types-CsAGoXth.d.ts} +9 -9
  23. package/dist/dts/ui.d.mts +1 -1
  24. package/dist/dts/ui.d.ts +1 -1
  25. package/dist/dts/{useSolanaWallets-BHduxJmW.d.mts → useSolanaWallets-CFgYdjDv.d.mts} +18 -1
  26. package/dist/dts/{useSolanaWallets-BHduxJmW.d.ts → useSolanaWallets-CFgYdjDv.d.ts} +18 -1
  27. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  28. package/dist/esm/farcaster.mjs +1 -1
  29. package/dist/esm/getEmbeddedConnectedWallet-CSSBWE2p.mjs +1 -0
  30. package/dist/esm/index.mjs +1 -5
  31. package/dist/esm/{internal-context-CL_EG4e1.mjs → internal-context-O3TPYUku.mjs} +1 -1
  32. package/dist/esm/privy-provider-u_cmfixS.mjs +27 -0
  33. package/dist/esm/smart-wallets-vK26EMrU.mjs +1 -0
  34. package/dist/esm/smart-wallets.mjs +1 -1
  35. package/dist/esm/solana.mjs +1 -1
  36. package/dist/esm/ui.mjs +2 -2
  37. package/dist/esm/useActiveWallet-Cwj5v4eK.mjs +1 -0
  38. package/dist/esm/useFundWallet-BPk4tVPS.mjs +1 -0
  39. package/package.json +4 -4
  40. package/dist/cjs/AwaitingEvmToSolBridgingScreen-pmGmvR1q.js +0 -22
  41. package/dist/cjs/getEmbeddedConnectedWallet-CGj_I0cc.js +0 -2
  42. package/dist/cjs/importWallet-Du1BO6qb.js +0 -1
  43. package/dist/cjs/internal-context-D5TgeQk8.js +0 -1
  44. package/dist/cjs/prepareFundingModalData-C2_ED32S.js +0 -1
  45. package/dist/cjs/smart-wallets-CoYci1bf.js +0 -1
  46. package/dist/cjs/useActiveWallet-CaLK0Ao4.js +0 -1
  47. package/dist/cjs/useFundWallet-92y-LJjK.js +0 -1
  48. package/dist/esm/AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs +0 -22
  49. package/dist/esm/getEmbeddedConnectedWallet-Cyt02rK3.mjs +0 -2
  50. package/dist/esm/importWallet-Bqr-aqzk.mjs +0 -1
  51. package/dist/esm/prepareFundingModalData-Bkg2jc5P.mjs +0 -1
  52. package/dist/esm/smart-wallets-KrlR2oLu.mjs +0 -1
  53. package/dist/esm/useActiveWallet-SKrFBYMY.mjs +0 -1
  54. package/dist/esm/useFundWallet-BvMwnH48.mjs +0 -1
@@ -1,2 +0,0 @@
1
- import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import o from"@heroicons/react/24/solid/XCircleIcon";import{useState as a,useEffect as n,useRef as i,useMemo as l}from"react";import{styled as s}from"styled-components";import{a9 as d,aB as c,aw as p,af as h,d8 as u,d9 as y,bg as m,b5 as g,aK as f,dx as v,cy as w,cz as b,dy as x,bf as C,ap as I,dz as T,bu as E,ct as A,cq as k,dA as S,aC as _,dB as N,dC as D,b7 as P,dD as U,c6 as R,aE as O,dE as V,bm as M}from"./AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs";import{a8 as F}from"./internal-context-CL_EG4e1.mjs";import z from"@heroicons/react/24/outline/ExclamationTriangleIcon";import{isHex as L,hexToString as W}from"viem";import{ProviderErrors as j}from"@privy-io/js-sdk-core";const B=({children:r,theme:o})=>/*#__PURE__*/e($,{$theme:o,children:[/*#__PURE__*/t(z,{width:"1.25rem",color:"dark"===o?"#FDE68A":"var(--privy-color-warn)"}),r]});let $=/*#__PURE__*/s.div.withConfig({displayName:"Container",componentId:"sc-97f152b3-0"})(["display:flex;gap:0.5rem;background-color:",";"," align-items:flex-start;text-align:left;padding:0.5rem 0.75rem;font-size:0.8125rem;font-weight:400;line-height:1.125rem;padding:0.75rem;&&{border-radius:var(--privy-border-radius-sm);}"],(e=>"dark"===e.$theme?"var(--privy-color-background-2)":"var(--privy-color-warn-light)"),(e=>"dark"===e.$theme?"color: #FDE68A;":""));function K(r){let[o,l]=a(r.dimensions.width),[s,d]=a(void 0),c=i(null);n((()=>{if(c.current&&void 0===o){let{width:e}=c.current.getBoundingClientRect();l(e)}let e=getComputedStyle(document.documentElement);d({background:e.getPropertyValue("--privy-color-background"),background2:e.getPropertyValue("--privy-color-background-2"),foreground3:e.getPropertyValue("--privy-color-foreground-3"),foregroundAccent:e.getPropertyValue("--privy-color-foreground-accent"),accent:e.getPropertyValue("--privy-color-accent"),accentDark:e.getPropertyValue("--privy-color-accent-dark"),success:e.getPropertyValue("--privy-color-success")})}),[]);let p="ethereum"===r.walletToExport.chainType&&!r.walletToExport.imported;/*#__PURE__*/return t("div",{ref:c,children:o&&
2
- /*#__PURE__*/e(G,{children:[/*#__PURE__*/t("iframe",{style:{position:"absolute",zIndex:1},width:o,height:r.dimensions.height,allow:"clipboard-write self *",src:f(r.origin,`/apps/${r.appId}/embedded-wallets/export`,{client_id:r.appClientId,primaryAddress:r.primaryWallet.address,address:r.walletToExport.address,walletIndex:r.walletToExport.walletIndex,width:`${o}px`,caid:r.clientAnalyticsId,phrase_export:p,...s},{token:r.accessToken})}),/*#__PURE__*/t(H,{children:"Loading..."}),p&&/*#__PURE__*/t(H,{children:"Loading..."})]})})}const q={component:()=>{let[o,i]=a(null),{authenticated:l,user:s,getAccessToken:f}=d(),{closePrivyModal:v,createAnalyticsEvent:w,clientAnalyticsId:b}=F(),x=c(),{data:C,onUserCloseViaDialogOrKeybindRef:I}=p(),{onFailure:T,onSuccess:E,origin:A,appId:k,appClientId:S,walletToExport:_,primaryWallet:N}=C.keyExport,D=e=>{v({shouldCallAuthOnSuccess:!1}),T("string"==typeof e?Error(e):e)},P=()=>{v({shouldCallAuthOnSuccess:!1}),E(),w({eventName:"embedded_wallet_key_export_completed",payload:{walletAddress:_.address}})};return n((()=>{if(!l||!_)return D("User must be authenticated before exporting their wallet");f().then(i,D)}),[l,s]),I.current=P,/*#__PURE__*/e(r,{children:[/*#__PURE__*/t(h,{onClose:P}),/*#__PURE__*/e(J,{children:[/*#__PURE__*/t(u,{children:"Transfer wallet"}),/*#__PURE__*/e(y,{children:["Either copy your private key or seed phrase to transfer your wallet."," ",/*#__PURE__*/t("a",{href:"https://privy-io.notion.site/Transferring-your-account-9dab9e16c6034a7ab1ff7fa479b02828",target:"blank",rel:"noopener noreferrer",children:"Learn more"})]}),/*#__PURE__*/t(B,{theme:x.appearance.palette.colorScheme,children:"Never share your private key or seed phrase with anyone."}),/*#__PURE__*/t(m,{isLoading:!1,isPulsing:!1,title:"Your wallet",address:_.address,showIcon:!0}),/*#__PURE__*/t("div",{style:{width:"100%"},children:o&&/*#__PURE__*/t(K,{origin:A,appId:k,appClientId:S,accessToken:o,clientAnalyticsId:b,walletToExport:_,primaryWallet:N,dimensions:{height:"44px"}})})]}),/*#__PURE__*/t(g,{})]})}};let J=/*#__PURE__*/s.div.withConfig({displayName:"EmbeddedWalletScreenContainer",componentId:"sc-f9e8f1f7-0"})(["display:flex;flex-direction:column;gap:1.25rem;text-align:left;"]),G=/*#__PURE__*/s.div.withConfig({displayName:"ButtonContainer",componentId:"sc-f9e8f1f7-1"})(["overflow:visible;position:relative;overflow:none;height:44px;display:flex;gap:12px;"]),H=/*#__PURE__*/s.div.withConfig({displayName:"LoadingButton",componentId:"sc-f9e8f1f7-2"})(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:16px;font-weight:500;border-radius:var(--privy-border-radius-md);background-color:var(--privy-color-background-2);color:var(--privy-color-foreground-3);"]);const Q={component:()=>{let{authenticated:i,user:s,getAccessToken:c}=d(),{closePrivyModal:u,createAnalyticsEvent:y,walletProxy:m}=F(),{navigate:g,data:f,setModalData:E,onUserCloseViaDialogOrKeybindRef:A}=p(),k=l((()=>Date.now()),[]),[S,_]=a(!1),{onCompleteNavigateTo:N,onFailure:D,shouldForceMFA:P,entropyId:U,entropyIdVerifier:R}=f?.connectWallet,O=e=>{S||(_(!0),D("string"==typeof e?Error(e):e))};n((()=>{let e,t=v(s,U);return i&&t?m?((async()=>{let r=await c();if(!r)return O("User must be authenticated and have a Privy wallet before it can be connected");try{await m.connect({accessToken:r,entropyId:U,entropyIdVerifier:R}),P&&await m.verifyMfa({accessToken:r});let t=(Date.now()-k)/1e3;N===q&&t<1?e=setTimeout((()=>{g(N,!1)}),1e3*(1-t)):g(N,!1)}catch(e){if(w(e)&&"privy"===t.recoveryMethod){let e=await c();if(!e)return O("User must be authenticated and have a Privy wallet before it can be recovered");try{y({eventName:"embedded_wallet_pinless_recovery_started",payload:{walletAddress:t.address}});let r=await(m?.recover({accessToken:e,entropyId:U,entropyIdVerifier:R}));r?.entropyId||O(Error("Unable to recover wallet")),N?g(N):u({shouldCallAuthOnSuccess:!1}),y({eventName:"embedded_wallet_recovery_completed",payload:{walletAddress:t.address}}),g(N)}catch(e){O("An error has occurred, please try again.")}}else w(e)&&"privy"!==t.recoveryMethod?(E({...f,recoverWallet:{entropyId:U,entropyIdVerifier:R,onCompleteNavigateTo:N,onFailure:D},recoveryOAuthStatus:{provider:t.recoveryMethod,action:"recover",isInAccountCreateFlow:!1}}),g(b(t.recoveryMethod))):O(e)}})(),()=>clearTimeout(e)):void 0:O("User must be authenticated and have a Privy wallet before it can be connected")}),[i,s,m]);let V=()=>{O("User exited before wallet could be connected"),u({shouldCallAuthOnSuccess:!1})};return A.current=V,/*#__PURE__*/e(r,{children:[/*#__PURE__*/t(h,{onClose:V}),S?/*#__PURE__*/e(r,{children:[/*#__PURE__*/e(x,{children:[/*#__PURE__*/t(o,{fill:"var(--privy-color-error)",width:"64px",height:"64px"}),/*#__PURE__*/t(C,{title:"Something went wrong",description:"We’re on it. Please try again later."})]}),/*#__PURE__*/t(I,{onClick:()=>u({shouldCallAuthOnSuccess:!1}),children:"Close"})]}):/*#__PURE__*/t(T,{}),/*#__PURE__*/t(X,{})]})}};let X=/*#__PURE__*/s.div.withConfig({displayName:"BottomSpacing",componentId:"sc-734db565-0"})(["height:44px;"]);const Y=/*#__PURE__*/s.img.withConfig({displayName:"StyledLogo",componentId:"sc-68c1b1ea-0"})(["&&{height:",";width:",";border-radius:16px;margin-bottom:12px;}"],(e=>"sm"===e.size?"65px":"140px"),(e=>"sm"===e.size?"65px":"140px"));let Z=e=>{if(!L(e))return e;try{return W(e)}catch{return e}},ee=o=>{let{types:a,primaryType:n,...i}=o.typedData;/*#__PURE__*/return e(r,{children:[/*#__PURE__*/t(V,{data:i}),/*#__PURE__*/t(M,{text:(l=o.typedData,JSON.stringify(l,null,2)),itemName:"full payload to clipboard"})," "]});var l};const te={component:()=>{let{authenticated:o}=d(),{initializeWalletProxy:i,closePrivyModal:l}=F(),{navigate:s,data:c,onUserCloseViaDialogOrKeybindRef:m}=p(),[f,v]=a(!0),[w,b]=a(""),[x,C]=a(),[I,T]=a(null),[V,M]=a(!1),z=null!==I;n((()=>{o||s(E)}),[o]),n((()=>{i(A).then((e=>{v(!1),e||(b("An error has occurred, please try again."),C(new k(new S(w,j.E32603_DEFAULT_INTERNAL_ERROR.eipCode))))}))}),[]);let{method:L,data:W,confirmAndSign:B,onSuccess:$,onFailure:K,uiOptions:q}=c.signMessage,J={title:q?.title||"Sign message",description:q?.description||"Signing this message will not cost you any fees.",buttonText:q?.buttonText||"Sign and continue"},G=e=>{e?$(e):K(x||new k(new S("The user rejected the request.",j.E4001_USER_REJECTED_REQUEST.eipCode))),l({shouldCallAuthOnSuccess:!1}),setTimeout((()=>{T(null),b(""),C(void 0)}),200)};return m.current=()=>{G(I)},/*#__PURE__*/e(r,{children:[/*#__PURE__*/t(h,{onClose:()=>G(I)}),/*#__PURE__*/t(_,{}),q?.iconUrl&&"string"==typeof q.iconUrl?/*#__PURE__*/t(ae,{children:/*#__PURE__*/t(Y,{size:"sm",src:q.iconUrl,alt:"app image"})}):null,/*#__PURE__*/t(u,{children:J.title}),/*#__PURE__*/t(y,{children:J.description}),"personal_sign"===L&&/*#__PURE__*/t(N,{children:Z(W)}),"eth_signTypedData_v4"===L&&/*#__PURE__*/t(ee,{typedData:W}),"solana_signMessage"===L&&/*#__PURE__*/t(N,{children:W}),/*#__PURE__*/t(ne,{}),/*#__PURE__*/t(re,{$fail:!0,children:w}),/*#__PURE__*/t(D,{disabled:V||z||f,loading:V,onClick:async()=>{M(!0),b("");try{let e=await B();T(e),M(!1),setTimeout((()=>{G(e)}),P)}catch(e){console.error(e),b("An error has occurred, please try again."),C(new k(new S(w,j.E32603_DEFAULT_INTERNAL_ERROR.eipCode))),M(!1)}},children:V?"Signing...":z?/*#__PURE__*/e(oe,{children:[/*#__PURE__*/t(U,{style:{height:"0.9rem",width:"0.9rem"},strokeWidth:2})," ",/*#__PURE__*/t("span",{children:"Success"})]}):J.buttonText}),q?.isCancellable&&/*#__PURE__*/t(R,{style:{marginTop:"1rem"},onClick:()=>G(null),isSubmitting:!1,children:"Not now"}),/*#__PURE__*/t(O,{}),/*#__PURE__*/t(g,{})]})}};let re=/*#__PURE__*/s.div.withConfig({displayName:"InputHelp",componentId:"sc-1a9f17a4-0"})(["line-height:20px;height:20px;font-size:13px;color:",";display:flex;justify-content:flex-start;width:100%;margin-top:16px;margin-bottom:4px;"],(e=>e.$fail?"var(--privy-color-error)":"var(--privy-color-foreground-3)")),oe=/*#__PURE__*/s.span.withConfig({displayName:"ContentWithIcon",componentId:"sc-1a9f17a4-1"})(["display:flex;align-items:center;gap:8px;"]),ae=/*#__PURE__*/s.div.withConfig({displayName:"IconContainer",componentId:"sc-1a9f17a4-2"})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:82px;"]),ne=/*#__PURE__*/s.div.withConfig({displayName:"Grow",componentId:"sc-1a9f17a4-3"})(["flex-grow:1;"]);function ie(e){return e.find((e=>"privy"===e.walletClientType&&"embedded"===e.connectorType&&!e.imported))??null}export{q as E,te as S,Q as a,ie as g};
@@ -1 +0,0 @@
1
- import{bW as e,ci as t}from"./AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs";import{j as i,P as r}from"./internal-context-CL_EG4e1.mjs";const a=async({emitPrivyEvent:a,getAccessToken:n,initializeWalletProxy:o,refreshSessionAndUser:s,user:l},{privateKey:c,chainType:E})=>{if(!l)throw a("linkAccount","onError",i.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");let[T,m]=await Promise.all([n(),o(15e3)]);if(!m||!T)throw a("linkAccount","onError",i.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new r("User must be authenticated before linking an account.");await m.importWallet({privateKey:c,accessToken:T,chainType:E});let w=await s(),u="solana"===E?e(w):t(w);if(!u)throw a("createWallet","onError",i.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return a("createWallet","onSuccess",{wallet:u}),u};export{a as i};
@@ -1 +0,0 @@
1
- import{ae as e,P as n}from"./internal-context-CL_EG4e1.mjs";import{s as t,K as a,cZ as i,l as s,di as o,dj as r,dk as d,dl as c,dm as l,dn as h,dp as u,dq as p,dr as g,ds as f,dt as m,du as C,dv as y,dw as w}from"./AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs";const b=()=>{let e=t.get(a);return e&&Array.isArray(e)&&e.map((e=>(e=>e&&"string"==typeof e.address&&"string"==typeof e.connectorType&&"string"==typeof e.walletClientType&&"number"==typeof e.connectedAt)(e))).every(Boolean)?e:[]};let T=["phantom","glow","solflare","backpack","okx_wallet"];function A(e){return"solana"===e.chainType}function S(e){return"solana"===e.type}class D extends i{get isInstalled(){return"Installed"===this.adapter.readyState}buildConnectedWallet(n,t){let a,i,s,o;if("Installed"!==n.readyState||!n.publicKey)throw Error("Wallet is not connected.");return"signMessage"in n&&(a=async(...e)=>{if(!n.connected)throw Error("Wallet is not connected.");return await n.signMessage(e[0])}),"sendTransaction"in n&&(i=async(...e)=>await n.sendTransaction(e[0],e[1],e[2])),"signTransaction"in n&&(s=async e=>await n.signTransaction(e)),"signAllTransactions"in n&&(o=async e=>await n.signAllTransactions(e)),{type:"solana",address:n.publicKey.toBase58(),meta:t,imported:!1,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:async()=>n.connected,disconnect:()=>{try{n.disconnect()}catch(e){console.error("Wallet does not support programmatic disconnect")}},getProvider:e(`${this.walletClientType||""} wallet does not support 'getProvider'`),signMessage:a??e(`${this.walletClientType||""} wallet does not support 'signMessage'`),sendTransaction:i??e(`${this.walletClientType||""} wallet does not support 'sendTransaction'`),signTransaction:s??e(`${this.walletClientType||""} wallet does not support 'signTransaction'`),signAllTransactions:o??e(`${this.walletClientType||""} wallet does not support 'signAllTransactions'`)}}async syncAccounts(){if("Installed"===this.adapter.readyState&&this.adapter.publicKey){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};this.wallets.find((e=>this.adapter.publicKey&&e.address===this.adapter.publicKey.toBase58()))||(this.wallets=[this.buildConnectedWallet(this.adapter,e)],this.emit("walletsUpdated"))}else this.wallets.length>0&&(this.wallets=[],this.emit("walletsUpdated"))}get walletBranding(){return{id:this.adapter.name,name:this.adapter.name,icon:this.adapter.icon}}async initialize(){this.subscribeListeners(),await this.syncAccounts(),this.shouldAttemptAutoConnect()&&await this.adapter.autoConnect().catch((()=>{})),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}async getConnectedWallet(){return this.wallets.sort(((e,n)=>n.connectedAt-e.connectedAt))[0]||null}async isConnected(){return this.adapter.connected&&["Installed"].includes(this.adapter.readyState)}subscribeListeners(){this.adapter.addListener("disconnect",this.onDisconnect),this.adapter.addListener("connect",this.onConnect),this.adapter.addListener("error",this.onError),this.adapter.addListener("readyStateChange",this.onReadyStateChange)}unsubscribeListeners(){this.adapter.removeAllListeners()}shouldAttemptAutoConnect(){return!(!this.autoConnectEnabled||!T.includes(this.walletClientType))&&("phantom"!==this.walletClientType||b().some((({walletClientType:e})=>"phantom"===e)))}constructor(e,n){super(function(e){return e.name.toLowerCase().split(" ").join("_")}(e)),this.chainType="solana",this.connectorType="solana_adapter",this.disconnect=()=>{this.adapter.disconnect().then((()=>this.onDisconnect())).catch((e=>console.error("Error disconnecting",e)))},this.promptConnection=async()=>{try{await this.adapter.connect()}catch(e){throw s(e)}},this.onDisconnect=()=>{this.syncAccounts()},this.onConnect=e=>{this.syncAccounts()},this.onError=e=>{this.syncAccounts()},this.onReadyStateChange=e=>{"Installed"!==e&&(this.connected=!1),this.syncAccounts()},this.adapter=e,this.autoConnectEnabled=n,this.wallets=[]}}function E(e){let n=new RegExp(RegExp("^eip155:(?<chainId>\\d+)$","gm")),t=n.exec(e)?.groups?.chainId;if(t)return parseInt(t);throw Error("Chain ID not compatible with CAIP-2 format.")}const v=e=>e.filter((e=>"wallets"===e.method||("exchange"===e.method?"coinbase"===e.provider:"card"===e.method||"payment-request"===e.method?"coinbase"===e.provider||"moonpay"===e.provider:(e.method,!1)))),x={[o.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[r.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[d.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[c.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[l.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[h.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[u.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[p.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[g.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[f.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[m.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[C.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"},B=({address:e,appConfig:t,fundWalletConfig:a,methodScreen:i,chainIdOverride:s,comingFromSendTransactionScreen:o=!1})=>{let r,d;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let c=v(t.fundingConfig.options);if(c.length<1)throw Error("Wallet funding is not enabled");r=s||(y(a)&&a.chain?a.chain.id:E(t.fundingConfig.defaultRecommendedCurrency.chain));let l=t.chains.find((e=>e.id===r));if(!l)throw new n(`Funding chain ${r} is not in PrivyProvider chains list`);let h=y(a)&&a.amount?a.amount:t.fundingConfig.defaultRecommendedAmount,u=!1;function p(){if(!r)return;let e=x[r];c.find((e=>"wallets"===e.method))&&!e&&console.warn("Attempting to fund with USDC on chain where USDC address is not known. Funding via external wallet will be disabled."),d=e,u=!0}y(a)&&"asset"in a?"USDC"===a.asset?p():"string"!=typeof a.asset&&"erc20"in a.asset&&(u=((e,n)=>e===x[n.id])(d=a.asset.erc20,l)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&p();let g=a?.defaultFundingMethod;return{chainType:"ethereum",address:e,amount:h,chain:l,erc20Address:d,erc20ContractInfo:u?{symbol:"USDC",decimals:6}:void 0,isUSDC:u,methodScreen:i,supportedOptions:c,comingFromSendTransactionScreen:o,defaultFundingMethod:g,usingDefaultFundingMethod:!!g,preferredCardProvider:a?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,cluster:{name:"mainnet-beta",rpcUrl:t.solanaClusters["mainnet-beta"]},...w(a)?{moonpayConfigOverride:a.config}:{},uiConfig:a&&"uiConfig"in a?a.uiConfig:void 0}};function F({address:e,fundWalletConfig:n,appConfig:t,comingFromSendTransactionScreen:a,methodScreen:i}){if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let s=v(t.fundingConfig.options);if(s.length<1)throw Error("Wallet funding is not enabled");let o=n?.amount??t.fundingConfig.defaultRecommendedAmount,r=n?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:s,amount:o,isUSDC:!1,methodScreen:i,comingFromSendTransactionScreen:a,cluster:{name:n?.cluster?.name??"mainnet-beta",rpcUrl:t.solanaClusters[n?.cluster?.name??"mainnet-beta"]},crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:r,preferredCardProvider:n?.card?.preferredProvider,usingDefaultFundingMethod:!!r,uiConfig:n?.uiConfig}}export{D as S,B as a,S as b,E as e,v as f,A as i,b as l,F as p};
@@ -1 +0,0 @@
1
- import{useRef as e,useState as n,useCallback as t}from"react";import{http as a,createPublicClient as r}from"viem";import{cY as i,aB as s,aw as o,a9 as l,aa as c,cQ as d,cN as p}from"./AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs";import{P as u,a8 as m}from"./internal-context-CL_EG4e1.mjs";import{g as y,a as g,S as f}from"./getEmbeddedConnectedWallet-Cyt02rK3.mjs";import{createSmartAccountClient as w}from"permissionless";import{toThirdwebSmartAccount as h,toLightSmartAccount as I,toBiconomySmartAccount as P,toEcdsaKernelSmartAccount as v,toSafeSmartAccount as F}from"permissionless/accounts";import{createPimlicoClient as x}from"permissionless/clients/pimlico";import{toCoinbaseSmartAccount as W,entryPoint06Address as C,entryPoint07Address as T}from"viem/account-abstraction";import{THIRDWEB as G,COINBASE_SMART_WALLET as S,LIGHT_ACCOUNT as O,BICONOMY as U,KERNEL as b,SAFE as D}from"@privy-io/js-sdk-core";let M={address:C,version:"0.6"},V={address:T,version:"0.7"},A=({owner:e,smartWalletType:n,publicClient:t})=>{switch(n){case D:return F({client:t,entryPoint:V,owners:[e],version:"1.4.1"});case b:return v({client:t,version:"0.3.1",entryPoint:V,owners:[e]});case U:return P({client:t,owners:[e],entryPoint:M});case O:return I({client:t,entryPoint:M,owner:e,version:"1.1.0"});case S:return async function({client:e,owner:n}){let[t]=await n.request({method:"eth_accounts"});if(!t)throw Error("Unable to request embedded owner for eth_accounts");return await W({client:e,owners:[{type:"local",source:"privy",address:t,sign:async({hash:e})=>await n.request({method:"secp256k1_sign",params:[e]})}]})}({client:t,owner:e});case G:return h({client:t,entryPoint:V,owner:e});default:throw Error(`Invalid smart account type: ${n}.`)}},N=["rpc.zerodev.app","public.pimlico.io","api.pimlico.io"];const $=async({owner:e,smartWalletType:n,chain:t,publicClient:r,bundlerUrl:i,paymasterUrl:s,paymasterContext:o})=>{let l=await A({owner:e,smartWalletType:n,publicClient:r}),c=x({transport:a(i),entryPoint:l.entryPoint}),d=s?x({transport:a(s),entryPoint:l.entryPoint}):void 0;return w({account:l,chain:t,paymaster:d,paymasterContext:o,bundlerTransport:a(i),userOperation:{estimateFeesPerGas:async()=>{if(N.some((e=>i.includes(e))))return await c.getUserOperationGasPrice().then((e=>e.fast));{let e=await r.estimateFeesPerGas(),n=i.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*n/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*n/100n}}}}})};const _=({calls:e,chain:n,maxPriorityFeePerGas:t,maxFeePerGas:a,nonce:r})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:n.id,nonce:r,maxFeePerGas:a,maxPriorityFeePerGas:t}))),B=async({chain:e,paymasterContext:n,embeddedWallet:t,user:s,smartWalletsConfig:o,rpcConfig:l,privyAppId:c})=>{if(!o?.enabled||!s||!t)return;let d=await t.getEthereumProvider(),p=o?.configuredNetworks.find((n=>n.chainId===`eip155:${e.id}`));if(!p)throw new u(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let m=s.smartWallet?.smartWalletType??o.smartWalletType,y=i(e,l,c),g=r({chain:e,transport:a(y)}),f=n??p.paymasterContext,w=await $({owner:d,smartWalletType:m,chain:e,publicClient:g,paymasterContext:f,...p});if(!w)throw new u(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return w},q=({clientConfig:a,smartWalletsConfig:r})=>{let{hideWalletUIs:i,openPrivyModal:w,appId:h,isHeadlessSigning:I}=m(),P=s(),{setModalData:v}=o(),{user:F}=l(),{chains:x}=s(),{chainId:W,clients:C,setChainId:T,chainIdState:G}=(()=>{let t=e(),[a,r]=n();return{clients:e({}),setChainId:e=>{t.current=e,r(e)},chainId:t,chainIdState:a}})(),S=x.find((e=>e.id===G)),{wallets:O}=c(),U=t((async()=>W.current),[W]),b=t((async({id:e})=>{if(!C.current[e]){let n=y(O),t=await B({chain:x.find((n=>n.id===e)),embeddedWallet:n,user:F,paymasterContext:a?.paymasterContext,smartWalletsConfig:r,rpcConfig:P.rpcConfig,privyAppId:h});t&&(C.current[e]=t)}T(e)}),[x,a,O,F,r]);return{wrapSmartAccountClient:e=>{C.current[e.chain.id]=e,G||T(e.chain.id);return{...e,sendTransaction:async(e,n)=>{let t=C.current[W.current];if(!t)throw new u(`Smart wallet client for chain (eip155:${W.current}) not found`);if(delete e.account,I({showWalletUIs:n?.uiOptions?.showWalletUIs}))return i.current=!0,await t.sendTransaction(e).finally((()=>i.current=!1));let a=[];"calls"in e&&void 0!==e.calls?a=[...e.calls]:"to"in e&&(a=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let r=async()=>{if(!t.paymaster)return!1;let{paymasterAndData:n,paymasterData:r}=await t.prepareUserOperation({calls:a,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return Number(n??r??0)>0};return new Promise((async(s,o)=>{i.current=!0;let{entropyId:l,entropyIdVerifier:c}=d(F);v({connectWallet:{entropyId:l,entropyIdVerifier:c,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:_({calls:a,chain:t.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:l,entropyIdVerifier:c,transactingWallet:{address:t.account.address,walletIndex:null},getIsSponsored:r,signOnly:!1,onConfirm:()=>t.sendTransaction(e),onSuccess:e=>s(e.hash),onFailure:o,uiOptions:n?.uiOptions??{}}}),w(g)})).finally((()=>{i.current=!1}))},signMessage:async(e,n)=>{let t=C.current[W.current];if(!t)throw new u(`Smart wallet client for chain (eip155:${W.current}) not found`);return I({showWalletUIs:n?.uiOptions?.showWalletUIs})?(i.current=!0,await t.signMessage(e).finally((()=>i.current=!1))):new Promise((async(a,r)=>{let{entropyId:s,entropyIdVerifier:o}=d(F);i.current=!0,v({connectWallet:{entropyId:s,entropyIdVerifier:o,onCompleteNavigateTo:f,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>t.signMessage(e),onSuccess:e=>a(e),onFailure:r,uiOptions:n?.uiOptions??{}}}),w(g)})).finally((()=>{i.current=!1}))},signTypedData:async(e,n)=>{let t=C.current[W.current];if(!t)throw new u(`Smart wallet client for chain (eip155:${W.current}) not found`);return delete e.account,I({showWalletUIs:n?.uiOptions?.showWalletUIs})?(i.current=!0,await t.signTypedData(e).finally((()=>i.current=!1))):new Promise((async(a,r)=>{i.current=!0;let{entropyId:s,entropyIdVerifier:o}=d(F);v({connectWallet:{entropyId:s,entropyIdVerifier:o,onCompleteNavigateTo:f,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>t.signTypedData(e),onSuccess:e=>a(e),onFailure:r,uiOptions:n?.uiOptions??{}}}),w(g)})).finally((()=>{i.current=!1}))},getChainId:U,chain:S,switchChain:b}}}},E=()=>{let{hideWalletUIs:e,openPrivyModal:n,isHeadlessSigning:t}=m(),{setModalData:a}=o(),{user:r}=l();return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{if(t({showWalletUIs:o?.uiOptions?.showWalletUIs}))return e.current=!0,await i.sendTransaction(s).finally((()=>e.current=!1));let l=[];"calls"in s&&void 0!==s.calls?l=[...s.calls]:"to"in s&&(l=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let c=async()=>{if(!i.paymaster)return!1;let{paymasterAndData:e,paymasterData:n}=await i.prepareUserOperation({calls:l,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(e??n??0)>0};return new Promise((async(t,u)=>{e.current=!0;let{entropyId:m,entropyIdVerifier:y}=d(r);a({connectWallet:{entropyId:m,entropyIdVerifier:y,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:_({calls:l,chain:i.chain,maxPriorityFeePerGas:s.maxPriorityFeePerGas,maxFeePerGas:s.maxFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),entropyId:m,entropyIdVerifier:y,transactingWallet:{address:i.account.address,walletIndex:null},getIsSponsored:c,signOnly:!1,onConfirm:()=>i.sendTransaction(s),onSuccess:e=>t(e.hash),onFailure:u,uiOptions:o?.uiOptions??{}}}),n(g)})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>t({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))):new Promise((async(t,l)=>{let{entropyId:c,entropyIdVerifier:p}=d(r);e.current=!0,a({connectWallet:{entropyId:c,entropyIdVerifier:p,onCompleteNavigateTo:f,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof s.message?s.message:s.message.raw.toString(),confirmAndSign:()=>i.signMessage(s),onSuccess:e=>t(e),onFailure:l,uiOptions:o?.uiOptions??{}}}),n(g)})).finally((()=>{e.current=!1})),signTypedData:async(s,o)=>t({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signTypedData(s).finally((()=>e.current=!1))):new Promise((async(t,l)=>{e.current=!0;let{entropyId:c,entropyIdVerifier:p}=d(r);a({connectWallet:{entropyId:c,entropyIdVerifier:p,onCompleteNavigateTo:f,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:s,confirmAndSign:()=>i.signTypedData(s),onSuccess:e=>t(e),onFailure:l,uiOptions:o?.uiOptions??{}}}),n(g)})).finally((()=>{e.current=!1}))})}};export{q as a,_ as c,B as g,E as u};
@@ -1 +0,0 @@
1
- import{useState as e,useEffect as t,useContext as a,useMemo as l,useCallback as n}from"react";import{ae as r,a8 as s,s as o,aB as i,aa as d,c_ as c}from"./AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs";import{a8 as u}from"./internal-context-CL_EG4e1.mjs";import{create as w}from"zustand";import{shallow as p}from"zustand/shallow";import{createWithEqualityFn as f}from"zustand/traditional";const m=a=>{let[l,n]=e("auto");return t((()=>{let e=new ResizeObserver((e=>{n(e[0]?.contentRect.height??"auto")}));return a.current&&e.observe(a.current),()=>{a.current&&e.unobserve(a.current)}}),[a.current]),l};function v(e){let{logout:t}=a(r);return s("logout",e),{logout:t}}function g(e){let{login:t}=a(r);return s("login",e),{login:t}}function S(e){let{connectWallet:t}=a(r);return s("connectWallet",e),{connectWallet:t}}const h=e=>{s("fundWallet",e);let{fundWallet:t}=u();return{fundWallet:t}},W=w((()=>({isModalOpen:!1,resolvers:null})));let y=f((()=>({})),p);const O=(e,t)=>y((a=>a[e]?.[t])),b=(e,t,a)=>{y.setState((l=>({...l,[e]:{...l[e],[t]:a}})))},z=()=>{let e=W.getState().resolvers;e||console.warn("useActiveWalletStore: Called close while modal was not open"),W.setState({isModalOpen:!1}),e?.resolve({wallet:W.getState().wallet})},I=({address:e,client:t,appId:a})=>{let l=`${t}:${e}`;a&&o.put(j(a),l),W.setState({wallet:l})},M=()=>W((e=>e.isModalOpen)),j=e=>`privy:${e}:active-wallet-connection`,k=()=>{let e=i(),{wallets:a}=d(),{wallets:r}=c(),s=W((e=>e.wallet));t((()=>{if(!e.id)return;let t=o.get(j(e.id));W.setState({wallet:t})}),[e.id]);let u=l((()=>{if(!s)return;let[,e]=s.split(":");return a.find((t=>t.address===e))||r.find((t=>t.address===e))}),[s,a,r]),w=l((()=>u?"ethereum"===u.type?u.chainId:"solana":void 0),[u]);return{connect:async t=>{t?.reset&&(o.del(j(e.id)),W.setState({wallet:void 0}));let{wallet:l}=await(async()=>{let e,t,a=new Promise(((a,l)=>{e=a,t=l}));return y.setState({}),W.setState({isModalOpen:!0,resolvers:{resolve:e,reject:t}}),await a})();if(!l)return{};let[,n]=l.split(":"),s=a.find((e=>e.address===n));if(s)return{wallet:s,network:s.chainId};let i=r.find((e=>e.address===n));return i?{wallet:i,network:"solana"}:{}},setActiveWallet:n((t=>{I({address:t.address,client:t.walletClientType,appId:e.id})}),[e.id]),wallet:u,network:w}};export{v as a,g as b,S as c,h as d,k as e,O as f,b as g,M as h,z as i,I as s,m as u};
@@ -1 +0,0 @@
1
- import{useCallback as e}from"react";import{cr as a,a8 as t,aB as r,aw as n,dh as s,aU as o}from"./AwaitingEvmToSolBridgingScreen-DnBONxHo.mjs";import{Connection as i,PublicKey as l,Transaction as c,SystemProgram as m,TransactionInstruction as d,VersionedTransaction as p,TransactionMessage as u}from"@solana/web3.js";import{getSolanaRpcEndpointForCluster as f}from"@privy-io/js-sdk-core";import{a8 as w}from"./internal-context-CL_EG4e1.mjs";import{p as g}from"./prepareFundingModalData-Bkg2jc5P.mjs";var h={id:a,getBalance:({address:e,cluster:a})=>new i(f(a)).getBalance(new l(e)),createTransferTransaction:async({from:e,to:a,amount:t,cluster:r})=>{let n=new l(e),s=new c;s.add(m.transfer({fromPubkey:n,toPubkey:new l(a),lamports:t}));let o=new i(f(r)),d=await o.getLatestBlockhash();return s.recentBlockhash=d.blockhash,s.feePayer=n,{transaction:s,connection:o}},createBridgeTransactionFromRelayQuote:async({quote:e,from:a,cluster:t})=>{let r=e.steps[0]?.items?.[0];if(!r)return;let n=r.data.instructions.map((({keys:e,programId:a,data:t})=>new d({keys:e.map((({pubkey:e,isSigner:a,isWritable:t})=>({pubkey:new l(e),isSigner:a,isWritable:t}))),programId:new l(a),data:Buffer.from(t,"hex")}))),s=r.data.addressLookupTableAddresses?.map((e=>new l(e))),o=new i(f(t)),c=await Promise.all((s??[]).map((async e=>o.getAddressLookupTable(e).then((e=>e.value))))),{blockhash:m}=await o.getLatestBlockhash();return{transaction:new p(new u({payerKey:new l(a),instructions:n,recentBlockhash:m}).compileToV0Message(c)),connection:o}}};const k=a=>{t("fundSolanaWallet",a);let i=r(),{setModalData:l}=n(),{openModal:c}=w();return s(h),{fundWallet:e((async(e,a)=>{l({funding:g({address:e,appConfig:i,fundWalletConfig:a,methodScreen:o})}),c(o)}),[i,l,c])}};export{h as t,k as u};