@privy-io/react-auth 2.21.4 → 2.22.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.
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/privy-provider-DXrPQcjO.js +34 -0
- package/dist/cjs/{smart-wallets-Cgv0XYXg.js → smart-wallets-ohOqJE5r.js} +1 -1
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/ui.js +2 -2
- package/dist/cjs/use-sign-with-user-signer-mIruAdfm.js +1 -0
- package/dist/cjs/{useActiveWallet-CYfVhCkS.js → useActiveWallet-BOhTaQoP.js} +1 -1
- package/dist/cjs/{useFundWallet-CdT-bV73.js → useFundWallet-BlDOcTKs.js} +1 -1
- package/dist/dts/extended-chains.d.mts +1 -1
- package/dist/dts/extended-chains.d.ts +1 -1
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +16 -4
- package/dist/dts/index.d.ts +16 -4
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +63 -6
- package/dist/dts/solana.d.ts +63 -6
- package/dist/dts/{types-DRqchVAL.d.mts → types-koC7eIOP.d.mts} +62 -3
- package/dist/dts/{types-DRqchVAL.d.ts → types-koC7eIOP.d.ts} +62 -3
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/dts/{useSolanaWallets-yARRzx3f.d.mts → useSolanaWallets-CDu74ZFA.d.mts} +4 -1
- package/dist/dts/{useSolanaWallets-yARRzx3f.d.ts → useSolanaWallets-CDu74ZFA.d.ts} +4 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/privy-provider-CoOSBvfN.mjs +31 -0
- package/dist/esm/{smart-wallets-ScQvzONo.mjs → smart-wallets-TO2YIcTb.mjs} +1 -1
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/ui.mjs +2 -2
- package/dist/esm/{use-sign-with-user-signer-DYa7HrQH.mjs → use-sign-with-user-signer-u7zZ9cLA.mjs} +1 -1
- package/dist/esm/{useActiveWallet-CBnd9EMy.mjs → useActiveWallet-DknggGRp.mjs} +1 -1
- package/dist/esm/{useFundWallet-DSxHvjFr.mjs → useFundWallet-DvuaQdcB.mjs} +1 -1
- package/package.json +19 -8
- package/dist/cjs/privy-provider-dT3e7Jkf.js +0 -29
- package/dist/cjs/use-sign-with-user-signer-gh4MDT3P.js +0 -1
- package/dist/esm/privy-provider-BkunMgHl.mjs +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("viem"),r=require("./use-sign-with-user-signer-gh4MDT3P.js"),n=require("./privy-provider-dT3e7Jkf.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-DXrPQcjO.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-
|
|
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-DXrPQcjO.js"),n=require("./paths-B00ZrFQm.js"),o=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),c=require("./smart-wallets-ohOqJE5r.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}};
|
package/dist/cjs/solana.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("@solana/wallet-adapter-base"),n=require("@solana/wallet-standard-wallet-adapter-base"),r=require("@wallet-standard/app"),t=require("./privy-provider-dT3e7Jkf.js"),i=require("react"),s=require("./internal-context-B_aIJuQh.js"),o=require("./use-sign-with-user-signer-gh4MDT3P.js"),a=require("@solana/web3.js"),c=require("eventemitter3"),l=require("@scure/base"),u=require("./useFundWallet-CdT-bV73.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react/jsx-runtime"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/js-sdk-core"),require("./paths-B00ZrFQm.js"),require("ofetch"),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("@heroicons/react/24/outline/CheckIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),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/24/outline/EnvelopeIcon"),require("@heroicons/react/20/solid/CheckIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/ArrowTopRightOnSquareIcon"),require("@heroicons/react/24/solid/DocumentCheckIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("qrcode"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/ChevronRightIcon"),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/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/LockClosedIcon"),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/outline/GlobeAltIcon"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/outline/CloudArrowUpIcon"),require("@heroicons/react/24/outline/NoSymbolIcon"),require("@heroicons/react/24/outline/ClockIcon"),require("@heroicons/react/24/outline/TrashIcon"),require("@heroicons/react/24/solid/CheckBadgeIcon"),require("@heroicons/react/24/solid/IdentificationIcon"),require("@heroicons/react/24/outline/MinusCircleIcon"),require("@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon"),require("@heroicons/react/24/solid/ShieldCheckIcon"),require("js-cookie"),require("@solana/spl-token");var h=/*#__PURE__*/d(c);let g=r=>r.filter((n=>e.isWalletAdapterCompatibleStandardWallet(n)&&!(n.features["privy:"]&&"isPrivyWallet"in n&&n.isPrivyWallet))).map((e=>new n.StandardWalletAdapter({wallet:e})));const p=["solana:mainnet","solana:devnet","solana:testnet"];function v(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet";default:throw Error(`Unknown chain: ${e}`)}}function A(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var y=0,f="__private_"+y+++"__implementation";class w extends h.default{setImplementation(e){A(this,f)[f]=e}async signMessage(e,n){return A(this,f)[f].signMessage(e,n)}async signAndSendTransaction(e,n,r,t){return A(this,f)[f].signAndSendTransaction(e,n,r,t)}async signTransaction(e,n,r,t){return A(this,f)[f].signTransaction(e,n,r,t)}constructor(e){super(),Object.defineProperty(this,f,{writable:!0,value:void 0}),A(this,f)[f]=e}}function q(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var b=0;function I(e){return"__private_"+b+++"_"+e}var m=/*#__PURE__*/I("_address"),T=/*#__PURE__*/I("_publicKey"),P=/*#__PURE__*/I("_chains"),S=/*#__PURE__*/I("_features"),C=/*#__PURE__*/I("_label"),j=/*#__PURE__*/I("_icon");class W{get address(){return q(this,m)[m]}get publicKey(){return q(this,T)[T].slice()}get chains(){return q(this,P)[P].slice()}get features(){return q(this,S)[S].slice()}get label(){return q(this,C)[C]}get icon(){return q(this,j)[j]}constructor({address:e,publicKey:n,label:r,icon:t}){Object.defineProperty(this,m,{writable:!0,value:void 0}),Object.defineProperty(this,T,{writable:!0,value:void 0}),Object.defineProperty(this,P,{writable:!0,value:void 0}),Object.defineProperty(this,S,{writable:!0,value:void 0}),Object.defineProperty(this,C,{writable:!0,value:void 0}),Object.defineProperty(this,j,{writable:!0,value:void 0}),q(this,m)[m]=e,q(this,T)[T]=n,q(this,P)[P]=p,q(this,C)[C]=r,q(this,j)[j]=t,q(this,S)[S]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===W&&Object.freeze(this)}}function E(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var O=0;function M(e){return"__private_"+O+++"_"+e}var _=/*#__PURE__*/M("_listeners"),k=/*#__PURE__*/M("_version"),x=/*#__PURE__*/M("_name"),B=/*#__PURE__*/M("_icon"),D=/*#__PURE__*/M("_injection"),F=/*#__PURE__*/M("_isPrivyWallet"),U=/*#__PURE__*/M("_accounts"),V=/*#__PURE__*/M("_on"),K=/*#__PURE__*/M("_emit"),R=/*#__PURE__*/M("_off"),Q=/*#__PURE__*/M("_connected"),G=/*#__PURE__*/M("_connect"),J=/*#__PURE__*/M("_disconnect"),z=/*#__PURE__*/M("_signMessage"),L=/*#__PURE__*/M("_signAndSendTransaction"),Y=/*#__PURE__*/M("_signTransaction");function H(e,...n){E(this,_)[_][e]?.forEach((e=>e.apply(null,n)))}function N(e,n){E(this,_)[_][e]=E(this,_)[_][e]?.filter((e=>n!==e))}function Z(e){let n=t.useAppConfig(),{user:r}=t.usePrivy(),{setModalData:i}=t.usePrivyModal(),{client:a,isHeadlessSigning:c,openModal:l,walletProxy:u,recoverEmbeddedWallet:d,privy:h,solanaWallets:g}=s.usePrivyInternal(),p=t.useEmitPrivyEvent(),{signWithUserSigner:v}=o.useSignWithUserSigner();return t.usePrivyEventSubscription("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:s,uiOptions:o,transactionOptions:A,address:y})=>{let f=y?g.find((e=>e.address===y&&"privy"!==e.walletClientType)):void 0,{signedTransaction:w}=await t.signOrSendSolanaTransactionInternal({privy:h,appConfig:n,getAccessToken:()=>a.getAccessToken(),isHeadlessSigning:c,emitPrivyEvent:p,setModalData:i,openModal:l,walletProxy:u,user:r,recoverEmbeddedWallet:d,signWithUserSigner:v,connectedExternalWallet:f},{transaction:e,connection:s,transactionOptions:A,uiOptions:o,address:y,signOnly:!0});return w}}}let X=new w({signTransaction:s.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:s.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:s.notImplementedWithMessage("signMessage was not injected")}),$=new class{get version(){return E(this,k)[k]}get name(){return E(this,x)[x]}get icon(){return E(this,B)[B]}get chains(){return p.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:E(this,G)[G]},"standard:disconnect":{version:"1.0.0",disconnect:E(this,J)[J]},"standard:events":{version:"1.0.0",on:E(this,V)[V]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:E(this,L)[L]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:E(this,Y)[Y]},"solana:signMessage":{version:"1.0.0",signMessage:E(this,z)[z]},"privy:":{privy:{signMessage:E(this,D)[D].signMessage,signTransaction:E(this,D)[D].signTransaction,signAndSendTransaction:E(this,D)[D].signAndSendTransaction}}}}get accounts(){return E(this,U)[U].slice()}get isPrivyWallet(){return E(this,F)[F]}constructor({name:e,icon:n,version:r,injection:i,wallets:s}){Object.defineProperty(this,K,{value:H}),Object.defineProperty(this,R,{value:N}),Object.defineProperty(this,_,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,D,{writable:!0,value:void 0}),Object.defineProperty(this,F,{writable:!0,value:void 0}),Object.defineProperty(this,U,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),E(this,_)[_]={},E(this,V)[V]=(e,n)=>(E(this,_)[_][e]?.push(n)||(E(this,_)[_][e]=[n]),()=>E(this,R)[R](e,n)),E(this,Q)[Q]=e=>{null!=e&&(E(this,U)[U]=e.map((({address:e})=>new W({address:e,publicKey:l.base58.decode(e)})))),E(this,K)[K]("change",{accounts:this.accounts})},E(this,G)[G]=async()=>(E(this,K)[K]("change",{accounts:this.accounts}),{accounts:this.accounts}),E(this,J)[J]=async()=>{E(this,K)[K]("change",{accounts:this.accounts})},E(this,z)[z]=async(...e)=>{let n=[];for(let{message:r,account:t}of e){let{signature:e}=await E(this,D)[D].signMessage(r,t.address);n.push({signedMessage:r,signature:e})}return n},E(this,L)[L]=async(...e)=>{let n=[];for(let{transaction:r,account:t,options:i,chain:s}of e){let{signature:e}=await E(this,D)[D].signAndSendTransaction(a.VersionedTransaction.deserialize(r),t.address,v(s||"solana:mainnet"),i);n.push({signature:l.base58.decode(e)})}return n},E(this,Y)[Y]=async(...e)=>{let n=[];for(let{transaction:r,account:i,options:s,chain:o}of e){let e=await E(this,D)[D].signTransaction(a.VersionedTransaction.deserialize(r),i.address,v(o||"solana:mainnet"),s),c=t.isVersionedTransaction(e)?e.serialize():new Uint8Array(e.serialize({requireAllSignatures:!1,verifySignatures:!1}));n.push({signedTransaction:c})}return n},E(this,x)[x]=e,E(this,B)[B]=n,E(this,k)[k]=r,E(this,D)[D]=i,E(this,U)[U]=[],E(this,F)[F]=!0,i.on("accountChanged",E(this,Q)[Q],this),E(this,Q)[Q](s)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:X});function ee(){let{solanaClusters:e}=t.useAppConfig(),{ready:n}=t.useWallets(),{user:r}=t.usePrivy(),{signMessage:s}=t.useSignMessage(),{signTransaction:c}=Z(),{sendTransaction:l}=t.useSendTransaction(),u=i.useMemo((()=>{let e=[...o.getPrivySolanaHDWallets(r).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=o.getImportedPrivySolanaWallet(r);return n?[...e,n]:e}),[r]),d=i.useMemo((()=>({signMessage:async(e,n)=>({signature:await s({message:e,options:{address:n}})}),async signTransaction(n,r,t){let i=new a.Connection(e[t].rpcUrl);return await c({transaction:n,address:r,connection:i})},async signAndSendTransaction(n,r,t,i){let s=new a.Connection(e[t].rpcUrl),{signature:o}=await l({transaction:n,connection:s,address:r,transactionOptions:i});return{signature:o}}})),[s,c,l,e]);return i.useEffect((()=>{X?.setImplementation(d)}),[d]),i.useEffect((()=>{var e;!n||(e=$.accounts).length===u.length&&e.every(((e,n)=>e.address===u[n]?.address))||X?.emit("accountChanged",u)}),[n,u]),{ready:n,wallet:$}}var ne={id:t.SOLANA_LEDGER_PLUGIN_ID,prepareSiwsTransactionWithMemo:({address:e,nonce:n})=>{let r=t.prepareSiwsMessageWithNonce({address:e,nonce:n}),i=new a.Transaction,s=new a.TransactionInstruction({keys:[{pubkey:new a.PublicKey(e),isSigner:!0,isWritable:!1}],programId:new a.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(r,"utf-8")});return i.add(s),i.feePayer=new a.PublicKey(e),i.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",i.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>a.Transaction.from(t.bufferFrom(e,"base64"))};exports.SolanaAdapterConnector=t.SolanaWalletConnector,exports.useSendTransaction=t.useSendTransaction,exports.useSignMessage=t.useSignMessage,exports.useSolanaWallets=t.useSolanaWallets,exports.useFundWallet=u.useFundWallet,exports.toSolanaWalletConnectors=e=>{let n,{get:i,on:s}=r.getWallets(),o=e?.shouldAutoConnect??!0,a=new Map,c=[];function l(...e){g(e).forEach((e=>!a.has(e.wallet)&&a.set(e.wallet,e))),c=Array.from(a.values()).map((e=>new t.SolanaWalletConnector(e,o))),n?.(c)}function u(...e){Array.from(a.keys()).forEach((n=>!e.includes(n)&&a.delete(n))),c=Array.from(a.values()).map((e=>new t.SolanaWalletConnector(e,o))),n?.(c)}let d=[s("register",l),s("unregister",u)];return g(i()).forEach((e=>!a.has(e.wallet)&&a.set(e.wallet,e))),c=Array.from(a.values()).map((e=>new t.SolanaWalletConnector(e,o))),{_setOnConnectorsUpdated:e=>{n=e},onMount:()=>{d[0]||(d[0]=s("register",l)),d[1]||(d[1]=s("unregister",u))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>c}},exports.useImportWallet=()=>{let{user:e}=o.usePrivyContext(),{client:n,refreshSessionAndUser:r,initializeWalletProxy:a}=s.usePrivyInternal(),c=t.useEmitPrivyEvent(),l=t.useAppConfig();return{importWallet:i.useCallback((({privateKey:i})=>t.importWallet({getAccessToken:()=>n.getAccessToken(),user:e,initializeWalletProxy:a,refreshSessionAndUser:r,emitPrivyEvent:c,appConfig:l},{privateKey:i,chainType:"solana"})),[e,n,r,a,c])}},exports.usePrivyStandardWallet=ee,exports.useSignTransaction=Z,exports.useSolanaFundingPlugin=()=>t.useRegisterPlugin(u.t),exports.useSolanaLedgerPlugin=()=>t.useRegisterPlugin(ne),exports.useSolanaStandardWallets=function(){let{client:e}=s.usePrivyInternal(),{ready:n,wallet:r}=ee(),[t,o]=i.useState([]),[a,c]=i.useState([]);return i.useEffect((()=>{let e=[r,...t.filter((e=>"solana"===e.chainType)).map((e=>e.wallet))];c(e);let n=e.map((n=>n.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{n.forEach((e=>e?.()))}}),[t]),i.useEffect((()=>{if(!n)return;o(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let r=()=>{o(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",r),()=>{e.connectors?.off("connectorInitialized",r)}}),[n,e.connectors]),{ready:n,wallets:a}};
|
|
1
|
+
"use strict";var e=require("@solana/wallet-adapter-base"),t=require("@solana/wallet-standard-wallet-adapter-base"),n=require("@wallet-standard/app"),r=require("./privy-provider-DXrPQcjO.js"),i=require("react"),a=require("./internal-context-B_aIJuQh.js"),s=require("./use-sign-with-user-signer-mIruAdfm.js"),o=require("@solana/web3.js"),c=require("eventemitter3"),l=require("@scure/base"),u=require("./useFundWallet-BlDOcTKs.js"),d=require("@privy-io/js-sdk-core");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react/jsx-runtime"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("./paths-B00ZrFQm.js"),require("ofetch"),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("@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 g=/*#__PURE__*/h(c);let p=n=>n.filter((t=>e.isWalletAdapterCompatibleStandardWallet(t)&&!(t.features["privy:"]&&"isPrivyWallet"in t&&t.isPrivyWallet))).map((e=>new t.StandardWalletAdapter({wallet:e})));const v=["solana:mainnet","solana:devnet","solana:testnet"];function y(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet";default:throw Error(`Unknown chain: ${e}`)}}function A(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var f=0,w="__private_"+f+++"__implementation";class q extends g.default{setImplementation(e){A(this,w)[w]=e}async signMessage(e,t){return A(this,w)[w].signMessage(e,t)}async signAndSendTransaction(e,t,n,r){return A(this,w)[w].signAndSendTransaction(e,t,n,r)}async signTransaction(e,t,n,r){return A(this,w)[w].signTransaction(e,t,n,r)}constructor(e){super(),Object.defineProperty(this,w,{writable:!0,value:void 0}),A(this,w)[w]=e}}function b(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var m=0;function I(e){return"__private_"+m+++"_"+e}var S=/*#__PURE__*/I("_address"),P=/*#__PURE__*/I("_publicKey"),T=/*#__PURE__*/I("_chains"),C=/*#__PURE__*/I("_features"),W=/*#__PURE__*/I("_label"),j=/*#__PURE__*/I("_icon");class E{get address(){return b(this,S)[S]}get publicKey(){return b(this,P)[P].slice()}get chains(){return b(this,T)[T].slice()}get features(){return b(this,C)[C].slice()}get label(){return b(this,W)[W]}get icon(){return b(this,j)[j]}constructor({address:e,publicKey:t,label:n,icon:r}){Object.defineProperty(this,S,{writable:!0,value:void 0}),Object.defineProperty(this,P,{writable:!0,value:void 0}),Object.defineProperty(this,T,{writable:!0,value:void 0}),Object.defineProperty(this,C,{writable:!0,value:void 0}),Object.defineProperty(this,W,{writable:!0,value:void 0}),Object.defineProperty(this,j,{writable:!0,value:void 0}),b(this,S)[S]=e,b(this,P)[P]=t,b(this,T)[T]=v,b(this,W)[W]=n,b(this,j)[j]=r,b(this,C)[C]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===E&&Object.freeze(this)}}function M(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var O=0;function x(e){return"__private_"+O+++"_"+e}var _=/*#__PURE__*/x("_listeners"),k=/*#__PURE__*/x("_version"),B=/*#__PURE__*/x("_name"),D=/*#__PURE__*/x("_icon"),F=/*#__PURE__*/x("_injection"),U=/*#__PURE__*/x("_isPrivyWallet"),V=/*#__PURE__*/x("_accounts"),K=/*#__PURE__*/x("_on"),Q=/*#__PURE__*/x("_emit"),R=/*#__PURE__*/x("_off"),G=/*#__PURE__*/x("_connected"),J=/*#__PURE__*/x("_connect"),z=/*#__PURE__*/x("_disconnect"),L=/*#__PURE__*/x("_signMessage"),Y=/*#__PURE__*/x("_signAndSendTransaction"),H=/*#__PURE__*/x("_signTransaction");function Z(e,...t){M(this,_)[_][e]?.forEach((e=>e.apply(null,t)))}function N(e,t){M(this,_)[_][e]=M(this,_)[_][e]?.filter((e=>t!==e))}function X(e){let t=r.useAppConfig(),{user:n}=r.usePrivy(),{setModalData:i}=r.usePrivyModal(),{client:o,isHeadlessSigning:c,openModal:l,walletProxy:u,recoverEmbeddedWallet:d,privy:h,solanaWallets:g}=a.usePrivyInternal(),p=r.useEmitPrivyEvent(),{signWithUserSigner:v}=s.useSignWithUserSigner();return r.usePrivyEventSubscription("signSolanaTransaction",e),{signTransaction:async({transaction:e,connection:a,uiOptions:s,transactionOptions:y,address:A})=>{let f=A?g.find((e=>e.address===A&&"privy"!==e.walletClientType)):void 0,{signedTransaction:w}=await r.signOrSendSolanaTransactionInternal({privy:h,appConfig:t,getAccessToken:()=>o.getAccessToken(),isHeadlessSigning:c,emitPrivyEvent:p,setModalData:i,openModal:l,walletProxy:u,user:n,recoverEmbeddedWallet:d,signWithUserSigner:v,connectedExternalWallet:f},{transaction:e,connection:a,transactionOptions:y,uiOptions:s,address:A,signOnly:!0});return w}}}let $=new q({signTransaction:a.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:a.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:a.notImplementedWithMessage("signMessage was not injected")}),ee=new class{get version(){return M(this,k)[k]}get name(){return M(this,B)[B]}get icon(){return M(this,D)[D]}get chains(){return v.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:M(this,J)[J]},"standard:disconnect":{version:"1.0.0",disconnect:M(this,z)[z]},"standard:events":{version:"1.0.0",on:M(this,K)[K]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:M(this,Y)[Y]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:M(this,H)[H]},"solana:signMessage":{version:"1.0.0",signMessage:M(this,L)[L]},"privy:":{privy:{signMessage:M(this,F)[F].signMessage,signTransaction:M(this,F)[F].signTransaction,signAndSendTransaction:M(this,F)[F].signAndSendTransaction}}}}get accounts(){return M(this,V)[V].slice()}get isPrivyWallet(){return M(this,U)[U]}constructor({name:e,icon:t,version:n,injection:i,wallets:a}){Object.defineProperty(this,Q,{value:Z}),Object.defineProperty(this,R,{value:N}),Object.defineProperty(this,_,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,D,{writable:!0,value:void 0}),Object.defineProperty(this,F,{writable:!0,value:void 0}),Object.defineProperty(this,U,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,K,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,J,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),M(this,_)[_]={},M(this,K)[K]=(e,t)=>(M(this,_)[_][e]?.push(t)||(M(this,_)[_][e]=[t]),()=>M(this,R)[R](e,t)),M(this,G)[G]=e=>{null!=e&&(M(this,V)[V]=e.map((({address:e})=>new E({address:e,publicKey:l.base58.decode(e)})))),M(this,Q)[Q]("change",{accounts:this.accounts})},M(this,J)[J]=async()=>(M(this,Q)[Q]("change",{accounts:this.accounts}),{accounts:this.accounts}),M(this,z)[z]=async()=>{M(this,Q)[Q]("change",{accounts:this.accounts})},M(this,L)[L]=async(...e)=>{let t=[];for(let{message:n,account:r}of e){let{signature:e}=await M(this,F)[F].signMessage(n,r.address);t.push({signedMessage:n,signature:e})}return t},M(this,Y)[Y]=async(...e)=>{let t=[];for(let{transaction:n,account:r,options:i,chain:a}of e){let{signature:e}=await M(this,F)[F].signAndSendTransaction(o.VersionedTransaction.deserialize(n),r.address,y(a||"solana:mainnet"),i);t.push({signature:l.base58.decode(e)})}return t},M(this,H)[H]=async(...e)=>{let t=[];for(let{transaction:n,account:i,options:a,chain:s}of e){let e=await M(this,F)[F].signTransaction(o.VersionedTransaction.deserialize(n),i.address,y(s||"solana:mainnet"),a),c=r.isVersionedTransaction(e)?e.serialize():new Uint8Array(e.serialize({requireAllSignatures:!1,verifySignatures:!1}));t.push({signedTransaction:c})}return t},M(this,B)[B]=e,M(this,D)[D]=t,M(this,k)[k]=n,M(this,F)[F]=i,M(this,V)[V]=[],M(this,U)[U]=!0,i.on("accountChanged",M(this,G)[G],this),M(this,G)[G](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:$});function te(){let{solanaClusters:e}=r.useAppConfig(),{ready:t}=r.useWallets(),{user:n}=r.usePrivy(),{signMessage:a}=r.useSignMessage(),{signTransaction:c}=X(),{sendTransaction:l}=r.useSendTransaction(),u=i.useMemo((()=>{let e=[...s.getPrivySolanaHDWallets(n).sort(((e,t)=>(e.walletIndex??0)-(t.walletIndex??0)))],t=s.getImportedPrivySolanaWallet(n);return t?[...e,t]:e}),[n]),d=i.useMemo((()=>({signMessage:async(e,t)=>({signature:await a({message:e,options:{address:t}})}),async signTransaction(t,n,r){let i=e[r];if(!i)throw Error(`Invalid Solana cluster: ${r}`);let a=new o.Connection(i.rpcUrl);return await c({transaction:t,address:n,connection:a})},async signAndSendTransaction(t,n,r,i){let a=e[r];if(!a)throw Error(`Invalid Solana cluster: ${r}`);let s=new o.Connection(a.rpcUrl),{signature:c}=await l({transaction:t,connection:s,address:n,transactionOptions:i});return{signature:c}}})),[a,c,l,e]);return i.useEffect((()=>{$?.setImplementation(d)}),[d]),i.useEffect((()=>{var e;!t||(e=ee.accounts).length===u.length&&e.every(((e,t)=>e.address===u[t]?.address))||$?.emit("accountChanged",u)}),[t,u]),{ready:t,wallet:ee}}function ne(){let{client:e}=a.usePrivyInternal(),{ready:t,wallet:n}=te(),[r,s]=i.useState([]),[o,c]=i.useState([]);return i.useEffect((()=>{let e=[n,...r.filter((e=>"solana"===e.chainType&&!!e.wallet)).map((e=>e.wallet))];c(e);let t=e.map((t=>t.features["standard:events"]?.on("change",(()=>{c([...e])}))));return()=>{t.forEach((e=>e?.()))}}),[r]),i.useEffect((()=>{if(!t)return;s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{s(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[t,e.connectors]),{ready:t,wallets:o}}var re={id:r.SOLANA_LEDGER_PLUGIN_ID,prepareSiwsTransactionWithMemo:({address:e,nonce:t})=>{let n=r.prepareSiwsMessageWithNonce({address:e,nonce:t}),i=new o.Transaction,a=new o.TransactionInstruction({keys:[{pubkey:new o.PublicKey(e),isSigner:!0,isWritable:!1}],programId:new o.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(n,"utf-8")});return i.add(a),i.feePayer=new o.PublicKey(e),i.recentBlockhash="GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN",i.serialize({requireAllSignatures:!1}).toString("base64")},deserializeTransactionFromB64String:e=>o.Transaction.from(r.bufferFrom(e,"base64"))};exports.SolanaAdapterConnector=r.SolanaWalletConnector,exports.useSendTransaction=r.useSendTransaction,exports.useSignMessage=r.useSignMessage,exports.useSolanaWallets=r.useSolanaWallets,exports.useFundWallet=u.useFundWallet,exports.toSolanaWalletConnectors=e=>{let t,{get:i,on:a}=n.getWallets(),s=e?.shouldAutoConnect??!0,o=new Map,c=[];function l(...e){p(e).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),c=Array.from(o.values()).map((e=>new r.SolanaWalletConnector(e,s))),t?.(c)}function u(...e){Array.from(o.keys()).forEach((t=>!e.includes(t)&&o.delete(t))),c=Array.from(o.values()).map((e=>new r.SolanaWalletConnector(e,s))),t?.(c)}let d=[a("register",l),a("unregister",u)];return p(i()).forEach((e=>!o.has(e.wallet)&&o.set(e.wallet,e))),c=Array.from(o.values()).map((e=>new r.SolanaWalletConnector(e,s))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{d[0]||(d[0]=a("register",l)),d[1]||(d[1]=a("unregister",u))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>c}},exports.useConnectedStandardWallets=function(){let{ready:e,wallets:t}=ne();return{ready:e,wallets:i.useMemo((()=>t.flatMap((e=>e.accounts.map((t=>new d.ConnectedStandardSolanaWallet({wallet:e,account:t})))))),[t])}},exports.useCreateWallet=function(){let{create:e}=r.useCreateWalletInternal();return{createWallet:async t=>{t&&"target"in t&&t&&(t=void 0);let{account:n}=await e({chainType:"solana",options:t});return{wallet:n}}}},exports.useExportWallet=function(){let{exportSolanaWallet:e}=a.usePrivyInternal();return{exportWallet:e}},exports.useImportWallet=()=>{let{user:e}=s.usePrivyContext(),{client:t,refreshSessionAndUser:n,initializeWalletProxy:o}=a.usePrivyInternal(),c=r.useEmitPrivyEvent(),l=r.useAppConfig();return{importWallet:i.useCallback((({privateKey:i})=>r.importWallet({getAccessToken:()=>t.getAccessToken(),user:e,initializeWalletProxy:o,refreshSessionAndUser:n,emitPrivyEvent:c,appConfig:l},{privateKey:i,chainType:"solana"})),[e,t,n,o,c])}},exports.usePrivyStandardWallet=te,exports.useSignTransaction=X,exports.useSolanaFundingPlugin=()=>r.useRegisterPlugin(u.t),exports.useSolanaLedgerPlugin=()=>r.useRegisterPlugin(re),exports.useSolanaStandardWallets=ne;
|