@privy-io/wagmi 1.0.1 → 1.0.2
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/PrivyWagmiConnector.js +2 -0
- package/dist/cjs/WagmiProvider.js +1 -0
- package/dist/cjs/createConfig.js +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/useEmbeddedSmartAccountConnector.js +1 -0
- package/dist/cjs/usePrivyWagmi.js +1 -0
- package/dist/cjs/useSetActiveWallet.js +1 -0
- package/dist/cjs/useSyncPrivyWallets.js +1 -0
- package/dist/dts/index.d.mts +87 -0
- package/dist/{index.d.ts → dts/index.d.ts} +1 -1
- package/dist/esm/PrivyWagmiConnector.mjs +2 -0
- package/dist/esm/WagmiProvider.mjs +1 -0
- package/dist/esm/createConfig.mjs +1 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/useEmbeddedSmartAccountConnector.mjs +1 -0
- package/dist/esm/usePrivyWagmi.mjs +1 -0
- package/dist/esm/useSetActiveWallet.mjs +1 -0
- package/dist/esm/useSyncPrivyWallets.mjs +1 -0
- package/package.json +29 -22
- package/dist/esm/index.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("./useSyncPrivyWallets.js");require("react"),require("wagmi"),require("wagmi/connectors"),require("@privy-io/react-auth");exports.PrivyWagmiConnector=({children:i,setActiveWalletForWagmi:t})=>(r.useSyncPrivyWallets({setActiveWalletForWagmi:t}),
|
|
2
|
+
/*#__PURE__*/e.jsx(e.Fragment,{children:i}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("wagmi"),i=require("./PrivyWagmiConnector.js");require("./useSyncPrivyWallets.js"),require("react"),require("wagmi/connectors"),require("@privy-io/react-auth");exports.WagmiProvider=({children:t,setActiveWalletForWagmi:a,...c})=>/*#__PURE__*/e.jsx(r.WagmiProvider,{reconnectOnMount:!1,...c,children:/*#__PURE__*/e.jsx(i.PrivyWagmiConnector,{setActiveWalletForWagmi:a,children:t})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("wagmi");exports.createConfig=r=>e.createConfig({ssr:!0,...r,connectors:r.connectors?.filter((e=>"mock"===e.type)),multiInjectedProviderDiscovery:!1});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("./WagmiProvider.js"),r=require("./createConfig.js"),i=require("./useSetActiveWallet.js"),t=require("./usePrivyWagmi.js"),u=require("./useEmbeddedSmartAccountConnector.js");require("react/jsx-runtime"),require("wagmi"),require("./PrivyWagmiConnector.js"),require("./useSyncPrivyWallets.js"),require("react"),require("wagmi/connectors"),require("@privy-io/react-auth"),exports.WagmiProvider=e.WagmiProvider,exports.createConfig=r.createConfig,exports.useSetActiveWallet=i.useSetActiveWallet,exports.usePrivyWagmi=t.usePrivyWagmi,exports.useEmbeddedSmartAccountConnector=u.useEmbeddedSmartAccountConnector;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react"),t=require("wagmi"),r=require("wagmi/connectors");exports.useEmbeddedSmartAccountConnector=({getSmartAccountFromSigner:i})=>{let n=t.useConnectors(),o=t.useConfig(),{reconnect:a}=t.useReconnect();e.useEffect((()=>{(async()=>{if(n.find((e=>"io.privy.smart_wallet"===e.id)))return;let e=n.find((e=>"io.privy.wallet"===e.id));if(!e)return;let t=await e.getProvider(),c=r.injected({target:{provider:await i({signer:t}),id:"io.privy.smart_wallet",name:"io.privy.smart_wallet",icon:""}}),s=o._internal.connectors.setup(c);o._internal.connectors.setState([s]),await(o.storage?.setItem("recentConnectorId",s.id)),a()})()}),[n,o,i])};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("./useSetActiveWallet.js");require("react"),require("wagmi");exports.usePrivyWagmi=()=>{let{setActiveWallet:t}=e.useSetActiveWallet();return{setActiveWallet:t,activeWallet:void 0}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react"),t=require("wagmi");exports.useSetActiveWallet=()=>{let{switchAccount:c}=t.useSwitchAccount(),{connect:n}=t.useConnect(),o=t.useConfig();return{setActiveWallet:e.useCallback((async e=>{for(let t of o.connectors)if(t.id===e.meta.id&&(await t.getAccounts()).includes(e.address))return await(o.storage?.removeItem(`${e.meta.id}.disconnected`)),void(o.state.connections.get(t.uid)?c({connector:t}):n({connector:t}))}),[o.connectors,o.state.connections,n,c])}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react"),t=require("wagmi"),n=require("wagmi/connectors"),a=require("@privy-io/react-auth");let r=async(e,t)=>{let a=await Promise.all(e.map((async e=>{let a=await e.getEthereumProvider(),r=t.connectors.find((t=>t.id===e.meta.id));if(r)return r;let i=n.injected({target:{provider:a,id:e.meta.id,name:e.meta.name,icon:e.meta.icon}});return t._internal.connectors.setup(i)})));return t._internal.connectors.setState(a),a},i=e=>{e._internal.connectors.setState([]),e.setState((e=>({chainId:e.chainId,connections:new Map,current:void 0,status:"disconnected"})))},c=async(e,t,n)=>{await Promise.all([n.storage?.removeItem(`${e.meta.id}.disconnected`),n.storage?.setItem("recentConnectorId",t.id)]);let a=Number(e.chainId.replace("eip155:",""));n.chains.find((e=>e.id===a))||(a=n.chains[0].id);let r=new Map([[t.uid,{accounts:[e.address],chainId:a,connector:t}]]);n.setState((e=>({...e,chainId:a,connections:r,current:t.uid,status:"connected"})))};exports.useSyncPrivyWallets=({setActiveWalletForWagmi:n})=>{let{wallets:s,ready:o}=a.useWallets(),{user:l}=a.usePrivy(),d=t.useConfig(),{reconnect:u}=t.useReconnect();a.useConnectWallet({onSuccess:async({wallet:e})=>{await(d.storage?.removeItem(`${e.meta.id}.disconnected`)),n||(await(d.storage?.setItem("recentConnectorId",e.meta.id)),u())}}),a.useLogin({onComplete:async({user:e,loginAccount:t})=>{t&&"wallet"!==t.type&&e.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType))&&(await(d.storage?.removeItem("io.privy.wallet.disconnected")),u())}}),e.useEffect((()=>{n&&(async()=>{let e=n({wallets:s,user:l});if(!e)return i(d),void u();let[t]=await r([e],d);t?(await c(e,t,d),u()):console.error(`Failed to setup connector for ${e.address}`)})()}),[s,l,n]),e.useEffect((()=>{n||r(s,d).then((()=>{o&&u()}))}),[s,!n,o])};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as wagmi from 'wagmi';
|
|
3
|
+
import { WagmiProviderProps, CreateConfigParameters } from 'wagmi';
|
|
4
|
+
import * as _privy_io_react_auth from '@privy-io/react-auth';
|
|
5
|
+
import { ConnectedWallet, User } from '@privy-io/react-auth';
|
|
6
|
+
import { Chain, Transport, EIP1193Provider } from 'viem';
|
|
7
|
+
|
|
8
|
+
type SetActiveWalletForWagmiType = ({ wallets, user, }: {
|
|
9
|
+
wallets: ConnectedWallet[];
|
|
10
|
+
user: User | null;
|
|
11
|
+
}) => ConnectedWallet | undefined;
|
|
12
|
+
|
|
13
|
+
interface PrivyWagmiConnectorProps {
|
|
14
|
+
/**
|
|
15
|
+
* @experimental Filter the connected wallets (including the embedded wallet) that are passed to wagmi state.
|
|
16
|
+
*/
|
|
17
|
+
setActiveWalletForWagmi?: SetActiveWalletForWagmiType;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare const WagmiProvider: ({ children, setActiveWalletForWagmi, ...props }: React.PropsWithChildren<WagmiProviderProps & PrivyWagmiConnectorProps>) => react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
declare const createConfig: <const chains extends readonly [Chain, ...Chain[]], transports extends Record<chains[number]["id"], Transport>>(args: CreateConfigParameters<chains, transports>) => wagmi.Config<chains, transports>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Set the active connection in wagmi to a Privy ConnectedWallet
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* const {setActiveWallet} = useSetActiveWallet()
|
|
29
|
+
* const {wallets} = useWallets();
|
|
30
|
+
*
|
|
31
|
+
* <section>
|
|
32
|
+
* {wallets.map(wallet => (
|
|
33
|
+
* <button onClick={() => setActiveWallet(wallet)>{wallet.address}</button>
|
|
34
|
+
* ))}
|
|
35
|
+
* </section>
|
|
36
|
+
*/
|
|
37
|
+
declare const useSetActiveWallet: () => {
|
|
38
|
+
setActiveWallet: (wallet: ConnectedWallet) => Promise<void>;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Instead:
|
|
43
|
+
* - to set the active wallet use `const {setActiveWallet} = useSetActiveWallet()` from `@privy-io/wagmi`
|
|
44
|
+
* - to view the current active wallet, use `const {address} = useAccount()` from `wagmi`
|
|
45
|
+
*/
|
|
46
|
+
declare const usePrivyWagmi: () => {
|
|
47
|
+
setActiveWallet: (wallet: _privy_io_react_auth.ConnectedWallet) => Promise<void>;
|
|
48
|
+
activeWallet: undefined;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
type useEmbeddedSmartAccountConnectorParams = {
|
|
52
|
+
/**
|
|
53
|
+
* Function to convert an EIP1193Provider for an externally-owned account to an EIP1193Provider
|
|
54
|
+
* for the smart account implementation of your choice.
|
|
55
|
+
*
|
|
56
|
+
* @param signer {EIP1193Provider} viem EIP1193Provider for the user's embedded wallet (externally-owned account)
|
|
57
|
+
* @returns Promise for a viem EIP1193Provider for the smart account implementation of your choice
|
|
58
|
+
*/
|
|
59
|
+
getSmartAccountFromSigner: ({ signer }: {
|
|
60
|
+
signer: EIP1193Provider;
|
|
61
|
+
}) => Promise<EIP1193Provider>;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Registers a smart account connector in wagmi for the Privy embedded wallet. As an argument,
|
|
65
|
+
* pass an object with a `getSmartAccountFromSigner` method that converts a viem `EIP1193Provider`
|
|
66
|
+
* object for the embedded wallet (EOA) to a viem `EIP1193Provider` object for the smart account
|
|
67
|
+
* implementation used by your app (e.g. Kernel, Safe, SimpleAccount, etc.).
|
|
68
|
+
*
|
|
69
|
+
* @experimental
|
|
70
|
+
* Currently, this hook only supports:
|
|
71
|
+
* - creating a smart account connector for a Privy embedded wallet
|
|
72
|
+
* - using only the smart account connector if an embedded wallet exists. All other connectors
|
|
73
|
+
* (e.g. external wallets) will be removed while the user is using the embedded wallet.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* useEmbeddedSmartAccountConnector({
|
|
77
|
+
* getSmartAccountFromSigner: async ({signer}: {signer: EIP1193Provider}) => {
|
|
78
|
+
* // Replace `eoaToSmartAccount` with logic that converts the `signer` for the user's
|
|
79
|
+
* // externally-owned account (EOA) to an `EIP1193Provider` object for the smart account
|
|
80
|
+
* // implementation of your choice
|
|
81
|
+
* return eoaToSmartAccount(signer);
|
|
82
|
+
* }
|
|
83
|
+
* });
|
|
84
|
+
*/
|
|
85
|
+
declare const useEmbeddedSmartAccountConnector: ({ getSmartAccountFromSigner, }: useEmbeddedSmartAccountConnectorParams) => void;
|
|
86
|
+
|
|
87
|
+
export { type SetActiveWalletForWagmiType, WagmiProvider, createConfig, useEmbeddedSmartAccountConnector, usePrivyWagmi, useSetActiveWallet };
|
|
@@ -84,4 +84,4 @@ type useEmbeddedSmartAccountConnectorParams = {
|
|
|
84
84
|
*/
|
|
85
85
|
declare const useEmbeddedSmartAccountConnector: ({ getSmartAccountFromSigner, }: useEmbeddedSmartAccountConnectorParams) => void;
|
|
86
86
|
|
|
87
|
-
export { SetActiveWalletForWagmiType, WagmiProvider, createConfig, useEmbeddedSmartAccountConnector, usePrivyWagmi, useSetActiveWallet };
|
|
87
|
+
export { type SetActiveWalletForWagmiType, WagmiProvider, createConfig, useEmbeddedSmartAccountConnector, usePrivyWagmi, useSetActiveWallet };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,Fragment as r}from"react/jsx-runtime";import{useSyncPrivyWallets as i}from"./useSyncPrivyWallets.mjs";import"react";import"wagmi";import"wagmi/connectors";import"@privy-io/react-auth";const e=({children:e,setActiveWalletForWagmi:o})=>(i({setActiveWalletForWagmi:o}),
|
|
2
|
+
/*#__PURE__*/t(r,{children:e}));export{e as PrivyWagmiConnector};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{WagmiProvider as t}from"wagmi";import{PrivyWagmiConnector as i}from"./PrivyWagmiConnector.mjs";import"./useSyncPrivyWallets.mjs";import"react";import"wagmi/connectors";import"@privy-io/react-auth";const o=({children:o,setActiveWalletForWagmi:e,...m})=>/*#__PURE__*/r(t,{reconnectOnMount:!1,...m,children:/*#__PURE__*/r(i,{setActiveWalletForWagmi:e,children:o})});export{o as WagmiProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createConfig as o}from"wagmi";const e=e=>o({ssr:!0,...e,connectors:e.connectors?.filter((o=>"mock"===o.type)),multiInjectedProviderDiscovery:!1});export{e as createConfig};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{WagmiProvider}from"./WagmiProvider.mjs";export{createConfig}from"./createConfig.mjs";export{useSetActiveWallet}from"./useSetActiveWallet.mjs";export{usePrivyWagmi}from"./usePrivyWagmi.mjs";export{useEmbeddedSmartAccountConnector}from"./useEmbeddedSmartAccountConnector.mjs";import"react/jsx-runtime";import"wagmi";import"./PrivyWagmiConnector.mjs";import"./useSyncPrivyWallets.mjs";import"react";import"wagmi/connectors";import"@privy-io/react-auth";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as t}from"react";import{useConnectors as r,useConfig as e,useReconnect as i}from"wagmi";import{injected as o}from"wagmi/connectors";const n=({getSmartAccountFromSigner:n})=>{let a=r(),c=e(),{reconnect:m}=i();t((()=>{(async()=>{if(a.find((t=>"io.privy.smart_wallet"===t.id)))return;let t=a.find((t=>"io.privy.wallet"===t.id));if(!t)return;let r=await t.getProvider(),e=o({target:{provider:await n({signer:r}),id:"io.privy.smart_wallet",name:"io.privy.smart_wallet",icon:""}}),i=c._internal.connectors.setup(e);c._internal.connectors.setState([i]),await(c.storage?.setItem("recentConnectorId",i.id)),m()})()}),[a,c,n])};export{n as useEmbeddedSmartAccountConnector};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useSetActiveWallet as t}from"./useSetActiveWallet.mjs";import"react";import"wagmi";const e=()=>{let{setActiveWallet:e}=t();return{setActiveWallet:e,activeWallet:void 0}};export{e as usePrivyWagmi};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useCallback as t}from"react";import{useSwitchAccount as e,useConnect as o,useConfig as c}from"wagmi";const n=()=>{let{switchAccount:n}=e(),{connect:r}=o(),i=c();return{setActiveWallet:t((async t=>{for(let e of i.connectors)if(e.id===t.meta.id&&(await e.getAccounts()).includes(t.address))return await(i.storage?.removeItem(`${t.meta.id}.disconnected`)),void(i.state.connections.get(e.uid)?n({connector:e}):r({connector:e}))}),[i.connectors,i.state.connections,r,n])}};export{n as useSetActiveWallet};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as e}from"react";import{useConfig as t,useReconnect as n}from"wagmi";import{injected as a}from"wagmi/connectors";import{useWallets as r,usePrivy as o,useConnectWallet as i,useLogin as c}from"@privy-io/react-auth";const s=({setActiveWalletForWagmi:a})=>{let{wallets:s,ready:u}=r(),{user:p}=o(),w=t(),{reconnect:y}=n();i({onSuccess:async({wallet:e})=>{await(w.storage?.removeItem(`${e.meta.id}.disconnected`)),a||(await(w.storage?.setItem("recentConnectorId",e.meta.id)),y())}}),c({onComplete:async({user:e,loginAccount:t})=>{t&&"wallet"!==t.type&&e.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType))&&(await(w.storage?.removeItem("io.privy.wallet.disconnected")),y())}}),e((()=>{a&&(async()=>{let e=a({wallets:s,user:p});if(!e)return l(w),void y();let[t]=await d([e],w);t?(await m(e,t,w),y()):console.error(`Failed to setup connector for ${e.address}`)})()}),[s,p,a]),e((()=>{a||d(s,w).then((()=>{u&&y()}))}),[s,!a,u])};let d=async(e,t)=>{let n=await Promise.all(e.map((async e=>{let n=await e.getEthereumProvider(),r=t.connectors.find((t=>t.id===e.meta.id));if(r)return r;let o=a({target:{provider:n,id:e.meta.id,name:e.meta.name,icon:e.meta.icon}});return t._internal.connectors.setup(o)})));return t._internal.connectors.setState(n),n},l=e=>{e._internal.connectors.setState([]),e.setState((e=>({chainId:e.chainId,connections:new Map,current:void 0,status:"disconnected"})))},m=async(e,t,n)=>{await Promise.all([n.storage?.removeItem(`${e.meta.id}.disconnected`),n.storage?.setItem("recentConnectorId",t.id)]);let a=Number(e.chainId.replace("eip155:",""));n.chains.find((e=>e.id===a))||(a=n.chains[0].id);let r=new Map([[t.uid,{accounts:[e.address],chainId:a,connector:t}]]);n.setState((e=>({...e,chainId:a,connections:r,current:t.uid,status:"connected"})))};export{s as useSyncPrivyWallets};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privy-io/wagmi",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Wagmi bindings for the react client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"privy",
|
|
@@ -10,36 +10,33 @@
|
|
|
10
10
|
"bugs": {
|
|
11
11
|
"url": "https://privy.io/slack"
|
|
12
12
|
},
|
|
13
|
-
"license": "Apache-2.0",
|
|
14
13
|
"author": "privy.io",
|
|
15
14
|
"sideEffects": false,
|
|
16
15
|
"exports": {
|
|
17
16
|
".": {
|
|
18
|
-
"import":
|
|
19
|
-
|
|
17
|
+
"import": {
|
|
18
|
+
"types": "./dist/dts/index.d.mts",
|
|
19
|
+
"default": "./dist/esm/index.mjs"
|
|
20
|
+
}
|
|
20
21
|
}
|
|
21
22
|
},
|
|
22
23
|
"module": "./dist/esm/index.js",
|
|
23
|
-
"types": "./dist/index.d.
|
|
24
|
-
"typings": "./dist/index",
|
|
25
|
-
"directories": {
|
|
26
|
-
"test": "test"
|
|
27
|
-
},
|
|
24
|
+
"types": "./dist/dts/index.d.mts",
|
|
25
|
+
"typings": "./dist/dts/index",
|
|
28
26
|
"files": [
|
|
29
27
|
"dist/**/*",
|
|
30
28
|
"LICENSE",
|
|
31
29
|
"README.md"
|
|
32
30
|
],
|
|
33
31
|
"scripts": {
|
|
34
|
-
"build": "
|
|
35
|
-
"check-types": "
|
|
36
|
-
"clean": "rm -rf dist",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"lint": "
|
|
41
|
-
"test": "jest
|
|
42
|
-
"test-integration": "jest --testMatch \"**/test/integration/**/*.test.ts\""
|
|
32
|
+
"build": "rollup --config rollup.types.mjs && rollup --config rollup.build.mjs",
|
|
33
|
+
"check-types": "tsc --noEmit",
|
|
34
|
+
"clean": "rm -rf dist .turbo",
|
|
35
|
+
"d//": "To parallelize types and code build output rollup recommends running multiple instances",
|
|
36
|
+
"dev": "concurrently --prefix=none \"rollup --config rollup.types.mjs --watch\" \"rollup --config rollup.dev.mjs --watch\"",
|
|
37
|
+
"format": "eslint src --fix",
|
|
38
|
+
"lint": "eslint src",
|
|
39
|
+
"test": "jest"
|
|
43
40
|
},
|
|
44
41
|
"browserslist": [
|
|
45
42
|
"defaults",
|
|
@@ -47,15 +44,25 @@
|
|
|
47
44
|
"not op_mini all"
|
|
48
45
|
],
|
|
49
46
|
"devDependencies": {
|
|
47
|
+
"@privy-io/build-config": "*",
|
|
50
48
|
"@privy-io/eslint-config-custom": "*",
|
|
51
|
-
"@privy-io/react-auth": "^2.0.
|
|
49
|
+
"@privy-io/react-auth": "^2.0.3",
|
|
50
|
+
"@privy-io/tsconfig": "*",
|
|
51
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
52
|
+
"@rollup/plugin-replace": "^6.0.1",
|
|
53
|
+
"@rollup/plugin-swc": "^0.4.0",
|
|
54
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
55
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
56
|
+
"@swc/core": "^1.10.0",
|
|
57
|
+
"@swc/plugin-styled-components": "^6.0.1",
|
|
52
58
|
"@tsconfig/node16-strictest-esm": "^1.0.3",
|
|
53
59
|
"@types/jest": "^29.1.2",
|
|
54
60
|
"@types/react": "^18.2.15",
|
|
55
61
|
"@types/react-dom": "^18.2.7",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
62
|
+
"glob": "^10.3.12",
|
|
63
|
+
"rollup": "^4.28.0",
|
|
64
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
65
|
+
"rollup-plugin-dts": "^6.1.1",
|
|
59
66
|
"typescript": "~5.5.3"
|
|
60
67
|
},
|
|
61
68
|
"peerDependencies": {
|
package/dist/esm/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{WagmiProvider as F}from"wagmi";import{useEffect as u}from"react";import{useConfig as g,useReconnect as P}from"wagmi";import{injected as W}from"wagmi/connectors";import{useConnectWallet as S,useLogin as A,usePrivy as h,useWallets as w}from"@privy-io/react-auth";var C=({setActiveWalletForWagmi:e})=>{let{wallets:t,ready:o}=w(),{user:r}=h(),i=g(),{reconnect:n}=P();S({onSuccess:async({wallet:c})=>{await i.storage?.removeItem(`${c.meta.id}.disconnected`),e||(await i.storage?.setItem("recentConnectorId",c.meta.id),n())}}),A({onComplete:async({user:c,loginAccount:s})=>{!s||s.type==="wallet"||!c.linkedAccounts.find(m=>m.type==="wallet"&&m.walletClientType==="privy")||(await i.storage?.removeItem("io.privy.wallet.disconnected"),n())}}),u(()=>{if(!e)return;(async()=>{let s=e({wallets:t,user:r});if(!s){I(i),n();return}let[a]=await f([s],i);if(!a){console.error(`Failed to setup connector for ${s.address}`);return}await x(s,a,i),n()})()},[t,r,e]),u(()=>{e||f(t,i).then(()=>{o&&n()})},[t,!e,o])},f=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=W({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},I=e=>{e._internal.connectors.setState([]),e.setState(t=>({chainId:t.chainId,connections:new Map,current:void 0,status:"disconnected"}))},x=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 v=({children:e,setActiveWalletForWagmi:t})=>(C({setActiveWalletForWagmi:t}),b(E,{children:e}));import{jsx as y}from"react/jsx-runtime";var T=({children:e,setActiveWalletForWagmi:t,...o})=>y(F,{reconnectOnMount:!1,...o,children:y(v,{setActiveWalletForWagmi:t,children:e})});import{createConfig as _}from"wagmi";var $=e=>_({ssr:!0,...e,connectors:e.connectors?.filter(t=>t.type==="mock"),multiInjectedProviderDiscovery:!1});import{useCallback as R}from"react";import{useSwitchAccount as k,useConfig as M,useConnect as O}from"wagmi";var p=()=>{let{switchAccount:e}=k(),{connect:t}=O(),o=M();return{setActiveWallet:R(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 B=()=>{let{setActiveWallet:e}=p();return{setActiveWallet:e,activeWallet:void 0}};import{useEffect as U}from"react";import{useConfig as j,useConnectors as D,useReconnect as L}from"wagmi";import{injected as N}from"wagmi/connectors";var q=({getSmartAccountFromSigner:e})=>{let t=D(),o=j(),{reconnect:r}=L();U(()=>{(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}),m=N({target:{provider:a,id:"io.privy.smart_wallet",name:"io.privy.smart_wallet",icon:""}}),l=o._internal.connectors.setup(m);o._internal.connectors.setState([l]),await o.storage?.setItem("recentConnectorId",l.id),r()})()},[t,o,e])};export{T as WagmiProvider,$ as createConfig,q as useEmbeddedSmartAccountConnector,B as usePrivyWagmi,p as useSetActiveWallet};
|