@wagmi/core 0.2.0-next.1 → 0.2.0-next.12

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 (63) hide show
  1. package/LICENSE +1 -1
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +135 -151
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +135 -151
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +136 -152
  5. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +96 -153
  6. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +96 -153
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +96 -153
  8. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +91 -124
  9. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +91 -124
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +91 -124
  11. package/dist/base-83fd83c6.cjs.dev.js +543 -0
  12. package/dist/base-9b2942ee.cjs.prod.js +543 -0
  13. package/dist/base-b052e615.esm.js +516 -0
  14. package/dist/{classPrivateMethodGet-38b54c7a.cjs.dev.js → classPrivateMethodGet-45a38143.cjs.dev.js} +1 -1
  15. package/dist/{classPrivateMethodGet-c9db96d6.esm.js → classPrivateMethodGet-7c370e43.esm.js} +1 -1
  16. package/dist/{classPrivateMethodGet-0e9a7925.cjs.prod.js → classPrivateMethodGet-a1e1a4aa.cjs.prod.js} +1 -1
  17. package/dist/declarations/src/actions/accounts/connect.d.ts +14 -5
  18. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +3 -1
  19. package/dist/declarations/src/actions/accounts/getAccount.d.ts +5 -4
  20. package/dist/declarations/src/actions/accounts/index.d.ts +1 -1
  21. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +1 -1
  22. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -2
  23. package/dist/declarations/src/actions/contracts/readContract.d.ts +4 -1
  24. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -1
  25. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +3 -1
  26. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +3 -1
  27. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +3 -1
  28. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +3 -1
  29. package/dist/declarations/src/actions/index.d.ts +3 -3
  30. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +4 -1
  31. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +3 -1
  32. package/dist/declarations/src/actions/network-status/index.d.ts +1 -1
  33. package/dist/declarations/src/actions/providers/getProvider.d.ts +6 -2
  34. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +6 -2
  35. package/dist/declarations/src/actions/providers/index.d.ts +2 -2
  36. package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -2
  37. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -2
  38. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +6 -10
  39. package/dist/declarations/src/client.d.ts +25 -22
  40. package/dist/declarations/src/connectors/base.d.ts +7 -1
  41. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +9 -0
  42. package/dist/declarations/src/connectors/injected.d.ts +2 -10
  43. package/dist/declarations/src/constants/abis.d.ts +2 -0
  44. package/dist/declarations/src/constants/blockExplorers.d.ts +9 -0
  45. package/dist/declarations/src/constants/chains.d.ts +17 -6
  46. package/dist/declarations/src/constants/index.d.ts +6 -2
  47. package/dist/declarations/src/constants/keys.d.ts +2 -0
  48. package/dist/declarations/src/constants/rpcs.d.ts +7 -0
  49. package/dist/declarations/src/index.d.ts +8 -5
  50. package/dist/declarations/src/types/index.d.ts +75 -6
  51. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
  52. package/dist/wagmi-core.cjs.dev.js +659 -1068
  53. package/dist/wagmi-core.cjs.prod.js +659 -1068
  54. package/dist/wagmi-core.esm.js +656 -1069
  55. package/package.json +3 -4
  56. package/dist/base-09a653f3.cjs.dev.js +0 -453
  57. package/dist/base-824c3b6d.esm.js +0 -430
  58. package/dist/base-d8123d5f.cjs.prod.js +0 -453
  59. package/dist/declarations/src/constants/abis/erc1155.d.ts +0 -17
  60. package/dist/declarations/src/constants/abis/erc20.d.ts +0 -38
  61. package/dist/declarations/src/constants/abis/erc721.d.ts +0 -15
  62. package/dist/declarations/src/constants/abis/index.d.ts +0 -3
  63. package/dist/declarations/src/types/declarations.d.ts +0 -52
@@ -1,6 +1,6 @@
1
- import { _ as _defineProperty, C as Connector, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as _asyncToGenerator, c as ConnectorNotFoundError, U as UserRejectedRequestError, d as _classPrivateFieldSet, e as _classPrivateFieldGet, f as allChains, g as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, h as ConnectorAlreadyConnectedError, i as SwitchChainNotSupportedError } from './base-824c3b6d.esm.js';
2
- export { A as AddChainError, g as ChainNotConfiguredError, C as Connector, h as ConnectorAlreadyConnectedError, c as ConnectorNotFoundError, S as SwitchChainError, i as SwitchChainNotSupportedError, U as UserRejectedRequestError, f as allChains, j as chain, k as defaultChains, n as normalizeChainId } from './base-824c3b6d.esm.js';
3
- import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-c9db96d6.esm.js';
1
+ import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-7c370e43.esm.js';
2
+ import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-b052e615.esm.js';
3
+ export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-b052e615.esm.js';
4
4
  import { providers, getDefaultProvider } from 'ethers';
5
5
  import create from 'zustand/vanilla';
6
6
  import { subscribeWithSelector, persist } from 'zustand/middleware';
@@ -8,292 +8,45 @@ import { getAddress, hexValue, formatUnits } from 'ethers/lib/utils';
8
8
  import { Contract } from 'ethers/lib/ethers';
9
9
  import 'eventemitter3';
10
10
 
11
- function ownKeys(object, enumerableOnly) {
12
- var keys = Object.keys(object);
11
+ // https://ethereum.org/en/developers/docs/standards/tokens/erc-20
12
+ const erc20ABI = ['event Approval(address indexed _owner, address indexed _spender, uint256 _value)', 'event Transfer(address indexed _from, address indexed _to, uint256 _value)', 'function allowance(address _owner, address _spender) public view returns (uint256 remaining)', 'function approve(address _spender, uint256 _value) public returns (bool success)', 'function balanceOf(address _owner) public view returns (uint256 balance)', 'function decimals() public view returns (uint8)', 'function name() public view returns (string)', 'function symbol() public view returns (string)', 'function totalSupply() public view returns (uint256)', 'function transfer(address _to, uint256 _value) public returns (bool success)', 'function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)']; // https://ethereum.org/en/developers/docs/standards/tokens/erc-721
13
13
 
14
- if (Object.getOwnPropertySymbols) {
15
- var symbols = Object.getOwnPropertySymbols(object);
16
- enumerableOnly && (symbols = symbols.filter(function (sym) {
17
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
18
- })), keys.push.apply(keys, symbols);
19
- }
20
-
21
- return keys;
22
- }
23
-
24
- function _objectSpread2(target) {
25
- for (var i = 1; i < arguments.length; i++) {
26
- var source = null != arguments[i] ? arguments[i] : {};
27
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
28
- _defineProperty(target, key, source[key]);
29
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
30
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
31
- });
32
- }
33
-
34
- return target;
35
- }
36
-
37
- var erc1155ABI = [{
38
- constant: true,
39
- inputs: [{
40
- internalType: 'address',
41
- name: '_owner',
42
- type: 'address'
43
- }, {
44
- internalType: 'uint256',
45
- name: '_id',
46
- type: 'uint256'
47
- }],
48
- name: 'balanceOf',
49
- outputs: [{
50
- internalType: 'uint256',
51
- name: '',
52
- type: 'uint256'
53
- }],
54
- payable: false,
55
- stateMutability: 'view',
56
- type: 'function'
57
- }, {
58
- constant: true,
59
- inputs: [{
60
- internalType: 'uint256',
61
- name: '_id',
62
- type: 'uint256'
63
- }],
64
- name: 'uri',
65
- outputs: [{
66
- internalType: 'string',
67
- name: '',
68
- type: 'string'
69
- }],
70
- payable: false,
71
- stateMutability: 'view',
72
- type: 'function'
73
- }];
74
-
75
- var erc20ABI = [{
76
- constant: true,
77
- inputs: [],
78
- name: 'name',
79
- outputs: [{
80
- name: '',
81
- type: 'string'
82
- }],
83
- payable: false,
84
- stateMutability: 'view',
85
- type: 'function'
86
- }, {
87
- constant: false,
88
- inputs: [{
89
- name: '_spender',
90
- type: 'address'
91
- }, {
92
- name: '_value',
93
- type: 'uint256'
94
- }],
95
- name: 'approve',
96
- outputs: [{
97
- name: '',
98
- type: 'bool'
99
- }],
100
- payable: false,
101
- stateMutability: 'nonpayable',
102
- type: 'function'
103
- }, {
104
- constant: true,
105
- inputs: [],
106
- name: 'totalSupply',
107
- outputs: [{
108
- name: '',
109
- type: 'uint256'
110
- }],
111
- payable: false,
112
- stateMutability: 'view',
113
- type: 'function'
114
- }, {
115
- constant: false,
116
- inputs: [{
117
- name: '_from',
118
- type: 'address'
119
- }, {
120
- name: '_to',
121
- type: 'address'
122
- }, {
123
- name: '_value',
124
- type: 'uint256'
125
- }],
126
- name: 'transferFrom',
127
- outputs: [{
128
- name: '',
129
- type: 'bool'
130
- }],
131
- payable: false,
132
- stateMutability: 'nonpayable',
133
- type: 'function'
134
- }, {
135
- constant: true,
136
- inputs: [],
137
- name: 'decimals',
138
- outputs: [{
139
- name: '',
140
- type: 'uint8'
141
- }],
142
- payable: false,
143
- stateMutability: 'view',
144
- type: 'function'
145
- }, {
146
- constant: true,
147
- inputs: [{
148
- name: '_owner',
149
- type: 'address'
150
- }],
151
- name: 'balanceOf',
152
- outputs: [{
153
- name: 'balance',
154
- type: 'uint256'
155
- }],
156
- payable: false,
157
- stateMutability: 'view',
158
- type: 'function'
159
- }, {
160
- constant: true,
161
- inputs: [],
162
- name: 'symbol',
163
- outputs: [{
164
- name: '',
165
- type: 'string'
166
- }],
167
- payable: false,
168
- stateMutability: 'view',
169
- type: 'function'
170
- }, {
171
- constant: false,
172
- inputs: [{
173
- name: '_to',
174
- type: 'address'
175
- }, {
176
- name: '_value',
177
- type: 'uint256'
178
- }],
179
- name: 'transfer',
180
- outputs: [{
181
- name: '',
182
- type: 'bool'
183
- }],
184
- payable: false,
185
- stateMutability: 'nonpayable',
186
- type: 'function'
187
- }, {
188
- constant: true,
189
- inputs: [{
190
- name: '_owner',
191
- type: 'address'
192
- }, {
193
- name: '_spender',
194
- type: 'address'
195
- }],
196
- name: 'allowance',
197
- outputs: [{
198
- name: '',
199
- type: 'uint256'
200
- }],
201
- payable: false,
202
- stateMutability: 'view',
203
- type: 'function'
204
- }, {
205
- payable: true,
206
- stateMutability: 'payable',
207
- type: 'fallback'
208
- }, {
209
- anonymous: false,
210
- inputs: [{
211
- indexed: true,
212
- name: 'owner',
213
- type: 'address'
214
- }, {
215
- indexed: true,
216
- name: 'spender',
217
- type: 'address'
218
- }, {
219
- indexed: false,
220
- name: 'value',
221
- type: 'uint256'
222
- }],
223
- name: 'Approval',
224
- type: 'event'
225
- }, {
226
- anonymous: false,
227
- inputs: [{
228
- indexed: true,
229
- name: 'from',
230
- type: 'address'
231
- }, {
232
- indexed: true,
233
- name: 'to',
234
- type: 'address'
235
- }, {
236
- indexed: false,
237
- name: 'value',
238
- type: 'uint256'
239
- }],
240
- name: 'Transfer',
241
- type: 'event'
242
- }];
243
-
244
- var erc721ABI = [{
245
- inputs: [{
246
- internalType: 'uint256',
247
- name: 'tokenId',
248
- type: 'uint256'
249
- }],
250
- name: 'ownerOf',
251
- outputs: [{
252
- internalType: 'address',
253
- name: '',
254
- type: 'address'
255
- }],
256
- stateMutability: 'view',
257
- type: 'function'
258
- }, {
259
- inputs: [{
260
- internalType: 'uint256',
261
- name: 'tokenId',
262
- type: 'uint256'
263
- }],
264
- name: 'tokenURI',
265
- outputs: [{
266
- internalType: 'string',
267
- name: '',
268
- type: 'string'
269
- }],
270
- stateMutability: 'view',
271
- type: 'function'
272
- }];
14
+ const erc721ABI = ['event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);', 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);', 'event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);', 'function approve(address _approved, uint256 _tokenId) external payable;', 'function balanceOf(address _owner) external view returns (uint256);', 'function getApproved(uint256 _tokenId) external view returns (address);', 'function isApprovedForAll(address _owner, address _operator) external view returns (bool);', 'function name() view returns (string memory)', 'function ownerOf(uint256 _tokenId) external view returns (address);', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;', 'function setApprovalForAll(address _operator, bool _approved) external;', 'function symbol() view returns (string memory)', 'function tokenByIndex(uint256 _index) view returns (uint256)', 'function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns (uint256 tokenId)', 'function tokenURI(uint256 _tokenId) view returns (string memory)', 'function totalSupply() view returns (uint256)', 'function transferFrom(address _from, address _to, uint256 _tokenId) external payable;'];
273
15
 
274
16
  // https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
275
- var units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
276
-
17
+ const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
18
+
19
+ const injectedProvidersLookup = {
20
+ isMetaMask: 'MetaMask',
21
+ // Place other options below in alphabetical order
22
+ isBraveWallet: 'Brave Wallet',
23
+ isCoinbaseWallet: 'Coinbase Wallet',
24
+ isFrame: 'Frame',
25
+ isTally: 'Tally'
26
+ };
27
+ const injectedOptions = Object.entries(injectedProvidersLookup);
277
28
  function getInjectedName(ethereum) {
278
29
  if (!ethereum) return 'Injected';
279
- if (ethereum.isMetaMask) return 'MetaMask';
280
- if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet';
281
- if (ethereum.isFrame) return 'Frame';
282
- if (ethereum.isTally) return 'Tally';
30
+
31
+ for (const [key, val] of injectedOptions) {
32
+ if (ethereum[key]) return val;
33
+ }
34
+
283
35
  return 'Injected';
284
36
  }
285
37
 
286
- var shimKey = 'injected.shimDisconnect';
38
+ const shimKey = 'injected.shimDisconnect';
287
39
 
288
40
  var _provider = /*#__PURE__*/new WeakMap();
289
41
 
290
42
  class InjectedConnector extends Connector {
291
43
  constructor(config) {
292
- super(_objectSpread2(_objectSpread2({}, config), {}, {
293
- options: _objectSpread2({
294
- shimDisconnect: true
295
- }, config === null || config === void 0 ? void 0 : config.options)
296
- }));
44
+ super({ ...config,
45
+ options: {
46
+ shimDisconnect: true,
47
+ ...(config === null || config === void 0 ? void 0 : config.options)
48
+ }
49
+ });
297
50
 
298
51
  _defineProperty(this, "id", 'injected');
299
52
 
@@ -313,8 +66,8 @@ class InjectedConnector extends Connector {
313
66
  });
314
67
 
315
68
  _defineProperty(this, "onChainChanged", chainId => {
316
- var id = normalizeChainId(chainId);
317
- var unsupported = this.isChainUnsupported(id);
69
+ const id = normalizeChainId(chainId);
70
+ const unsupported = this.isChainUnsupported(id);
318
71
  this.emit('change', {
319
72
  chain: {
320
73
  id,
@@ -324,230 +77,192 @@ class InjectedConnector extends Connector {
324
77
  });
325
78
 
326
79
  _defineProperty(this, "onDisconnect", () => {
327
- var _this$options, _client$storage;
80
+ var _this$options, _getClient$storage;
328
81
 
329
82
  this.emit('disconnect');
330
- if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_client$storage = client.storage) === null || _client$storage === void 0 ? void 0 : _client$storage.removeItem(shimKey);
83
+ if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_getClient$storage = getClient().storage) === null || _getClient$storage === void 0 ? void 0 : _getClient$storage.removeItem(shimKey);
331
84
  });
332
85
 
333
- var name = 'Injected';
86
+ let name = 'Injected';
334
87
  if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
335
88
  this.name = name;
336
89
  }
337
90
 
338
- connect() {
339
- var _this = this;
340
-
341
- return _asyncToGenerator(function* () {
342
- try {
343
- var _this$options2, _client$storage2;
344
-
345
- var provider = yield _this.getProvider();
346
- if (!provider) throw new ConnectorNotFoundError();
347
-
348
- if (provider.on) {
349
- provider.on('accountsChanged', _this.onAccountsChanged);
350
- provider.on('chainChanged', _this.onChainChanged);
351
- provider.on('disconnect', _this.onDisconnect);
352
- }
353
-
354
- var account = yield _this.getAccount();
355
- var id = yield _this.getChainId();
91
+ async connect() {
92
+ try {
93
+ var _this$options2, _getClient$storage2;
356
94
 
357
- var unsupported = _this.isChainUnsupported(id);
95
+ const provider = await this.getProvider();
96
+ if (!provider) throw new ConnectorNotFoundError();
358
97
 
359
- if ((_this$options2 = _this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_client$storage2 = client.storage) === null || _client$storage2 === void 0 ? void 0 : _client$storage2.setItem(shimKey, true);
360
- return {
361
- account,
362
- chain: {
363
- id,
364
- unsupported
365
- },
366
- provider
367
- };
368
- } catch (error) {
369
- if (error.code === 4001) throw new UserRejectedRequestError();
370
- throw error;
98
+ if (provider.on) {
99
+ provider.on('accountsChanged', this.onAccountsChanged);
100
+ provider.on('chainChanged', this.onChainChanged);
101
+ provider.on('disconnect', this.onDisconnect);
371
102
  }
372
- })();
373
- }
374
-
375
- disconnect() {
376
- var _this2 = this;
377
-
378
- return _asyncToGenerator(function* () {
379
- var _this2$options, _client$storage3;
380
103
 
381
- var provider = yield _this2.getProvider();
382
- if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
383
- provider.removeListener('accountsChanged', _this2.onAccountsChanged);
384
- provider.removeListener('chainChanged', _this2.onChainChanged);
385
- provider.removeListener('disconnect', _this2.onDisconnect);
386
- if ((_this2$options = _this2.options) !== null && _this2$options !== void 0 && _this2$options.shimDisconnect) (_client$storage3 = client.storage) === null || _client$storage3 === void 0 ? void 0 : _client$storage3.removeItem(shimKey);
387
- })();
104
+ this.emit('message', {
105
+ type: 'connecting'
106
+ });
107
+ const account = await this.getAccount();
108
+ const id = await this.getChainId();
109
+ const unsupported = this.isChainUnsupported(id);
110
+ if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_getClient$storage2 = getClient().storage) === null || _getClient$storage2 === void 0 ? void 0 : _getClient$storage2.setItem(shimKey, true);
111
+ return {
112
+ account,
113
+ chain: {
114
+ id,
115
+ unsupported
116
+ },
117
+ provider
118
+ };
119
+ } catch (error) {
120
+ if (error.code === 4001) throw new UserRejectedRequestError();
121
+ throw error;
122
+ }
388
123
  }
389
124
 
390
- getAccount() {
391
- var _this3 = this;
392
-
393
- return _asyncToGenerator(function* () {
394
- var provider = yield _this3.getProvider();
395
- if (!provider) throw new ConnectorNotFoundError();
396
- var accounts = yield provider.request({
397
- method: 'eth_requestAccounts'
398
- }); // return checksum address
125
+ async disconnect() {
126
+ var _this$options3, _getClient$storage3;
399
127
 
400
- return getAddress(accounts[0]);
401
- })();
128
+ const provider = await this.getProvider();
129
+ if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
130
+ provider.removeListener('accountsChanged', this.onAccountsChanged);
131
+ provider.removeListener('chainChanged', this.onChainChanged);
132
+ provider.removeListener('disconnect', this.onDisconnect);
133
+ if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_getClient$storage3 = getClient().storage) === null || _getClient$storage3 === void 0 ? void 0 : _getClient$storage3.removeItem(shimKey);
402
134
  }
403
135
 
404
- getChainId() {
405
- var _this4 = this;
136
+ async getAccount() {
137
+ const provider = await this.getProvider();
138
+ if (!provider) throw new ConnectorNotFoundError();
139
+ const accounts = await provider.request({
140
+ method: 'eth_requestAccounts'
141
+ }); // return checksum address
406
142
 
407
- return _asyncToGenerator(function* () {
408
- var provider = yield _this4.getProvider();
409
- if (!provider) throw new ConnectorNotFoundError();
410
- return yield provider.request({
411
- method: 'eth_chainId'
412
- }).then(normalizeChainId);
413
- })();
143
+ return getAddress(accounts[0]);
414
144
  }
415
145
 
416
- getProvider() {
417
- var _this5 = this;
418
-
419
- return _asyncToGenerator(function* () {
420
- if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(_this5, _provider, window.ethereum);
421
- return _classPrivateFieldGet(_this5, _provider);
422
- })();
146
+ async getChainId() {
147
+ const provider = await this.getProvider();
148
+ if (!provider) throw new ConnectorNotFoundError();
149
+ return await provider.request({
150
+ method: 'eth_chainId'
151
+ }).then(normalizeChainId);
423
152
  }
424
153
 
425
- getSigner() {
426
- var _this6 = this;
427
-
428
- return _asyncToGenerator(function* () {
429
- var provider = _this6.getProvider();
154
+ async getProvider() {
155
+ if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
156
+ return _classPrivateFieldGet(this, _provider);
157
+ }
430
158
 
431
- var account = yield _this6.getAccount();
432
- return new providers.Web3Provider(provider).getSigner(account);
433
- })();
159
+ async getSigner() {
160
+ const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
161
+ return new providers.Web3Provider(provider).getSigner(account);
434
162
  }
435
163
 
436
- isAuthorized() {
437
- var _this7 = this;
164
+ async isAuthorized() {
165
+ try {
166
+ var _this$options4, _getClient$storage4;
438
167
 
439
- return _asyncToGenerator(function* () {
440
- try {
441
- var _this7$options, _client$storage4;
442
-
443
- if ((_this7$options = _this7.options) !== null && _this7$options !== void 0 && _this7$options.shimDisconnect && !((_client$storage4 = client.storage) !== null && _client$storage4 !== void 0 && _client$storage4.getItem(shimKey))) return false;
444
- var provider = yield _this7.getProvider();
445
- if (!provider) throw new ConnectorNotFoundError();
446
- var accounts = yield provider.request({
447
- method: 'eth_accounts'
448
- });
449
- var account = accounts[0];
450
- return !!account;
451
- } catch (_unused) {
452
- return false;
453
- }
454
- })();
168
+ if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(shimKey))) return false;
169
+ const provider = await this.getProvider();
170
+ if (!provider) throw new ConnectorNotFoundError();
171
+ const accounts = await provider.request({
172
+ method: 'eth_accounts'
173
+ });
174
+ const account = accounts[0];
175
+ return !!account;
176
+ } catch {
177
+ return false;
178
+ }
455
179
  }
456
180
 
457
- switchChain(chainId) {
458
- var _this8 = this;
181
+ async switchChain(chainId) {
182
+ const provider = await this.getProvider();
183
+ if (!provider) throw new ConnectorNotFoundError();
184
+ const id = hexValue(chainId);
459
185
 
460
- return _asyncToGenerator(function* () {
461
- var provider = yield _this8.getProvider();
462
- if (!provider) throw new ConnectorNotFoundError();
463
- var id = hexValue(chainId);
186
+ try {
187
+ var _chains$find;
464
188
 
465
- try {
466
- var _chains$find;
467
-
468
- yield provider.request({
469
- method: 'wallet_switchEthereumChain',
470
- params: [{
471
- chainId: id
472
- }]
473
- });
474
- var chains = [..._this8.chains, ...allChains];
475
- return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
476
- id: chainId,
477
- name: "Chain ".concat(id),
478
- rpcUrls: []
479
- };
480
- } catch (error) {
481
- // Indicates chain is not added to MetaMask
482
- if (error.code === 4902) {
483
- try {
484
- var _chain$blockExplorers;
485
-
486
- var chain = _this8.chains.find(x => x.id === chainId);
487
-
488
- if (!chain) throw new ChainNotConfiguredError();
489
- yield provider.request({
490
- method: 'wallet_addEthereumChain',
491
- params: [{
492
- chainId: id,
493
- chainName: chain.name,
494
- nativeCurrency: chain.nativeCurrency,
495
- rpcUrls: chain.rpcUrls,
496
- blockExplorerUrls: (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.map(x => x.url)
497
- }]
498
- });
499
- return chain;
500
- } catch (addError) {
501
- throw new AddChainError();
502
- }
503
- } else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
504
- }
505
- })();
189
+ await provider.request({
190
+ method: 'wallet_switchEthereumChain',
191
+ params: [{
192
+ chainId: id
193
+ }]
194
+ });
195
+ const chains = [...this.chains, ...allChains];
196
+ return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
197
+ id: chainId,
198
+ name: "Chain ".concat(id),
199
+ rpcUrls: {
200
+ default: []
201
+ }
202
+ };
203
+ } catch (error) {
204
+ // Indicates chain is not added to provider
205
+ if (error.code === 4902) {
206
+ try {
207
+ const chain = this.chains.find(x => x.id === chainId);
208
+ if (!chain) throw new ChainNotConfiguredError();
209
+ await provider.request({
210
+ method: 'wallet_addEthereumChain',
211
+ params: [{
212
+ chainId: id,
213
+ chainName: chain.name,
214
+ nativeCurrency: chain.nativeCurrency,
215
+ rpcUrls: this.getRpcUrls(chain),
216
+ blockExplorerUrls: this.getBlockExplorerUrls(chain)
217
+ }]
218
+ });
219
+ return chain;
220
+ } catch (addError) {
221
+ throw new AddChainError();
222
+ }
223
+ } else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
224
+ }
506
225
  }
507
226
 
508
- watchAsset(_ref) {
509
- var _this9 = this;
510
-
511
- return _asyncToGenerator(function* () {
512
- var {
513
- address,
514
- decimals = 18,
515
- image,
516
- symbol
517
- } = _ref;
518
- var provider = yield _this9.getProvider();
519
- if (!provider) throw new ConnectorNotFoundError();
520
- return yield provider.request({
521
- method: 'wallet_watchAsset',
522
- params: {
523
- type: 'ERC20',
524
- options: {
525
- address,
526
- decimals,
527
- image,
528
- symbol
529
- }
227
+ async watchAsset(_ref) {
228
+ let {
229
+ address,
230
+ decimals = 18,
231
+ image,
232
+ symbol
233
+ } = _ref;
234
+ const provider = await this.getProvider();
235
+ if (!provider) throw new ConnectorNotFoundError();
236
+ return await provider.request({
237
+ method: 'wallet_watchAsset',
238
+ params: {
239
+ type: 'ERC20',
240
+ options: {
241
+ address,
242
+ decimals,
243
+ image,
244
+ symbol
530
245
  }
531
- });
532
- })();
246
+ }
247
+ });
533
248
  }
534
249
 
535
250
  }
536
251
 
537
- var noopStorage = {
252
+ const noopStorage = {
538
253
  getItem: _key => '',
539
254
  setItem: (_key, _value) => null,
540
255
  removeItem: _key => null
541
256
  };
542
257
  function createStorage(_ref) {
543
- var {
258
+ let {
544
259
  storage,
545
260
  key: prefix = 'wagmi'
546
261
  } = _ref;
547
- return _objectSpread2(_objectSpread2({}, storage), {}, {
548
- getItem: function getItem(key) {
549
- var defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
550
- var value = storage.getItem("".concat(prefix, ".").concat(key));
262
+ return { ...storage,
263
+ getItem: function (key) {
264
+ let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
265
+ const value = storage.getItem("".concat(prefix, ".").concat(key));
551
266
 
552
267
  try {
553
268
  return value ? JSON.parse(value) : defaultState;
@@ -568,40 +283,18 @@ function createStorage(_ref) {
568
283
  }
569
284
  },
570
285
  removeItem: key => storage.removeItem("".concat(prefix, ".").concat(key))
571
- });
286
+ };
572
287
  }
573
288
 
574
- var defaultConfig = {
575
- connectors: [new InjectedConnector()],
576
- provider: _ref => {
577
- var {
578
- chainId
579
- } = _ref;
580
-
581
- try {
582
- return getDefaultProvider(chainId);
583
- } catch (error) {
584
- return getDefaultProvider();
585
- }
586
- },
587
- storage: createStorage({
588
- storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
589
- })
590
- };
591
-
592
289
  var _lastUsedConnector = /*#__PURE__*/new WeakMap();
593
290
 
594
291
  var _addEffects = /*#__PURE__*/new WeakSet();
595
292
 
596
293
  class Client {
597
294
  constructor() {
598
- var {
599
- autoConnect,
600
- connectors: _connectors = defaultConfig.connectors,
601
- provider: _provider = defaultConfig.provider,
602
- storage = defaultConfig.storage,
603
- webSocketProvider: _webSocketProvider
604
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;
295
+ var _config$autoConnect, _config$connectors, _config$provider, _config$storage;
296
+
297
+ let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
605
298
 
606
299
  _classPrivateMethodInitSpec(this, _addEffects);
607
300
 
@@ -616,53 +309,79 @@ class Client {
616
309
  value: void 0
617
310
  });
618
311
 
619
- this.config = {
620
- autoConnect,
621
- connectors: _connectors,
622
- provider: _provider,
623
- webSocketProvider: _webSocketProvider
312
+ // Set default values for config
313
+ const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
314
+
315
+ const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
316
+
317
+ const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
318
+ try {
319
+ return getDefaultProvider(config.chainId);
320
+ } catch {
321
+ return getDefaultProvider();
322
+ }
624
323
  };
625
- var status = 'disconnected';
626
324
 
627
- var _chainId;
325
+ const storage = (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : createStorage({
326
+ storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
327
+ });
328
+ const _webSocketProvider = config.webSocketProvider; // Check status for autoConnect flag
329
+
330
+ let status = 'disconnected';
331
+
332
+ let _chainId;
628
333
 
629
334
  if (autoConnect) {
630
335
  try {
631
336
  var _JSON$parse, _JSON$parse$state, _data$chain;
632
337
 
633
- var rawState = storage.getItem('state', '');
634
- var data = (_JSON$parse = JSON.parse(rawState || '{}')) === null || _JSON$parse === void 0 ? void 0 : (_JSON$parse$state = _JSON$parse.state) === null || _JSON$parse$state === void 0 ? void 0 : _JSON$parse$state.data; // If account exists in localStorage, set status to reconnecting
338
+ const rawState = storage.getItem('state', '');
339
+ const data = (_JSON$parse = JSON.parse(rawState || '{}')) === null || _JSON$parse === void 0 ? void 0 : (_JSON$parse$state = _JSON$parse.state) === null || _JSON$parse$state === void 0 ? void 0 : _JSON$parse$state.data; // If account exists in localStorage, set status to reconnecting
635
340
 
636
341
  status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
637
342
  _chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id; // eslint-disable-next-line no-empty
638
343
  } catch (_error) {}
639
- }
640
-
641
- this.store = create(subscribeWithSelector(persist((_set, _get) => ({
642
- connectors: typeof _connectors === 'function' ? _connectors({
643
- chainId: _chainId
644
- }) : _connectors,
645
- provider: typeof _provider === 'function' ? _provider({
646
- chainId: _chainId
647
- }) : _provider,
344
+ } // Evaluate initial store values
345
+
346
+
347
+ const connectors_ = typeof _connectors === 'function' ? _connectors({
348
+ chainId: _chainId
349
+ }) : _connectors;
350
+ const provider_ = typeof _provider === 'function' ? _provider({
351
+ chainId: _chainId
352
+ }) : _provider;
353
+ const webSocketProvider_ = typeof _webSocketProvider === 'function' ? _webSocketProvider({
354
+ chainId: _chainId
355
+ }) : _webSocketProvider; // Create store
356
+
357
+ this.store = create(subscribeWithSelector(persist(() => ({
358
+ connectors: connectors_,
359
+ provider: provider_,
648
360
  status,
649
- webSocketProvider: typeof _webSocketProvider === 'function' ? _webSocketProvider({
650
- chainId: _chainId
651
- }) : _webSocketProvider
361
+ webSocketProvider: webSocketProvider_
652
362
  }), {
653
363
  name: 'state',
654
364
  getStorage: () => storage,
655
365
  partialize: state => {
656
366
  var _state$data, _state$data2;
657
367
 
658
- return {
659
- data: {
660
- account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
661
- chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
662
- }
368
+ return { ...(autoConnect && {
369
+ data: {
370
+ account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
371
+ chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
372
+ }
373
+ }),
374
+ chains: state === null || state === void 0 ? void 0 : state.chains
663
375
  };
664
376
  }
665
377
  })));
378
+ this.config = {
379
+ autoConnect,
380
+ connectors: _connectors,
381
+ provider: _provider,
382
+ storage,
383
+ webSocketProvider: _webSocketProvider
384
+ };
666
385
  this.storage = storage;
667
386
 
668
387
  _classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
@@ -670,6 +389,10 @@ class Client {
670
389
  _classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
671
390
  }
672
391
 
392
+ get chains() {
393
+ return this.store.getState().chains;
394
+ }
395
+
673
396
  get connectors() {
674
397
  return this.store.getState().connectors;
675
398
  }
@@ -703,12 +426,12 @@ class Client {
703
426
  }
704
427
 
705
428
  setState(updater) {
706
- var newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
429
+ const newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
707
430
  this.store.setState(newState, true);
708
431
  }
709
432
 
710
433
  clearState() {
711
- this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
434
+ this.setState(x => ({ ...x,
712
435
  connector: undefined,
713
436
  data: undefined,
714
437
  error: undefined,
@@ -716,84 +439,74 @@ class Client {
716
439
  }));
717
440
  }
718
441
 
719
- destroy() {
720
- var _this = this;
721
-
722
- return _asyncToGenerator(function* () {
723
- var _this$connector$disco, _this$connector;
724
-
725
- if (_this.connector) yield (_this$connector$disco = (_this$connector = _this.connector).disconnect) === null || _this$connector$disco === void 0 ? void 0 : _this$connector$disco.call(_this$connector);
442
+ async destroy() {
443
+ var _this$connector$disco, _this$connector;
726
444
 
727
- _this.clearState();
728
-
729
- _this.store.destroy();
730
- })();
445
+ 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));
446
+ this.clearState();
447
+ this.store.destroy();
731
448
  }
732
449
 
733
- autoConnect() {
734
- var _this2 = this;
735
-
736
- return _asyncToGenerator(function* () {
737
- if (!_this2.connectors.length) return; // Try last used connector first
738
-
739
- var sorted = _classPrivateFieldGet(_this2, _lastUsedConnector) ? [..._this2.connectors].sort(x => x.id === _classPrivateFieldGet(_this2, _lastUsedConnector) ? -1 : 1) : _this2.connectors;
740
- var connected = false;
741
-
742
- var _loop = function* _loop(connector) {
743
- if (!connector.ready || !connector.isAuthorized) return "continue";
744
- var isAuthorized = yield connector.isAuthorized();
745
- if (!isAuthorized) return "continue";
746
- var data = yield connector.connect();
747
-
748
- _this2.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
749
- connector,
750
- data,
751
- status: 'connected'
752
- }));
753
-
754
- connected = true;
755
- return "break";
756
- };
757
-
758
- for (var connector of sorted) {
759
- var _ret = yield* _loop(connector);
760
-
761
- if (_ret === "continue") continue;
762
- if (_ret === "break") break;
763
- } // If connecting didn't succeed, set to disconnected
450
+ async autoConnect() {
451
+ if (!this.connectors.length) return; // Try last used connector first
452
+
453
+ const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
454
+ let connected = false;
455
+
456
+ for (const connector of sorted) {
457
+ if (!connector.ready || !connector.isAuthorized) continue;
458
+ const isAuthorized = await connector.isAuthorized();
459
+ if (!isAuthorized) continue;
460
+ const data = await connector.connect();
461
+ this.setState(x => ({ ...x,
462
+ connector,
463
+ chains: connector === null || connector === void 0 ? void 0 : connector.chains,
464
+ data,
465
+ status: 'connected'
466
+ }));
467
+ connected = true;
468
+ break;
469
+ } // If connecting didn't succeed, set to disconnected
764
470
 
765
471
 
766
- if (!connected) _this2.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
767
- status: 'disconnected'
768
- }));
769
- return _this2.data;
770
- })();
472
+ if (!connected) this.setState(x => ({ ...x,
473
+ status: 'disconnected'
474
+ }));
475
+ return this.data;
771
476
  }
772
477
 
773
478
  setLastUsedConnector() {
774
479
  var _this$storage;
775
480
 
776
- var lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
481
+ let lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
777
482
  (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
778
483
  }
779
484
 
780
485
  }
781
486
 
782
487
  function _addEffects2() {
783
- var onChange = data => this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
784
- data: _objectSpread2(_objectSpread2({}, x.data), data)
785
- }));
488
+ const onChange = data => {
489
+ this.setState(x => ({ ...x,
490
+ data: { ...x.data,
491
+ ...data
492
+ }
493
+ }));
494
+ };
786
495
 
787
- var onDisconnect = () => this.clearState();
496
+ const onDisconnect = () => {
497
+ this.clearState();
498
+ };
788
499
 
789
- var onError = error => this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
790
- error
791
- }));
500
+ const onError = error => {
501
+ this.setState(x => ({ ...x,
502
+ error
503
+ }));
504
+ };
792
505
 
793
- this.store.subscribe(_ref2 => {
794
- var {
506
+ this.store.subscribe(_ref => {
507
+ let {
795
508
  connector
796
- } = _ref2;
509
+ } = _ref;
797
510
  return connector;
798
511
  }, (connector, prevConnector) => {
799
512
  var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
@@ -806,23 +519,23 @@ function _addEffects2() {
806
519
  (_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
807
520
  (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
808
521
  });
809
- var {
522
+ const {
810
523
  connectors,
811
524
  provider,
812
525
  webSocketProvider
813
526
  } = this.config;
814
- var subscribeConnectors = typeof connectors === 'function';
815
- var subscribeProvider = typeof provider === 'function';
816
- var subscribeWebSocketProvider = typeof webSocketProvider === 'function';
817
- if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref3 => {
527
+ const subscribeConnectors = typeof connectors === 'function';
528
+ const subscribeProvider = typeof provider === 'function';
529
+ const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
530
+ if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
818
531
  var _data$chain2;
819
532
 
820
- var {
533
+ let {
821
534
  data
822
- } = _ref3;
535
+ } = _ref2;
823
536
  return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
824
537
  }, chainId => {
825
- this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
538
+ this.setState(x => ({ ...x,
826
539
  connectors: subscribeConnectors ? connectors({
827
540
  chainId
828
541
  }) : x.connectors,
@@ -836,108 +549,115 @@ function _addEffects2() {
836
549
  });
837
550
  }
838
551
 
839
- var client;
552
+ let client;
840
553
  function createClient(config) {
841
- var client_ = new Client(config);
554
+ const client_ = new Client(config);
842
555
  client = client_;
843
556
  return client_;
844
557
  }
845
-
846
- function connect(_x) {
847
- return _connect.apply(this, arguments);
558
+ function getClient() {
559
+ return client;
848
560
  }
849
561
 
850
- function _connect() {
851
- _connect = _asyncToGenerator(function* (connector) {
852
- var activeConnector = client.connector;
853
- if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
854
- var data = yield connector.connect();
855
- client.setLastUsedConnector(connector.id);
856
- client.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
857
- connector,
858
- data
859
- }));
860
- client.storage.setItem('connected', true);
861
- return {
862
- data,
863
- connector
864
- };
865
- });
866
- return _connect.apply(this, arguments);
562
+ async function connect(_ref) {
563
+ let {
564
+ connector
565
+ } = _ref;
566
+ const activeConnector = client.connector;
567
+ if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
568
+ const data = await connector.connect();
569
+ client.setLastUsedConnector(connector.id);
570
+ client.setState(x => ({ ...x,
571
+ connector,
572
+ chains: connector === null || connector === void 0 ? void 0 : connector.chains,
573
+ data
574
+ }));
575
+ client.storage.setItem('connected', true);
576
+ return { ...data,
577
+ connector
578
+ };
867
579
  }
868
580
 
869
- function disconnect() {
870
- return _disconnect.apply(this, arguments);
581
+ async function disconnect() {
582
+ const client = getClient();
583
+ if (client.connector) await client.connector.disconnect();
584
+ client.clearState();
585
+ client.storage.removeItem('connected');
871
586
  }
872
587
 
873
- function _disconnect() {
874
- _disconnect = _asyncToGenerator(function* () {
875
- if (client.connector) yield client.connector.disconnect();
876
- client.storage.removeItem('connected');
877
- client.clearState();
588
+ function getProvider() {
589
+ let {
590
+ chainId
591
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
592
+ const client = getClient();
593
+ if (chainId && typeof client.config.provider === 'function') return client.config.provider({
594
+ chainId
878
595
  });
879
- return _disconnect.apply(this, arguments);
596
+ return client.provider;
880
597
  }
881
598
 
882
- function fetchBalance(_x) {
883
- return _fetchBalance.apply(this, arguments);
599
+ function getWebSocketProvider() {
600
+ let {
601
+ chainId
602
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
603
+ const client = getClient();
604
+ if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
605
+ chainId
606
+ });
607
+ return client.webSocketProvider;
884
608
  }
885
609
 
886
- function _fetchBalance() {
887
- _fetchBalance = _asyncToGenerator(function* (_ref) {
888
- var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
889
-
890
- var {
891
- addressOrName,
892
- formatUnits: unit = 'ether',
893
- token
894
- } = _ref;
610
+ async function fetchBalance(_ref) {
611
+ var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
895
612
 
896
- if (token) {
897
- var contract = new Contract(token, erc20ABI, client.provider);
898
- var [_value, decimals, symbol] = yield Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
899
- return {
900
- decimals,
901
- formatted: formatUnits(_value, unit),
902
- symbol,
903
- unit,
904
- value: _value
905
- };
906
- }
613
+ let {
614
+ addressOrName,
615
+ chainId,
616
+ formatUnits: unit = 'ether',
617
+ token
618
+ } = _ref;
619
+ const client = getClient();
620
+ const provider = getProvider({
621
+ chainId
622
+ });
907
623
 
908
- var chains = [...((_client$connector$cha = (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...allChains];
909
- var value = yield client.provider.getBalance(addressOrName);
910
- var chain = chains.find(x => x.id === client.provider.network.chainId);
624
+ if (token) {
625
+ const contract = new Contract(token, erc20ABI, provider);
626
+ const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
911
627
  return {
912
- decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
628
+ decimals,
913
629
  formatted: formatUnits(value, unit),
914
- symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
630
+ symbol,
915
631
  unit,
916
632
  value
917
633
  };
918
- });
919
- return _fetchBalance.apply(this, arguments);
920
- }
634
+ }
921
635
 
922
- function fetchSigner() {
923
- return _fetchSigner.apply(this, arguments);
636
+ const chains = [...((_client$connector$cha = (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...allChains];
637
+ const value = await provider.getBalance(addressOrName);
638
+ const chain = chains.find(x => x.id === provider.network.chainId);
639
+ return {
640
+ decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
641
+ formatted: formatUnits(value, unit),
642
+ symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
643
+ unit,
644
+ value
645
+ };
924
646
  }
925
647
 
926
- function _fetchSigner() {
927
- _fetchSigner = _asyncToGenerator(function* () {
928
- var _client$connector, _client$connector$get;
648
+ async function fetchSigner() {
649
+ var _client$connector, _client$connector$get;
929
650
 
930
- var signer = yield (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector);
931
- return signer;
932
- });
933
- return _fetchSigner.apply(this, arguments);
651
+ const client = getClient();
652
+ const signer = await ((_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector));
653
+ return signer;
934
654
  }
935
655
 
936
656
  function getAccount() {
937
- var {
657
+ const {
938
658
  data,
939
659
  connector
940
- } = client;
660
+ } = getClient();
941
661
  return {
942
662
  address: data === null || data === void 0 ? void 0 : data.account,
943
663
  connector
@@ -945,88 +665,71 @@ function getAccount() {
945
665
  }
946
666
 
947
667
  function getNetwork() {
948
- var _data$chain, _data$chain2, _connector$chains, _find;
668
+ var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
949
669
 
950
- var {
951
- connector,
952
- data
953
- } = client;
954
- var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
955
- var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
956
- var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
957
- var activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
670
+ const client = getClient();
671
+ const chainId = (_client$data = client.data) === null || _client$data === void 0 ? void 0 : (_client$data$chain = _client$data.chain) === null || _client$data$chain === void 0 ? void 0 : _client$data$chain.id;
672
+ const activeChains = (_client$chains = client.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
673
+ const activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
958
674
  id: chainId,
959
675
  name: "Chain ".concat(chainId),
960
- rpcUrls: []
676
+ rpcUrls: {
677
+ default: []
678
+ }
961
679
  };
962
680
  return {
963
- chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, {
964
- id: chainId,
965
- unsupported
966
- }) : undefined,
681
+ chain: chainId ? { ...activeChain,
682
+ ...((_client$data2 = client.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
683
+ id: chainId
684
+ } : undefined,
967
685
  chains: activeChains
968
686
  };
969
687
  }
970
688
 
971
- function signMessage(_x) {
972
- return _signMessage.apply(this, arguments);
973
- }
974
-
975
- function _signMessage() {
976
- _signMessage = _asyncToGenerator(function* (args) {
977
- try {
978
- var signer = yield fetchSigner();
979
- if (!signer) throw new ConnectorNotFoundError();
980
- return yield signer.signMessage(args.message);
981
- } catch (error_) {
982
- var error = error_;
983
- if (error_.code === 4001) error = new UserRejectedRequestError();
984
- throw error;
985
- }
986
- });
987
- return _signMessage.apply(this, arguments);
988
- }
989
-
990
- function signTypedData(_x) {
991
- return _signTypedData.apply(this, arguments);
689
+ async function signMessage(args) {
690
+ try {
691
+ const signer = await fetchSigner();
692
+ if (!signer) throw new ConnectorNotFoundError();
693
+ return await signer.signMessage(args.message);
694
+ } catch (error_) {
695
+ let error = error_;
696
+ if (error_.code === 4001) error = new UserRejectedRequestError();
697
+ throw error;
698
+ }
992
699
  }
993
700
 
994
- function _signTypedData() {
995
- _signTypedData = _asyncToGenerator(function* (args) {
996
- try {
997
- var signer = yield fetchSigner();
998
- if (!signer) throw new ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
999
-
1000
- return yield signer._signTypedData(args.domain, args.types, args.value);
1001
- } catch (error_) {
1002
- var error = error_;
1003
- if (error_.code === 4001) error = new UserRejectedRequestError();
1004
- throw error;
1005
- }
1006
- });
1007
- return _signTypedData.apply(this, arguments);
1008
- }
701
+ async function signTypedData(args) {
702
+ try {
703
+ const signer = await fetchSigner();
704
+ if (!signer) throw new ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
1009
705
 
1010
- function switchNetwork(_x) {
1011
- return _switchNetwork.apply(this, arguments);
706
+ return await signer._signTypedData(args.domain, args.types, args.value);
707
+ } catch (error_) {
708
+ let error = error_;
709
+ if (error_.code === 4001) error = new UserRejectedRequestError();
710
+ throw error;
711
+ }
1012
712
  }
1013
713
 
1014
- function _switchNetwork() {
1015
- _switchNetwork = _asyncToGenerator(function* (args) {
1016
- var _client$connector;
714
+ async function switchNetwork(_ref) {
715
+ var _client$connector;
1017
716
 
1018
- if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new SwitchChainNotSupportedError();
1019
- var chain = yield client.connector.switchChain(args.chainId);
1020
- return chain;
1021
- });
1022
- return _switchNetwork.apply(this, arguments);
717
+ let {
718
+ chainId
719
+ } = _ref;
720
+ const client = getClient();
721
+ if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new SwitchChainNotSupportedError();
722
+ const chain = await client.connector.switchChain(chainId);
723
+ return chain;
1023
724
  }
1024
725
 
1025
726
  function watchAccount(callback) {
1026
- var handleChange = () => callback(getAccount());
727
+ const client = getClient();
1027
728
 
1028
- var unsubscribe = client.subscribe(_ref => {
1029
- var {
729
+ const handleChange = () => callback(getAccount());
730
+
731
+ const unsubscribe = client.subscribe(_ref => {
732
+ let {
1030
733
  data,
1031
734
  connector
1032
735
  } = _ref;
@@ -1041,22 +744,16 @@ function watchAccount(callback) {
1041
744
  }
1042
745
 
1043
746
  function watchBalance(args, callback) {
1044
- var handleChange = /*#__PURE__*/function () {
1045
- var _ref = _asyncToGenerator(function* () {
1046
- return callback(yield fetchBalance(args));
1047
- });
747
+ const client = getClient();
1048
748
 
1049
- return function handleChange() {
1050
- return _ref.apply(this, arguments);
1051
- };
1052
- }();
749
+ const handleChange = async () => callback(await fetchBalance(args));
1053
750
 
1054
- var unsubscribe = client.subscribe(_ref2 => {
751
+ const unsubscribe = client.subscribe(_ref => {
1055
752
  var _data$chain;
1056
753
 
1057
- var {
754
+ let {
1058
755
  data
1059
- } = _ref2;
756
+ } = _ref;
1060
757
  return {
1061
758
  account: data === null || data === void 0 ? void 0 : data.account,
1062
759
  chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id
@@ -1068,43 +765,39 @@ function watchBalance(args, callback) {
1068
765
  }
1069
766
 
1070
767
  function watchNetwork(callback) {
1071
- var handleChange = () => callback(getNetwork());
768
+ const client = getClient();
1072
769
 
1073
- var unsubscribe = client.subscribe(_ref => {
770
+ const handleChange = () => callback(getNetwork());
771
+
772
+ const unsubscribe = client.subscribe(_ref => {
1074
773
  var _data$chain;
1075
774
 
1076
- var {
775
+ let {
1077
776
  data,
1078
- connector
777
+ chains
1079
778
  } = _ref;
1080
779
  return {
1081
780
  chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
1082
- connector
781
+ chains
1083
782
  };
1084
783
  }, handleChange, {
1085
- equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.connector === previous.connector
784
+ equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.chains === previous.chains
1086
785
  });
1087
786
  return unsubscribe;
1088
787
  }
1089
788
 
1090
789
  function watchSigner(callback) {
1091
- var handleChange = /*#__PURE__*/function () {
1092
- var _ref = _asyncToGenerator(function* () {
1093
- return callback(yield fetchSigner());
1094
- });
790
+ const client = getClient();
1095
791
 
1096
- return function handleChange() {
1097
- return _ref.apply(this, arguments);
1098
- };
1099
- }();
792
+ const handleChange = async () => callback(await fetchSigner());
1100
793
 
1101
- var unsubscribe = client.subscribe(_ref2 => {
794
+ const unsubscribe = client.subscribe(_ref => {
1102
795
  var _data$chain;
1103
796
 
1104
- var {
797
+ let {
1105
798
  data,
1106
799
  connector
1107
- } = _ref2;
800
+ } = _ref;
1108
801
  return {
1109
802
  account: data === null || data === void 0 ? void 0 : data.account,
1110
803
  chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
@@ -1117,7 +810,7 @@ function watchSigner(callback) {
1117
810
  }
1118
811
 
1119
812
  function getContract(_ref) {
1120
- var {
813
+ let {
1121
814
  addressOrName,
1122
815
  contractInterface,
1123
816
  signerOrProvider
@@ -1125,27 +818,24 @@ function getContract(_ref) {
1125
818
  return new Contract(addressOrName, contractInterface, signerOrProvider);
1126
819
  }
1127
820
 
1128
- function readContract(_x, _x2) {
1129
- return _readContract.apply(this, arguments);
1130
- }
1131
-
1132
- function _readContract() {
1133
- _readContract = _asyncToGenerator(function* (contractConfig, functionName) {
1134
- var {
1135
- args,
1136
- overrides
1137
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1138
- var {
1139
- provider
1140
- } = client;
1141
- var contract = getContract(_objectSpread2({
1142
- signerOrProvider: provider
1143
- }, contractConfig));
1144
- var params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
1145
- var response = yield contract[functionName](...params);
1146
- return response;
821
+ async function readContract(contractConfig, functionName) {
822
+ let {
823
+ args,
824
+ chainId,
825
+ overrides
826
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
827
+ const provider = getProvider({
828
+ chainId
829
+ });
830
+ const contract = getContract({
831
+ signerOrProvider: provider,
832
+ ...contractConfig
1147
833
  });
1148
- return _readContract.apply(this, arguments);
834
+ const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
835
+ const contractFunction = contract[functionName];
836
+ if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
837
+ const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
838
+ return response;
1149
839
  }
1150
840
 
1151
841
  function watchContractEvent(
@@ -1153,36 +843,37 @@ function watchContractEvent(
1153
843
  contractArgs,
1154
844
  /** Event name to listen to */
1155
845
  eventName, callback) {
1156
- var {
846
+ let {
847
+ chainId,
1157
848
  once
1158
849
  } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1159
- var contract;
850
+ let contract;
1160
851
 
1161
- var watchEvent = /*#__PURE__*/function () {
1162
- var _ref = _asyncToGenerator(function* () {
1163
- if (contract) {
1164
- var _contract;
852
+ const watchEvent = async () => {
853
+ if (contract) {
854
+ var _contract;
1165
855
 
1166
- (_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
1167
- }
856
+ (_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
857
+ }
1168
858
 
1169
- contract = getContract(_objectSpread2({
1170
- signerOrProvider: client.webSocketProvider || client.provider
1171
- }, contractArgs));
1172
- if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
859
+ contract = getContract({
860
+ signerOrProvider: getWebSocketProvider({
861
+ chainId
862
+ }) || getProvider({
863
+ chainId
864
+ }),
865
+ ...contractArgs
1173
866
  });
1174
-
1175
- return function watchEvent() {
1176
- return _ref.apply(this, arguments);
1177
- };
1178
- }();
867
+ if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
868
+ };
1179
869
 
1180
870
  watchEvent();
1181
- var unsubscribe = client.subscribe(_ref2 => {
1182
- var {
871
+ const client = getClient();
872
+ const unsubscribe = client.subscribe(_ref => {
873
+ let {
1183
874
  provider,
1184
875
  webSocketProvider
1185
- } = _ref2;
876
+ } = _ref;
1186
877
  return {
1187
878
  provider,
1188
879
  webSocketProvider
@@ -1198,23 +889,24 @@ eventName, callback) {
1198
889
  };
1199
890
  }
1200
891
 
1201
- function fetchBlockNumber() {
1202
- return _fetchBlockNumber.apply(this, arguments);
1203
- }
1204
-
1205
- function _fetchBlockNumber() {
1206
- _fetchBlockNumber = _asyncToGenerator(function* () {
1207
- var blockNumber = yield client.provider.getBlockNumber();
1208
- return blockNumber;
892
+ async function fetchBlockNumber() {
893
+ let {
894
+ chainId
895
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
896
+ const provider = getProvider({
897
+ chainId
1209
898
  });
1210
- return _fetchBlockNumber.apply(this, arguments);
899
+ const blockNumber = await provider.getBlockNumber();
900
+ return blockNumber;
1211
901
  }
1212
902
 
1213
903
  function watchBlockNumber(args, callback) {
1214
- var prevProvider;
904
+ var _client$webSocketProv;
1215
905
 
1216
- var createListener = provider => {
1217
- var listener = blockNumber => {
906
+ let prevProvider;
907
+
908
+ const createListener = provider => {
909
+ const listener = blockNumber => {
1218
910
  callback(blockNumber);
1219
911
  };
1220
912
 
@@ -1228,14 +920,11 @@ function watchBlockNumber(args, callback) {
1228
920
  prevProvider = provider;
1229
921
  };
1230
922
 
1231
- var {
1232
- provider,
1233
- webSocketProvider
1234
- } = client;
1235
- var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
923
+ const client = getClient();
924
+ const provider_ = (_client$webSocketProv = client.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client.provider;
1236
925
  if (args.listen) createListener(provider_);
1237
- var unsubscribe = client.subscribe(_ref => {
1238
- var {
926
+ const unsubscribe = client.subscribe(_ref => {
927
+ let {
1239
928
  provider,
1240
929
  webSocketProvider
1241
930
  } = _ref;
@@ -1243,25 +932,19 @@ function watchBlockNumber(args, callback) {
1243
932
  provider,
1244
933
  webSocketProvider
1245
934
  };
1246
- }, /*#__PURE__*/function () {
1247
- var _ref3 = _asyncToGenerator(function* (_ref2) {
1248
- var {
1249
- provider,
1250
- webSocketProvider
1251
- } = _ref2;
1252
- var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
1253
-
1254
- if (args.listen && provider_) {
1255
- createListener(provider_);
1256
- }
935
+ }, async _ref2 => {
936
+ let {
937
+ provider,
938
+ webSocketProvider
939
+ } = _ref2;
940
+ const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
1257
941
 
1258
- callback(yield fetchBlockNumber());
1259
- });
942
+ if (args.listen && provider_) {
943
+ createListener(provider_);
944
+ }
1260
945
 
1261
- return function (_x) {
1262
- return _ref3.apply(this, arguments);
1263
- };
1264
- }(), {
946
+ callback(await fetchBlockNumber());
947
+ }, {
1265
948
  equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
1266
949
  });
1267
950
  return unsubscribe;
@@ -1270,26 +953,19 @@ function watchBlockNumber(args, callback) {
1270
953
  function watchReadContract(contractConfig, functionName) {
1271
954
  var _config$listenToBlock;
1272
955
 
1273
- var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1274
- var callback = arguments.length > 3 ? arguments[3] : undefined;
956
+ let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
957
+ let callback = arguments.length > 3 ? arguments[3] : undefined;
958
+ const client = getClient();
1275
959
 
1276
- var handleChange = /*#__PURE__*/function () {
1277
- var _ref = _asyncToGenerator(function* () {
1278
- return callback(yield readContract(contractConfig, functionName, config));
1279
- });
960
+ const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
1280
961
 
1281
- return function handleChange() {
1282
- return _ref.apply(this, arguments);
1283
- };
1284
- }();
1285
-
1286
- var unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
962
+ const unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
1287
963
  listen: true
1288
964
  }, handleChange) : undefined;
1289
- var unsubscribe = client.subscribe(_ref2 => {
1290
- var {
965
+ const unsubscribe = client.subscribe(_ref => {
966
+ let {
1291
967
  provider
1292
- } = _ref2;
968
+ } = _ref;
1293
969
  return provider;
1294
970
  }, handleChange);
1295
971
  return () => {
@@ -1298,224 +974,172 @@ function watchReadContract(contractConfig, functionName) {
1298
974
  };
1299
975
  }
1300
976
 
1301
- function writeContract(_x, _x2) {
1302
- return _writeContract.apply(this, arguments);
1303
- }
1304
-
1305
- function _writeContract() {
1306
- _writeContract = _asyncToGenerator(function* (contractConfig, functionName) {
1307
- var {
1308
- args,
1309
- overrides
1310
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1311
- var {
1312
- connector
1313
- } = client;
1314
- var contract = getContract(contractConfig);
1315
- if (!connector) throw new ConnectorNotFoundError();
1316
- var params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
1317
-
1318
- try {
1319
- var signer = yield connector.getSigner();
1320
- var contract_ = contract.connect(signer);
1321
- var response = yield contract_[functionName](...params);
1322
- return response;
1323
- } catch (error_) {
1324
- var error = error_;
1325
- if (error_.code === 4001) error = new UserRejectedRequestError();
1326
- throw error;
1327
- }
1328
- });
1329
- return _writeContract.apply(this, arguments);
1330
- }
1331
-
1332
- function fetchEnsAddress(_x) {
1333
- return _fetchEnsAddress.apply(this, arguments);
977
+ async function writeContract(contractConfig, functionName) {
978
+ let {
979
+ args,
980
+ overrides
981
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
982
+ const client = getClient();
983
+ if (!client.connector) throw new ConnectorNotFoundError();
984
+ const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
985
+
986
+ try {
987
+ const signer = await client.connector.getSigner();
988
+ const contract = getContract(contractConfig);
989
+ const contractWithSigner = contract.connect(signer);
990
+ const contractFunction = contractWithSigner[functionName];
991
+ if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
992
+ const response = await contractFunction(...params);
993
+ return response;
994
+ } catch (error_) {
995
+ let error = error_;
996
+ if (error_.code === 4001) error = new UserRejectedRequestError();
997
+ throw error;
998
+ }
1334
999
  }
1335
1000
 
1336
- function _fetchEnsAddress() {
1337
- _fetchEnsAddress = _asyncToGenerator(function* (_ref) {
1338
- var {
1339
- name
1340
- } = _ref;
1341
- var address = yield client.provider.resolveName(name);
1342
-
1343
- try {
1344
- return address ? getAddress(address) : null;
1345
- } catch (_error) {
1346
- return null;
1347
- }
1001
+ async function fetchEnsAddress(_ref) {
1002
+ let {
1003
+ chainId,
1004
+ name
1005
+ } = _ref;
1006
+ const provider = getProvider({
1007
+ chainId
1348
1008
  });
1349
- return _fetchEnsAddress.apply(this, arguments);
1350
- }
1009
+ const address = await provider.resolveName(name);
1351
1010
 
1352
- function fetchEnsAvatar(_x) {
1353
- return _fetchEnsAvatar.apply(this, arguments);
1011
+ try {
1012
+ return address ? getAddress(address) : null;
1013
+ } catch (_error) {
1014
+ return null;
1015
+ }
1354
1016
  }
1355
1017
 
1356
- function _fetchEnsAvatar() {
1357
- _fetchEnsAvatar = _asyncToGenerator(function* (_ref) {
1358
- var {
1359
- addressOrName
1360
- } = _ref;
1361
- // TODO: Update with more advanced logic
1362
- // https://github.com/ensdomains/ens-avatar
1363
- var avatar = yield client.provider.getAvatar(addressOrName);
1364
- return avatar;
1365
- });
1366
- return _fetchEnsAvatar.apply(this, arguments);
1367
- }
1018
+ async function fetchEnsAvatar(_ref) {
1019
+ let {
1020
+ addressOrName,
1021
+ chainId
1022
+ } = _ref;
1023
+ const provider = getProvider({
1024
+ chainId
1025
+ }); // TODO: Update with more advanced logic
1026
+ // https://github.com/ensdomains/ens-avatar
1368
1027
 
1369
- function fetchEnsName(_x) {
1370
- return _fetchEnsName.apply(this, arguments);
1028
+ const avatar = await provider.getAvatar(addressOrName);
1029
+ return avatar;
1371
1030
  }
1372
1031
 
1373
- function _fetchEnsName() {
1374
- _fetchEnsName = _asyncToGenerator(function* (_ref) {
1375
- var {
1376
- address
1377
- } = _ref;
1378
- var ensName = yield client.provider.lookupAddress(address);
1379
- return ensName;
1032
+ async function fetchEnsName(_ref) {
1033
+ let {
1034
+ address,
1035
+ chainId
1036
+ } = _ref;
1037
+ const provider = getProvider({
1038
+ chainId
1380
1039
  });
1381
- return _fetchEnsName.apply(this, arguments);
1382
- }
1383
-
1384
- function fetchEnsResolver(_x) {
1385
- return _fetchEnsResolver.apply(this, arguments);
1040
+ const ensName = await provider.lookupAddress(address);
1041
+ return ensName;
1386
1042
  }
1387
1043
 
1388
- function _fetchEnsResolver() {
1389
- _fetchEnsResolver = _asyncToGenerator(function* (_ref) {
1390
- var {
1391
- name
1392
- } = _ref;
1393
- var resolver = yield client.provider.getResolver(name);
1394
- return resolver;
1044
+ async function fetchEnsResolver(_ref) {
1045
+ let {
1046
+ chainId,
1047
+ name
1048
+ } = _ref;
1049
+ const provider = getProvider({
1050
+ chainId
1395
1051
  });
1396
- return _fetchEnsResolver.apply(this, arguments);
1052
+ const resolver = await provider.getResolver(name);
1053
+ return resolver;
1397
1054
  }
1398
1055
 
1399
1056
  function watchEnsAddress(args, callback) {
1400
- var handleChange = /*#__PURE__*/function () {
1401
- var _ref = _asyncToGenerator(function* () {
1402
- return callback(yield fetchEnsAddress(args));
1403
- });
1057
+ const client = getClient();
1404
1058
 
1405
- return function handleChange() {
1406
- return _ref.apply(this, arguments);
1407
- };
1408
- }();
1059
+ const handleChange = async () => callback(await fetchEnsAddress(args));
1409
1060
 
1410
- var unsubscribe = client.subscribe(_ref2 => {
1411
- var {
1061
+ const unsubscribe = client.subscribe(_ref => {
1062
+ let {
1412
1063
  provider
1413
- } = _ref2;
1064
+ } = _ref;
1414
1065
  return provider;
1415
1066
  }, handleChange);
1416
1067
  return unsubscribe;
1417
1068
  }
1418
1069
 
1419
1070
  function watchEnsAvatar(args, callback) {
1420
- var handleChange = /*#__PURE__*/function () {
1421
- var _ref = _asyncToGenerator(function* () {
1422
- return callback(yield fetchEnsAvatar(args));
1423
- });
1071
+ const client = getClient();
1424
1072
 
1425
- return function handleChange() {
1426
- return _ref.apply(this, arguments);
1427
- };
1428
- }();
1073
+ const handleChange = async () => callback(await fetchEnsAvatar(args));
1429
1074
 
1430
- var unsubscribe = client.subscribe(_ref2 => {
1431
- var {
1075
+ const unsubscribe = client.subscribe(_ref => {
1076
+ let {
1432
1077
  provider
1433
- } = _ref2;
1078
+ } = _ref;
1434
1079
  return provider;
1435
1080
  }, handleChange);
1436
1081
  return unsubscribe;
1437
1082
  }
1438
1083
 
1439
1084
  function watchEnsName(args, callback) {
1440
- var handleChange = /*#__PURE__*/function () {
1441
- var _ref = _asyncToGenerator(function* () {
1442
- return callback(yield fetchEnsName(args));
1443
- });
1085
+ const client = getClient();
1444
1086
 
1445
- return function handleChange() {
1446
- return _ref.apply(this, arguments);
1447
- };
1448
- }();
1087
+ const handleChange = async () => callback(await fetchEnsName(args));
1449
1088
 
1450
- var unsubscribe = client.subscribe(_ref2 => {
1451
- var {
1089
+ const unsubscribe = client.subscribe(_ref => {
1090
+ let {
1452
1091
  provider
1453
- } = _ref2;
1092
+ } = _ref;
1454
1093
  return provider;
1455
1094
  }, handleChange);
1456
1095
  return unsubscribe;
1457
1096
  }
1458
1097
 
1459
1098
  function watchEnsResolver(args, callback) {
1460
- var handleChange = /*#__PURE__*/function () {
1461
- var _ref = _asyncToGenerator(function* () {
1462
- return callback(yield fetchEnsResolver(args));
1463
- });
1099
+ const client = getClient();
1464
1100
 
1465
- return function handleChange() {
1466
- return _ref.apply(this, arguments);
1467
- };
1468
- }();
1101
+ const handleChange = async () => callback(await fetchEnsResolver(args));
1469
1102
 
1470
- var unsubscribe = client.subscribe(_ref2 => {
1471
- var {
1103
+ const unsubscribe = client.subscribe(_ref => {
1104
+ let {
1472
1105
  provider
1473
- } = _ref2;
1106
+ } = _ref;
1474
1107
  return provider;
1475
1108
  }, handleChange);
1476
1109
  return unsubscribe;
1477
1110
  }
1478
1111
 
1479
- function fetchFeeData() {
1480
- return _fetchFeeData.apply(this, arguments);
1481
- }
1482
-
1483
- function _fetchFeeData() {
1484
- _fetchFeeData = _asyncToGenerator(function* () {
1485
- var {
1486
- formatUnits: units = 'wei'
1487
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1488
- var feeData = yield client.provider.getFeeData();
1489
- var formatted = {
1490
- gasPrice: formatUnits(feeData.gasPrice, units),
1491
- maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
1492
- maxPriorityFeePerGas: formatUnits(feeData.maxPriorityFeePerGas, units)
1493
- };
1494
- return _objectSpread2(_objectSpread2({}, feeData), {}, {
1495
- formatted
1496
- });
1112
+ async function fetchFeeData() {
1113
+ let {
1114
+ chainId,
1115
+ formatUnits: units = 'wei'
1116
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1117
+ const provider = getProvider({
1118
+ chainId
1497
1119
  });
1498
- return _fetchFeeData.apply(this, arguments);
1120
+ const feeData = await provider.getFeeData();
1121
+ const formatted = {
1122
+ gasPrice: formatUnits(feeData.gasPrice, units),
1123
+ maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
1124
+ maxPriorityFeePerGas: formatUnits(feeData.maxPriorityFeePerGas, units)
1125
+ };
1126
+ return { ...feeData,
1127
+ formatted
1128
+ };
1499
1129
  }
1500
1130
 
1501
1131
  function watchFeeData(args, callback) {
1502
- var handleChange = /*#__PURE__*/function () {
1503
- var _ref = _asyncToGenerator(function* () {
1504
- return callback(yield fetchFeeData(args));
1505
- });
1132
+ const client = getClient();
1506
1133
 
1507
- return function handleChange() {
1508
- return _ref.apply(this, arguments);
1509
- };
1510
- }();
1134
+ const handleChange = async () => callback(await fetchFeeData(args));
1511
1135
 
1512
- var unwatch = args.listenToBlock ? watchBlockNumber({
1136
+ const unwatch = args.listenToBlock ? watchBlockNumber({
1513
1137
  listen: true
1514
1138
  }, handleChange) : undefined;
1515
- var unsubscribe = client.subscribe(_ref2 => {
1516
- var {
1139
+ const unsubscribe = client.subscribe(_ref => {
1140
+ let {
1517
1141
  provider
1518
- } = _ref2;
1142
+ } = _ref;
1519
1143
  return provider;
1520
1144
  }, handleChange);
1521
1145
  return () => {
@@ -1524,100 +1148,63 @@ function watchFeeData(args, callback) {
1524
1148
  };
1525
1149
  }
1526
1150
 
1527
- function getProvider() {
1528
- return client.provider;
1529
- }
1530
-
1531
- function getWebSocketProvider() {
1532
- return client.webSocketProvider;
1533
- }
1534
-
1535
- function fetchToken(_x) {
1536
- return _fetchToken.apply(this, arguments);
1537
- }
1538
-
1539
- function _fetchToken() {
1540
- _fetchToken = _asyncToGenerator(function* (_ref) {
1541
- var {
1542
- address,
1543
- formatUnits: units = 'ether'
1544
- } = _ref;
1545
- if (!address) throw new Error('address is required');
1546
- var {
1547
- provider
1548
- } = client;
1549
- var contract = new Contract(address, erc20ABI, provider);
1550
- var [symbol, decimals, totalSupply] = yield Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
1551
- var token = {
1552
- address,
1553
- decimals,
1554
- symbol,
1555
- totalSupply: {
1556
- formatted: formatUnits(totalSupply, units),
1557
- value: totalSupply
1558
- }
1559
- };
1560
- return token;
1151
+ async function fetchToken(_ref) {
1152
+ let {
1153
+ address,
1154
+ chainId,
1155
+ formatUnits: units = 'ether'
1156
+ } = _ref;
1157
+ const provider = getProvider({
1158
+ chainId
1561
1159
  });
1562
- return _fetchToken.apply(this, arguments);
1160
+ const contract = new Contract(address, erc20ABI, provider);
1161
+ const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
1162
+ const token = {
1163
+ address,
1164
+ decimals,
1165
+ symbol,
1166
+ totalSupply: {
1167
+ formatted: formatUnits(totalSupply, units),
1168
+ value: totalSupply
1169
+ }
1170
+ };
1171
+ return token;
1563
1172
  }
1564
1173
 
1565
1174
  function watchToken(args, callback) {
1566
- var handleChange = /*#__PURE__*/function () {
1567
- var _ref = _asyncToGenerator(function* () {
1568
- return callback(yield fetchToken(args));
1569
- });
1175
+ const client = getClient();
1570
1176
 
1571
- return function handleChange() {
1572
- return _ref.apply(this, arguments);
1573
- };
1574
- }();
1177
+ const handleChange = async () => callback(await fetchToken(args));
1575
1178
 
1576
- var unsubscribe = client.subscribe(_ref2 => {
1577
- var {
1179
+ const unsubscribe = client.subscribe(_ref => {
1180
+ let {
1578
1181
  provider
1579
- } = _ref2;
1182
+ } = _ref;
1580
1183
  return provider;
1581
1184
  }, handleChange);
1582
1185
  return unsubscribe;
1583
1186
  }
1584
1187
 
1585
- function sendTransaction(_x) {
1586
- return _sendTransaction.apply(this, arguments);
1587
- }
1588
-
1589
- function _sendTransaction() {
1590
- _sendTransaction = _asyncToGenerator(function* (args) {
1591
- try {
1592
- var signer = yield fetchSigner();
1593
- if (!signer) throw new ConnectorNotFoundError();
1594
- var transaction = yield signer.sendTransaction(args.request);
1595
- return transaction;
1596
- } catch (error_) {
1597
- var error = error_;
1598
- if (error_.code === 4001) error = new UserRejectedRequestError();
1599
- throw error;
1600
- }
1601
- });
1602
- return _sendTransaction.apply(this, arguments);
1603
- }
1604
-
1605
- function waitForTransaction(_x) {
1606
- return _waitForTransaction.apply(this, arguments);
1188
+ async function sendTransaction(args) {
1189
+ try {
1190
+ const signer = await fetchSigner();
1191
+ if (!signer) throw new ConnectorNotFoundError();
1192
+ const transaction = await signer.sendTransaction(args.request);
1193
+ return transaction;
1194
+ } catch (error_) {
1195
+ let error = error_;
1196
+ if (error_.code === 4001) error = new UserRejectedRequestError();
1197
+ throw error;
1198
+ }
1607
1199
  }
1608
1200
 
1609
- function _waitForTransaction() {
1610
- _waitForTransaction = _asyncToGenerator(function* (args) {
1611
- var {
1612
- provider
1613
- } = client;
1614
- var promise; // eslint-disable-next-line testing-library/await-async-utils
1201
+ async function waitForTransaction(args) {
1202
+ const provider = getProvider();
1203
+ let promise; // eslint-disable-next-line testing-library/await-async-utils
1615
1204
 
1616
- if (args.wait) promise = args.wait(args.confirmations);else if (args.hash) promise = provider.waitForTransaction(args.hash, args.confirmations, args.timeout);else throw new Error('hash or wait is required');
1617
- var receipt = yield promise;
1618
- return receipt;
1619
- });
1620
- return _waitForTransaction.apply(this, arguments);
1205
+ if (args.wait) promise = args.wait(args.confirmations);else if (args.hash) promise = provider.waitForTransaction(args.hash, args.confirmations, args.timeout);else throw new Error('hash or wait is required');
1206
+ const receipt = await promise;
1207
+ return receipt;
1621
1208
  }
1622
1209
 
1623
- export { Client, InjectedConnector, Client as WagmiClient, connect, createClient, createStorage, createClient as createWagmiClient, createStorage as createWagmiStorage, disconnect, erc1155ABI, erc20ABI, erc721ABI, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, noopStorage, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, units, waitForTransaction, watchAccount, watchBalance, watchBlockNumber, watchContractEvent, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, watchFeeData, watchNetwork, watchReadContract, watchSigner, watchToken, writeContract };
1210
+ export { Client, InjectedConnector, Client as WagmiClient, connect, createClient, createStorage, createClient as createWagmiClient, createStorage as createWagmiStorage, disconnect, erc20ABI, erc721ABI, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, noopStorage, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, units, waitForTransaction, watchAccount, watchBalance, watchBlockNumber, watchContractEvent, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, watchFeeData, watchNetwork, watchReadContract, watchSigner, watchToken, writeContract };