@wagmi/core 0.2.0-next.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 (101) hide show
  1. package/LICENSE +21 -0
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +1 -0
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +252 -0
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +7 -0
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +252 -0
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +230 -0
  7. package/connectors/coinbaseWallet/package.json +4 -0
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +1 -0
  9. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +304 -0
  10. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +7 -0
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +304 -0
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +295 -0
  13. package/connectors/mock/package.json +4 -0
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +1 -0
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +216 -0
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +7 -0
  17. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +216 -0
  18. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +194 -0
  19. package/connectors/walletConnect/package.json +4 -0
  20. package/dist/base-09a653f3.cjs.dev.js +453 -0
  21. package/dist/base-824c3b6d.esm.js +430 -0
  22. package/dist/base-d8123d5f.cjs.prod.js +453 -0
  23. package/dist/classPrivateMethodGet-0e9a7925.cjs.prod.js +19 -0
  24. package/dist/classPrivateMethodGet-38b54c7a.cjs.dev.js +19 -0
  25. package/dist/classPrivateMethodGet-c9db96d6.esm.js +16 -0
  26. package/dist/declarations/src/actions/accounts/connect.d.ts +7 -0
  27. package/dist/declarations/src/actions/accounts/disconnect.d.ts +1 -0
  28. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +18 -0
  29. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -0
  30. package/dist/declarations/src/actions/accounts/getAccount.d.ts +6 -0
  31. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +9 -0
  32. package/dist/declarations/src/actions/accounts/index.d.ts +13 -0
  33. package/dist/declarations/src/actions/accounts/signMessage.d.ts +9 -0
  34. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +13 -0
  35. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +6 -0
  36. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -0
  37. package/dist/declarations/src/actions/accounts/watchBalance.d.ts +3 -0
  38. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +3 -0
  39. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +3 -0
  40. package/dist/declarations/src/actions/contracts/getContract.d.ts +11 -0
  41. package/dist/declarations/src/actions/contracts/index.d.ts +5 -0
  42. package/dist/declarations/src/actions/contracts/readContract.d.ts +11 -0
  43. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +12 -0
  44. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +7 -0
  45. package/dist/declarations/src/actions/contracts/writeContract.d.ts +11 -0
  46. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +6 -0
  47. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +6 -0
  48. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +6 -0
  49. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +7 -0
  50. package/dist/declarations/src/actions/ens/index.d.ts +8 -0
  51. package/dist/declarations/src/actions/ens/watchEnsAddress.d.ts +3 -0
  52. package/dist/declarations/src/actions/ens/watchEnsAvatar.d.ts +3 -0
  53. package/dist/declarations/src/actions/ens/watchEnsName.d.ts +3 -0
  54. package/dist/declarations/src/actions/ens/watchEnsResolver.d.ts +3 -0
  55. package/dist/declarations/src/actions/index.d.ts +7 -0
  56. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +2 -0
  57. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +14 -0
  58. package/dist/declarations/src/actions/network-status/index.d.ts +4 -0
  59. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +6 -0
  60. package/dist/declarations/src/actions/network-status/watchFeeData.d.ts +7 -0
  61. package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -0
  62. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -0
  63. package/dist/declarations/src/actions/providers/index.d.ts +4 -0
  64. package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -0
  65. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -0
  66. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +24 -0
  67. package/dist/declarations/src/actions/tokens/index.d.ts +2 -0
  68. package/dist/declarations/src/actions/tokens/watchToken.d.ts +3 -0
  69. package/dist/declarations/src/actions/transactions/index.d.ts +2 -0
  70. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +7 -0
  71. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +15 -0
  72. package/dist/declarations/src/client.d.ts +78 -0
  73. package/dist/declarations/src/connectors/base.d.ts +50 -0
  74. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +43 -0
  75. package/dist/declarations/src/connectors/index.d.ts +2 -0
  76. package/dist/declarations/src/connectors/injected.d.ts +55 -0
  77. package/dist/declarations/src/connectors/mock/connector.d.ts +37 -0
  78. package/dist/declarations/src/connectors/mock/index.d.ts +2 -0
  79. package/dist/declarations/src/connectors/mock/provider.d.ts +40 -0
  80. package/dist/declarations/src/connectors/walletConnect.d.ts +32 -0
  81. package/dist/declarations/src/constants/abis/erc1155.d.ts +17 -0
  82. package/dist/declarations/src/constants/abis/erc20.d.ts +38 -0
  83. package/dist/declarations/src/constants/abis/erc721.d.ts +15 -0
  84. package/dist/declarations/src/constants/abis/index.d.ts +3 -0
  85. package/dist/declarations/src/constants/chains.d.ts +10 -0
  86. package/dist/declarations/src/constants/index.d.ts +3 -0
  87. package/dist/declarations/src/constants/units.d.ts +1 -0
  88. package/dist/declarations/src/errors.d.ts +28 -0
  89. package/dist/declarations/src/index.d.ts +9 -0
  90. package/dist/declarations/src/storage.d.ts +12 -0
  91. package/dist/declarations/src/types/declarations.d.ts +52 -0
  92. package/dist/declarations/src/types/index.d.ts +14 -0
  93. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -0
  94. package/dist/declarations/src/utils/index.d.ts +2 -0
  95. package/dist/declarations/src/utils/normalizeChainId.d.ts +1 -0
  96. package/dist/wagmi-core.cjs.d.ts +1 -0
  97. package/dist/wagmi-core.cjs.dev.js +1689 -0
  98. package/dist/wagmi-core.cjs.js +7 -0
  99. package/dist/wagmi-core.cjs.prod.js +1689 -0
  100. package/dist/wagmi-core.esm.js +1623 -0
  101. package/package.json +67 -0
@@ -0,0 +1,1689 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var base = require('./base-d8123d5f.cjs.prod.js');
6
+ var classPrivateMethodGet = require('./classPrivateMethodGet-0e9a7925.cjs.prod.js');
7
+ var ethers = require('ethers');
8
+ var create = require('zustand/vanilla');
9
+ var middleware = require('zustand/middleware');
10
+ var utils = require('ethers/lib/utils');
11
+ var ethers$1 = require('ethers/lib/ethers');
12
+ require('eventemitter3');
13
+
14
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
15
+
16
+ var create__default = /*#__PURE__*/_interopDefault(create);
17
+
18
+ function ownKeys(object, enumerableOnly) {
19
+ var keys = Object.keys(object);
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
+ }];
280
+
281
+ // 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
+
284
+ function getInjectedName(ethereum) {
285
+ 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';
290
+ return 'Injected';
291
+ }
292
+
293
+ var shimKey = 'injected.shimDisconnect';
294
+
295
+ var _provider = /*#__PURE__*/new WeakMap();
296
+
297
+ class InjectedConnector extends base.Connector {
298
+ constructor(config) {
299
+ super(_objectSpread2(_objectSpread2({}, config), {}, {
300
+ options: _objectSpread2({
301
+ shimDisconnect: true
302
+ }, config === null || config === void 0 ? void 0 : config.options)
303
+ }));
304
+
305
+ base._defineProperty(this, "id", 'injected');
306
+
307
+ base._defineProperty(this, "name", void 0);
308
+
309
+ base._defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
310
+
311
+ base._classPrivateFieldInitSpec(this, _provider, {
312
+ writable: true,
313
+ value: void 0
314
+ });
315
+
316
+ base._defineProperty(this, "onAccountsChanged", accounts => {
317
+ if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
318
+ account: utils.getAddress(accounts[0])
319
+ });
320
+ });
321
+
322
+ base._defineProperty(this, "onChainChanged", chainId => {
323
+ var id = base.normalizeChainId(chainId);
324
+ var unsupported = this.isChainUnsupported(id);
325
+ this.emit('change', {
326
+ chain: {
327
+ id,
328
+ unsupported
329
+ }
330
+ });
331
+ });
332
+
333
+ base._defineProperty(this, "onDisconnect", () => {
334
+ var _this$options, _client$storage;
335
+
336
+ 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);
338
+ });
339
+
340
+ var name = 'Injected';
341
+ if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
342
+ this.name = name;
343
+ }
344
+
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();
363
+
364
+ var unsupported = _this.isChainUnsupported(id);
365
+
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;
378
+ }
379
+ })();
380
+ }
381
+
382
+ disconnect() {
383
+ var _this2 = this;
384
+
385
+ return base._asyncToGenerator(function* () {
386
+ var _this2$options, _client$storage3;
387
+
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
+ })();
395
+ }
396
+
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
406
+
407
+ return utils.getAddress(accounts[0]);
408
+ })();
409
+ }
410
+
411
+ getChainId() {
412
+ var _this4 = this;
413
+
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
+ })();
421
+ }
422
+
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
+ })();
430
+ }
431
+
432
+ getSigner() {
433
+ var _this6 = this;
434
+
435
+ return base._asyncToGenerator(function* () {
436
+ var provider = _this6.getProvider();
437
+
438
+ var account = yield _this6.getAccount();
439
+ return new ethers.providers.Web3Provider(provider).getSigner(account);
440
+ })();
441
+ }
442
+
443
+ isAuthorized() {
444
+ var _this7 = this;
445
+
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
+ })();
462
+ }
463
+
464
+ switchChain(chainId) {
465
+ var _this8 = this;
466
+
467
+ return base._asyncToGenerator(function* () {
468
+ var provider = yield _this8.getProvider();
469
+ if (!provider) throw new base.ConnectorNotFoundError();
470
+ var id = utils.hexValue(chainId);
471
+
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
+ })();
513
+ }
514
+
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
+ }
537
+ }
538
+ });
539
+ })();
540
+ }
541
+
542
+ }
543
+
544
+ var noopStorage = {
545
+ getItem: _key => '',
546
+ setItem: (_key, _value) => null,
547
+ removeItem: _key => null
548
+ };
549
+ function createStorage(_ref) {
550
+ var {
551
+ storage,
552
+ key: prefix = 'wagmi'
553
+ } = _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));
558
+
559
+ try {
560
+ return value ? JSON.parse(value) : defaultState;
561
+ } catch (error) {
562
+ console.warn(error);
563
+ return defaultState;
564
+ }
565
+ },
566
+ setItem: (key, value) => {
567
+ if (value === null) {
568
+ storage.removeItem("".concat(prefix, ".").concat(key));
569
+ } else {
570
+ try {
571
+ storage.setItem("".concat(prefix, ".").concat(key), JSON.stringify(value));
572
+ } catch (err) {
573
+ console.error(err);
574
+ }
575
+ }
576
+ },
577
+ removeItem: key => storage.removeItem("".concat(prefix, ".").concat(key))
578
+ });
579
+ }
580
+
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
+ var _lastUsedConnector = /*#__PURE__*/new WeakMap();
600
+
601
+ var _addEffects = /*#__PURE__*/new WeakSet();
602
+
603
+ class Client {
604
+ 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;
612
+
613
+ classPrivateMethodGet._classPrivateMethodInitSpec(this, _addEffects);
614
+
615
+ base._defineProperty(this, "config", void 0);
616
+
617
+ base._defineProperty(this, "storage", void 0);
618
+
619
+ base._defineProperty(this, "store", void 0);
620
+
621
+ base._classPrivateFieldInitSpec(this, _lastUsedConnector, {
622
+ writable: true,
623
+ value: void 0
624
+ });
625
+
626
+ this.config = {
627
+ autoConnect,
628
+ connectors: _connectors,
629
+ provider: _provider,
630
+ webSocketProvider: _webSocketProvider
631
+ };
632
+ var status = 'disconnected';
633
+
634
+ var _chainId;
635
+
636
+ if (autoConnect) {
637
+ try {
638
+ var _JSON$parse, _JSON$parse$state, _data$chain;
639
+
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
642
+
643
+ status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
644
+ _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
+ } 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,
655
+ status,
656
+ webSocketProvider: typeof _webSocketProvider === 'function' ? _webSocketProvider({
657
+ chainId: _chainId
658
+ }) : _webSocketProvider
659
+ }), {
660
+ name: 'state',
661
+ getStorage: () => storage,
662
+ partialize: state => {
663
+ var _state$data, _state$data2;
664
+
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
+ }
670
+ };
671
+ }
672
+ })));
673
+ this.storage = storage;
674
+
675
+ base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
676
+
677
+ classPrivateMethodGet._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
678
+ }
679
+
680
+ get connectors() {
681
+ return this.store.getState().connectors;
682
+ }
683
+
684
+ get connector() {
685
+ return this.store.getState().connector;
686
+ }
687
+
688
+ get data() {
689
+ return this.store.getState().data;
690
+ }
691
+
692
+ get error() {
693
+ return this.store.getState().error;
694
+ }
695
+
696
+ get provider() {
697
+ return this.store.getState().provider;
698
+ }
699
+
700
+ get status() {
701
+ return this.store.getState().status;
702
+ }
703
+
704
+ get subscribe() {
705
+ return this.store.subscribe;
706
+ }
707
+
708
+ get webSocketProvider() {
709
+ return this.store.getState().webSocketProvider;
710
+ }
711
+
712
+ setState(updater) {
713
+ var newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
714
+ this.store.setState(newState, true);
715
+ }
716
+
717
+ clearState() {
718
+ this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
719
+ connector: undefined,
720
+ data: undefined,
721
+ error: undefined,
722
+ status: 'disconnected'
723
+ }));
724
+ }
725
+
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);
733
+
734
+ _this.clearState();
735
+
736
+ _this.store.destroy();
737
+ })();
738
+ }
739
+
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
771
+
772
+
773
+ if (!connected) _this2.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
774
+ status: 'disconnected'
775
+ }));
776
+ return _this2.data;
777
+ })();
778
+ }
779
+
780
+ setLastUsedConnector() {
781
+ var _this$storage;
782
+
783
+ var lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
784
+ (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
785
+ }
786
+
787
+ }
788
+
789
+ function _addEffects2() {
790
+ var onChange = data => this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
791
+ data: _objectSpread2(_objectSpread2({}, x.data), data)
792
+ }));
793
+
794
+ var onDisconnect = () => this.clearState();
795
+
796
+ var onError = error => this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
797
+ error
798
+ }));
799
+
800
+ this.store.subscribe(_ref2 => {
801
+ var {
802
+ connector
803
+ } = _ref2;
804
+ return connector;
805
+ }, (connector, prevConnector) => {
806
+ var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
807
+
808
+ prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off = prevConnector.off) === null || _prevConnector$off === void 0 ? void 0 : _prevConnector$off.call(prevConnector, 'change', onChange);
809
+ prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off2 = prevConnector.off) === null || _prevConnector$off2 === void 0 ? void 0 : _prevConnector$off2.call(prevConnector, 'disconnect', onDisconnect);
810
+ prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off3 = prevConnector.off) === null || _prevConnector$off3 === void 0 ? void 0 : _prevConnector$off3.call(prevConnector, 'error', onError);
811
+ if (!connector) return;
812
+ (_connector$on = connector.on) === null || _connector$on === void 0 ? void 0 : _connector$on.call(connector, 'change', onChange);
813
+ (_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
814
+ (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
815
+ });
816
+ var {
817
+ connectors,
818
+ provider,
819
+ webSocketProvider
820
+ } = 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 => {
825
+ var _data$chain2;
826
+
827
+ var {
828
+ data
829
+ } = _ref3;
830
+ return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
831
+ }, chainId => {
832
+ this.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
833
+ connectors: subscribeConnectors ? connectors({
834
+ chainId
835
+ }) : x.connectors,
836
+ provider: subscribeProvider ? provider({
837
+ chainId
838
+ }) : x.provider,
839
+ webSocketProvider: subscribeWebSocketProvider ? webSocketProvider({
840
+ chainId
841
+ }) : x.webSocketProvider
842
+ }));
843
+ });
844
+ }
845
+
846
+ var client;
847
+ function createClient(config) {
848
+ var client_ = new Client(config);
849
+ client = client_;
850
+ return client_;
851
+ }
852
+
853
+ function connect(_x) {
854
+ return _connect.apply(this, arguments);
855
+ }
856
+
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);
874
+ }
875
+
876
+ function disconnect() {
877
+ return _disconnect.apply(this, arguments);
878
+ }
879
+
880
+ function _disconnect() {
881
+ _disconnect = base._asyncToGenerator(function* () {
882
+ if (client.connector) yield client.connector.disconnect();
883
+ client.storage.removeItem('connected');
884
+ client.clearState();
885
+ });
886
+ return _disconnect.apply(this, arguments);
887
+ }
888
+
889
+ function fetchBalance(_x) {
890
+ return _fetchBalance.apply(this, arguments);
891
+ }
892
+
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;
902
+
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
+ }
914
+
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);
918
+ 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,
920
+ 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',
922
+ unit,
923
+ value
924
+ };
925
+ });
926
+ return _fetchBalance.apply(this, arguments);
927
+ }
928
+
929
+ function fetchSigner() {
930
+ return _fetchSigner.apply(this, arguments);
931
+ }
932
+
933
+ function _fetchSigner() {
934
+ _fetchSigner = base._asyncToGenerator(function* () {
935
+ var _client$connector, _client$connector$get;
936
+
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);
941
+ }
942
+
943
+ function getAccount() {
944
+ var {
945
+ data,
946
+ connector
947
+ } = client;
948
+ return {
949
+ address: data === null || data === void 0 ? void 0 : data.account,
950
+ connector
951
+ };
952
+ }
953
+
954
+ function getNetwork() {
955
+ var _data$chain, _data$chain2, _connector$chains, _find;
956
+
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 : {
965
+ id: chainId,
966
+ name: "Chain ".concat(chainId),
967
+ rpcUrls: []
968
+ };
969
+ return {
970
+ chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, {
971
+ id: chainId,
972
+ unsupported
973
+ }) : undefined,
974
+ chains: activeChains
975
+ };
976
+ }
977
+
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);
999
+ }
1000
+
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
+ }
1016
+
1017
+ function switchNetwork(_x) {
1018
+ return _switchNetwork.apply(this, arguments);
1019
+ }
1020
+
1021
+ function _switchNetwork() {
1022
+ _switchNetwork = base._asyncToGenerator(function* (args) {
1023
+ var _client$connector;
1024
+
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);
1030
+ }
1031
+
1032
+ function watchAccount(callback) {
1033
+ var handleChange = () => callback(getAccount());
1034
+
1035
+ var unsubscribe = client.subscribe(_ref => {
1036
+ var {
1037
+ data,
1038
+ connector
1039
+ } = _ref;
1040
+ return {
1041
+ account: data === null || data === void 0 ? void 0 : data.account,
1042
+ connector
1043
+ };
1044
+ }, handleChange, {
1045
+ equalityFn: (selected, previous) => selected.account === previous.account && selected.connector === previous.connector
1046
+ });
1047
+ return unsubscribe;
1048
+ }
1049
+
1050
+ function watchBalance(args, callback) {
1051
+ var handleChange = /*#__PURE__*/function () {
1052
+ var _ref = base._asyncToGenerator(function* () {
1053
+ return callback(yield fetchBalance(args));
1054
+ });
1055
+
1056
+ return function handleChange() {
1057
+ return _ref.apply(this, arguments);
1058
+ };
1059
+ }();
1060
+
1061
+ var unsubscribe = client.subscribe(_ref2 => {
1062
+ var _data$chain;
1063
+
1064
+ var {
1065
+ data
1066
+ } = _ref2;
1067
+ return {
1068
+ account: data === null || data === void 0 ? void 0 : data.account,
1069
+ chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id
1070
+ };
1071
+ }, handleChange, {
1072
+ equalityFn: (selected, previous) => selected.account === previous.account && selected.chainId === previous.chainId
1073
+ });
1074
+ return unsubscribe;
1075
+ }
1076
+
1077
+ function watchNetwork(callback) {
1078
+ var handleChange = () => callback(getNetwork());
1079
+
1080
+ var unsubscribe = client.subscribe(_ref => {
1081
+ var _data$chain;
1082
+
1083
+ var {
1084
+ data,
1085
+ connector
1086
+ } = _ref;
1087
+ return {
1088
+ chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
1089
+ connector
1090
+ };
1091
+ }, handleChange, {
1092
+ equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.connector === previous.connector
1093
+ });
1094
+ return unsubscribe;
1095
+ }
1096
+
1097
+ function watchSigner(callback) {
1098
+ var handleChange = /*#__PURE__*/function () {
1099
+ var _ref = base._asyncToGenerator(function* () {
1100
+ return callback(yield fetchSigner());
1101
+ });
1102
+
1103
+ return function handleChange() {
1104
+ return _ref.apply(this, arguments);
1105
+ };
1106
+ }();
1107
+
1108
+ var unsubscribe = client.subscribe(_ref2 => {
1109
+ var _data$chain;
1110
+
1111
+ var {
1112
+ data,
1113
+ connector
1114
+ } = _ref2;
1115
+ return {
1116
+ account: data === null || data === void 0 ? void 0 : data.account,
1117
+ chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
1118
+ connector
1119
+ };
1120
+ }, handleChange, {
1121
+ equalityFn: (selected, previous) => selected.account === previous.account && selected.chainId === previous.chainId && selected.connector === previous.connector
1122
+ });
1123
+ return unsubscribe;
1124
+ }
1125
+
1126
+ function getContract(_ref) {
1127
+ var {
1128
+ addressOrName,
1129
+ contractInterface,
1130
+ signerOrProvider
1131
+ } = _ref;
1132
+ return new ethers$1.Contract(addressOrName, contractInterface, signerOrProvider);
1133
+ }
1134
+
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;
1154
+ });
1155
+ return _readContract.apply(this, arguments);
1156
+ }
1157
+
1158
+ function watchContractEvent(
1159
+ /** Contract configuration */
1160
+ contractArgs,
1161
+ /** Event name to listen to */
1162
+ eventName, callback) {
1163
+ var {
1164
+ once
1165
+ } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1166
+ var contract;
1167
+
1168
+ var watchEvent = /*#__PURE__*/function () {
1169
+ var _ref = base._asyncToGenerator(function* () {
1170
+ if (contract) {
1171
+ var _contract;
1172
+
1173
+ (_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
1174
+ }
1175
+
1176
+ contract = getContract(_objectSpread2({
1177
+ signerOrProvider: client.webSocketProvider || client.provider
1178
+ }, contractArgs));
1179
+ if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
1180
+ });
1181
+
1182
+ return function watchEvent() {
1183
+ return _ref.apply(this, arguments);
1184
+ };
1185
+ }();
1186
+
1187
+ watchEvent();
1188
+ var unsubscribe = client.subscribe(_ref2 => {
1189
+ var {
1190
+ provider,
1191
+ webSocketProvider
1192
+ } = _ref2;
1193
+ return {
1194
+ provider,
1195
+ webSocketProvider
1196
+ };
1197
+ }, watchEvent, {
1198
+ equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
1199
+ });
1200
+ return () => {
1201
+ var _contract2;
1202
+
1203
+ (_contract2 = contract) === null || _contract2 === void 0 ? void 0 : _contract2.off(eventName, callback);
1204
+ unsubscribe();
1205
+ };
1206
+ }
1207
+
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;
1216
+ });
1217
+ return _fetchBlockNumber.apply(this, arguments);
1218
+ }
1219
+
1220
+ function watchBlockNumber(args, callback) {
1221
+ var prevProvider;
1222
+
1223
+ var createListener = provider => {
1224
+ var listener = blockNumber => {
1225
+ callback(blockNumber);
1226
+ };
1227
+
1228
+ if (prevProvider) {
1229
+ var _prevProvider;
1230
+
1231
+ (_prevProvider = prevProvider) === null || _prevProvider === void 0 ? void 0 : _prevProvider.off('block', listener);
1232
+ }
1233
+
1234
+ provider.on('block', listener);
1235
+ prevProvider = provider;
1236
+ };
1237
+
1238
+ var {
1239
+ provider,
1240
+ webSocketProvider
1241
+ } = client;
1242
+ var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
1243
+ if (args.listen) createListener(provider_);
1244
+ var unsubscribe = client.subscribe(_ref => {
1245
+ var {
1246
+ provider,
1247
+ webSocketProvider
1248
+ } = _ref;
1249
+ return {
1250
+ provider,
1251
+ webSocketProvider
1252
+ };
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
+ }
1264
+
1265
+ callback(yield fetchBlockNumber());
1266
+ });
1267
+
1268
+ return function (_x) {
1269
+ return _ref3.apply(this, arguments);
1270
+ };
1271
+ }(), {
1272
+ equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
1273
+ });
1274
+ return unsubscribe;
1275
+ }
1276
+
1277
+ function watchReadContract(contractConfig, functionName) {
1278
+ var _config$listenToBlock;
1279
+
1280
+ var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1281
+ var callback = arguments.length > 3 ? arguments[3] : undefined;
1282
+
1283
+ var handleChange = /*#__PURE__*/function () {
1284
+ var _ref = base._asyncToGenerator(function* () {
1285
+ return callback(yield readContract(contractConfig, functionName, config));
1286
+ });
1287
+
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({
1294
+ listen: true
1295
+ }, handleChange) : undefined;
1296
+ var unsubscribe = client.subscribe(_ref2 => {
1297
+ var {
1298
+ provider
1299
+ } = _ref2;
1300
+ return provider;
1301
+ }, handleChange);
1302
+ return () => {
1303
+ unsubscribe();
1304
+ unwatch === null || unwatch === void 0 ? void 0 : unwatch();
1305
+ };
1306
+ }
1307
+
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);
1341
+ }
1342
+
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
+ }
1355
+ });
1356
+ return _fetchEnsAddress.apply(this, arguments);
1357
+ }
1358
+
1359
+ function fetchEnsAvatar(_x) {
1360
+ return _fetchEnsAvatar.apply(this, arguments);
1361
+ }
1362
+
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
+ }
1375
+
1376
+ function fetchEnsName(_x) {
1377
+ return _fetchEnsName.apply(this, arguments);
1378
+ }
1379
+
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;
1387
+ });
1388
+ return _fetchEnsName.apply(this, arguments);
1389
+ }
1390
+
1391
+ function fetchEnsResolver(_x) {
1392
+ return _fetchEnsResolver.apply(this, arguments);
1393
+ }
1394
+
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;
1402
+ });
1403
+ return _fetchEnsResolver.apply(this, arguments);
1404
+ }
1405
+
1406
+ function watchEnsAddress(args, callback) {
1407
+ var handleChange = /*#__PURE__*/function () {
1408
+ var _ref = base._asyncToGenerator(function* () {
1409
+ return callback(yield fetchEnsAddress(args));
1410
+ });
1411
+
1412
+ return function handleChange() {
1413
+ return _ref.apply(this, arguments);
1414
+ };
1415
+ }();
1416
+
1417
+ var unsubscribe = client.subscribe(_ref2 => {
1418
+ var {
1419
+ provider
1420
+ } = _ref2;
1421
+ return provider;
1422
+ }, handleChange);
1423
+ return unsubscribe;
1424
+ }
1425
+
1426
+ function watchEnsAvatar(args, callback) {
1427
+ var handleChange = /*#__PURE__*/function () {
1428
+ var _ref = base._asyncToGenerator(function* () {
1429
+ return callback(yield fetchEnsAvatar(args));
1430
+ });
1431
+
1432
+ return function handleChange() {
1433
+ return _ref.apply(this, arguments);
1434
+ };
1435
+ }();
1436
+
1437
+ var unsubscribe = client.subscribe(_ref2 => {
1438
+ var {
1439
+ provider
1440
+ } = _ref2;
1441
+ return provider;
1442
+ }, handleChange);
1443
+ return unsubscribe;
1444
+ }
1445
+
1446
+ function watchEnsName(args, callback) {
1447
+ var handleChange = /*#__PURE__*/function () {
1448
+ var _ref = base._asyncToGenerator(function* () {
1449
+ return callback(yield fetchEnsName(args));
1450
+ });
1451
+
1452
+ return function handleChange() {
1453
+ return _ref.apply(this, arguments);
1454
+ };
1455
+ }();
1456
+
1457
+ var unsubscribe = client.subscribe(_ref2 => {
1458
+ var {
1459
+ provider
1460
+ } = _ref2;
1461
+ return provider;
1462
+ }, handleChange);
1463
+ return unsubscribe;
1464
+ }
1465
+
1466
+ function watchEnsResolver(args, callback) {
1467
+ var handleChange = /*#__PURE__*/function () {
1468
+ var _ref = base._asyncToGenerator(function* () {
1469
+ return callback(yield fetchEnsResolver(args));
1470
+ });
1471
+
1472
+ return function handleChange() {
1473
+ return _ref.apply(this, arguments);
1474
+ };
1475
+ }();
1476
+
1477
+ var unsubscribe = client.subscribe(_ref2 => {
1478
+ var {
1479
+ provider
1480
+ } = _ref2;
1481
+ return provider;
1482
+ }, handleChange);
1483
+ return unsubscribe;
1484
+ }
1485
+
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
+ });
1504
+ });
1505
+ return _fetchFeeData.apply(this, arguments);
1506
+ }
1507
+
1508
+ function watchFeeData(args, callback) {
1509
+ var handleChange = /*#__PURE__*/function () {
1510
+ var _ref = base._asyncToGenerator(function* () {
1511
+ return callback(yield fetchFeeData(args));
1512
+ });
1513
+
1514
+ return function handleChange() {
1515
+ return _ref.apply(this, arguments);
1516
+ };
1517
+ }();
1518
+
1519
+ var unwatch = args.listenToBlock ? watchBlockNumber({
1520
+ listen: true
1521
+ }, handleChange) : undefined;
1522
+ var unsubscribe = client.subscribe(_ref2 => {
1523
+ var {
1524
+ provider
1525
+ } = _ref2;
1526
+ return provider;
1527
+ }, handleChange);
1528
+ return () => {
1529
+ unsubscribe();
1530
+ unwatch === null || unwatch === void 0 ? void 0 : unwatch();
1531
+ };
1532
+ }
1533
+
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;
1568
+ });
1569
+ return _fetchToken.apply(this, arguments);
1570
+ }
1571
+
1572
+ function watchToken(args, callback) {
1573
+ var handleChange = /*#__PURE__*/function () {
1574
+ var _ref = base._asyncToGenerator(function* () {
1575
+ return callback(yield fetchToken(args));
1576
+ });
1577
+
1578
+ return function handleChange() {
1579
+ return _ref.apply(this, arguments);
1580
+ };
1581
+ }();
1582
+
1583
+ var unsubscribe = client.subscribe(_ref2 => {
1584
+ var {
1585
+ provider
1586
+ } = _ref2;
1587
+ return provider;
1588
+ }, handleChange);
1589
+ return unsubscribe;
1590
+ }
1591
+
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);
1614
+ }
1615
+
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
1622
+
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);
1628
+ }
1629
+
1630
+ exports.AddChainError = base.AddChainError;
1631
+ exports.ChainNotConfiguredError = base.ChainNotConfiguredError;
1632
+ exports.Connector = base.Connector;
1633
+ exports.ConnectorAlreadyConnectedError = base.ConnectorAlreadyConnectedError;
1634
+ exports.ConnectorNotFoundError = base.ConnectorNotFoundError;
1635
+ exports.SwitchChainError = base.SwitchChainError;
1636
+ exports.SwitchChainNotSupportedError = base.SwitchChainNotSupportedError;
1637
+ exports.UserRejectedRequestError = base.UserRejectedRequestError;
1638
+ exports.allChains = base.allChains;
1639
+ exports.chain = base.chain;
1640
+ exports.defaultChains = base.defaultChains;
1641
+ exports.normalizeChainId = base.normalizeChainId;
1642
+ exports.Client = Client;
1643
+ exports.InjectedConnector = InjectedConnector;
1644
+ exports.WagmiClient = Client;
1645
+ exports.connect = connect;
1646
+ exports.createClient = createClient;
1647
+ exports.createStorage = createStorage;
1648
+ exports.createWagmiClient = createClient;
1649
+ exports.createWagmiStorage = createStorage;
1650
+ exports.disconnect = disconnect;
1651
+ exports.erc1155ABI = erc1155ABI;
1652
+ exports.erc20ABI = erc20ABI;
1653
+ exports.erc721ABI = erc721ABI;
1654
+ exports.fetchBalance = fetchBalance;
1655
+ exports.fetchBlockNumber = fetchBlockNumber;
1656
+ exports.fetchEnsAddress = fetchEnsAddress;
1657
+ exports.fetchEnsAvatar = fetchEnsAvatar;
1658
+ exports.fetchEnsName = fetchEnsName;
1659
+ exports.fetchEnsResolver = fetchEnsResolver;
1660
+ exports.fetchFeeData = fetchFeeData;
1661
+ exports.fetchSigner = fetchSigner;
1662
+ exports.fetchToken = fetchToken;
1663
+ exports.getAccount = getAccount;
1664
+ exports.getContract = getContract;
1665
+ exports.getNetwork = getNetwork;
1666
+ exports.getProvider = getProvider;
1667
+ exports.getWebSocketProvider = getWebSocketProvider;
1668
+ exports.noopStorage = noopStorage;
1669
+ exports.readContract = readContract;
1670
+ exports.sendTransaction = sendTransaction;
1671
+ exports.signMessage = signMessage;
1672
+ exports.signTypedData = signTypedData;
1673
+ exports.switchNetwork = switchNetwork;
1674
+ exports.units = units;
1675
+ exports.waitForTransaction = waitForTransaction;
1676
+ exports.watchAccount = watchAccount;
1677
+ exports.watchBalance = watchBalance;
1678
+ exports.watchBlockNumber = watchBlockNumber;
1679
+ exports.watchContractEvent = watchContractEvent;
1680
+ exports.watchEnsAddress = watchEnsAddress;
1681
+ exports.watchEnsAvatar = watchEnsAvatar;
1682
+ exports.watchEnsName = watchEnsName;
1683
+ exports.watchEnsResolver = watchEnsResolver;
1684
+ exports.watchFeeData = watchFeeData;
1685
+ exports.watchNetwork = watchNetwork;
1686
+ exports.watchReadContract = watchReadContract;
1687
+ exports.watchSigner = watchSigner;
1688
+ exports.watchToken = watchToken;
1689
+ exports.writeContract = writeContract;