@wagmi/core 0.2.3 → 0.3.0

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.
Files changed (73) hide show
  1. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -10
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -10
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +28 -10
  4. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +20 -11
  5. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +20 -11
  6. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +15 -6
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +7 -6
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +7 -6
  9. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +5 -4
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +26 -8
  11. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +26 -8
  12. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +24 -6
  13. package/dist/{base-5812b724.cjs.dev.js → base-3a506159.cjs.dev.js} +129 -67
  14. package/dist/{base-159de546.esm.js → base-997b4fec.esm.js} +98 -38
  15. package/dist/{base-59f3457e.cjs.prod.js → base-cb4198f3.cjs.prod.js} +129 -67
  16. package/dist/{client-f77a08e4.cjs.dev.js → client-08120ec7.cjs.dev.js} +35 -23
  17. package/dist/{client-4d8337e7.cjs.prod.js → client-332f5c43.cjs.prod.js} +35 -23
  18. package/dist/{client-5d456446.esm.js → client-d8d4f4fc.esm.js} +33 -21
  19. package/dist/declarations/src/actions/accounts/connect.d.ts +4 -4
  20. package/dist/declarations/src/actions/accounts/getAccount.d.ts +3 -3
  21. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +15 -6
  22. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -3
  23. package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -3
  24. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -3
  25. package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -3
  26. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -3
  27. package/dist/declarations/src/chains/configureChains.d.ts +20 -0
  28. package/dist/declarations/src/chains/index.d.ts +2 -0
  29. package/dist/declarations/src/client.d.ts +11 -11
  30. package/dist/declarations/src/connectors/injected.d.ts +1 -1
  31. package/dist/declarations/src/constants/index.d.ts +1 -1
  32. package/dist/declarations/src/errors.d.ts +48 -4
  33. package/dist/declarations/src/index.d.ts +8 -6
  34. package/dist/declarations/src/providers/alchemy.d.ts +7 -0
  35. package/dist/declarations/src/providers/infura.d.ts +7 -0
  36. package/dist/declarations/src/providers/jsonRpc.d.ts +11 -0
  37. package/dist/declarations/src/providers/public.d.ts +6 -0
  38. package/dist/declarations/src/storage.d.ts +2 -2
  39. package/dist/declarations/src/types/index.d.ts +67 -27
  40. package/dist/rpcs-7cfbd91c.esm.js +30 -0
  41. package/dist/rpcs-9c4eb960.cjs.dev.js +35 -0
  42. package/dist/rpcs-b3c52116.cjs.prod.js +35 -0
  43. package/dist/wagmi-core.cjs.dev.js +126 -27
  44. package/dist/wagmi-core.cjs.prod.js +126 -27
  45. package/dist/wagmi-core.esm.js +124 -26
  46. package/package.json +29 -8
  47. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +1 -0
  48. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +38 -0
  49. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +7 -0
  50. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +38 -0
  51. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +34 -0
  52. package/providers/alchemy/package.json +4 -0
  53. package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +1 -0
  54. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +38 -0
  55. package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +7 -0
  56. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +38 -0
  57. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +34 -0
  58. package/providers/infura/package.json +4 -0
  59. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +1 -0
  60. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +45 -0
  61. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +7 -0
  62. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +45 -0
  63. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +41 -0
  64. package/providers/jsonRpc/package.json +4 -0
  65. package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +1 -0
  66. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +34 -0
  67. package/providers/public/dist/wagmi-core-providers-public.cjs.js +7 -0
  68. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +34 -0
  69. package/providers/public/dist/wagmi-core-providers-public.esm.js +30 -0
  70. package/providers/public/package.json +4 -0
  71. package/dist/classPrivateMethodGet-55c9909f.esm.js +0 -16
  72. package/dist/classPrivateMethodGet-976c8120.cjs.dev.js +0 -19
  73. package/dist/classPrivateMethodGet-d7330ed7.cjs.prod.js +0 -19
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var classPrivateMethodGet = require('./classPrivateMethodGet-976c8120.cjs.dev.js');
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');
@@ -17,16 +16,19 @@ function getInjectedName(ethereum) {
17
16
  if (!ethereum) return 'Injected';
18
17
 
19
18
  const getName = provider => {
20
- if (provider.isMetaMask && !provider.isBraveWallet) return 'MetaMask';
21
19
  if (provider.isBraveWallet) return 'Brave Wallet';
22
20
  if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
23
21
  if (provider.isFrame) return 'Frame';
22
+ if (provider.isOpera) return 'Opera';
24
23
  if (provider.isTally) return 'Tally';
24
+ if (provider.isTokenary) return 'Tokenary';
25
25
  if (provider.isTrust) return 'Trust Wallet';
26
- };
26
+ if (provider.isMetaMask) return 'MetaMask';
27
+ }; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
28
+
27
29
 
28
30
  if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
29
- // Deduplicated names using Set
31
+ // Deduplicate names using Set
30
32
  // Coinbase Wallet puts multiple providers in `ethereum.providers`
31
33
  const nameSet = new Set();
32
34
  let unknownCount = 1;
@@ -61,6 +63,8 @@ const shimKey = 'injected.shimDisconnect';
61
63
 
62
64
  var _provider = /*#__PURE__*/new WeakMap();
63
65
 
66
+ var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
67
+
64
68
  class InjectedConnector extends base.Connector {
65
69
  constructor(config) {
66
70
  super({ ...config,
@@ -70,6 +74,8 @@ class InjectedConnector extends base.Connector {
70
74
  }
71
75
  });
72
76
 
77
+ base._classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
78
+
73
79
  base._defineProperty(this, "id", void 0);
74
80
 
75
81
  base._defineProperty(this, "name", void 0);
@@ -148,7 +154,8 @@ class InjectedConnector extends base.Connector {
148
154
  provider
149
155
  };
150
156
  } catch (error) {
151
- if (error.code === 4001) throw new base.UserRejectedRequestError();
157
+ if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
158
+ if (error.code === -32002) throw new base.ResourceUnavailableError(error);
152
159
  throw error;
153
160
  }
154
161
  }
@@ -227,16 +234,17 @@ class InjectedConnector extends base.Connector {
227
234
  return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
228
235
  id: chainId,
229
236
  name: "Chain ".concat(id),
237
+ network: "".concat(id),
230
238
  rpcUrls: {
231
239
  default: ''
232
240
  }
233
241
  };
234
242
  } catch (error) {
235
- // Indicates chain is not added to provider
243
+ const chain = this.chains.find(x => x.id === chainId);
244
+ if (!chain) throw new base.ChainNotConfiguredError(); // Indicates chain is not added to provider
245
+
236
246
  if (error.code === 4902) {
237
247
  try {
238
- const chain = this.chains.find(x => x.id === chainId);
239
- if (!chain) throw new base.ChainNotConfiguredError();
240
248
  await provider.request({
241
249
  method: 'wallet_addEthereumChain',
242
250
  params: [{
@@ -249,9 +257,13 @@ class InjectedConnector extends base.Connector {
249
257
  });
250
258
  return chain;
251
259
  } catch (addError) {
260
+ if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new base.UserRejectedRequestError(error);
252
261
  throw new base.AddChainError();
253
262
  }
254
- } else if (error.code === 4001) throw new base.UserRejectedRequestError();else throw new base.SwitchChainError();
263
+ }
264
+
265
+ if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
266
+ throw new base.SwitchChainError(error);
255
267
  }
256
268
  }
257
269
 
@@ -280,6 +292,10 @@ class InjectedConnector extends base.Connector {
280
292
 
281
293
  }
282
294
 
295
+ function _isUserRejectedRequestError2(error) {
296
+ return error.code === 4001;
297
+ }
298
+
283
299
  const noopStorage = {
284
300
  getItem: _key => '',
285
301
  setItem: (_key, _value) => null,
@@ -329,7 +345,7 @@ class Client {
329
345
 
330
346
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
331
347
 
332
- classPrivateMethodGet._classPrivateMethodInitSpec(this, _addEffects);
348
+ base._classPrivateMethodInitSpec(this, _addEffects);
333
349
 
334
350
  base._defineProperty(this, "config", void 0);
335
351
 
@@ -344,8 +360,7 @@ class Client {
344
360
 
345
361
  // Set default values for config
346
362
  const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
347
-
348
- const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
363
+ const connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
349
364
 
350
365
  const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
351
366
  try {
@@ -377,9 +392,9 @@ class Client {
377
392
  } // Evaluate initial store values
378
393
 
379
394
 
380
- const connectors_ = typeof _connectors === 'function' ? _connectors({
395
+ const connectors_ = typeof connectors === 'function' ? connectors({
381
396
  chainId: _chainId
382
- }) : _connectors;
397
+ }) : connectors;
383
398
  const provider_ = typeof _provider === 'function' ? _provider({
384
399
  chainId: _chainId
385
400
  }) : _provider;
@@ -411,7 +426,7 @@ class Client {
411
426
  })));
412
427
  this.config = {
413
428
  autoConnect,
414
- connectors: _connectors,
429
+ connectors,
415
430
  provider: _provider,
416
431
  storage,
417
432
  webSocketProvider: _webSocketProvider
@@ -420,7 +435,7 @@ class Client {
420
435
 
421
436
  base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
422
437
 
423
- classPrivateMethodGet._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
438
+ base._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
424
439
  }
425
440
 
426
441
  get chains() {
@@ -466,6 +481,7 @@ class Client {
466
481
 
467
482
  clearState() {
468
483
  this.setState(x => ({ ...x,
484
+ chains: undefined,
469
485
  connector: undefined,
470
486
  data: undefined,
471
487
  error: undefined,
@@ -504,6 +520,7 @@ class Client {
504
520
 
505
521
 
506
522
  if (!connected) this.setState(x => ({ ...x,
523
+ data: undefined,
507
524
  status: 'disconnected'
508
525
  }));
509
526
  return this.data;
@@ -554,14 +571,12 @@ function _addEffects2() {
554
571
  (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
555
572
  });
556
573
  const {
557
- connectors,
558
574
  provider,
559
575
  webSocketProvider
560
576
  } = this.config;
561
- const subscribeConnectors = typeof connectors === 'function';
562
577
  const subscribeProvider = typeof provider === 'function';
563
578
  const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
564
- if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
579
+ if (subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
565
580
  var _data$chain2;
566
581
 
567
582
  let {
@@ -570,9 +585,6 @@ function _addEffects2() {
570
585
  return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
571
586
  }, chainId => {
572
587
  this.setState(x => ({ ...x,
573
- connectors: subscribeConnectors ? connectors({
574
- chainId
575
- }) : x.connectors,
576
588
  provider: subscribeProvider ? provider({
577
589
  chainId
578
590
  }) : x.provider,
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var classPrivateMethodGet = require('./classPrivateMethodGet-d7330ed7.cjs.prod.js');
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');
@@ -17,16 +16,19 @@ function getInjectedName(ethereum) {
17
16
  if (!ethereum) return 'Injected';
18
17
 
19
18
  const getName = provider => {
20
- if (provider.isMetaMask && !provider.isBraveWallet) return 'MetaMask';
21
19
  if (provider.isBraveWallet) return 'Brave Wallet';
22
20
  if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
23
21
  if (provider.isFrame) return 'Frame';
22
+ if (provider.isOpera) return 'Opera';
24
23
  if (provider.isTally) return 'Tally';
24
+ if (provider.isTokenary) return 'Tokenary';
25
25
  if (provider.isTrust) return 'Trust Wallet';
26
- };
26
+ if (provider.isMetaMask) return 'MetaMask';
27
+ }; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
28
+
27
29
 
28
30
  if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
29
- // Deduplicated names using Set
31
+ // Deduplicate names using Set
30
32
  // Coinbase Wallet puts multiple providers in `ethereum.providers`
31
33
  const nameSet = new Set();
32
34
  let unknownCount = 1;
@@ -61,6 +63,8 @@ const shimKey = 'injected.shimDisconnect';
61
63
 
62
64
  var _provider = /*#__PURE__*/new WeakMap();
63
65
 
66
+ var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
67
+
64
68
  class InjectedConnector extends base.Connector {
65
69
  constructor(config) {
66
70
  super({ ...config,
@@ -70,6 +74,8 @@ class InjectedConnector extends base.Connector {
70
74
  }
71
75
  });
72
76
 
77
+ base._classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
78
+
73
79
  base._defineProperty(this, "id", void 0);
74
80
 
75
81
  base._defineProperty(this, "name", void 0);
@@ -148,7 +154,8 @@ class InjectedConnector extends base.Connector {
148
154
  provider
149
155
  };
150
156
  } catch (error) {
151
- if (error.code === 4001) throw new base.UserRejectedRequestError();
157
+ if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
158
+ if (error.code === -32002) throw new base.ResourceUnavailableError(error);
152
159
  throw error;
153
160
  }
154
161
  }
@@ -227,16 +234,17 @@ class InjectedConnector extends base.Connector {
227
234
  return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
228
235
  id: chainId,
229
236
  name: "Chain ".concat(id),
237
+ network: "".concat(id),
230
238
  rpcUrls: {
231
239
  default: ''
232
240
  }
233
241
  };
234
242
  } catch (error) {
235
- // Indicates chain is not added to provider
243
+ const chain = this.chains.find(x => x.id === chainId);
244
+ if (!chain) throw new base.ChainNotConfiguredError(); // Indicates chain is not added to provider
245
+
236
246
  if (error.code === 4902) {
237
247
  try {
238
- const chain = this.chains.find(x => x.id === chainId);
239
- if (!chain) throw new base.ChainNotConfiguredError();
240
248
  await provider.request({
241
249
  method: 'wallet_addEthereumChain',
242
250
  params: [{
@@ -249,9 +257,13 @@ class InjectedConnector extends base.Connector {
249
257
  });
250
258
  return chain;
251
259
  } catch (addError) {
260
+ if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new base.UserRejectedRequestError(error);
252
261
  throw new base.AddChainError();
253
262
  }
254
- } else if (error.code === 4001) throw new base.UserRejectedRequestError();else throw new base.SwitchChainError();
263
+ }
264
+
265
+ if (base._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new base.UserRejectedRequestError(error);
266
+ throw new base.SwitchChainError(error);
255
267
  }
256
268
  }
257
269
 
@@ -280,6 +292,10 @@ class InjectedConnector extends base.Connector {
280
292
 
281
293
  }
282
294
 
295
+ function _isUserRejectedRequestError2(error) {
296
+ return error.code === 4001;
297
+ }
298
+
283
299
  const noopStorage = {
284
300
  getItem: _key => '',
285
301
  setItem: (_key, _value) => null,
@@ -329,7 +345,7 @@ class Client {
329
345
 
330
346
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
331
347
 
332
- classPrivateMethodGet._classPrivateMethodInitSpec(this, _addEffects);
348
+ base._classPrivateMethodInitSpec(this, _addEffects);
333
349
 
334
350
  base._defineProperty(this, "config", void 0);
335
351
 
@@ -344,8 +360,7 @@ class Client {
344
360
 
345
361
  // Set default values for config
346
362
  const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
347
-
348
- const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
363
+ const connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
349
364
 
350
365
  const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
351
366
  try {
@@ -377,9 +392,9 @@ class Client {
377
392
  } // Evaluate initial store values
378
393
 
379
394
 
380
- const connectors_ = typeof _connectors === 'function' ? _connectors({
395
+ const connectors_ = typeof connectors === 'function' ? connectors({
381
396
  chainId: _chainId
382
- }) : _connectors;
397
+ }) : connectors;
383
398
  const provider_ = typeof _provider === 'function' ? _provider({
384
399
  chainId: _chainId
385
400
  }) : _provider;
@@ -411,7 +426,7 @@ class Client {
411
426
  })));
412
427
  this.config = {
413
428
  autoConnect,
414
- connectors: _connectors,
429
+ connectors,
415
430
  provider: _provider,
416
431
  storage,
417
432
  webSocketProvider: _webSocketProvider
@@ -420,7 +435,7 @@ class Client {
420
435
 
421
436
  base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
422
437
 
423
- classPrivateMethodGet._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
438
+ base._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
424
439
  }
425
440
 
426
441
  get chains() {
@@ -466,6 +481,7 @@ class Client {
466
481
 
467
482
  clearState() {
468
483
  this.setState(x => ({ ...x,
484
+ chains: undefined,
469
485
  connector: undefined,
470
486
  data: undefined,
471
487
  error: undefined,
@@ -504,6 +520,7 @@ class Client {
504
520
 
505
521
 
506
522
  if (!connected) this.setState(x => ({ ...x,
523
+ data: undefined,
507
524
  status: 'disconnected'
508
525
  }));
509
526
  return this.data;
@@ -554,14 +571,12 @@ function _addEffects2() {
554
571
  (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
555
572
  });
556
573
  const {
557
- connectors,
558
574
  provider,
559
575
  webSocketProvider
560
576
  } = this.config;
561
- const subscribeConnectors = typeof connectors === 'function';
562
577
  const subscribeProvider = typeof provider === 'function';
563
578
  const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
564
- if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
579
+ if (subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
565
580
  var _data$chain2;
566
581
 
567
582
  let {
@@ -570,9 +585,6 @@ function _addEffects2() {
570
585
  return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
571
586
  }, chainId => {
572
587
  this.setState(x => ({ ...x,
573
- connectors: subscribeConnectors ? connectors({
574
- chainId
575
- }) : x.connectors,
576
588
  provider: subscribeProvider ? provider({
577
589
  chainId
578
590
  }) : x.provider,
@@ -1,5 +1,4 @@
1
- import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-55c9909f.esm.js';
2
- import { c as Connector, _ as _defineProperty, m as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, o as _classPrivateFieldSet, p as _classPrivateFieldGet, a as allChains, k as ChainNotConfiguredError, A as AddChainError, l as SwitchChainError } from './base-159de546.esm.js';
1
+ import { c as Connector, _ as _classPrivateMethodInitSpec, l as _defineProperty, m as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, o as _classPrivateMethodGet, U as UserRejectedRequestError, R as ResourceUnavailableError, p as _classPrivateFieldSet, q as _classPrivateFieldGet, a as allChains, i as ChainNotConfiguredError, A as AddChainError, k as SwitchChainError } from './base-997b4fec.esm.js';
3
2
  import { providers, getDefaultProvider } from 'ethers';
4
3
  import create from 'zustand/vanilla';
5
4
  import { subscribeWithSelector, persist } from 'zustand/middleware';
@@ -11,16 +10,19 @@ function getInjectedName(ethereum) {
11
10
  if (!ethereum) return 'Injected';
12
11
 
13
12
  const getName = provider => {
14
- if (provider.isMetaMask && !provider.isBraveWallet) return 'MetaMask';
15
13
  if (provider.isBraveWallet) return 'Brave Wallet';
16
14
  if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
17
15
  if (provider.isFrame) return 'Frame';
16
+ if (provider.isOpera) return 'Opera';
18
17
  if (provider.isTally) return 'Tally';
18
+ if (provider.isTokenary) return 'Tokenary';
19
19
  if (provider.isTrust) return 'Trust Wallet';
20
- };
20
+ if (provider.isMetaMask) return 'MetaMask';
21
+ }; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
22
+
21
23
 
22
24
  if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
23
- // Deduplicated names using Set
25
+ // Deduplicate names using Set
24
26
  // Coinbase Wallet puts multiple providers in `ethereum.providers`
25
27
  const nameSet = new Set();
26
28
  let unknownCount = 1;
@@ -55,6 +57,8 @@ const shimKey = 'injected.shimDisconnect';
55
57
 
56
58
  var _provider = /*#__PURE__*/new WeakMap();
57
59
 
60
+ var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
61
+
58
62
  class InjectedConnector extends Connector {
59
63
  constructor(config) {
60
64
  super({ ...config,
@@ -64,6 +68,8 @@ class InjectedConnector extends Connector {
64
68
  }
65
69
  });
66
70
 
71
+ _classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
72
+
67
73
  _defineProperty(this, "id", void 0);
68
74
 
69
75
  _defineProperty(this, "name", void 0);
@@ -142,7 +148,8 @@ class InjectedConnector extends Connector {
142
148
  provider
143
149
  };
144
150
  } catch (error) {
145
- if (error.code === 4001) throw new UserRejectedRequestError();
151
+ if (_classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new UserRejectedRequestError(error);
152
+ if (error.code === -32002) throw new ResourceUnavailableError(error);
146
153
  throw error;
147
154
  }
148
155
  }
@@ -221,16 +228,17 @@ class InjectedConnector extends Connector {
221
228
  return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
222
229
  id: chainId,
223
230
  name: "Chain ".concat(id),
231
+ network: "".concat(id),
224
232
  rpcUrls: {
225
233
  default: ''
226
234
  }
227
235
  };
228
236
  } catch (error) {
229
- // Indicates chain is not added to provider
237
+ const chain = this.chains.find(x => x.id === chainId);
238
+ if (!chain) throw new ChainNotConfiguredError(); // Indicates chain is not added to provider
239
+
230
240
  if (error.code === 4902) {
231
241
  try {
232
- const chain = this.chains.find(x => x.id === chainId);
233
- if (!chain) throw new ChainNotConfiguredError();
234
242
  await provider.request({
235
243
  method: 'wallet_addEthereumChain',
236
244
  params: [{
@@ -243,9 +251,13 @@ class InjectedConnector extends Connector {
243
251
  });
244
252
  return chain;
245
253
  } catch (addError) {
254
+ if (_classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new UserRejectedRequestError(error);
246
255
  throw new AddChainError();
247
256
  }
248
- } else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
257
+ }
258
+
259
+ if (_classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new UserRejectedRequestError(error);
260
+ throw new SwitchChainError(error);
249
261
  }
250
262
  }
251
263
 
@@ -274,6 +286,10 @@ class InjectedConnector extends Connector {
274
286
 
275
287
  }
276
288
 
289
+ function _isUserRejectedRequestError2(error) {
290
+ return error.code === 4001;
291
+ }
292
+
277
293
  const noopStorage = {
278
294
  getItem: _key => '',
279
295
  setItem: (_key, _value) => null,
@@ -338,8 +354,7 @@ class Client {
338
354
 
339
355
  // Set default values for config
340
356
  const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
341
-
342
- const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
357
+ const connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
343
358
 
344
359
  const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
345
360
  try {
@@ -371,9 +386,9 @@ class Client {
371
386
  } // Evaluate initial store values
372
387
 
373
388
 
374
- const connectors_ = typeof _connectors === 'function' ? _connectors({
389
+ const connectors_ = typeof connectors === 'function' ? connectors({
375
390
  chainId: _chainId
376
- }) : _connectors;
391
+ }) : connectors;
377
392
  const provider_ = typeof _provider === 'function' ? _provider({
378
393
  chainId: _chainId
379
394
  }) : _provider;
@@ -405,7 +420,7 @@ class Client {
405
420
  })));
406
421
  this.config = {
407
422
  autoConnect,
408
- connectors: _connectors,
423
+ connectors,
409
424
  provider: _provider,
410
425
  storage,
411
426
  webSocketProvider: _webSocketProvider
@@ -460,6 +475,7 @@ class Client {
460
475
 
461
476
  clearState() {
462
477
  this.setState(x => ({ ...x,
478
+ chains: undefined,
463
479
  connector: undefined,
464
480
  data: undefined,
465
481
  error: undefined,
@@ -498,6 +514,7 @@ class Client {
498
514
 
499
515
 
500
516
  if (!connected) this.setState(x => ({ ...x,
517
+ data: undefined,
501
518
  status: 'disconnected'
502
519
  }));
503
520
  return this.data;
@@ -548,14 +565,12 @@ function _addEffects2() {
548
565
  (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
549
566
  });
550
567
  const {
551
- connectors,
552
568
  provider,
553
569
  webSocketProvider
554
570
  } = this.config;
555
- const subscribeConnectors = typeof connectors === 'function';
556
571
  const subscribeProvider = typeof provider === 'function';
557
572
  const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
558
- if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
573
+ if (subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
559
574
  var _data$chain2;
560
575
 
561
576
  let {
@@ -564,9 +579,6 @@ function _addEffects2() {
564
579
  return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
565
580
  }, chainId => {
566
581
  this.setState(x => ({ ...x,
567
- connectors: subscribeConnectors ? connectors({
568
- chainId
569
- }) : x.connectors,
570
582
  provider: subscribeProvider ? provider({
571
583
  chainId
572
584
  }) : 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 providers.BaseProvider = providers.BaseProvider> = Required<ConnectorData<TProvider>>;
9
- export declare type ConnectResult<TProvider extends providers.BaseProvider = providers.BaseProvider> = {
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 providers.BaseProvider>({ connector, }: ConnectArgs): Promise<ConnectResult<TProvider>>;
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
- export declare type GetAccountResult<TProvider extends providers.BaseProvider = providers.BaseProvider> = {
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 providers.BaseProvider>(): GetAccountResult<TProvider>;
7
+ export declare function getAccount<TProvider extends Provider>(): GetAccountResult<TProvider>;
@@ -1,13 +1,22 @@
1
- import type { providers } from 'ethers';
2
- declare type SignTypedData = Parameters<providers.JsonRpcSigner['_signTypedData']>;
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: SignTypedData[0];
15
+ domain: TypedDataDomain;
6
16
  /** Named list of all type definitions */
7
- types: SignTypedData[1];
17
+ types: Record<string, Array<TypedDataField>>;
8
18
  /** Data to sign */
9
- value: SignTypedData[2];
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 { providers } from 'ethers';
1
+ import { Provider } from '../../types';
2
2
  import { GetAccountResult } from './getAccount';
3
- export declare type WatchAccountCallback<TProvider extends providers.BaseProvider = providers.BaseProvider> = (data: GetAccountResult<TProvider>) => void;
4
- export declare function watchAccount<TProvider extends providers.BaseProvider>(callback: WatchAccountCallback<TProvider>): () => void;
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 { providers } from 'ethers';
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 providers.BaseProvider = providers.BaseProvider> = TProvider;
7
- export declare function getProvider<TProvider extends providers.BaseProvider = providers.BaseProvider>({ chainId }?: GetProviderArgs): GetProviderResult<TProvider>;
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 { providers } from 'ethers';
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 providers.WebSocketProvider = providers.WebSocketProvider> = TWebSocketProvider | undefined;
7
- export declare function getWebSocketProvider<TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider>({ chainId, }?: GetWebSocketProviderArgs): GetWebSocketProviderResult<TWebSocketProvider>;
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 { providers } from 'ethers';
1
+ import { Provider } from '../../types';
2
2
  import { GetProviderArgs, GetProviderResult } from './getProvider';
3
- export declare type WatchProviderCallback<TProvider extends providers.BaseProvider = providers.BaseProvider> = (provider: GetProviderResult<TProvider>) => void;
4
- export declare function watchProvider<TProvider extends providers.BaseProvider = providers.BaseProvider>(args: GetProviderArgs, callback: WatchProviderCallback<TProvider>): () => void;
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;