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