@wagmi/core 0.2.0-next.7 → 0.2.0

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