@privy-io/react-auth 2.24.0 → 2.25.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.
Files changed (40) hide show
  1. package/dist/cjs/abstract-smart-wallets.js +1 -1
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/privy-provider-zm0SWrLy.js +34 -0
  4. package/dist/cjs/{smart-wallets-TcsJ7a-J.js → smart-wallets-DO-QDpuC.js} +1 -1
  5. package/dist/cjs/smart-wallets.js +1 -1
  6. package/dist/cjs/solana.js +2 -1
  7. package/dist/cjs/ui.js +1 -1
  8. package/dist/cjs/{useActiveWallet-CGbGRerk.js → useActiveWallet-DDZXLk7d.js} +1 -1
  9. package/dist/cjs/useFundWallet-C9bw6h3P.js +1 -0
  10. package/dist/dts/extended-chains.d.mts +1 -1
  11. package/dist/dts/extended-chains.d.ts +1 -1
  12. package/dist/dts/farcaster.d.mts +1 -1
  13. package/dist/dts/farcaster.d.ts +1 -1
  14. package/dist/dts/index.d.mts +27 -5
  15. package/dist/dts/index.d.ts +27 -5
  16. package/dist/dts/smart-wallets.d.mts +1 -1
  17. package/dist/dts/smart-wallets.d.ts +1 -1
  18. package/dist/dts/solana.d.mts +12 -5
  19. package/dist/dts/solana.d.ts +12 -5
  20. package/dist/dts/{types-zpHmPFW8.d.mts → types-B_DvyjIb.d.mts} +34 -3
  21. package/dist/dts/{types-zpHmPFW8.d.ts → types-B_DvyjIb.d.ts} +34 -3
  22. package/dist/dts/ui.d.mts +1 -1
  23. package/dist/dts/ui.d.ts +1 -1
  24. package/dist/dts/{useSolanaWallets-Bnyf2wo3.d.mts → useSolanaWallets-EdHHRSMB.d.mts} +1 -1
  25. package/dist/dts/{useSolanaWallets-Bnyf2wo3.d.ts → useSolanaWallets-EdHHRSMB.d.ts} +1 -1
  26. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  27. package/dist/esm/index.mjs +1 -1
  28. package/dist/esm/privy-provider-BG8GtKO6.mjs +31 -0
  29. package/dist/esm/{smart-wallets-Dyw1Yps1.mjs → smart-wallets-CYfnJBkN.mjs} +1 -1
  30. package/dist/esm/smart-wallets.mjs +1 -1
  31. package/dist/esm/solana.mjs +1 -1
  32. package/dist/esm/ui.mjs +1 -1
  33. package/dist/esm/useActiveWallet-BGo6de6R.mjs +1 -0
  34. package/dist/esm/useFundWallet-Dx-BELh-.mjs +1 -0
  35. package/package.json +16 -7
  36. package/dist/cjs/privy-provider-Cc-fBpNe.js +0 -34
  37. package/dist/cjs/useFundWallet-aHyY2NF8.js +0 -1
  38. package/dist/esm/privy-provider-C-OGn-Rn.mjs +0 -31
  39. package/dist/esm/useActiveWallet-Bj6Y6Ioo.mjs +0 -1
  40. package/dist/esm/useFundWallet-Co5a-0jh.mjs +0 -1
@@ -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-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
+ import{useRef as e,useState as t,useCallback as r}from"react";import{http as n,createPublicClient as a}from"viem";import{u as i,g as s,c as o}from"./use-sign-with-user-signer-CpL9I6iB.mjs";import{H as l,w as c,i as d,F as u,a as m,bA as p,br as y,bq as g}from"./privy-provider-BG8GtKO6.mjs";import{P as h}from"./paths-DCwuPDUk.mjs";import{u as f}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:n})=>{switch(t){case A:return x({client:n,entryPoint:N,owners:[e],version:"1.4.1"});case V:return F({client:n,version:"0.3.1",entryPoint:N,useMetaFactory:"optional",owners:[e]});case S:return v({client:n,owners:[e],entryPoint:D});case O:return W({client:n,entryPoint:D,owner:e,version:"1.1.0"});case b:return async function({client:e,owner:t,version:r}){let[n]=await t.request({method:"eth_accounts"});if(!n)throw Error("Unable to request embedded owner for eth_accounts");return await C({client:e,owners:[{type:"local",source:"privy",address:n,sign:async({hash:e})=>await t.request({method:"secp256k1_sign",params:[e]})}],version:r})}({client:n,owner:e,version:r??"1"});case M:return I({client:n,entryPoint:N,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}};const B=({calls:e,chain:t,maxPriorityFeePerGas:r,maxFeePerGas:n,nonce:a})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:t.id,nonce:a,maxFeePerGas:n,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 h(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let m=s.smartWallet?s.smartWallet.smartWalletType:o.smartWalletType,p=s.smartWallet?s.smartWallet.smartWalletVersion:o.smartWalletVersion,y=l(e,c,d),g=a({chain:e,transport:n(y)}),f=t??u.paymasterContext,w=await(async({owner:e,smartWalletType:t,smartWalletVersion:r,chain:a,publicClient:i,bundlerUrl:s,paymasterUrl:o,paymasterContext:l})=>{let c=await _({owner:e,smartWalletType:t,publicClient:i,smartWalletVersion:r}),d=G({transport:n(s),entryPoint:c.entryPoint}),u=o?G({transport:n(o),entryPoint:c.entryPoint}):void 0;return P({account:c,chain:a,paymaster:u,paymasterContext:l,bundlerTransport:n(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await d.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await d.request({method:"zd_getUserOperationGasPrice",params:[]})).fast;if(["g.alchemy.com"].some((e=>s.includes(e)))){let[e,t]=await Promise.all([i.getBlock({blockTag:"latest"}),d.request({method:"rundler_maxPriorityFeePerGas",params:[]})]);if(!e.baseFeePerGas||!t)throw Error("Failed to get block or maxPriorityFeePerGasEstimate");return{maxFeePerGas:150n*e.baseFeePerGas/100n+BigInt(t.toString()),maxPriorityFeePerGas:BigInt(t.toString())}}{let e=await i.estimateFeesPerGas(),t=s.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*t/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*t/100n}}}}})})({owner:i,smartWalletType:m,smartWalletVersion:p,chain:e,publicClient:g,paymasterContext:f,...u});if(!w)throw new h(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return w},q=({clientConfig:n,smartWalletsConfig:a})=>{let{hideWalletUIs:l,openPrivyModal:P,appId:I,isHeadlessSigning:W}=f(),v=c(),{setModalData:F}=d(),{user:x}=i(),{chains:G}=c(),{chainId:C,clients:T,setChainId:U,chainIdState:M}=(()=>{let r=e(),[n,a]=t();return{clients:e({}),setChainId:e=>{r.current=e,a(e)},chainId:r,chainIdState:n}})(),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:n?.paymasterContext,smartWalletsConfig:a,rpcConfig:v.rpcConfig,privyAppId:I});t&&(T.current[e]=t)}U(e)}),[G,n,O,x,a]);return{wrapSmartAccountClient:e=>{T.current[e.chain.id]=e,M||U(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let r=T.current[C.current];if(!r)throw new h(`Smart wallet client for chain (eip155:${C.current}) not found`);if(delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs}))return l.current=!0,await r.sendTransaction(e).finally((()=>l.current=!1));let n=[];"calls"in e&&void 0!==e.calls?n=[...e.calls]:"to"in e&&(n=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let a=async()=>{let{paymasterAndData:t,paymasterData:a,maxFeePerGas:i,maxPriorityFeePerGas:s}=await r.prepareUserOperation({calls:n,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(i)&&0===Number(s)||Number(t??a??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:n,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:a,signOnly:!1,onConfirm:()=>r.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:s,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signMessage:async(e,t)=>{let r=T.current[C.current];if(!r)throw new h(`Smart wallet client for chain (eip155:${C.current}) not found`);return W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signMessage(e).finally((()=>l.current=!1))):new Promise((async(n,a)=>{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=>n(e),onFailure:a,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signTypedData:async(e,t)=>{let r=T.current[C.current];if(!r)throw new h(`Smart wallet client for chain (eip155:${C.current}) not found`);return delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signTypedData(e).finally((()=>l.current=!1))):new Promise((async(n,a)=>{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=>n(e),onFailure:a,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},getChainId:D,chain:b,switchChain:N}}}},j=()=>{let{hideWalletUIs:e,openPrivyModal:t,isHeadlessSigning:r}=f(),{setModalData:n}=d(),{user:a}=i(),l=s(a),c=!!l&&o(l);return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{if(r({showWalletUIs:o?.uiOptions?.showWalletUIs}))return e.current=!0,await i.sendTransaction(s).finally((()=>e.current=!1));let d=[];"calls"in s&&void 0!==s.calls?d=[...s.calls]:"to"in s&&(d=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let u=async()=>{if(!i.paymaster)return!1;let{paymasterData:e,paymasterAndData:t}=await i.prepareUserOperation({calls:d,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(t??e??0)>0};return new Promise((async(r,g)=>{e.current=!0;let{entropyId:h,entropyIdVerifier:f}=m(a);n({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:h,entropyIdVerifier:f,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:h,entropyIdVerifier:f,getIsSponsored:u,signOnly:!1,onConfirm:()=>i.sendTransaction(s),onSuccess:e=>r(e.hash),onFailure:g,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{let{entropyId:u,entropyIdVerifier:p}=m(a);e.current=!0,n({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(a);n({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-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
+ 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{w as a,F as l}from"./privy-provider-BG8GtKO6.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-CYfnJBkN.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:F}=p(),b=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:b,signer:await(S?.getEthereumProvider()),user:y,smartWalletsConfig:u}))})()}),[!!u?.enabled,!!y?.smartWallet,!!S,!!b]);/*#__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:b,signer:await(S?.getEthereumProvider()),user:y,smartWalletsConfig:u});if(!i)throw new s(`Failed to create smart wallet client for chain id: ${e}`);return F(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-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};
1
+ import{useCallback as e,useMemo as n,useState as t,useEffect as a}from"react";import{aR as i,x as o,w as r,aS as s,aE as c,az as l,aT as d,aU as p,aV as m,aW as g,aX as h,aY as f,i as w,aZ as y,a_ as v,a$ as A,b0 as b,b1 as I,b2 as S,b3 as T,b4 as C,b5 as k,b6 as O,ao as E,b7 as x,b8 as F,P,b9 as W,ba as _,bb as U,bc as M,bd as D,be as j,bf as L,bg as B,bh as N,bi as $,bj as R,bk as V,bl as J,bm as q,bn as K,bo as H,bp as Q,h as G,a as Y,bq as z,br as Z,bs as X,F as ee,bt as ne,bu as te,p as ae,u as ie,bv as oe,y as re}from"./privy-provider-BG8GtKO6.mjs";export{bw as useSendTransaction,bx as useSignMessage,ab as useSolanaWallets}from"./privy-provider-BG8GtKO6.mjs";import{u as se,n as ce}from"./internal-context-qdNgTV5f.mjs";import{u as le,d as de,e as ue,a as pe,b as me,c as ge,f as he}from"./use-sign-with-user-signer-CpL9I6iB.mjs";import{P as fe,a as we}from"./paths-DCwuPDUk.mjs";import{jsx as ye,jsxs as ve,Fragment as Ae}from"react/jsx-runtime";import be from"@heroicons/react/24/outline/CheckCircleIcon";import{ConnectedStandardSolanaWallet as Ie,formatWalletAddress as Se,formatTokenAmount as Te,rpc as Ce}from"@privy-io/js-sdk-core";import{getTransferSolInstruction as ke}from"@solana-program/system";import{pipe as Oe,createTransactionMessage as Ee,setTransactionMessageFeePayerSigner as xe,setTransactionMessageLifetimeUsingBlockhash as Fe,appendTransactionMessageInstruction as Pe,compileTransaction as We,getTransactionEncoder as _e,getTransactionDecoder as Ue,getBase64Decoder as Me,getBase58Decoder as De,getBase58Encoder as je,getCompiledTransactionMessageDecoder as Le,decompileTransactionMessage as Be,fetchAddressesForLookupTables as Ne,address as $e}from"@solana/kit";import{findAssociatedTokenPda as Re,getCreateAssociatedTokenIdempotentInstruction as Ve,getTransferInstruction as Je}from"@solana-program/token";import qe from"eventemitter3";import{base58 as Ke}from"@scure/base";import{t as He}from"./useFundWallet-Dx-BELh-.mjs";export{u as useFundWallet}from"./useFundWallet-Dx-BELh-.mjs";import{Transaction as Qe,TransactionInstruction as Ge,PublicKey as Ye}from"@solana/web3.js";import{isWalletAdapterCompatibleStandardWallet as ze}from"@solana/wallet-adapter-base";import{StandardWalletAdapter as Ze}from"@solana/wallet-standard-wallet-adapter-base";import{getWallets as Xe}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/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 en=e=>{let n,{get:t,on:a}=Xe(),o=e?.shouldAutoConnect??!0,r=new Map,s=[];function c(...e){nn(e).forEach((e=>!r.has(e.wallet)&&r.set(e.wallet,e))),s=Array.from(r.values()).map((e=>new i(e,o))),n?.(s)}function l(...e){Array.from(r.keys()).forEach((n=>!e.includes(n)&&r.delete(n))),s=Array.from(r.values()).map((e=>new i(e,o))),n?.(s)}let d=[a("register",c),a("unregister",l)];return nn(t()).forEach((e=>!r.has(e.wallet)&&r.set(e.wallet,e))),s=Array.from(r.values()).map((e=>new i(e,o))),{_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 nn=e=>e.filter((e=>ze(e)&&!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet))).map((e=>new Ze({wallet:e})));const tn=()=>{let{user:n}=le(),{client:t,refreshSessionAndUser:a,initializeWalletProxy:i}=se(),c=o(),l=r();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 an(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}function on({rows:e}){/*#__PURE__*/return ye(c,{children:e.filter((e=>!!e)).map(((e,n)=>null!=e.value||e.isLoading?/*#__PURE__*/ve(l,{children:[/*#__PURE__*/ye(d,{children:e.label}),/*#__PURE__*/ye(p,{$isLoading:e.isLoading,children:e.value})]},n):null))})}function rn(e){return new Uint8Array(Ue().decode(e).messageBytes)}async function sn({solanaClient:e,tx:n}){let t=Me().decode(rn(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}function cn(e){switch(e){case"solana:mainnet":return"Solana";case"solana:devnet":return"Devnet";case"solana:testnet":return"Testnet"}}function ln(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function dn(e){return+un.format(parseFloat(e.toString())/1e9)}let un=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function pn({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:a}=await e.rpc.simulateTransaction(Me().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 pn({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}}function mn(){let{ready:e,wallets:t}=gt();return{ready:e,wallets:n((()=>t.flatMap((e=>e.accounts.map((n=>new Ie({wallet:e,account:n})))))),[t])}}async function gn({rpcSubscriptions:e,signature:n,timeout:t}){let a=new AbortController,i=await e.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),o=await Promise.race([new Promise((e=>{setTimeout((()=>{a.abort(),e(Error("Transaction confirmation timed out"))}),t)})),new Promise((async e=>{for await(let n of i){if(a.abort(),n.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(o instanceof Error)throw o}function hn(){let t=r(),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 i=await e.sendTransaction(f(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await gn({rpcSubscriptions:n,signature:i,timeout:1e4}),a({signature:new Uint8Array(je().encode(i))})}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])}async function fn({tx:e,solanaClient:n,amount:t,asset:a,tokenPrice:i}){if(!e)return null;if("SOL"===a&&i){let a=ln(t),o=A(a,i),r=await sn({solanaClient:n,tx:e});return{amountInUsd:o,feeInUsd:i?A(r,i):void 0,totalInUsd:A(a+r,i)}}if("USDC"===a&&i){let a="$"+t,o=await sn({solanaClient:n,tx:e}),r=function(e,n){let t=parseFloat(e.toString())/h*n;return t<.01?0:t}(o,i);return{amountInUsd:a,feeInUsd:A(o,i),totalInUsd:"$"+(parseFloat(t)+r).toFixed(2)}}if("SOL"===a){let a=ln(t),i=await sn({solanaClient:n,tx:e});return{amountInSol:t+" SOL",feeInSol:dn(i)+" SOL",totalInSol:dn(a+i)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:dn(await sn({solanaClient:n,tx:e}))+" SOL"}}async function wn({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await pn({solanaClient:a,tx:e});if(!i)throw new fe(`Wallet ${Se(t.address)} does not have enough funds.`,void 0,we.INSUFFICIENT_BALANCE);let o=function(e){return De().decode(e)}((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new fe("Transaction was rejected by the user",e,we.TRANSACTION_FAILURE)}))).signature);return await gn({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}const yn={component:function(){let e=r(),{closePrivyModal:n,createAnalyticsEvent:i}=se(),{data:o,setModalData:s,navigate:c}=w(),{wallets:l}=mn(),[d,u]=t("preparing"),[p,h]=t(),[f,U]=t(),[M,D]=t();if(!o?.solanaFundingData)throw Error("Funding config is missing");if(!o.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:j,asset:L,chain:B,sourceWalletData:N,destinationAddress:$,afterSuccessScreen:R}=o.solanaFundingData,V=l.find((e=>e.address===N.address&&N.walletClientType===y(e.standardWallet.name))),J=hn()(B),{tokenPrice:q,isTokenPriceLoading:K}=v("solana");return a((()=>{if("preparing"!==d||K||!V)return;let e="SOL"===L?ln(j):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(j);U({amount:("SOL"===L&&q?A(e,q):j)??j}),("SOL"===L?async function({solanaClient:e,source:n,destination:t,amountInLamports:a}){let{value:i}=await e.rpc.getLatestBlockhash().send(),o={address:n},r=Oe(Ee({version:0}),(e=>xe(o,e)),(e=>Fe(i,e)),(e=>Pe(ke({amount:a,source:o,destination:t}),e)),(e=>We(e)));return new Uint8Array(_e().encode(r))}({solanaClient:J,source:V.address,destination:$,amountInLamports:e}):async function({solanaClient:e,source:n,destination:t,amountInBaseUnits:a}){let i=function(e){let[n]=Object.entries(m[e]).find((([e,n])=>"USDC"===n.symbol))??[];if(!n)throw Error(`USDC token not found for chain: ${e}`);return n}(e.chain),{value:o}=await e.rpc.getLatestBlockhash().send(),r={address:n},[s]=await Re({owner:n,mint:i,tokenProgram:g}),[c]=await Re({owner:t,mint:i,tokenProgram:g}),[l,d]=await Promise.all([e.rpc.getAccountInfo(s,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),e.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!l?.value)throw Error(`Source token account does not exist for address: ${n}`);let u=Ve({payer:r,ata:c,owner:t,mint:i}),p=Oe(Ee({version:0}),(e=>xe(r,e)),(e=>Fe(o,e)),(e=>d?.value?e:Pe(u,e)),(e=>Pe(Je({source:s,destination:c,authority:r,amount:a}),e)),(e=>We(e)));return new Uint8Array(_e().encode(p))}({solanaClient:J,source:V.address,destination:$,amountInBaseUnits:e})).then(h).catch((e=>{u("error"),D(e)}))}),[d,j,L,B,V,$,K,q]),a((()=>{"preparing"===d&&p&&fn({tx:p,solanaClient:J,amount:j,asset:L,tokenPrice:q}).then((e=>{u("loaded"),U({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??j,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{u("error"),D(e)}))}),[p,j,L,d,q]),a((()=>{"error"===d&&M&&(s({errorModalData:{error:M,previousScreen:yn},solanaFundingData:o.solanaFundingData}),c(b,!1))}),[d,c]),a((()=>{if("success"!==d)return;let e=setTimeout(R?()=>c(R):n,I);return()=>clearTimeout(e)}),[d]),/*#__PURE__*/ve(Ae,"success"===d?{children:[/*#__PURE__*/ye(S,{}),/*#__PURE__*/ye(T,{}),/*#__PURE__*/ve(C,{children:[/*#__PURE__*/ye(be,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/ye(k,{title:"Success!",description:`You’ve successfully added ${j} ${L} to your ${e.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/ye(O,{}),/*#__PURE__*/ye(E,{})]}:"preparing"===d||"loaded"===d||"sending"===d?{children:[/*#__PURE__*/ye(S,{}),/*#__PURE__*/ye(x,{style:{marginTop:"16px"},children:/*#__PURE__*/ye(F,{icon:V?.standardWallet.icon,name:V?.standardWallet.name})}),/*#__PURE__*/ye(k,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===d&&V?`Confirming with ${V.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/ye(on,{rows:[{label:"Source",value:Se(N.address)},{label:"Destination",value:Se($)},{label:"Network",value:cn(B)},{label:"Amount",value:f?.amount,isLoading:"preparing"===d},{label:"Estimated fee",value:f?.fee,isLoading:"preparing"===d},{label:"Total",value:f?.total,isLoading:"preparing"===d}]}),/*#__PURE__*/ye(P,{style:{marginTop:"1rem"},loading:"preparing"===d||"sending"===d,onClick:function(){"loaded"===d&&p&&V&&(u("sending"),wn({solanaClient:J,transaction:p,chain:B,sourceWallet:V}).then((e=>{u("success"),i({eventName:W,payload:{provider:"external",status:"success",txHash:e,address:V.address,value:j,chainType:"solana",clusterName:B,token:L,destinationAddress:$,destinationValue:j,destinationChainType:"solana",destinationClusterName:B,destinationToken:L}})})).catch((e=>{u("error"),D(e)})))},children:"Confirm"}),/*#__PURE__*/ye(E,{})]}:{children:[/*#__PURE__*/ye(S,{}),/*#__PURE__*/ye(_,{}),/*#__PURE__*/ye("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/ye(E,{})]})}};async function vn({privyClient:e,chain:n,mint:t}){let a=m[n];if(!a[t]){let i=await e.getSplTokenMetadata({mintAddress:t,cluster:an(n)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function An({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let i=Le().decode(rn(e)),o=i.staticAccounts[0]??"",r=await sn({solanaClient:n,tx:e}),s=a?await U(pn({solanaClient:n,tx:e})):void 0,c=s?.hasFunds??!0,l={},d=[],u=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 Ne(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(a!==g&&a!==M)if(a!==D){if(a===j){let n=await U(function(e,n,t){let[a,i,o,r]=e.accountIndices?.map((e=>n[e]))??[];return{type:"ata-creation",program:t,payer:a,ata:i,owner:o,mint:r}}(e,u,a));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(d.push(n),n.ata&&n.owner&&n.mint){l[n.ata]={owner:n.owner,mint:n.mint};continue}}if(L.includes(a)){let i=await U(Tn(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else if(B.includes(a)){let i=await U(Cn(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else d.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let n=await U(Sn(e,u));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(n)}else{let i=await U(In(e,u,n,t,l,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i),"spl-transfer"===i.type&&(i.fromAta&&i.fromAccount&&i.token.address&&(l[i.fromAta]??={owner:i.fromAccount,mint:i.token.address}),i.toAta&&i.toAccount&&i.token.address&&(l[i.toAta]??={owner:i.toAccount,mint:i.token.address}))}}return{spender:o,fee:r,instructions:d,hasFunds:!!c}}function bn(e,n=0){try{return N(e,n)}catch{}try{return e.readBigInt64LE(n)}catch{}let t=f(e);try{return $(t)}catch{}try{return t.subarray(n).readBigInt64LE()}catch{}try{return t.readBigInt64LE(n)}catch{}return 0n}async function In(e,n,t,a,i,o){let r=e.data?.[0],s=e.accountIndices?.map((e=>n[e]))??[];if(1===r){let[e,n,t]=s;return{type:"spl-init-account",program:o,account:e,mint:n,owner:t}}if(3===r){let n,r,[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??"",r=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 vn({privyClient:a,chain:t.chain,mint:u}),g=m?.symbol??"";return r??=m?.decimals??9,{type:"spl-transfer",program:o,fromAta:c,fromAccount:d,toAta:l,toAccount:n,value:bn(e.data,1),token:{symbol:g,decimals:r,address:u}}}if(9===r){let[e,n,t]=s;return{type:"spl-close-account",program:o,source:e,destination:n,owner:t}}if(17===r)return{type:"spl-sync-native",program:o};throw Error(`Token program instruction type ${r} not supported`)}async function Sn(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:D,account:n?.toString(),value:bn(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:D,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:bn(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:D,account:n,withSeed:!0,value:bn(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:D,fromAccount:n,toAccount:t,value:bn(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function Tn(e,n,t,a,i){let o=e.accountIndices?.map((e=>n[e]))??[],r=e.data?.[0];if(143===r){let n=o[10],r=o[11];return{type:"raydium-swap-base-input",program:i,mintIn:n,mintOut:r,tokenIn:n?await vn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await vn({privyClient:a,chain:t.chain,mint:r}):void 0,amountIn:bn(e.data,8),minimumAmountOut:bn(e.data,16)}}if(55===r){let n=o[10],r=o[11];return{type:"raydium-swap-base-output",program:i,mintIn:n,mintOut:r,tokenIn:n?await vn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await vn({privyClient:a,chain:t.chain,mint:r}):void 0,maxAmountIn:bn(e.data,8),amountOut:bn(e.data,16)}}throw Error(`Raydium swap program instruction type ${r} not supported`)}async function Cn(e,n,t,a,i){let o=e.data?.[0],r=e.accountIndices?.map((e=>n[e]))??[];if([208,51,239,151,123,43,237,92].includes(o)){let n=r[5],o=r[6];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:o,tokenIn:n?await vn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await vn({privyClient:a,chain:t.chain,mint:o}):void 0,outAmount:bn(e.data,e.data.length-1-2-8-8),quotedInAmount:bn(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(o)){let n=r[7],o=r[8];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:o,tokenIn:n?await vn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await vn({privyClient:a,chain:t.chain,mint:o}):void 0,outAmount:bn(e.data,e.data.length-1-2-8-8),quotedInAmount:bn(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(o)){let n=r[7],o=r[8];return{type:"jupiter-swap-shared-accounts-route",program:i,mintIn:n,mintOut:o,tokenIn:n?await vn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await vn({privyClient:a,chain:t.chain,mint:o}):void 0,inAmount:bn(e.data,e.data.length-1-2-8-8),quotedOutAmount:bn(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(o)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(o)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(o)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(o)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(o)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(o)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(o)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(o)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(o)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(o)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(o)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${o} not supported`)}const kn={component:()=>{let{data:e,onUserCloseViaDialogOrKeybindRef:i,setModalData:o,navigate:s}=w(),{client:c,closePrivyModal:l,walletProxy:d,showFiatPrices:u}=se(),p=r(),{user:m}=le(),g=hn()(e?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[h,f]=t(e?.standardSignAndSendTransaction?.transaction),[y,v]=t(),[b,I]=t(),[S,T]=t({value:0n,isLoading:!1}),[C,k]=t(!1),[O,E]=t({}),[x,F]=t(),P=e?.standardSignAndSendTransaction?.account,W=!!e?.standardSignAndSendTransaction?.signOnly,_=P?.imported?de(m):ue(m),{solPrice:U,isSolPriceLoading:M}=R({enabled:u}),D=n((()=>{if(!y)return;let e=y.spender,n=V(y.fee),t=V(S.value,3,!0),a=y.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:V(i.value)};if("spl-transfer"===i.type)return{fee:n,spender:e,balance:t,total:`${Te({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:`${`${Te({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${Te({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:`${`${Te({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${Te({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:`${`${Te({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${Te({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:`${`${Te({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${Te({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:n,spender:e,balance:t}}),[y,P?.address,S]),j=n((()=>{let e;if(!y||!u||!U||M)return;function n(...e){return A(e.reduce(((e,n)=>e+n),0n),U??0)}P?.address===y.spender&&(e=n(y.fee));let t=n(S.value),a=y.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||y.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,P?.address===y.spender?y.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${Te({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[y,u,U,M,P?.address,S]);if(a((()=>{!async function(){if(h&&c)try{I(void 0);let e=await An({tx:h,solanaClient:g,privyClient:c,checkFunds:!W});v(e)}catch(e){console.error("Failed to prepare transaction",e),I(e)}}()}),[h,g,c,W]),a((()=>{(async function(){if(!P)return;T({value:S.value,isLoading:!0});let{value:e}=await g.rpc.getBalance(P.address,{commitment:"confirmed"}).send();T({value:e??0n,isLoading:!1})})().catch(console.error)}),[y]),!h||!e?.standardSignAndSendTransaction||!P){let n=Error("Invalid transaction request");/*#__PURE__*/return ye(J,{error:n,allowlistConfig:p.allowlistConfig,onRetry:()=>{e?.standardSignAndSendTransaction?.onFailure(n),l({shouldCallAuthOnSuccess:!1})}})}let L=()=>{if(!C)return O.signature||O.signedTransaction?e?.standardSignAndSendTransaction?.onSuccess({signature:O.signature,signedTransaction:O.signedTransaction}):e?.standardSignAndSendTransaction?.onFailure(x??b??Error("User exited the modal before submitting the transaction")),l({shouldCallAuthOnSuccess:!1})};i.current=L;let B=e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/ye("img",{src:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,N=!!(e.funding&&e.funding.supportedOptions.length>0),$=!y?.hasFunds&&N;if(O.signature||O.signedTransaction){let n=y?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===n?.length?n?.at(0):void 0;/*#__PURE__*/return ye(q,{fees:O.fees??0n,onClose:L,transactionInfo:e.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:U,receiptHeader:e.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:e.standardSignAndSendTransaction?.uiOptions.successDescription,rpcEndpoint:g.blockExplorerUrl,signOnly:W,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:D?.total}})}return x?/*#__PURE__*/ye(K,{transactionError:x,rpcEndpoint:g.blockExplorerUrl,onClose:L,network:"solana",onRetry:async()=>{F(void 0);let{value:e}=await g.rpc.getLatestBlockhash().send();f(function(e,n){return Oe(Le().decode(rn(e)),(e=>Be(e)),(e=>Fe(n,e)),(e=>We(e)),(e=>new Uint8Array(_e().encode(e))))}(h,e))}}):/*#__PURE__*/ye(H,{img:B,title:e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:e.standardSignAndSendTransaction?.uiOptions?.description||`${p.name} wants your permission to approve the following transaction.`,cta:$?"Add funds":e.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:y?.instructions??[],network:"solana:mainnet"==g.chain?"Solana":g.chain.replace("solana:",""),blockExplorerUrl:g.blockExplorerUrl,total:u?j?.total:D?.total,fee:u?j?.fee:D?.fee,balance:u?j?.balance:D?.balance,swap:D?.swap,transactingWalletAddress:P.address,disabled:!y?.hasFunds&&!N,isSubmitting:C,isPreparing:!y||S.isLoading,isTokenPriceLoading:u&&M,isMissingFunds:!y?.hasFunds,submitError:x??void 0,parseError:b,onClick:$?async()=>{if(P){if(!N)throw Error("Funding wallet is not enabled");o({...e,funding:{...e.funding,methodScreen:Q},solanaFundingData:e?.solanaFundingData}),s(Q)}}:async()=>{try{if(k(!0),C||!P||!d||!m||!_)return;let n=await e.standardSignAndSendTransaction.onConfirm(h);if("signature"in n){let e=await async function({solanaClient:e,signature:n}){let t=De().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:g,signature:n.signature});return void E({...n,fees:e?.fee})}E(n)}catch(e){console.warn({transaction:h,error:e}),F(e)}finally{k(!1)}},onClose:L})}};function On(e,n,t){let a=structuredClone(Ue().decode(e)),i=$e(n);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(_e().encode(a))}function En(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:o,client:r}=se(),{user:s}=G(),{setModalData:c}=w(),{signWithUserSigner:l}=pe();return{signMessage:({message:d,address:u,options:p})=>new Promise((async(m,g)=>{let h=me(s,u);if("privy"!==h?.walletClientType)return void g(new fe("Wallet is not a Privy wallet",void 0,we.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:w,entropyIdVerifier:y}=Y(s,h),v=ge(h),A=f(d).toString("base64");if(A.length<1)return void g(new fe("Message must be a non-empty string",void 0,we.INVALID_MESSAGE));let b=async()=>{let e;if(!s)throw Error("User must be authenticated before signing with a Privy wallet");let i=await r.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:h.address}))throw Error("Unable to connect to wallet");if(v){let n=await Ce(o,l,{chain_type:"solana",method:"signMessage",params:{message:A,encoding:"base64"},wallet_id:h.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:h.walletIndex??0,requesterAppId:p?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:A}}});e=n.data.signature}return e};if(e({showWalletUIs:p?.uiOptions?.showWalletUIs}))try{let e=await b(),n=new Uint8Array(f(e,"base64"));m({signature:n})}catch(e){g(e)}else c({signMessage:{method:"solana_signMessage",data:A,confirmAndSign:b,onSuccess:e=>{m({signature:new Uint8Array(f(e,"base64"))})},onFailure:e=>{g(e)},uiOptions:p?.uiOptions??{}},connectWallet:{recoveryMethod:h.recoveryMethod,connectingWalletAddress:h.address,entropyId:w,entropyIdVerifier:y,isUnifiedWallet:v,onCompleteNavigateTo:z,onFailure:e=>{g(new fe("Failed to connect to wallet",e,we.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(Z)}))}}function xn(){let{isHeadlessSigning:e,openModal:n}=se(),{setModalData:t}=w(),{signMessage:a}=En(),{user:i}=G();return{signTransaction:async({transaction:o,options:r,chain:s="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await a({message:rn(e),address:c,options:{...r,uiOptions:{...r?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:On(e,c,n)}}return e({showWalletUIs:r?.uiOptions?.showWalletUIs})?l(o):new Promise((async(e,a)=>{let d=me(i,c);if("privy"!==d?.walletClientType)return void a(new fe("Wallet is not a Privy wallet",void 0,we.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=Y(i,d),m=ge(d);function g(e){return n=>{a(n instanceof fe?n:new fe("Failed to connect to wallet",n,e))}}let h={account:d,transaction:o,chain:s,signOnly:!0,uiOptions:r?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:g(we.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:kn,onFailure:g(we.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:h}),n(Z)}))}}}const Fn=["solana:mainnet","solana:devnet","solana:testnet"];function Pn(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Wn=0,_n="__private_"+Wn+++"__implementation";function Un(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Mn=0;function Dn(e){return"__private_"+Mn+++"_"+e}var jn=/*#__PURE__*/Dn("_address"),Ln=/*#__PURE__*/Dn("_publicKey"),Bn=/*#__PURE__*/Dn("_chains"),Nn=/*#__PURE__*/Dn("_features"),$n=/*#__PURE__*/Dn("_label"),Rn=/*#__PURE__*/Dn("_icon");class Vn{get address(){return Un(this,jn)[jn]}get publicKey(){return Un(this,Ln)[Ln].slice()}get chains(){return Un(this,Bn)[Bn].slice()}get features(){return Un(this,Nn)[Nn].slice()}get label(){return Un(this,$n)[$n]}get icon(){return Un(this,Rn)[Rn]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,jn,{writable:!0,value:void 0}),Object.defineProperty(this,Ln,{writable:!0,value:void 0}),Object.defineProperty(this,Bn,{writable:!0,value:void 0}),Object.defineProperty(this,Nn,{writable:!0,value:void 0}),Object.defineProperty(this,$n,{writable:!0,value:void 0}),Object.defineProperty(this,Rn,{writable:!0,value:void 0}),Un(this,jn)[jn]=e,Un(this,Ln)[Ln]=n,Un(this,Bn)[Bn]=Fn,Un(this,$n)[$n]=t,Un(this,Rn)[Rn]=a,Un(this,Nn)[Nn]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===Vn&&Object.freeze(this)}}function Jn(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var qn=0;function Kn(e){return"__private_"+qn+++"_"+e}var Hn=/*#__PURE__*/Kn("_listeners"),Qn=/*#__PURE__*/Kn("_version"),Gn=/*#__PURE__*/Kn("_name"),Yn=/*#__PURE__*/Kn("_icon"),zn=/*#__PURE__*/Kn("_injection"),Zn=/*#__PURE__*/Kn("_isPrivyWallet"),Xn=/*#__PURE__*/Kn("_accounts"),et=/*#__PURE__*/Kn("_on"),nt=/*#__PURE__*/Kn("_emit"),tt=/*#__PURE__*/Kn("_off"),at=/*#__PURE__*/Kn("_connected"),it=/*#__PURE__*/Kn("_connect"),ot=/*#__PURE__*/Kn("_disconnect"),rt=/*#__PURE__*/Kn("_signMessage"),st=/*#__PURE__*/Kn("_signAndSendTransaction"),ct=/*#__PURE__*/Kn("_signTransaction");function lt(e,...n){Jn(this,Hn)[Hn][e]?.forEach((e=>e.apply(null,n)))}function dt(e,n){Jn(this,Hn)[Hn][e]=Jn(this,Hn)[Hn][e]?.filter((e=>n!==e))}let ut=new class extends qe{setImplementation(e){Pn(this,_n)[_n]=e}async signMessage(e){return Pn(this,_n)[_n].signMessage(e)}async signAndSendTransaction(e){return Pn(this,_n)[_n].signAndSendTransaction(e)}async signTransaction(e){return Pn(this,_n)[_n].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,_n,{writable:!0,value:void 0}),Pn(this,_n)[_n]=e}}({signTransaction:ce("signTransaction was not injected"),signAndSendTransaction:ce("signAndSendTransaction was not injected"),signMessage:ce("signMessage was not injected")}),pt=new class{get version(){return Jn(this,Qn)[Qn]}get name(){return Jn(this,Gn)[Gn]}get icon(){return Jn(this,Yn)[Yn]}get chains(){return Fn.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:Jn(this,it)[it]},"standard:disconnect":{version:"1.0.0",disconnect:Jn(this,ot)[ot]},"standard:events":{version:"1.0.0",on:Jn(this,et)[et]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:Jn(this,st)[st]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:Jn(this,ct)[ct]},"solana:signMessage":{version:"1.0.0",signMessage:Jn(this,rt)[rt]},"privy:":{privy:{signMessage:Jn(this,zn)[zn].signMessage,signTransaction:Jn(this,zn)[zn].signTransaction,signAndSendTransaction:Jn(this,zn)[zn].signAndSendTransaction}}}}get accounts(){return Jn(this,Xn)[Xn].slice()}get isPrivyWallet(){return Jn(this,Zn)[Zn]}constructor({name:e,icon:n,version:t,injection:a,wallets:i}){Object.defineProperty(this,nt,{value:lt}),Object.defineProperty(this,tt,{value:dt}),Object.defineProperty(this,Hn,{writable:!0,value:void 0}),Object.defineProperty(this,Qn,{writable:!0,value:void 0}),Object.defineProperty(this,Gn,{writable:!0,value:void 0}),Object.defineProperty(this,Yn,{writable:!0,value:void 0}),Object.defineProperty(this,zn,{writable:!0,value:void 0}),Object.defineProperty(this,Zn,{writable:!0,value:void 0}),Object.defineProperty(this,Xn,{writable:!0,value:void 0}),Object.defineProperty(this,et,{writable:!0,value:void 0}),Object.defineProperty(this,at,{writable:!0,value:void 0}),Object.defineProperty(this,it,{writable:!0,value:void 0}),Object.defineProperty(this,ot,{writable:!0,value:void 0}),Object.defineProperty(this,rt,{writable:!0,value:void 0}),Object.defineProperty(this,st,{writable:!0,value:void 0}),Object.defineProperty(this,ct,{writable:!0,value:void 0}),Jn(this,Hn)[Hn]={},Jn(this,et)[et]=(e,n)=>(Jn(this,Hn)[Hn][e]?.push(n)||(Jn(this,Hn)[Hn][e]=[n]),()=>Jn(this,tt)[tt](e,n)),Jn(this,at)[at]=e=>{null!=e&&(Jn(this,Xn)[Xn]=e.map((({address:e})=>new Vn({address:e,publicKey:Ke.decode(e)})))),Jn(this,nt)[nt]("change",{accounts:this.accounts})},Jn(this,it)[it]=async()=>(Jn(this,nt)[nt]("change",{accounts:this.accounts}),{accounts:this.accounts}),Jn(this,ot)[ot]=async()=>{Jn(this,nt)[nt]("change",{accounts:this.accounts})},Jn(this,rt)[rt]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await Jn(this,zn)[zn].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},Jn(this,st)[st]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:o}of e){let{signature:e}=await Jn(this,zn)[zn].signAndSendTransaction({transaction:t,address:a.address,chain:o||"solana:mainnet",options:i});n.push({signature:e})}return n},Jn(this,ct)[ct]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:o}of e){let{signedTransaction:e}=await Jn(this,zn)[zn].signTransaction({transaction:t,address:a.address,chain:o||"solana:mainnet",options:i});n.push({signedTransaction:e})}return n},Jn(this,Gn)[Gn]=e,Jn(this,Yn)[Yn]=n,Jn(this,Qn)[Qn]=t,Jn(this,zn)[zn]=a,Jn(this,Xn)[Xn]=[],Jn(this,Zn)[Zn]=!0,a.on("accountChanged",Jn(this,at)[at],this),Jn(this,at)[at](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:ut});function mt(){let{ready:e}=ee(),{user:t}=G(),{signMessage:i}=En(),{signTransaction:o}=xn(),{signAndSendTransaction:s}=function(){let e=r(),{isHeadlessSigning:n,openModal:t}=se(),{setModalData:a}=w(),{signTransaction:i}=xn(),o=hn(),{user:s}=G();return{signAndSendTransaction:async({transaction:r,address:c,chain:l="solana:mainnet",options:d})=>{async function u(e){let{signedTransaction:n}=await i({transaction:e,address:c,chain:l,options:{...d,uiOptions:{...d?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await o(l).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:d?.uiOptions?.showWalletUIs})?u(r):new Promise((async(n,i)=>{let o,p,m=me(s,c);if("privy"!==m?.walletClientType)return void i(new fe("Wallet is not a Privy wallet",void 0,we.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:h}=Y(s,m),f=ge(m);function w(e){return n=>{i(n instanceof fe?n:new fe("Failed to connect to wallet",n,e))}}let y={account:m,transaction:r,chain:l,signOnly:!1,uiOptions:d?.uiOptions||{},onConfirm:u,onSuccess:n,onFailure:w(we.TRANSACTION_FAILURE)},v={recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:h,isUnifiedWallet:f,onCompleteNavigateTo:kn,onFailure:w(we.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(o=X({address:c,appConfig:e,methodScreen:Q,fundWalletConfig:{...d,asset:"native-currency",cluster:{name:an(l)}},externalSolanaFundingScreen:yn}),p={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:l,destinationAddress:c,afterSuccessScreen:kn,sourceWalletData:void 0}),a({connectWallet:v,standardSignAndSendTransaction:y,funding:o,solanaFundingData:p}),t(Z)}))}}}(),c=n((()=>{let e=[...he(t).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=de(t);return n?[...e,n]:e}),[t]),l=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 o({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:i}=await s({transaction:e,address:n,chain:t,options:a});return{signature:i}}})),[i,o,s]);return a((()=>{ut?.setImplementation(l)}),[l]),a((()=>{var n;!e||(n=pt.accounts).length===c.length&&n.every(((e,n)=>e.address===c[n]?.address))||ut?.emit("accountChanged",c)}),[e,c]),{ready:e,wallet:pt}}function gt(){let{client:e}=se(),{ready:n,wallet:i}=mt(),[o,r]=t([]),[s,c]=t([]);return a((()=>{let e=[i,...o.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?.()))}}),[o]),a((()=>{if(!n)return;r(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let t=()=>{r(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 ht=()=>ne(He),ft={id:te,prepareSiwsTransactionWithMemo:({address:e,nonce:n})=>{let t=ae({address:e,nonce:n}),a=new Qe,i=new Ge({keys:[{pubkey:new Ye(e),isSigner:!0,isWritable:!1}],programId:new Ye("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(t,"utf-8")});return a.add(i),a.feePayer=new Ye(e),a.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",a.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>Qe.from(f(e,"base64"))},wt=()=>ne(ft);function yt(e){let n=r(),{user:t}=G(),{setModalData:a}=w(),{client:i,isHeadlessSigning:s,openModal:c,walletProxy:l,recoverEmbeddedWallet:d,privy:u,solanaWallets:p}=se(),m=o(),{signWithUserSigner:g}=pe();return ie("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:o,uiOptions:r,transactionOptions:h,address:f})=>{let w=f?p.find((e=>e.address===f&&"privy"!==e.walletClientType)):void 0,{signedTransaction:y}=await oe({privy:u,appConfig:n,getAccessToken:()=>i.getAccessToken(),isHeadlessSigning:s,emitPrivyEvent:m,setModalData:a,openModal:c,walletProxy:l,user:t,recoverEmbeddedWallet:d,signWithUserSigner:g,connectedExternalWallet:w},{transaction:e,connection:o,transactionOptions:h,uiOptions:r,address:f,signOnly:!0});return y}}}function vt(){let{create:e}=re();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 At(){let{exportSolanaWallet:e}=se();return{exportWallet:e}}function bt(){return{signMessage:async({message:e,wallet:n,options:t})=>await n.signMessage({message:e,options:t})}}function It(){return{signTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:a})=>await n.signTransaction({transaction:e,chain:t,options:a})}}function St(){return{signAndSendTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:a})=>await n.signAndSendTransaction({transaction:e,chain:t,options:a})}}function Tt(){let e=r(),{openModal:n}=se(),{setModalData:t}=w();return{fundWallet:async({address:a,options:i})=>{let o=i?.amount||e.fundingConfig?.defaultRecommendedAmount||"1",r=i?.asset||("USDC"===e.fundingConfig?.defaultRecommendedCurrency.asset?"USDC":"SOL"),s=i?.chain||"solana:mainnet";t({funding:X({address:a,appConfig:e,methodScreen:Q,fundWalletConfig:{...i,amount:o,asset:"SOL"===r?"native-currency":"USDC",cluster:{name:an(s)}},externalSolanaFundingScreen:yn}),solanaFundingData:{amount:o,asset:r,chain:s,destinationAddress:a,sourceWalletData:void 0}}),n(Q)}}}export{i as SolanaAdapterConnector,en as toSolanaWalletConnectors,mn as useConnectedStandardWallets,vt as useCreateWallet,At as useExportWallet,tn as useImportWallet,mt as usePrivyStandardWallet,yt as useSignTransaction,ht as useSolanaFundingPlugin,wt as useSolanaLedgerPlugin,gt as useSolanaStandardWallets,Tt as useStandardFundWallet,St as useStandardSignAndSendTransaction,bt as useStandardSignMessage,It as useStandardSignTransaction};