@gelatonetwork/smartwallet-react-privy 0.0.21 → 0.0.22
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/CHANGELOG.md +11 -0
- package/_dist/provider.d.ts.map +1 -1
- package/_dist/provider.js +27 -12
- package/_dist/provider.js.map +1 -1
- package/_dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/provider.tsx +50 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @gelatonetwork/smartwallet-react-privy
|
|
2
2
|
|
|
3
|
+
## 0.0.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fa5b7b4: fix: privy network switch and login issues
|
|
8
|
+
- 90c8314: feat: allow passing clientId for privy
|
|
9
|
+
- Updated dependencies [90c8314]
|
|
10
|
+
- Updated dependencies [7bd5914]
|
|
11
|
+
- @gelatonetwork/smartwallet-react-types@0.0.22
|
|
12
|
+
- @gelatonetwork/smartwallet@0.0.22
|
|
13
|
+
|
|
3
14
|
## 0.0.21
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/_dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AASrE,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AASrE,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAkC3C,eAAO,MAAM,gCAAgC,8BAQ5C,CAAC;AAEF,KAAK,kCAAkC,GAAG,MAAM,CAAC,aAAa,CAAC;AAsI/D,eAAO,MAAM,qCAAqC,EAAE,EAAE,CAAC,kCAAkC,CAgCxF,CAAC"}
|
package/_dist/provider.js
CHANGED
|
@@ -4,7 +4,7 @@ import { PrivyProvider, usePrivy, useSignAuthorization, useWallets } from "@priv
|
|
|
4
4
|
import { WagmiProvider, createConfig } from "@privy-io/wagmi";
|
|
5
5
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
6
6
|
import { ChainId } from "caip";
|
|
7
|
-
import { createContext, useContext, useEffect, useState } from "react";
|
|
7
|
+
import { createContext, useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
8
8
|
import { createWalletClient, custom } from "viem";
|
|
9
9
|
import { prepareAuthorization } from "viem/actions";
|
|
10
10
|
import * as chains from "viem/chains";
|
|
@@ -22,31 +22,45 @@ const GelatoSmartWalletPrivyInternal = ({ children, wagmi, apiKey, scw }) => {
|
|
|
22
22
|
const { wallets, ready: walletsReady } = useWallets();
|
|
23
23
|
const { signAuthorization } = useSignAuthorization();
|
|
24
24
|
const [smartWalletClient, setSmartWalletClient] = useState(null);
|
|
25
|
-
const
|
|
25
|
+
const currentChainIdRef = useRef(null);
|
|
26
|
+
const logoutWrapper = useCallback(async () => {
|
|
26
27
|
if (!smartWalletClient) {
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
29
30
|
setSmartWalletClient(null);
|
|
30
31
|
await logout();
|
|
31
|
-
};
|
|
32
|
-
const switchNetwork = async (chainId) => {
|
|
33
|
-
if (!smartWalletClient) {
|
|
32
|
+
}, [smartWalletClient, logout]);
|
|
33
|
+
const switchNetwork = useCallback(async (chainId) => {
|
|
34
|
+
if (!smartWalletClient || !wallets || wallets.length === 0) {
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
37
|
const primaryWallet = wallets[0];
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
try {
|
|
39
|
+
await primaryWallet.switchChain(chainId);
|
|
40
|
+
// The useEffect will handle recreating the client with the new chain
|
|
41
|
+
// We don't need to manually call smartWalletClient.switchChain
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error("Failed to switch network:", error);
|
|
45
|
+
}
|
|
46
|
+
}, [smartWalletClient, wallets]);
|
|
47
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: off
|
|
40
48
|
useEffect(() => {
|
|
41
49
|
if (!ready || !walletsReady) {
|
|
42
50
|
return;
|
|
43
51
|
}
|
|
44
52
|
if (!authenticated || !wallets || wallets.length === 0) {
|
|
45
53
|
setSmartWalletClient(null);
|
|
54
|
+
currentChainIdRef.current = null;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const primaryWallet = wallets[0];
|
|
58
|
+
const walletChainId = primaryWallet.chainId;
|
|
59
|
+
// Only recreate the client if the chain ID changes
|
|
60
|
+
if (currentChainIdRef.current === walletChainId && smartWalletClient) {
|
|
46
61
|
return;
|
|
47
62
|
}
|
|
48
63
|
const fetchWalletClient = async () => {
|
|
49
|
-
const primaryWallet = wallets[0];
|
|
50
64
|
try {
|
|
51
65
|
// Privy wallet provides chainId in CAIP2 format
|
|
52
66
|
const { reference: chainId } = ChainId.parse(primaryWallet.chainId);
|
|
@@ -64,7 +78,7 @@ const GelatoSmartWalletPrivyInternal = ({ children, wagmi, apiKey, scw }) => {
|
|
|
64
78
|
chain,
|
|
65
79
|
transport: custom(provider)
|
|
66
80
|
});
|
|
67
|
-
client.signAuthorization = async (parameters) => {
|
|
81
|
+
client.account.signAuthorization = async (parameters) => {
|
|
68
82
|
const preparedAuthorization = await prepareAuthorization(client, parameters);
|
|
69
83
|
const signedAuthorization = await signAuthorization({
|
|
70
84
|
contractAddress: preparedAuthorization.address,
|
|
@@ -75,13 +89,14 @@ const GelatoSmartWalletPrivyInternal = ({ children, wagmi, apiKey, scw }) => {
|
|
|
75
89
|
};
|
|
76
90
|
const walletClientGelato = await createGelatoSmartWalletClient(client, { apiKey, scw });
|
|
77
91
|
setSmartWalletClient(walletClientGelato);
|
|
92
|
+
currentChainIdRef.current = walletChainId;
|
|
78
93
|
}
|
|
79
94
|
catch (error) {
|
|
80
95
|
console.error("Failed to get wallet client:", error);
|
|
81
96
|
}
|
|
82
97
|
};
|
|
83
98
|
fetchWalletClient();
|
|
84
|
-
}, [ready,
|
|
99
|
+
}, [ready, walletsReady, authenticated, apiKey, scw, signAuthorization]);
|
|
85
100
|
return (_jsx(GelatoSmartWalletPrivyProviderContext.Provider, { value: {
|
|
86
101
|
gelato: {
|
|
87
102
|
client: smartWalletClient
|
|
@@ -96,7 +111,7 @@ const GelatoSmartWalletPrivyInternal = ({ children, wagmi, apiKey, scw }) => {
|
|
|
96
111
|
export const GelatoSmartWalletPrivyContextProvider = ({ children, settings }) => {
|
|
97
112
|
const queryClient = new QueryClient();
|
|
98
113
|
const wagmiConfig = settings.wagmi ? createConfig(settings.wagmi.config) : undefined;
|
|
99
|
-
return (_jsx(PrivyProvider, { appId: settings.waas.appId, config: {
|
|
114
|
+
return (_jsx(PrivyProvider, { appId: settings.waas.appId, clientId: settings.waas.clientId, config: {
|
|
100
115
|
defaultChain: settings.defaultChain ?? settings.wagmi?.config?.chains?.[0] ?? chains.sepolia,
|
|
101
116
|
supportedChains: settings.waas.customChains?.supportedChains
|
|
102
117
|
}, children: _jsx(GelatoSmartWalletPrivyInternal, { wagmi: { config: wagmiConfig }, apiKey: settings.apiKey, scw: settings.scw, children: wagmiConfig ? (_jsx(QueryClientProvider, { client: queryClient, children: _jsx(WagmiProvider, { config: wagmiConfig, children: children }) })) : (children) }) }));
|
package/_dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|