@zerodev/wallet-react 0.0.1-alpha.4 → 0.0.1-alpha.6
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 +14 -0
- package/README.md +14 -1
- package/dist/_cjs/actions.js +30 -3
- package/dist/_cjs/connector.js +7 -12
- package/dist/_cjs/hooks/useExportPrivateKey.js +18 -0
- package/dist/_cjs/index.js +3 -1
- package/dist/_cjs/provider.js +5 -2
- package/dist/_cjs/store.js +4 -9
- package/dist/_esm/actions.js +31 -1
- package/dist/_esm/connector.js +7 -13
- package/dist/_esm/hooks/useExportPrivateKey.js +18 -0
- package/dist/_esm/index.js +1 -0
- package/dist/_esm/provider.js +5 -2
- package/dist/_esm/store.js +4 -10
- package/dist/_types/actions.d.ts +19 -0
- package/dist/_types/actions.d.ts.map +1 -1
- package/dist/_types/connector.d.ts.map +1 -1
- package/dist/_types/hooks/useExportPrivateKey.d.ts +18 -0
- package/dist/_types/hooks/useExportPrivateKey.d.ts.map +1 -0
- package/dist/_types/index.d.ts +1 -0
- package/dist/_types/index.d.ts.map +1 -1
- package/dist/_types/provider.d.ts.map +1 -1
- package/dist/_types/store.d.ts +4 -4
- package/dist/_types/store.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/actions.ts +64 -4
- package/src/connector.ts +8 -14
- package/src/hooks/useExportPrivateKey.ts +57 -0
- package/src/index.ts +1 -0
- package/src/provider.ts +5 -2
- package/src/store.ts +6 -12
- package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @zerodev/wallet-react
|
|
2
2
|
|
|
3
|
+
## 0.0.1-alpha.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- feat: Added private key export feature
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @zerodev/wallet-core@0.0.1-alpha.6
|
|
10
|
+
|
|
11
|
+
## 0.0.1-alpha.5
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- refactor: Simplify chain state management by replacing chainIds array with activeChainId
|
|
16
|
+
|
|
3
17
|
## 0.0.1-alpha.4
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -224,16 +224,28 @@ const refreshSession = useRefreshSession()
|
|
|
224
224
|
await refreshSession.mutateAsync({})
|
|
225
225
|
```
|
|
226
226
|
|
|
227
|
-
### Export Wallet
|
|
227
|
+
### Export Wallet (Seed Phrase)
|
|
228
228
|
|
|
229
229
|
```typescript
|
|
230
230
|
const exportWallet = useExportWallet()
|
|
231
231
|
|
|
232
|
+
// Container element must exist: <div id="export-container" />
|
|
232
233
|
await exportWallet.mutateAsync({
|
|
233
234
|
iframeContainerId: 'export-container'
|
|
234
235
|
})
|
|
235
236
|
```
|
|
236
237
|
|
|
238
|
+
### Export Private Key
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
const exportPrivateKey = useExportPrivateKey()
|
|
242
|
+
|
|
243
|
+
// Container element must exist: <div id="export-container" />
|
|
244
|
+
await exportPrivateKey.mutateAsync({
|
|
245
|
+
iframeContainerId: 'export-container'
|
|
246
|
+
})
|
|
247
|
+
```
|
|
248
|
+
|
|
237
249
|
## API Reference
|
|
238
250
|
|
|
239
251
|
### Hooks
|
|
@@ -247,6 +259,7 @@ All hooks follow the TanStack Query mutation pattern:
|
|
|
247
259
|
- `useVerifyOTP()` - Verify OTP code
|
|
248
260
|
- `useRefreshSession()` - Manually refresh session
|
|
249
261
|
- `useExportWallet()` - Export wallet seed phrase
|
|
262
|
+
- `useExportPrivateKey()` - Export wallet private key
|
|
250
263
|
|
|
251
264
|
### Connector
|
|
252
265
|
|
package/dist/_cjs/actions.js
CHANGED
|
@@ -7,7 +7,9 @@ exports.sendOTP = sendOTP;
|
|
|
7
7
|
exports.verifyOTP = verifyOTP;
|
|
8
8
|
exports.refreshSession = refreshSession;
|
|
9
9
|
exports.exportWallet = exportWallet;
|
|
10
|
+
exports.exportPrivateKey = exportPrivateKey;
|
|
10
11
|
const actions_1 = require("@wagmi/core/actions");
|
|
12
|
+
const wallet_core_1 = require("@zerodev/wallet-core");
|
|
11
13
|
const oauth_js_1 = require("./oauth.js");
|
|
12
14
|
function getZeroDevConnector(config) {
|
|
13
15
|
const connector = config.connectors.find((c) => c.id === 'zerodev-wallet');
|
|
@@ -171,18 +173,17 @@ async function exportWallet(config, parameters) {
|
|
|
171
173
|
const wallet = store.getState().wallet;
|
|
172
174
|
if (!wallet)
|
|
173
175
|
throw new Error('Wallet not initialized');
|
|
174
|
-
const { exportWallet: exportWalletSdk, createIframeStamper } = await Promise.resolve().then(() => require('@zerodev/wallet-core'));
|
|
175
176
|
const iframeContainer = document.getElementById(parameters.iframeContainerId);
|
|
176
177
|
if (!iframeContainer) {
|
|
177
178
|
throw new Error('Iframe container not found');
|
|
178
179
|
}
|
|
179
|
-
const iframeStamper = await createIframeStamper({
|
|
180
|
+
const iframeStamper = await (0, wallet_core_1.createIframeStamper)({
|
|
180
181
|
iframeUrl: 'https://export.turnkey.com',
|
|
181
182
|
iframeContainer,
|
|
182
183
|
iframeElementId: 'export-wallet-iframe',
|
|
183
184
|
});
|
|
184
185
|
const publicKey = await iframeStamper.init();
|
|
185
|
-
const { exportBundle, organizationId } = await
|
|
186
|
+
const { exportBundle, organizationId } = await (0, wallet_core_1.exportWallet)({
|
|
186
187
|
wallet,
|
|
187
188
|
targetPublicKey: publicKey,
|
|
188
189
|
});
|
|
@@ -191,3 +192,29 @@ async function exportWallet(config, parameters) {
|
|
|
191
192
|
throw new Error('Failed to inject export bundle');
|
|
192
193
|
}
|
|
193
194
|
}
|
|
195
|
+
async function exportPrivateKey(config, parameters) {
|
|
196
|
+
const connector = parameters.connector ?? getZeroDevConnector(config);
|
|
197
|
+
const store = await connector.getStore();
|
|
198
|
+
const wallet = store.getState().wallet;
|
|
199
|
+
if (!wallet)
|
|
200
|
+
throw new Error('Wallet not initialized');
|
|
201
|
+
const iframeContainer = document.getElementById(parameters.iframeContainerId);
|
|
202
|
+
if (!iframeContainer) {
|
|
203
|
+
throw new Error('Iframe container not found');
|
|
204
|
+
}
|
|
205
|
+
const iframeStamper = await (0, wallet_core_1.createIframeStamper)({
|
|
206
|
+
iframeUrl: 'https://export.turnkey.com',
|
|
207
|
+
iframeContainer,
|
|
208
|
+
iframeElementId: 'export-private-key-iframe',
|
|
209
|
+
});
|
|
210
|
+
const publicKey = await iframeStamper.init();
|
|
211
|
+
const { exportBundle, organizationId } = await (0, wallet_core_1.exportPrivateKey)({
|
|
212
|
+
wallet,
|
|
213
|
+
targetPublicKey: publicKey,
|
|
214
|
+
...(parameters.address && { address: parameters.address }),
|
|
215
|
+
});
|
|
216
|
+
const success = await iframeStamper.injectKeyExportBundle(exportBundle, organizationId, parameters.keyFormat ?? 'Hexadecimal');
|
|
217
|
+
if (success !== true) {
|
|
218
|
+
throw new Error('Failed to inject export bundle');
|
|
219
|
+
}
|
|
220
|
+
}
|
package/dist/_cjs/connector.js
CHANGED
|
@@ -29,8 +29,6 @@ function zeroDevWallet(params) {
|
|
|
29
29
|
});
|
|
30
30
|
store = (0, store_js_1.createZeroDevWalletStore)();
|
|
31
31
|
store.getState().setWallet(wallet);
|
|
32
|
-
const chainIds = params.chains.map((c) => c.id);
|
|
33
|
-
store.setState({ chainIds });
|
|
34
32
|
if (params.oauthConfig) {
|
|
35
33
|
store.getState().setOAuthConfig(params.oauthConfig);
|
|
36
34
|
}
|
|
@@ -65,10 +63,7 @@ function zeroDevWallet(params) {
|
|
|
65
63
|
? 'Reconnecting ZeroDevWallet...'
|
|
66
64
|
: 'Connecting ZeroDevWallet...');
|
|
67
65
|
const state = store.getState();
|
|
68
|
-
const activeChainId = chainId
|
|
69
|
-
if (!activeChainId) {
|
|
70
|
-
throw new Error('No chain configured');
|
|
71
|
-
}
|
|
66
|
+
const activeChainId = chainId ?? state.activeChainId ?? params.chains[0].id;
|
|
72
67
|
if (isReconnecting && state.kernelAccounts.has(activeChainId)) {
|
|
73
68
|
const kernelAccount = state.kernelAccounts.get(activeChainId);
|
|
74
69
|
if (kernelAccount?.address) {
|
|
@@ -111,7 +106,7 @@ function zeroDevWallet(params) {
|
|
|
111
106
|
});
|
|
112
107
|
store.getState().setKernelClient(activeChainId, kernelClient);
|
|
113
108
|
}
|
|
114
|
-
store.getState().
|
|
109
|
+
store.getState().setActiveChainId(activeChainId);
|
|
115
110
|
const freshState = store.getState();
|
|
116
111
|
const kernelAccount = freshState.kernelAccounts.get(activeChainId);
|
|
117
112
|
console.log('ZeroDevWallet connected:', kernelAccount.address);
|
|
@@ -135,19 +130,19 @@ function zeroDevWallet(params) {
|
|
|
135
130
|
async getAccounts() {
|
|
136
131
|
if (!store)
|
|
137
132
|
return [];
|
|
138
|
-
const { eoaAccount, kernelAccounts,
|
|
133
|
+
const { eoaAccount, kernelAccounts, activeChainId } = store.getState();
|
|
139
134
|
if (eoaAccount) {
|
|
140
135
|
return [eoaAccount.address];
|
|
141
136
|
}
|
|
142
|
-
const activeAccount =
|
|
143
|
-
? kernelAccounts.get(
|
|
137
|
+
const activeAccount = activeChainId
|
|
138
|
+
? kernelAccounts.get(activeChainId)
|
|
144
139
|
: null;
|
|
145
140
|
return activeAccount ? [activeAccount.address] : [];
|
|
146
141
|
},
|
|
147
142
|
async getChainId() {
|
|
148
143
|
if (!store)
|
|
149
144
|
return params.chains[0].id;
|
|
150
|
-
return store.getState().
|
|
145
|
+
return store.getState().activeChainId ?? params.chains[0].id;
|
|
151
146
|
},
|
|
152
147
|
async getProvider() {
|
|
153
148
|
if (!provider) {
|
|
@@ -161,7 +156,7 @@ function zeroDevWallet(params) {
|
|
|
161
156
|
if (!state.eoaAccount) {
|
|
162
157
|
throw new Error('Not authenticated');
|
|
163
158
|
}
|
|
164
|
-
store.getState().
|
|
159
|
+
store.getState().setActiveChainId(chainId);
|
|
165
160
|
if (!state.kernelAccounts.has(chainId)) {
|
|
166
161
|
const chain = params.chains.find((c) => c.id === chainId);
|
|
167
162
|
if (!chain) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useExportPrivateKey = useExportPrivateKey;
|
|
5
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
6
|
+
const wagmi_1 = require("wagmi");
|
|
7
|
+
const actions_js_1 = require("../actions.js");
|
|
8
|
+
function useExportPrivateKey(parameters = {}) {
|
|
9
|
+
const { mutation } = parameters;
|
|
10
|
+
const config = (0, wagmi_1.useConfig)(parameters);
|
|
11
|
+
return (0, react_query_1.useMutation)({
|
|
12
|
+
...mutation,
|
|
13
|
+
async mutationFn(variables) {
|
|
14
|
+
return (0, actions_js_1.exportPrivateKey)(config, variables);
|
|
15
|
+
},
|
|
16
|
+
mutationKey: ['exportPrivateKey'],
|
|
17
|
+
});
|
|
18
|
+
}
|
package/dist/_cjs/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createZeroDevWalletStore = exports.OAUTH_PROVIDERS = exports.useVerifyOTP = exports.useSendOTP = exports.useRegisterPasskey = exports.useRefreshSession = exports.useLoginPasskey = exports.useExportWallet = exports.useAuthenticateOAuth = exports.zeroDevWallet = void 0;
|
|
3
|
+
exports.createZeroDevWalletStore = exports.OAUTH_PROVIDERS = exports.useVerifyOTP = exports.useSendOTP = exports.useRegisterPasskey = exports.useRefreshSession = exports.useLoginPasskey = exports.useExportWallet = exports.useExportPrivateKey = exports.useAuthenticateOAuth = exports.zeroDevWallet = void 0;
|
|
4
4
|
var connector_js_1 = require("./connector.js");
|
|
5
5
|
Object.defineProperty(exports, "zeroDevWallet", { enumerable: true, get: function () { return connector_js_1.zeroDevWallet; } });
|
|
6
6
|
var useAuthenticateOAuth_js_1 = require("./hooks/useAuthenticateOAuth.js");
|
|
7
7
|
Object.defineProperty(exports, "useAuthenticateOAuth", { enumerable: true, get: function () { return useAuthenticateOAuth_js_1.useAuthenticateOAuth; } });
|
|
8
|
+
var useExportPrivateKey_js_1 = require("./hooks/useExportPrivateKey.js");
|
|
9
|
+
Object.defineProperty(exports, "useExportPrivateKey", { enumerable: true, get: function () { return useExportPrivateKey_js_1.useExportPrivateKey; } });
|
|
8
10
|
var useExportWallet_js_1 = require("./hooks/useExportWallet.js");
|
|
9
11
|
Object.defineProperty(exports, "useExportWallet", { enumerable: true, get: function () { return useExportWallet_js_1.useExportWallet; } });
|
|
10
12
|
var useLoginPasskey_js_1 = require("./hooks/useLoginPasskey.js");
|
package/dist/_cjs/provider.js
CHANGED
|
@@ -77,7 +77,10 @@ function createProvider({ store, config, }) {
|
|
|
77
77
|
},
|
|
78
78
|
async request({ method, params }) {
|
|
79
79
|
const state = store.getState();
|
|
80
|
-
const activeChainId = state.
|
|
80
|
+
const activeChainId = state.activeChainId;
|
|
81
|
+
if (!activeChainId) {
|
|
82
|
+
throw new Error('No active chain');
|
|
83
|
+
}
|
|
81
84
|
switch (method) {
|
|
82
85
|
case 'eth_accounts': {
|
|
83
86
|
const account = state.kernelAccounts.get(activeChainId);
|
|
@@ -151,7 +154,7 @@ function createProvider({ store, config, }) {
|
|
|
151
154
|
}
|
|
152
155
|
const [{ chainId }] = params;
|
|
153
156
|
const chainId_number = parseInt(chainId, 16);
|
|
154
|
-
store.getState().
|
|
157
|
+
store.getState().setActiveChainId(chainId_number);
|
|
155
158
|
emitter.emit('chainChanged', chainId);
|
|
156
159
|
return null;
|
|
157
160
|
}
|
package/dist/_cjs/store.js
CHANGED
|
@@ -7,7 +7,7 @@ const createZeroDevWalletStore = () => (0, zustand_1.create)()((0, middleware_1.
|
|
|
7
7
|
wallet: null,
|
|
8
8
|
eoaAccount: null,
|
|
9
9
|
session: null,
|
|
10
|
-
|
|
10
|
+
activeChainId: null,
|
|
11
11
|
kernelAccounts: new Map(),
|
|
12
12
|
kernelClients: new Map(),
|
|
13
13
|
isExpiring: false,
|
|
@@ -25,12 +25,7 @@ const createZeroDevWalletStore = () => (0, zustand_1.create)()((0, middleware_1.
|
|
|
25
25
|
set({ kernelClients: clients });
|
|
26
26
|
},
|
|
27
27
|
setSession: (session) => set({ session }),
|
|
28
|
-
|
|
29
|
-
const { chainIds } = get();
|
|
30
|
-
set({
|
|
31
|
-
chainIds: [chainId, ...chainIds.filter((id) => id !== chainId)],
|
|
32
|
-
});
|
|
33
|
-
},
|
|
28
|
+
setActiveChainId: (chainId) => set({ activeChainId: chainId }),
|
|
34
29
|
setIsExpiring: (isExpiring) => set({ isExpiring }),
|
|
35
30
|
setOAuthConfig: (config) => set({ oauthConfig: config }),
|
|
36
31
|
clear: () => set({
|
|
@@ -39,13 +34,13 @@ const createZeroDevWalletStore = () => (0, zustand_1.create)()((0, middleware_1.
|
|
|
39
34
|
kernelAccounts: new Map(),
|
|
40
35
|
kernelClients: new Map(),
|
|
41
36
|
isExpiring: false,
|
|
42
|
-
|
|
37
|
+
activeChainId: null,
|
|
43
38
|
}),
|
|
44
39
|
}), {
|
|
45
40
|
name: 'zerodev-wallet',
|
|
46
41
|
partialize: (state) => ({
|
|
47
42
|
session: state.session,
|
|
48
|
-
|
|
43
|
+
activeChainId: state.activeChainId,
|
|
49
44
|
}),
|
|
50
45
|
})));
|
|
51
46
|
exports.createZeroDevWalletStore = createZeroDevWalletStore;
|
package/dist/_esm/actions.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { connect as wagmiConnect } from '@wagmi/core/actions';
|
|
2
|
+
import { createIframeStamper, exportPrivateKey as exportPrivateKeySdk, exportWallet as exportWalletSdk, } from '@zerodev/wallet-core';
|
|
2
3
|
import { buildOAuthUrl, generateOAuthNonce, openOAuthPopup, pollOAuthPopup, } from './oauth.js';
|
|
3
4
|
/**
|
|
4
5
|
* Get ZeroDev connector from config
|
|
@@ -203,7 +204,6 @@ export async function exportWallet(config, parameters) {
|
|
|
203
204
|
const wallet = store.getState().wallet;
|
|
204
205
|
if (!wallet)
|
|
205
206
|
throw new Error('Wallet not initialized');
|
|
206
|
-
const { exportWallet: exportWalletSdk, createIframeStamper } = await import('@zerodev/wallet-core');
|
|
207
207
|
const iframeContainer = document.getElementById(parameters.iframeContainerId);
|
|
208
208
|
if (!iframeContainer) {
|
|
209
209
|
throw new Error('Iframe container not found');
|
|
@@ -223,3 +223,33 @@ export async function exportWallet(config, parameters) {
|
|
|
223
223
|
throw new Error('Failed to inject export bundle');
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Export private key
|
|
228
|
+
*/
|
|
229
|
+
export async function exportPrivateKey(config, parameters) {
|
|
230
|
+
const connector = parameters.connector ?? getZeroDevConnector(config);
|
|
231
|
+
// @ts-expect-error - getStore is a custom method
|
|
232
|
+
const store = await connector.getStore();
|
|
233
|
+
const wallet = store.getState().wallet;
|
|
234
|
+
if (!wallet)
|
|
235
|
+
throw new Error('Wallet not initialized');
|
|
236
|
+
const iframeContainer = document.getElementById(parameters.iframeContainerId);
|
|
237
|
+
if (!iframeContainer) {
|
|
238
|
+
throw new Error('Iframe container not found');
|
|
239
|
+
}
|
|
240
|
+
const iframeStamper = await createIframeStamper({
|
|
241
|
+
iframeUrl: 'https://export.turnkey.com',
|
|
242
|
+
iframeContainer,
|
|
243
|
+
iframeElementId: 'export-private-key-iframe',
|
|
244
|
+
});
|
|
245
|
+
const publicKey = await iframeStamper.init();
|
|
246
|
+
const { exportBundle, organizationId } = await exportPrivateKeySdk({
|
|
247
|
+
wallet,
|
|
248
|
+
targetPublicKey: publicKey,
|
|
249
|
+
...(parameters.address && { address: parameters.address }),
|
|
250
|
+
});
|
|
251
|
+
const success = await iframeStamper.injectKeyExportBundle(exportBundle, organizationId, parameters.keyFormat ?? 'Hexadecimal');
|
|
252
|
+
if (success !== true) {
|
|
253
|
+
throw new Error('Failed to inject export bundle');
|
|
254
|
+
}
|
|
255
|
+
}
|
package/dist/_esm/connector.js
CHANGED
|
@@ -30,9 +30,6 @@ export function zeroDevWallet(params) {
|
|
|
30
30
|
// Create store
|
|
31
31
|
store = createZeroDevWalletStore();
|
|
32
32
|
store.getState().setWallet(wallet);
|
|
33
|
-
// Initialize chainIds
|
|
34
|
-
const chainIds = params.chains.map((c) => c.id);
|
|
35
|
-
store.setState({ chainIds });
|
|
36
33
|
// Store OAuth config if provided
|
|
37
34
|
if (params.oauthConfig) {
|
|
38
35
|
store.getState().setOAuthConfig(params.oauthConfig);
|
|
@@ -73,10 +70,7 @@ export function zeroDevWallet(params) {
|
|
|
73
70
|
: 'Connecting ZeroDevWallet...');
|
|
74
71
|
const state = store.getState();
|
|
75
72
|
// Determine active chain
|
|
76
|
-
const activeChainId = chainId
|
|
77
|
-
if (!activeChainId) {
|
|
78
|
-
throw new Error('No chain configured');
|
|
79
|
-
}
|
|
73
|
+
const activeChainId = chainId ?? state.activeChainId ?? params.chains[0].id;
|
|
80
74
|
// If reconnecting and already have kernel account, return immediately
|
|
81
75
|
if (isReconnecting && state.kernelAccounts.has(activeChainId)) {
|
|
82
76
|
const kernelAccount = state.kernelAccounts.get(activeChainId);
|
|
@@ -125,7 +119,7 @@ export function zeroDevWallet(params) {
|
|
|
125
119
|
store.getState().setKernelClient(activeChainId, kernelClient);
|
|
126
120
|
}
|
|
127
121
|
// Set as active chain
|
|
128
|
-
store.getState().
|
|
122
|
+
store.getState().setActiveChainId(activeChainId);
|
|
129
123
|
// Get fresh state after updates
|
|
130
124
|
const freshState = store.getState();
|
|
131
125
|
const kernelAccount = freshState.kernelAccounts.get(activeChainId);
|
|
@@ -151,21 +145,21 @@ export function zeroDevWallet(params) {
|
|
|
151
145
|
async getAccounts() {
|
|
152
146
|
if (!store)
|
|
153
147
|
return [];
|
|
154
|
-
const { eoaAccount, kernelAccounts,
|
|
148
|
+
const { eoaAccount, kernelAccounts, activeChainId } = store.getState();
|
|
155
149
|
// Return EOA address if we have it (EIP-7702: EOA address = kernel address)
|
|
156
150
|
if (eoaAccount) {
|
|
157
151
|
return [eoaAccount.address];
|
|
158
152
|
}
|
|
159
153
|
// Fallback: check kernel accounts
|
|
160
|
-
const activeAccount =
|
|
161
|
-
? kernelAccounts.get(
|
|
154
|
+
const activeAccount = activeChainId
|
|
155
|
+
? kernelAccounts.get(activeChainId)
|
|
162
156
|
: null;
|
|
163
157
|
return activeAccount ? [activeAccount.address] : [];
|
|
164
158
|
},
|
|
165
159
|
async getChainId() {
|
|
166
160
|
if (!store)
|
|
167
161
|
return params.chains[0].id;
|
|
168
|
-
return store.getState().
|
|
162
|
+
return store.getState().activeChainId ?? params.chains[0].id;
|
|
169
163
|
},
|
|
170
164
|
async getProvider() {
|
|
171
165
|
if (!provider) {
|
|
@@ -180,7 +174,7 @@ export function zeroDevWallet(params) {
|
|
|
180
174
|
throw new Error('Not authenticated');
|
|
181
175
|
}
|
|
182
176
|
// Update active chain
|
|
183
|
-
store.getState().
|
|
177
|
+
store.getState().setActiveChainId(chainId);
|
|
184
178
|
// Create kernel account for new chain if doesn't exist
|
|
185
179
|
if (!state.kernelAccounts.has(chainId)) {
|
|
186
180
|
const chain = params.chains.find((c) => c.id === chainId);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useMutation, } from '@tanstack/react-query';
|
|
3
|
+
import { useConfig } from 'wagmi';
|
|
4
|
+
import { exportPrivateKey } from '../actions.js';
|
|
5
|
+
/**
|
|
6
|
+
* Hook to export private key
|
|
7
|
+
*/
|
|
8
|
+
export function useExportPrivateKey(parameters = {}) {
|
|
9
|
+
const { mutation } = parameters;
|
|
10
|
+
const config = useConfig(parameters);
|
|
11
|
+
return useMutation({
|
|
12
|
+
...mutation,
|
|
13
|
+
async mutationFn(variables) {
|
|
14
|
+
return exportPrivateKey(config, variables);
|
|
15
|
+
},
|
|
16
|
+
mutationKey: ['exportPrivateKey'],
|
|
17
|
+
});
|
|
18
|
+
}
|
package/dist/_esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { zeroDevWallet } from './connector.js';
|
|
2
2
|
export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
|
|
3
|
+
export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
|
|
3
4
|
export { useExportWallet } from './hooks/useExportWallet.js';
|
|
4
5
|
export { useLoginPasskey } from './hooks/useLoginPasskey.js';
|
|
5
6
|
export { useRefreshSession } from './hooks/useRefreshSession.js';
|
package/dist/_esm/provider.js
CHANGED
|
@@ -79,7 +79,10 @@ export function createProvider({ store, config, }) {
|
|
|
79
79
|
},
|
|
80
80
|
async request({ method, params }) {
|
|
81
81
|
const state = store.getState();
|
|
82
|
-
const activeChainId = state.
|
|
82
|
+
const activeChainId = state.activeChainId;
|
|
83
|
+
if (!activeChainId) {
|
|
84
|
+
throw new Error('No active chain');
|
|
85
|
+
}
|
|
83
86
|
switch (method) {
|
|
84
87
|
case 'eth_accounts': {
|
|
85
88
|
const account = state.kernelAccounts.get(activeChainId);
|
|
@@ -156,7 +159,7 @@ export function createProvider({ store, config, }) {
|
|
|
156
159
|
const [{ chainId }] = params;
|
|
157
160
|
const chainId_number = parseInt(chainId, 16);
|
|
158
161
|
// Update active chain
|
|
159
|
-
store.getState().
|
|
162
|
+
store.getState().setActiveChainId(chainId_number);
|
|
160
163
|
// Emit chainChanged event
|
|
161
164
|
emitter.emit('chainChanged', chainId);
|
|
162
165
|
return null;
|
package/dist/_esm/store.js
CHANGED
|
@@ -5,7 +5,7 @@ export const createZeroDevWalletStore = () => create()(subscribeWithSelector(per
|
|
|
5
5
|
wallet: null,
|
|
6
6
|
eoaAccount: null,
|
|
7
7
|
session: null,
|
|
8
|
-
|
|
8
|
+
activeChainId: null,
|
|
9
9
|
kernelAccounts: new Map(),
|
|
10
10
|
kernelClients: new Map(),
|
|
11
11
|
isExpiring: false,
|
|
@@ -24,13 +24,7 @@ export const createZeroDevWalletStore = () => create()(subscribeWithSelector(per
|
|
|
24
24
|
set({ kernelClients: clients });
|
|
25
25
|
},
|
|
26
26
|
setSession: (session) => set({ session }),
|
|
27
|
-
|
|
28
|
-
const { chainIds } = get();
|
|
29
|
-
// Move chainId to front, remove duplicates
|
|
30
|
-
set({
|
|
31
|
-
chainIds: [chainId, ...chainIds.filter((id) => id !== chainId)],
|
|
32
|
-
});
|
|
33
|
-
},
|
|
27
|
+
setActiveChainId: (chainId) => set({ activeChainId: chainId }),
|
|
34
28
|
setIsExpiring: (isExpiring) => set({ isExpiring }),
|
|
35
29
|
setOAuthConfig: (config) => set({ oauthConfig: config }),
|
|
36
30
|
clear: () => set({
|
|
@@ -39,13 +33,13 @@ export const createZeroDevWalletStore = () => create()(subscribeWithSelector(per
|
|
|
39
33
|
kernelAccounts: new Map(),
|
|
40
34
|
kernelClients: new Map(),
|
|
41
35
|
isExpiring: false,
|
|
42
|
-
|
|
36
|
+
activeChainId: null,
|
|
43
37
|
}),
|
|
44
38
|
}), {
|
|
45
39
|
name: 'zerodev-wallet',
|
|
46
40
|
// Only persist session data, not clients or accounts
|
|
47
41
|
partialize: (state) => ({
|
|
48
42
|
session: state.session,
|
|
49
|
-
|
|
43
|
+
activeChainId: state.activeChainId,
|
|
50
44
|
}),
|
|
51
45
|
})));
|
package/dist/_types/actions.d.ts
CHANGED
|
@@ -121,4 +121,23 @@ export declare namespace exportWallet {
|
|
|
121
121
|
type ReturnType = void;
|
|
122
122
|
type ErrorType = Error;
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Export private key
|
|
126
|
+
*/
|
|
127
|
+
export declare function exportPrivateKey(config: Config, parameters: {
|
|
128
|
+
iframeContainerId: string;
|
|
129
|
+
address?: string;
|
|
130
|
+
keyFormat?: 'Hexadecimal' | 'Solana';
|
|
131
|
+
connector?: Connector;
|
|
132
|
+
}): Promise<void>;
|
|
133
|
+
export declare namespace exportPrivateKey {
|
|
134
|
+
type Parameters = {
|
|
135
|
+
iframeContainerId: string;
|
|
136
|
+
address?: string;
|
|
137
|
+
keyFormat?: 'Hexadecimal' | 'Solana';
|
|
138
|
+
connector?: Connector;
|
|
139
|
+
};
|
|
140
|
+
type ReturnType = void;
|
|
141
|
+
type ErrorType = Error;
|
|
142
|
+
}
|
|
124
143
|
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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,CAgTnB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import { type Config, type ResolvedRegister } from 'wagmi';
|
|
3
|
+
import { exportPrivateKey } from '../actions.js';
|
|
4
|
+
type ConfigParameter<config extends Config = Config> = {
|
|
5
|
+
config?: Config | config | undefined;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Hook to export private key
|
|
9
|
+
*/
|
|
10
|
+
export declare function useExportPrivateKey<config extends Config = ResolvedRegister['config'], context = unknown>(parameters?: useExportPrivateKey.Parameters<config, context>): useExportPrivateKey.ReturnType<context>;
|
|
11
|
+
export declare namespace useExportPrivateKey {
|
|
12
|
+
type Parameters<config extends Config = Config, context = unknown> = ConfigParameter<config> & {
|
|
13
|
+
mutation?: UseMutationOptions<exportPrivateKey.ReturnType, exportPrivateKey.ErrorType, exportPrivateKey.Parameters, context> | undefined;
|
|
14
|
+
};
|
|
15
|
+
type ReturnType<context = unknown> = UseMutationResult<exportPrivateKey.ReturnType, exportPrivateKey.ErrorType, exportPrivateKey.Parameters, context>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=useExportPrivateKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useExportPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExportPrivateKey.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAa,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,SAAS,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAClD,OAAO,GAAG,OAAO,EAEjB,UAAU,GAAE,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAM,GAC/D,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAWzC;AAED,MAAM,CAAC,OAAO,WAAW,mBAAmB,CAAC;IAC3C,KAAK,UAAU,CACb,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,GAAG,OAAO,IACf,eAAe,CAAC,MAAM,CAAC,GAAG;QAC5B,QAAQ,CAAC,EACL,kBAAkB,CAChB,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3B,OAAO,CACR,GACD,SAAS,CAAA;KACd,CAAA;IAED,KAAK,UAAU,CAAC,OAAO,GAAG,OAAO,IAAI,iBAAiB,CACpD,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3B,OAAO,CACR,CAAA;CACF"}
|
package/dist/_types/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type { ZeroDevWalletConnectorParams } from './connector.js';
|
|
2
2
|
export { zeroDevWallet } from './connector.js';
|
|
3
3
|
export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
|
|
4
|
+
export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
|
|
4
5
|
export { useExportWallet } from './hooks/useExportWallet.js';
|
|
5
6
|
export { useLoginPasskey } from './hooks/useLoginPasskey.js';
|
|
6
7
|
export { useRefreshSession } from './hooks/useRefreshSession.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAA;AAE/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAI1D,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAClD,MAAM,EAAE,4BAA4B,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG;IACxE,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,OAAO,IAAI,IAAI,CAAA;CAChB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,GACP,EAAE,oBAAoB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAA;AAE/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAI1D,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAClD,MAAM,EAAE,4BAA4B,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG;IACxE,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,OAAO,IAAI,IAAI,CAAA;CAChB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,GACP,EAAE,oBAAoB,GAAG,eAAe,CAqNxC"}
|
package/dist/_types/store.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type ZeroDevWalletState = {
|
|
|
7
7
|
wallet: ZeroDevWalletSDK | null;
|
|
8
8
|
eoaAccount: LocalAccount | null;
|
|
9
9
|
session: ZeroDevWalletSession | null;
|
|
10
|
-
|
|
10
|
+
activeChainId: number | null;
|
|
11
11
|
kernelAccounts: Map<number, SmartAccount<KernelSmartAccountImplementation>>;
|
|
12
12
|
kernelClients: Map<number, KernelAccountClient>;
|
|
13
13
|
isExpiring: boolean;
|
|
@@ -17,7 +17,7 @@ export type ZeroDevWalletState = {
|
|
|
17
17
|
setKernelAccount: (chainId: number, account: SmartAccount<KernelSmartAccountImplementation>) => void;
|
|
18
18
|
setKernelClient: (chainId: number, client: KernelAccountClient) => void;
|
|
19
19
|
setSession: (session: ZeroDevWalletSession | null) => void;
|
|
20
|
-
|
|
20
|
+
setActiveChainId: (chainId: number | null) => void;
|
|
21
21
|
setIsExpiring: (isExpiring: boolean) => void;
|
|
22
22
|
setOAuthConfig: (config: OAuthConfig | null) => void;
|
|
23
23
|
clear: () => void;
|
|
@@ -36,7 +36,7 @@ export declare const createZeroDevWalletStore: () => import("zustand").UseBoundS
|
|
|
36
36
|
persist: {
|
|
37
37
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ZeroDevWalletState, {
|
|
38
38
|
session: ZeroDevWalletSession | null;
|
|
39
|
-
|
|
39
|
+
activeChainId: number | null;
|
|
40
40
|
}, unknown>>) => void;
|
|
41
41
|
clearStorage: () => void;
|
|
42
42
|
rehydrate: () => Promise<void> | void;
|
|
@@ -45,7 +45,7 @@ export declare const createZeroDevWalletStore: () => import("zustand").UseBoundS
|
|
|
45
45
|
onFinishHydration: (fn: (state: ZeroDevWalletState) => void) => () => void;
|
|
46
46
|
getOptions: () => Partial<import("zustand/middleware").PersistOptions<ZeroDevWalletState, {
|
|
47
47
|
session: ZeroDevWalletSession | null;
|
|
48
|
-
|
|
48
|
+
activeChainId: number | null;
|
|
49
49
|
}, unknown>>;
|
|
50
50
|
};
|
|
51
51
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAE/B,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAGpC,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAE/B,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAGpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,gCAAgC,CAAC,CAAC,CAAA;IAC3E,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAG/C,UAAU,EAAE,OAAO,CAAA;IAGnB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAG/B,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC7C,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAA;IACrD,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,CAAC,gCAAgC,CAAC,KACpD,IAAI,CAAA;IACT,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACvE,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAClD,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;IACpD,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DlC,CAAA"}
|