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

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.
@@ -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-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
+ 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-C-OGn-Rn.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-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
+ 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-C-OGn-Rn.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-Dyw1Yps1.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{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};
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-C-OGn-Rn.mjs";export{b6 as useSendTransaction,b7 as useSignMessage,a8 as useSolanaWallets}from"./privy-provider-C-OGn-Rn.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-Co5a-0jh.mjs";export{u as useFundWallet}from"./useFundWallet-Co5a-0jh.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};