@zerodev/wallet-react 0.0.1-alpha.2 → 0.0.1-alpha.4

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @zerodev/wallet-react
2
2
 
3
+ ## 0.0.1-alpha.4
4
+
5
+ ### Patch Changes
6
+
7
+ - fix: kernel instance reinitialisation
8
+
9
+ ## 0.0.1-alpha.3
10
+
11
+ ### Patch Changes
12
+
13
+ - fix: removed lazy initialization of ZD wallet core
14
+
3
15
  ## 0.0.1-alpha.2
4
16
 
5
17
  ### Patch Changes
@@ -13,44 +13,40 @@ function zeroDevWallet(params) {
13
13
  return (0, core_1.createConnector)((wagmiConfig) => {
14
14
  let store;
15
15
  let provider;
16
- let initPromise;
17
16
  const transports = wagmiConfig.transports;
18
17
  const initialize = async () => {
19
- initPromise ??= (async () => {
20
- console.log('Initializing ZeroDevWallet connector...');
21
- const wallet = await (0, wallet_core_1.createZeroDevWallet)({
22
- projectId: params.projectId,
23
- ...(params.organizationId && {
24
- organizationId: params.organizationId,
25
- }),
26
- ...(params.proxyBaseUrl && { proxyBaseUrl: params.proxyBaseUrl }),
27
- ...(params.sessionStorage && {
28
- sessionStorage: params.sessionStorage,
29
- }),
30
- ...(params.rpId && { rpId: params.rpId }),
31
- });
32
- store = (0, store_js_1.createZeroDevWalletStore)();
33
- store.getState().setWallet(wallet);
34
- const chainIds = params.chains.map((c) => c.id);
35
- store.setState({ chainIds });
36
- if (params.oauthConfig) {
37
- store.getState().setOAuthConfig(params.oauthConfig);
38
- }
39
- provider = (0, provider_js_1.createProvider)({
40
- store,
41
- config: params,
42
- chains: Array.from(params.chains),
43
- });
44
- const session = await wallet.getSession();
45
- if (session) {
46
- console.log('Found existing session, restoring...');
47
- const eoaAccount = await wallet.toAccount();
48
- store.getState().setEoaAccount(eoaAccount);
49
- store.getState().setSession(session);
50
- }
51
- console.log('ZeroDevWallet connector initialized');
52
- })();
53
- return initPromise;
18
+ console.log('Initializing ZeroDevWallet connector...');
19
+ const wallet = await (0, wallet_core_1.createZeroDevWallet)({
20
+ projectId: params.projectId,
21
+ ...(params.organizationId && {
22
+ organizationId: params.organizationId,
23
+ }),
24
+ ...(params.proxyBaseUrl && { proxyBaseUrl: params.proxyBaseUrl }),
25
+ ...(params.sessionStorage && {
26
+ sessionStorage: params.sessionStorage,
27
+ }),
28
+ ...(params.rpId && { rpId: params.rpId }),
29
+ });
30
+ store = (0, store_js_1.createZeroDevWalletStore)();
31
+ store.getState().setWallet(wallet);
32
+ const chainIds = params.chains.map((c) => c.id);
33
+ store.setState({ chainIds });
34
+ if (params.oauthConfig) {
35
+ store.getState().setOAuthConfig(params.oauthConfig);
36
+ }
37
+ provider = (0, provider_js_1.createProvider)({
38
+ store,
39
+ config: params,
40
+ chains: Array.from(params.chains),
41
+ });
42
+ const session = await wallet.getSession();
43
+ if (session) {
44
+ console.log('Found existing session, restoring...');
45
+ const eoaAccount = await wallet.toAccount();
46
+ store.getState().setEoaAccount(eoaAccount);
47
+ store.getState().setSession(session);
48
+ }
49
+ console.log('ZeroDevWallet connector initialized');
54
50
  };
55
51
  return {
56
52
  id: 'zerodev-wallet',
@@ -154,11 +150,12 @@ function zeroDevWallet(params) {
154
150
  return store.getState().chainIds[0] || params.chains[0].id;
155
151
  },
156
152
  async getProvider() {
157
- await initialize();
153
+ if (!provider) {
154
+ await initialize();
155
+ }
158
156
  return provider;
159
157
  },
160
158
  async switchChain({ chainId }) {
161
- await initialize();
162
159
  console.log(`Switching to chain ${chainId}...`);
163
160
  const state = store.getState();
164
161
  if (!state.eoaAccount) {
@@ -194,6 +191,7 @@ function zeroDevWallet(params) {
194
191
  });
195
192
  store.getState().setKernelClient(chainId, kernelClient);
196
193
  }
194
+ wagmiConfig.emitter.emit('change', { chainId });
197
195
  return params.chains.find((c) => c.id === chainId);
198
196
  },
199
197
  async isAuthorized() {
@@ -10,52 +10,48 @@ export function zeroDevWallet(params) {
10
10
  return createConnector((wagmiConfig) => {
11
11
  let store;
12
12
  let provider;
13
- let initPromise;
14
13
  // Get transports from Wagmi config (uses user's RPC URLs)
15
14
  const transports = wagmiConfig.transports;
16
15
  // Lazy initialization - only runs on client side
17
16
  const initialize = async () => {
18
- initPromise ??= (async () => {
19
- console.log('Initializing ZeroDevWallet connector...');
20
- // Initialize wallet SDK
21
- const wallet = await createZeroDevWallet({
22
- projectId: params.projectId,
23
- ...(params.organizationId && {
24
- organizationId: params.organizationId,
25
- }),
26
- ...(params.proxyBaseUrl && { proxyBaseUrl: params.proxyBaseUrl }),
27
- ...(params.sessionStorage && {
28
- sessionStorage: params.sessionStorage,
29
- }),
30
- ...(params.rpId && { rpId: params.rpId }),
31
- });
32
- // Create store
33
- store = createZeroDevWalletStore();
34
- store.getState().setWallet(wallet);
35
- // Initialize chainIds
36
- const chainIds = params.chains.map((c) => c.id);
37
- store.setState({ chainIds });
38
- // Store OAuth config if provided
39
- if (params.oauthConfig) {
40
- store.getState().setOAuthConfig(params.oauthConfig);
41
- }
42
- // Create EIP-1193 provider
43
- provider = createProvider({
44
- store,
45
- config: params,
46
- chains: Array.from(params.chains),
47
- });
48
- // Check for existing session (page reload)
49
- const session = await wallet.getSession();
50
- if (session) {
51
- console.log('Found existing session, restoring...');
52
- const eoaAccount = await wallet.toAccount();
53
- store.getState().setEoaAccount(eoaAccount);
54
- store.getState().setSession(session);
55
- }
56
- console.log('ZeroDevWallet connector initialized');
57
- })();
58
- return initPromise;
17
+ console.log('Initializing ZeroDevWallet connector...');
18
+ // Initialize wallet SDK
19
+ const wallet = await createZeroDevWallet({
20
+ projectId: params.projectId,
21
+ ...(params.organizationId && {
22
+ organizationId: params.organizationId,
23
+ }),
24
+ ...(params.proxyBaseUrl && { proxyBaseUrl: params.proxyBaseUrl }),
25
+ ...(params.sessionStorage && {
26
+ sessionStorage: params.sessionStorage,
27
+ }),
28
+ ...(params.rpId && { rpId: params.rpId }),
29
+ });
30
+ // Create store
31
+ store = createZeroDevWalletStore();
32
+ store.getState().setWallet(wallet);
33
+ // Initialize chainIds
34
+ const chainIds = params.chains.map((c) => c.id);
35
+ store.setState({ chainIds });
36
+ // Store OAuth config if provided
37
+ if (params.oauthConfig) {
38
+ store.getState().setOAuthConfig(params.oauthConfig);
39
+ }
40
+ // Create EIP-1193 provider
41
+ provider = createProvider({
42
+ store,
43
+ config: params,
44
+ chains: Array.from(params.chains),
45
+ });
46
+ // Check for existing session (page reload)
47
+ const session = await wallet.getSession();
48
+ if (session) {
49
+ console.log('Found existing session, restoring...');
50
+ const eoaAccount = await wallet.toAccount();
51
+ store.getState().setEoaAccount(eoaAccount);
52
+ store.getState().setSession(session);
53
+ }
54
+ console.log('ZeroDevWallet connector initialized');
59
55
  };
60
56
  return {
61
57
  id: 'zerodev-wallet',
@@ -172,11 +168,12 @@ export function zeroDevWallet(params) {
172
168
  return store.getState().chainIds[0] || params.chains[0].id;
173
169
  },
174
170
  async getProvider() {
175
- await initialize();
171
+ if (!provider) {
172
+ await initialize();
173
+ }
176
174
  return provider;
177
175
  },
178
176
  async switchChain({ chainId }) {
179
- await initialize();
180
177
  console.log(`Switching to chain ${chainId}...`);
181
178
  const state = store.getState();
182
179
  if (!state.eoaAccount) {
@@ -215,6 +212,7 @@ export function zeroDevWallet(params) {
215
212
  });
216
213
  store.getState().setKernelClient(chainId, kernelClient);
217
214
  }
215
+ wagmiConfig.emitter.emit('change', { chainId });
218
216
  return params.chains.find((c) => c.id === chainId);
219
217
  },
220
218
  async isAuthorized() {
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,aAAa,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,4BAA4B,GACnC,iBAAiB,CAyTnB"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,aAAa,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,4BAA4B,GACnC,iBAAiB,CAsTnB"}