@wagmi/core 0.2.4 → 0.3.1
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/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -21
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -21
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +28 -21
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +28 -15
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +28 -15
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +23 -10
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +7 -6
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +7 -6
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +5 -4
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +26 -8
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +26 -8
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +24 -6
- package/dist/{base-5812b724.cjs.dev.js → base-3a506159.cjs.dev.js} +129 -67
- package/dist/{base-159de546.esm.js → base-997b4fec.esm.js} +98 -38
- package/dist/{base-59f3457e.cjs.prod.js → base-cb4198f3.cjs.prod.js} +129 -67
- package/dist/{client-7fcff803.esm.js → client-1ab99bf8.esm.js} +55 -46
- package/dist/{client-65157905.cjs.dev.js → client-db513093.cjs.dev.js} +57 -48
- package/dist/{client-a06853e2.cjs.prod.js → client-edc73358.cjs.prod.js} +57 -48
- package/dist/declarations/src/actions/accounts/connect.d.ts +4 -4
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +3 -3
- package/dist/declarations/src/actions/accounts/signTypedData.d.ts +15 -6
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -3
- package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -3
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -3
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -3
- package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -3
- package/dist/declarations/src/chains/configureChains.d.ts +20 -0
- package/dist/declarations/src/chains/index.d.ts +2 -0
- package/dist/declarations/src/client.d.ts +12 -12
- package/dist/declarations/src/connectors/injected.d.ts +2 -2
- package/dist/declarations/src/connectors/metaMask.d.ts +1 -1
- package/dist/declarations/src/constants/index.d.ts +1 -1
- package/dist/declarations/src/errors.d.ts +48 -4
- package/dist/declarations/src/index.d.ts +8 -6
- package/dist/declarations/src/providers/alchemy.d.ts +7 -0
- package/dist/declarations/src/providers/infura.d.ts +7 -0
- package/dist/declarations/src/providers/jsonRpc.d.ts +11 -0
- package/dist/declarations/src/providers/public.d.ts +6 -0
- package/dist/declarations/src/storage.d.ts +2 -2
- package/dist/declarations/src/types/index.d.ts +66 -27
- package/dist/rpcs-7cfbd91c.esm.js +30 -0
- package/dist/rpcs-9c4eb960.cjs.dev.js +35 -0
- package/dist/rpcs-b3c52116.cjs.prod.js +35 -0
- package/dist/wagmi-core.cjs.dev.js +125 -26
- package/dist/wagmi-core.cjs.prod.js +125 -26
- package/dist/wagmi-core.esm.js +123 -25
- package/package.json +29 -8
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +1 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +38 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +7 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +38 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +34 -0
- package/providers/alchemy/package.json +4 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +1 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +38 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +7 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +38 -0
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +34 -0
- package/providers/infura/package.json +4 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +1 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +45 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +7 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +45 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +41 -0
- package/providers/jsonRpc/package.json +4 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +1 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +34 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.js +7 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +34 -0
- package/providers/public/dist/wagmi-core-providers-public.esm.js +30 -0
- package/providers/public/package.json +4 -0
- package/dist/classPrivateMethodGet-55c9909f.esm.js +0 -16
- package/dist/classPrivateMethodGet-976c8120.cjs.dev.js +0 -19
- package/dist/classPrivateMethodGet-d7330ed7.cjs.prod.js +0 -19
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var base = require('./base-5812b724.cjs.dev.js');
|
|
3
|
+
var base = require('./base-3a506159.cjs.dev.js');
|
|
5
4
|
var ethers = require('ethers');
|
|
6
5
|
var create = require('zustand/vanilla');
|
|
7
6
|
var middleware = require('zustand/middleware');
|
|
@@ -20,11 +19,13 @@ function getInjectedName(ethereum) {
|
|
|
20
19
|
if (provider.isBraveWallet) return 'Brave Wallet';
|
|
21
20
|
if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
22
21
|
if (provider.isFrame) return 'Frame';
|
|
22
|
+
if (provider.isOpera) return 'Opera';
|
|
23
23
|
if (provider.isTally) return 'Tally';
|
|
24
24
|
if (provider.isTokenary) return 'Tokenary';
|
|
25
25
|
if (provider.isTrust) return 'Trust Wallet';
|
|
26
26
|
if (provider.isMetaMask) return 'MetaMask';
|
|
27
|
-
};
|
|
27
|
+
}; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
|
|
28
|
+
|
|
28
29
|
|
|
29
30
|
if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
|
|
30
31
|
// Deduplicate names using Set
|
|
@@ -62,15 +63,23 @@ const shimKey = 'injected.shimDisconnect';
|
|
|
62
63
|
|
|
63
64
|
var _provider = /*#__PURE__*/new WeakMap();
|
|
64
65
|
|
|
66
|
+
var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
|
|
67
|
+
|
|
65
68
|
class InjectedConnector extends base.Connector {
|
|
66
|
-
constructor(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
constructor() {
|
|
70
|
+
let {
|
|
71
|
+
chains,
|
|
72
|
+
options = {
|
|
73
|
+
shimDisconnect: true
|
|
71
74
|
}
|
|
75
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
76
|
+
super({
|
|
77
|
+
chains,
|
|
78
|
+
options
|
|
72
79
|
});
|
|
73
80
|
|
|
81
|
+
base._classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
|
|
82
|
+
|
|
74
83
|
base._defineProperty(this, "id", void 0);
|
|
75
84
|
|
|
76
85
|
base._defineProperty(this, "name", void 0);
|
|
@@ -109,9 +118,7 @@ class InjectedConnector extends base.Connector {
|
|
|
109
118
|
let name = 'Injected';
|
|
110
119
|
|
|
111
120
|
if (typeof window !== 'undefined') {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const overrideName = config === null || config === void 0 ? void 0 : (_config$options = config.options) === null || _config$options === void 0 ? void 0 : _config$options.name;
|
|
121
|
+
const overrideName = options.name;
|
|
115
122
|
const detectedName = getInjectedName(window.ethereum);
|
|
116
123
|
if (overrideName) name = typeof overrideName === 'function' ? overrideName(detectedName) : overrideName;else name = typeof detectedName === 'string' ? detectedName : detectedName[0];
|
|
117
124
|
}
|
|
@@ -149,7 +156,8 @@ class InjectedConnector extends base.Connector {
|
|
|
149
156
|
provider
|
|
150
157
|
};
|
|
151
158
|
} catch (error) {
|
|
152
|
-
if (
|
|
159
|
+
if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
|
|
160
|
+
if (error.code === -32002) throw new base.ResourceUnavailableError(error);
|
|
153
161
|
throw error;
|
|
154
162
|
}
|
|
155
163
|
}
|
|
@@ -228,16 +236,17 @@ class InjectedConnector extends base.Connector {
|
|
|
228
236
|
return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
|
|
229
237
|
id: chainId,
|
|
230
238
|
name: "Chain ".concat(id),
|
|
239
|
+
network: "".concat(id),
|
|
231
240
|
rpcUrls: {
|
|
232
241
|
default: ''
|
|
233
242
|
}
|
|
234
243
|
};
|
|
235
244
|
} catch (error) {
|
|
236
|
-
|
|
245
|
+
const chain = this.chains.find(x => x.id === chainId);
|
|
246
|
+
if (!chain) throw new base.ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
247
|
+
|
|
237
248
|
if (error.code === 4902) {
|
|
238
249
|
try {
|
|
239
|
-
const chain = this.chains.find(x => x.id === chainId);
|
|
240
|
-
if (!chain) throw new base.ChainNotConfiguredError();
|
|
241
250
|
await provider.request({
|
|
242
251
|
method: 'wallet_addEthereumChain',
|
|
243
252
|
params: [{
|
|
@@ -250,9 +259,13 @@ class InjectedConnector extends base.Connector {
|
|
|
250
259
|
});
|
|
251
260
|
return chain;
|
|
252
261
|
} catch (addError) {
|
|
262
|
+
if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new base.UserRejectedRequestError(error);
|
|
253
263
|
throw new base.AddChainError();
|
|
254
264
|
}
|
|
255
|
-
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
|
|
268
|
+
throw new base.SwitchChainError(error);
|
|
256
269
|
}
|
|
257
270
|
}
|
|
258
271
|
|
|
@@ -281,6 +294,10 @@ class InjectedConnector extends base.Connector {
|
|
|
281
294
|
|
|
282
295
|
}
|
|
283
296
|
|
|
297
|
+
function _isUserRejectedRequestError2(error) {
|
|
298
|
+
return error.code === 4001;
|
|
299
|
+
}
|
|
300
|
+
|
|
284
301
|
const noopStorage = {
|
|
285
302
|
getItem: _key => '',
|
|
286
303
|
setItem: (_key, _value) => null,
|
|
@@ -326,11 +343,23 @@ var _addEffects = /*#__PURE__*/new WeakSet();
|
|
|
326
343
|
|
|
327
344
|
class Client {
|
|
328
345
|
constructor() {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
346
|
+
let {
|
|
347
|
+
autoConnect = false,
|
|
348
|
+
connectors = [new InjectedConnector()],
|
|
349
|
+
provider: _provider = config => {
|
|
350
|
+
try {
|
|
351
|
+
return ethers.getDefaultProvider(config.chainId);
|
|
352
|
+
} catch {
|
|
353
|
+
return ethers.getDefaultProvider();
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
storage = createStorage({
|
|
357
|
+
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
358
|
+
}),
|
|
359
|
+
webSocketProvider: _webSocketProvider
|
|
360
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
332
361
|
|
|
333
|
-
|
|
362
|
+
base._classPrivateMethodInitSpec(this, _addEffects);
|
|
334
363
|
|
|
335
364
|
base._defineProperty(this, "config", void 0);
|
|
336
365
|
|
|
@@ -343,24 +372,7 @@ class Client {
|
|
|
343
372
|
value: void 0
|
|
344
373
|
});
|
|
345
374
|
|
|
346
|
-
//
|
|
347
|
-
const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
|
|
348
|
-
|
|
349
|
-
const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
|
|
350
|
-
|
|
351
|
-
const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
|
|
352
|
-
try {
|
|
353
|
-
return ethers.getDefaultProvider(config.chainId);
|
|
354
|
-
} catch {
|
|
355
|
-
return ethers.getDefaultProvider();
|
|
356
|
-
}
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
const storage = (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : createStorage({
|
|
360
|
-
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
361
|
-
});
|
|
362
|
-
const _webSocketProvider = config.webSocketProvider; // Check status for autoConnect flag
|
|
363
|
-
|
|
375
|
+
// Check status for autoConnect flag
|
|
364
376
|
let status = 'disconnected';
|
|
365
377
|
|
|
366
378
|
let _chainId;
|
|
@@ -378,9 +390,9 @@ class Client {
|
|
|
378
390
|
} // Evaluate initial store values
|
|
379
391
|
|
|
380
392
|
|
|
381
|
-
const connectors_ = typeof
|
|
393
|
+
const connectors_ = typeof connectors === 'function' ? connectors({
|
|
382
394
|
chainId: _chainId
|
|
383
|
-
}) :
|
|
395
|
+
}) : connectors;
|
|
384
396
|
const provider_ = typeof _provider === 'function' ? _provider({
|
|
385
397
|
chainId: _chainId
|
|
386
398
|
}) : _provider;
|
|
@@ -412,7 +424,7 @@ class Client {
|
|
|
412
424
|
})));
|
|
413
425
|
this.config = {
|
|
414
426
|
autoConnect,
|
|
415
|
-
connectors
|
|
427
|
+
connectors,
|
|
416
428
|
provider: _provider,
|
|
417
429
|
storage,
|
|
418
430
|
webSocketProvider: _webSocketProvider
|
|
@@ -421,7 +433,7 @@ class Client {
|
|
|
421
433
|
|
|
422
434
|
base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
423
435
|
|
|
424
|
-
|
|
436
|
+
base._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
425
437
|
}
|
|
426
438
|
|
|
427
439
|
get chains() {
|
|
@@ -467,6 +479,7 @@ class Client {
|
|
|
467
479
|
|
|
468
480
|
clearState() {
|
|
469
481
|
this.setState(x => ({ ...x,
|
|
482
|
+
chains: undefined,
|
|
470
483
|
connector: undefined,
|
|
471
484
|
data: undefined,
|
|
472
485
|
error: undefined,
|
|
@@ -505,6 +518,7 @@ class Client {
|
|
|
505
518
|
|
|
506
519
|
|
|
507
520
|
if (!connected) this.setState(x => ({ ...x,
|
|
521
|
+
data: undefined,
|
|
508
522
|
status: 'disconnected'
|
|
509
523
|
}));
|
|
510
524
|
return this.data;
|
|
@@ -555,14 +569,12 @@ function _addEffects2() {
|
|
|
555
569
|
(_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
|
|
556
570
|
});
|
|
557
571
|
const {
|
|
558
|
-
connectors,
|
|
559
572
|
provider,
|
|
560
573
|
webSocketProvider
|
|
561
574
|
} = this.config;
|
|
562
|
-
const subscribeConnectors = typeof connectors === 'function';
|
|
563
575
|
const subscribeProvider = typeof provider === 'function';
|
|
564
576
|
const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
|
|
565
|
-
if (
|
|
577
|
+
if (subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
|
|
566
578
|
var _data$chain2;
|
|
567
579
|
|
|
568
580
|
let {
|
|
@@ -571,9 +583,6 @@ function _addEffects2() {
|
|
|
571
583
|
return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
|
|
572
584
|
}, chainId => {
|
|
573
585
|
this.setState(x => ({ ...x,
|
|
574
|
-
connectors: subscribeConnectors ? connectors({
|
|
575
|
-
chainId
|
|
576
|
-
}) : x.connectors,
|
|
577
586
|
provider: subscribeProvider ? provider({
|
|
578
587
|
chainId
|
|
579
588
|
}) : x.provider,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var base = require('./base-59f3457e.cjs.prod.js');
|
|
3
|
+
var base = require('./base-cb4198f3.cjs.prod.js');
|
|
5
4
|
var ethers = require('ethers');
|
|
6
5
|
var create = require('zustand/vanilla');
|
|
7
6
|
var middleware = require('zustand/middleware');
|
|
@@ -20,11 +19,13 @@ function getInjectedName(ethereum) {
|
|
|
20
19
|
if (provider.isBraveWallet) return 'Brave Wallet';
|
|
21
20
|
if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
22
21
|
if (provider.isFrame) return 'Frame';
|
|
22
|
+
if (provider.isOpera) return 'Opera';
|
|
23
23
|
if (provider.isTally) return 'Tally';
|
|
24
24
|
if (provider.isTokenary) return 'Tokenary';
|
|
25
25
|
if (provider.isTrust) return 'Trust Wallet';
|
|
26
26
|
if (provider.isMetaMask) return 'MetaMask';
|
|
27
|
-
};
|
|
27
|
+
}; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
|
|
28
|
+
|
|
28
29
|
|
|
29
30
|
if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
|
|
30
31
|
// Deduplicate names using Set
|
|
@@ -62,15 +63,23 @@ const shimKey = 'injected.shimDisconnect';
|
|
|
62
63
|
|
|
63
64
|
var _provider = /*#__PURE__*/new WeakMap();
|
|
64
65
|
|
|
66
|
+
var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
|
|
67
|
+
|
|
65
68
|
class InjectedConnector extends base.Connector {
|
|
66
|
-
constructor(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
constructor() {
|
|
70
|
+
let {
|
|
71
|
+
chains,
|
|
72
|
+
options = {
|
|
73
|
+
shimDisconnect: true
|
|
71
74
|
}
|
|
75
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
76
|
+
super({
|
|
77
|
+
chains,
|
|
78
|
+
options
|
|
72
79
|
});
|
|
73
80
|
|
|
81
|
+
base._classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
|
|
82
|
+
|
|
74
83
|
base._defineProperty(this, "id", void 0);
|
|
75
84
|
|
|
76
85
|
base._defineProperty(this, "name", void 0);
|
|
@@ -109,9 +118,7 @@ class InjectedConnector extends base.Connector {
|
|
|
109
118
|
let name = 'Injected';
|
|
110
119
|
|
|
111
120
|
if (typeof window !== 'undefined') {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const overrideName = config === null || config === void 0 ? void 0 : (_config$options = config.options) === null || _config$options === void 0 ? void 0 : _config$options.name;
|
|
121
|
+
const overrideName = options.name;
|
|
115
122
|
const detectedName = getInjectedName(window.ethereum);
|
|
116
123
|
if (overrideName) name = typeof overrideName === 'function' ? overrideName(detectedName) : overrideName;else name = typeof detectedName === 'string' ? detectedName : detectedName[0];
|
|
117
124
|
}
|
|
@@ -149,7 +156,8 @@ class InjectedConnector extends base.Connector {
|
|
|
149
156
|
provider
|
|
150
157
|
};
|
|
151
158
|
} catch (error) {
|
|
152
|
-
if (
|
|
159
|
+
if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
|
|
160
|
+
if (error.code === -32002) throw new base.ResourceUnavailableError(error);
|
|
153
161
|
throw error;
|
|
154
162
|
}
|
|
155
163
|
}
|
|
@@ -228,16 +236,17 @@ class InjectedConnector extends base.Connector {
|
|
|
228
236
|
return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
|
|
229
237
|
id: chainId,
|
|
230
238
|
name: "Chain ".concat(id),
|
|
239
|
+
network: "".concat(id),
|
|
231
240
|
rpcUrls: {
|
|
232
241
|
default: ''
|
|
233
242
|
}
|
|
234
243
|
};
|
|
235
244
|
} catch (error) {
|
|
236
|
-
|
|
245
|
+
const chain = this.chains.find(x => x.id === chainId);
|
|
246
|
+
if (!chain) throw new base.ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
247
|
+
|
|
237
248
|
if (error.code === 4902) {
|
|
238
249
|
try {
|
|
239
|
-
const chain = this.chains.find(x => x.id === chainId);
|
|
240
|
-
if (!chain) throw new base.ChainNotConfiguredError();
|
|
241
250
|
await provider.request({
|
|
242
251
|
method: 'wallet_addEthereumChain',
|
|
243
252
|
params: [{
|
|
@@ -250,9 +259,13 @@ class InjectedConnector extends base.Connector {
|
|
|
250
259
|
});
|
|
251
260
|
return chain;
|
|
252
261
|
} catch (addError) {
|
|
262
|
+
if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new base.UserRejectedRequestError(error);
|
|
253
263
|
throw new base.AddChainError();
|
|
254
264
|
}
|
|
255
|
-
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
|
|
268
|
+
throw new base.SwitchChainError(error);
|
|
256
269
|
}
|
|
257
270
|
}
|
|
258
271
|
|
|
@@ -281,6 +294,10 @@ class InjectedConnector extends base.Connector {
|
|
|
281
294
|
|
|
282
295
|
}
|
|
283
296
|
|
|
297
|
+
function _isUserRejectedRequestError2(error) {
|
|
298
|
+
return error.code === 4001;
|
|
299
|
+
}
|
|
300
|
+
|
|
284
301
|
const noopStorage = {
|
|
285
302
|
getItem: _key => '',
|
|
286
303
|
setItem: (_key, _value) => null,
|
|
@@ -326,11 +343,23 @@ var _addEffects = /*#__PURE__*/new WeakSet();
|
|
|
326
343
|
|
|
327
344
|
class Client {
|
|
328
345
|
constructor() {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
346
|
+
let {
|
|
347
|
+
autoConnect = false,
|
|
348
|
+
connectors = [new InjectedConnector()],
|
|
349
|
+
provider: _provider = config => {
|
|
350
|
+
try {
|
|
351
|
+
return ethers.getDefaultProvider(config.chainId);
|
|
352
|
+
} catch {
|
|
353
|
+
return ethers.getDefaultProvider();
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
storage = createStorage({
|
|
357
|
+
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
358
|
+
}),
|
|
359
|
+
webSocketProvider: _webSocketProvider
|
|
360
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
332
361
|
|
|
333
|
-
|
|
362
|
+
base._classPrivateMethodInitSpec(this, _addEffects);
|
|
334
363
|
|
|
335
364
|
base._defineProperty(this, "config", void 0);
|
|
336
365
|
|
|
@@ -343,24 +372,7 @@ class Client {
|
|
|
343
372
|
value: void 0
|
|
344
373
|
});
|
|
345
374
|
|
|
346
|
-
//
|
|
347
|
-
const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
|
|
348
|
-
|
|
349
|
-
const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
|
|
350
|
-
|
|
351
|
-
const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
|
|
352
|
-
try {
|
|
353
|
-
return ethers.getDefaultProvider(config.chainId);
|
|
354
|
-
} catch {
|
|
355
|
-
return ethers.getDefaultProvider();
|
|
356
|
-
}
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
const storage = (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : createStorage({
|
|
360
|
-
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
361
|
-
});
|
|
362
|
-
const _webSocketProvider = config.webSocketProvider; // Check status for autoConnect flag
|
|
363
|
-
|
|
375
|
+
// Check status for autoConnect flag
|
|
364
376
|
let status = 'disconnected';
|
|
365
377
|
|
|
366
378
|
let _chainId;
|
|
@@ -378,9 +390,9 @@ class Client {
|
|
|
378
390
|
} // Evaluate initial store values
|
|
379
391
|
|
|
380
392
|
|
|
381
|
-
const connectors_ = typeof
|
|
393
|
+
const connectors_ = typeof connectors === 'function' ? connectors({
|
|
382
394
|
chainId: _chainId
|
|
383
|
-
}) :
|
|
395
|
+
}) : connectors;
|
|
384
396
|
const provider_ = typeof _provider === 'function' ? _provider({
|
|
385
397
|
chainId: _chainId
|
|
386
398
|
}) : _provider;
|
|
@@ -412,7 +424,7 @@ class Client {
|
|
|
412
424
|
})));
|
|
413
425
|
this.config = {
|
|
414
426
|
autoConnect,
|
|
415
|
-
connectors
|
|
427
|
+
connectors,
|
|
416
428
|
provider: _provider,
|
|
417
429
|
storage,
|
|
418
430
|
webSocketProvider: _webSocketProvider
|
|
@@ -421,7 +433,7 @@ class Client {
|
|
|
421
433
|
|
|
422
434
|
base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
423
435
|
|
|
424
|
-
|
|
436
|
+
base._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
425
437
|
}
|
|
426
438
|
|
|
427
439
|
get chains() {
|
|
@@ -467,6 +479,7 @@ class Client {
|
|
|
467
479
|
|
|
468
480
|
clearState() {
|
|
469
481
|
this.setState(x => ({ ...x,
|
|
482
|
+
chains: undefined,
|
|
470
483
|
connector: undefined,
|
|
471
484
|
data: undefined,
|
|
472
485
|
error: undefined,
|
|
@@ -505,6 +518,7 @@ class Client {
|
|
|
505
518
|
|
|
506
519
|
|
|
507
520
|
if (!connected) this.setState(x => ({ ...x,
|
|
521
|
+
data: undefined,
|
|
508
522
|
status: 'disconnected'
|
|
509
523
|
}));
|
|
510
524
|
return this.data;
|
|
@@ -555,14 +569,12 @@ function _addEffects2() {
|
|
|
555
569
|
(_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
|
|
556
570
|
});
|
|
557
571
|
const {
|
|
558
|
-
connectors,
|
|
559
572
|
provider,
|
|
560
573
|
webSocketProvider
|
|
561
574
|
} = this.config;
|
|
562
|
-
const subscribeConnectors = typeof connectors === 'function';
|
|
563
575
|
const subscribeProvider = typeof provider === 'function';
|
|
564
576
|
const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
|
|
565
|
-
if (
|
|
577
|
+
if (subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
|
|
566
578
|
var _data$chain2;
|
|
567
579
|
|
|
568
580
|
let {
|
|
@@ -571,9 +583,6 @@ function _addEffects2() {
|
|
|
571
583
|
return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
|
|
572
584
|
}, chainId => {
|
|
573
585
|
this.setState(x => ({ ...x,
|
|
574
|
-
connectors: subscribeConnectors ? connectors({
|
|
575
|
-
chainId
|
|
576
|
-
}) : x.connectors,
|
|
577
586
|
provider: subscribeProvider ? provider({
|
|
578
587
|
chainId
|
|
579
588
|
}) : x.provider,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { providers } from 'ethers';
|
|
2
1
|
import { Client } from '../../client';
|
|
3
2
|
import { Connector, ConnectorData } from '../../connectors';
|
|
3
|
+
import { Provider } from '../../types';
|
|
4
4
|
export declare type ConnectArgs = {
|
|
5
5
|
/** Connector to connect */
|
|
6
6
|
connector: Connector;
|
|
7
7
|
};
|
|
8
|
-
declare type Data<TProvider extends
|
|
9
|
-
export declare type ConnectResult<TProvider extends
|
|
8
|
+
declare type Data<TProvider extends Provider = Provider> = Required<ConnectorData<TProvider>>;
|
|
9
|
+
export declare type ConnectResult<TProvider extends Provider = Provider> = {
|
|
10
10
|
account: Data<TProvider>['account'];
|
|
11
11
|
chain: Data<TProvider>['chain'];
|
|
12
12
|
connector: Client<TProvider>['connector'];
|
|
13
13
|
provider: Data<TProvider>['provider'];
|
|
14
14
|
};
|
|
15
|
-
export declare function connect<TProvider extends
|
|
15
|
+
export declare function connect<TProvider extends Provider = Provider>({ connector, }: ConnectArgs): Promise<ConnectResult<TProvider>>;
|
|
16
16
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { providers } from 'ethers';
|
|
2
1
|
import { Client, Data } from '../../client';
|
|
3
|
-
|
|
2
|
+
import { Provider } from '../../types';
|
|
3
|
+
export declare type GetAccountResult<TProvider extends Provider = Provider> = {
|
|
4
4
|
address?: Data<TProvider>['account'];
|
|
5
5
|
connector?: Client<TProvider>['connector'];
|
|
6
6
|
};
|
|
7
|
-
export declare function getAccount<TProvider extends
|
|
7
|
+
export declare function getAccount<TProvider extends Provider>(): GetAccountResult<TProvider>;
|
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { BigNumberish, BytesLike } from 'ethers';
|
|
2
|
+
export interface TypedDataDomain {
|
|
3
|
+
name?: string;
|
|
4
|
+
version?: string;
|
|
5
|
+
chainId?: BigNumberish;
|
|
6
|
+
verifyingContract?: string;
|
|
7
|
+
salt?: BytesLike;
|
|
8
|
+
}
|
|
9
|
+
export interface TypedDataField {
|
|
10
|
+
name: string;
|
|
11
|
+
type: string;
|
|
12
|
+
}
|
|
3
13
|
export declare type SignTypedDataArgs = {
|
|
4
14
|
/** Domain or domain signature for origin or contract */
|
|
5
|
-
domain:
|
|
15
|
+
domain: TypedDataDomain;
|
|
6
16
|
/** Named list of all type definitions */
|
|
7
|
-
types:
|
|
17
|
+
types: Record<string, Array<TypedDataField>>;
|
|
8
18
|
/** Data to sign */
|
|
9
|
-
value:
|
|
19
|
+
value: Record<string, any>;
|
|
10
20
|
};
|
|
11
21
|
export declare type SignTypedDataResult = string;
|
|
12
22
|
export declare function signTypedData(args: SignTypedDataArgs): Promise<SignTypedDataResult>;
|
|
13
|
-
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Provider } from '../../types';
|
|
2
2
|
import { GetAccountResult } from './getAccount';
|
|
3
|
-
export declare type WatchAccountCallback<TProvider extends
|
|
4
|
-
export declare function watchAccount<TProvider extends
|
|
3
|
+
export declare type WatchAccountCallback<TProvider extends Provider = Provider> = (data: GetAccountResult<TProvider>) => void;
|
|
4
|
+
export declare function watchAccount<TProvider extends Provider>(callback: WatchAccountCallback<TProvider>): () => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Provider } from '../../types';
|
|
2
2
|
export declare type GetProviderArgs = {
|
|
3
3
|
/** Chain id to use for provider */
|
|
4
4
|
chainId?: number;
|
|
5
5
|
};
|
|
6
|
-
export declare type GetProviderResult<TProvider extends
|
|
7
|
-
export declare function getProvider<TProvider extends
|
|
6
|
+
export declare type GetProviderResult<TProvider extends Provider = Provider> = TProvider;
|
|
7
|
+
export declare function getProvider<TProvider extends Provider = Provider>({ chainId, }?: GetProviderArgs): GetProviderResult<TProvider>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebSocketProvider } from '../../types';
|
|
2
2
|
export declare type GetWebSocketProviderArgs = {
|
|
3
3
|
/** Chain id to use for provider */
|
|
4
4
|
chainId?: number;
|
|
5
5
|
};
|
|
6
|
-
export declare type GetWebSocketProviderResult<TWebSocketProvider extends
|
|
7
|
-
export declare function getWebSocketProvider<TWebSocketProvider extends
|
|
6
|
+
export declare type GetWebSocketProviderResult<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = TWebSocketProvider | undefined;
|
|
7
|
+
export declare function getWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>({ chainId, }?: GetWebSocketProviderArgs): GetWebSocketProviderResult<TWebSocketProvider>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Provider } from '../../types';
|
|
2
2
|
import { GetProviderArgs, GetProviderResult } from './getProvider';
|
|
3
|
-
export declare type WatchProviderCallback<TProvider extends
|
|
4
|
-
export declare function watchProvider<TProvider extends
|
|
3
|
+
export declare type WatchProviderCallback<TProvider extends Provider = Provider> = (provider: GetProviderResult<TProvider>) => void;
|
|
4
|
+
export declare function watchProvider<TProvider extends Provider = Provider>(args: GetProviderArgs, callback: WatchProviderCallback<TProvider>): () => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebSocketProvider } from '../../types';
|
|
2
2
|
import { GetWebSocketProviderArgs, GetWebSocketProviderResult } from './getWebSocketProvider';
|
|
3
|
-
export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends
|
|
4
|
-
export declare function watchWebSocketProvider<TWebSocketProvider extends
|
|
3
|
+
export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = (webSocketProvider: GetWebSocketProviderResult<TWebSocketProvider>) => void;
|
|
4
|
+
export declare function watchWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(args: GetWebSocketProviderArgs, callback: WatchWebSocketProviderCallback<TWebSocketProvider>): () => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { Chain, ChainProvider, Provider, WebSocketProvider } from '../types';
|
|
3
|
+
export declare type ConfigureChainsConfig = {
|
|
4
|
+
stallTimeout?: number;
|
|
5
|
+
} & ({
|
|
6
|
+
targetQuorum?: number;
|
|
7
|
+
minQuorum?: never;
|
|
8
|
+
} | {
|
|
9
|
+
targetQuorum: number;
|
|
10
|
+
minQuorum?: number;
|
|
11
|
+
});
|
|
12
|
+
export declare function configureChains<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(defaultChains: Chain[], providers: ChainProvider<TProvider, TWebSocketProvider>[], { minQuorum, targetQuorum, stallTimeout }?: ConfigureChainsConfig): {
|
|
13
|
+
readonly chains: Chain[];
|
|
14
|
+
readonly provider: ({ chainId }: {
|
|
15
|
+
chainId?: number | undefined;
|
|
16
|
+
}) => TProvider | providers.FallbackProvider;
|
|
17
|
+
readonly webSocketProvider: ({ chainId }: {
|
|
18
|
+
chainId?: number | undefined;
|
|
19
|
+
}) => TWebSocketProvider | undefined;
|
|
20
|
+
};
|