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