@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
- "use strict";var e=require("react"),t=require("viem"),r=require("./use-sign-with-user-signer-mIruAdfm.js"),n=require("./privy-provider-Cc-fBpNe.js"),a=require("./paths-B00ZrFQm.js"),i=require("./internal-context-B_aIJuQh.js"),s=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),o=require("permissionless"),l=require("permissionless/accounts"),c=require("permissionless/clients/pimlico"),d=require("viem/account-abstraction"),u=require("@privy-io/js-sdk-core");let p={address:d.entryPoint06Address,version:"0.6"},y={address:d.entryPoint07Address,version:"0.7"},m=({owner:e,smartWalletType:t,smartWalletVersion:r,publicClient:n})=>{switch(t){case u.SAFE:return l.toSafeSmartAccount({client:n,entryPoint:y,owners:[e],version:"1.4.1"});case u.KERNEL:return l.toKernelSmartAccount({client:n,version:"0.3.1",entryPoint:y,useMetaFactory:"optional",owners:[e]});case u.BICONOMY:return l.toBiconomySmartAccount({client:n,owners:[e],entryPoint:p});case u.LIGHT_ACCOUNT:return l.toLightSmartAccount({client:n,entryPoint:p,owner:e,version:"1.1.0"});case u.COINBASE_SMART_WALLET: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 d.toCoinbaseSmartAccount({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 u.THIRDWEB:return l.toThirdwebSmartAccount({client:n,entryPoint:y,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}};const g=({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}))),h=async({chain:e,paymasterContext:r,account:i,signer:s,user:l,smartWalletsConfig:d,rpcConfig:u,privyAppId:p})=>{if(!(d?.enabled&&l&&i&&s))return;let y=d?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!y)throw new a.PrivyClientError(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let g=l.smartWallet?l.smartWallet.smartWalletType:d.smartWalletType,h=l.smartWallet?l.smartWallet.smartWalletVersion:d.smartWalletVersion,P=n.getJsonRpcEndpointFromChain(e,u,p),f=t.createPublicClient({chain:e,transport:t.http(P)}),w=r??y.paymasterContext,I=await(async({owner:e,smartWalletType:r,smartWalletVersion:n,chain:a,publicClient:i,bundlerUrl:s,paymasterUrl:l,paymasterContext:d})=>{let u=await m({owner:e,smartWalletType:r,publicClient:i,smartWalletVersion:n}),p=c.createPimlicoClient({transport:t.http(s),entryPoint:u.entryPoint}),y=l?c.createPimlicoClient({transport:t.http(l),entryPoint:u.entryPoint}):void 0;return o.createSmartAccountClient({account:u,chain:a,paymaster:y,paymasterContext:d,bundlerTransport:t.http(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await p.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await p.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"}),p.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:s,smartWalletType:g,smartWalletVersion:h,chain:e,publicClient:f,paymasterContext:w,...y});if(!I)throw new a.PrivyClientError(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return I};exports.callsToTransactionRequests=g,exports.getSmartWalletClient=h,exports.useSmartWalletsUIWrapper=()=>{let{hideWalletUIs:e,openPrivyModal:t,isHeadlessSigning:a}=i.usePrivyInternal(),{setModalData:s}=n.usePrivyModal(),{user:o}=r.usePrivyContext(),l=r.getPrivyEthereumWallet(o),c=!!l&&r.getIsUnifiedWallet(l);return{wrapSmartAccountClientWithUIs:r=>({...r,sendTransaction:async(i,d)=>{if(a({showWalletUIs:d?.uiOptions?.showWalletUIs}))return e.current=!0,await r.sendTransaction(i).finally((()=>e.current=!1));let u=[];"calls"in i&&void 0!==i.calls?u=[...i.calls]:"to"in i&&(u=[{to:i.to,value:i.value||BigInt(0),data:i.data||"0x"}]);let p=async()=>{if(!r.paymaster)return!1;let{paymasterData:e,paymasterAndData:t}=await r.prepareUserOperation({calls:u,maxFeePerGas:i.maxFeePerGas,maxPriorityFeePerGas:i.maxPriorityFeePerGas,nonce:i.nonce?BigInt(i.nonce):void 0});return Number(t??e??0)>0};return new Promise((async(a,y)=>{e.current=!0;let{entropyId:m,entropyIdVerifier:h}=n.getEntropyDetailsForUser(o);s({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:m,entropyIdVerifier:h,onCompleteNavigateTo:n.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:g({calls:u,chain:r.chain,maxPriorityFeePerGas:i.maxPriorityFeePerGas,maxFeePerGas:i.maxFeePerGas,nonce:i.nonce?BigInt(i.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:m,entropyIdVerifier:h,getIsSponsored:p,signOnly:!1,onConfirm:()=>r.sendTransaction(i),onSuccess:e=>a(e.hash),onFailure:y,uiOptions:d?.uiOptions??{}}}),t(n.EmbeddedWalletConnectingScreen)})).finally((()=>{e.current=!1}))},signMessage:async(i,d)=>a({showWalletUIs:d?.uiOptions?.showWalletUIs})?(e.current=!0,await r.signMessage(i).finally((()=>e.current=!1))):new Promise((async(a,u)=>{let{entropyId:p,entropyIdVerifier:y}=n.getEntropyDetailsForUser(o);e.current=!0,s({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:n.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof i.message?i.message:i.message.raw.toString(),confirmAndSign:()=>r.signMessage(i),onSuccess:e=>a(e),onFailure:u,uiOptions:d?.uiOptions??{}}}),t(n.EmbeddedWalletConnectingScreen)})).finally((()=>{e.current=!1})),signTypedData:async(i,d)=>a({showWalletUIs:d?.uiOptions?.showWalletUIs})?(e.current=!0,await r.signTypedData(i).finally((()=>e.current=!1))):new Promise((async(a,u)=>{e.current=!0;let{entropyId:p,entropyIdVerifier:y}=n.getEntropyDetailsForUser(o);s({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:n.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:i,confirmAndSign:()=>r.signTypedData(i),onSuccess:e=>a(e),onFailure:u,uiOptions:d?.uiOptions??{}}}),t(n.EmbeddedWalletConnectingScreen)})).finally((()=>{e.current=!1}))})}},exports.useSmartWalletsWrapper=({clientConfig:t,smartWalletsConfig:o})=>{let{hideWalletUIs:l,openPrivyModal:c,appId:d,isHeadlessSigning:u}=i.usePrivyInternal(),p=n.useAppConfig(),{setModalData:y}=n.usePrivyModal(),{user:m}=r.usePrivyContext(),{chains:P}=n.useAppConfig(),{chainId:f,clients:w,setChainId:I,chainIdState:W}=(()=>{let t=e.useRef(),[r,n]=e.useState();return{clients:e.useRef({}),setChainId:e=>{t.current=e,n(e)},chainId:t,chainIdState:r}})(),v=P.find((e=>e.id===W)),{wallets:C}=n.useWallets(),S=r.getPrivyEthereumWallet(m),F=s.getEmbeddedConnectedWallet(C),x=!!S&&r.getIsUnifiedWallet(S),T=e.useCallback((async()=>f.current),[f]),U=e.useCallback((async({id:e})=>{if(!w.current[e]){let r=await h({chain:P.find((t=>t.id===e)),account:S,signer:await(F?.getEthereumProvider()),user:m,paymasterContext:t?.paymasterContext,smartWalletsConfig:o,rpcConfig:p.rpcConfig,privyAppId:d});r&&(w.current[e]=r)}I(e)}),[P,t,C,m,o]);return{wrapSmartAccountClient:e=>{w.current[e.chain.id]=e,W||I(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let r=w.current[f.current];if(!r)throw new a.PrivyClientError(`Smart wallet client for chain (eip155:${f.current}) not found`);if(delete e.account,u({showWalletUIs:t?.uiOptions?.showWalletUIs}))return l.current=!0,await r.sendTransaction(e).finally((()=>l.current=!1));let i=[];"calls"in e&&void 0!==e.calls?i=[...e.calls]:"to"in e&&(i=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let s=async()=>{let{paymasterAndData:t,paymasterData:n,maxFeePerGas:a,maxPriorityFeePerGas:s}=await r.prepareUserOperation({calls:i,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(a)&&0===Number(s)||Number(t??n??0)>0};return new Promise((async(a,o)=>{l.current=!0;let{entropyId:d,entropyIdVerifier:u}=n.getEntropyDetailsForUser(m);y({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:x,entropyId:d,entropyIdVerifier:u,onCompleteNavigateTo:n.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:g({calls:i,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:d,entropyIdVerifier:u,getIsSponsored:s,signOnly:!1,onConfirm:()=>r.sendTransaction(e),onSuccess:e=>a(e.hash),onFailure:o,uiOptions:t?.uiOptions??{}}}),c(n.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},signMessage:async(e,t)=>{let r=w.current[f.current];if(!r)throw new a.PrivyClientError(`Smart wallet client for chain (eip155:${f.current}) not found`);return u({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signMessage(e).finally((()=>l.current=!1))):new Promise((async(a,i)=>{let{entropyId:s,entropyIdVerifier:o}=n.getEntropyDetailsForUser(m);l.current=!0,y({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:x,entropyId:s,entropyIdVerifier:o,onCompleteNavigateTo:n.SignRequestScreen,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:i,uiOptions:t?.uiOptions??{}}}),c(n.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},signTypedData:async(e,t)=>{let r=w.current[f.current];if(!r)throw new a.PrivyClientError(`Smart wallet client for chain (eip155:${f.current}) not found`);return delete e.account,u({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signTypedData(e).finally((()=>l.current=!1))):new Promise((async(a,i)=>{l.current=!0;let{entropyId:s,entropyIdVerifier:o}=n.getEntropyDetailsForUser(m);y({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:x,entropyId:s,entropyIdVerifier:o,onCompleteNavigateTo:n.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>a(e),onFailure:i,uiOptions:t?.uiOptions??{}}}),c(n.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},getChainId:T,chain:v,switchChain:U}}}};
1
+ "use strict";var e=require("react"),t=require("viem"),r=require("./use-sign-with-user-signer-mIruAdfm.js"),n=require("./privy-provider-zm0SWrLy.js"),a=require("./paths-B00ZrFQm.js"),i=require("./internal-context-B_aIJuQh.js"),s=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),o=require("permissionless"),l=require("permissionless/accounts"),c=require("permissionless/clients/pimlico"),d=require("viem/account-abstraction"),u=require("@privy-io/js-sdk-core");let p={address:d.entryPoint06Address,version:"0.6"},y={address:d.entryPoint07Address,version:"0.7"},m=({owner:e,smartWalletType:t,smartWalletVersion:r,publicClient:n})=>{switch(t){case u.SAFE:return l.toSafeSmartAccount({client:n,entryPoint:y,owners:[e],version:"1.4.1"});case u.KERNEL:return l.toKernelSmartAccount({client:n,version:"0.3.1",entryPoint:y,useMetaFactory:"optional",owners:[e]});case u.BICONOMY:return l.toBiconomySmartAccount({client:n,owners:[e],entryPoint:p});case u.LIGHT_ACCOUNT:return l.toLightSmartAccount({client:n,entryPoint:p,owner:e,version:"1.1.0"});case u.COINBASE_SMART_WALLET: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 d.toCoinbaseSmartAccount({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 u.THIRDWEB:return l.toThirdwebSmartAccount({client:n,entryPoint:y,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}};const g=({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}))),h=async({chain:e,paymasterContext:r,account:i,signer:s,user:l,smartWalletsConfig:d,rpcConfig:u,privyAppId:p})=>{if(!(d?.enabled&&l&&i&&s))return;let y=d?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!y)throw new a.PrivyClientError(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let g=l.smartWallet?l.smartWallet.smartWalletType:d.smartWalletType,h=l.smartWallet?l.smartWallet.smartWalletVersion:d.smartWalletVersion,P=n.getJsonRpcEndpointFromChain(e,u,p),f=t.createPublicClient({chain:e,transport:t.http(P)}),w=r??y.paymasterContext,I=await(async({owner:e,smartWalletType:r,smartWalletVersion:n,chain:a,publicClient:i,bundlerUrl:s,paymasterUrl:l,paymasterContext:d})=>{let u=await m({owner:e,smartWalletType:r,publicClient:i,smartWalletVersion:n}),p=c.createPimlicoClient({transport:t.http(s),entryPoint:u.entryPoint}),y=l?c.createPimlicoClient({transport:t.http(l),entryPoint:u.entryPoint}):void 0;return o.createSmartAccountClient({account:u,chain:a,paymaster:y,paymasterContext:d,bundlerTransport:t.http(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await p.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await p.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"}),p.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:s,smartWalletType:g,smartWalletVersion:h,chain:e,publicClient:f,paymasterContext:w,...y});if(!I)throw new a.PrivyClientError(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return I};exports.callsToTransactionRequests=g,exports.getSmartWalletClient=h,exports.useSmartWalletsUIWrapper=()=>{let{hideWalletUIs:e,openPrivyModal:t,isHeadlessSigning:a}=i.usePrivyInternal(),{setModalData:s}=n.usePrivyModal(),{user:o}=r.usePrivyContext(),l=r.getPrivyEthereumWallet(o),c=!!l&&r.getIsUnifiedWallet(l);return{wrapSmartAccountClientWithUIs:r=>({...r,sendTransaction:async(i,d)=>{if(a({showWalletUIs:d?.uiOptions?.showWalletUIs}))return e.current=!0,await r.sendTransaction(i).finally((()=>e.current=!1));let u=[];"calls"in i&&void 0!==i.calls?u=[...i.calls]:"to"in i&&(u=[{to:i.to,value:i.value||BigInt(0),data:i.data||"0x"}]);let p=async()=>{if(!r.paymaster)return!1;let{paymasterData:e,paymasterAndData:t}=await r.prepareUserOperation({calls:u,maxFeePerGas:i.maxFeePerGas,maxPriorityFeePerGas:i.maxPriorityFeePerGas,nonce:i.nonce?BigInt(i.nonce):void 0});return Number(t??e??0)>0};return new Promise((async(a,y)=>{e.current=!0;let{entropyId:m,entropyIdVerifier:h}=n.getEntropyDetailsForUser(o);s({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:m,entropyIdVerifier:h,onCompleteNavigateTo:n.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:g({calls:u,chain:r.chain,maxPriorityFeePerGas:i.maxPriorityFeePerGas,maxFeePerGas:i.maxFeePerGas,nonce:i.nonce?BigInt(i.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:m,entropyIdVerifier:h,getIsSponsored:p,signOnly:!1,onConfirm:()=>r.sendTransaction(i),onSuccess:e=>a(e.hash),onFailure:y,uiOptions:d?.uiOptions??{}}}),t(n.EmbeddedWalletConnectingScreen)})).finally((()=>{e.current=!1}))},signMessage:async(i,d)=>a({showWalletUIs:d?.uiOptions?.showWalletUIs})?(e.current=!0,await r.signMessage(i).finally((()=>e.current=!1))):new Promise((async(a,u)=>{let{entropyId:p,entropyIdVerifier:y}=n.getEntropyDetailsForUser(o);e.current=!0,s({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:n.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof i.message?i.message:i.message.raw.toString(),confirmAndSign:()=>r.signMessage(i),onSuccess:e=>a(e),onFailure:u,uiOptions:d?.uiOptions??{}}}),t(n.EmbeddedWalletConnectingScreen)})).finally((()=>{e.current=!1})),signTypedData:async(i,d)=>a({showWalletUIs:d?.uiOptions?.showWalletUIs})?(e.current=!0,await r.signTypedData(i).finally((()=>e.current=!1))):new Promise((async(a,u)=>{e.current=!0;let{entropyId:p,entropyIdVerifier:y}=n.getEntropyDetailsForUser(o);s({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:n.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:i,confirmAndSign:()=>r.signTypedData(i),onSuccess:e=>a(e),onFailure:u,uiOptions:d?.uiOptions??{}}}),t(n.EmbeddedWalletConnectingScreen)})).finally((()=>{e.current=!1}))})}},exports.useSmartWalletsWrapper=({clientConfig:t,smartWalletsConfig:o})=>{let{hideWalletUIs:l,openPrivyModal:c,appId:d,isHeadlessSigning:u}=i.usePrivyInternal(),p=n.useAppConfig(),{setModalData:y}=n.usePrivyModal(),{user:m}=r.usePrivyContext(),{chains:P}=n.useAppConfig(),{chainId:f,clients:w,setChainId:I,chainIdState:W}=(()=>{let t=e.useRef(),[r,n]=e.useState();return{clients:e.useRef({}),setChainId:e=>{t.current=e,n(e)},chainId:t,chainIdState:r}})(),v=P.find((e=>e.id===W)),{wallets:C}=n.useWallets(),S=r.getPrivyEthereumWallet(m),F=s.getEmbeddedConnectedWallet(C),x=!!S&&r.getIsUnifiedWallet(S),T=e.useCallback((async()=>f.current),[f]),U=e.useCallback((async({id:e})=>{if(!w.current[e]){let r=await h({chain:P.find((t=>t.id===e)),account:S,signer:await(F?.getEthereumProvider()),user:m,paymasterContext:t?.paymasterContext,smartWalletsConfig:o,rpcConfig:p.rpcConfig,privyAppId:d});r&&(w.current[e]=r)}I(e)}),[P,t,C,m,o]);return{wrapSmartAccountClient:e=>{w.current[e.chain.id]=e,W||I(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let r=w.current[f.current];if(!r)throw new a.PrivyClientError(`Smart wallet client for chain (eip155:${f.current}) not found`);if(delete e.account,u({showWalletUIs:t?.uiOptions?.showWalletUIs}))return l.current=!0,await r.sendTransaction(e).finally((()=>l.current=!1));let i=[];"calls"in e&&void 0!==e.calls?i=[...e.calls]:"to"in e&&(i=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let s=async()=>{let{paymasterAndData:t,paymasterData:n,maxFeePerGas:a,maxPriorityFeePerGas:s}=await r.prepareUserOperation({calls:i,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(a)&&0===Number(s)||Number(t??n??0)>0};return new Promise((async(a,o)=>{l.current=!0;let{entropyId:d,entropyIdVerifier:u}=n.getEntropyDetailsForUser(m);y({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:x,entropyId:d,entropyIdVerifier:u,onCompleteNavigateTo:n.SendTransactionScreen,onFailure:()=>{}},sendTransaction:{transactionRequests:g({calls:i,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:d,entropyIdVerifier:u,getIsSponsored:s,signOnly:!1,onConfirm:()=>r.sendTransaction(e),onSuccess:e=>a(e.hash),onFailure:o,uiOptions:t?.uiOptions??{}}}),c(n.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},signMessage:async(e,t)=>{let r=w.current[f.current];if(!r)throw new a.PrivyClientError(`Smart wallet client for chain (eip155:${f.current}) not found`);return u({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signMessage(e).finally((()=>l.current=!1))):new Promise((async(a,i)=>{let{entropyId:s,entropyIdVerifier:o}=n.getEntropyDetailsForUser(m);l.current=!0,y({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:x,entropyId:s,entropyIdVerifier:o,onCompleteNavigateTo:n.SignRequestScreen,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:i,uiOptions:t?.uiOptions??{}}}),c(n.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},signTypedData:async(e,t)=>{let r=w.current[f.current];if(!r)throw new a.PrivyClientError(`Smart wallet client for chain (eip155:${f.current}) not found`);return delete e.account,u({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signTypedData(e).finally((()=>l.current=!1))):new Promise((async(a,i)=>{l.current=!0;let{entropyId:s,entropyIdVerifier:o}=n.getEntropyDetailsForUser(m);y({connectWallet:{recoveryMethod:S.recoveryMethod,connectingWalletAddress:S.address,isUnifiedWallet:x,entropyId:s,entropyIdVerifier:o,onCompleteNavigateTo:n.SignRequestScreen,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>a(e),onFailure:i,uiOptions:t?.uiOptions??{}}}),c(n.EmbeddedWalletConnectingScreen)})).finally((()=>{l.current=!1}))},getChainId:T,chain:v,switchChain:U}}}};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),i=require("./use-sign-with-user-signer-mIruAdfm.js"),t=require("./privy-provider-Cc-fBpNe.js"),n=require("./paths-B00ZrFQm.js"),o=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),c=require("./smart-wallets-TcsJ7a-J.js"),a=require("./internal-context-B_aIJuQh.js");require("viem"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("zustand"),require("@headlessui/react"),require("lucide-react"),require("@walletconnect/ethereum-provider"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("@heroicons/react/24/outline/CheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("@heroicons/react/24/outline/CreditCardIcon"),require("@heroicons/react/24/outline/QrCodeIcon"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("ofetch"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/IdentificationIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("js-cookie"),require("permissionless"),require("permissionless/accounts"),require("permissionless/clients/pimlico"),require("viem/account-abstraction");let l=/*#__PURE__*/r.createContext({client:void 0,getClientForChain:a.notImplemented});let s=/*#__PURE__*/r.createContext({config:void 0}),u=()=>{let{config:e}=r.useContext(s);return{config:e}},h=({children:i})=>{let[t,n]=r.useState(void 0),{client:o}=a.usePrivyInternal();return r.useEffect((()=>{!t&&o&&(async()=>{try{if(!o)return void console.warn("No client found");let e=await o.getSmartWalletsConfig();n(e)}catch(e){console.warn("Error generating smart wallet config: ",e)}})()}),[!!o]),/*#__PURE__*/e.jsx(s.Provider,{value:{config:t},children:i})},d=({config:l,children:s})=>{let{config:h}=u(),{appId:d}=a.usePrivyInternal(),{chains:C,defaultChain:g,rpcConfig:m}=t.useAppConfig(),{wallets:I}=t.useWallets(),{user:f}=i.usePrivyContext(),[p,v]=r.useState(),{wrapSmartAccountClientWithUIs:w}=c.useSmartWalletsUIWrapper(),y=i.getPrivyEthereumWallet(f),W=o.getEmbeddedConnectedWallet(I);r.useEffect((()=>{(async()=>{if(!h?.enabled)return;let e=h.configuredNetworks.find((e=>e.chainId===`eip155:${g.id}`))?g:C.find((e=>h.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new n.PrivyClientError("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");v(await c.getSmartWalletClient({chain:e,privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:m,account:y,signer:await(W?.getEthereumProvider()),user:f,smartWalletsConfig:h}))})()}),[!!h?.enabled,!!f?.smartWallet,!!W,!!y]);/*#__PURE__*/return e.jsx(q.Provider,{value:{client:p,config:l,getClientForChain:async({id:e})=>{let r=await c.getSmartWalletClient({chain:C.find((r=>r.id===e)),privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:m,account:y,signer:await(W?.getEthereumProvider()),user:f,smartWalletsConfig:h});if(!r)throw new n.PrivyClientError(`Failed to create smart wallet client for chain id: ${e}`);return w(r)}},children:s})},q=/*#__PURE__*/r.createContext({client:void 0,config:void 0,getClientForChain:a.notImplemented}),C=({children:t})=>{let{client:n,config:o,getClientForChain:s}=(()=>{let{client:e,config:i,getClientForChain:t}=r.useContext(q);return{client:e,config:i,getClientForChain:t}})(),{config:h}=u(),{wrapSmartAccountClient:d}=c.useSmartWalletsWrapper({clientConfig:o,smartWalletsConfig:h}),{user:C}=i.usePrivyContext(),{generateSiweMessageForSmartWallet:g,linkSmartWallet:m,hideWalletUIs:I}=a.usePrivyInternal();return r.useEffect((()=>{(async()=>{if(n&&C&&!C?.smartWallet&&h?.enabled)try{let e=await g({address:n.account.address,chainId:`eip155:${n.chain.id}`});I.current=!0;let r=await n.signMessage({message:e});await m({signature:r,message:e,smartWalletType:h.smartWalletType,smartWalletVersion:h.smartWalletVersion})}catch(e){console.error("Error creating smart wallet:",e)}finally{I.current=!1}})()}),[!!n,!!C?.smartWallet,!!h?.enabled]),/*#__PURE__*/e.jsx(l.Provider,{value:{client:C?.smartWallet&&n?d(n):void 0,getClientForChain:s},children:t})};exports.SmartWalletsProvider=({config:r,children:i})=>/*#__PURE__*/e.jsx(h,{children:/*#__PURE__*/e.jsx(d,{config:r,children:/*#__PURE__*/e.jsx(C,{children:i})})}),exports.useSmartWallets=()=>{let{client:e,getClientForChain:i}=r.useContext(l);return{client:e,getClientForChain:i}};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),i=require("./use-sign-with-user-signer-mIruAdfm.js"),t=require("./privy-provider-zm0SWrLy.js"),n=require("./paths-B00ZrFQm.js"),o=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),c=require("./smart-wallets-DO-QDpuC.js"),a=require("./internal-context-B_aIJuQh.js");require("viem"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("uuid"),require("jose"),require("eventemitter3"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("zustand"),require("@headlessui/react"),require("lucide-react"),require("@walletconnect/ethereum-provider"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("@heroicons/react/24/outline/CheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("@heroicons/react/24/outline/CreditCardIcon"),require("@heroicons/react/24/outline/QrCodeIcon"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("ofetch"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/IdentificationIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("js-cookie"),require("permissionless"),require("permissionless/accounts"),require("permissionless/clients/pimlico"),require("viem/account-abstraction");let l=/*#__PURE__*/r.createContext({client:void 0,getClientForChain:a.notImplemented});let s=/*#__PURE__*/r.createContext({config:void 0}),u=()=>{let{config:e}=r.useContext(s);return{config:e}},h=({children:i})=>{let[t,n]=r.useState(void 0),{client:o}=a.usePrivyInternal();return r.useEffect((()=>{!t&&o&&(async()=>{try{if(!o)return void console.warn("No client found");let e=await o.getSmartWalletsConfig();n(e)}catch(e){console.warn("Error generating smart wallet config: ",e)}})()}),[!!o]),/*#__PURE__*/e.jsx(s.Provider,{value:{config:t},children:i})},d=({config:l,children:s})=>{let{config:h}=u(),{appId:d}=a.usePrivyInternal(),{chains:C,defaultChain:g,rpcConfig:m}=t.useAppConfig(),{wallets:I}=t.useWallets(),{user:f}=i.usePrivyContext(),[p,v]=r.useState(),{wrapSmartAccountClientWithUIs:w}=c.useSmartWalletsUIWrapper(),y=i.getPrivyEthereumWallet(f),W=o.getEmbeddedConnectedWallet(I);r.useEffect((()=>{(async()=>{if(!h?.enabled)return;let e=h.configuredNetworks.find((e=>e.chainId===`eip155:${g.id}`))?g:C.find((e=>h.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new n.PrivyClientError("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");v(await c.getSmartWalletClient({chain:e,privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:m,account:y,signer:await(W?.getEthereumProvider()),user:f,smartWalletsConfig:h}))})()}),[!!h?.enabled,!!f?.smartWallet,!!W,!!y]);/*#__PURE__*/return e.jsx(q.Provider,{value:{client:p,config:l,getClientForChain:async({id:e})=>{let r=await c.getSmartWalletClient({chain:C.find((r=>r.id===e)),privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:m,account:y,signer:await(W?.getEthereumProvider()),user:f,smartWalletsConfig:h});if(!r)throw new n.PrivyClientError(`Failed to create smart wallet client for chain id: ${e}`);return w(r)}},children:s})},q=/*#__PURE__*/r.createContext({client:void 0,config:void 0,getClientForChain:a.notImplemented}),C=({children:t})=>{let{client:n,config:o,getClientForChain:s}=(()=>{let{client:e,config:i,getClientForChain:t}=r.useContext(q);return{client:e,config:i,getClientForChain:t}})(),{config:h}=u(),{wrapSmartAccountClient:d}=c.useSmartWalletsWrapper({clientConfig:o,smartWalletsConfig:h}),{user:C}=i.usePrivyContext(),{generateSiweMessageForSmartWallet:g,linkSmartWallet:m,hideWalletUIs:I}=a.usePrivyInternal();return r.useEffect((()=>{(async()=>{if(n&&C&&!C?.smartWallet&&h?.enabled)try{let e=await g({address:n.account.address,chainId:`eip155:${n.chain.id}`});I.current=!0;let r=await n.signMessage({message:e});await m({signature:r,message:e,smartWalletType:h.smartWalletType,smartWalletVersion:h.smartWalletVersion})}catch(e){console.error("Error creating smart wallet:",e)}finally{I.current=!1}})()}),[!!n,!!C?.smartWallet,!!h?.enabled]),/*#__PURE__*/e.jsx(l.Provider,{value:{client:C?.smartWallet&&n?d(n):void 0,getClientForChain:s},children:t})};exports.SmartWalletsProvider=({config:r,children:i})=>/*#__PURE__*/e.jsx(h,{children:/*#__PURE__*/e.jsx(d,{config:r,children:/*#__PURE__*/e.jsx(C,{children:i})})}),exports.useSmartWallets=()=>{let{client:e,getClientForChain:i}=r.useContext(l);return{client:e,getClientForChain:i}};
@@ -1 +1,2 @@
1
- "use strict";var e=require("react"),n=require("./privy-provider-Cc-fBpNe.js"),t=require("./internal-context-B_aIJuQh.js"),r=require("./use-sign-with-user-signer-mIruAdfm.js"),a=require("./paths-B00ZrFQm.js"),i=require("react/jsx-runtime"),o=require("@privy-io/js-sdk-core"),s=require("@solana/kit"),c=require("eventemitter3"),l=require("@scure/base"),u=require("./useFundWallet-aHyY2NF8.js"),d=require("@solana/web3.js"),p=require("@solana/wallet-adapter-base"),m=require("@solana/wallet-standard-wallet-adapter-base"),g=require("@wallet-standard/app");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("mipd"),require("react-device-detect"),require("viem/utils"),require("viem"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("zustand"),require("@headlessui/react"),require("lucide-react"),require("@walletconnect/ethereum-provider"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("@heroicons/react/24/outline/CheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("@heroicons/react/24/outline/CreditCardIcon"),require("@heroicons/react/24/outline/QrCodeIcon"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("ofetch"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/IdentificationIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("js-cookie"),require("@solana/spl-token");var f=/*#__PURE__*/h(c);let y=e=>e.filter((e=>p.isWalletAdapterCompatibleStandardWallet(e)&&!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet))).map((e=>new m.StandardWalletAdapter({wallet:e})));function w(e){return new Uint8Array(s.getTransactionDecoder().decode(e).messageBytes)}const v="11111111111111111111111111111111",A=["CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C","CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"],b=["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"],S={"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 T({privyClient:e,chain:n,mint:t}){let r=S[n];if(!r[t]){let a=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)});a&&(r[t]={address:t,symbol:a.symbol,decimals:a.decimals})}return r[t]}async function I({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:r}=await e.rpc.simulateTransaction(s.getBase64Decoder().decode(n),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:t}).send();if("BlockhashNotFound"===r.err&&t)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===r.err?await I({solanaClient:e,tx:n,replaceRecentBlockhash:!0}):{logs:r.logs,hasError:!!r.err,hasFunds:r.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}}async function C({tx:e,solanaClient:t,privyClient:r,checkFunds:a}){let i=s.getCompiledTransactionMessageDecoder().decode(w(e)),o=i.staticAccounts[0]??"",c=await async function({solanaClient:e,tx:n}){let t=s.getBase64Decoder().decode(w(n)),{value:r}=await e.rpc.getFeeForMessage(t).send();return r??0n}({solanaClient:t,tx:e}),l=a?await n.attempt(I({solanaClient:t,tx:e})):void 0,u=l?.hasFunds??!0,d={},p=[],m=await async function({solanaClient:e,message:n}){if(!("addressTableLookups"in n)||!n.addressTableLookups)return[...n.staticAccounts];let t=n.addressTableLookups.map((e=>e.lookupTableAddress)),r=await s.fetchAddressesForLookupTables(t,e.rpc),a=t.map(((e,t)=>[...n.addressTableLookups[t]?.writableIndexes.map((n=>{let a=r[e]?.[n];if(a)return{key:a,isWritable:!0,altIdx:t}}))??[],...n.addressTableLookups[t]?.readonlyIndexes.map((n=>{let a=r[e]?.[n];if(a)return{key:a,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,...a]}({solanaClient:t,message:i});for(let e of i.instructions){let a=i.staticAccounts[e.programAddressIndex]||"";if("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"!==a&&"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"!==a)if(a!==v){if("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"===a){let t=await n.attempt(function(e,n,t){let[r,a,i,o]=e.accountIndices?.map((e=>n[e]))??[];return{type:"ata-creation",program:t,payer:r,ata:a,owner:i,mint:o}}(e,m,a));if(!t){p.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(p.push(t),t.ata&&t.owner&&t.mint){d[t.ata]={owner:t.owner,mint:t.mint};continue}}if(A.includes(a)){let i=await n.attempt(O(e,m,t,r,a));if(!i){p.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}p.push(i)}else if(b.includes(a)){let i=await n.attempt(W(e,m,t,r,a));if(!i){p.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}p.push(i)}else p.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let t=await n.attempt(k(e,m));if(!t){p.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}p.push(t)}else{let i=await n.attempt(P(e,m,t,r,d,a));if(!i){p.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}p.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:o,fee:c,instructions:p,hasFunds:!!u}}function E(e,t=0){try{return n.readBigInt64LEFromUint8Array(e,t)}catch{}try{return e.readBigInt64LE(t)}catch{}let r=n.bufferFrom(e);try{return n.readBigInt64LE(r)}catch{}try{return r.subarray(t).readBigInt64LE()}catch{}try{return r.readBigInt64LE(t)}catch{}return 0n}async function P(e,n,t,r,a,i){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:i,account:e,mint:n,owner:t}}if(3===o){let n,o,[c,l,u]=s,d="",p=l?a[l]:void 0;if(p)n=p.owner,d=p.mint;else if(l){let e=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),r=e.value?.data;n=r?.parsed?.info?.owner,d=r?.parsed?.info?.mint??"",o=r?.parsed?.info?.tokenAmount?.decimals}if(!d&&c){let e=await t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;d=n?.parsed?.info?.mint??""}let m=await T({privyClient:r,chain:t.chain,mint:d}),g=m?.symbol??"";return o??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:c,fromAccount:u,toAta:l,toAccount:n,value:E(e.data,1),token:{symbol:g,decimals:o,address:d}}}if(9===o){let[e,n,t]=s;return{type:"spl-close-account",program:i,source:e,destination:n,owner:t}}if(17===o)return{type:"spl-sync-native",program:i};throw Error(`Token program instruction type ${o} not supported`)}async function k(e,n){let t=e.data?.[0],r=e.accountIndices?.map((e=>n[e]))??[];if(0===t){let[,n]=r;return{type:"create-account",program:v,account:n?.toString(),value:E(e.data,4),withSeed:!1}}if(2===t){let[n,t]=r;return{type:"sol-transfer",program:v,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:E(e.data,4),withSeed:!1}}if(3===t){let[,n]=r;return{type:"create-account",program:v,account:n,withSeed:!0,value:E(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=r;return{type:"sol-transfer",program:v,fromAccount:n,toAccount:t,value:E(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function O(e,n,t,r,a){let i=e.accountIndices?.map((e=>n[e]))??[],o=e.data?.[0];if(143===o){let n=i[10],o=i[11];return{type:"raydium-swap-base-input",program:a,mintIn:n,mintOut:o,tokenIn:n?await T({privyClient:r,chain:t.chain,mint:n}):void 0,tokenOut:o?await T({privyClient:r,chain:t.chain,mint:o}):void 0,amountIn:E(e.data,8),minimumAmountOut:E(e.data,16)}}if(55===o){let n=i[10],o=i[11];return{type:"raydium-swap-base-output",program:a,mintIn:n,mintOut:o,tokenIn:n?await T({privyClient:r,chain:t.chain,mint:n}):void 0,tokenOut:o?await T({privyClient:r,chain:t.chain,mint:o}):void 0,maxAmountIn:E(e.data,8),amountOut:E(e.data,16)}}throw Error(`Raydium swap program instruction type ${o} not supported`)}async function W(e,n,t,r,a){let i=e.data?.[0],o=e.accountIndices?.map((e=>n[e]))??[];if([208,51,239,151,123,43,237,92].includes(i)){let n=o[5],i=o[6];return{type:"jupiter-swap-exact-out-route",program:a,mintIn:n,mintOut:i,tokenIn:n?await T({privyClient:r,chain:t.chain,mint:n}):void 0,tokenOut:i?await T({privyClient:r,chain:t.chain,mint:i}):void 0,outAmount:E(e.data,e.data.length-1-2-8-8),quotedInAmount:E(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(i)){let n=o[7],i=o[8];return{type:"jupiter-swap-exact-out-route",program:a,mintIn:n,mintOut:i,tokenIn:n?await T({privyClient:r,chain:t.chain,mint:n}):void 0,tokenOut:i?await T({privyClient:r,chain:t.chain,mint:i}):void 0,outAmount:E(e.data,e.data.length-1-2-8-8),quotedInAmount:E(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(i)){let n=o[7],i=o[8];return{type:"jupiter-swap-shared-accounts-route",program:a,mintIn:n,mintOut:i,tokenIn:n?await T({privyClient:r,chain:t.chain,mint:n}):void 0,tokenOut:i?await T({privyClient:r,chain:t.chain,mint:i}):void 0,inAmount:E(e.data,e.data.length-1-2-8-8),quotedOutAmount:E(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(i)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(i)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(i)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(i)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(i)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(i)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(i)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(i)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(i)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${i} not supported`)}function q(){let t=n.useAppConfig(),r=e.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,t.solanaRpcs[e]?function({rpc:e,rpcSubscriptions:t,chain:r,blockExplorerUrl:a}){let i=function({rpc:e,rpcSubscriptions:t}){return async r=>new Promise((async(a,i)=>{try{let o=await e.sendTransaction(n.bufferFrom(r).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send(),c=new AbortController,l=await t.signatureNotifications(o,{commitment:"confirmed"}).subscribe({abortSignal:c.signal}),u=await Promise.race([new Promise((e=>{setTimeout((()=>{c.abort(),e(Error("Transaction confirmation timed out"))}),1e4)})),new Promise((async e=>{for await(let n of l){if(c.abort(),n.value.err)return e(Error("Transaction confirmation failed"));e({signature:new Uint8Array(s.getBase58Encoder().encode(o))})}}))]);return u instanceof Error?i(u):a(u)}catch(e){i(e)}}))}({rpc:e,rpcSubscriptions:t});return{rpc:e,rpcSubscriptions:t,chain:r,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.useCallback((e=>{if(!r[e])throw Error(`No RPC configuration found for chain ${e}`);return r[e]}),[r])}const M={component:()=>{let{data:a,onUserCloseViaDialogOrKeybindRef:c,setModalData:l,navigate:u}=n.usePrivyModal(),{client:d,closePrivyModal:p,walletProxy:m,showFiatPrices:g}=t.usePrivyInternal(),h=n.useAppConfig(),{user:f}=r.usePrivyContext(),y=q()(a?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[v,A]=e.useState(a?.standardSignAndSendTransaction?.transaction),[b,S]=e.useState(),[T,I]=e.useState(),[E,P]=e.useState({value:0n,isLoading:!1}),[k,O]=e.useState(!1),[W,M]=e.useState({}),[x,F]=e.useState(),_=a?.standardSignAndSendTransaction?.account,U=!!a?.standardSignAndSendTransaction?.signOnly,D=_?.imported?r.getImportedPrivySolanaWallet(f):r.getPrivyPrimaryWallet(f),{solPrice:j,isSolPriceLoading:B}=n.useGetSolPrice({enabled:g}),L=e.useMemo((()=>{if(!b)return;let e=b.spender,t=n.getNativeCurrencyFromLamports(b.fee),r=n.getNativeCurrencyFromLamports(E.value,3,!0),a=b.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:t,spender:e,balance:r};if("sol-transfer"===i.type)return{fee:t,spender:e,balance:r,total:n.getNativeCurrencyFromLamports(i.value)};if("spl-transfer"===i.type)return{fee:t,spender:e,balance:r,total:`${o.formatTokenAmount({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${o.formatTokenAmount({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${o.formatTokenAmount({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${o.formatTokenAmount({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${o.formatTokenAmount({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${o.formatTokenAmount({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${o.formatTokenAmount({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${o.formatTokenAmount({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${o.formatTokenAmount({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:t,spender:e,balance:r}}),[b,_?.address,E]),N=e.useMemo((()=>{let e;if(!b||!g||!j||B)return;function t(...e){return n.getDollarsFromLamport(e.reduce(((e,n)=>e+n),0n),j??0)}_?.address===b.spender&&(e=t(b.fee));let r=t(E.value),a=b.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||b.instructions.length>1?{fee:e,balance:r}:"sol-transfer"===a.type?{fee:e,balance:r,total:t(a.value,_?.address===b.spender?b.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:r,total:`${o.formatTokenAmount({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:r}}),[b,g,j,B,_?.address,E]);if(e.useEffect((()=>{!async function(){if(v&&d)try{I(void 0);let e=await C({tx:v,solanaClient:y,privyClient:d,checkFunds:!U});S(e)}catch(e){console.error("Failed to prepare transaction",e),I(e)}}()}),[v,y,d,U]),e.useEffect((()=>{(async function(){if(!_)return;P({value:E.value,isLoading:!0});let{value:e}=await y.rpc.getBalance(_.address,{commitment:"confirmed"}).send();P({value:e??0n,isLoading:!1})})().catch(console.error)}),[b]),!v||!a?.standardSignAndSendTransaction||!_){let e=Error("Invalid transaction request");/*#__PURE__*/return i.jsx(n.ErrorScreenView,{error:e,allowlistConfig:h.allowlistConfig,onRetry:()=>{a?.standardSignAndSendTransaction?.onFailure(e),p({shouldCallAuthOnSuccess:!1})}})}let R=()=>{if(!k)return W.signature||W.signedTransaction?a?.standardSignAndSendTransaction?.onSuccess({signature:W.signature,signedTransaction:W.signedTransaction}):a?.standardSignAndSendTransaction?.onFailure(x??T??Error("User exited the modal before submitting the transaction")),p({shouldCallAuthOnSuccess:!1})};c.current=R;let V=a.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/i.jsx("img",{src:a.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:a.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,J=!!(a.funding&&a.funding.supportedOptions.length>0),$=!b?.hasFunds&&J;if(W.signature||W.signedTransaction){let e=b?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return i.jsx(n.SolanaTransactionReceiptView,{fees:W.fees??0n,onClose:R,transactionInfo:a.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:j,receiptHeader:a.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:a.standardSignAndSendTransaction?.uiOptions.successDescription,rpcEndpoint:y.blockExplorerUrl,signOnly:U,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:L?.total}})}return x?/*#__PURE__*/i.jsx(n.TransactionErrorView,{transactionError:x,rpcEndpoint:y.blockExplorerUrl,onClose:R,network:"solana",onRetry:async()=>{F(void 0);let{value:e}=await y.rpc.getLatestBlockhash().send();A(function(e,n){return s.pipe(s.getCompiledTransactionMessageDecoder().decode(w(e)),(e=>s.decompileTransactionMessage(e)),(e=>s.setTransactionMessageLifetimeUsingBlockhash(n,e)),(e=>s.compileTransaction(e)),(e=>new Uint8Array(s.getTransactionEncoder().encode(e))))}(v,e))}}):/*#__PURE__*/i.jsx(n.SendSolanaTransactionScreenView,{img:V,title:a.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:a.standardSignAndSendTransaction?.uiOptions?.description||`${h.name} wants your permission to approve the following transaction.`,cta:$?"Add funds":a.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:b?.instructions??[],network:"solana:mainnet"==y.chain?"Solana":y.chain.replace("solana:",""),blockExplorerUrl:y.blockExplorerUrl,total:g?N?.total:L?.total,fee:g?N?.fee:L?.fee,balance:g?N?.balance:L?.balance,swap:L?.swap,transactingWalletAddress:_.address,disabled:!b?.hasFunds&&!J,isSubmitting:k,isPreparing:!b||E.isLoading,isTokenPriceLoading:g&&B,isMissingFunds:!b?.hasFunds,submitError:x??void 0,parseError:T,onClick:$?async()=>{if(_){if(!J)throw Error("Funding wallet is not enabled");l({...a,funding:{...a.funding,methodScreen:n.FundingMethodSelectionScreen}}),u(n.FundingMethodSelectionScreen)}}:async()=>{try{if(O(!0),k||!_||!m||!f||!D)return;let e=await a.standardSignAndSendTransaction.onConfirm(v);if("signature"in e){let n=await async function({solanaClient:e,signature:n}){let t=s.getBase58Decoder().decode(n),r=await e.rpc.getTransaction(t,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return r?{fee:r.meta?.fee??0n}:null}({solanaClient:y,signature:e.signature});return void M({...e,fees:n?.fee})}M(e)}catch(e){console.warn({transaction:v,error:e}),F(e)}finally{O(!1)}},onClose:R})}};function x(e,n,t){let r=structuredClone(s.getTransactionDecoder().decode(e)),a=s.address(n);return a in r.signatures&&(r.signatures[a]=t),new Uint8Array(s.getTransactionEncoder().encode(r))}function F(){let{isHeadlessSigning:e,walletProxy:i,initializeWalletProxy:s,recoverEmbeddedWallet:c,openModal:l,privy:u,client:d}=t.usePrivyInternal(),{user:p}=n.usePrivy(),{setModalData:m}=n.usePrivyModal(),{signWithUserSigner:g}=r.useSignWithUserSigner();return{signMessage:({message:t,address:h,options:f})=>new Promise((async(y,w)=>{let v=r.getPrivyWalletWithAddress(p,h);if("privy"!==v?.walletClientType)return void w(new a.PrivyClientError("Wallet is not a Privy wallet",void 0,a.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:b}=n.getEntropyDetailsForUser(p,v),S=r.getIsUnifiedWallet(v),T=n.bufferFrom(t).toString("base64");if(T.length<1)return void w(new a.PrivyClientError("Message must be a non-empty string",void 0,a.PrivyErrorCode.INVALID_MESSAGE));let I=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let n=await d.getAccessToken();if(!n)throw Error("User must be authenticated to use their embedded wallet.");let t=i??await s(15e3);if(!t)throw Error("Failed to initialize embedded wallet proxy.");if(!await c({address:v.address}))throw Error("Unable to connect to wallet");if(S){let n=await o.rpc(u,g,{chain_type:"solana",method:"signMessage",params:{message:T,encoding:"base64"},wallet_id:v.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:r}=await t.rpc({accessToken:n,entropyId:A,entropyIdVerifier:b,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:f?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:T}}});e=r.data.signature}return e};if(e({showWalletUIs:f?.uiOptions?.showWalletUIs}))try{let e=await I(),t=new Uint8Array(n.bufferFrom(e,"base64"));y({signature:t})}catch(e){w(e)}else m({signMessage:{method:"solana_signMessage",data:T,confirmAndSign:I,onSuccess:e=>{y({signature:new Uint8Array(n.bufferFrom(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:f?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:b,isUnifiedWallet:S,onCompleteNavigateTo:n.SignRequestScreen,onFailure:e=>{w(new a.PrivyClientError("Failed to connect to wallet",e,a.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),l(n.EmbeddedWalletConnectingScreen)}))}}function _(){let{isHeadlessSigning:e,openModal:i}=t.usePrivyInternal(),{setModalData:o}=n.usePrivyModal(),{signMessage:s}=F(),{user:c}=n.usePrivy();return{signTransaction:async({transaction:t,options:l,chain:u="solana:mainnet",address:d})=>{async function p(e){let{signature:n}=await s({message:w(e),address:d,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:x(e,d,n)}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?p(t):new Promise((async(e,s)=>{let m=r.getPrivyWalletWithAddress(c,d);if("privy"!==m?.walletClientType)return void s(new a.PrivyClientError("Wallet is not a Privy wallet",void 0,a.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:h}=n.getEntropyDetailsForUser(c,m),f=r.getIsUnifiedWallet(m);function y(e){return n=>{n instanceof a.PrivyClientError?s(n):s(new a.PrivyClientError("Failed to connect to wallet",n,e))}}let w={account:m,transaction:t,chain:u,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:p,onSuccess:e,onFailure:y(a.PrivyErrorCode.TRANSACTION_FAILURE)};o({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:h,isUnifiedWallet:f,onCompleteNavigateTo:M,onFailure:y(a.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:w}),i(n.EmbeddedWalletConnectingScreen)}))}}}const U=["solana:mainnet","solana:devnet","solana:testnet"];function D(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var j=0,B="__private_"+j+++"__implementation";class L extends f.default{setImplementation(e){D(this,B)[B]=e}async signMessage(e){return D(this,B)[B].signMessage(e)}async signAndSendTransaction(e){return D(this,B)[B].signAndSendTransaction(e)}async signTransaction(e){return D(this,B)[B].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,B,{writable:!0,value:void 0}),D(this,B)[B]=e}}function N(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var R=0;function V(e){return"__private_"+R+++"_"+e}var J=/*#__PURE__*/V("_address"),$=/*#__PURE__*/V("_publicKey"),G=/*#__PURE__*/V("_chains"),K=/*#__PURE__*/V("_features"),H=/*#__PURE__*/V("_label"),Q=/*#__PURE__*/V("_icon");class Y{get address(){return N(this,J)[J]}get publicKey(){return N(this,$)[$].slice()}get chains(){return N(this,G)[G].slice()}get features(){return N(this,K)[K].slice()}get label(){return N(this,H)[H]}get icon(){return N(this,Q)[Q]}constructor({address:e,publicKey:n,label:t,icon:r}){Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,K,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),N(this,J)[J]=e,N(this,$)[$]=n,N(this,G)[G]=U,N(this,H)[H]=t,N(this,Q)[Q]=r,N(this,K)[K]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===Y&&Object.freeze(this)}}function Z(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var z=0;function X(e){return"__private_"+z+++"_"+e}var ee=/*#__PURE__*/X("_listeners"),ne=/*#__PURE__*/X("_version"),te=/*#__PURE__*/X("_name"),re=/*#__PURE__*/X("_icon"),ae=/*#__PURE__*/X("_injection"),ie=/*#__PURE__*/X("_isPrivyWallet"),oe=/*#__PURE__*/X("_accounts"),se=/*#__PURE__*/X("_on"),ce=/*#__PURE__*/X("_emit"),le=/*#__PURE__*/X("_off"),ue=/*#__PURE__*/X("_connected"),de=/*#__PURE__*/X("_connect"),pe=/*#__PURE__*/X("_disconnect"),me=/*#__PURE__*/X("_signMessage"),ge=/*#__PURE__*/X("_signAndSendTransaction"),he=/*#__PURE__*/X("_signTransaction");function fe(e,...n){Z(this,ee)[ee][e]?.forEach((e=>e.apply(null,n)))}function ye(e,n){Z(this,ee)[ee][e]=Z(this,ee)[ee][e]?.filter((e=>n!==e))}let we=new L({signTransaction:t.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:t.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:t.notImplementedWithMessage("signMessage was not injected")}),ve=new class{get version(){return Z(this,ne)[ne]}get name(){return Z(this,te)[te]}get icon(){return Z(this,re)[re]}get chains(){return U.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:Z(this,de)[de]},"standard:disconnect":{version:"1.0.0",disconnect:Z(this,pe)[pe]},"standard:events":{version:"1.0.0",on:Z(this,se)[se]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:Z(this,ge)[ge]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:Z(this,he)[he]},"solana:signMessage":{version:"1.0.0",signMessage:Z(this,me)[me]},"privy:":{privy:{signMessage:Z(this,ae)[ae].signMessage,signTransaction:Z(this,ae)[ae].signTransaction,signAndSendTransaction:Z(this,ae)[ae].signAndSendTransaction}}}}get accounts(){return Z(this,oe)[oe].slice()}get isPrivyWallet(){return Z(this,ie)[ie]}constructor({name:e,icon:n,version:t,injection:r,wallets:a}){Object.defineProperty(this,ce,{value:fe}),Object.defineProperty(this,le,{value:ye}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),Object.defineProperty(this,ne,{writable:!0,value:void 0}),Object.defineProperty(this,te,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,ue,{writable:!0,value:void 0}),Object.defineProperty(this,de,{writable:!0,value:void 0}),Object.defineProperty(this,pe,{writable:!0,value:void 0}),Object.defineProperty(this,me,{writable:!0,value:void 0}),Object.defineProperty(this,ge,{writable:!0,value:void 0}),Object.defineProperty(this,he,{writable:!0,value:void 0}),Z(this,ee)[ee]={},Z(this,se)[se]=(e,n)=>(Z(this,ee)[ee][e]?.push(n)||(Z(this,ee)[ee][e]=[n]),()=>Z(this,le)[le](e,n)),Z(this,ue)[ue]=e=>{null!=e&&(Z(this,oe)[oe]=e.map((({address:e})=>new Y({address:e,publicKey:l.base58.decode(e)})))),Z(this,ce)[ce]("change",{accounts:this.accounts})},Z(this,de)[de]=async()=>(Z(this,ce)[ce]("change",{accounts:this.accounts}),{accounts:this.accounts}),Z(this,pe)[pe]=async()=>{Z(this,ce)[ce]("change",{accounts:this.accounts})},Z(this,me)[me]=async(...e)=>{let n=[];for(let{account:t,...r}of e){let{signature:e}=await Z(this,ae)[ae].signMessage({...r,address:t.address});n.push({signedMessage:r.message,signature:e})}return n},Z(this,ge)[ge]=async(...e)=>{let n=[];for(let{transaction:t,account:r,options:a,chain:i}of e){let{signature:e}=await Z(this,ae)[ae].signAndSendTransaction({transaction:t,address:r.address,chain:i||"solana:mainnet",options:a});n.push({signature:e})}return n},Z(this,he)[he]=async(...e)=>{let n=[];for(let{transaction:t,account:r,options:a,chain:i}of e){let{signedTransaction:e}=await Z(this,ae)[ae].signTransaction({transaction:t,address:r.address,chain:i||"solana:mainnet",options:a});n.push({signedTransaction:e})}return n},Z(this,te)[te]=e,Z(this,re)[re]=n,Z(this,ne)[ne]=t,Z(this,ae)[ae]=r,Z(this,oe)[oe]=[],Z(this,ie)[ie]=!0,r.on("accountChanged",Z(this,ue)[ue],this),Z(this,ue)[ue](a)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:we});function Ae(){let{ready:i}=n.useWallets(),{user:o}=n.usePrivy(),{signMessage:s}=F(),{signTransaction:c}=_(),{signAndSendTransaction:l}=function(){let{isHeadlessSigning:e,openModal:i}=t.usePrivyInternal(),{setModalData:o}=n.usePrivyModal(),{signTransaction:s}=_(),c=q(),{user:l}=n.usePrivy();return{signAndSendTransaction:async({transaction:t,address:u,chain:d="solana:mainnet",options:p})=>{async function m(e){let{signedTransaction:n}=await s({transaction:e,address:u,chain:d,options:{...p,uiOptions:{...p?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await c(d).sendAndConfirmTransaction(n);return{signature:t}}return e({showWalletUIs:p?.uiOptions?.showWalletUIs})?m(t):new Promise((async(e,s)=>{let c=r.getPrivyWalletWithAddress(l,u);if("privy"!==c?.walletClientType)return void s(new a.PrivyClientError("Wallet is not a Privy wallet",void 0,a.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:h}=n.getEntropyDetailsForUser(l,c),f=r.getIsUnifiedWallet(c);function y(e){return n=>{n instanceof a.PrivyClientError?s(n):s(new a.PrivyClientError("Failed to connect to wallet",n,e))}}let w={account:c,transaction:t,chain:d,signOnly:!1,uiOptions:p?.uiOptions||{},onConfirm:m,onSuccess:e,onFailure:y(a.PrivyErrorCode.TRANSACTION_FAILURE)};o({connectWallet:{recoveryMethod:c.recoveryMethod,connectingWalletAddress:c.address,entropyId:g,entropyIdVerifier:h,isUnifiedWallet:f,onCompleteNavigateTo:M,onFailure:y(a.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:w}),i(n.EmbeddedWalletConnectingScreen)}))}}}(),u=e.useMemo((()=>{let e=[...r.getPrivySolanaHDWallets(o).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=r.getImportedPrivySolanaWallet(o);return n?[...e,n]:e}),[o]),d=e.useMemo((()=>({signMessage:async({message:e,address:n,options:t})=>await s({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:r})=>await c({transaction:e,address:n,chain:t,options:r}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:r}){let{signature:a}=await l({transaction:e,address:n,chain:t,options:r});return{signature:a}}})),[s,c,l]);return e.useEffect((()=>{we?.setImplementation(d)}),[d]),e.useEffect((()=>{var e;!i||(e=ve.accounts).length===u.length&&e.every(((e,n)=>e.address===u[n]?.address))||we?.emit("accountChanged",u)}),[i,u]),{ready:i,wallet:ve}}function be(){let{client:n}=t.usePrivyInternal(),{ready:r,wallet:a}=Ae(),[i,o]=e.useState([]),[s,c]=e.useState([]);return e.useEffect((()=>{let e=[a,...i.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?.()))}}),[i]),e.useEffect((()=>{if(!r)return;o(n.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let e=()=>{o(n.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return n.connectors?.on("connectorInitialized",e),()=>{n.connectors?.off("connectorInitialized",e)}}),[r,n.connectors]),{ready:r,wallets:s}}var Se={id:n.SOLANA_LEDGER_PLUGIN_ID,prepareSiwsTransactionWithMemo:({address:e,nonce:t})=>{let r=n.prepareSiwsMessageWithNonce({address:e,nonce:t}),a=new d.Transaction,i=new d.TransactionInstruction({keys:[{pubkey:new d.PublicKey(e),isSigner:!0,isWritable:!1}],programId:new d.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(r,"utf-8")});return a.add(i),a.feePayer=new d.PublicKey(e),a.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",a.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>d.Transaction.from(n.bufferFrom(e,"base64"))};exports.SolanaAdapterConnector=n.SolanaWalletConnector,exports.useSendTransaction=n.useSendTransaction,exports.useSignMessage=n.useSignMessage,exports.useSolanaWallets=n.useSolanaWallets,exports.useFundWallet=u.useFundWallet,exports.toSolanaWalletConnectors=e=>{let t,{get:r,on:a}=g.getWallets(),i=e?.shouldAutoConnect??!0,o=new Map,s=[];function c(...e){y(e).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),s=Array.from(o.values()).map((e=>new n.SolanaWalletConnector(e,i))),t?.(s)}function l(...e){Array.from(o.keys()).forEach((n=>!e.includes(n)&&o.delete(n))),s=Array.from(o.values()).map((e=>new n.SolanaWalletConnector(e,i))),t?.(s)}let u=[a("register",c),a("unregister",l)];return y(r()).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),s=Array.from(o.values()).map((e=>new n.SolanaWalletConnector(e,i))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{u[0]||(u[0]=a("register",c)),u[1]||(u[1]=a("unregister",l))},onUnmount:()=>{let e=u.pop();for(;e;)e(),e=u.pop()},get:()=>s}},exports.useConnectedStandardWallets=function(){let{ready:n,wallets:t}=be();return{ready:n,wallets:e.useMemo((()=>t.flatMap((e=>e.accounts.map((n=>new o.ConnectedStandardSolanaWallet({wallet:e,account:n})))))),[t])}},exports.useCreateWallet=function(){let{create:e}=n.useCreateWalletInternal();return{createWallet:async n=>{n&&"target"in n&&n&&(n=void 0);let{account:t}=await e({chainType:"solana",options:n});return{wallet:t}}}},exports.useExportWallet=function(){let{exportSolanaWallet:e}=t.usePrivyInternal();return{exportWallet:e}},exports.useImportWallet=()=>{let{user:a}=r.usePrivyContext(),{client:i,refreshSessionAndUser:o,initializeWalletProxy:s}=t.usePrivyInternal(),c=n.useEmitPrivyEvent(),l=n.useAppConfig();return{importWallet:e.useCallback((({privateKey:e})=>n.importWallet({getAccessToken:()=>i.getAccessToken(),user:a,initializeWalletProxy:s,refreshSessionAndUser:o,emitPrivyEvent:c,appConfig:l},{privateKey:e,chainType:"solana"})),[a,i,o,s,c])}},exports.usePrivyStandardWallet=Ae,exports.useSignTransaction=function(e){let a=n.useAppConfig(),{user:i}=n.usePrivy(),{setModalData:o}=n.usePrivyModal(),{client:s,isHeadlessSigning:c,openModal:l,walletProxy:u,recoverEmbeddedWallet:d,privy:p,solanaWallets:m}=t.usePrivyInternal(),g=n.useEmitPrivyEvent(),{signWithUserSigner:h}=r.useSignWithUserSigner();return n.usePrivyEventSubscription("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:t,uiOptions:r,transactionOptions:f,address:y})=>{let w=y?m.find((e=>e.address===y&&"privy"!==e.walletClientType)):void 0,{signedTransaction:v}=await n.signOrSendSolanaTransactionInternal({privy:p,appConfig:a,getAccessToken:()=>s.getAccessToken(),isHeadlessSigning:c,emitPrivyEvent:g,setModalData:o,openModal:l,walletProxy:u,user:i,recoverEmbeddedWallet:d,signWithUserSigner:h,connectedExternalWallet:w},{transaction:e,connection:t,transactionOptions:f,uiOptions:r,address:y,signOnly:!0});return v}}},exports.useSolanaFundingPlugin=()=>n.useRegisterPlugin(u.t),exports.useSolanaLedgerPlugin=()=>n.useRegisterPlugin(Se),exports.useSolanaStandardWallets=be,exports.useStandardSignAndSendTransaction=function(){return{signAndSendTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:r})=>await n.signAndSendTransaction({transaction:e,chain:t,options:r})}},exports.useStandardSignMessage=function(){return{signMessage:async({message:e,wallet:n,options:t})=>await n.signMessage({message:e,options:t})}},exports.useStandardSignTransaction=function(){return{signTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:r})=>await n.signTransaction({transaction:e,chain:t,options:r})}};
1
+ "use strict";var e=require("react"),n=require("./privy-provider-zm0SWrLy.js"),t=require("./internal-context-B_aIJuQh.js"),a=require("./use-sign-with-user-signer-mIruAdfm.js"),r=require("./paths-B00ZrFQm.js"),i=require("react/jsx-runtime"),o=require("@heroicons/react/24/outline/CheckCircleIcon"),s=require("@privy-io/js-sdk-core"),c=require("@solana-program/system"),l=require("@solana/kit"),u=require("@solana-program/token"),d=require("eventemitter3"),p=require("@scure/base"),m=require("./useFundWallet-C9bw6h3P.js"),g=require("@solana/web3.js"),f=require("@solana/wallet-adapter-base"),h=require("@solana/wallet-standard-wallet-adapter-base"),y=require("@wallet-standard/app");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("mipd"),require("react-device-detect"),require("viem/utils"),require("viem"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("@marsidev/react-turnstile"),require("styled-components"),require("tinycolor2"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("@heroicons/react/24/outline/CalendarIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("zustand"),require("@headlessui/react"),require("lucide-react"),require("@walletconnect/ethereum-provider"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/UserCircleIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("@heroicons/react/24/outline/CheckIcon"),require("qrcode"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("@heroicons/react/24/outline/CreditCardIcon"),require("@heroicons/react/24/outline/QrCodeIcon"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("ofetch"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/IdentificationIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("js-cookie"),require("@solana/spl-token");var v=/*#__PURE__*/w(o),A=/*#__PURE__*/w(d);let S=e=>e.filter((e=>f.isWalletAdapterCompatibleStandardWallet(e)&&!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet))).map((e=>new h.StandardWalletAdapter({wallet:e})));function I(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}function T({rows:e}){/*#__PURE__*/return i.jsx(n.Rows,{children:e.filter((e=>!!e)).map(((e,t)=>null!=e.value||e.isLoading?/*#__PURE__*/i.jsxs(n.Row,{children:[/*#__PURE__*/i.jsx(n.LabelSm,{children:e.label}),/*#__PURE__*/i.jsx(n.Value,{$isLoading:e.isLoading,children:e.value})]},t):null))})}function b(e){return new Uint8Array(l.getTransactionDecoder().decode(e).messageBytes)}async function C({solanaClient:e,tx:n}){let t=l.getBase64Decoder().decode(b(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}function E(e){switch(e){case"solana:mainnet":return"Solana";case"solana:devnet":return"Devnet";case"solana:testnet":return"Testnet"}}function P(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function k(e){return+O.format(parseFloat(e.toString())/1e9)}let O=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function M({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:a}=await e.rpc.simulateTransaction(l.getBase64Decoder().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 M({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 W(){let{ready:n,wallets:t}=Fe();return{ready:n,wallets:e.useMemo((()=>t.flatMap((e=>e.accounts.map((n=>new s.ConnectedStandardSolanaWallet({wallet:e,account:n})))))),[t])}}async function x({rpcSubscriptions:e,signature:n,timeout:t}){let a=new AbortController,r=await e.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),i=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 r){if(a.abort(),n.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(i instanceof Error)throw i}function F(){let t=n.useAppConfig(),a=e.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,t.solanaRpcs[e]?function({rpc:e,rpcSubscriptions:t,chain:a,blockExplorerUrl:r}){let i=function({rpc:e,rpcSubscriptions:t}){return async a=>new Promise((async(r,i)=>{try{let i=await e.sendTransaction(n.bufferFrom(a).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await x({rpcSubscriptions:t,signature:i,timeout:1e4}),r({signature:new Uint8Array(l.getBase58Encoder().encode(i))})}catch(e){i(e)}}))}({rpc:e,rpcSubscriptions:t});return{rpc:e,rpcSubscriptions:t,chain:a,blockExplorerUrl:r,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.useCallback((e=>{if(!a[e])throw Error(`No RPC configuration found for chain ${e}`);return a[e]}),[a])}async function _({tx:e,solanaClient:t,amount:a,asset:r,tokenPrice:i}){if(!e)return null;if("SOL"===r&&i){let r=P(a),o=n.getFormattedUsdFromLamports(r,i),s=await C({solanaClient:t,tx:e});return{amountInUsd:o,feeInUsd:i?n.getFormattedUsdFromLamports(s,i):void 0,totalInUsd:n.getFormattedUsdFromLamports(r+s,i)}}if("USDC"===r&&i){let r="$"+a,o=await C({solanaClient:t,tx:e}),s=function(e,t){let a=parseFloat(e.toString())/n.LAMPORTS_PER_SOL*t;return a<.01?0:a}(o,i);return{amountInUsd:r,feeInUsd:n.getFormattedUsdFromLamports(o,i),totalInUsd:"$"+(parseFloat(a)+s).toFixed(2)}}if("SOL"===r){let n=P(a),r=await C({solanaClient:t,tx:e});return{amountInSol:a+" SOL",feeInSol:k(r)+" SOL",totalInSol:k(n+r)+" SOL"}}return{amountInUsdc:a+" USDC",feeInSol:k(await C({solanaClient:t,tx:e}))+" SOL"}}async function D({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await M({solanaClient:a,tx:e});if(!i)throw new r.PrivyClientError(`Wallet ${s.formatWalletAddress(t.address)} does not have enough funds.`,void 0,r.PrivyErrorCode.INSUFFICIENT_BALANCE);let o=function(e){return l.getBase58Decoder().decode(e)}((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new r.PrivyClientError("Transaction was rejected by the user",e,r.PrivyErrorCode.TRANSACTION_FAILURE)}))).signature);return await x({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}const U={component:function(){let a=n.useAppConfig(),{closePrivyModal:r,createAnalyticsEvent:o}=t.usePrivyInternal(),{data:d,setModalData:p,navigate:m}=n.usePrivyModal(),{wallets:g}=W(),[f,h]=e.useState("preparing"),[y,w]=e.useState(),[A,S]=e.useState(),[I,b]=e.useState();if(!d?.solanaFundingData)throw Error("Funding config is missing");if(!d.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:C,asset:k,chain:O,sourceWalletData:M,destinationAddress:x,afterSuccessScreen:q}=d.solanaFundingData,j=g.find((e=>e.address===M.address&&M.walletClientType===n.toSolanaWalletClientType(e.standardWallet.name))),L=F()(O),{tokenPrice:R,isTokenPriceLoading:B}=n.useGetTokenPrice("solana");return e.useEffect((()=>{if("preparing"!==f||B||!j)return;let e="SOL"===k?P(C):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(C);S({amount:("SOL"===k&&R?n.getFormattedUsdFromLamports(e,R):C)??C}),("SOL"===k?async function({solanaClient:e,source:n,destination:t,amountInLamports:a}){let{value:r}=await e.rpc.getLatestBlockhash().send(),i={address:n},o=l.pipe(l.createTransactionMessage({version:0}),(e=>l.setTransactionMessageFeePayerSigner(i,e)),(e=>l.setTransactionMessageLifetimeUsingBlockhash(r,e)),(e=>l.appendTransactionMessageInstruction(c.getTransferSolInstruction({amount:a,source:i,destination:t}),e)),(e=>l.compileTransaction(e)));return new Uint8Array(l.getTransactionEncoder().encode(o))}({solanaClient:L,source:j.address,destination:x,amountInLamports:e}):async function({solanaClient:e,source:t,destination:a,amountInBaseUnits:r}){let i=function(e){let[t]=Object.entries(n.DEFAULT_TOKENS_DATA[e]).find((([e,n])=>"USDC"===n.symbol))??[];if(!t)throw Error(`USDC token not found for chain: ${e}`);return t}(e.chain),{value:o}=await e.rpc.getLatestBlockhash().send(),s={address:t},[c]=await u.findAssociatedTokenPda({owner:t,mint:i,tokenProgram:n.TOKEN_PROGRAM_ID}),[d]=await u.findAssociatedTokenPda({owner:a,mint:i,tokenProgram:n.TOKEN_PROGRAM_ID}),[p,m]=await Promise.all([e.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),e.rpc.getAccountInfo(d,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!p?.value)throw Error(`Source token account does not exist for address: ${t}`);let g=u.getCreateAssociatedTokenIdempotentInstruction({payer:s,ata:d,owner:a,mint:i}),f=l.pipe(l.createTransactionMessage({version:0}),(e=>l.setTransactionMessageFeePayerSigner(s,e)),(e=>l.setTransactionMessageLifetimeUsingBlockhash(o,e)),(e=>m?.value?e:l.appendTransactionMessageInstruction(g,e)),(e=>l.appendTransactionMessageInstruction(u.getTransferInstruction({source:c,destination:d,authority:s,amount:r}),e)),(e=>l.compileTransaction(e)));return new Uint8Array(l.getTransactionEncoder().encode(f))}({solanaClient:L,source:j.address,destination:x,amountInBaseUnits:e})).then(w).catch((e=>{h("error"),b(e)}))}),[f,C,k,O,j,x,B,R]),e.useEffect((()=>{"preparing"===f&&y&&_({tx:y,solanaClient:L,amount:C,asset:k,tokenPrice:R}).then((e=>{h("loaded"),S({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??C,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{h("error"),b(e)}))}),[y,C,k,f,R]),e.useEffect((()=>{"error"===f&&I&&(p({errorModalData:{error:I,previousScreen:U},solanaFundingData:d.solanaFundingData}),m(n.ErrorScreen,!1))}),[f,m]),e.useEffect((()=>{if("success"!==f)return;let e=setTimeout(q?()=>m(q):r,n.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(e)}),[f]),"success"===f?/*#__PURE__*/i.jsxs(i.Fragment,{children:[/*#__PURE__*/i.jsx(n.i,{}),/*#__PURE__*/i.jsx(n.RefactorSpacerTop,{}),/*#__PURE__*/i.jsxs(n.CenteredItemWithGap,{children:[/*#__PURE__*/i.jsx(v.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/i.jsx(n.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${C} ${k} to your ${a.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/i.jsx(n.RefactorSpacerBottom,{}),/*#__PURE__*/i.jsx(n.BlobbyFooter,{})]}):"preparing"===f||"loaded"===f||"sending"===f?/*#__PURE__*/i.jsxs(i.Fragment,{children:[/*#__PURE__*/i.jsx(n.i,{}),/*#__PURE__*/i.jsx(n.CenteredItem,{style:{marginTop:"16px"},children:/*#__PURE__*/i.jsx(n.InjectedWalletIcon,{icon:j?.standardWallet.icon,name:j?.standardWallet.name})}),/*#__PURE__*/i.jsx(n.CenteredScreenHeader,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===f&&j?`Confirming with ${j.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/i.jsx(T,{rows:[{label:"Source",value:s.formatWalletAddress(M.address)},{label:"Destination",value:s.formatWalletAddress(x)},{label:"Network",value:E(O)},{label:"Amount",value:A?.amount,isLoading:"preparing"===f},{label:"Estimated fee",value:A?.fee,isLoading:"preparing"===f},{label:"Total",value:A?.total,isLoading:"preparing"===f}]}),/*#__PURE__*/i.jsx(n.PrimaryButton,{style:{marginTop:"1rem"},loading:"preparing"===f||"sending"===f,onClick:function(){"loaded"===f&&y&&j&&(h("sending"),D({solanaClient:L,transaction:y,chain:O,sourceWallet:j}).then((e=>{h("success"),o({eventName:n.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,address:j.address,value:C,chainType:"solana",clusterName:O,token:k,destinationAddress:x,destinationValue:C,destinationChainType:"solana",destinationClusterName:O,destinationToken:k}})})).catch((e=>{h("error"),b(e)})))},children:"Confirm"}),/*#__PURE__*/i.jsx(n.BlobbyFooter,{})]}):
2
+ /*#__PURE__*/i.jsxs(i.Fragment,{children:[/*#__PURE__*/i.jsx(n.i,{}),/*#__PURE__*/i.jsx(n.NeutralSpinner,{}),/*#__PURE__*/i.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/i.jsx(n.BlobbyFooter,{})]})}};async function q({privyClient:e,chain:t,mint:a}){let r=n.DEFAULT_TOKENS_DATA[t];if(!r[a]){let n=await e.getSplTokenMetadata({mintAddress:a,cluster:I(t)});n&&(r[a]={address:a,symbol:n.symbol,decimals:n.decimals})}return r[a]}async function j({tx:e,solanaClient:t,privyClient:a,checkFunds:r}){let i=l.getCompiledTransactionMessageDecoder().decode(b(e)),o=i.staticAccounts[0]??"",s=await C({solanaClient:t,tx:e}),c=r?await n.attempt(M({solanaClient:t,tx:e})):void 0,u=c?.hasFunds??!0,d={},p=[],m=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 l.fetchAddressesForLookupTables(t,e.rpc),r=t.map(((e,t)=>[...n.addressTableLookups[t]?.writableIndexes.map((n=>{let r=a[e]?.[n];if(r)return{key:r,isWritable:!0,altIdx:t}}))??[],...n.addressTableLookups[t]?.readonlyIndexes.map((n=>{let r=a[e]?.[n];if(r)return{key:r,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,...r]}({solanaClient:t,message:i});for(let e of i.instructions){let r=i.staticAccounts[e.programAddressIndex]||"";if(r!==n.TOKEN_PROGRAM_ID&&r!==n.TOKEN_2022_PROGRAM_ID)if(r!==n.SYSTEM_PROGRAM_ID){if(r===n.ASSOCIATED_TOKEN_PROGRAM_ID){let t=await n.attempt(function(e,n,t){let[a,r,i,o]=e.accountIndices?.map((e=>n[e]))??[];return{type:"ata-creation",program:t,payer:a,ata:r,owner:i,mint:o}}(e,m,r));if(!t){p.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}if(p.push(t),t.ata&&t.owner&&t.mint){d[t.ata]={owner:t.owner,mint:t.mint};continue}}if(n.RAYDIUM_SWAP_PROGRAM_IDS.includes(r)){let i=await n.attempt(N(e,m,t,a,r));if(!i){p.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}p.push(i)}else if(n.JUPITER_SWAP_PROGRAM_IDS.includes(r)){let i=await n.attempt($(e,m,t,a,r));if(!i){p.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}p.push(i)}else p.push({type:"unknown",program:r,discriminator:e.data?.[0]})}else{let t=await n.attempt(B(e,m));if(!t){p.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}p.push(t)}else{let i=await n.attempt(R(e,m,t,a,d,r));if(!i){p.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}p.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:o,fee:s,instructions:p,hasFunds:!!u}}function L(e,t=0){try{return n.readBigInt64LEFromUint8Array(e,t)}catch{}try{return e.readBigInt64LE(t)}catch{}let a=n.bufferFrom(e);try{return n.readBigInt64LE(a)}catch{}try{return a.subarray(t).readBigInt64LE()}catch{}try{return a.readBigInt64LE(t)}catch{}return 0n}async function R(e,n,t,a,r,i){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:i,account:e,mint:n,owner:t}}if(3===o){let n,o,[c,l,u]=s,d="",p=l?r[l]:void 0;if(p)n=p.owner,d=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,d=a?.parsed?.info?.mint??"",o=a?.parsed?.info?.tokenAmount?.decimals}if(!d&&c){let e=await t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;d=n?.parsed?.info?.mint??""}let m=await q({privyClient:a,chain:t.chain,mint:d}),g=m?.symbol??"";return o??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:c,fromAccount:u,toAta:l,toAccount:n,value:L(e.data,1),token:{symbol:g,decimals:o,address:d}}}if(9===o){let[e,n,t]=s;return{type:"spl-close-account",program:i,source:e,destination:n,owner:t}}if(17===o)return{type:"spl-sync-native",program:i};throw Error(`Token program instruction type ${o} not supported`)}async function B(e,t){let a=e.data?.[0],r=e.accountIndices?.map((e=>t[e]))??[];if(0===a){let[,t]=r;return{type:"create-account",program:n.SYSTEM_PROGRAM_ID,account:t?.toString(),value:L(e.data,4),withSeed:!1}}if(2===a){let[t,a]=r;return{type:"sol-transfer",program:n.SYSTEM_PROGRAM_ID,fromAccount:t,toAccount:a,token:{symbol:"SOL",decimals:9},value:L(e.data,4),withSeed:!1}}if(3===a){let[,t]=r;return{type:"create-account",program:n.SYSTEM_PROGRAM_ID,account:t,withSeed:!0,value:L(e.data.slice(e.data.length-32-8-8))}}if(11===a){let[t,a]=r;return{type:"sol-transfer",program:n.SYSTEM_PROGRAM_ID,fromAccount:t,toAccount:a,value:L(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${a} not supported`)}async function N(e,n,t,a,r){let i=e.accountIndices?.map((e=>n[e]))??[],o=e.data?.[0];if(143===o){let n=i[10],o=i[11];return{type:"raydium-swap-base-input",program:r,mintIn:n,mintOut:o,tokenIn:n?await q({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await q({privyClient:a,chain:t.chain,mint:o}):void 0,amountIn:L(e.data,8),minimumAmountOut:L(e.data,16)}}if(55===o){let n=i[10],o=i[11];return{type:"raydium-swap-base-output",program:r,mintIn:n,mintOut:o,tokenIn:n?await q({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:o?await q({privyClient:a,chain:t.chain,mint:o}):void 0,maxAmountIn:L(e.data,8),amountOut:L(e.data,16)}}throw Error(`Raydium swap program instruction type ${o} not supported`)}async function $(e,n,t,a,r){let i=e.data?.[0],o=e.accountIndices?.map((e=>n[e]))??[];if([208,51,239,151,123,43,237,92].includes(i)){let n=o[5],i=o[6];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:n,mintOut:i,tokenIn:n?await q({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await q({privyClient:a,chain:t.chain,mint:i}):void 0,outAmount:L(e.data,e.data.length-1-2-8-8),quotedInAmount:L(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(i)){let n=o[7],i=o[8];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:n,mintOut:i,tokenIn:n?await q({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await q({privyClient:a,chain:t.chain,mint:i}):void 0,outAmount:L(e.data,e.data.length-1-2-8-8),quotedInAmount:L(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(i)){let n=o[7],i=o[8];return{type:"jupiter-swap-shared-accounts-route",program:r,mintIn:n,mintOut:i,tokenIn:n?await q({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await q({privyClient:a,chain:t.chain,mint:i}):void 0,inAmount:L(e.data,e.data.length-1-2-8-8),quotedOutAmount:L(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(i)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(i)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(i)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(i)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(i)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(i)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(i)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(i)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(i)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${i} not supported`)}const V={component:()=>{let{data:r,onUserCloseViaDialogOrKeybindRef:o,setModalData:c,navigate:u}=n.usePrivyModal(),{client:d,closePrivyModal:p,walletProxy:m,showFiatPrices:g}=t.usePrivyInternal(),f=n.useAppConfig(),{user:h}=a.usePrivyContext(),y=F()(r?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,v]=e.useState(r?.standardSignAndSendTransaction?.transaction),[A,S]=e.useState(),[I,T]=e.useState(),[C,E]=e.useState({value:0n,isLoading:!1}),[P,k]=e.useState(!1),[O,M]=e.useState({}),[W,x]=e.useState(),_=r?.standardSignAndSendTransaction?.account,D=!!r?.standardSignAndSendTransaction?.signOnly,U=_?.imported?a.getImportedPrivySolanaWallet(h):a.getPrivyPrimaryWallet(h),{solPrice:q,isSolPriceLoading:L}=n.useGetSolPrice({enabled:g}),R=e.useMemo((()=>{if(!A)return;let e=A.spender,t=n.getNativeCurrencyFromLamports(A.fee),a=n.getNativeCurrencyFromLamports(C.value,3,!0),r=A.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=r.at(0);if(!i||r.length>1)return{fee:t,spender:e,balance:a};if("sol-transfer"===i.type)return{fee:t,spender:e,balance:a,total:n.getNativeCurrencyFromLamports(i.value)};if("spl-transfer"===i.type)return{fee:t,spender:e,balance:a,total:`${s.formatTokenAmount({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:a,swap:`${`${s.formatTokenAmount({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${s.formatTokenAmount({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:a,swap:`${`${s.formatTokenAmount({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${s.formatTokenAmount({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:a,swap:`${`${s.formatTokenAmount({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${s.formatTokenAmount({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:a,swap:`${`${s.formatTokenAmount({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${s.formatTokenAmount({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:t,spender:e,balance:a}}),[A,_?.address,C]),B=e.useMemo((()=>{let e;if(!A||!g||!q||L)return;function t(...e){return n.getFormattedUsdFromLamports(e.reduce(((e,n)=>e+n),0n),q??0)}_?.address===A.spender&&(e=t(A.fee));let a=t(C.value),r=A.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!r||A.instructions.length>1?{fee:e,balance:a}:"sol-transfer"===r.type?{fee:e,balance:a,total:t(r.value,_?.address===A.spender?A.fee:0n)}:"spl-transfer"===r.type?{fee:e,balance:a,total:`${s.formatTokenAmount({amount:r.value,decimals:r.token.decimals})} ${r.token.symbol}`}:{fee:e,balance:a}}),[A,g,q,L,_?.address,C]);if(e.useEffect((()=>{!async function(){if(w&&d)try{T(void 0);let e=await j({tx:w,solanaClient:y,privyClient:d,checkFunds:!D});S(e)}catch(e){console.error("Failed to prepare transaction",e),T(e)}}()}),[w,y,d,D]),e.useEffect((()=>{(async function(){if(!_)return;E({value:C.value,isLoading:!0});let{value:e}=await y.rpc.getBalance(_.address,{commitment:"confirmed"}).send();E({value:e??0n,isLoading:!1})})().catch(console.error)}),[A]),!w||!r?.standardSignAndSendTransaction||!_){let e=Error("Invalid transaction request");/*#__PURE__*/return i.jsx(n.ErrorScreenView,{error:e,allowlistConfig:f.allowlistConfig,onRetry:()=>{r?.standardSignAndSendTransaction?.onFailure(e),p({shouldCallAuthOnSuccess:!1})}})}let N=()=>{if(!P)return O.signature||O.signedTransaction?r?.standardSignAndSendTransaction?.onSuccess({signature:O.signature,signedTransaction:O.signedTransaction}):r?.standardSignAndSendTransaction?.onFailure(W??I??Error("User exited the modal before submitting the transaction")),p({shouldCallAuthOnSuccess:!1})};o.current=N;let $=r.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/i.jsx("img",{src:r.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:r.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,V=!!(r.funding&&r.funding.supportedOptions.length>0),G=!A?.hasFunds&&V;if(O.signature||O.signedTransaction){let e=A?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return i.jsx(n.SolanaTransactionReceiptView,{fees:O.fees??0n,onClose:N,transactionInfo:r.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:q,receiptHeader:r.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:r.standardSignAndSendTransaction?.uiOptions.successDescription,rpcEndpoint:y.blockExplorerUrl,signOnly:D,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:R?.total}})}return W?/*#__PURE__*/i.jsx(n.TransactionErrorView,{transactionError:W,rpcEndpoint:y.blockExplorerUrl,onClose:N,network:"solana",onRetry:async()=>{x(void 0);let{value:e}=await y.rpc.getLatestBlockhash().send();v(function(e,n){return l.pipe(l.getCompiledTransactionMessageDecoder().decode(b(e)),(e=>l.decompileTransactionMessage(e)),(e=>l.setTransactionMessageLifetimeUsingBlockhash(n,e)),(e=>l.compileTransaction(e)),(e=>new Uint8Array(l.getTransactionEncoder().encode(e))))}(w,e))}}):/*#__PURE__*/i.jsx(n.SendSolanaTransactionScreenView,{img:$,title:r.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:r.standardSignAndSendTransaction?.uiOptions?.description||`${f.name} wants your permission to approve the following transaction.`,cta:G?"Add funds":r.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:A?.instructions??[],network:"solana:mainnet"==y.chain?"Solana":y.chain.replace("solana:",""),blockExplorerUrl:y.blockExplorerUrl,total:g?B?.total:R?.total,fee:g?B?.fee:R?.fee,balance:g?B?.balance:R?.balance,swap:R?.swap,transactingWalletAddress:_.address,disabled:!A?.hasFunds&&!V,isSubmitting:P,isPreparing:!A||C.isLoading,isTokenPriceLoading:g&&L,isMissingFunds:!A?.hasFunds,submitError:W??void 0,parseError:I,onClick:G?async()=>{if(_){if(!V)throw Error("Funding wallet is not enabled");c({...r,funding:{...r.funding,methodScreen:n.FundingMethodSelectionScreen},solanaFundingData:r?.solanaFundingData}),u(n.FundingMethodSelectionScreen)}}:async()=>{try{if(k(!0),P||!_||!m||!h||!U)return;let e=await r.standardSignAndSendTransaction.onConfirm(w);if("signature"in e){let n=await async function({solanaClient:e,signature:n}){let t=l.getBase58Decoder().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:y,signature:e.signature});return void M({...e,fees:n?.fee})}M(e)}catch(e){console.warn({transaction:w,error:e}),x(e)}finally{k(!1)}},onClose:N})}};function G(e,n,t){let a=structuredClone(l.getTransactionDecoder().decode(e)),r=l.address(n);return r in a.signatures&&(a.signatures[r]=t),new Uint8Array(l.getTransactionEncoder().encode(a))}function J(){let{isHeadlessSigning:e,walletProxy:i,initializeWalletProxy:o,recoverEmbeddedWallet:c,openModal:l,privy:u,client:d}=t.usePrivyInternal(),{user:p}=n.usePrivy(),{setModalData:m}=n.usePrivyModal(),{signWithUserSigner:g}=a.useSignWithUserSigner();return{signMessage:({message:t,address:f,options:h})=>new Promise((async(y,w)=>{let v=a.getPrivyWalletWithAddress(p,f);if("privy"!==v?.walletClientType)return void w(new r.PrivyClientError("Wallet is not a Privy wallet",void 0,r.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:S}=n.getEntropyDetailsForUser(p,v),I=a.getIsUnifiedWallet(v),T=n.bufferFrom(t).toString("base64");if(T.length<1)return void w(new r.PrivyClientError("Message must be a non-empty string",void 0,r.PrivyErrorCode.INVALID_MESSAGE));let b=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let n=await d.getAccessToken();if(!n)throw Error("User must be authenticated to use their embedded wallet.");let t=i??await o(15e3);if(!t)throw Error("Failed to initialize embedded wallet proxy.");if(!await c({address:v.address}))throw Error("Unable to connect to wallet");if(I){let n=await s.rpc(u,g,{chain_type:"solana",method:"signMessage",params:{message:T,encoding:"base64"},wallet_id:v.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:a}=await t.rpc({accessToken:n,entropyId:A,entropyIdVerifier:S,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:h?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:T}}});e=a.data.signature}return e};if(e({showWalletUIs:h?.uiOptions?.showWalletUIs}))try{let e=await b(),t=new Uint8Array(n.bufferFrom(e,"base64"));y({signature:t})}catch(e){w(e)}else m({signMessage:{method:"solana_signMessage",data:T,confirmAndSign:b,onSuccess:e=>{y({signature:new Uint8Array(n.bufferFrom(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:h?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:S,isUnifiedWallet:I,onCompleteNavigateTo:n.SignRequestScreen,onFailure:e=>{w(new r.PrivyClientError("Failed to connect to wallet",e,r.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),l(n.EmbeddedWalletConnectingScreen)}))}}function K(){let{isHeadlessSigning:e,openModal:i}=t.usePrivyInternal(),{setModalData:o}=n.usePrivyModal(),{signMessage:s}=J(),{user:c}=n.usePrivy();return{signTransaction:async({transaction:t,options:l,chain:u="solana:mainnet",address:d})=>{async function p(e){let{signature:n}=await s({message:b(e),address:d,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:G(e,d,n)}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?p(t):new Promise((async(e,s)=>{let m=a.getPrivyWalletWithAddress(c,d);if("privy"!==m?.walletClientType)return void s(new r.PrivyClientError("Wallet is not a Privy wallet",void 0,r.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:f}=n.getEntropyDetailsForUser(c,m),h=a.getIsUnifiedWallet(m);function y(e){return n=>{n instanceof r.PrivyClientError?s(n):s(new r.PrivyClientError("Failed to connect to wallet",n,e))}}let w={account:m,transaction:t,chain:u,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:p,onSuccess:e,onFailure:y(r.PrivyErrorCode.TRANSACTION_FAILURE)};o({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:f,isUnifiedWallet:h,onCompleteNavigateTo:V,onFailure:y(r.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:w}),i(n.EmbeddedWalletConnectingScreen)}))}}}const Y=["solana:mainnet","solana:devnet","solana:testnet"];function H(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Q=0,z="__private_"+Q+++"__implementation";class Z extends A.default{setImplementation(e){H(this,z)[z]=e}async signMessage(e){return H(this,z)[z].signMessage(e)}async signAndSendTransaction(e){return H(this,z)[z].signAndSendTransaction(e)}async signTransaction(e){return H(this,z)[z].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,z,{writable:!0,value:void 0}),H(this,z)[z]=e}}function X(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var ee=0;function ne(e){return"__private_"+ee+++"_"+e}var te=/*#__PURE__*/ne("_address"),ae=/*#__PURE__*/ne("_publicKey"),re=/*#__PURE__*/ne("_chains"),ie=/*#__PURE__*/ne("_features"),oe=/*#__PURE__*/ne("_label"),se=/*#__PURE__*/ne("_icon");class ce{get address(){return X(this,te)[te]}get publicKey(){return X(this,ae)[ae].slice()}get chains(){return X(this,re)[re].slice()}get features(){return X(this,ie)[ie].slice()}get label(){return X(this,oe)[oe]}get icon(){return X(this,se)[se]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,te,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,se,{writable:!0,value:void 0}),X(this,te)[te]=e,X(this,ae)[ae]=n,X(this,re)[re]=Y,X(this,oe)[oe]=t,X(this,se)[se]=a,X(this,ie)[ie]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===ce&&Object.freeze(this)}}function le(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var ue=0;function de(e){return"__private_"+ue+++"_"+e}var pe=/*#__PURE__*/de("_listeners"),me=/*#__PURE__*/de("_version"),ge=/*#__PURE__*/de("_name"),fe=/*#__PURE__*/de("_icon"),he=/*#__PURE__*/de("_injection"),ye=/*#__PURE__*/de("_isPrivyWallet"),we=/*#__PURE__*/de("_accounts"),ve=/*#__PURE__*/de("_on"),Ae=/*#__PURE__*/de("_emit"),Se=/*#__PURE__*/de("_off"),Ie=/*#__PURE__*/de("_connected"),Te=/*#__PURE__*/de("_connect"),be=/*#__PURE__*/de("_disconnect"),Ce=/*#__PURE__*/de("_signMessage"),Ee=/*#__PURE__*/de("_signAndSendTransaction"),Pe=/*#__PURE__*/de("_signTransaction");function ke(e,...n){le(this,pe)[pe][e]?.forEach((e=>e.apply(null,n)))}function Oe(e,n){le(this,pe)[pe][e]=le(this,pe)[pe][e]?.filter((e=>n!==e))}let Me=new Z({signTransaction:t.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:t.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:t.notImplementedWithMessage("signMessage was not injected")}),We=new class{get version(){return le(this,me)[me]}get name(){return le(this,ge)[ge]}get icon(){return le(this,fe)[fe]}get chains(){return Y.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:le(this,Te)[Te]},"standard:disconnect":{version:"1.0.0",disconnect:le(this,be)[be]},"standard:events":{version:"1.0.0",on:le(this,ve)[ve]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:le(this,Ee)[Ee]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:le(this,Pe)[Pe]},"solana:signMessage":{version:"1.0.0",signMessage:le(this,Ce)[Ce]},"privy:":{privy:{signMessage:le(this,he)[he].signMessage,signTransaction:le(this,he)[he].signTransaction,signAndSendTransaction:le(this,he)[he].signAndSendTransaction}}}}get accounts(){return le(this,we)[we].slice()}get isPrivyWallet(){return le(this,ye)[ye]}constructor({name:e,icon:n,version:t,injection:a,wallets:r}){Object.defineProperty(this,Ae,{value:ke}),Object.defineProperty(this,Se,{value:Oe}),Object.defineProperty(this,pe,{writable:!0,value:void 0}),Object.defineProperty(this,me,{writable:!0,value:void 0}),Object.defineProperty(this,ge,{writable:!0,value:void 0}),Object.defineProperty(this,fe,{writable:!0,value:void 0}),Object.defineProperty(this,he,{writable:!0,value:void 0}),Object.defineProperty(this,ye,{writable:!0,value:void 0}),Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),Object.defineProperty(this,Ie,{writable:!0,value:void 0}),Object.defineProperty(this,Te,{writable:!0,value:void 0}),Object.defineProperty(this,be,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,Ee,{writable:!0,value:void 0}),Object.defineProperty(this,Pe,{writable:!0,value:void 0}),le(this,pe)[pe]={},le(this,ve)[ve]=(e,n)=>(le(this,pe)[pe][e]?.push(n)||(le(this,pe)[pe][e]=[n]),()=>le(this,Se)[Se](e,n)),le(this,Ie)[Ie]=e=>{null!=e&&(le(this,we)[we]=e.map((({address:e})=>new ce({address:e,publicKey:p.base58.decode(e)})))),le(this,Ae)[Ae]("change",{accounts:this.accounts})},le(this,Te)[Te]=async()=>(le(this,Ae)[Ae]("change",{accounts:this.accounts}),{accounts:this.accounts}),le(this,be)[be]=async()=>{le(this,Ae)[Ae]("change",{accounts:this.accounts})},le(this,Ce)[Ce]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await le(this,he)[he].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},le(this,Ee)[Ee]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:r,chain:i}of e){let{signature:e}=await le(this,he)[he].signAndSendTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:r});n.push({signature:e})}return n},le(this,Pe)[Pe]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:r,chain:i}of e){let{signedTransaction:e}=await le(this,he)[he].signTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:r});n.push({signedTransaction:e})}return n},le(this,ge)[ge]=e,le(this,fe)[fe]=n,le(this,me)[me]=t,le(this,he)[he]=a,le(this,we)[we]=[],le(this,ye)[ye]=!0,a.on("accountChanged",le(this,Ie)[Ie],this),le(this,Ie)[Ie](r)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Me});function xe(){let{ready:i}=n.useWallets(),{user:o}=n.usePrivy(),{signMessage:s}=J(),{signTransaction:c}=K(),{signAndSendTransaction:l}=function(){let e=n.useAppConfig(),{isHeadlessSigning:i,openModal:o}=t.usePrivyInternal(),{setModalData:s}=n.usePrivyModal(),{signTransaction:c}=K(),l=F(),{user:u}=n.usePrivy();return{signAndSendTransaction:async({transaction:t,address:d,chain:p="solana:mainnet",options:m})=>{async function g(e){let{signedTransaction:n}=await c({transaction:e,address:d,chain:p,options:{...m,uiOptions:{...m?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await l(p).sendAndConfirmTransaction(n);return{signature:t}}return i({showWalletUIs:m?.uiOptions?.showWalletUIs})?g(t):new Promise((async(i,c)=>{let l,f,h=a.getPrivyWalletWithAddress(u,d);if("privy"!==h?.walletClientType)return void c(new r.PrivyClientError("Wallet is not a Privy wallet",void 0,r.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:y,entropyIdVerifier:w}=n.getEntropyDetailsForUser(u,h),v=a.getIsUnifiedWallet(h);function A(e){return n=>{n instanceof r.PrivyClientError?c(n):c(new r.PrivyClientError("Failed to connect to wallet",n,e))}}let S={account:h,transaction:t,chain:p,signOnly:!1,uiOptions:m?.uiOptions||{},onConfirm:g,onSuccess:i,onFailure:A(r.PrivyErrorCode.TRANSACTION_FAILURE)},T={recoveryMethod:h.recoveryMethod,connectingWalletAddress:h.address,entropyId:y,entropyIdVerifier:w,isUnifiedWallet:v,onCompleteNavigateTo:V,onFailure:A(r.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(l=n.prepareSolanaFundingModalData({address:d,appConfig:e,methodScreen:n.FundingMethodSelectionScreen,fundWalletConfig:{...m,asset:"native-currency",cluster:{name:I(p)}},externalSolanaFundingScreen:U}),f={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:p,destinationAddress:d,afterSuccessScreen:V,sourceWalletData:void 0}),s({connectWallet:T,standardSignAndSendTransaction:S,funding:l,solanaFundingData:f}),o(n.EmbeddedWalletConnectingScreen)}))}}}(),u=e.useMemo((()=>{let e=[...a.getPrivySolanaHDWallets(o).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=a.getImportedPrivySolanaWallet(o);return n?[...e,n]:e}),[o]),d=e.useMemo((()=>({signMessage:async({message:e,address:n,options:t})=>await s({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await c({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:r}=await l({transaction:e,address:n,chain:t,options:a});return{signature:r}}})),[s,c,l]);return e.useEffect((()=>{Me?.setImplementation(d)}),[d]),e.useEffect((()=>{var e;!i||(e=We.accounts).length===u.length&&e.every(((e,n)=>e.address===u[n]?.address))||Me?.emit("accountChanged",u)}),[i,u]),{ready:i,wallet:We}}function Fe(){let{client:n}=t.usePrivyInternal(),{ready:a,wallet:r}=xe(),[i,o]=e.useState([]),[s,c]=e.useState([]);return e.useEffect((()=>{let e=[r,...i.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?.()))}}),[i]),e.useEffect((()=>{if(!a)return;o(n.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let e=()=>{o(n.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return n.connectors?.on("connectorInitialized",e),()=>{n.connectors?.off("connectorInitialized",e)}}),[a,n.connectors]),{ready:a,wallets:s}}var _e={id:n.SOLANA_LEDGER_PLUGIN_ID,prepareSiwsTransactionWithMemo:({address:e,nonce:t})=>{let a=n.prepareSiwsMessageWithNonce({address:e,nonce:t}),r=new g.Transaction,i=new g.TransactionInstruction({keys:[{pubkey:new g.PublicKey(e),isSigner:!0,isWritable:!1}],programId:new g.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(a,"utf-8")});return r.add(i),r.feePayer=new g.PublicKey(e),r.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",r.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>g.Transaction.from(n.bufferFrom(e,"base64"))};exports.SolanaAdapterConnector=n.SolanaWalletConnector,exports.useSendTransaction=n.useSendTransaction,exports.useSignMessage=n.useSignMessage,exports.useSolanaWallets=n.useSolanaWallets,exports.useFundWallet=m.useFundWallet,exports.toSolanaWalletConnectors=e=>{let t,{get:a,on:r}=y.getWallets(),i=e?.shouldAutoConnect??!0,o=new Map,s=[];function c(...e){S(e).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),s=Array.from(o.values()).map((e=>new n.SolanaWalletConnector(e,i))),t?.(s)}function l(...e){Array.from(o.keys()).forEach((n=>!e.includes(n)&&o.delete(n))),s=Array.from(o.values()).map((e=>new n.SolanaWalletConnector(e,i))),t?.(s)}let u=[r("register",c),r("unregister",l)];return S(a()).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),s=Array.from(o.values()).map((e=>new n.SolanaWalletConnector(e,i))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{u[0]||(u[0]=r("register",c)),u[1]||(u[1]=r("unregister",l))},onUnmount:()=>{let e=u.pop();for(;e;)e(),e=u.pop()},get:()=>s}},exports.useConnectedStandardWallets=W,exports.useCreateWallet=function(){let{create:e}=n.useCreateWalletInternal();return{createWallet:async n=>{n&&"target"in n&&n&&(n=void 0);let{account:t}=await e({chainType:"solana",options:n});return{wallet:t}}}},exports.useExportWallet=function(){let{exportSolanaWallet:e}=t.usePrivyInternal();return{exportWallet:e}},exports.useImportWallet=()=>{let{user:r}=a.usePrivyContext(),{client:i,refreshSessionAndUser:o,initializeWalletProxy:s}=t.usePrivyInternal(),c=n.useEmitPrivyEvent(),l=n.useAppConfig();return{importWallet:e.useCallback((({privateKey:e})=>n.importWallet({getAccessToken:()=>i.getAccessToken(),user:r,initializeWalletProxy:s,refreshSessionAndUser:o,emitPrivyEvent:c,appConfig:l},{privateKey:e,chainType:"solana"})),[r,i,o,s,c])}},exports.usePrivyStandardWallet=xe,exports.useSignTransaction=function(e){let r=n.useAppConfig(),{user:i}=n.usePrivy(),{setModalData:o}=n.usePrivyModal(),{client:s,isHeadlessSigning:c,openModal:l,walletProxy:u,recoverEmbeddedWallet:d,privy:p,solanaWallets:m}=t.usePrivyInternal(),g=n.useEmitPrivyEvent(),{signWithUserSigner:f}=a.useSignWithUserSigner();return n.usePrivyEventSubscription("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:t,uiOptions:a,transactionOptions:h,address:y})=>{let w=y?m.find((e=>e.address===y&&"privy"!==e.walletClientType)):void 0,{signedTransaction:v}=await n.signOrSendSolanaTransactionInternal({privy:p,appConfig:r,getAccessToken:()=>s.getAccessToken(),isHeadlessSigning:c,emitPrivyEvent:g,setModalData:o,openModal:l,walletProxy:u,user:i,recoverEmbeddedWallet:d,signWithUserSigner:f,connectedExternalWallet:w},{transaction:e,connection:t,transactionOptions:h,uiOptions:a,address:y,signOnly:!0});return v}}},exports.useSolanaFundingPlugin=()=>n.useRegisterPlugin(m.t),exports.useSolanaLedgerPlugin=()=>n.useRegisterPlugin(_e),exports.useSolanaStandardWallets=Fe,exports.useStandardFundWallet=function(){let e=n.useAppConfig(),{openModal:a}=t.usePrivyInternal(),{setModalData:r}=n.usePrivyModal();return{fundWallet:async({address:t,options:i})=>{let o=i?.amount||e.fundingConfig?.defaultRecommendedAmount||"1",s=i?.asset||("USDC"===e.fundingConfig?.defaultRecommendedCurrency.asset?"USDC":"SOL"),c=i?.chain||"solana:mainnet";r({funding:n.prepareSolanaFundingModalData({address:t,appConfig:e,methodScreen:n.FundingMethodSelectionScreen,fundWalletConfig:{...i,amount:o,asset:"SOL"===s?"native-currency":"USDC",cluster:{name:I(c)}},externalSolanaFundingScreen:U}),solanaFundingData:{amount:o,asset:s,chain:c,destinationAddress:t,sourceWalletData:void 0}}),a(n.FundingMethodSelectionScreen)}}},exports.useStandardSignAndSendTransaction=function(){return{signAndSendTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:a})=>await n.signAndSendTransaction({transaction:e,chain:t,options:a})}},exports.useStandardSignMessage=function(){return{signMessage:async({message:e,wallet:n,options:t})=>await n.signMessage({message:e,options:t})}},exports.useStandardSignTransaction=function(){return{signTransaction:async({transaction:e,wallet:n,chain:t="solana:mainnet",options:a})=>await n.signTransaction({transaction:e,chain:t,options:a})}};