@privy-io/wagmi 0.2.8 → 0.2.9
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/esm/index.js +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{WagmiProvider as F}from"wagmi";import{useEffect as f}from"react";import{useConfig as P,useReconnect as W}from"wagmi";import{injected as
|
|
1
|
+
import{WagmiProvider as F}from"wagmi";import{useEffect as f}from"react";import{useConfig as P,useReconnect as W}from"wagmi";import{injected as A}from"wagmi/connectors";import{useConnectWallet as S,useLogin as h,usePrivy as w,useWallets as I}from"@privy-io/react-auth";var v=({setActiveWalletForWagmi:e})=>{let{wallets:t,ready:o}=I(),{user:r}=w(),i=P(),{reconnect:n}=W();S({onSuccess:async c=>{await i.storage?.removeItem(`${c.meta.id}.disconnected`),e||(await i.storage?.setItem("recentConnectorId",c.meta.id),n())}}),h({onComplete:async(c,s,a,l,m)=>{!m||m.type==="wallet"||!c.linkedAccounts.find(u=>u.type==="wallet"&&u.walletClientType==="privy")||await i.storage?.removeItem("io.privy.wallet.disconnected")}}),f(()=>{if(!e)return;(async()=>{let s=e({wallets:t,user:r});if(!s){x(i),n();return}let[a]=await C([s],i);if(!a){console.error(`Failed to setup connector for ${s.address}`);return}await _(s,a,i),n()})()},[t,r,e]),f(()=>{e||C(t,i).then(()=>{o&&n()})},[t,!e,o])},C=async(e,t)=>{let o=await Promise.all(e.map(async r=>{let i=await r.getEthereumProvider(),n=t.connectors.find(s=>s.id===r.meta.id);if(n)return n;let c=A({target:{provider:i,id:r.meta.id,name:r.meta.name,icon:r.meta.icon}});return t._internal.connectors.setup(c)}));return t._internal.connectors.setState(o),o},x=e=>{e._internal.connectors.setState([]),e.setState(t=>({chainId:t.chainId,connections:new Map,current:void 0,status:"disconnected"}))},_=async(e,t,o)=>{await Promise.all([o.storage?.removeItem(`${e.meta.id}.disconnected`),o.storage?.setItem("recentConnectorId",t.id)]);let r=Number(e.chainId.replace("eip155:",""));o.chains.find(n=>n.id===r)||(r=o.chains[0].id);let i=new Map([[t.uid,{accounts:[e.address],chainId:r,connector:t}]]);o.setState(n=>({...n,chainId:r,connections:i,current:t.uid,status:"connected"}))};import{Fragment as E,jsx as b}from"react/jsx-runtime";var y=({children:e,setActiveWalletForWagmi:t})=>(v({setActiveWalletForWagmi:t}),b(E,{children:e}));import{jsx as g}from"react/jsx-runtime";var T=({children:e,setActiveWalletForWagmi:t,...o})=>g(F,{...o,reconnectOnMount:!1,children:g(y,{setActiveWalletForWagmi:t,children:e})});import{createConfig as $}from"wagmi";var R=e=>$({ssr:!0,...e,connectors:e.connectors?.filter(t=>t.type==="mock"),multiInjectedProviderDiscovery:!1});import{useCallback as k}from"react";import{useSwitchAccount as M,useConfig as O,useConnect as B}from"wagmi";var p=()=>{let{switchAccount:e}=M(),{connect:t}=B(),o=O();return{setActiveWallet:k(async i=>{for(let n of o.connectors)if(n.id===i.meta.id&&(await n.getAccounts()).includes(i.address)){await o.storage?.removeItem(`${i.meta.id}.disconnected`),o.state.connections.get(n.uid)?e({connector:n}):t({connector:n});return}},[o.connectors,o.state.connections,t,e])}};var U=()=>{let{setActiveWallet:e}=p();return{setActiveWallet:e,activeWallet:void 0}};import{useEffect as j}from"react";import{useConfig as D,useConnectors as L,useReconnect as N}from"wagmi";import{injected as q}from"wagmi/connectors";var z=({getSmartAccountFromSigner:e})=>{let t=L(),o=D(),{reconnect:r}=N();j(()=>{(async()=>{if(t.find(d=>d.id==="io.privy.smart_wallet"))return;let c=t.find(d=>d.id==="io.privy.wallet");if(!c)return;let s=await c.getProvider(),a=await e({signer:s}),l=q({target:{provider:a,id:"io.privy.smart_wallet",name:"io.privy.smart_wallet",icon:""}}),m=o._internal.connectors.setup(l);o._internal.connectors.setState([m]),await o.storage?.setItem("recentConnectorId",m.id),r()})()},[t,o,e])};export{T as WagmiProvider,R as createConfig,z as useEmbeddedSmartAccountConnector,U as usePrivyWagmi,p as useSetActiveWallet};
|
package/package.json
CHANGED