@etherplay/connect 0.0.13 → 0.0.15
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/index.d.ts +19 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +150 -68
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +20 -5
- package/dist/provider.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +164 -93
- package/src/provider.ts +24 -11
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,21 @@ export type WalletMechanism<WalletName extends string | undefined, Address exten
|
|
|
20
20
|
});
|
|
21
21
|
export type Mechanism = AlchemyMechanism | WalletMechanism<string | undefined, `0x${string}` | undefined>;
|
|
22
22
|
export type FullfilledMechanism = AlchemyMechanism | WalletMechanism<string, `0x${string}`>;
|
|
23
|
+
export type WalletState = {
|
|
24
|
+
provider: EIP1193WindowWalletProvider;
|
|
25
|
+
accountChanged?: `0x${string}`;
|
|
26
|
+
chainId: string;
|
|
27
|
+
invalidChainId: boolean;
|
|
28
|
+
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
29
|
+
} & ({
|
|
30
|
+
status: 'connected';
|
|
31
|
+
} | {
|
|
32
|
+
status: 'locked';
|
|
33
|
+
unlocking: boolean;
|
|
34
|
+
} | {
|
|
35
|
+
status: 'disconnected';
|
|
36
|
+
connecting: boolean;
|
|
37
|
+
});
|
|
23
38
|
export type Connection = {
|
|
24
39
|
error?: {
|
|
25
40
|
message: string;
|
|
@@ -49,25 +64,11 @@ export type Connection = {
|
|
|
49
64
|
} | {
|
|
50
65
|
step: 'WalletConnected';
|
|
51
66
|
mechanism: WalletMechanism<string, `0x${string}`>;
|
|
52
|
-
wallet:
|
|
53
|
-
provider: EIP1193WindowWalletProvider;
|
|
54
|
-
locked: boolean;
|
|
55
|
-
accountChanged?: `0x${string}`;
|
|
56
|
-
chainId: string;
|
|
57
|
-
invalidChainId: boolean;
|
|
58
|
-
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
59
|
-
};
|
|
67
|
+
wallet: WalletState;
|
|
60
68
|
} | {
|
|
61
69
|
step: 'WaitingForSignature';
|
|
62
70
|
mechanism: WalletMechanism<string, `0x${string}`>;
|
|
63
|
-
wallet:
|
|
64
|
-
provider: EIP1193WindowWalletProvider;
|
|
65
|
-
locked: boolean;
|
|
66
|
-
accountChanged?: `0x${string}`;
|
|
67
|
-
chainId: string;
|
|
68
|
-
invalidChainId: boolean;
|
|
69
|
-
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
70
|
-
};
|
|
71
|
+
wallet: WalletState;
|
|
71
72
|
} | {
|
|
72
73
|
step: 'SignedIn';
|
|
73
74
|
mechanism: AlchemyMechanism;
|
|
@@ -77,14 +78,7 @@ export type Connection = {
|
|
|
77
78
|
step: 'SignedIn';
|
|
78
79
|
mechanism: WalletMechanism<string, `0x${string}`>;
|
|
79
80
|
account: OriginAccount;
|
|
80
|
-
wallet:
|
|
81
|
-
provider: EIP1193WindowWalletProvider;
|
|
82
|
-
locked: boolean;
|
|
83
|
-
accountChanged?: `0x${string}`;
|
|
84
|
-
chainId: string;
|
|
85
|
-
invalidChainId: boolean;
|
|
86
|
-
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
87
|
-
};
|
|
81
|
+
wallet: WalletState;
|
|
88
82
|
});
|
|
89
83
|
interface EIP6963ProviderInfo {
|
|
90
84
|
uuid: string;
|
|
@@ -103,6 +97,7 @@ export interface EIP6963AnnounceProviderEvent extends CustomEvent {
|
|
|
103
97
|
export declare function createConnection(settings: {
|
|
104
98
|
walletHost: string;
|
|
105
99
|
autoConnect?: boolean;
|
|
100
|
+
autoConnectWallet?: boolean;
|
|
106
101
|
requestSignatureAutomaticallyIfPossible?: boolean;
|
|
107
102
|
node: {
|
|
108
103
|
url: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGxE,OAAO,KAAK,EAAC,cAAc,EAAE,2BAA2B,EAAC,MAAM,UAAU,CAAC;AAC1E,OAAO,EACN,wBAAwB,EAGxB,gBAAgB,EAChB,iCAAiC,EACjC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAC,wBAAwB,EAAE,iCAAiC,EAAE,gBAAgB,EAAC,CAAC;AACvF,YAAY,EAAC,aAAa,EAAC,CAAC;AAE5B,MAAM,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,gBAAgB,CAAC;CAE5B,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,MAAM,GAAG,SAAS,EAAE,OAAO,SAAS,KAAK,MAAM,EAAE,GAAG,SAAS,IAAI;IAC/G,IAAI,EAAE,QAAQ,CAAC;CACf,GAAG,CAAC,UAAU,SAAS,SAAS,GAAG;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,CAAC,GAC3E,CAAC,OAAO,SAAS,SAAS,GAAG;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAC,GAAG;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAE1G,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG;IAIxB,KAAK,CAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAC,CAAC;IAEvC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CACjC,GAAG,CACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACjB,GAED;IACA,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACjB,GAGD;IACA,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;CAC3B,GAED;IACA,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CAChD,GAED;IACA,IAAI,EAAE,4BAA4B,CAAC;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC7C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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ACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA92BsB,CAAC;kBAAqB,CAAC;;;;;;;;;;EAohC/C;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,8 @@ import { fromEntropyKeyToMnemonic, fromMnemonicToFirstAccount, fromSignatureToKe
|
|
|
4
4
|
import { hashMessage } from './utils.js';
|
|
5
5
|
import { createProvider } from './provider.js';
|
|
6
6
|
export { fromEntropyKeyToMnemonic, originPublicKeyPublicationMessage, originKeyMessage };
|
|
7
|
-
const
|
|
7
|
+
const storageKeyAccount = '__origin_account';
|
|
8
|
+
const storageKeyLastWallet = '__last_wallet';
|
|
8
9
|
export function createConnection(settings) {
|
|
9
10
|
const alwaysOnChainId = settings.node.chainId;
|
|
10
11
|
const alwaysOnProvider = createProvider({
|
|
@@ -17,6 +18,10 @@ export function createConnection(settings) {
|
|
|
17
18
|
if (typeof settings.autoConnect !== 'undefined') {
|
|
18
19
|
autoConnect = settings.autoConnect;
|
|
19
20
|
}
|
|
21
|
+
let autoConnectWallet = true;
|
|
22
|
+
if (typeof settings.autoConnectWallet !== 'undefined') {
|
|
23
|
+
autoConnectWallet = settings.autoConnectWallet;
|
|
24
|
+
}
|
|
20
25
|
const requestSignatureAutomaticallyIfPossible = settings.requestSignatureAutomaticallyIfPossible || false;
|
|
21
26
|
let $connection = { step: 'Idle', loading: true, wallet: undefined, wallets: [] };
|
|
22
27
|
const _store = writable($connection);
|
|
@@ -101,7 +106,7 @@ export function createConnection(settings) {
|
|
|
101
106
|
wallets: $connection.wallets,
|
|
102
107
|
wallet: {
|
|
103
108
|
provider: walletProvider,
|
|
104
|
-
|
|
109
|
+
status: 'connected',
|
|
105
110
|
accountChanged: undefined,
|
|
106
111
|
chainId,
|
|
107
112
|
invalidChainId: alwaysOnChainId != chainId,
|
|
@@ -130,7 +135,44 @@ export function createConnection(settings) {
|
|
|
130
135
|
}
|
|
131
136
|
}
|
|
132
137
|
else {
|
|
133
|
-
|
|
138
|
+
if (autoConnectWallet) {
|
|
139
|
+
const lastWallet = getLastWallet();
|
|
140
|
+
if (lastWallet) {
|
|
141
|
+
waitForWallet(lastWallet.name)
|
|
142
|
+
.then(async (walletDetails) => {
|
|
143
|
+
const walletProvider = walletDetails.provider;
|
|
144
|
+
const chainIdAsHex = await walletProvider.request({ method: 'eth_chainId' });
|
|
145
|
+
const chainId = Number(chainIdAsHex).toString();
|
|
146
|
+
_wallet = { provider: walletProvider, chainId };
|
|
147
|
+
alwaysOnProvider.setWalletProvider(walletProvider);
|
|
148
|
+
watchForChainIdChange(_wallet.provider);
|
|
149
|
+
set({
|
|
150
|
+
step: 'WalletConnected',
|
|
151
|
+
mechanism: lastWallet,
|
|
152
|
+
wallets: $connection.wallets,
|
|
153
|
+
wallet: {
|
|
154
|
+
provider: walletProvider,
|
|
155
|
+
status: 'connected',
|
|
156
|
+
accountChanged: undefined,
|
|
157
|
+
chainId,
|
|
158
|
+
invalidChainId: alwaysOnChainId != chainId,
|
|
159
|
+
switchingChain: false,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
walletProvider.request({ method: 'eth_accounts' }).then(onAccountChanged);
|
|
163
|
+
watchForAccountChange(walletProvider);
|
|
164
|
+
})
|
|
165
|
+
.catch((err) => {
|
|
166
|
+
set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
|
|
175
|
+
}
|
|
134
176
|
}
|
|
135
177
|
}
|
|
136
178
|
catch {
|
|
@@ -143,19 +185,34 @@ export function createConnection(settings) {
|
|
|
143
185
|
}
|
|
144
186
|
fetchWallets();
|
|
145
187
|
function getOriginAccount() {
|
|
146
|
-
const fromStorage = localStorage.getItem(
|
|
188
|
+
const fromStorage = localStorage.getItem(storageKeyAccount);
|
|
147
189
|
if (fromStorage) {
|
|
148
190
|
return JSON.parse(fromStorage);
|
|
149
191
|
}
|
|
150
192
|
}
|
|
151
193
|
function saveOriginAccount(account) {
|
|
152
194
|
const accountSTR = JSON.stringify(account);
|
|
153
|
-
sessionStorage.setItem(
|
|
154
|
-
localStorage.setItem(
|
|
195
|
+
sessionStorage.setItem(storageKeyAccount, accountSTR);
|
|
196
|
+
localStorage.setItem(storageKeyAccount, accountSTR);
|
|
155
197
|
}
|
|
156
198
|
function deleteOriginAccount() {
|
|
157
|
-
sessionStorage.removeItem(
|
|
158
|
-
localStorage.removeItem(
|
|
199
|
+
sessionStorage.removeItem(storageKeyAccount);
|
|
200
|
+
localStorage.removeItem(storageKeyAccount);
|
|
201
|
+
}
|
|
202
|
+
function getLastWallet() {
|
|
203
|
+
const fromStorage = localStorage.getItem(storageKeyLastWallet);
|
|
204
|
+
if (fromStorage) {
|
|
205
|
+
return JSON.parse(fromStorage);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function saveLastWallet(wallet) {
|
|
209
|
+
const lastWalletSTR = JSON.stringify(wallet);
|
|
210
|
+
sessionStorage.setItem(storageKeyLastWallet, lastWalletSTR);
|
|
211
|
+
localStorage.setItem(storageKeyLastWallet, lastWalletSTR);
|
|
212
|
+
}
|
|
213
|
+
function deleteLastWallet() {
|
|
214
|
+
sessionStorage.removeItem(storageKeyLastWallet);
|
|
215
|
+
localStorage.removeItem(storageKeyLastWallet);
|
|
159
216
|
}
|
|
160
217
|
async function requestSignature() {
|
|
161
218
|
if ($connection.step !== 'WalletConnected') {
|
|
@@ -223,7 +280,7 @@ export function createConnection(settings) {
|
|
|
223
280
|
wallet: {
|
|
224
281
|
chainId,
|
|
225
282
|
provider: provider,
|
|
226
|
-
|
|
283
|
+
status: 'connected',
|
|
227
284
|
accountChanged: undefined, // TODO check account list
|
|
228
285
|
invalidChainId: alwaysOnChainId != chainId,
|
|
229
286
|
switchingChain: false,
|
|
@@ -234,7 +291,7 @@ export function createConnection(settings) {
|
|
|
234
291
|
}
|
|
235
292
|
}
|
|
236
293
|
function connectOnCurrentWalletAccount(address) {
|
|
237
|
-
if ($connection.
|
|
294
|
+
if ($connection.wallet) {
|
|
238
295
|
connect({
|
|
239
296
|
type: 'wallet',
|
|
240
297
|
address,
|
|
@@ -242,7 +299,7 @@ export function createConnection(settings) {
|
|
|
242
299
|
});
|
|
243
300
|
}
|
|
244
301
|
else {
|
|
245
|
-
throw new Error(`need to be using a
|
|
302
|
+
throw new Error(`need to be using a wallet`);
|
|
246
303
|
}
|
|
247
304
|
}
|
|
248
305
|
function onChainChanged(chainIdAsHex) {
|
|
@@ -262,36 +319,44 @@ export function createConnection(settings) {
|
|
|
262
319
|
}
|
|
263
320
|
}
|
|
264
321
|
function onAccountChanged(accounts) {
|
|
322
|
+
console.log('account changed', accounts);
|
|
265
323
|
const accountsFormated = accounts.map((a) => a.toLowerCase());
|
|
266
|
-
if (
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
324
|
+
if ($connection.wallet) {
|
|
325
|
+
const locked = accountsFormated.length == 0;
|
|
326
|
+
const addressSignedIn = $connection.mechanism.address;
|
|
327
|
+
if (locked) {
|
|
328
|
+
set({
|
|
329
|
+
...$connection,
|
|
330
|
+
wallet: {
|
|
331
|
+
...$connection.wallet,
|
|
332
|
+
status: 'locked',
|
|
333
|
+
unlocking: false,
|
|
334
|
+
},
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
const disconnected = accountsFormated.find((v) => v == addressSignedIn) ? false : true;
|
|
339
|
+
if (disconnected) {
|
|
340
|
+
set({
|
|
341
|
+
...$connection,
|
|
342
|
+
wallet: {
|
|
343
|
+
...$connection.wallet,
|
|
344
|
+
status: 'disconnected',
|
|
345
|
+
connecting: false,
|
|
346
|
+
},
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
set({
|
|
351
|
+
...$connection,
|
|
352
|
+
wallet: {
|
|
353
|
+
...$connection.wallet,
|
|
354
|
+
status: 'connected',
|
|
355
|
+
},
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (accountsFormated.length > 0 && accountsFormated[0] != $connection.mechanism.address) {
|
|
295
360
|
set({
|
|
296
361
|
...$connection,
|
|
297
362
|
wallet: {
|
|
@@ -300,7 +365,7 @@ export function createConnection(settings) {
|
|
|
300
365
|
},
|
|
301
366
|
});
|
|
302
367
|
}
|
|
303
|
-
else
|
|
368
|
+
else {
|
|
304
369
|
set({
|
|
305
370
|
...$connection,
|
|
306
371
|
wallet: {
|
|
@@ -310,7 +375,6 @@ export function createConnection(settings) {
|
|
|
310
375
|
});
|
|
311
376
|
}
|
|
312
377
|
}
|
|
313
|
-
// if (accounts[0] !== $connection)
|
|
314
378
|
}
|
|
315
379
|
function watchForAccountChange(walletProvider) {
|
|
316
380
|
walletProvider.on('accountsChanged', onAccountChanged);
|
|
@@ -329,7 +393,7 @@ export function createConnection(settings) {
|
|
|
329
393
|
remember = !(options?.doNotStoreLocally || false);
|
|
330
394
|
if (mechanism) {
|
|
331
395
|
if (mechanism.type === 'wallet') {
|
|
332
|
-
const walletName = mechanism.name;
|
|
396
|
+
const walletName = mechanism.name || ($connection.wallets.length == 1 ? $connection.wallets[0].info.name : undefined);
|
|
333
397
|
if (walletName) {
|
|
334
398
|
const wallet = $connection.wallets.find((v) => v.info.name == walletName || v.info.uuid == walletName);
|
|
335
399
|
if (wallet) {
|
|
@@ -369,43 +433,43 @@ export function createConnection(settings) {
|
|
|
369
433
|
accounts = await provider.request({ method: 'eth_requestAccounts' });
|
|
370
434
|
accounts = accounts.map((v) => v.toLowerCase());
|
|
371
435
|
if (accounts.length > 0) {
|
|
436
|
+
const walletMechanism = {
|
|
437
|
+
...mechanism,
|
|
438
|
+
address: accounts[0],
|
|
439
|
+
};
|
|
372
440
|
if (options?.requestSignatureRightAway) {
|
|
373
441
|
watchForAccountChange(_wallet.provider);
|
|
374
442
|
set({
|
|
375
443
|
step: 'WalletConnected',
|
|
376
|
-
mechanism:
|
|
377
|
-
...mechanism,
|
|
378
|
-
address: accounts[0],
|
|
379
|
-
},
|
|
444
|
+
mechanism: walletMechanism,
|
|
380
445
|
wallets: $connection.wallets,
|
|
381
446
|
wallet: {
|
|
382
447
|
provider: _wallet.provider,
|
|
383
|
-
|
|
448
|
+
status: 'connected',
|
|
384
449
|
accountChanged: undefined,
|
|
385
450
|
chainId,
|
|
386
451
|
invalidChainId: alwaysOnChainId != chainId,
|
|
387
452
|
switchingChain: false,
|
|
388
453
|
},
|
|
389
454
|
});
|
|
455
|
+
saveLastWallet(walletMechanism);
|
|
390
456
|
await requestSignature();
|
|
391
457
|
}
|
|
392
458
|
else {
|
|
393
459
|
set({
|
|
394
460
|
step: 'WalletConnected',
|
|
395
|
-
mechanism:
|
|
396
|
-
...mechanism,
|
|
397
|
-
address: accounts[0],
|
|
398
|
-
},
|
|
461
|
+
mechanism: walletMechanism,
|
|
399
462
|
wallets: $connection.wallets,
|
|
400
463
|
wallet: {
|
|
401
464
|
provider: _wallet.provider,
|
|
402
|
-
|
|
465
|
+
status: 'connected',
|
|
403
466
|
accountChanged: undefined,
|
|
404
467
|
chainId,
|
|
405
468
|
invalidChainId: alwaysOnChainId != chainId,
|
|
406
469
|
switchingChain: false,
|
|
407
470
|
},
|
|
408
471
|
});
|
|
472
|
+
saveLastWallet(walletMechanism);
|
|
409
473
|
watchForAccountChange(_wallet.provider);
|
|
410
474
|
}
|
|
411
475
|
}
|
|
@@ -419,43 +483,43 @@ export function createConnection(settings) {
|
|
|
419
483
|
}
|
|
420
484
|
}
|
|
421
485
|
else {
|
|
486
|
+
const walletMechanism = {
|
|
487
|
+
...mechanism,
|
|
488
|
+
address: accounts[0],
|
|
489
|
+
};
|
|
422
490
|
if (!requestSignatureAutomaticallyIfPossible || options?.requireUserConfirmationBeforeSignatureRequest) {
|
|
423
491
|
set({
|
|
424
492
|
step: 'WalletConnected',
|
|
425
|
-
mechanism:
|
|
426
|
-
...mechanism,
|
|
427
|
-
address: accounts[0],
|
|
428
|
-
},
|
|
493
|
+
mechanism: walletMechanism,
|
|
429
494
|
wallets: $connection.wallets,
|
|
430
495
|
wallet: {
|
|
431
496
|
provider: _wallet.provider,
|
|
432
|
-
|
|
497
|
+
status: 'connected',
|
|
433
498
|
accountChanged: undefined,
|
|
434
499
|
chainId,
|
|
435
500
|
invalidChainId: alwaysOnChainId != chainId,
|
|
436
501
|
switchingChain: false,
|
|
437
502
|
},
|
|
438
503
|
});
|
|
504
|
+
saveLastWallet(walletMechanism);
|
|
439
505
|
watchForAccountChange(_wallet.provider);
|
|
440
506
|
}
|
|
441
507
|
else {
|
|
442
508
|
watchForAccountChange(_wallet.provider);
|
|
443
509
|
set({
|
|
444
510
|
step: 'WalletConnected',
|
|
445
|
-
mechanism:
|
|
446
|
-
...mechanism,
|
|
447
|
-
address: accounts[0],
|
|
448
|
-
},
|
|
511
|
+
mechanism: walletMechanism,
|
|
449
512
|
wallets: $connection.wallets,
|
|
450
513
|
wallet: {
|
|
451
514
|
provider: _wallet.provider,
|
|
452
|
-
|
|
515
|
+
status: 'connected',
|
|
453
516
|
accountChanged: undefined,
|
|
454
517
|
chainId,
|
|
455
518
|
invalidChainId: alwaysOnChainId != chainId,
|
|
456
519
|
switchingChain: false,
|
|
457
520
|
},
|
|
458
521
|
});
|
|
522
|
+
saveLastWallet(walletMechanism);
|
|
459
523
|
await requestSignature();
|
|
460
524
|
}
|
|
461
525
|
}
|
|
@@ -539,6 +603,7 @@ export function createConnection(settings) {
|
|
|
539
603
|
}
|
|
540
604
|
function disconnect() {
|
|
541
605
|
deleteOriginAccount();
|
|
606
|
+
deleteLastWallet();
|
|
542
607
|
if (_wallet) {
|
|
543
608
|
alwaysOnProvider.setWalletProvider(undefined);
|
|
544
609
|
stopatchingForAccountChange(_wallet.provider);
|
|
@@ -647,12 +712,29 @@ export function createConnection(settings) {
|
|
|
647
712
|
throw new Error(`no saved public key publication signature for ${account.address}`);
|
|
648
713
|
}
|
|
649
714
|
async function unlock() {
|
|
650
|
-
if (!$connection.wallet) {
|
|
651
|
-
throw new Error(`invali state`);
|
|
652
|
-
}
|
|
653
715
|
const wallet = $connection.wallet;
|
|
654
|
-
|
|
655
|
-
|
|
716
|
+
if (!wallet || wallet.status !== 'locked') {
|
|
717
|
+
throw new Error(`invalid state`);
|
|
718
|
+
}
|
|
719
|
+
set({
|
|
720
|
+
...$connection,
|
|
721
|
+
wallet: {
|
|
722
|
+
...wallet,
|
|
723
|
+
unlocking: true,
|
|
724
|
+
},
|
|
725
|
+
});
|
|
726
|
+
try {
|
|
727
|
+
await wallet.provider.request({ method: 'eth_requestAccounts' }).then(onAccountChanged);
|
|
728
|
+
}
|
|
729
|
+
catch {
|
|
730
|
+
set({
|
|
731
|
+
...$connection,
|
|
732
|
+
wallet: {
|
|
733
|
+
...wallet,
|
|
734
|
+
unlocking: false,
|
|
735
|
+
},
|
|
736
|
+
});
|
|
737
|
+
}
|
|
656
738
|
}
|
|
657
739
|
async function switchWalletChain(chainId, config) {
|
|
658
740
|
if (!$connection.wallet) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,2BAA2B,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAuB,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAevE,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG;IAAC,iBAAiB,EAAE,CAAC,cAAc,EAAE,2BAA2B,GAAG,SAAS,KAAK,IAAI,CAAA;CAAC,GAAG;IAClH,OAAO,EAAE,MAAM,CAAC;CAChB,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,2BAA2B,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAuB,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAevE,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG;IAAC,iBAAiB,EAAE,CAAC,cAAc,EAAE,2BAA2B,GAAG,SAAS,KAAK,IAAI,CAAA;CAAC,GAAG;IAClH,OAAO,EAAE,MAAM,CAAC;CAChB,CA2DA"}
|
package/dist/provider.js
CHANGED
|
@@ -13,24 +13,36 @@ export function createProvider(params) {
|
|
|
13
13
|
const { endpoint, chainId, prioritizeWalletProvider, requestsPerSecond } = params;
|
|
14
14
|
const jsonRPC = createCurriedJSONRPC(endpoint);
|
|
15
15
|
let walletProvider;
|
|
16
|
+
let status = 'disconnected';
|
|
16
17
|
function setWalletProvider(newWalletProvider) {
|
|
17
18
|
walletProvider = newWalletProvider;
|
|
18
19
|
}
|
|
20
|
+
function setWalletStatus(newStatus) {
|
|
21
|
+
status = newStatus;
|
|
22
|
+
}
|
|
19
23
|
const provider = {
|
|
20
24
|
async request(req) {
|
|
25
|
+
const signingMethod = signerMethods.includes(req.method) ||
|
|
26
|
+
connectedAccountMethods.includes(req.method) ||
|
|
27
|
+
walletOnlyMethods.includes(req.method) ||
|
|
28
|
+
req.method.indexOf('sign') != -1;
|
|
21
29
|
if (walletProvider) {
|
|
22
|
-
const signingMethod = signerMethods.includes(req.method) ||
|
|
23
|
-
connectedAccountMethods.includes(req.method) ||
|
|
24
|
-
walletOnlyMethods.includes(req.method) ||
|
|
25
|
-
req.method.indexOf('sign') != -1;
|
|
26
30
|
if (prioritizeWalletProvider || signingMethod) {
|
|
31
|
+
if (signingMethod) {
|
|
32
|
+
if (status !== 'connected') {
|
|
33
|
+
return Promise.reject({ message: 'wallet provider is not connected', code: 4001 });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
27
36
|
const currentChainIdAsHex = await walletProvider.request({
|
|
28
37
|
method: 'eth_chainId',
|
|
29
38
|
});
|
|
30
39
|
const currentChainId = Number(currentChainIdAsHex).toString();
|
|
31
40
|
if (chainId !== currentChainId) {
|
|
32
41
|
if (signingMethod) {
|
|
33
|
-
return Promise.reject(
|
|
42
|
+
return Promise.reject({
|
|
43
|
+
message: `wallet provider is connected to a different chain, expected ${chainId} but got ${currentChainId}`,
|
|
44
|
+
code: 4001,
|
|
45
|
+
});
|
|
34
46
|
}
|
|
35
47
|
else {
|
|
36
48
|
// we fallback on jsonRPc if invalid chain and not a signing method
|
|
@@ -40,6 +52,9 @@ export function createProvider(params) {
|
|
|
40
52
|
return walletProvider.request(req);
|
|
41
53
|
}
|
|
42
54
|
}
|
|
55
|
+
// if (signingMethod) {
|
|
56
|
+
// return Promise.reject(new Error('wallet provider is not connected'));
|
|
57
|
+
// }
|
|
43
58
|
return jsonRPC.request(req);
|
|
44
59
|
},
|
|
45
60
|
};
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,oBAAoB,EAAa,MAAM,uBAAuB,CAAC;AAEvE,MAAM,aAAa,GAAG;IACrB,cAAc;IACd,UAAU;IACV,qBAAqB;IACrB,eAAe;IACf,sBAAsB;IACtB,mBAAmB;CACnB,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAExD,MAAM,iBAAiB,GAAG,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,yBAAyB,CAAC,CAAC;AAE3G,MAAM,UAAU,cAAc,CAAC,MAK9B;IAGA,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAC,GAAG,MAAM,CAAC;IAChF,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,cAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,oBAAoB,EAAa,MAAM,uBAAuB,CAAC;AAEvE,MAAM,aAAa,GAAG;IACrB,cAAc;IACd,UAAU;IACV,qBAAqB;IACrB,eAAe;IACf,sBAAsB;IACtB,mBAAmB;CACnB,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAExD,MAAM,iBAAiB,GAAG,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,yBAAyB,CAAC,CAAC;AAE3G,MAAM,UAAU,cAAc,CAAC,MAK9B;IAGA,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAC,GAAG,MAAM,CAAC;IAChF,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,cAAuD,CAAC;IAC5D,IAAI,MAAM,GAA4C,cAAc,CAAC;IAErE,SAAS,iBAAiB,CAAC,iBAA0D;QACpF,cAAc,GAAG,iBAAiB,CAAC;IACpC,CAAC;IACD,SAAS,eAAe,CAAC,SAAkD;QAC1E,MAAM,GAAG,SAAS,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG;QAChB,KAAK,CAAC,OAAO,CAAC,GAAqC;YAClD,MAAM,aAAa,GAClB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC5C,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAElC,IAAI,cAAc,EAAE,CAAC;gBACpB,IAAI,wBAAwB,IAAI,aAAa,EAAE,CAAC;oBAC/C,IAAI,aAAa,EAAE,CAAC;wBACnB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,kCAAkC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;wBAClF,CAAC;oBACF,CAAC;oBAED,MAAM,mBAAmB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;wBACxD,MAAM,EAAE,aAAa;qBACrB,CAAC,CAAC;oBACH,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC9D,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;wBAChC,IAAI,aAAa,EAAE,CAAC;4BACnB,OAAO,OAAO,CAAC,MAAM,CAAC;gCACrB,OAAO,EAAE,+DAA+D,OAAO,YAAY,cAAc,EAAE;gCAC3G,IAAI,EAAE,IAAI;6BACV,CAAC,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACP,mEAAmE;4BACnE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC7B,CAAC;oBACF,CAAC;oBACD,OAAO,cAAc,CAAC,OAAO,CAAC,GAAU,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;YAED,uBAAuB;YACvB,yEAAyE;YACzE,IAAI;YAEJ,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;KACmC,CAAC;IAEtC,MAAM,UAAU,GAAG,oBAAoB,CAAU,QAAe,EAAE,EAAC,iBAAiB,EAAC,CAAC,CAAC;IACvF,OAAO,EAAC,GAAG,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAC,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -30,6 +30,15 @@ export type Mechanism = AlchemyMechanism | WalletMechanism<string | undefined, `
|
|
|
30
30
|
|
|
31
31
|
export type FullfilledMechanism = AlchemyMechanism | WalletMechanism<string, `0x${string}`>;
|
|
32
32
|
|
|
33
|
+
export type WalletState = {
|
|
34
|
+
provider: EIP1193WindowWalletProvider;
|
|
35
|
+
|
|
36
|
+
accountChanged?: `0x${string}`;
|
|
37
|
+
chainId: string;
|
|
38
|
+
invalidChainId: boolean;
|
|
39
|
+
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
40
|
+
} & ({status: 'connected'} | {status: 'locked'; unlocking: boolean} | {status: 'disconnected'; connecting: boolean});
|
|
41
|
+
|
|
33
42
|
export type Connection = {
|
|
34
43
|
// The connection can have an error in every state.
|
|
35
44
|
// a banner or other mechanism to show error should be used.
|
|
@@ -68,32 +77,19 @@ export type Connection = {
|
|
|
68
77
|
wallet: undefined;
|
|
69
78
|
mechanism: WalletMechanism<string, undefined>;
|
|
70
79
|
}
|
|
80
|
+
// TODO? add another state : 'ChooseWalletAccount'
|
|
71
81
|
// Once the wallet is connected, the system will need a signature
|
|
72
82
|
// this state represent the fact and require another user interaction to request the signature
|
|
73
83
|
| {
|
|
74
84
|
step: 'WalletConnected';
|
|
75
85
|
mechanism: WalletMechanism<string, `0x${string}`>;
|
|
76
|
-
wallet:
|
|
77
|
-
provider: EIP1193WindowWalletProvider;
|
|
78
|
-
locked: boolean;
|
|
79
|
-
accountChanged?: `0x${string}`;
|
|
80
|
-
chainId: string;
|
|
81
|
-
invalidChainId: boolean;
|
|
82
|
-
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
83
|
-
};
|
|
86
|
+
wallet: WalletState;
|
|
84
87
|
}
|
|
85
88
|
// This state is triggered once the signature is requested, the user will have to confirm with its wallet
|
|
86
89
|
| {
|
|
87
90
|
step: 'WaitingForSignature';
|
|
88
91
|
mechanism: WalletMechanism<string, `0x${string}`>;
|
|
89
|
-
wallet:
|
|
90
|
-
provider: EIP1193WindowWalletProvider;
|
|
91
|
-
locked: boolean;
|
|
92
|
-
accountChanged?: `0x${string}`;
|
|
93
|
-
chainId: string;
|
|
94
|
-
invalidChainId: boolean;
|
|
95
|
-
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
96
|
-
};
|
|
92
|
+
wallet: WalletState;
|
|
97
93
|
}
|
|
98
94
|
// Finally the user is fully signed in
|
|
99
95
|
// wallet?.accountChanged if set, represent the fact that the user has changed its web3-wallet accounnt.
|
|
@@ -110,14 +106,7 @@ export type Connection = {
|
|
|
110
106
|
step: 'SignedIn';
|
|
111
107
|
mechanism: WalletMechanism<string, `0x${string}`>;
|
|
112
108
|
account: OriginAccount;
|
|
113
|
-
wallet:
|
|
114
|
-
provider: EIP1193WindowWalletProvider;
|
|
115
|
-
locked: boolean;
|
|
116
|
-
accountChanged?: `0x${string}`;
|
|
117
|
-
chainId: string;
|
|
118
|
-
invalidChainId: boolean;
|
|
119
|
-
switchingChain: 'addingChain' | 'switchingChain' | false;
|
|
120
|
-
};
|
|
109
|
+
wallet: WalletState;
|
|
121
110
|
}
|
|
122
111
|
);
|
|
123
112
|
|
|
@@ -138,10 +127,12 @@ export interface EIP6963AnnounceProviderEvent extends CustomEvent {
|
|
|
138
127
|
detail: EIP6963ProviderDetail;
|
|
139
128
|
}
|
|
140
129
|
|
|
141
|
-
const
|
|
130
|
+
const storageKeyAccount = '__origin_account';
|
|
131
|
+
const storageKeyLastWallet = '__last_wallet';
|
|
142
132
|
export function createConnection(settings: {
|
|
143
133
|
walletHost: string;
|
|
144
134
|
autoConnect?: boolean;
|
|
135
|
+
autoConnectWallet?: boolean;
|
|
145
136
|
requestSignatureAutomaticallyIfPossible?: boolean;
|
|
146
137
|
node: {url: string; chainId: string; prioritizeWalletProvider?: boolean; requestsPerSecond?: number};
|
|
147
138
|
}) {
|
|
@@ -156,6 +147,10 @@ export function createConnection(settings: {
|
|
|
156
147
|
if (typeof settings.autoConnect !== 'undefined') {
|
|
157
148
|
autoConnect = settings.autoConnect;
|
|
158
149
|
}
|
|
150
|
+
let autoConnectWallet = true;
|
|
151
|
+
if (typeof settings.autoConnectWallet !== 'undefined') {
|
|
152
|
+
autoConnectWallet = settings.autoConnectWallet;
|
|
153
|
+
}
|
|
159
154
|
const requestSignatureAutomaticallyIfPossible = settings.requestSignatureAutomaticallyIfPossible || false;
|
|
160
155
|
|
|
161
156
|
let $connection: Connection = {step: 'Idle', loading: true, wallet: undefined, wallets: []};
|
|
@@ -248,7 +243,7 @@ export function createConnection(settings: {
|
|
|
248
243
|
wallets: $connection.wallets,
|
|
249
244
|
wallet: {
|
|
250
245
|
provider: walletProvider,
|
|
251
|
-
|
|
246
|
+
status: 'connected',
|
|
252
247
|
accountChanged: undefined,
|
|
253
248
|
chainId,
|
|
254
249
|
invalidChainId: alwaysOnChainId != chainId,
|
|
@@ -274,7 +269,42 @@ export function createConnection(settings: {
|
|
|
274
269
|
set({step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets});
|
|
275
270
|
}
|
|
276
271
|
} else {
|
|
277
|
-
|
|
272
|
+
if (autoConnectWallet) {
|
|
273
|
+
const lastWallet = getLastWallet();
|
|
274
|
+
if (lastWallet) {
|
|
275
|
+
waitForWallet(lastWallet.name)
|
|
276
|
+
.then(async (walletDetails: EIP6963ProviderDetail) => {
|
|
277
|
+
const walletProvider = walletDetails.provider;
|
|
278
|
+
const chainIdAsHex = await walletProvider.request({method: 'eth_chainId'});
|
|
279
|
+
const chainId = Number(chainIdAsHex).toString();
|
|
280
|
+
_wallet = {provider: walletProvider, chainId};
|
|
281
|
+
alwaysOnProvider.setWalletProvider(walletProvider);
|
|
282
|
+
watchForChainIdChange(_wallet.provider);
|
|
283
|
+
set({
|
|
284
|
+
step: 'WalletConnected',
|
|
285
|
+
mechanism: lastWallet,
|
|
286
|
+
wallets: $connection.wallets,
|
|
287
|
+
wallet: {
|
|
288
|
+
provider: walletProvider,
|
|
289
|
+
status: 'connected',
|
|
290
|
+
accountChanged: undefined,
|
|
291
|
+
chainId,
|
|
292
|
+
invalidChainId: alwaysOnChainId != chainId,
|
|
293
|
+
switchingChain: false,
|
|
294
|
+
},
|
|
295
|
+
});
|
|
296
|
+
walletProvider.request({method: 'eth_accounts'}).then(onAccountChanged);
|
|
297
|
+
watchForAccountChange(walletProvider);
|
|
298
|
+
})
|
|
299
|
+
.catch((err) => {
|
|
300
|
+
set({step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets});
|
|
301
|
+
});
|
|
302
|
+
} else {
|
|
303
|
+
set({step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets});
|
|
304
|
+
}
|
|
305
|
+
} else {
|
|
306
|
+
set({step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets});
|
|
307
|
+
}
|
|
278
308
|
}
|
|
279
309
|
} catch {
|
|
280
310
|
set({step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets});
|
|
@@ -286,19 +316,35 @@ export function createConnection(settings: {
|
|
|
286
316
|
fetchWallets();
|
|
287
317
|
|
|
288
318
|
function getOriginAccount(): OriginAccount | undefined {
|
|
289
|
-
const fromStorage = localStorage.getItem(
|
|
319
|
+
const fromStorage = localStorage.getItem(storageKeyAccount);
|
|
290
320
|
if (fromStorage) {
|
|
291
321
|
return JSON.parse(fromStorage) as OriginAccount;
|
|
292
322
|
}
|
|
293
323
|
}
|
|
294
324
|
function saveOriginAccount(account: OriginAccount) {
|
|
295
325
|
const accountSTR = JSON.stringify(account);
|
|
296
|
-
sessionStorage.setItem(
|
|
297
|
-
localStorage.setItem(
|
|
326
|
+
sessionStorage.setItem(storageKeyAccount, accountSTR);
|
|
327
|
+
localStorage.setItem(storageKeyAccount, accountSTR);
|
|
298
328
|
}
|
|
299
329
|
function deleteOriginAccount() {
|
|
300
|
-
sessionStorage.removeItem(
|
|
301
|
-
localStorage.removeItem(
|
|
330
|
+
sessionStorage.removeItem(storageKeyAccount);
|
|
331
|
+
localStorage.removeItem(storageKeyAccount);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function getLastWallet(): WalletMechanism<string, `0x${string}`> | undefined {
|
|
335
|
+
const fromStorage = localStorage.getItem(storageKeyLastWallet);
|
|
336
|
+
if (fromStorage) {
|
|
337
|
+
return JSON.parse(fromStorage) as WalletMechanism<string, `0x${string}`>;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
function saveLastWallet(wallet: WalletMechanism<string, `0x${string}`>) {
|
|
341
|
+
const lastWalletSTR = JSON.stringify(wallet);
|
|
342
|
+
sessionStorage.setItem(storageKeyLastWallet, lastWalletSTR);
|
|
343
|
+
localStorage.setItem(storageKeyLastWallet, lastWalletSTR);
|
|
344
|
+
}
|
|
345
|
+
function deleteLastWallet() {
|
|
346
|
+
sessionStorage.removeItem(storageKeyLastWallet);
|
|
347
|
+
localStorage.removeItem(storageKeyLastWallet);
|
|
302
348
|
}
|
|
303
349
|
|
|
304
350
|
async function requestSignature() {
|
|
@@ -371,7 +417,7 @@ export function createConnection(settings: {
|
|
|
371
417
|
wallet: {
|
|
372
418
|
chainId,
|
|
373
419
|
provider: provider,
|
|
374
|
-
|
|
420
|
+
status: 'connected',
|
|
375
421
|
accountChanged: undefined, // TODO check account list
|
|
376
422
|
invalidChainId: alwaysOnChainId != chainId,
|
|
377
423
|
switchingChain: false,
|
|
@@ -383,14 +429,14 @@ export function createConnection(settings: {
|
|
|
383
429
|
}
|
|
384
430
|
|
|
385
431
|
function connectOnCurrentWalletAccount(address: `0x${string}`) {
|
|
386
|
-
if ($connection.
|
|
432
|
+
if ($connection.wallet) {
|
|
387
433
|
connect({
|
|
388
434
|
type: 'wallet',
|
|
389
435
|
address,
|
|
390
436
|
name: $connection.mechanism.name,
|
|
391
437
|
});
|
|
392
438
|
} else {
|
|
393
|
-
throw new Error(`need to be using a
|
|
439
|
+
throw new Error(`need to be using a wallet`);
|
|
394
440
|
}
|
|
395
441
|
}
|
|
396
442
|
|
|
@@ -412,38 +458,46 @@ export function createConnection(settings: {
|
|
|
412
458
|
}
|
|
413
459
|
|
|
414
460
|
function onAccountChanged(accounts: `0x${string}`[]) {
|
|
461
|
+
console.log('account changed', accounts);
|
|
415
462
|
const accountsFormated = accounts.map((a) => a.toLowerCase()) as `0x${string}`[];
|
|
416
463
|
|
|
417
|
-
if (
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
464
|
+
if ($connection.wallet) {
|
|
465
|
+
const locked = accountsFormated.length == 0;
|
|
466
|
+
const addressSignedIn = $connection.mechanism.address;
|
|
467
|
+
|
|
468
|
+
if (locked) {
|
|
469
|
+
set({
|
|
470
|
+
...$connection,
|
|
471
|
+
wallet: {
|
|
472
|
+
...$connection.wallet,
|
|
473
|
+
status: 'locked',
|
|
474
|
+
unlocking: false,
|
|
475
|
+
},
|
|
476
|
+
});
|
|
477
|
+
} else {
|
|
478
|
+
const disconnected = accountsFormated.find((v) => v == addressSignedIn) ? false : true;
|
|
479
|
+
|
|
480
|
+
if (disconnected) {
|
|
481
|
+
set({
|
|
482
|
+
...$connection,
|
|
483
|
+
wallet: {
|
|
484
|
+
...$connection.wallet,
|
|
485
|
+
status: 'disconnected',
|
|
486
|
+
connecting: false,
|
|
487
|
+
},
|
|
488
|
+
});
|
|
489
|
+
} else {
|
|
490
|
+
set({
|
|
491
|
+
...$connection,
|
|
492
|
+
wallet: {
|
|
493
|
+
...$connection.wallet,
|
|
494
|
+
status: 'connected',
|
|
495
|
+
},
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
}
|
|
434
499
|
|
|
435
|
-
|
|
436
|
-
// TODO if auto-connect and saved-signature ?
|
|
437
|
-
// connect(
|
|
438
|
-
// {
|
|
439
|
-
// type: 'wallet',
|
|
440
|
-
// address: accounts[0],
|
|
441
|
-
// name: $connection.mechanism.name
|
|
442
|
-
// },
|
|
443
|
-
// { requireUserConfirmationBeforeSignatureRequest: true }
|
|
444
|
-
// );
|
|
445
|
-
|
|
446
|
-
if ($connection.wallet && accountsFormated.length > 0 && accountsFormated[0] != $connection.account.address) {
|
|
500
|
+
if (accountsFormated.length > 0 && accountsFormated[0] != $connection.mechanism.address) {
|
|
447
501
|
set({
|
|
448
502
|
...$connection,
|
|
449
503
|
wallet: {
|
|
@@ -451,7 +505,7 @@ export function createConnection(settings: {
|
|
|
451
505
|
accountChanged: accountsFormated[0],
|
|
452
506
|
},
|
|
453
507
|
});
|
|
454
|
-
} else
|
|
508
|
+
} else {
|
|
455
509
|
set({
|
|
456
510
|
...$connection,
|
|
457
511
|
wallet: {
|
|
@@ -461,8 +515,6 @@ export function createConnection(settings: {
|
|
|
461
515
|
});
|
|
462
516
|
}
|
|
463
517
|
}
|
|
464
|
-
|
|
465
|
-
// if (accounts[0] !== $connection)
|
|
466
518
|
}
|
|
467
519
|
|
|
468
520
|
function watchForAccountChange(walletProvider: EIP1193WindowWalletProvider) {
|
|
@@ -491,7 +543,8 @@ export function createConnection(settings: {
|
|
|
491
543
|
remember = !(options?.doNotStoreLocally || false);
|
|
492
544
|
if (mechanism) {
|
|
493
545
|
if (mechanism.type === 'wallet') {
|
|
494
|
-
const walletName =
|
|
546
|
+
const walletName =
|
|
547
|
+
mechanism.name || ($connection.wallets.length == 1 ? $connection.wallets[0].info.name : undefined);
|
|
495
548
|
if (walletName) {
|
|
496
549
|
const wallet = $connection.wallets.find((v) => v.info.name == walletName || v.info.uuid == walletName);
|
|
497
550
|
if (wallet) {
|
|
@@ -533,42 +586,43 @@ export function createConnection(settings: {
|
|
|
533
586
|
accounts = await provider.request({method: 'eth_requestAccounts'});
|
|
534
587
|
accounts = accounts.map((v) => v.toLowerCase()) as `0x${string}`[];
|
|
535
588
|
if (accounts.length > 0) {
|
|
589
|
+
const walletMechanism = {
|
|
590
|
+
...mechanism,
|
|
591
|
+
address: accounts[0],
|
|
592
|
+
};
|
|
536
593
|
if (options?.requestSignatureRightAway) {
|
|
537
594
|
watchForAccountChange(_wallet.provider);
|
|
595
|
+
|
|
538
596
|
set({
|
|
539
597
|
step: 'WalletConnected',
|
|
540
|
-
mechanism:
|
|
541
|
-
...mechanism,
|
|
542
|
-
address: accounts[0],
|
|
543
|
-
},
|
|
598
|
+
mechanism: walletMechanism,
|
|
544
599
|
wallets: $connection.wallets,
|
|
545
600
|
wallet: {
|
|
546
601
|
provider: _wallet.provider,
|
|
547
|
-
|
|
602
|
+
status: 'connected',
|
|
548
603
|
accountChanged: undefined,
|
|
549
604
|
chainId,
|
|
550
605
|
invalidChainId: alwaysOnChainId != chainId,
|
|
551
606
|
switchingChain: false,
|
|
552
607
|
},
|
|
553
608
|
});
|
|
609
|
+
saveLastWallet(walletMechanism);
|
|
554
610
|
await requestSignature();
|
|
555
611
|
} else {
|
|
556
612
|
set({
|
|
557
613
|
step: 'WalletConnected',
|
|
558
|
-
mechanism:
|
|
559
|
-
...mechanism,
|
|
560
|
-
address: accounts[0],
|
|
561
|
-
},
|
|
614
|
+
mechanism: walletMechanism,
|
|
562
615
|
wallets: $connection.wallets,
|
|
563
616
|
wallet: {
|
|
564
617
|
provider: _wallet.provider,
|
|
565
|
-
|
|
618
|
+
status: 'connected',
|
|
566
619
|
accountChanged: undefined,
|
|
567
620
|
chainId,
|
|
568
621
|
invalidChainId: alwaysOnChainId != chainId,
|
|
569
622
|
switchingChain: false,
|
|
570
623
|
},
|
|
571
624
|
});
|
|
625
|
+
saveLastWallet(walletMechanism);
|
|
572
626
|
watchForAccountChange(_wallet.provider);
|
|
573
627
|
}
|
|
574
628
|
} else {
|
|
@@ -580,42 +634,42 @@ export function createConnection(settings: {
|
|
|
580
634
|
});
|
|
581
635
|
}
|
|
582
636
|
} else {
|
|
637
|
+
const walletMechanism = {
|
|
638
|
+
...mechanism,
|
|
639
|
+
address: accounts[0],
|
|
640
|
+
};
|
|
583
641
|
if (!requestSignatureAutomaticallyIfPossible || options?.requireUserConfirmationBeforeSignatureRequest) {
|
|
584
642
|
set({
|
|
585
643
|
step: 'WalletConnected',
|
|
586
|
-
mechanism:
|
|
587
|
-
...mechanism,
|
|
588
|
-
address: accounts[0],
|
|
589
|
-
},
|
|
644
|
+
mechanism: walletMechanism,
|
|
590
645
|
wallets: $connection.wallets,
|
|
591
646
|
wallet: {
|
|
592
647
|
provider: _wallet.provider,
|
|
593
|
-
|
|
648
|
+
status: 'connected',
|
|
594
649
|
accountChanged: undefined,
|
|
595
650
|
chainId,
|
|
596
651
|
invalidChainId: alwaysOnChainId != chainId,
|
|
597
652
|
switchingChain: false,
|
|
598
653
|
},
|
|
599
654
|
});
|
|
655
|
+
saveLastWallet(walletMechanism);
|
|
600
656
|
watchForAccountChange(_wallet.provider);
|
|
601
657
|
} else {
|
|
602
658
|
watchForAccountChange(_wallet.provider);
|
|
603
659
|
set({
|
|
604
660
|
step: 'WalletConnected',
|
|
605
|
-
mechanism:
|
|
606
|
-
...mechanism,
|
|
607
|
-
address: accounts[0],
|
|
608
|
-
},
|
|
661
|
+
mechanism: walletMechanism,
|
|
609
662
|
wallets: $connection.wallets,
|
|
610
663
|
wallet: {
|
|
611
664
|
provider: _wallet.provider,
|
|
612
|
-
|
|
665
|
+
status: 'connected',
|
|
613
666
|
accountChanged: undefined,
|
|
614
667
|
chainId,
|
|
615
668
|
invalidChainId: alwaysOnChainId != chainId,
|
|
616
669
|
switchingChain: false,
|
|
617
670
|
},
|
|
618
671
|
});
|
|
672
|
+
saveLastWallet(walletMechanism);
|
|
619
673
|
await requestSignature();
|
|
620
674
|
}
|
|
621
675
|
}
|
|
@@ -696,6 +750,7 @@ export function createConnection(settings: {
|
|
|
696
750
|
|
|
697
751
|
function disconnect() {
|
|
698
752
|
deleteOriginAccount();
|
|
753
|
+
deleteLastWallet();
|
|
699
754
|
if (_wallet) {
|
|
700
755
|
alwaysOnProvider.setWalletProvider(undefined);
|
|
701
756
|
stopatchingForAccountChange(_wallet.provider);
|
|
@@ -813,14 +868,30 @@ export function createConnection(settings: {
|
|
|
813
868
|
}
|
|
814
869
|
|
|
815
870
|
async function unlock() {
|
|
816
|
-
|
|
817
|
-
|
|
871
|
+
const wallet = $connection.wallet;
|
|
872
|
+
if (!wallet || wallet.status !== 'locked') {
|
|
873
|
+
throw new Error(`invalid state`);
|
|
818
874
|
}
|
|
819
875
|
|
|
820
|
-
|
|
876
|
+
set({
|
|
877
|
+
...$connection,
|
|
878
|
+
wallet: {
|
|
879
|
+
...wallet,
|
|
880
|
+
unlocking: true,
|
|
881
|
+
},
|
|
882
|
+
});
|
|
821
883
|
|
|
822
|
-
|
|
823
|
-
|
|
884
|
+
try {
|
|
885
|
+
await wallet.provider.request({method: 'eth_requestAccounts'}).then(onAccountChanged);
|
|
886
|
+
} catch {
|
|
887
|
+
set({
|
|
888
|
+
...$connection,
|
|
889
|
+
wallet: {
|
|
890
|
+
...wallet,
|
|
891
|
+
unlocking: false,
|
|
892
|
+
},
|
|
893
|
+
});
|
|
894
|
+
}
|
|
824
895
|
}
|
|
825
896
|
|
|
826
897
|
async function switchWalletChain(
|
package/src/provider.ts
CHANGED
|
@@ -26,32 +26,41 @@ export function createProvider(params: {
|
|
|
26
26
|
const jsonRPC = createCurriedJSONRPC(endpoint);
|
|
27
27
|
|
|
28
28
|
let walletProvider: EIP1193WindowWalletProvider | undefined;
|
|
29
|
+
let status: 'connected' | 'locked' | 'disconnected' = 'disconnected';
|
|
29
30
|
|
|
30
31
|
function setWalletProvider(newWalletProvider: EIP1193WindowWalletProvider | undefined) {
|
|
31
32
|
walletProvider = newWalletProvider;
|
|
32
33
|
}
|
|
34
|
+
function setWalletStatus(newStatus: 'connected' | 'locked' | 'disconnected') {
|
|
35
|
+
status = newStatus;
|
|
36
|
+
}
|
|
33
37
|
|
|
34
38
|
const provider = {
|
|
35
39
|
async request(req: {method: string; params?: any[]}) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
req.method.indexOf('sign') != -1;
|
|
40
|
+
const signingMethod =
|
|
41
|
+
signerMethods.includes(req.method) ||
|
|
42
|
+
connectedAccountMethods.includes(req.method) ||
|
|
43
|
+
walletOnlyMethods.includes(req.method) ||
|
|
44
|
+
req.method.indexOf('sign') != -1;
|
|
42
45
|
|
|
46
|
+
if (walletProvider) {
|
|
43
47
|
if (prioritizeWalletProvider || signingMethod) {
|
|
48
|
+
if (signingMethod) {
|
|
49
|
+
if (status !== 'connected') {
|
|
50
|
+
return Promise.reject({message: 'wallet provider is not connected', code: 4001});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
44
54
|
const currentChainIdAsHex = await walletProvider.request({
|
|
45
55
|
method: 'eth_chainId',
|
|
46
56
|
});
|
|
47
57
|
const currentChainId = Number(currentChainIdAsHex).toString();
|
|
48
58
|
if (chainId !== currentChainId) {
|
|
49
59
|
if (signingMethod) {
|
|
50
|
-
return Promise.reject(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
);
|
|
60
|
+
return Promise.reject({
|
|
61
|
+
message: `wallet provider is connected to a different chain, expected ${chainId} but got ${currentChainId}`,
|
|
62
|
+
code: 4001,
|
|
63
|
+
});
|
|
55
64
|
} else {
|
|
56
65
|
// we fallback on jsonRPc if invalid chain and not a signing method
|
|
57
66
|
return jsonRPC.request(req);
|
|
@@ -61,6 +70,10 @@ export function createProvider(params: {
|
|
|
61
70
|
}
|
|
62
71
|
}
|
|
63
72
|
|
|
73
|
+
// if (signingMethod) {
|
|
74
|
+
// return Promise.reject(new Error('wallet provider is not connected'));
|
|
75
|
+
// }
|
|
76
|
+
|
|
64
77
|
return jsonRPC.request(req);
|
|
65
78
|
},
|
|
66
79
|
} as unknown as EIP1193WalletProvider;
|