@privy-io/react-auth 2.23.0 → 2.24.0-beta-20250829191935

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 (45) hide show
  1. package/dist/cjs/abstract-smart-wallets.js +1 -1
  2. package/dist/cjs/extended-chains.js +1 -1
  3. package/dist/cjs/farcaster.js +1 -1
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/cjs/{internal-context-C3Ps4gAt.js → internal-context-B_aIJuQh.js} +1 -1
  6. package/dist/cjs/privy-provider-DvBetfj7.js +34 -0
  7. package/dist/cjs/{smart-wallets-DiLEwIKs.js → smart-wallets-BxzUj4XV.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/{use-sign-with-user-signer-L1_W0zce.js → use-sign-with-user-signer-mIruAdfm.js} +1 -1
  12. package/dist/cjs/{useActiveWallet-DEknGgdp.js → useActiveWallet-BI2cGlZO.js} +1 -1
  13. package/dist/cjs/{useFundWallet-BOm_c85i.js → useFundWallet-DIA0rzqo.js} +1 -1
  14. package/dist/dts/extended-chains.d.mts +2 -1
  15. package/dist/dts/extended-chains.d.ts +2 -1
  16. package/dist/dts/farcaster.d.mts +2 -1
  17. package/dist/dts/farcaster.d.ts +2 -1
  18. package/dist/dts/index.d.mts +9 -17
  19. package/dist/dts/index.d.ts +9 -17
  20. package/dist/dts/smart-wallets.d.mts +2 -1
  21. package/dist/dts/smart-wallets.d.ts +2 -1
  22. package/dist/dts/solana.d.mts +99 -16
  23. package/dist/dts/solana.d.ts +99 -16
  24. package/dist/dts/{types-cjyKPOmY.d.mts → types-zpHmPFW8.d.mts} +37 -1
  25. package/dist/dts/{types-cjyKPOmY.d.ts → types-zpHmPFW8.d.ts} +37 -1
  26. package/dist/dts/ui.d.mts +2 -1
  27. package/dist/dts/ui.d.ts +2 -1
  28. package/dist/dts/{useSolanaWallets-CZcmg0rm.d.mts → useSolanaWallets-Bnyf2wo3.d.mts} +1 -1
  29. package/dist/dts/{useSolanaWallets-CZcmg0rm.d.ts → useSolanaWallets-Bnyf2wo3.d.ts} +1 -1
  30. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  31. package/dist/esm/extended-chains.mjs +1 -1
  32. package/dist/esm/farcaster.mjs +1 -1
  33. package/dist/esm/index.mjs +1 -1
  34. package/dist/esm/{internal-context-D0EM1HLm.mjs → internal-context-qdNgTV5f.mjs} +1 -1
  35. package/dist/esm/privy-provider-CAS3yDsS.mjs +31 -0
  36. package/dist/esm/{smart-wallets-eeVPZj7Y.mjs → smart-wallets-DyGp_Lr1.mjs} +1 -1
  37. package/dist/esm/smart-wallets.mjs +1 -1
  38. package/dist/esm/solana.mjs +1 -1
  39. package/dist/esm/ui.mjs +2 -2
  40. package/dist/esm/{use-sign-with-user-signer-BWQ0PcRX.mjs → use-sign-with-user-signer-CpL9I6iB.mjs} +1 -1
  41. package/dist/esm/{useActiveWallet-CzofJJwe.mjs → useActiveWallet-DgjaLYuh.mjs} +1 -1
  42. package/dist/esm/{useFundWallet-YwYOhvEX.mjs → useFundWallet-Cd4d05ts.mjs} +1 -1
  43. package/package.json +9 -4
  44. package/dist/cjs/privy-provider-Q9EYyb3N.js +0 -34
  45. package/dist/esm/privy-provider-BOSSQASA.mjs +0 -31
@@ -1 +1 @@
1
- import{useRef as e,useState as t,useCallback as r}from"react";import{http as a,createPublicClient as n}from"viem";import{u as i,g as s,c as o}from"./use-sign-with-user-signer-BWQ0PcRX.mjs";import{x as l,o as c,e as d,w as u,a as m,b1 as p,b0 as y,a$ as g}from"./privy-provider-BOSSQASA.mjs";import{P as h}from"./paths-DCwuPDUk.mjs";import{u as f}from"./internal-context-D0EM1HLm.mjs";import{g as w}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{createSmartAccountClient as P}from"permissionless";import{toThirdwebSmartAccount as I,toLightSmartAccount as W,toBiconomySmartAccount as v,toKernelSmartAccount as F,toSafeSmartAccount as x}from"permissionless/accounts";import{createPimlicoClient as G}from"permissionless/clients/pimlico";import{toCoinbaseSmartAccount as C,entryPoint06Address as T,entryPoint07Address as U}from"viem/account-abstraction";import{THIRDWEB as M,COINBASE_SMART_WALLET as b,LIGHT_ACCOUNT as O,BICONOMY as S,KERNEL as V,SAFE as A}from"@privy-io/js-sdk-core";let D={address:T,version:"0.6"},N={address:U,version:"0.7"},_=({owner:e,smartWalletType:t,smartWalletVersion:r,publicClient:a})=>{switch(t){case A:return x({client:a,entryPoint:N,owners:[e],version:"1.4.1"});case V:return F({client:a,version:"0.3.1",entryPoint:N,useMetaFactory:"optional",owners:[e]});case S:return v({client:a,owners:[e],entryPoint:D});case O:return W({client:a,entryPoint:D,owner:e,version:"1.1.0"});case b:return async function({client:e,owner:t,version:r}){let[a]=await t.request({method:"eth_accounts"});if(!a)throw Error("Unable to request embedded owner for eth_accounts");return await C({client:e,owners:[{type:"local",source:"privy",address:a,sign:async({hash:e})=>await t.request({method:"secp256k1_sign",params:[e]})}],version:r})}({client:a,owner:e,version:r??"1"});case M:return I({client:a,entryPoint:N,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}};const $=({calls:e,chain:t,maxPriorityFeePerGas:r,maxFeePerGas:a,nonce:n})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:t.id,nonce:n,maxFeePerGas:a,maxPriorityFeePerGas:r}))),B=async({chain:e,paymasterContext:t,account:r,signer:i,user:s,smartWalletsConfig:o,rpcConfig:c,privyAppId:d})=>{if(!(o?.enabled&&s&&r&&i))return;let u=o?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!u)throw new h(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let m=s.smartWallet?s.smartWallet.smartWalletType:o.smartWalletType,p=s.smartWallet?s.smartWallet.smartWalletVersion:o.smartWalletVersion,y=l(e,c,d),g=n({chain:e,transport:a(y)}),f=t??u.paymasterContext,w=await(async({owner:e,smartWalletType:t,smartWalletVersion:r,chain:n,publicClient:i,bundlerUrl:s,paymasterUrl:o,paymasterContext:l})=>{let c=await _({owner:e,smartWalletType:t,publicClient:i,smartWalletVersion:r}),d=G({transport:a(s),entryPoint:c.entryPoint}),u=o?G({transport:a(o),entryPoint:c.entryPoint}):void 0;return P({account:c,chain:n,paymaster:u,paymasterContext:l,bundlerTransport:a(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await d.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await d.request({method:"zd_getUserOperationGasPrice",params:[]})).fast;if(["g.alchemy.com"].some((e=>s.includes(e)))){let[e,t]=await Promise.all([i.getBlock({blockTag:"latest"}),d.request({method:"rundler_maxPriorityFeePerGas",params:[]})]);if(!e.baseFeePerGas||!t)throw Error("Failed to get block or maxPriorityFeePerGasEstimate");return{maxFeePerGas:150n*e.baseFeePerGas/100n+BigInt(t.toString()),maxPriorityFeePerGas:BigInt(t.toString())}}{let e=await i.estimateFeesPerGas(),t=s.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*t/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*t/100n}}}}})})({owner:i,smartWalletType:m,smartWalletVersion:p,chain:e,publicClient:g,paymasterContext:f,...u});if(!w)throw new h(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return w},q=({clientConfig:a,smartWalletsConfig:n})=>{let{hideWalletUIs:l,openPrivyModal:P,appId:I,isHeadlessSigning:W}=f(),v=c(),{setModalData:F}=d(),{user:x}=i(),{chains:G}=c(),{chainId:C,clients:T,setChainId:U,chainIdState:M}=(()=>{let r=e(),[a,n]=t();return{clients:e({}),setChainId:e=>{r.current=e,n(e)},chainId:r,chainIdState:a}})(),b=G.find((e=>e.id===M)),{wallets:O}=u(),S=s(x),V=w(O),A=!!S&&o(S),D=r((async()=>C.current),[C]),N=r((async({id:e})=>{if(!T.current[e]){let t=await B({chain:G.find((t=>t.id===e)),account:S,signer:await(V?.getEthereumProvider()),user:x,paymasterContext:a?.paymasterContext,smartWalletsConfig:n,rpcConfig:v.rpcConfig,privyAppId:I});t&&(T.current[e]=t)}U(e)}),[G,a,O,x,n]);return{wrapSmartAccountClient:e=>{T.current[e.chain.id]=e,M||U(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let r=T.current[C.current];if(!r)throw new h(`Smart wallet client for chain (eip155:${C.current}) not found`);if(delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs}))return l.current=!0,await r.sendTransaction(e).finally((()=>l.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 n=async()=>{let{paymasterAndData:t,paymasterData:n,maxFeePerGas:i,maxPriorityFeePerGas:s}=await r.prepareUserOperation({calls:a,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(i)&&0===Number(s)||Number(t??n??0)>0};return new Promise((async(i,s)=>{l.current=!0;let{entropyId:o,entropyIdVerifier:c}=m(x);F({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:A,entropyId:o,entropyIdVerifier:c,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:$({calls:a,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:o,entropyIdVerifier:c,getIsSponsored:n,signOnly:!1,onConfirm:()=>r.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:s,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signMessage:async(e,t)=>{let r=T.current[C.current];if(!r)throw new h(`Smart wallet client for chain (eip155:${C.current}) not found`);return W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signMessage(e).finally((()=>l.current=!1))):new Promise((async(a,n)=>{let{entropyId:i,entropyIdVerifier:s}=m(x);l.current=!0,F({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:A,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>r.signMessage(e),onSuccess:e=>a(e),onFailure:n,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signTypedData:async(e,t)=>{let r=T.current[C.current];if(!r)throw new h(`Smart wallet client for chain (eip155:${C.current}) not found`);return delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signTypedData(e).finally((()=>l.current=!1))):new Promise((async(a,n)=>{l.current=!0;let{entropyId:i,entropyIdVerifier:s}=m(x);F({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:A,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>a(e),onFailure:n,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},getChainId:D,chain:b,switchChain:N}}}},j=()=>{let{hideWalletUIs:e,openPrivyModal:t,isHeadlessSigning:r}=f(),{setModalData:a}=d(),{user:n}=i(),l=s(n),c=!!l&&o(l);return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{if(r({showWalletUIs:o?.uiOptions?.showWalletUIs}))return e.current=!0,await i.sendTransaction(s).finally((()=>e.current=!1));let d=[];"calls"in s&&void 0!==s.calls?d=[...s.calls]:"to"in s&&(d=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let u=async()=>{if(!i.paymaster)return!1;let{paymasterData:e,paymasterAndData:t}=await i.prepareUserOperation({calls:d,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(t??e??0)>0};return new Promise((async(r,g)=>{e.current=!0;let{entropyId:h,entropyIdVerifier:f}=m(n);a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:h,entropyIdVerifier:f,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:$({calls:d,chain:i.chain,maxPriorityFeePerGas:s.maxPriorityFeePerGas,maxFeePerGas:s.maxFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:i.account.address,entropyId:h,entropyIdVerifier:f,getIsSponsored:u,signOnly:!1,onConfirm:()=>i.sendTransaction(s),onSuccess:e=>r(e.hash),onFailure:g,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{let{entropyId:u,entropyIdVerifier:p}=m(n);e.current=!0,a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof s.message?s.message:s.message.raw.toString(),confirmAndSign:()=>i.signMessage(s),onSuccess:e=>r(e),onFailure:d,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1})),signTypedData:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signTypedData(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{e.current=!0;let{entropyId:u,entropyIdVerifier:p}=m(n);a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:s,confirmAndSign:()=>i.signTypedData(s),onSuccess:e=>r(e),onFailure:d,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))})}};export{q as a,$ as c,B as g,j as u};
1
+ import{useRef as e,useState as t,useCallback as r}from"react";import{http as a,createPublicClient as n}from"viem";import{u as i,g as s,c as o}from"./use-sign-with-user-signer-CpL9I6iB.mjs";import{z as l,q as c,f as d,y as u,a as m,ba as p,b2 as y,b1 as g}from"./privy-provider-CAS3yDsS.mjs";import{P as f}from"./paths-DCwuPDUk.mjs";import{u as h}from"./internal-context-qdNgTV5f.mjs";import{g as w}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{createSmartAccountClient as P}from"permissionless";import{toThirdwebSmartAccount as I,toLightSmartAccount as W,toBiconomySmartAccount as v,toKernelSmartAccount as F,toSafeSmartAccount as x}from"permissionless/accounts";import{createPimlicoClient as G}from"permissionless/clients/pimlico";import{toCoinbaseSmartAccount as C,entryPoint06Address as T,entryPoint07Address as U}from"viem/account-abstraction";import{THIRDWEB as M,COINBASE_SMART_WALLET as b,LIGHT_ACCOUNT as O,BICONOMY as S,KERNEL as V,SAFE as A}from"@privy-io/js-sdk-core";let D={address:T,version:"0.6"},N={address:U,version:"0.7"},_=({owner:e,smartWalletType:t,smartWalletVersion:r,publicClient:a})=>{switch(t){case A:return x({client:a,entryPoint:N,owners:[e],version:"1.4.1"});case V:return F({client:a,version:"0.3.1",entryPoint:N,useMetaFactory:"optional",owners:[e]});case S:return v({client:a,owners:[e],entryPoint:D});case O:return W({client:a,entryPoint:D,owner:e,version:"1.1.0"});case b:return async function({client:e,owner:t,version:r}){let[a]=await t.request({method:"eth_accounts"});if(!a)throw Error("Unable to request embedded owner for eth_accounts");return await C({client:e,owners:[{type:"local",source:"privy",address:a,sign:async({hash:e})=>await t.request({method:"secp256k1_sign",params:[e]})}],version:r})}({client:a,owner:e,version:r??"1"});case M:return I({client:a,entryPoint:N,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}};const B=({calls:e,chain:t,maxPriorityFeePerGas:r,maxFeePerGas:a,nonce:n})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:t.id,nonce:n,maxFeePerGas:a,maxPriorityFeePerGas:r}))),$=async({chain:e,paymasterContext:t,account:r,signer:i,user:s,smartWalletsConfig:o,rpcConfig:c,privyAppId:d})=>{if(!(o?.enabled&&s&&r&&i))return;let u=o?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!u)throw new f(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let m=s.smartWallet?s.smartWallet.smartWalletType:o.smartWalletType,p=s.smartWallet?s.smartWallet.smartWalletVersion:o.smartWalletVersion,y=l(e,c,d),g=n({chain:e,transport:a(y)}),h=t??u.paymasterContext,w=await(async({owner:e,smartWalletType:t,smartWalletVersion:r,chain:n,publicClient:i,bundlerUrl:s,paymasterUrl:o,paymasterContext:l})=>{let c=await _({owner:e,smartWalletType:t,publicClient:i,smartWalletVersion:r}),d=G({transport:a(s),entryPoint:c.entryPoint}),u=o?G({transport:a(o),entryPoint:c.entryPoint}):void 0;return P({account:c,chain:n,paymaster:u,paymasterContext:l,bundlerTransport:a(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await d.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await d.request({method:"zd_getUserOperationGasPrice",params:[]})).fast;if(["g.alchemy.com"].some((e=>s.includes(e)))){let[e,t]=await Promise.all([i.getBlock({blockTag:"latest"}),d.request({method:"rundler_maxPriorityFeePerGas",params:[]})]);if(!e.baseFeePerGas||!t)throw Error("Failed to get block or maxPriorityFeePerGasEstimate");return{maxFeePerGas:150n*e.baseFeePerGas/100n+BigInt(t.toString()),maxPriorityFeePerGas:BigInt(t.toString())}}{let e=await i.estimateFeesPerGas(),t=s.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*t/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*t/100n}}}}})})({owner:i,smartWalletType:m,smartWalletVersion:p,chain:e,publicClient:g,paymasterContext:h,...u});if(!w)throw new f(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return w},q=({clientConfig:a,smartWalletsConfig:n})=>{let{hideWalletUIs:l,openPrivyModal:P,appId:I,isHeadlessSigning:W}=h(),v=c(),{setModalData:F}=d(),{user:x}=i(),{chains:G}=c(),{chainId:C,clients:T,setChainId:U,chainIdState:M}=(()=>{let r=e(),[a,n]=t();return{clients:e({}),setChainId:e=>{r.current=e,n(e)},chainId:r,chainIdState:a}})(),b=G.find((e=>e.id===M)),{wallets:O}=u(),S=s(x),V=w(O),A=!!S&&o(S),D=r((async()=>C.current),[C]),N=r((async({id:e})=>{if(!T.current[e]){let t=await $({chain:G.find((t=>t.id===e)),account:S,signer:await(V?.getEthereumProvider()),user:x,paymasterContext:a?.paymasterContext,smartWalletsConfig:n,rpcConfig:v.rpcConfig,privyAppId:I});t&&(T.current[e]=t)}U(e)}),[G,a,O,x,n]);return{wrapSmartAccountClient:e=>{T.current[e.chain.id]=e,M||U(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let r=T.current[C.current];if(!r)throw new f(`Smart wallet client for chain (eip155:${C.current}) not found`);if(delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs}))return l.current=!0,await r.sendTransaction(e).finally((()=>l.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 n=async()=>{let{paymasterAndData:t,paymasterData:n,maxFeePerGas:i,maxPriorityFeePerGas:s}=await r.prepareUserOperation({calls:a,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(i)&&0===Number(s)||Number(t??n??0)>0};return new Promise((async(i,s)=>{l.current=!0;let{entropyId:o,entropyIdVerifier:c}=m(x);F({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:A,entropyId:o,entropyIdVerifier:c,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:B({calls:a,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:o,entropyIdVerifier:c,getIsSponsored:n,signOnly:!1,onConfirm:()=>r.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:s,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signMessage:async(e,t)=>{let r=T.current[C.current];if(!r)throw new f(`Smart wallet client for chain (eip155:${C.current}) not found`);return W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signMessage(e).finally((()=>l.current=!1))):new Promise((async(a,n)=>{let{entropyId:i,entropyIdVerifier:s}=m(x);l.current=!0,F({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:A,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>r.signMessage(e),onSuccess:e=>a(e),onFailure:n,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signTypedData:async(e,t)=>{let r=T.current[C.current];if(!r)throw new f(`Smart wallet client for chain (eip155:${C.current}) not found`);return delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signTypedData(e).finally((()=>l.current=!1))):new Promise((async(a,n)=>{l.current=!0;let{entropyId:i,entropyIdVerifier:s}=m(x);F({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:A,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>a(e),onFailure:n,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},getChainId:D,chain:b,switchChain:N}}}},j=()=>{let{hideWalletUIs:e,openPrivyModal:t,isHeadlessSigning:r}=h(),{setModalData:a}=d(),{user:n}=i(),l=s(n),c=!!l&&o(l);return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{if(r({showWalletUIs:o?.uiOptions?.showWalletUIs}))return e.current=!0,await i.sendTransaction(s).finally((()=>e.current=!1));let d=[];"calls"in s&&void 0!==s.calls?d=[...s.calls]:"to"in s&&(d=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let u=async()=>{if(!i.paymaster)return!1;let{paymasterData:e,paymasterAndData:t}=await i.prepareUserOperation({calls:d,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(t??e??0)>0};return new Promise((async(r,g)=>{e.current=!0;let{entropyId:f,entropyIdVerifier:h}=m(n);a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:f,entropyIdVerifier:h,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:B({calls:d,chain:i.chain,maxPriorityFeePerGas:s.maxPriorityFeePerGas,maxFeePerGas:s.maxFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:i.account.address,entropyId:f,entropyIdVerifier:h,getIsSponsored:u,signOnly:!1,onConfirm:()=>i.sendTransaction(s),onSuccess:e=>r(e.hash),onFailure:g,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{let{entropyId:u,entropyIdVerifier:p}=m(n);e.current=!0,a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof s.message?s.message:s.message.raw.toString(),confirmAndSign:()=>i.signMessage(s),onSuccess:e=>r(e),onFailure:d,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1})),signTypedData:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signTypedData(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{e.current=!0;let{entropyId:u,entropyIdVerifier:p}=m(n);a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:s,confirmAndSign:()=>i.signTypedData(s),onSuccess:e=>r(e),onFailure:d,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))})}};export{q as a,B as c,$ as g,j as u};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useContext as o,useState as i,useEffect as t,createContext as r}from"react";import{u as n,g as c}from"./use-sign-with-user-signer-BWQ0PcRX.mjs";import{o as a,w as l}from"./privy-provider-BOSSQASA.mjs";import{P as s}from"./paths-DCwuPDUk.mjs";import{g as m}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{u as p,g as h,a as u}from"./smart-wallets-eeVPZj7Y.mjs";import{u as d,a as g}from"./internal-context-D0EM1HLm.mjs";import"viem";import"mipd";import"react-device-detect";import"viem/utils";import"@privy-io/js-sdk-core";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";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/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"zustand";import"@headlessui/react";import"lucide-react";import"@walletconnect/ethereum-provider";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"@heroicons/react/24/outline/CheckIcon";import"qrcode";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/solid/CheckCircleIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/XCircleIcon";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"ofetch";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";import"permissionless";import"permissionless/accounts";import"permissionless/clients/pimlico";import"viem/account-abstraction";let C=/*#__PURE__*/r({client:void 0,getClientForChain:g});const f=({config:o,children:i})=>/*#__PURE__*/e(y,{children:/*#__PURE__*/e(k,{config:o,children:/*#__PURE__*/e(P,{children:i})})}),I=()=>{let{client:e,getClientForChain:i}=o(C);return{client:e,getClientForChain:i}};let w=/*#__PURE__*/r({config:void 0}),v=()=>{let{config:e}=o(w);return{config:e}},y=({children:o})=>{let[r,n]=i(void 0),{client:c}=d();return t((()=>{!r&&c&&(async()=>{try{if(!c)return void console.warn("No client found");let e=await c.getSmartWalletsConfig();n(e)}catch(e){console.warn("Error generating smart wallet config: ",e)}})()}),[!!c]),/*#__PURE__*/e(w.Provider,{value:{config:r},children:o})},k=({config:o,children:r})=>{let{config:u}=v(),{appId:g}=d(),{chains:C,defaultChain:f,rpcConfig:I}=a(),{wallets:w}=l(),{user:y}=n(),[k,P]=i(),{wrapSmartAccountClientWithUIs:b}=p(),F=c(y),S=m(w);t((()=>{(async()=>{if(!u?.enabled)return;let e=u.configuredNetworks.find((e=>e.chainId===`eip155:${f.id}`))?f:C.find((e=>u.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new s("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");P(await h({chain:e,privyAppId:g,paymasterContext:o?.paymasterContext,rpcConfig:I,account:F,signer:await(S?.getEthereumProvider()),user:y,smartWalletsConfig:u}))})()}),[!!u?.enabled,!!y?.smartWallet,!!S,!!F]);/*#__PURE__*/return e(W.Provider,{value:{client:k,config:o,getClientForChain:async({id:e})=>{let i=await h({chain:C.find((o=>o.id===e)),privyAppId:g,paymasterContext:o?.paymasterContext,rpcConfig:I,account:F,signer:await(S?.getEthereumProvider()),user:y,smartWalletsConfig:u});if(!i)throw new s(`Failed to create smart wallet client for chain id: ${e}`);return b(i)}},children:r})},W=/*#__PURE__*/r({client:void 0,config:void 0,getClientForChain:g}),P=({children:i})=>{let{client:r,config:c,getClientForChain:a}=(()=>{let{client:e,config:i,getClientForChain:t}=o(W);return{client:e,config:i,getClientForChain:t}})(),{config:l}=v(),{wrapSmartAccountClient:s}=u({clientConfig:c,smartWalletsConfig:l}),{user:m}=n(),{generateSiweMessageForSmartWallet:p,linkSmartWallet:h,hideWalletUIs:g}=d();return t((()=>{(async()=>{if(r&&m&&!m?.smartWallet&&l?.enabled)try{let e=await p({address:r.account.address,chainId:`eip155:${r.chain.id}`});g.current=!0;let o=await r.signMessage({message:e});await h({signature:o,message:e,smartWalletType:l.smartWalletType,smartWalletVersion:l.smartWalletVersion})}catch(e){console.error("Error creating smart wallet:",e)}finally{g.current=!1}})()}),[!!r,!!m?.smartWallet,!!l?.enabled]),/*#__PURE__*/e(C.Provider,{value:{client:m?.smartWallet&&r?s(r):void 0,getClientForChain:a},children:i})};export{f as SmartWalletsProvider,I as useSmartWallets};
1
+ import{jsx as e}from"react/jsx-runtime";import{useContext as o,useState as i,useEffect as t,createContext as r}from"react";import{u as n,g as c}from"./use-sign-with-user-signer-CpL9I6iB.mjs";import{q as a,y as l}from"./privy-provider-CAS3yDsS.mjs";import{P as s}from"./paths-DCwuPDUk.mjs";import{g as m}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{u as p,g as h,a as u}from"./smart-wallets-DyGp_Lr1.mjs";import{u as d,a as g}from"./internal-context-qdNgTV5f.mjs";import"viem";import"mipd";import"react-device-detect";import"viem/utils";import"@privy-io/js-sdk-core";import"uuid";import"jose";import"eventemitter3";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";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/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"zustand";import"@headlessui/react";import"lucide-react";import"@walletconnect/ethereum-provider";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"@heroicons/react/24/outline/CheckIcon";import"qrcode";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/solid/CheckCircleIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/XCircleIcon";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"ofetch";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";import"permissionless";import"permissionless/accounts";import"permissionless/clients/pimlico";import"viem/account-abstraction";let C=/*#__PURE__*/r({client:void 0,getClientForChain:g});const f=({config:o,children:i})=>/*#__PURE__*/e(y,{children:/*#__PURE__*/e(k,{config:o,children:/*#__PURE__*/e(P,{children:i})})}),I=()=>{let{client:e,getClientForChain:i}=o(C);return{client:e,getClientForChain:i}};let w=/*#__PURE__*/r({config:void 0}),v=()=>{let{config:e}=o(w);return{config:e}},y=({children:o})=>{let[r,n]=i(void 0),{client:c}=d();return t((()=>{!r&&c&&(async()=>{try{if(!c)return void console.warn("No client found");let e=await c.getSmartWalletsConfig();n(e)}catch(e){console.warn("Error generating smart wallet config: ",e)}})()}),[!!c]),/*#__PURE__*/e(w.Provider,{value:{config:r},children:o})},k=({config:o,children:r})=>{let{config:u}=v(),{appId:g}=d(),{chains:C,defaultChain:f,rpcConfig:I}=a(),{wallets:w}=l(),{user:y}=n(),[k,P]=i(),{wrapSmartAccountClientWithUIs:b}=p(),F=c(y),S=m(w);t((()=>{(async()=>{if(!u?.enabled)return;let e=u.configuredNetworks.find((e=>e.chainId===`eip155:${f.id}`))?f:C.find((e=>u.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new s("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");P(await h({chain:e,privyAppId:g,paymasterContext:o?.paymasterContext,rpcConfig:I,account:F,signer:await(S?.getEthereumProvider()),user:y,smartWalletsConfig:u}))})()}),[!!u?.enabled,!!y?.smartWallet,!!S,!!F]);/*#__PURE__*/return e(W.Provider,{value:{client:k,config:o,getClientForChain:async({id:e})=>{let i=await h({chain:C.find((o=>o.id===e)),privyAppId:g,paymasterContext:o?.paymasterContext,rpcConfig:I,account:F,signer:await(S?.getEthereumProvider()),user:y,smartWalletsConfig:u});if(!i)throw new s(`Failed to create smart wallet client for chain id: ${e}`);return b(i)}},children:r})},W=/*#__PURE__*/r({client:void 0,config:void 0,getClientForChain:g}),P=({children:i})=>{let{client:r,config:c,getClientForChain:a}=(()=>{let{client:e,config:i,getClientForChain:t}=o(W);return{client:e,config:i,getClientForChain:t}})(),{config:l}=v(),{wrapSmartAccountClient:s}=u({clientConfig:c,smartWalletsConfig:l}),{user:m}=n(),{generateSiweMessageForSmartWallet:p,linkSmartWallet:h,hideWalletUIs:g}=d();return t((()=>{(async()=>{if(r&&m&&!m?.smartWallet&&l?.enabled)try{let e=await p({address:r.account.address,chainId:`eip155:${r.chain.id}`});g.current=!0;let o=await r.signMessage({message:e});await h({signature:o,message:e,smartWalletType:l.smartWalletType,smartWalletVersion:l.smartWalletVersion})}catch(e){console.error("Error creating smart wallet:",e)}finally{g.current=!1}})()}),[!!r,!!m?.smartWallet,!!l?.enabled]),/*#__PURE__*/e(C.Provider,{value:{client:m?.smartWallet&&r?s(r):void 0,getClientForChain:a},children:i})};export{f as SmartWalletsProvider,I as useSmartWallets};
@@ -1 +1 @@
1
- import{isWalletAdapterCompatibleStandardWallet as e}from"@solana/wallet-adapter-base";import{StandardWalletAdapter as t}from"@solana/wallet-standard-wallet-adapter-base";import{getWallets as n}from"@wallet-standard/app";import{aO as i,p as r,o,aP as a,aQ as s,X as c,e as l,u as d,aR as p,w as h,aS as m,aT as g,aU as w,aV as f,aW as v,aX as A,q as y}from"./privy-provider-BOSSQASA.mjs";export{a7 as useSolanaWallets}from"./privy-provider-BOSSQASA.mjs";import{useCallback as b,useMemo as I,useEffect as T,useState as j}from"react";import{u as P,n as C}from"./internal-context-D0EM1HLm.mjs";import{u as O,a as S,d as E,e as _}from"./use-sign-with-user-signer-BWQ0PcRX.mjs";import{VersionedTransaction as M,Connection as k,Transaction as W,TransactionInstruction as B,PublicKey as x}from"@solana/web3.js";import F from"eventemitter3";import{base58 as D}from"@scure/base";import{t as U}from"./useFundWallet-YwYOhvEX.mjs";export{u as useFundWallet}from"./useFundWallet-YwYOhvEX.mjs";import{ConnectedStandardSolanaWallet as Q}from"@privy-io/js-sdk-core";import"react/jsx-runtime";import"mipd";import"react-device-detect";import"viem/utils";import"./paths-DCwuPDUk.mjs";import"ofetch";import"viem";import"uuid";import"jose";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";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/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"zustand";import"@headlessui/react";import"lucide-react";import"@walletconnect/ethereum-provider";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"@heroicons/react/24/outline/CheckIcon";import"qrcode";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/solid/CheckCircleIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/XCircleIcon";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"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";import"@solana/spl-token";const V=e=>{let t,{get:r,on:o}=n(),a=e?.shouldAutoConnect??!0,s=new Map,c=[];function l(...e){J(e).forEach((e=>!s.has(e.wallet)&&s.set(e.wallet,e))),c=Array.from(s.values()).map((e=>new i(e,a))),t?.(c)}function u(...e){Array.from(s.keys()).forEach((t=>!e.includes(t)&&s.delete(t))),c=Array.from(s.values()).map((e=>new i(e,a))),t?.(c)}let d=[o("register",l),o("unregister",u)];return J(r()).forEach((e=>!s.has(e.wallet)&&s.set(e.wallet,e))),c=Array.from(s.values()).map((e=>new i(e,a))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{d[0]||(d[0]=o("register",l)),d[1]||(d[1]=o("unregister",u))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>c}};let J=n=>n.filter((t=>e(t)&&!(t.features["privy:"]&&"isPrivyWallet"in t&&t.isPrivyWallet))).map((e=>new t({wallet:e})));const z=()=>{let{user:e}=O(),{client:t,refreshSessionAndUser:n,initializeWalletProxy:i}=P(),s=r(),c=o();return{importWallet:b((({privateKey:r})=>a({getAccessToken:()=>t.getAccessToken(),user:e,initializeWalletProxy:i,refreshSessionAndUser:n,emitPrivyEvent:s,appConfig:c},{privateKey:r,chainType:"solana"})),[e,t,n,i,s])}},K=["solana:mainnet","solana:devnet","solana:testnet"];function R(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet";default:throw Error(`Unknown chain: ${e}`)}}function G(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var q=0,Y="__private_"+q+++"__implementation";function H(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var Z=0;function L(e){return"__private_"+Z+++"_"+e}var X=/*#__PURE__*/L("_address"),N=/*#__PURE__*/L("_publicKey"),$=/*#__PURE__*/L("_chains"),ee=/*#__PURE__*/L("_features"),te=/*#__PURE__*/L("_label"),ne=/*#__PURE__*/L("_icon");class ie{get address(){return H(this,X)[X]}get publicKey(){return H(this,N)[N].slice()}get chains(){return H(this,$)[$].slice()}get features(){return H(this,ee)[ee].slice()}get label(){return H(this,te)[te]}get icon(){return H(this,ne)[ne]}constructor({address:e,publicKey:t,label:n,icon:i}){Object.defineProperty(this,X,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),Object.defineProperty(this,te,{writable:!0,value:void 0}),Object.defineProperty(this,ne,{writable:!0,value:void 0}),H(this,X)[X]=e,H(this,N)[N]=t,H(this,$)[$]=K,H(this,te)[te]=n,H(this,ne)[ne]=i,H(this,ee)[ee]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===ie&&Object.freeze(this)}}function re(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var oe=0;function ae(e){return"__private_"+oe+++"_"+e}var se=/*#__PURE__*/ae("_listeners"),ce=/*#__PURE__*/ae("_version"),le=/*#__PURE__*/ae("_name"),ue=/*#__PURE__*/ae("_icon"),de=/*#__PURE__*/ae("_injection"),pe=/*#__PURE__*/ae("_isPrivyWallet"),he=/*#__PURE__*/ae("_accounts"),me=/*#__PURE__*/ae("_on"),ge=/*#__PURE__*/ae("_emit"),we=/*#__PURE__*/ae("_off"),fe=/*#__PURE__*/ae("_connected"),ve=/*#__PURE__*/ae("_connect"),Ae=/*#__PURE__*/ae("_disconnect"),ye=/*#__PURE__*/ae("_signMessage"),be=/*#__PURE__*/ae("_signAndSendTransaction"),Ie=/*#__PURE__*/ae("_signTransaction");function Te(e,...t){re(this,se)[se][e]?.forEach((e=>e.apply(null,t)))}function je(e,t){re(this,se)[se][e]=re(this,se)[se][e]?.filter((e=>t!==e))}function Pe(e){let t=o(),{user:n}=c(),{setModalData:i}=l(),{client:a,isHeadlessSigning:s,openModal:u,walletProxy:h,recoverEmbeddedWallet:m,privy:g,solanaWallets:w}=P(),f=r(),{signWithUserSigner:v}=S();return d("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:r,uiOptions:o,transactionOptions:c,address:l})=>{let d=l?w.find((e=>e.address===l&&"privy"!==e.walletClientType)):void 0,{signedTransaction:A}=await p({privy:g,appConfig:t,getAccessToken:()=>a.getAccessToken(),isHeadlessSigning:s,emitPrivyEvent:f,setModalData:i,openModal:u,walletProxy:h,user:n,recoverEmbeddedWallet:m,signWithUserSigner:v,connectedExternalWallet:d},{transaction:e,connection:r,transactionOptions:c,uiOptions:o,address:l,signOnly:!0});return A}}}let Ce=new class extends F{setImplementation(e){G(this,Y)[Y]=e}async signMessage(e,t){return G(this,Y)[Y].signMessage(e,t)}async signAndSendTransaction(e,t,n,i){return G(this,Y)[Y].signAndSendTransaction(e,t,n,i)}async signTransaction(e,t,n,i){return G(this,Y)[Y].signTransaction(e,t,n,i)}constructor(e){super(),Object.defineProperty(this,Y,{writable:!0,value:void 0}),G(this,Y)[Y]=e}}({signTransaction:C("signTransaction was not injected"),signAndSendTransaction:C("signAndSendTransaction was not injected"),signMessage:C("signMessage was not injected")}),Oe=new class{get version(){return re(this,ce)[ce]}get name(){return re(this,le)[le]}get icon(){return re(this,ue)[ue]}get chains(){return K.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:re(this,ve)[ve]},"standard:disconnect":{version:"1.0.0",disconnect:re(this,Ae)[Ae]},"standard:events":{version:"1.0.0",on:re(this,me)[me]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:re(this,be)[be]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:re(this,Ie)[Ie]},"solana:signMessage":{version:"1.0.0",signMessage:re(this,ye)[ye]},"privy:":{privy:{signMessage:re(this,de)[de].signMessage,signTransaction:re(this,de)[de].signTransaction,signAndSendTransaction:re(this,de)[de].signAndSendTransaction}}}}get accounts(){return re(this,he)[he].slice()}get isPrivyWallet(){return re(this,pe)[pe]}constructor({name:e,icon:t,version:n,injection:i,wallets:r}){Object.defineProperty(this,ge,{value:Te}),Object.defineProperty(this,we,{value:je}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),Object.defineProperty(this,ue,{writable:!0,value:void 0}),Object.defineProperty(this,de,{writable:!0,value:void 0}),Object.defineProperty(this,pe,{writable:!0,value:void 0}),Object.defineProperty(this,he,{writable:!0,value:void 0}),Object.defineProperty(this,me,{writable:!0,value:void 0}),Object.defineProperty(this,fe,{writable:!0,value:void 0}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),Object.defineProperty(this,Ae,{writable:!0,value:void 0}),Object.defineProperty(this,ye,{writable:!0,value:void 0}),Object.defineProperty(this,be,{writable:!0,value:void 0}),Object.defineProperty(this,Ie,{writable:!0,value:void 0}),re(this,se)[se]={},re(this,me)[me]=(e,t)=>(re(this,se)[se][e]?.push(t)||(re(this,se)[se][e]=[t]),()=>re(this,we)[we](e,t)),re(this,fe)[fe]=e=>{null!=e&&(re(this,he)[he]=e.map((({address:e})=>new ie({address:e,publicKey:D.decode(e)})))),re(this,ge)[ge]("change",{accounts:this.accounts})},re(this,ve)[ve]=async()=>(re(this,ge)[ge]("change",{accounts:this.accounts}),{accounts:this.accounts}),re(this,Ae)[Ae]=async()=>{re(this,ge)[ge]("change",{accounts:this.accounts})},re(this,ye)[ye]=async(...e)=>{let t=[];for(let{message:n,account:i}of e){let{signature:e}=await re(this,de)[de].signMessage(n,i.address);t.push({signedMessage:n,signature:e})}return t},re(this,be)[be]=async(...e)=>{let t=[];for(let{transaction:n,account:i,options:r,chain:o}of e){let{signature:e}=await re(this,de)[de].signAndSendTransaction(M.deserialize(n),i.address,R(o||"solana:mainnet"),r);t.push({signature:D.decode(e)})}return t},re(this,Ie)[Ie]=async(...e)=>{let t=[];for(let{transaction:n,account:i,options:r,chain:o}of e){let e=await re(this,de)[de].signTransaction(M.deserialize(n),i.address,R(o||"solana:mainnet"),r),a=s(e)?e.serialize():new Uint8Array(e.serialize({requireAllSignatures:!1,verifySignatures:!1}));t.push({signedTransaction:a})}return t},re(this,le)[le]=e,re(this,ue)[ue]=t,re(this,ce)[ce]=n,re(this,de)[de]=i,re(this,he)[he]=[],re(this,pe)[pe]=!0,i.on("accountChanged",re(this,fe)[fe],this),re(this,fe)[fe](r)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Ce});function Se(){let{solanaClusters:e}=o(),{ready:t}=h(),{user:n}=c(),{signMessage:i}=m(),{signTransaction:r}=Pe(),{sendTransaction:a}=g(),s=I((()=>{let e=[...E(n).sort(((e,t)=>(e.walletIndex??0)-(t.walletIndex??0)))],t=_(n);return t?[...e,t]:e}),[n]),l=I((()=>({signMessage:async(e,t)=>({signature:await i({message:e,options:{address:t}})}),async signTransaction(t,n,i){let o=e[i];if(!o)throw Error(`Invalid Solana cluster: ${i}`);let a=new k(o.rpcUrl);return await r({transaction:t,address:n,connection:a})},async signAndSendTransaction(t,n,i,r){let o=e[i];if(!o)throw Error(`Invalid Solana cluster: ${i}`);let s=new k(o.rpcUrl),{signature:c}=await a({transaction:t,connection:s,address:n,transactionOptions:r});return{signature:c}}})),[i,r,a,e]);return T((()=>{Ce?.setImplementation(l)}),[l]),T((()=>{var e;!t||(e=Oe.accounts).length===s.length&&e.every(((e,t)=>e.address===s[t]?.address))||Ce?.emit("accountChanged",s)}),[t,s]),{ready:t,wallet:Oe}}function Ee(){let{client:e}=P(),{ready:t,wallet:n}=Se(),[i,r]=j([]),[o,a]=j([]);return T((()=>{let e=[n,...i.filter((e=>"solana"===e.chainType&&!!e.wallet)).map((e=>e.wallet))];a(e);let t=e.map((t=>t.features["standard:events"]?.on("change",(()=>{a([...e])}))));return()=>{t.forEach((e=>e?.()))}}),[i]),T((()=>{if(!t)return;r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[t,e.connectors]),{ready:t,wallets:o}}var _e=()=>w(U),Me={id:f,prepareSiwsTransactionWithMemo:({address:e,nonce:t})=>{let n=v({address:e,nonce:t}),i=new W,r=new B({keys:[{pubkey:new x(e),isSigner:!0,isWritable:!1}],programId:new x("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(n,"utf-8")});return i.add(r),i.feePayer=new x(e),i.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",i.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>W.from(A(e,"base64"))},ke=()=>w(Me);function We(){let{ready:e,wallets:t}=Ee();return{ready:e,wallets:I((()=>t.flatMap((e=>e.accounts.map((t=>new Q({wallet:e,account:t})))))),[t])}}function Be(){let{create:e}=y();return{createWallet:async t=>{t&&"target"in t&&t&&(t=void 0);let{account:n}=await e({chainType:"solana",options:t});return{wallet:n}}}}function xe(){let{exportSolanaWallet:e}=P();return{exportWallet:e}}export{i as SolanaAdapterConnector,V as toSolanaWalletConnectors,We as useConnectedStandardWallets,Be as useCreateWallet,xe as useExportWallet,z as useImportWallet,Se as usePrivyStandardWallet,g as useSendTransaction,m as useSignMessage,Pe as useSignTransaction,_e as useSolanaFundingPlugin,ke as useSolanaLedgerPlugin,Ee as useSolanaStandardWallets};
1
+ import{useCallback as e,useMemo as n,useState as t,useEffect as a}from"react";import{aP as i,r,q as o,aQ as s,aR as c,aS as l,aT as d,aU as p,f as m,aV as g,aW as h,aX as f,aY as w,aZ as y,a_ as A,a$ as v,b0 as b,e as I,a as T,b1 as S,b2 as k,y as C,b3 as O,b4 as E,p as P,u as _,b5 as M,v as W}from"./privy-provider-CAS3yDsS.mjs";export{b6 as useSendTransaction,b7 as useSignMessage,a8 as useSolanaWallets}from"./privy-provider-CAS3yDsS.mjs";import{u as F,n as x}from"./internal-context-qdNgTV5f.mjs";import{u as U,d as j,e as D,a as B,b as L,c as N,f as R}from"./use-sign-with-user-signer-CpL9I6iB.mjs";import{P as J,a as V}from"./paths-DCwuPDUk.mjs";import{jsx as $}from"react/jsx-runtime";import{formatTokenAmount as q,rpc as G,ConnectedStandardSolanaWallet as H}from"@privy-io/js-sdk-core";import{getTransactionDecoder as K,pipe as Q,getCompiledTransactionMessageDecoder as Y,decompileTransactionMessage as Z,setTransactionMessageLifetimeUsingBlockhash as z,compileTransaction as X,getTransactionEncoder as ee,getBase58Decoder as ne,getBase64Decoder as te,fetchAddressesForLookupTables as ae,getBase58Encoder as ie,address as re}from"@solana/kit";import oe from"eventemitter3";import{base58 as se}from"@scure/base";import{t as ce}from"./useFundWallet-Cd4d05ts.mjs";export{u as useFundWallet}from"./useFundWallet-Cd4d05ts.mjs";import{Transaction as le,TransactionInstruction as de,PublicKey as ue}from"@solana/web3.js";import{isWalletAdapterCompatibleStandardWallet as pe}from"@solana/wallet-adapter-base";import{StandardWalletAdapter as me}from"@solana/wallet-standard-wallet-adapter-base";import{getWallets as ge}from"@wallet-standard/app";import"mipd";import"react-device-detect";import"viem/utils";import"viem";import"uuid";import"jose";import"@coinbase/wallet-sdk";import"@privy-io/ethereum";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/CalendarIcon";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/ChevronDownIcon";import"zustand";import"@headlessui/react";import"lucide-react";import"@walletconnect/ethereum-provider";import"fast-password-entropy";import"secure-password-utilities";import"secure-password-utilities/wordlists";import"@heroicons/react/24/outline/UserCircleIcon";import"@heroicons/react/20/solid/CheckIcon";import"@heroicons/react/24/outline/EnvelopeIcon";import"@heroicons/react/24/outline/WalletIcon";import"@heroicons/react/24/outline/ExclamationCircleIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"@heroicons/react/24/outline";import"@tanstack/react-virtual";import"@heroicons/react/24/outline/CheckIcon";import"qrcode";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/solid/CheckCircleIcon";import"@heroicons/react/24/outline/ArrowDownTrayIcon";import"@heroicons/react/24/outline/ClipboardDocumentCheckIcon";import"@heroicons/react/24/outline/DocumentDuplicateIcon";import"@heroicons/react/24/solid/XCircleIcon";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"ofetch";import"@heroicons/react/24/outline/ClipboardDocumentIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/IdentificationIcon";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/outline/ClockIcon";import"@heroicons/react/24/solid/ShieldCheckIcon";import"js-cookie";import"@solana/spl-token";const he=e=>{let n,{get:t,on:a}=ge(),r=e?.shouldAutoConnect??!0,o=new Map,s=[];function c(...e){fe(e).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),s=Array.from(o.values()).map((e=>new i(e,r))),n?.(s)}function l(...e){Array.from(o.keys()).forEach((n=>!e.includes(n)&&o.delete(n))),s=Array.from(o.values()).map((e=>new i(e,r))),n?.(s)}let d=[a("register",c),a("unregister",l)];return fe(t()).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),s=Array.from(o.values()).map((e=>new i(e,r))),{_setOnConnectorsUpdated:e=>{n=e},onMount:()=>{d[0]||(d[0]=a("register",c)),d[1]||(d[1]=a("unregister",l))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>s}};let fe=e=>e.filter((e=>pe(e)&&!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet))).map((e=>new me({wallet:e})));const we=()=>{let{user:n}=U(),{client:t,refreshSessionAndUser:a,initializeWalletProxy:i}=F(),c=r(),l=o();return{importWallet:e((({privateKey:e})=>s({getAccessToken:()=>t.getAccessToken(),user:n,initializeWalletProxy:i,refreshSessionAndUser:a,emitPrivyEvent:c,appConfig:l},{privateKey:e,chainType:"solana"})),[n,t,a,i,c])}};function ye(e){return new Uint8Array(K().decode(e).messageBytes)}const Ae="11111111111111111111111111111111",ve=["CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C","CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"],be=["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"],Ie={"solana:mainnet":{EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v:{symbol:"USDC",decimals:6,address:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"},Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB:{symbol:"USDT",decimals:6,address:"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"},So11111111111111111111111111111111111111112:{symbol:"SOL",decimals:9,address:"So11111111111111111111111111111111111111112"}},"solana:devnet":{"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU":{symbol:"USDC",decimals:6,address:"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"},EJwZgeZrdC8TXTQbQBoL6bfuAnFUUy1PVCMB4DYPzVaS:{symbol:"USDT",decimals:6,address:"EJwZgeZrdC8TXTQbQBoL6bfuAnFUUy1PVCMB4DYPzVaS"},So11111111111111111111111111111111111111112:{symbol:"SOL",decimals:9,address:"So11111111111111111111111111111111111111112"}},"solana:testnet":{}};async function Te({privyClient:e,chain:n,mint:t}){let a=Ie[n];if(!a[t]){let i=await e.getSplTokenMetadata({mintAddress:t,cluster:function(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}(n)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function Se({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:a}=await e.rpc.simulateTransaction(te().decode(n),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:t}).send();if("BlockhashNotFound"===a.err&&t)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await Se({solanaClient:e,tx:n,replaceRecentBlockhash:!0}):{logs:a.logs,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}}async function ke({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let i=Y().decode(ye(e)),r=i.staticAccounts[0]??"",o=await async function({solanaClient:e,tx:n}){let t=te().decode(ye(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}({solanaClient:n,tx:e}),s=a?await c(Se({solanaClient:n,tx:e})):void 0,l=s?.hasFunds??!0,d={},u=[],p=await async function({solanaClient:e,message:n}){if(!("addressTableLookups"in n)||!n.addressTableLookups)return[...n.staticAccounts];let t=n.addressTableLookups.map((e=>e.lookupTableAddress)),a=await ae(t,e.rpc),i=t.map(((e,t)=>[...n.addressTableLookups[t]?.writableIndexes.map((n=>{let i=a[e]?.[n];if(i)return{key:i,isWritable:!0,altIdx:t}}))??[],...n.addressTableLookups[t]?.readonlyIndexes.map((n=>{let i=a[e]?.[n];if(i)return{key:i,isWritable:!1,altIdx:t}}))??[]])).flat().filter((e=>!!e)).sort(((e,n)=>e.isWritable!==n.isWritable?e.isWritable?-1:1:e.altIdx-n.altIdx)).map((({key:e})=>e));return[...n.staticAccounts,...i]}({solanaClient:n,message:i});for(let e of i.instructions){let a=i.staticAccounts[e.programAddressIndex]||"";if("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"!==a&&"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"!==a)if(a!==Ae){if("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"===a){let n=await c(function(e,n,t){let[a,i,r,o]=e.accountIndices?.map((e=>n[e]))??[];return{type:"ata-creation",program:t,payer:a,ata:i,owner:r,mint:o}}(e,p,a));if(!n){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(u.push(n),n.ata&&n.owner&&n.mint){d[n.ata]={owner:n.owner,mint:n.mint};continue}}if(ve.includes(a)){let i=await c(Pe(e,p,n,t,a));if(!i){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(i)}else if(be.includes(a)){let i=await c(_e(e,p,n,t,a));if(!i){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(i)}else u.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let n=await c(Ee(e,p));if(!n){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(n)}else{let i=await c(Oe(e,p,n,t,d,a));if(!i){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(i),"spl-transfer"===i.type&&(i.fromAta&&i.fromAccount&&i.token.address&&(d[i.fromAta]??={owner:i.fromAccount,mint:i.token.address}),i.toAta&&i.toAccount&&i.token.address&&(d[i.toAta]??={owner:i.toAccount,mint:i.token.address}))}}return{spender:r,fee:o,instructions:u,hasFunds:!!l}}function Ce(e,n=0){try{return l(e,n)}catch{}try{return e.readBigInt64LE(n)}catch{}let t=d(e);try{return p(t)}catch{}try{return t.subarray(n).readBigInt64LE()}catch{}try{return t.readBigInt64LE(n)}catch{}return 0n}async function Oe(e,n,t,a,i,r){let o=e.data?.[0],s=e.accountIndices?.map((e=>n[e]))??[];if(1===o){let[e,n,t]=s;return{type:"spl-init-account",program:r,account:e,mint:n,owner:t}}if(3===o){let n,o,[c,l,d]=s,u="",p=l?i[l]:void 0;if(p)n=p.owner,u=p.mint;else if(l){let e=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=e.value?.data;n=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",o=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&c){let e=await t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;u=n?.parsed?.info?.mint??""}let m=await Te({privyClient:a,chain:t.chain,mint:u}),g=m?.symbol??"";return o??=m?.decimals??9,{type:"spl-transfer",program:r,fromAta:c,fromAccount:d,toAta:l,toAccount:n,value:Ce(e.data,1),token:{symbol:g,decimals:o,address:u}}}if(9===o){let[e,n,t]=s;return{type:"spl-close-account",program:r,source:e,destination:n,owner:t}}if(17===o)return{type:"spl-sync-native",program:r};throw Error(`Token program instruction type ${o} not supported`)}async function Ee(e,n){let t=e.data?.[0],a=e.accountIndices?.map((e=>n[e]))??[];if(0===t){let[,n]=a;return{type:"create-account",program:Ae,account:n?.toString(),value:Ce(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:Ae,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:Ce(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:Ae,account:n,withSeed:!0,value:Ce(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:Ae,fromAccount:n,toAccount:t,value:Ce(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function Pe(e,n,t,a,i){let r=e.accountIndices?.map((e=>n[e]))??[],o=e.data?.[0];if(143===o){let n=r[10],o=r[11];return{type:"raydium-swap-base-input",program:i,mintIn:n,mintOut:o,tokenIn:n?await Te({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await Te({privyClient:a,chain:t.chain,mint:o}):void 0,amountIn:Ce(e.data,8),minimumAmountOut:Ce(e.data,16)}}if(55===o){let n=r[10],o=r[11];return{type:"raydium-swap-base-output",program:i,mintIn:n,mintOut:o,tokenIn:n?await Te({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await Te({privyClient:a,chain:t.chain,mint:o}):void 0,maxAmountIn:Ce(e.data,8),amountOut:Ce(e.data,16)}}throw Error(`Raydium swap program instruction type ${o} not supported`)}async function _e(e,n,t,a,i){let r=e.data?.[0],o=e.accountIndices?.map((e=>n[e]))??[];if([208,51,239,151,123,43,237,92].includes(r)){let n=o[5],r=o[6];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Te({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Te({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Ce(e.data,e.data.length-1-2-8-8),quotedInAmount:Ce(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(r)){let n=o[7],r=o[8];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Te({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Te({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Ce(e.data,e.data.length-1-2-8-8),quotedInAmount:Ce(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(r)){let n=o[7],r=o[8];return{type:"jupiter-swap-shared-accounts-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Te({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Te({privyClient:a,chain:t.chain,mint:r}):void 0,inAmount:Ce(e.data,e.data.length-1-2-8-8),quotedOutAmount:Ce(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(r)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(r)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(r)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(r)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(r)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(r)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(r)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(r)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(r)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(r)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(r)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${r} not supported`)}function Me(){let t=o(),a=n((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,t.solanaRpcs[e]?function({rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a}){let i=function({rpc:e,rpcSubscriptions:n}){return async t=>new Promise((async(a,i)=>{try{let r=await e.sendTransaction(d(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send(),o=new AbortController,s=await n.signatureNotifications(r,{commitment:"confirmed"}).subscribe({abortSignal:o.signal}),c=await Promise.race([new Promise((e=>{setTimeout((()=>{o.abort(),e(Error("Transaction confirmation timed out"))}),1e4)})),new Promise((async e=>{for await(let n of s){if(o.abort(),n.value.err)return e(Error("Transaction confirmation failed"));e({signature:new Uint8Array(ie().encode(r))})}}))]);return c instanceof Error?i(c):a(c)}catch(e){i(e)}}))}({rpc:e,rpcSubscriptions:n});return{rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a,sendAndConfirmTransaction:i}}({chain:e,rpc:t.solanaRpcs[e].rpc,rpcSubscriptions:t.solanaRpcs[e].rpcSubscriptions,blockExplorerUrl:t.solanaRpcs[e].blockExplorerUrl??`https://explorer.solana.com?cluster=${e.replace("solana:","")}`}):null])))),[t.solanaRpcs]);return e((e=>{if(!a[e])throw Error(`No RPC configuration found for chain ${e}`);return a[e]}),[a])}const We={component:()=>{let{data:e,onUserCloseViaDialogOrKeybindRef:i,setModalData:r,navigate:s}=m(),{client:c,closePrivyModal:l,walletProxy:d,showFiatPrices:u}=F(),p=o(),{user:I}=U(),T=Me()(e?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[S,k]=t(e?.standardSignAndSendTransaction?.transaction),[C,O]=t(),[E,P]=t(),[_,M]=t({value:0n,isLoading:!1}),[W,x]=t(!1),[B,L]=t({}),[N,R]=t(),J=e?.standardSignAndSendTransaction?.account,V=!!e?.standardSignAndSendTransaction?.signOnly,G=J?.imported?j(I):D(I),{solPrice:H,isSolPriceLoading:K}=g({enabled:u}),te=n((()=>{if(!C)return;let e=C.spender,n=h(C.fee),t=h(_.value,3,!0),a=C.instructions.filter((e=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(e.type))),i=a.at(0);if(!i||a.length>1)return{fee:n,spender:e,balance:t};if("sol-transfer"===i.type)return{fee:n,spender:e,balance:t,total:h(i.value)};if("spl-transfer"===i.type)return{fee:n,spender:e,balance:t,total:`${q({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${q({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${q({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${q({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${q({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${q({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${q({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${q({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${q({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:n,spender:e,balance:t}}),[C,J?.address,_]),ae=n((()=>{let e;if(!C||!u||!H||K)return;function n(...e){return v(e.reduce(((e,n)=>e+n),0n),H??0)}J?.address===C.spender&&(e=n(C.fee));let t=n(_.value),a=C.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||C.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,J?.address===C.spender?C.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${q({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[C,u,H,K,J?.address,_]);if(a((()=>{!async function(){if(S&&c)try{P(void 0);let e=await ke({tx:S,solanaClient:T,privyClient:c,checkFunds:!V});O(e)}catch(e){console.error("Failed to prepare transaction",e),P(e)}}()}),[S,T,c,V]),a((()=>{(async function(){if(!J)return;M({value:_.value,isLoading:!0});let{value:e}=await T.rpc.getBalance(J.address,{commitment:"confirmed"}).send();M({value:e??0n,isLoading:!1})})().catch(console.error)}),[C]),!S||!e?.standardSignAndSendTransaction||!J){let n=Error("Invalid transaction request");/*#__PURE__*/return $(f,{error:n,allowlistConfig:p.allowlistConfig,onRetry:()=>{e?.standardSignAndSendTransaction?.onFailure(n),l({shouldCallAuthOnSuccess:!1})}})}let ie=()=>{if(!W)return B.signature||B.signedTransaction?e?.standardSignAndSendTransaction?.onSuccess({signature:B.signature,signedTransaction:B.signedTransaction}):e?.standardSignAndSendTransaction?.onFailure(N??E??Error("User exited the modal before submitting the transaction")),l({shouldCallAuthOnSuccess:!1})};i.current=ie;let re=e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/$("img",{src:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,oe=!!(e.funding&&e.funding.supportedOptions.length>0),se=!C?.hasFunds&&oe;if(B.signature||B.signedTransaction){let n=C?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===n?.length?n?.at(0):void 0;/*#__PURE__*/return $(w,{fees:B.fees??0n,onClose:ie,transactionInfo:e.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:H,receiptHeader:e.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:e.standardSignAndSendTransaction?.uiOptions.successDescription,rpcEndpoint:T.blockExplorerUrl,signOnly:V,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:te?.total}})}return N?/*#__PURE__*/$(y,{transactionError:N,rpcEndpoint:T.blockExplorerUrl,onClose:ie,network:"solana",onRetry:async()=>{R(void 0);let{value:e}=await T.rpc.getLatestBlockhash().send();k(function(e,n){return Q(Y().decode(ye(e)),(e=>Z(e)),(e=>z(n,e)),(e=>X(e)),(e=>new Uint8Array(ee().encode(e))))}(S,e))}}):/*#__PURE__*/$(A,{img:re,title:e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:e.standardSignAndSendTransaction?.uiOptions?.description||`${p.name} wants your permission to approve the following transaction.`,cta:se?"Add funds":e.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:C?.instructions??[],network:"solana:mainnet"==T.chain?"Solana":T.chain.replace("solana:",""),blockExplorerUrl:T.blockExplorerUrl,total:u?ae?.total:te?.total,fee:u?ae?.fee:te?.fee,balance:u?ae?.balance:te?.balance,swap:te?.swap,transactingWalletAddress:J.address,disabled:!C?.hasFunds&&!oe,isSubmitting:W,isPreparing:!C||_.isLoading,isTokenPriceLoading:u&&K,isMissingFunds:!C?.hasFunds,submitError:N??void 0,parseError:E,onClick:se?async()=>{if(J){if(!oe)throw Error("Funding wallet is not enabled");r({...e,funding:{...e.funding,methodScreen:b}}),s(b)}}:async()=>{try{if(x(!0),W||!J||!d||!I||!G)return;let n=await e.standardSignAndSendTransaction.onConfirm(S);if("signature"in n){let e=await async function({solanaClient:e,signature:n}){let t=ne().decode(n),a=await e.rpc.getTransaction(t,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:T,signature:n.signature});return void L({...n,fees:e?.fee})}L(n)}catch(e){console.warn({transaction:S,error:e}),R(e)}finally{x(!1)}},onClose:ie})}};function Fe(e,n,t){let a=structuredClone(K().decode(e)),i=re(n);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(ee().encode(a))}function xe(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:r,client:o}=F(),{user:s}=I(),{setModalData:c}=m(),{signWithUserSigner:l}=B();return{signMessage:({message:u,address:p,options:m})=>new Promise((async(g,h)=>{let f=L(s,p);if("privy"!==f?.walletClientType)return void h(new J("Wallet is not a Privy wallet",void 0,V.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:w,entropyIdVerifier:y}=T(s,f),A=N(f),v=d(u).toString("base64");if(v.length<1)return void h(new J("Message must be a non-empty string",void 0,V.INVALID_MESSAGE));let b=async()=>{let e;if(!s)throw Error("User must be authenticated before signing with a Privy wallet");let i=await o.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let c=n??await t(15e3);if(!c)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:f.address}))throw Error("Unable to connect to wallet");if(A){let n=await G(r,l,{chain_type:"solana",method:"signMessage",params:{message:v,encoding:"base64"},wallet_id:f.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await c.rpc({accessToken:i,entropyId:w,entropyIdVerifier:y,chainType:"solana",hdWalletIndex:f.walletIndex??0,requesterAppId:m?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:v}}});e=n.data.signature}return e};if(e({showWalletUIs:m?.uiOptions?.showWalletUIs}))try{let e=await b(),n=new Uint8Array(d(e,"base64"));g({signature:n})}catch(e){h(e)}else c({signMessage:{method:"solana_signMessage",data:v,confirmAndSign:b,onSuccess:e=>{g({signature:new Uint8Array(d(e,"base64"))})},onFailure:e=>{h(e)},uiOptions:m?.uiOptions??{}},connectWallet:{recoveryMethod:f.recoveryMethod,connectingWalletAddress:f.address,entropyId:w,entropyIdVerifier:y,isUnifiedWallet:A,onCompleteNavigateTo:S,onFailure:e=>{h(new J("Failed to connect to wallet",e,V.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(k)}))}}function Ue(){let{isHeadlessSigning:e,openModal:n}=F(),{setModalData:t}=m(),{signMessage:a}=xe(),{user:i}=I();return{signTransaction:async({transaction:r,options:o,chain:s="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await a({message:ye(e),address:c,options:{...o,uiOptions:{...o?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Fe(e,c,n)}}return e({showWalletUIs:o?.uiOptions?.showWalletUIs})?l(r):new Promise((async(e,a)=>{let d=L(i,c);if("privy"!==d?.walletClientType)return void a(new J("Wallet is not a Privy wallet",void 0,V.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=T(i,d),m=N(d);function g(e){return n=>{a(n instanceof J?n:new J("Failed to connect to wallet",n,e))}}let h={account:d,transaction:r,chain:s,signOnly:!0,uiOptions:o?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:g(V.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:We,onFailure:g(V.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:h}),n(k)}))}}}const je=["solana:mainnet","solana:devnet","solana:testnet"];function De(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Be=0,Le="__private_"+Be+++"__implementation";function Ne(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Re=0;function Je(e){return"__private_"+Re+++"_"+e}var Ve=/*#__PURE__*/Je("_address"),$e=/*#__PURE__*/Je("_publicKey"),qe=/*#__PURE__*/Je("_chains"),Ge=/*#__PURE__*/Je("_features"),He=/*#__PURE__*/Je("_label"),Ke=/*#__PURE__*/Je("_icon");class Qe{get address(){return Ne(this,Ve)[Ve]}get publicKey(){return Ne(this,$e)[$e].slice()}get chains(){return Ne(this,qe)[qe].slice()}get features(){return Ne(this,Ge)[Ge].slice()}get label(){return Ne(this,He)[He]}get icon(){return Ne(this,Ke)[Ke]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,$e,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,Ge,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),Object.defineProperty(this,Ke,{writable:!0,value:void 0}),Ne(this,Ve)[Ve]=e,Ne(this,$e)[$e]=n,Ne(this,qe)[qe]=je,Ne(this,He)[He]=t,Ne(this,Ke)[Ke]=a,Ne(this,Ge)[Ge]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===Qe&&Object.freeze(this)}}function Ye(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Ze=0;function ze(e){return"__private_"+Ze+++"_"+e}var Xe=/*#__PURE__*/ze("_listeners"),en=/*#__PURE__*/ze("_version"),nn=/*#__PURE__*/ze("_name"),tn=/*#__PURE__*/ze("_icon"),an=/*#__PURE__*/ze("_injection"),rn=/*#__PURE__*/ze("_isPrivyWallet"),on=/*#__PURE__*/ze("_accounts"),sn=/*#__PURE__*/ze("_on"),cn=/*#__PURE__*/ze("_emit"),ln=/*#__PURE__*/ze("_off"),dn=/*#__PURE__*/ze("_connected"),un=/*#__PURE__*/ze("_connect"),pn=/*#__PURE__*/ze("_disconnect"),mn=/*#__PURE__*/ze("_signMessage"),gn=/*#__PURE__*/ze("_signAndSendTransaction"),hn=/*#__PURE__*/ze("_signTransaction");function fn(e,...n){Ye(this,Xe)[Xe][e]?.forEach((e=>e.apply(null,n)))}function wn(e,n){Ye(this,Xe)[Xe][e]=Ye(this,Xe)[Xe][e]?.filter((e=>n!==e))}let yn=new class extends oe{setImplementation(e){De(this,Le)[Le]=e}async signMessage(e){return De(this,Le)[Le].signMessage(e)}async signAndSendTransaction(e){return De(this,Le)[Le].signAndSendTransaction(e)}async signTransaction(e){return De(this,Le)[Le].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,Le,{writable:!0,value:void 0}),De(this,Le)[Le]=e}}({signTransaction:x("signTransaction was not injected"),signAndSendTransaction:x("signAndSendTransaction was not injected"),signMessage:x("signMessage was not injected")}),An=new class{get version(){return Ye(this,en)[en]}get name(){return Ye(this,nn)[nn]}get icon(){return Ye(this,tn)[tn]}get chains(){return je.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:Ye(this,un)[un]},"standard:disconnect":{version:"1.0.0",disconnect:Ye(this,pn)[pn]},"standard:events":{version:"1.0.0",on:Ye(this,sn)[sn]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:Ye(this,gn)[gn]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:Ye(this,hn)[hn]},"solana:signMessage":{version:"1.0.0",signMessage:Ye(this,mn)[mn]},"privy:":{privy:{signMessage:Ye(this,an)[an].signMessage,signTransaction:Ye(this,an)[an].signTransaction,signAndSendTransaction:Ye(this,an)[an].signAndSendTransaction}}}}get accounts(){return Ye(this,on)[on].slice()}get isPrivyWallet(){return Ye(this,rn)[rn]}constructor({name:e,icon:n,version:t,injection:a,wallets:i}){Object.defineProperty(this,cn,{value:fn}),Object.defineProperty(this,ln,{value:wn}),Object.defineProperty(this,Xe,{writable:!0,value:void 0}),Object.defineProperty(this,en,{writable:!0,value:void 0}),Object.defineProperty(this,nn,{writable:!0,value:void 0}),Object.defineProperty(this,tn,{writable:!0,value:void 0}),Object.defineProperty(this,an,{writable:!0,value:void 0}),Object.defineProperty(this,rn,{writable:!0,value:void 0}),Object.defineProperty(this,on,{writable:!0,value:void 0}),Object.defineProperty(this,sn,{writable:!0,value:void 0}),Object.defineProperty(this,dn,{writable:!0,value:void 0}),Object.defineProperty(this,un,{writable:!0,value:void 0}),Object.defineProperty(this,pn,{writable:!0,value:void 0}),Object.defineProperty(this,mn,{writable:!0,value:void 0}),Object.defineProperty(this,gn,{writable:!0,value:void 0}),Object.defineProperty(this,hn,{writable:!0,value:void 0}),Ye(this,Xe)[Xe]={},Ye(this,sn)[sn]=(e,n)=>(Ye(this,Xe)[Xe][e]?.push(n)||(Ye(this,Xe)[Xe][e]=[n]),()=>Ye(this,ln)[ln](e,n)),Ye(this,dn)[dn]=e=>{null!=e&&(Ye(this,on)[on]=e.map((({address:e})=>new Qe({address:e,publicKey:se.decode(e)})))),Ye(this,cn)[cn]("change",{accounts:this.accounts})},Ye(this,un)[un]=async()=>(Ye(this,cn)[cn]("change",{accounts:this.accounts}),{accounts:this.accounts}),Ye(this,pn)[pn]=async()=>{Ye(this,cn)[cn]("change",{accounts:this.accounts})},Ye(this,mn)[mn]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await Ye(this,an)[an].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},Ye(this,gn)[gn]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signature:e}=await Ye(this,an)[an].signAndSendTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signature:e})}return n},Ye(this,hn)[hn]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signedTransaction:e}=await Ye(this,an)[an].signTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signedTransaction:e})}return n},Ye(this,nn)[nn]=e,Ye(this,tn)[tn]=n,Ye(this,en)[en]=t,Ye(this,an)[an]=a,Ye(this,on)[on]=[],Ye(this,rn)[rn]=!0,a.on("accountChanged",Ye(this,dn)[dn],this),Ye(this,dn)[dn](i)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:yn});function vn(){let{ready:e}=C(),{user:t}=I(),{signMessage:i}=xe(),{signTransaction:r}=Ue(),{signAndSendTransaction:o}=function(){let{isHeadlessSigning:e,openModal:n}=F(),{setModalData:t}=m(),{signTransaction:a}=Ue(),i=Me(),{user:r}=I();return{signAndSendTransaction:async({transaction:o,address:s,chain:c="solana:mainnet",options:l})=>{async function d(e){let{signedTransaction:n}=await a({transaction:e,address:s,chain:c,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await i(c).sendAndConfirmTransaction(n);return{signature:t}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?d(o):new Promise((async(e,a)=>{let i=L(r,s);if("privy"!==i?.walletClientType)return void a(new J("Wallet is not a Privy wallet",void 0,V.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=T(r,i),m=N(i);function g(e){return n=>{a(n instanceof J?n:new J("Failed to connect to wallet",n,e))}}let h={account:i,transaction:o,chain:c,signOnly:!1,uiOptions:l?.uiOptions||{},onConfirm:d,onSuccess:e,onFailure:g(V.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:i.recoveryMethod,connectingWalletAddress:i.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:We,onFailure:g(V.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:h}),n(k)}))}}}(),s=n((()=>{let e=[...R(t).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=j(t);return n?[...e,n]:e}),[t]),c=n((()=>({signMessage:async({message:e,address:n,options:t})=>await i({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await r({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:i}=await o({transaction:e,address:n,chain:t,options:a});return{signature:i}}})),[i,r,o]);return a((()=>{yn?.setImplementation(c)}),[c]),a((()=>{var n;!e||(n=An.accounts).length===s.length&&n.every(((e,n)=>e.address===s[n]?.address))||yn?.emit("accountChanged",s)}),[e,s]),{ready:e,wallet:An}}function bn(){let{client:e}=F(),{ready:n,wallet:i}=vn(),[r,o]=t([]),[s,c]=t([]);return a((()=>{let e=[i,...r.filter((e=>"solana"===e.chainType&&!!e.wallet)).map((e=>e.wallet))];c(e);let n=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{n.forEach((e=>e?.()))}}),[r]),a((()=>{if(!n)return;o(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let t=()=>{o(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",t),()=>{e.connectors?.off("connectorInitialized",t)}}),[n,e.connectors]),{ready:n,wallets:s}}var In=()=>O(ce),Tn={id:E,prepareSiwsTransactionWithMemo:({address:e,nonce:n})=>{let t=P({address:e,nonce:n}),a=new le,i=new de({keys:[{pubkey:new ue(e),isSigner:!0,isWritable:!1}],programId:new ue("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(t,"utf-8")});return a.add(i),a.feePayer=new ue(e),a.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",a.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>le.from(d(e,"base64"))},Sn=()=>O(Tn);function kn(e){let n=o(),{user:t}=I(),{setModalData:a}=m(),{client:i,isHeadlessSigning:s,openModal:c,walletProxy:l,recoverEmbeddedWallet:d,privy:u,solanaWallets:p}=F(),g=r(),{signWithUserSigner:h}=B();return _("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:r,uiOptions:o,transactionOptions:m,address:f})=>{let w=f?p.find((e=>e.address===f&&"privy"!==e.walletClientType)):void 0,{signedTransaction:y}=await M({privy:u,appConfig:n,getAccessToken:()=>i.getAccessToken(),isHeadlessSigning:s,emitPrivyEvent:g,setModalData:a,openModal:c,walletProxy:l,user:t,recoverEmbeddedWallet:d,signWithUserSigner:h,connectedExternalWallet:w},{transaction:e,connection:r,transactionOptions:m,uiOptions:o,address:f,signOnly:!0});return y}}}function Cn(){let{ready:e,wallets:t}=bn();return{ready:e,wallets:n((()=>t.flatMap((e=>e.accounts.map((n=>new H({wallet:e,account:n})))))),[t])}}function On(){let{create:e}=W();return{createWallet:async n=>{n&&"target"in n&&n&&(n=void 0);let{account:t}=await e({chainType:"solana",options:n});return{wallet:t}}}}function En(){let{exportSolanaWallet:e}=F();return{exportWallet:e}}function Pn(){return{signMessage:async({message:e,wallet:n,options:t})=>await n.signMessage({message:e,options:t})}}function _n(){return{signTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:a})=>await n.signTransaction({transaction:e,chain:t,options:a})}}function Mn(){return{signAndSendTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:a})=>await n.signAndSendTransaction({transaction:e,chain:t,options:a})}}export{i as SolanaAdapterConnector,he as toSolanaWalletConnectors,Cn as useConnectedStandardWallets,On as useCreateWallet,En as useExportWallet,we as useImportWallet,vn as usePrivyStandardWallet,kn as useSignTransaction,In as useSolanaFundingPlugin,Sn as useSolanaLedgerPlugin,bn as useSolanaStandardWallets,Mn as useStandardSignAndSendTransaction,Pn as useStandardSignMessage,_n as useStandardSignTransaction};