@wagmi/core 0.4.9 → 0.5.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.
Files changed (77) hide show
  1. package/README.md +6 -6
  2. package/chains/dist/wagmi-core-chains.cjs.dev.js +4 -2
  3. package/chains/dist/wagmi-core-chains.cjs.prod.js +4 -2
  4. package/chains/dist/wagmi-core-chains.esm.js +2 -2
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -26
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -26
  7. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +5 -3
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +22 -23
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +22 -23
  10. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +5 -6
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +33 -31
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +33 -31
  13. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +6 -4
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +24 -25
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +24 -25
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +5 -6
  17. package/dist/{chains-b8e32454.cjs.prod.js → chains-acd25777.cjs.prod.js} +68 -9
  18. package/dist/{chains-174cf4b4.esm.js → chains-ce86f5e0.esm.js} +67 -10
  19. package/dist/{chains-ba6218fb.cjs.dev.js → chains-e81629e7.cjs.dev.js} +68 -9
  20. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -1
  21. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -3
  22. package/dist/declarations/src/actions/contracts/deprecatedWriteContract.d.ts +16 -0
  23. package/dist/declarations/src/actions/{tokens → contracts}/fetchToken.d.ts +0 -0
  24. package/dist/declarations/src/actions/contracts/index.d.ts +4 -1
  25. package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +37 -0
  26. package/dist/declarations/src/actions/contracts/writeContract.d.ts +44 -8
  27. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +2 -1
  28. package/dist/declarations/src/actions/index.d.ts +2 -3
  29. package/dist/declarations/src/actions/transactions/deprecatedSendTransaction.d.ts +12 -0
  30. package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +21 -0
  31. package/dist/declarations/src/actions/transactions/index.d.ts +4 -1
  32. package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +36 -0
  33. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +43 -8
  34. package/dist/declarations/src/chains.d.ts +1 -1
  35. package/dist/declarations/src/client.d.ts +2 -2
  36. package/dist/declarations/src/connectors/base.d.ts +1 -2
  37. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +2 -2
  38. package/dist/declarations/src/connectors/injected.d.ts +1 -1
  39. package/dist/declarations/src/connectors/mock/provider.d.ts +3 -2
  40. package/dist/declarations/src/connectors/walletConnect.d.ts +3 -2
  41. package/dist/declarations/src/constants/chains.d.ts +5 -0
  42. package/dist/declarations/src/constants/index.d.ts +1 -1
  43. package/dist/declarations/src/constants/rpcs.d.ts +5 -5
  44. package/dist/declarations/src/errors.d.ts +10 -3
  45. package/dist/declarations/src/index.d.ts +4 -4
  46. package/dist/declarations/src/providers/alchemy.d.ts +2 -3
  47. package/dist/declarations/src/providers/infura.d.ts +2 -3
  48. package/dist/declarations/src/providers/jsonRpc.d.ts +1 -2
  49. package/dist/declarations/src/providers/public.d.ts +2 -4
  50. package/dist/declarations/src/types/index.d.ts +6 -1
  51. package/dist/declarations/src/utils/configureChains.d.ts +3 -1
  52. package/dist/{client-fbdcbdb2.esm.js → getProvider-073f640f.esm.js} +369 -3
  53. package/dist/{client-4983a639.cjs.dev.js → getProvider-5c497ca0.cjs.dev.js} +436 -45
  54. package/dist/{client-dfad744f.cjs.prod.js → getProvider-868752e4.cjs.prod.js} +436 -45
  55. package/dist/{rpcs-1fd0a12f.cjs.prod.js → rpcs-3cf5a783.cjs.dev.js} +18 -12
  56. package/dist/{rpcs-f1d24f0e.cjs.dev.js → rpcs-afd1cc09.cjs.prod.js} +18 -12
  57. package/dist/{rpcs-b73a8f60.esm.js → rpcs-e837abf2.esm.js} +17 -11
  58. package/dist/wagmi-core.cjs.dev.js +586 -308
  59. package/dist/wagmi-core.cjs.prod.js +586 -308
  60. package/dist/wagmi-core.esm.js +493 -222
  61. package/package.json +9 -5
  62. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +5 -7
  63. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +5 -7
  64. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +5 -7
  65. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +5 -7
  66. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +5 -7
  67. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +5 -7
  68. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -2
  69. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -2
  70. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -2
  71. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -2
  72. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -2
  73. package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -2
  74. package/dist/base-337e6424.cjs.prod.js +0 -343
  75. package/dist/base-bd337280.cjs.dev.js +0 -343
  76. package/dist/base-f1bbf263.esm.js +0 -316
  77. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
@@ -1,14 +1,313 @@
1
1
  'use strict';
2
2
 
3
- var base = require('./base-337e6424.cjs.prod.js');
4
- var create = require('zustand/vanilla');
5
3
  var middleware = require('zustand/middleware');
4
+ var create = require('zustand/vanilla');
6
5
  var ethers = require('ethers');
7
6
  var utils = require('ethers/lib/utils');
7
+ var EventEmitter = require('eventemitter3');
8
+ var chains = require('./chains-acd25777.cjs.prod.js');
8
9
 
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
10
11
 
11
12
  var create__default = /*#__PURE__*/_interopDefault(create);
13
+ var EventEmitter__default = /*#__PURE__*/_interopDefault(EventEmitter);
14
+
15
+ function _checkPrivateRedeclaration(obj, privateCollection) {
16
+ if (privateCollection.has(obj)) {
17
+ throw new TypeError("Cannot initialize the same private elements twice on an object");
18
+ }
19
+ }
20
+
21
+ function _classPrivateMethodInitSpec(obj, privateSet) {
22
+ _checkPrivateRedeclaration(obj, privateSet);
23
+ privateSet.add(obj);
24
+ }
25
+
26
+ function _classPrivateFieldInitSpec(obj, privateMap, value) {
27
+ _checkPrivateRedeclaration(obj, privateMap);
28
+ privateMap.set(obj, value);
29
+ }
30
+
31
+ function _defineProperty(obj, key, value) {
32
+ if (key in obj) {
33
+ Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ } else {
40
+ obj[key] = value;
41
+ }
42
+
43
+ return obj;
44
+ }
45
+
46
+ function _classApplyDescriptorGet(receiver, descriptor) {
47
+ if (descriptor.get) {
48
+ return descriptor.get.call(receiver);
49
+ }
50
+
51
+ return descriptor.value;
52
+ }
53
+
54
+ function _classExtractFieldDescriptor(receiver, privateMap, action) {
55
+ if (!privateMap.has(receiver)) {
56
+ throw new TypeError("attempted to " + action + " private field on non-instance");
57
+ }
58
+
59
+ return privateMap.get(receiver);
60
+ }
61
+
62
+ function _classPrivateFieldGet(receiver, privateMap) {
63
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
64
+ return _classApplyDescriptorGet(receiver, descriptor);
65
+ }
66
+
67
+ function _classPrivateMethodGet(receiver, privateSet, fn) {
68
+ if (!privateSet.has(receiver)) {
69
+ throw new TypeError("attempted to get private field on non-instance");
70
+ }
71
+
72
+ return fn;
73
+ }
74
+
75
+ function _classApplyDescriptorSet(receiver, descriptor, value) {
76
+ if (descriptor.set) {
77
+ descriptor.set.call(receiver, value);
78
+ } else {
79
+ if (!descriptor.writable) {
80
+ throw new TypeError("attempted to set read only private field");
81
+ }
82
+
83
+ descriptor.value = value;
84
+ }
85
+ }
86
+
87
+ function _classPrivateFieldSet(receiver, privateMap, value) {
88
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
89
+ _classApplyDescriptorSet(receiver, descriptor, value);
90
+ return value;
91
+ }
92
+
93
+ /**
94
+ * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
95
+ * @see https://eips.ethereum.org/EIPS/eip-1474
96
+ */
97
+ class RpcError extends Error {
98
+ constructor(
99
+ /** Number error code */
100
+ code,
101
+ /** Human-readable string */
102
+ message,
103
+ /** Low-level error */
104
+ internal,
105
+ /** Other useful information about error */
106
+ data) {
107
+ if (!Number.isInteger(code)) throw new Error('"code" must be an integer.');
108
+ if (!message || typeof message !== 'string') throw new Error('"message" must be a nonempty string.');
109
+ super(message);
110
+
111
+ _defineProperty(this, "code", void 0);
112
+
113
+ _defineProperty(this, "data", void 0);
114
+
115
+ _defineProperty(this, "internal", void 0);
116
+
117
+ this.code = code;
118
+ this.data = data;
119
+ this.internal = internal;
120
+ }
121
+
122
+ }
123
+ /**
124
+ * Error subclass implementing Ethereum Provider errors per EIP-1193.
125
+ * @see https://eips.ethereum.org/EIPS/eip-1193
126
+ */
127
+
128
+ class ProviderRpcError extends RpcError {
129
+ /**
130
+ * Create an Ethereum Provider JSON-RPC error.
131
+ * `code` must be an integer in the 1000 <= 4999 range.
132
+ */
133
+ constructor(
134
+ /**
135
+ * Number error code
136
+ * @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
137
+ */
138
+ code,
139
+ /** Human-readable string */
140
+ message,
141
+ /** Low-level error */
142
+ internal,
143
+ /** Other useful information about error */
144
+ data) {
145
+ if (!(Number.isInteger(code) && code >= 1000 && code <= 4999)) throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');
146
+ super(code, message, internal, data);
147
+ }
148
+
149
+ }
150
+ class AddChainError extends Error {
151
+ constructor() {
152
+ super(...arguments);
153
+
154
+ _defineProperty(this, "name", 'AddChainError');
155
+
156
+ _defineProperty(this, "message", 'Error adding chain');
157
+ }
158
+
159
+ }
160
+ class ChainDoesNotSupportMulticallError extends Error {
161
+ constructor(_ref) {
162
+ let {
163
+ blockNumber,
164
+ chain
165
+ } = _ref;
166
+ super("Chain \"".concat(chain.name, "\" does not support multicall").concat(blockNumber ? " on block ".concat(blockNumber) : '', "."));
167
+
168
+ _defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
169
+ }
170
+
171
+ }
172
+ class ChainMismatchError extends Error {
173
+ constructor(_ref2) {
174
+ let {
175
+ activeChain,
176
+ targetChain
177
+ } = _ref2;
178
+ super("Chain mismatch: Expected \"".concat(targetChain, "\", received \"").concat(activeChain, "\"."));
179
+
180
+ _defineProperty(this, "name", 'ChainMismatchError');
181
+ }
182
+
183
+ }
184
+ class ChainNotConfiguredError extends Error {
185
+ constructor() {
186
+ super(...arguments);
187
+
188
+ _defineProperty(this, "name", 'ChainNotConfigured');
189
+
190
+ _defineProperty(this, "message", 'Chain not configured');
191
+ }
192
+
193
+ }
194
+ class ConnectorAlreadyConnectedError extends Error {
195
+ constructor() {
196
+ super(...arguments);
197
+
198
+ _defineProperty(this, "name", 'ConnectorAlreadyConnectedError');
199
+
200
+ _defineProperty(this, "message", 'Connector already connected');
201
+ }
202
+
203
+ }
204
+ class ConnectorNotFoundError extends Error {
205
+ constructor() {
206
+ super(...arguments);
207
+
208
+ _defineProperty(this, "name", 'ConnectorNotFoundError');
209
+
210
+ _defineProperty(this, "message", 'Connector not found');
211
+ }
212
+
213
+ }
214
+ class ContractMethodDoesNotExistError extends Error {
215
+ constructor(_ref3) {
216
+ var _chain$blockExplorers;
217
+
218
+ let {
219
+ addressOrName,
220
+ chainId,
221
+ functionName
222
+ } = _ref3;
223
+ const {
224
+ chains,
225
+ network
226
+ } = getProvider();
227
+ const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref4 => {
228
+ let {
229
+ id
230
+ } = _ref4;
231
+ return id === (chainId || network.chainId);
232
+ });
233
+ const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default;
234
+ super(["Function \"".concat(functionName, "\" on contract \"").concat(addressOrName, "\" does not exist."), ...(blockExplorer ? ['', "".concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name, ": ").concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url, "/address/").concat(addressOrName, "#readContract")] : [])].join('\n'));
235
+
236
+ _defineProperty(this, "name", 'ContractMethodDoesNotExistError');
237
+ }
238
+
239
+ }
240
+ class ContractMethodNoResultError extends Error {
241
+ constructor(_ref5) {
242
+ var _chain$blockExplorers2;
243
+
244
+ let {
245
+ addressOrName,
246
+ chainId,
247
+ functionName
248
+ } = _ref5;
249
+ const {
250
+ chains,
251
+ network
252
+ } = getProvider();
253
+ const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref6 => {
254
+ let {
255
+ id
256
+ } = _ref6;
257
+ return id === (chainId || network.chainId);
258
+ });
259
+ const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers2 = chain.blockExplorers) === null || _chain$blockExplorers2 === void 0 ? void 0 : _chain$blockExplorers2.default;
260
+ super(["Function \"".concat(functionName, "\" on contract \"").concat(addressOrName, "\" returned an empty response."), '', "Are you sure the function \"".concat(functionName, "\" exists on this contract?"), ...(blockExplorer ? ['', "".concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name, ": ").concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url, "/address/").concat(addressOrName, "#readContract")] : [])].join('\n'));
261
+
262
+ _defineProperty(this, "name", 'ContractMethodNoResultError');
263
+ }
264
+
265
+ }
266
+ class ProviderChainsNotFound extends Error {
267
+ constructor() {
268
+ super(...arguments);
269
+
270
+ _defineProperty(this, "name", 'ProviderChainsNotFound');
271
+
272
+ _defineProperty(this, "message", ['No chains were found on the wagmi provider. Some functions that require a chain may not work.', '', 'It is recommended to add a list of chains to the provider in `createClient`.', '', 'Example:', '', '```', "import { getDefaultProvider } from 'ethers'", "import { chain, createClient } from 'wagmi'", '', 'createClient({', ' provider: Object.assign(getDefaultProvider(), { chains: [chain.mainnet] })', '})', '```'].join('\n'));
273
+ }
274
+
275
+ }
276
+ class ResourceUnavailableError extends RpcError {
277
+ constructor(error) {
278
+ super(-32002, 'Resource unavailable', error);
279
+
280
+ _defineProperty(this, "name", 'ResourceUnavailable');
281
+ }
282
+
283
+ }
284
+ class SwitchChainError extends ProviderRpcError {
285
+ constructor(error) {
286
+ super(4902, 'Error switching chain', error);
287
+
288
+ _defineProperty(this, "name", 'SwitchChainError');
289
+ }
290
+
291
+ }
292
+ class SwitchChainNotSupportedError extends Error {
293
+ constructor(_ref7) {
294
+ let {
295
+ connector
296
+ } = _ref7;
297
+ super("\"".concat(connector.name, "\" does not support programmatic chain switching."));
298
+
299
+ _defineProperty(this, "name", 'SwitchChainNotSupportedError');
300
+ }
301
+
302
+ }
303
+ class UserRejectedRequestError extends ProviderRpcError {
304
+ constructor(error) {
305
+ super(4001, 'User rejected request', error);
306
+
307
+ _defineProperty(this, "name", 'UserRejectedRequestError');
308
+ }
309
+
310
+ }
12
311
 
13
312
  function getInjectedName(ethereum) {
14
313
  var _ethereum$providers, _getName;
@@ -25,6 +324,7 @@ function getInjectedName(ethereum) {
25
324
  if (provider.isTokenPocket) return 'TokenPocket';
26
325
  if (provider.isTokenary) return 'Tokenary';
27
326
  if (provider.isTrust) return 'Trust Wallet';
327
+ if (provider.isOneInchIOSWallet || provider.isOneInchAndroidWallet) return '1inch Wallet';
28
328
  if (provider.isMetaMask) return 'MetaMask';
29
329
  }; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
30
330
 
@@ -56,11 +356,65 @@ function getInjectedName(ethereum) {
56
356
  return (_getName = getName(ethereum)) !== null && _getName !== void 0 ? _getName : 'Injected';
57
357
  }
58
358
 
359
+ function normalizeChainId(chainId) {
360
+ if (typeof chainId === 'string') return Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10);
361
+ if (typeof chainId === 'bigint') return Number(chainId);
362
+ return chainId;
363
+ }
364
+
365
+ class Connector extends EventEmitter__default["default"] {
366
+ /** Unique connector id */
367
+
368
+ /** Connector name */
369
+
370
+ /** Chains connector supports */
371
+
372
+ /** Options to use with connector */
373
+
374
+ /** Whether connector is usable */
375
+ constructor(_ref) {
376
+ let {
377
+ chains: chains$1 = chains.defaultChains,
378
+ options
379
+ } = _ref;
380
+ super();
381
+
382
+ _defineProperty(this, "id", void 0);
383
+
384
+ _defineProperty(this, "name", void 0);
385
+
386
+ _defineProperty(this, "chains", void 0);
387
+
388
+ _defineProperty(this, "options", void 0);
389
+
390
+ _defineProperty(this, "ready", void 0);
391
+
392
+ this.chains = chains$1;
393
+ this.options = options;
394
+ }
395
+
396
+ getBlockExplorerUrls(chain) {
397
+ var _chain$blockExplorers;
398
+
399
+ const {
400
+ default: blockExplorer,
401
+ ...blockExplorers
402
+ } = (_chain$blockExplorers = chain.blockExplorers) !== null && _chain$blockExplorers !== void 0 ? _chain$blockExplorers : {};
403
+ if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
404
+ return [];
405
+ }
406
+
407
+ isChainUnsupported(chainId) {
408
+ return !this.chains.some(x => x.id === chainId);
409
+ }
410
+
411
+ }
412
+
59
413
  var _provider = /*#__PURE__*/new WeakMap();
60
414
 
61
415
  var _switchingChains = /*#__PURE__*/new WeakMap();
62
416
 
63
- class InjectedConnector extends base.Connector {
417
+ class InjectedConnector extends Connector {
64
418
  constructor() {
65
419
  let {
66
420
  chains,
@@ -73,32 +427,32 @@ class InjectedConnector extends base.Connector {
73
427
  options
74
428
  });
75
429
 
76
- base._defineProperty(this, "id", void 0);
430
+ _defineProperty(this, "id", void 0);
77
431
 
78
- base._defineProperty(this, "name", void 0);
432
+ _defineProperty(this, "name", void 0);
79
433
 
80
- base._defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
434
+ _defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
81
435
 
82
- base._classPrivateFieldInitSpec(this, _provider, {
436
+ _classPrivateFieldInitSpec(this, _provider, {
83
437
  writable: true,
84
438
  value: void 0
85
439
  });
86
440
 
87
- base._classPrivateFieldInitSpec(this, _switchingChains, {
441
+ _classPrivateFieldInitSpec(this, _switchingChains, {
88
442
  writable: true,
89
443
  value: void 0
90
444
  });
91
445
 
92
- base._defineProperty(this, "shimDisconnectKey", 'injected.shimDisconnect');
446
+ _defineProperty(this, "shimDisconnectKey", 'injected.shimDisconnect');
93
447
 
94
- base._defineProperty(this, "onAccountsChanged", accounts => {
448
+ _defineProperty(this, "onAccountsChanged", accounts => {
95
449
  if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
96
450
  account: utils.getAddress(accounts[0])
97
451
  });
98
452
  });
99
453
 
100
- base._defineProperty(this, "onChainChanged", chainId => {
101
- const id = base.normalizeChainId(chainId);
454
+ _defineProperty(this, "onChainChanged", chainId => {
455
+ const id = normalizeChainId(chainId);
102
456
  const unsupported = this.isChainUnsupported(id);
103
457
  this.emit('change', {
104
458
  chain: {
@@ -108,14 +462,14 @@ class InjectedConnector extends base.Connector {
108
462
  });
109
463
  });
110
464
 
111
- base._defineProperty(this, "onDisconnect", () => {
465
+ _defineProperty(this, "onDisconnect", () => {
112
466
  var _this$options, _this$options2, _getClient$storage;
113
467
 
114
468
  // We need this as MetaMask can emit the "disconnect" event
115
469
  // upon switching chains. This workaround ensures that the
116
470
  // user currently isn't in the process of switching chains.
117
- if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimChainChangedDisconnect && base._classPrivateFieldGet(this, _switchingChains)) {
118
- base._classPrivateFieldSet(this, _switchingChains, false);
471
+ if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimChainChangedDisconnect && _classPrivateFieldGet(this, _switchingChains)) {
472
+ _classPrivateFieldSet(this, _switchingChains, false);
119
473
 
120
474
  return;
121
475
  }
@@ -144,7 +498,7 @@ class InjectedConnector extends base.Connector {
144
498
  var _this$options3, _getClient$storage2;
145
499
 
146
500
  const provider = await this.getProvider();
147
- if (!provider) throw new base.ConnectorNotFoundError();
501
+ if (!provider) throw new ConnectorNotFoundError();
148
502
 
149
503
  if (provider.on) {
150
504
  provider.on('accountsChanged', this.onAccountsChanged);
@@ -177,8 +531,8 @@ class InjectedConnector extends base.Connector {
177
531
  provider
178
532
  };
179
533
  } catch (error) {
180
- if (this.isUserRejectedRequestError(error)) throw new base.UserRejectedRequestError(error);
181
- if (error.code === -32002) throw new base.ResourceUnavailableError(error);
534
+ if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
535
+ if (error.code === -32002) throw new ResourceUnavailableError(error);
182
536
  throw error;
183
537
  }
184
538
  }
@@ -197,7 +551,7 @@ class InjectedConnector extends base.Connector {
197
551
 
198
552
  async getAccount() {
199
553
  const provider = await this.getProvider();
200
- if (!provider) throw new base.ConnectorNotFoundError();
554
+ if (!provider) throw new ConnectorNotFoundError();
201
555
  const accounts = await provider.request({
202
556
  method: 'eth_requestAccounts'
203
557
  }); // return checksum address
@@ -207,15 +561,15 @@ class InjectedConnector extends base.Connector {
207
561
 
208
562
  async getChainId() {
209
563
  const provider = await this.getProvider();
210
- if (!provider) throw new base.ConnectorNotFoundError();
564
+ if (!provider) throw new ConnectorNotFoundError();
211
565
  return await provider.request({
212
566
  method: 'eth_chainId'
213
- }).then(base.normalizeChainId);
567
+ }).then(normalizeChainId);
214
568
  }
215
569
 
216
570
  async getProvider() {
217
- if (typeof window !== 'undefined' && !!window.ethereum) base._classPrivateFieldSet(this, _provider, window.ethereum);
218
- return base._classPrivateFieldGet(this, _provider);
571
+ if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
572
+ return _classPrivateFieldGet(this, _provider);
219
573
  }
220
574
 
221
575
  async getSigner() {
@@ -230,7 +584,7 @@ class InjectedConnector extends base.Connector {
230
584
  if ((_this$options5 = this.options) !== null && _this$options5 !== void 0 && _this$options5.shimDisconnect && // If shim does not exist in storage, wallet is disconnected
231
585
  !((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(this.shimDisconnectKey))) return false;
232
586
  const provider = await this.getProvider();
233
- if (!provider) throw new base.ConnectorNotFoundError();
587
+ if (!provider) throw new ConnectorNotFoundError();
234
588
  const accounts = await provider.request({
235
589
  method: 'eth_accounts'
236
590
  });
@@ -244,9 +598,9 @@ class InjectedConnector extends base.Connector {
244
598
  async switchChain(chainId) {
245
599
  var _this$options6;
246
600
 
247
- if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect) base._classPrivateFieldSet(this, _switchingChains, true);
601
+ if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect) _classPrivateFieldSet(this, _switchingChains, true);
248
602
  const provider = await this.getProvider();
249
- if (!provider) throw new base.ConnectorNotFoundError();
603
+ if (!provider) throw new ConnectorNotFoundError();
250
604
  const id = utils.hexValue(chainId);
251
605
 
252
606
  try {
@@ -270,7 +624,7 @@ class InjectedConnector extends base.Connector {
270
624
  var _data, _data$originalError;
271
625
 
272
626
  const chain = this.chains.find(x => x.id === chainId);
273
- if (!chain) throw new base.ChainNotConfiguredError(); // Indicates chain is not added to provider
627
+ if (!chain) throw new ChainNotConfiguredError(); // Indicates chain is not added to provider
274
628
 
275
629
  if (error.code === 4902 || // Unwrapping for MetaMask Mobile
276
630
  // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
@@ -290,13 +644,13 @@ class InjectedConnector extends base.Connector {
290
644
  });
291
645
  return chain;
292
646
  } catch (addError) {
293
- if (this.isUserRejectedRequestError(addError)) throw new base.UserRejectedRequestError(error);
294
- throw new base.AddChainError();
647
+ if (this.isUserRejectedRequestError(addError)) throw new UserRejectedRequestError(error);
648
+ throw new AddChainError();
295
649
  }
296
650
  }
297
651
 
298
- if (this.isUserRejectedRequestError(error)) throw new base.UserRejectedRequestError(error);
299
- throw new base.SwitchChainError(error);
652
+ if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
653
+ throw new SwitchChainError(error);
300
654
  }
301
655
  }
302
656
 
@@ -308,7 +662,7 @@ class InjectedConnector extends base.Connector {
308
662
  symbol
309
663
  } = _ref;
310
664
  const provider = await this.getProvider();
311
- if (!provider) throw new base.ConnectorNotFoundError();
665
+ if (!provider) throw new ConnectorNotFoundError();
312
666
  return await provider.request({
313
667
  method: 'wallet_watchAsset',
314
668
  params: {
@@ -386,20 +740,20 @@ class Client {
386
740
  webSocketProvider: _webSocketProvider
387
741
  } = _ref;
388
742
 
389
- base._classPrivateMethodInitSpec(this, _addEffects);
743
+ _classPrivateMethodInitSpec(this, _addEffects);
390
744
 
391
- base._defineProperty(this, "config", void 0);
745
+ _defineProperty(this, "config", void 0);
392
746
 
393
- base._defineProperty(this, "storage", void 0);
747
+ _defineProperty(this, "storage", void 0);
394
748
 
395
- base._defineProperty(this, "store", void 0);
749
+ _defineProperty(this, "store", void 0);
396
750
 
397
- base._classPrivateFieldInitSpec(this, _isAutoConnecting, {
751
+ _classPrivateFieldInitSpec(this, _isAutoConnecting, {
398
752
  writable: true,
399
753
  value: void 0
400
754
  });
401
755
 
402
- base._classPrivateFieldInitSpec(this, _lastUsedConnector, {
756
+ _classPrivateFieldInitSpec(this, _lastUsedConnector, {
403
757
  writable: true,
404
758
  value: void 0
405
759
  });
@@ -457,9 +811,11 @@ class Client {
457
811
  };
458
812
  this.storage = storage;
459
813
 
460
- base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
814
+ _classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
815
+
816
+ _classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
461
817
 
462
- base._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
818
+ if (autoConnect && typeof window !== 'undefined') setTimeout(async () => await this.autoConnect(), 0);
463
819
  }
464
820
 
465
821
  get chains() {
@@ -523,16 +879,16 @@ class Client {
523
879
 
524
880
  if (this.connector) await ((_this$connector$disco = (_this$connector = this.connector).disconnect) === null || _this$connector$disco === void 0 ? void 0 : _this$connector$disco.call(_this$connector));
525
881
 
526
- base._classPrivateFieldSet(this, _isAutoConnecting, false);
882
+ _classPrivateFieldSet(this, _isAutoConnecting, false);
527
883
 
528
884
  this.clearState();
529
885
  this.store.destroy();
530
886
  }
531
887
 
532
888
  async autoConnect() {
533
- if (base._classPrivateFieldGet(this, _isAutoConnecting)) return;
889
+ if (_classPrivateFieldGet(this, _isAutoConnecting)) return;
534
890
 
535
- base._classPrivateFieldSet(this, _isAutoConnecting, true);
891
+ _classPrivateFieldSet(this, _isAutoConnecting, true);
536
892
 
537
893
  this.setState(x => {
538
894
  var _x$data;
@@ -542,7 +898,7 @@ class Client {
542
898
  };
543
899
  }); // Try last used connector first
544
900
 
545
- const sorted = base._classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === base._classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
901
+ const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
546
902
  let connected = false;
547
903
 
548
904
  for (const connector of sorted) {
@@ -566,7 +922,7 @@ class Client {
566
922
  status: 'disconnected'
567
923
  }));
568
924
 
569
- base._classPrivateFieldSet(this, _isAutoConnecting, false);
925
+ _classPrivateFieldSet(this, _isAutoConnecting, false);
570
926
 
571
927
  return this.data;
572
928
  }
@@ -654,9 +1010,44 @@ function getClient() {
654
1010
  return client;
655
1011
  }
656
1012
 
1013
+ function getProvider() {
1014
+ let {
1015
+ chainId
1016
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1017
+ const client = getClient();
1018
+ if (chainId && typeof client.config.provider === 'function') return client.config.provider({
1019
+ chainId
1020
+ });
1021
+ return client.provider;
1022
+ }
1023
+
1024
+ exports.AddChainError = AddChainError;
1025
+ exports.ChainDoesNotSupportMulticallError = ChainDoesNotSupportMulticallError;
1026
+ exports.ChainMismatchError = ChainMismatchError;
1027
+ exports.ChainNotConfiguredError = ChainNotConfiguredError;
657
1028
  exports.Client = Client;
1029
+ exports.Connector = Connector;
1030
+ exports.ConnectorAlreadyConnectedError = ConnectorAlreadyConnectedError;
1031
+ exports.ConnectorNotFoundError = ConnectorNotFoundError;
1032
+ exports.ContractMethodDoesNotExistError = ContractMethodDoesNotExistError;
1033
+ exports.ContractMethodNoResultError = ContractMethodNoResultError;
658
1034
  exports.InjectedConnector = InjectedConnector;
1035
+ exports.ProviderChainsNotFound = ProviderChainsNotFound;
1036
+ exports.ProviderRpcError = ProviderRpcError;
1037
+ exports.ResourceUnavailableError = ResourceUnavailableError;
1038
+ exports.RpcError = RpcError;
1039
+ exports.SwitchChainError = SwitchChainError;
1040
+ exports.SwitchChainNotSupportedError = SwitchChainNotSupportedError;
1041
+ exports.UserRejectedRequestError = UserRejectedRequestError;
1042
+ exports._classPrivateFieldGet = _classPrivateFieldGet;
1043
+ exports._classPrivateFieldInitSpec = _classPrivateFieldInitSpec;
1044
+ exports._classPrivateFieldSet = _classPrivateFieldSet;
1045
+ exports._classPrivateMethodGet = _classPrivateMethodGet;
1046
+ exports._classPrivateMethodInitSpec = _classPrivateMethodInitSpec;
1047
+ exports._defineProperty = _defineProperty;
659
1048
  exports.createClient = createClient;
660
1049
  exports.createStorage = createStorage;
661
1050
  exports.getClient = getClient;
1051
+ exports.getProvider = getProvider;
662
1052
  exports.noopStorage = noopStorage;
1053
+ exports.normalizeChainId = normalizeChainId;