@etherplay/connect 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +160 -107
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +19 -6
- package/dist/provider.js.map +1 -1
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +33 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +167 -113
- package/src/provider.ts +20 -6
- package/src/utils.ts +35 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
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,WAAW,GAAG;IACzB,QAAQ,EAAE,2BAA2B,CAAC;IACtC,QAAQ,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,aAAa,GAAG,gBAAgB,GAAG,KAAK,CAAC;CACzD,GAAG,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAC,GAAG;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,GAAG;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAErH,KAAK,eAAe,GAAG;IACtB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,KAAK,QAAQ,GACV;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;CACjB,GACD;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;CACnB,CAAC;AAEL,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,GAGD;IACA,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,EAAE,WAAW,CAAC;CACnB,GAGD;IACA,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,CAAC;CACnB,GAED,eAAe,GAMf,QAAQ,CACV,CAAC;AAEF,UAAU,mBAAmB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAED,UAAU,qBAAqB;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,2BAA2B,CAAC;CACtC;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAChE,IAAI,EAAE,0BAA0B,CAAC;IACjC,MAAM,EAAE,qBAAqB,CAAC;CAC9B;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,IAAI,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CACrG;;0BA0cmC,SAAS;wDANK,OAAO;4BACnC,OAAO;oCACC,OAAO;;;iBAoVhB,mBAAmB,GAAG,MAAM,GAAG,gBAAgB;;+BAtcjC,KAAK,MAAM,EAAE,YAAY;QAAC,6CAA6C,EAAE,OAAO,CAAA;KAAC;;+CAkhBnE,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;iCAsD5D,MAAM,WACN;QACR,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;SACjB,CAAC;KACF;;;eA1MK,iBAAiB,cACX,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC;4DA1R1B,OAAO;gCACnC,OAAO;wCACC,OAAO;YA0RjC,OAAO,CAAC,eAAe,CAAC;eACI,UAAU,cAAc,SAAS;4DA7Rf,OAAO;gCACnC,OAAO;wCACC,OAAO;YA2R4D,OAAO,CAAC,QAAQ,CAAC;qBAC5E,SAAS;4DA9RG,OAAO;gCACnC,OAAO;wCACC,OAAO;YA4R0C,OAAO,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAz1BpF,CAAC;kBAAqB,CAAC;;;;;;;;;;;EAqsClC;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writable } from 'svelte/store';
|
|
2
2
|
import { createPopupLauncher } from './popup.js';
|
|
3
3
|
import { fromEntropyKeyToMnemonic, fromMnemonicToFirstAccount, fromSignatureToKey, originKeyMessage, originPublicKeyPublicationMessage, } from '@etherplay/alchemy';
|
|
4
|
-
import { hashMessage } from './utils.js';
|
|
4
|
+
import { hashMessage, withTimeout } from './utils.js';
|
|
5
5
|
import { createProvider } from './provider.js';
|
|
6
6
|
export { fromEntropyKeyToMnemonic, originPublicKeyPublicationMessage, originKeyMessage };
|
|
7
7
|
const storageKeyAccount = '__origin_account';
|
|
@@ -94,14 +94,14 @@ export function createConnection(settings) {
|
|
|
94
94
|
waitForWallet(walletMechanism.name)
|
|
95
95
|
.then(async (walletDetails) => {
|
|
96
96
|
const walletProvider = walletDetails.provider;
|
|
97
|
-
const chainIdAsHex = await walletProvider.request({ method: 'eth_chainId' });
|
|
97
|
+
const chainIdAsHex = await withTimeout(walletProvider.request({ method: 'eth_chainId' }));
|
|
98
98
|
const chainId = Number(chainIdAsHex).toString();
|
|
99
99
|
_wallet = { provider: walletProvider, chainId };
|
|
100
100
|
alwaysOnProvider.setWalletProvider(walletProvider);
|
|
101
101
|
watchForChainIdChange(_wallet.provider);
|
|
102
102
|
let accounts = [];
|
|
103
103
|
// try {
|
|
104
|
-
accounts = await walletProvider.request({ method: 'eth_accounts' });
|
|
104
|
+
accounts = await withTimeout(walletProvider.request({ method: 'eth_accounts' }));
|
|
105
105
|
accounts = accounts.map((v) => v.toLowerCase());
|
|
106
106
|
// } catch {}
|
|
107
107
|
// // TODO try catch ? and use logic of onAccountChanged
|
|
@@ -150,14 +150,14 @@ export function createConnection(settings) {
|
|
|
150
150
|
waitForWallet(lastWallet.name)
|
|
151
151
|
.then(async (walletDetails) => {
|
|
152
152
|
const walletProvider = walletDetails.provider;
|
|
153
|
-
const chainIdAsHex = await walletProvider.request({ method: 'eth_chainId' });
|
|
153
|
+
const chainIdAsHex = await withTimeout(walletProvider.request({ method: 'eth_chainId' }));
|
|
154
154
|
const chainId = Number(chainIdAsHex).toString();
|
|
155
155
|
_wallet = { provider: walletProvider, chainId };
|
|
156
156
|
alwaysOnProvider.setWalletProvider(walletProvider);
|
|
157
157
|
watchForChainIdChange(_wallet.provider);
|
|
158
158
|
let accounts = [];
|
|
159
159
|
// try {
|
|
160
|
-
accounts = await walletProvider.request({ method: 'eth_accounts' });
|
|
160
|
+
accounts = await withTimeout(walletProvider.request({ method: 'eth_accounts' }));
|
|
161
161
|
accounts = accounts.map((v) => v.toLowerCase());
|
|
162
162
|
// } catch {}
|
|
163
163
|
// // TODO try catch ? and use logic of onAccountChanged
|
|
@@ -232,8 +232,50 @@ export function createConnection(settings) {
|
|
|
232
232
|
sessionStorage.removeItem(storageKeyLastWallet);
|
|
233
233
|
localStorage.removeItem(storageKeyLastWallet);
|
|
234
234
|
}
|
|
235
|
+
let signaturePending = undefined;
|
|
236
|
+
let signatureCounter = 0;
|
|
237
|
+
function _requestSignature(provider, msg, address) {
|
|
238
|
+
const id = ++signatureCounter;
|
|
239
|
+
if (signaturePending) {
|
|
240
|
+
const tmp = signaturePending;
|
|
241
|
+
signaturePending = undefined;
|
|
242
|
+
tmp.reject(new Error('signature request replaced', { cause: { code: 111111 } }));
|
|
243
|
+
}
|
|
244
|
+
return new Promise((resolve, reject) => {
|
|
245
|
+
signaturePending = { reject, id };
|
|
246
|
+
// console.log(`check for timeout...`);
|
|
247
|
+
// this step ensure timeout
|
|
248
|
+
// await withTimeout(
|
|
249
|
+
// provider.request({
|
|
250
|
+
// method: 'eth_chainId',
|
|
251
|
+
// }),
|
|
252
|
+
// );
|
|
253
|
+
// await withTimeout(
|
|
254
|
+
// provider.request({
|
|
255
|
+
// method: 'eth_accounts',
|
|
256
|
+
// }),
|
|
257
|
+
// );
|
|
258
|
+
provider
|
|
259
|
+
.request({
|
|
260
|
+
method: 'personal_sign',
|
|
261
|
+
params: [msg, address],
|
|
262
|
+
})
|
|
263
|
+
.then((signature) => {
|
|
264
|
+
if (signaturePending?.id === id) {
|
|
265
|
+
signaturePending = undefined;
|
|
266
|
+
resolve(signature);
|
|
267
|
+
}
|
|
268
|
+
})
|
|
269
|
+
.catch((err) => {
|
|
270
|
+
if (signaturePending?.id === id) {
|
|
271
|
+
signaturePending = undefined;
|
|
272
|
+
reject(err);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
}
|
|
235
277
|
async function requestSignature() {
|
|
236
|
-
if ($connection.step !== 'WalletConnected') {
|
|
278
|
+
if ($connection.step !== 'WalletConnected' && $connection.step !== 'WaitingForSignature') {
|
|
237
279
|
throw new Error(`invalid step: ${$connection.step}, needs to be WalletConnected`);
|
|
238
280
|
}
|
|
239
281
|
const provider = $connection.wallet.provider;
|
|
@@ -245,13 +287,14 @@ export function createConnection(settings) {
|
|
|
245
287
|
});
|
|
246
288
|
let signature;
|
|
247
289
|
try {
|
|
248
|
-
|
|
249
|
-
signature = await provider.request({
|
|
250
|
-
method: 'personal_sign',
|
|
251
|
-
params: [msg, $connection.mechanism.address],
|
|
252
|
-
});
|
|
290
|
+
signature = await _requestSignature(provider, msg, $connection.mechanism.address);
|
|
253
291
|
}
|
|
254
292
|
catch (err) {
|
|
293
|
+
console.error(err);
|
|
294
|
+
if (err?.cause?.code === 111111) {
|
|
295
|
+
// We ignore replaced signature request
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
255
298
|
// TODO handle rejection (code: 4001 ?)
|
|
256
299
|
set({
|
|
257
300
|
...$connection,
|
|
@@ -419,30 +462,101 @@ export function createConnection(settings) {
|
|
|
419
462
|
wallets: $connection.wallets,
|
|
420
463
|
wallet: undefined,
|
|
421
464
|
});
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
if (accounts.length === 0) {
|
|
434
|
-
set({
|
|
435
|
-
step: 'WaitingForWalletConnection', // TODO add another step to unlock ?
|
|
436
|
-
mechanism: mechanismToSave,
|
|
437
|
-
wallets: $connection.wallets,
|
|
438
|
-
wallet: undefined,
|
|
439
|
-
});
|
|
440
|
-
accounts = await provider.request({ method: 'eth_requestAccounts' });
|
|
465
|
+
try {
|
|
466
|
+
const provider = wallet.provider;
|
|
467
|
+
const chainIdAsHex = await withTimeout(provider.request({ method: 'eth_chainId' }));
|
|
468
|
+
const chainId = Number(chainIdAsHex).toString();
|
|
469
|
+
_wallet = {
|
|
470
|
+
chainId,
|
|
471
|
+
provider,
|
|
472
|
+
};
|
|
473
|
+
alwaysOnProvider.setWalletProvider(_wallet.provider);
|
|
474
|
+
watchForChainIdChange(_wallet.provider);
|
|
475
|
+
let accounts = await withTimeout(provider.request({ method: 'eth_accounts' }));
|
|
441
476
|
accounts = accounts.map((v) => v.toLowerCase());
|
|
442
|
-
if (accounts.length
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
:
|
|
477
|
+
if (accounts.length === 0) {
|
|
478
|
+
set({
|
|
479
|
+
step: 'WaitingForWalletConnection', // TODO add another step to unlock ?
|
|
480
|
+
mechanism: mechanismToSave,
|
|
481
|
+
wallets: $connection.wallets,
|
|
482
|
+
wallet: undefined,
|
|
483
|
+
});
|
|
484
|
+
accounts = await provider.request({ method: 'eth_requestAccounts' });
|
|
485
|
+
accounts = accounts.map((v) => v.toLowerCase());
|
|
486
|
+
if (accounts.length > 0) {
|
|
487
|
+
const nextStep = !settings?.alwaysUseCurrentAccount && !specificAddress && accounts.length > 1
|
|
488
|
+
? 'ChooseWalletAccount'
|
|
489
|
+
: 'WalletConnected';
|
|
490
|
+
let account = accounts[0];
|
|
491
|
+
if (specificAddress) {
|
|
492
|
+
if (accounts.find((v) => v === specificAddress)) {
|
|
493
|
+
account = specificAddress;
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
// TODO error
|
|
497
|
+
throw new Error(`could not find address ${specificAddress}`);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
const newState = nextStep === 'ChooseWalletAccount'
|
|
501
|
+
? {
|
|
502
|
+
step: nextStep,
|
|
503
|
+
mechanism: mechanismToSave,
|
|
504
|
+
wallets: $connection.wallets,
|
|
505
|
+
wallet: {
|
|
506
|
+
provider: _wallet.provider,
|
|
507
|
+
accounts,
|
|
508
|
+
status: 'connected',
|
|
509
|
+
accountChanged: undefined,
|
|
510
|
+
chainId,
|
|
511
|
+
invalidChainId: alwaysOnChainId != chainId,
|
|
512
|
+
switchingChain: false,
|
|
513
|
+
},
|
|
514
|
+
}
|
|
515
|
+
: {
|
|
516
|
+
step: nextStep,
|
|
517
|
+
mechanism: {
|
|
518
|
+
...mechanismToSave,
|
|
519
|
+
address: account,
|
|
520
|
+
},
|
|
521
|
+
wallets: $connection.wallets,
|
|
522
|
+
wallet: {
|
|
523
|
+
provider: _wallet.provider,
|
|
524
|
+
accounts,
|
|
525
|
+
status: 'connected',
|
|
526
|
+
accountChanged: undefined,
|
|
527
|
+
chainId,
|
|
528
|
+
invalidChainId: alwaysOnChainId != chainId,
|
|
529
|
+
switchingChain: false,
|
|
530
|
+
},
|
|
531
|
+
};
|
|
532
|
+
if (newState.step === 'WalletConnected' &&
|
|
533
|
+
(requestSignatureAutomaticallyIfPossible || options?.requestSignatureRightAway) &&
|
|
534
|
+
!options?.requireUserConfirmationBeforeSignatureRequest) {
|
|
535
|
+
watchForAccountChange(_wallet.provider);
|
|
536
|
+
set(newState);
|
|
537
|
+
alwaysOnProvider.setWalletStatus('connected');
|
|
538
|
+
saveLastWallet(newState.mechanism);
|
|
539
|
+
await requestSignature();
|
|
540
|
+
}
|
|
541
|
+
else {
|
|
542
|
+
set(newState);
|
|
543
|
+
alwaysOnProvider.setWalletStatus('connected');
|
|
544
|
+
if (newState.step === 'WalletConnected') {
|
|
545
|
+
saveLastWallet(newState.mechanism);
|
|
546
|
+
}
|
|
547
|
+
watchForAccountChange(_wallet.provider);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
else {
|
|
551
|
+
set({
|
|
552
|
+
step: 'MechanismToChoose',
|
|
553
|
+
wallets: $connection.wallets,
|
|
554
|
+
wallet: undefined,
|
|
555
|
+
error: { message: 'could not get any accounts' },
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
446
560
|
let account = accounts[0];
|
|
447
561
|
if (specificAddress) {
|
|
448
562
|
if (accounts.find((v) => v === specificAddress)) {
|
|
@@ -453,6 +567,9 @@ export function createConnection(settings) {
|
|
|
453
567
|
throw new Error(`could not find address ${specificAddress}`);
|
|
454
568
|
}
|
|
455
569
|
}
|
|
570
|
+
const nextStep = !settings?.alwaysUseCurrentAccount && !specificAddress && accounts.length > 1
|
|
571
|
+
? 'ChooseWalletAccount'
|
|
572
|
+
: 'WalletConnected';
|
|
456
573
|
const newState = nextStep === 'ChooseWalletAccount'
|
|
457
574
|
? {
|
|
458
575
|
step: nextStep,
|
|
@@ -488,93 +605,29 @@ export function createConnection(settings) {
|
|
|
488
605
|
if (newState.step === 'WalletConnected' &&
|
|
489
606
|
(requestSignatureAutomaticallyIfPossible || options?.requestSignatureRightAway) &&
|
|
490
607
|
!options?.requireUserConfirmationBeforeSignatureRequest) {
|
|
491
|
-
watchForAccountChange(_wallet.provider);
|
|
492
608
|
set(newState);
|
|
493
609
|
alwaysOnProvider.setWalletStatus('connected');
|
|
494
610
|
saveLastWallet(newState.mechanism);
|
|
611
|
+
watchForAccountChange(_wallet.provider);
|
|
495
612
|
await requestSignature();
|
|
496
613
|
}
|
|
497
614
|
else {
|
|
615
|
+
watchForAccountChange(_wallet.provider);
|
|
498
616
|
set(newState);
|
|
499
617
|
alwaysOnProvider.setWalletStatus('connected');
|
|
500
618
|
if (newState.step === 'WalletConnected') {
|
|
501
619
|
saveLastWallet(newState.mechanism);
|
|
502
620
|
}
|
|
503
|
-
watchForAccountChange(_wallet.provider);
|
|
504
621
|
}
|
|
505
622
|
}
|
|
506
|
-
else {
|
|
507
|
-
set({
|
|
508
|
-
step: 'MechanismToChoose',
|
|
509
|
-
wallets: $connection.wallets,
|
|
510
|
-
wallet: undefined,
|
|
511
|
-
error: { message: 'could not get any accounts' },
|
|
512
|
-
});
|
|
513
|
-
}
|
|
514
623
|
}
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
// TODO error
|
|
523
|
-
throw new Error(`could not find address ${specificAddress}`);
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
const nextStep = !settings?.alwaysUseCurrentAccount && !specificAddress && accounts.length > 1
|
|
527
|
-
? 'ChooseWalletAccount'
|
|
528
|
-
: 'WalletConnected';
|
|
529
|
-
const newState = nextStep === 'ChooseWalletAccount'
|
|
530
|
-
? {
|
|
531
|
-
step: nextStep,
|
|
532
|
-
mechanism: mechanismToSave,
|
|
533
|
-
wallets: $connection.wallets,
|
|
534
|
-
wallet: {
|
|
535
|
-
provider: _wallet.provider,
|
|
536
|
-
accounts,
|
|
537
|
-
status: 'connected',
|
|
538
|
-
accountChanged: undefined,
|
|
539
|
-
chainId,
|
|
540
|
-
invalidChainId: alwaysOnChainId != chainId,
|
|
541
|
-
switchingChain: false,
|
|
542
|
-
},
|
|
543
|
-
}
|
|
544
|
-
: {
|
|
545
|
-
step: nextStep,
|
|
546
|
-
mechanism: {
|
|
547
|
-
...mechanismToSave,
|
|
548
|
-
address: account,
|
|
549
|
-
},
|
|
550
|
-
wallets: $connection.wallets,
|
|
551
|
-
wallet: {
|
|
552
|
-
provider: _wallet.provider,
|
|
553
|
-
accounts,
|
|
554
|
-
status: 'connected',
|
|
555
|
-
accountChanged: undefined,
|
|
556
|
-
chainId,
|
|
557
|
-
invalidChainId: alwaysOnChainId != chainId,
|
|
558
|
-
switchingChain: false,
|
|
559
|
-
},
|
|
560
|
-
};
|
|
561
|
-
if (newState.step === 'WalletConnected' &&
|
|
562
|
-
(requestSignatureAutomaticallyIfPossible || options?.requestSignatureRightAway) &&
|
|
563
|
-
!options?.requireUserConfirmationBeforeSignatureRequest) {
|
|
564
|
-
set(newState);
|
|
565
|
-
alwaysOnProvider.setWalletStatus('connected');
|
|
566
|
-
saveLastWallet(newState.mechanism);
|
|
567
|
-
watchForAccountChange(_wallet.provider);
|
|
568
|
-
await requestSignature();
|
|
569
|
-
}
|
|
570
|
-
else {
|
|
571
|
-
watchForAccountChange(_wallet.provider);
|
|
572
|
-
set(newState);
|
|
573
|
-
alwaysOnProvider.setWalletStatus('connected');
|
|
574
|
-
if (newState.step === 'WalletConnected') {
|
|
575
|
-
saveLastWallet(newState.mechanism);
|
|
576
|
-
}
|
|
577
|
-
}
|
|
624
|
+
catch (err) {
|
|
625
|
+
set({
|
|
626
|
+
step: 'MechanismToChoose',
|
|
627
|
+
wallets: $connection.wallets,
|
|
628
|
+
wallet: undefined,
|
|
629
|
+
error: { message: `failed toconnect to wallet`, cause: err },
|
|
630
|
+
});
|
|
578
631
|
}
|
|
579
632
|
}
|
|
580
633
|
else {
|
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;
|
|
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;AAgBvE,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;IACzB,iBAAiB,EAAE,CAAC,cAAc,EAAE,2BAA2B,GAAG,SAAS,KAAK,IAAI,CAAC;IACrF,eAAe,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,KAAK,IAAI,CAAC;CAC9E,GAAG;IACH,OAAO,EAAE,MAAM,CAAC;CAChB,CAwEA"}
|
package/dist/provider.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createCurriedJSONRPC } from 'remote-procedure-call';
|
|
2
|
+
import { withTimeout } from './utils.js';
|
|
2
3
|
const signerMethods = [
|
|
3
4
|
'eth_accounts',
|
|
4
5
|
'eth_sign',
|
|
@@ -33,9 +34,21 @@ export function createProvider(params) {
|
|
|
33
34
|
return Promise.reject({ message: 'wallet provider is not connected', code: 4001 });
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
let currentChainIdAsHex;
|
|
38
|
+
try {
|
|
39
|
+
currentChainIdAsHex = await withTimeout(walletProvider.request({
|
|
40
|
+
method: 'eth_chainId',
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
if (signingMethod) {
|
|
45
|
+
return Promise.reject(err);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// we fallback on jsonRPc if error while getting chain and not a signing method
|
|
49
|
+
return jsonRPC.request(req);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
39
52
|
const currentChainId = Number(currentChainIdAsHex).toString();
|
|
40
53
|
if (chainId !== currentChainId) {
|
|
41
54
|
if (signingMethod) {
|
|
@@ -52,9 +65,9 @@ export function createProvider(params) {
|
|
|
52
65
|
return walletProvider.request(req);
|
|
53
66
|
}
|
|
54
67
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
68
|
+
if (signingMethod) {
|
|
69
|
+
return Promise.reject(new Error('wallet provider is not connected'));
|
|
70
|
+
}
|
|
58
71
|
return jsonRPC.request(req);
|
|
59
72
|
},
|
|
60
73
|
};
|
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;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { Readable } from 'svelte/store';
|
|
2
2
|
export declare function createStorePromise<U, T, V extends Readable<T>>(store: V, executor: (resolve: (value: U | PromiseLike<U>) => void, reject: (reason?: any) => void) => void): Promise<U> & V;
|
|
3
3
|
export declare function hashMessage(message: string): `0x${string}`;
|
|
4
|
+
/**
|
|
5
|
+
* Wraps any promise with a timeout
|
|
6
|
+
* @param promise The promise to wrap with a timeout
|
|
7
|
+
* @param timeoutMs Timeout in milliseconds
|
|
8
|
+
* @param timeoutMessage Optional custom error message for timeout
|
|
9
|
+
* @returns A new promise that resolves/rejects with the original promise result or times out
|
|
10
|
+
*/
|
|
11
|
+
export declare function withTimeout<T>(promise: Promise<T>, timeoutMs?: number, timeoutMessage?: string): Promise<T>;
|
|
4
12
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC7D,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,GAC9F,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAchB;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAI1D"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC7D,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,GAC9F,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAchB;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAI1D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAE,MAAa,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BjH"}
|
package/dist/utils.js
CHANGED
|
@@ -18,4 +18,37 @@ export function hashMessage(message) {
|
|
|
18
18
|
const msg = `0x${bytesToHex(messageAsBytes)}`;
|
|
19
19
|
return msg;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Wraps any promise with a timeout
|
|
23
|
+
* @param promise The promise to wrap with a timeout
|
|
24
|
+
* @param timeoutMs Timeout in milliseconds
|
|
25
|
+
* @param timeoutMessage Optional custom error message for timeout
|
|
26
|
+
* @returns A new promise that resolves/rejects with the original promise result or times out
|
|
27
|
+
*/
|
|
28
|
+
export function withTimeout(promise, timeoutMs = 5000, timeoutMessage) {
|
|
29
|
+
// Create a promise that rejects after the specified timeout
|
|
30
|
+
let id;
|
|
31
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
32
|
+
id = setTimeout(() => {
|
|
33
|
+
if (id) {
|
|
34
|
+
// console.log(`time out reached`);
|
|
35
|
+
clearTimeout(id);
|
|
36
|
+
id = undefined;
|
|
37
|
+
reject(new Error(timeoutMessage || `Promise timed out after ${timeoutMs}ms`));
|
|
38
|
+
}
|
|
39
|
+
}, timeoutMs);
|
|
40
|
+
});
|
|
41
|
+
promise.then((result) => {
|
|
42
|
+
if (id) {
|
|
43
|
+
clearTimeout(id);
|
|
44
|
+
id = undefined;
|
|
45
|
+
// console.log(`promise resolved in time`, result);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// console.log(`promise resolved too late`);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// Race the original promise against the timeout
|
|
52
|
+
return Promise.race([promise, timeoutPromise]);
|
|
53
|
+
}
|
|
21
54
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAG/C,MAAM,UAAU,kBAAkB,CACjC,KAAQ,EACR,QAAgG;IAEhG,MAAM,YAAY,GAAG,IAAI,OAAO,CAAI,QAAQ,CAAmB,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QACA,YAAoB,CAAC,GAAG,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,UAAU,WAAW,CAAC,OAAe;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,KAAK,UAAU,CAAC,cAAc,CAAC,EAAmB,CAAC;IAC/D,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAG/C,MAAM,UAAU,kBAAkB,CACjC,KAAQ,EACR,QAAgG;IAEhG,MAAM,YAAY,GAAG,IAAI,OAAO,CAAI,QAAQ,CAAmB,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QACA,YAAoB,CAAC,GAAG,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,UAAU,WAAW,CAAC,OAAe;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,KAAK,UAAU,CAAC,cAAc,CAAC,EAAmB,CAAC;IAC/D,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAI,OAAmB,EAAE,YAAoB,IAAI,EAAE,cAAuB;IACpG,4DAA4D;IAC5D,IAAI,EAAsB,CAAC;IAC3B,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACvD,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YACpB,IAAI,EAAE,EAAE,CAAC;gBACR,mCAAmC;gBACnC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,EAAE,GAAG,SAAS,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,2BAA2B,SAAS,IAAI,CAAC,CAAC,CAAC;YAC/E,CAAC;QACF,CAAC,EAAE,SAAS,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACvB,IAAI,EAAE,EAAE,CAAC;YACR,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,GAAG,SAAS,CAAC;YACf,mDAAmD;QACpD,CAAC;aAAM,CAAC;YACP,4CAA4C;QAC7C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,gDAAgD;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
originKeyMessage,
|
|
10
10
|
originPublicKeyPublicationMessage,
|
|
11
11
|
} from '@etherplay/alchemy';
|
|
12
|
-
import {hashMessage} from './utils.js';
|
|
12
|
+
import {hashMessage, withTimeout} from './utils.js';
|
|
13
13
|
import {createProvider} from './provider.js';
|
|
14
14
|
|
|
15
15
|
export {fromEntropyKeyToMnemonic, originPublicKeyPublicationMessage, originKeyMessage};
|
|
@@ -243,14 +243,14 @@ export function createConnection(settings: {
|
|
|
243
243
|
waitForWallet(walletMechanism.name)
|
|
244
244
|
.then(async (walletDetails: EIP6963ProviderDetail) => {
|
|
245
245
|
const walletProvider = walletDetails.provider;
|
|
246
|
-
const chainIdAsHex = await walletProvider.request({method: 'eth_chainId'});
|
|
246
|
+
const chainIdAsHex = await withTimeout(walletProvider.request({method: 'eth_chainId'}));
|
|
247
247
|
const chainId = Number(chainIdAsHex).toString();
|
|
248
248
|
_wallet = {provider: walletProvider, chainId};
|
|
249
249
|
alwaysOnProvider.setWalletProvider(walletProvider);
|
|
250
250
|
watchForChainIdChange(_wallet.provider);
|
|
251
251
|
let accounts: `0x${string}`[] = [];
|
|
252
252
|
// try {
|
|
253
|
-
accounts = await walletProvider.request({method: 'eth_accounts'});
|
|
253
|
+
accounts = await withTimeout(walletProvider.request({method: 'eth_accounts'}));
|
|
254
254
|
accounts = accounts.map((v) => v.toLowerCase() as `0x${string}`);
|
|
255
255
|
// } catch {}
|
|
256
256
|
// // TODO try catch ? and use logic of onAccountChanged
|
|
@@ -296,7 +296,7 @@ export function createConnection(settings: {
|
|
|
296
296
|
waitForWallet(lastWallet.name)
|
|
297
297
|
.then(async (walletDetails: EIP6963ProviderDetail) => {
|
|
298
298
|
const walletProvider = walletDetails.provider;
|
|
299
|
-
const chainIdAsHex = await walletProvider.request({method: 'eth_chainId'});
|
|
299
|
+
const chainIdAsHex = await withTimeout(walletProvider.request({method: 'eth_chainId'}));
|
|
300
300
|
const chainId = Number(chainIdAsHex).toString();
|
|
301
301
|
_wallet = {provider: walletProvider, chainId};
|
|
302
302
|
alwaysOnProvider.setWalletProvider(walletProvider);
|
|
@@ -304,7 +304,7 @@ export function createConnection(settings: {
|
|
|
304
304
|
|
|
305
305
|
let accounts: `0x${string}`[] = [];
|
|
306
306
|
// try {
|
|
307
|
-
accounts = await walletProvider.request({method: 'eth_accounts'});
|
|
307
|
+
accounts = await withTimeout(walletProvider.request({method: 'eth_accounts'}));
|
|
308
308
|
accounts = accounts.map((v) => v.toLowerCase() as `0x${string}`);
|
|
309
309
|
// } catch {}
|
|
310
310
|
// // TODO try catch ? and use logic of onAccountChanged
|
|
@@ -378,8 +378,52 @@ export function createConnection(settings: {
|
|
|
378
378
|
localStorage.removeItem(storageKeyLastWallet);
|
|
379
379
|
}
|
|
380
380
|
|
|
381
|
+
let signaturePending: {reject: (error: unknown) => void; id: number} | undefined = undefined;
|
|
382
|
+
let signatureCounter = 0;
|
|
383
|
+
function _requestSignature(provider: EIP1193WindowWalletProvider, msg: `0x${string}`, address: `0x${string}`) {
|
|
384
|
+
const id = ++signatureCounter;
|
|
385
|
+
if (signaturePending) {
|
|
386
|
+
const tmp = signaturePending;
|
|
387
|
+
signaturePending = undefined;
|
|
388
|
+
tmp.reject(new Error('signature request replaced', {cause: {code: 111111}}));
|
|
389
|
+
}
|
|
390
|
+
return new Promise<`0x${string}`>((resolve, reject) => {
|
|
391
|
+
signaturePending = {reject, id};
|
|
392
|
+
|
|
393
|
+
// console.log(`check for timeout...`);
|
|
394
|
+
// this step ensure timeout
|
|
395
|
+
// await withTimeout(
|
|
396
|
+
// provider.request({
|
|
397
|
+
// method: 'eth_chainId',
|
|
398
|
+
// }),
|
|
399
|
+
// );
|
|
400
|
+
// await withTimeout(
|
|
401
|
+
// provider.request({
|
|
402
|
+
// method: 'eth_accounts',
|
|
403
|
+
// }),
|
|
404
|
+
// );
|
|
405
|
+
provider
|
|
406
|
+
.request({
|
|
407
|
+
method: 'personal_sign',
|
|
408
|
+
params: [msg, address],
|
|
409
|
+
})
|
|
410
|
+
.then((signature) => {
|
|
411
|
+
if (signaturePending?.id === id) {
|
|
412
|
+
signaturePending = undefined;
|
|
413
|
+
resolve(signature);
|
|
414
|
+
}
|
|
415
|
+
})
|
|
416
|
+
.catch((err) => {
|
|
417
|
+
if (signaturePending?.id === id) {
|
|
418
|
+
signaturePending = undefined;
|
|
419
|
+
reject(err);
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
|
|
381
425
|
async function requestSignature() {
|
|
382
|
-
if ($connection.step !== 'WalletConnected') {
|
|
426
|
+
if ($connection.step !== 'WalletConnected' && $connection.step !== 'WaitingForSignature') {
|
|
383
427
|
throw new Error(`invalid step: ${$connection.step}, needs to be WalletConnected`);
|
|
384
428
|
}
|
|
385
429
|
|
|
@@ -394,12 +438,13 @@ export function createConnection(settings: {
|
|
|
394
438
|
|
|
395
439
|
let signature: `0x${string}`;
|
|
396
440
|
try {
|
|
397
|
-
|
|
398
|
-
signature = await provider.request({
|
|
399
|
-
method: 'personal_sign',
|
|
400
|
-
params: [msg, $connection.mechanism.address],
|
|
401
|
-
});
|
|
441
|
+
signature = await _requestSignature(provider, msg, $connection.mechanism.address);
|
|
402
442
|
} catch (err) {
|
|
443
|
+
console.error(err);
|
|
444
|
+
if ((err as any)?.cause?.code === 111111) {
|
|
445
|
+
// We ignore replaced signature request
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
403
448
|
// TODO handle rejection (code: 4001 ?)
|
|
404
449
|
set({
|
|
405
450
|
...$connection,
|
|
@@ -587,31 +632,105 @@ export function createConnection(settings: {
|
|
|
587
632
|
wallets: $connection.wallets,
|
|
588
633
|
wallet: undefined,
|
|
589
634
|
});
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
if (accounts.length === 0) {
|
|
602
|
-
set({
|
|
603
|
-
step: 'WaitingForWalletConnection', // TODO add another step to unlock ?
|
|
604
|
-
mechanism: mechanismToSave,
|
|
605
|
-
wallets: $connection.wallets,
|
|
606
|
-
wallet: undefined,
|
|
607
|
-
});
|
|
608
|
-
accounts = await provider.request({method: 'eth_requestAccounts'});
|
|
635
|
+
try {
|
|
636
|
+
const provider = wallet.provider;
|
|
637
|
+
const chainIdAsHex = await withTimeout(provider.request({method: 'eth_chainId'}));
|
|
638
|
+
const chainId = Number(chainIdAsHex).toString();
|
|
639
|
+
_wallet = {
|
|
640
|
+
chainId,
|
|
641
|
+
provider,
|
|
642
|
+
};
|
|
643
|
+
alwaysOnProvider.setWalletProvider(_wallet.provider);
|
|
644
|
+
watchForChainIdChange(_wallet.provider);
|
|
645
|
+
let accounts = await withTimeout(provider.request({method: 'eth_accounts'}));
|
|
609
646
|
accounts = accounts.map((v) => v.toLowerCase()) as `0x${string}`[];
|
|
610
|
-
if (accounts.length
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
647
|
+
if (accounts.length === 0) {
|
|
648
|
+
set({
|
|
649
|
+
step: 'WaitingForWalletConnection', // TODO add another step to unlock ?
|
|
650
|
+
mechanism: mechanismToSave,
|
|
651
|
+
wallets: $connection.wallets,
|
|
652
|
+
wallet: undefined,
|
|
653
|
+
});
|
|
654
|
+
accounts = await provider.request({method: 'eth_requestAccounts'});
|
|
655
|
+
accounts = accounts.map((v) => v.toLowerCase()) as `0x${string}`[];
|
|
656
|
+
if (accounts.length > 0) {
|
|
657
|
+
const nextStep =
|
|
658
|
+
!settings?.alwaysUseCurrentAccount && !specificAddress && accounts.length > 1
|
|
659
|
+
? 'ChooseWalletAccount'
|
|
660
|
+
: 'WalletConnected';
|
|
661
|
+
let account = accounts[0];
|
|
662
|
+
if (specificAddress) {
|
|
663
|
+
if (accounts.find((v) => v === specificAddress)) {
|
|
664
|
+
account = specificAddress;
|
|
665
|
+
} else {
|
|
666
|
+
// TODO error
|
|
667
|
+
throw new Error(`could not find address ${specificAddress}`);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
const newState: Connection =
|
|
672
|
+
nextStep === 'ChooseWalletAccount'
|
|
673
|
+
? {
|
|
674
|
+
step: nextStep,
|
|
675
|
+
mechanism: mechanismToSave,
|
|
676
|
+
wallets: $connection.wallets,
|
|
677
|
+
|
|
678
|
+
wallet: {
|
|
679
|
+
provider: _wallet.provider,
|
|
680
|
+
accounts,
|
|
681
|
+
status: 'connected',
|
|
682
|
+
accountChanged: undefined,
|
|
683
|
+
chainId,
|
|
684
|
+
invalidChainId: alwaysOnChainId != chainId,
|
|
685
|
+
switchingChain: false,
|
|
686
|
+
},
|
|
687
|
+
}
|
|
688
|
+
: {
|
|
689
|
+
step: nextStep,
|
|
690
|
+
mechanism: {
|
|
691
|
+
...mechanismToSave,
|
|
692
|
+
address: account,
|
|
693
|
+
},
|
|
694
|
+
wallets: $connection.wallets,
|
|
695
|
+
wallet: {
|
|
696
|
+
provider: _wallet.provider,
|
|
697
|
+
accounts,
|
|
698
|
+
status: 'connected',
|
|
699
|
+
accountChanged: undefined,
|
|
700
|
+
chainId,
|
|
701
|
+
invalidChainId: alwaysOnChainId != chainId,
|
|
702
|
+
switchingChain: false,
|
|
703
|
+
},
|
|
704
|
+
};
|
|
705
|
+
if (
|
|
706
|
+
newState.step === 'WalletConnected' &&
|
|
707
|
+
(requestSignatureAutomaticallyIfPossible || options?.requestSignatureRightAway) &&
|
|
708
|
+
!options?.requireUserConfirmationBeforeSignatureRequest
|
|
709
|
+
) {
|
|
710
|
+
watchForAccountChange(_wallet.provider);
|
|
711
|
+
|
|
712
|
+
set(newState);
|
|
713
|
+
alwaysOnProvider.setWalletStatus('connected');
|
|
714
|
+
saveLastWallet(newState.mechanism);
|
|
715
|
+
await requestSignature();
|
|
716
|
+
} else {
|
|
717
|
+
set(newState);
|
|
718
|
+
alwaysOnProvider.setWalletStatus('connected');
|
|
719
|
+
if (newState.step === 'WalletConnected') {
|
|
720
|
+
saveLastWallet(newState.mechanism);
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
watchForAccountChange(_wallet.provider);
|
|
724
|
+
}
|
|
725
|
+
} else {
|
|
726
|
+
set({
|
|
727
|
+
step: 'MechanismToChoose',
|
|
728
|
+
wallets: $connection.wallets,
|
|
729
|
+
wallet: undefined,
|
|
730
|
+
error: {message: 'could not get any accounts'},
|
|
731
|
+
});
|
|
732
|
+
}
|
|
733
|
+
} else {
|
|
615
734
|
let account = accounts[0];
|
|
616
735
|
if (specificAddress) {
|
|
617
736
|
if (accounts.find((v) => v === specificAddress)) {
|
|
@@ -621,14 +740,16 @@ export function createConnection(settings: {
|
|
|
621
740
|
throw new Error(`could not find address ${specificAddress}`);
|
|
622
741
|
}
|
|
623
742
|
}
|
|
624
|
-
|
|
743
|
+
const nextStep =
|
|
744
|
+
!settings?.alwaysUseCurrentAccount && !specificAddress && accounts.length > 1
|
|
745
|
+
? 'ChooseWalletAccount'
|
|
746
|
+
: 'WalletConnected';
|
|
625
747
|
const newState: Connection =
|
|
626
748
|
nextStep === 'ChooseWalletAccount'
|
|
627
749
|
? {
|
|
628
750
|
step: nextStep,
|
|
629
751
|
mechanism: mechanismToSave,
|
|
630
752
|
wallets: $connection.wallets,
|
|
631
|
-
|
|
632
753
|
wallet: {
|
|
633
754
|
provider: _wallet.provider,
|
|
634
755
|
accounts,
|
|
@@ -661,94 +782,27 @@ export function createConnection(settings: {
|
|
|
661
782
|
(requestSignatureAutomaticallyIfPossible || options?.requestSignatureRightAway) &&
|
|
662
783
|
!options?.requireUserConfirmationBeforeSignatureRequest
|
|
663
784
|
) {
|
|
664
|
-
watchForAccountChange(_wallet.provider);
|
|
665
|
-
|
|
666
785
|
set(newState);
|
|
667
786
|
alwaysOnProvider.setWalletStatus('connected');
|
|
668
787
|
saveLastWallet(newState.mechanism);
|
|
788
|
+
watchForAccountChange(_wallet.provider);
|
|
669
789
|
await requestSignature();
|
|
670
790
|
} else {
|
|
791
|
+
watchForAccountChange(_wallet.provider);
|
|
671
792
|
set(newState);
|
|
672
793
|
alwaysOnProvider.setWalletStatus('connected');
|
|
673
794
|
if (newState.step === 'WalletConnected') {
|
|
674
795
|
saveLastWallet(newState.mechanism);
|
|
675
796
|
}
|
|
676
|
-
|
|
677
|
-
watchForAccountChange(_wallet.provider);
|
|
678
|
-
}
|
|
679
|
-
} else {
|
|
680
|
-
set({
|
|
681
|
-
step: 'MechanismToChoose',
|
|
682
|
-
wallets: $connection.wallets,
|
|
683
|
-
wallet: undefined,
|
|
684
|
-
error: {message: 'could not get any accounts'},
|
|
685
|
-
});
|
|
686
|
-
}
|
|
687
|
-
} else {
|
|
688
|
-
let account = accounts[0];
|
|
689
|
-
if (specificAddress) {
|
|
690
|
-
if (accounts.find((v) => v === specificAddress)) {
|
|
691
|
-
account = specificAddress;
|
|
692
|
-
} else {
|
|
693
|
-
// TODO error
|
|
694
|
-
throw new Error(`could not find address ${specificAddress}`);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
const nextStep =
|
|
698
|
-
!settings?.alwaysUseCurrentAccount && !specificAddress && accounts.length > 1
|
|
699
|
-
? 'ChooseWalletAccount'
|
|
700
|
-
: 'WalletConnected';
|
|
701
|
-
const newState: Connection =
|
|
702
|
-
nextStep === 'ChooseWalletAccount'
|
|
703
|
-
? {
|
|
704
|
-
step: nextStep,
|
|
705
|
-
mechanism: mechanismToSave,
|
|
706
|
-
wallets: $connection.wallets,
|
|
707
|
-
wallet: {
|
|
708
|
-
provider: _wallet.provider,
|
|
709
|
-
accounts,
|
|
710
|
-
status: 'connected',
|
|
711
|
-
accountChanged: undefined,
|
|
712
|
-
chainId,
|
|
713
|
-
invalidChainId: alwaysOnChainId != chainId,
|
|
714
|
-
switchingChain: false,
|
|
715
|
-
},
|
|
716
|
-
}
|
|
717
|
-
: {
|
|
718
|
-
step: nextStep,
|
|
719
|
-
mechanism: {
|
|
720
|
-
...mechanismToSave,
|
|
721
|
-
address: account,
|
|
722
|
-
},
|
|
723
|
-
wallets: $connection.wallets,
|
|
724
|
-
wallet: {
|
|
725
|
-
provider: _wallet.provider,
|
|
726
|
-
accounts,
|
|
727
|
-
status: 'connected',
|
|
728
|
-
accountChanged: undefined,
|
|
729
|
-
chainId,
|
|
730
|
-
invalidChainId: alwaysOnChainId != chainId,
|
|
731
|
-
switchingChain: false,
|
|
732
|
-
},
|
|
733
|
-
};
|
|
734
|
-
if (
|
|
735
|
-
newState.step === 'WalletConnected' &&
|
|
736
|
-
(requestSignatureAutomaticallyIfPossible || options?.requestSignatureRightAway) &&
|
|
737
|
-
!options?.requireUserConfirmationBeforeSignatureRequest
|
|
738
|
-
) {
|
|
739
|
-
set(newState);
|
|
740
|
-
alwaysOnProvider.setWalletStatus('connected');
|
|
741
|
-
saveLastWallet(newState.mechanism);
|
|
742
|
-
watchForAccountChange(_wallet.provider);
|
|
743
|
-
await requestSignature();
|
|
744
|
-
} else {
|
|
745
|
-
watchForAccountChange(_wallet.provider);
|
|
746
|
-
set(newState);
|
|
747
|
-
alwaysOnProvider.setWalletStatus('connected');
|
|
748
|
-
if (newState.step === 'WalletConnected') {
|
|
749
|
-
saveLastWallet(newState.mechanism);
|
|
750
797
|
}
|
|
751
798
|
}
|
|
799
|
+
} catch (err) {
|
|
800
|
+
set({
|
|
801
|
+
step: 'MechanismToChoose',
|
|
802
|
+
wallets: $connection.wallets,
|
|
803
|
+
wallet: undefined,
|
|
804
|
+
error: {message: `failed toconnect to wallet`, cause: err},
|
|
805
|
+
});
|
|
752
806
|
}
|
|
753
807
|
} else {
|
|
754
808
|
console.error(`failed to get wallet ${walletName}`, $connection.wallets);
|
package/src/provider.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type {EIP1193WalletProvider, EIP1193WindowWalletProvider, Methods} from 'eip-1193';
|
|
2
2
|
import {createCurriedJSONRPC, CurriedRPC} from 'remote-procedure-call';
|
|
3
|
+
import {withTimeout} from './utils.js';
|
|
3
4
|
|
|
4
5
|
const signerMethods = [
|
|
5
6
|
'eth_accounts',
|
|
@@ -54,9 +55,22 @@ export function createProvider(params: {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
let currentChainIdAsHex: string;
|
|
59
|
+
try {
|
|
60
|
+
currentChainIdAsHex = await withTimeout(
|
|
61
|
+
walletProvider.request({
|
|
62
|
+
method: 'eth_chainId',
|
|
63
|
+
}),
|
|
64
|
+
);
|
|
65
|
+
} catch (err) {
|
|
66
|
+
if (signingMethod) {
|
|
67
|
+
return Promise.reject(err);
|
|
68
|
+
} else {
|
|
69
|
+
// we fallback on jsonRPc if error while getting chain and not a signing method
|
|
70
|
+
return jsonRPC.request(req);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
60
74
|
const currentChainId = Number(currentChainIdAsHex).toString();
|
|
61
75
|
if (chainId !== currentChainId) {
|
|
62
76
|
if (signingMethod) {
|
|
@@ -73,9 +87,9 @@ export function createProvider(params: {
|
|
|
73
87
|
}
|
|
74
88
|
}
|
|
75
89
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
90
|
+
if (signingMethod) {
|
|
91
|
+
return Promise.reject(new Error('wallet provider is not connected'));
|
|
92
|
+
}
|
|
79
93
|
|
|
80
94
|
return jsonRPC.request(req);
|
|
81
95
|
},
|
package/src/utils.ts
CHANGED
|
@@ -27,3 +27,38 @@ export function hashMessage(message: string): `0x${string}` {
|
|
|
27
27
|
const msg = `0x${bytesToHex(messageAsBytes)}` as `0x${string}`;
|
|
28
28
|
return msg;
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Wraps any promise with a timeout
|
|
33
|
+
* @param promise The promise to wrap with a timeout
|
|
34
|
+
* @param timeoutMs Timeout in milliseconds
|
|
35
|
+
* @param timeoutMessage Optional custom error message for timeout
|
|
36
|
+
* @returns A new promise that resolves/rejects with the original promise result or times out
|
|
37
|
+
*/
|
|
38
|
+
export function withTimeout<T>(promise: Promise<T>, timeoutMs: number = 5000, timeoutMessage?: string): Promise<T> {
|
|
39
|
+
// Create a promise that rejects after the specified timeout
|
|
40
|
+
let id: number | undefined;
|
|
41
|
+
const timeoutPromise = new Promise<never>((_, reject) => {
|
|
42
|
+
id = setTimeout(() => {
|
|
43
|
+
if (id) {
|
|
44
|
+
// console.log(`time out reached`);
|
|
45
|
+
clearTimeout(id);
|
|
46
|
+
id = undefined;
|
|
47
|
+
reject(new Error(timeoutMessage || `Promise timed out after ${timeoutMs}ms`));
|
|
48
|
+
}
|
|
49
|
+
}, timeoutMs);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
promise.then((result) => {
|
|
53
|
+
if (id) {
|
|
54
|
+
clearTimeout(id);
|
|
55
|
+
id = undefined;
|
|
56
|
+
// console.log(`promise resolved in time`, result);
|
|
57
|
+
} else {
|
|
58
|
+
// console.log(`promise resolved too late`);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Race the original promise against the timeout
|
|
63
|
+
return Promise.race([promise, timeoutPromise]);
|
|
64
|
+
}
|