@wagmi/core 0.2.0-next.8 → 0.2.0-next.9

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 (97) hide show
  1. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +11 -1
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +15 -6
  3. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +11 -1
  4. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +15 -6
  5. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +11 -1
  6. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +15 -6
  7. package/dist/wagmi-core.cjs.d.ts +11 -1
  8. package/dist/wagmi-core.cjs.js +15 -6
  9. package/package.json +1 -2
  10. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +0 -236
  11. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +0 -236
  12. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +0 -214
  13. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +0 -247
  14. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +0 -247
  15. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +0 -238
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +0 -183
  17. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +0 -183
  18. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +0 -161
  19. package/dist/base-7ffc0425.cjs.prod.js +0 -541
  20. package/dist/base-82f423a9.esm.js +0 -515
  21. package/dist/base-b3073ce2.cjs.dev.js +0 -541
  22. package/dist/classPrivateMethodGet-0dc9fedc.cjs.dev.js +0 -19
  23. package/dist/classPrivateMethodGet-1c660f09.esm.js +0 -16
  24. package/dist/classPrivateMethodGet-c084b176.cjs.prod.js +0 -19
  25. package/dist/declarations/src/actions/accounts/connect.d.ts +0 -16
  26. package/dist/declarations/src/actions/accounts/disconnect.d.ts +0 -1
  27. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -18
  28. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +0 -3
  29. package/dist/declarations/src/actions/accounts/getAccount.d.ts +0 -6
  30. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +0 -9
  31. package/dist/declarations/src/actions/accounts/index.d.ts +0 -13
  32. package/dist/declarations/src/actions/accounts/signMessage.d.ts +0 -9
  33. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +0 -13
  34. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +0 -6
  35. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +0 -3
  36. package/dist/declarations/src/actions/accounts/watchBalance.d.ts +0 -3
  37. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +0 -3
  38. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +0 -3
  39. package/dist/declarations/src/actions/contracts/getContract.d.ts +0 -11
  40. package/dist/declarations/src/actions/contracts/index.d.ts +0 -5
  41. package/dist/declarations/src/actions/contracts/readContract.d.ts +0 -11
  42. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +0 -12
  43. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +0 -7
  44. package/dist/declarations/src/actions/contracts/writeContract.d.ts +0 -11
  45. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +0 -6
  46. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +0 -6
  47. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +0 -6
  48. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +0 -7
  49. package/dist/declarations/src/actions/ens/index.d.ts +0 -8
  50. package/dist/declarations/src/actions/ens/watchEnsAddress.d.ts +0 -3
  51. package/dist/declarations/src/actions/ens/watchEnsAvatar.d.ts +0 -3
  52. package/dist/declarations/src/actions/ens/watchEnsName.d.ts +0 -3
  53. package/dist/declarations/src/actions/ens/watchEnsResolver.d.ts +0 -3
  54. package/dist/declarations/src/actions/index.d.ts +0 -7
  55. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +0 -2
  56. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +0 -14
  57. package/dist/declarations/src/actions/network-status/index.d.ts +0 -4
  58. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +0 -6
  59. package/dist/declarations/src/actions/network-status/watchFeeData.d.ts +0 -7
  60. package/dist/declarations/src/actions/providers/getProvider.d.ts +0 -3
  61. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +0 -3
  62. package/dist/declarations/src/actions/providers/index.d.ts +0 -4
  63. package/dist/declarations/src/actions/providers/watchProvider.d.ts +0 -3
  64. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +0 -3
  65. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +0 -24
  66. package/dist/declarations/src/actions/tokens/index.d.ts +0 -2
  67. package/dist/declarations/src/actions/tokens/watchToken.d.ts +0 -3
  68. package/dist/declarations/src/actions/transactions/index.d.ts +0 -2
  69. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +0 -7
  70. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +0 -15
  71. package/dist/declarations/src/client.d.ts +0 -80
  72. package/dist/declarations/src/connectors/base.d.ts +0 -56
  73. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +0 -52
  74. package/dist/declarations/src/connectors/index.d.ts +0 -2
  75. package/dist/declarations/src/connectors/injected.d.ts +0 -55
  76. package/dist/declarations/src/connectors/mock/connector.d.ts +0 -37
  77. package/dist/declarations/src/connectors/mock/index.d.ts +0 -2
  78. package/dist/declarations/src/connectors/mock/provider.d.ts +0 -40
  79. package/dist/declarations/src/connectors/walletConnect.d.ts +0 -32
  80. package/dist/declarations/src/constants/abis.d.ts +0 -2
  81. package/dist/declarations/src/constants/blockExplorers.d.ts +0 -9
  82. package/dist/declarations/src/constants/chains.d.ts +0 -20
  83. package/dist/declarations/src/constants/index.d.ts +0 -7
  84. package/dist/declarations/src/constants/keys.d.ts +0 -2
  85. package/dist/declarations/src/constants/rpcs.d.ts +0 -7
  86. package/dist/declarations/src/constants/units.d.ts +0 -1
  87. package/dist/declarations/src/errors.d.ts +0 -28
  88. package/dist/declarations/src/index.d.ts +0 -12
  89. package/dist/declarations/src/storage.d.ts +0 -12
  90. package/dist/declarations/src/types/declarations.d.ts +0 -52
  91. package/dist/declarations/src/types/index.d.ts +0 -19
  92. package/dist/declarations/src/utils/getInjectedName.d.ts +0 -1
  93. package/dist/declarations/src/utils/index.d.ts +0 -2
  94. package/dist/declarations/src/utils/normalizeChainId.d.ts +0 -1
  95. package/dist/wagmi-core.cjs.dev.js +0 -1193
  96. package/dist/wagmi-core.cjs.prod.js +0 -1193
  97. package/dist/wagmi-core.esm.js +0 -1124
@@ -1,1193 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var classPrivateMethodGet = require('./classPrivateMethodGet-c084b176.cjs.prod.js');
6
- var base = require('./base-7ffc0425.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
- // 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
-
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;'];
22
-
23
- // https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
24
- const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
25
-
26
- function getInjectedName(ethereum) {
27
- if (!ethereum) return 'Injected';
28
- if (ethereum.isMetaMask) return 'MetaMask';
29
- if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet';
30
- if (ethereum.isFrame) return 'Frame';
31
- if (ethereum.isTally) return 'Tally';
32
- return 'Injected';
33
- }
34
-
35
- const shimKey = 'injected.shimDisconnect';
36
-
37
- var _provider = /*#__PURE__*/new WeakMap();
38
-
39
- class InjectedConnector extends base.Connector {
40
- constructor(config) {
41
- super({ ...config,
42
- options: {
43
- shimDisconnect: true,
44
- ...(config === null || config === void 0 ? void 0 : config.options)
45
- }
46
- });
47
-
48
- base._defineProperty(this, "id", 'injected');
49
-
50
- base._defineProperty(this, "name", void 0);
51
-
52
- base._defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
53
-
54
- base._classPrivateFieldInitSpec(this, _provider, {
55
- writable: true,
56
- value: void 0
57
- });
58
-
59
- base._defineProperty(this, "onAccountsChanged", accounts => {
60
- if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
61
- account: utils.getAddress(accounts[0])
62
- });
63
- });
64
-
65
- base._defineProperty(this, "onChainChanged", chainId => {
66
- const id = base.normalizeChainId(chainId);
67
- const unsupported = this.isChainUnsupported(id);
68
- this.emit('change', {
69
- chain: {
70
- id,
71
- unsupported
72
- }
73
- });
74
- });
75
-
76
- base._defineProperty(this, "onDisconnect", () => {
77
- var _this$options, _client$storage;
78
-
79
- this.emit('disconnect');
80
- 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);
81
- });
82
-
83
- let name = 'Injected';
84
- if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
85
- this.name = name;
86
- }
87
-
88
- async connect() {
89
- try {
90
- var _this$options2, _client$storage2;
91
-
92
- const provider = await this.getProvider();
93
- if (!provider) throw new base.ConnectorNotFoundError();
94
-
95
- if (provider.on) {
96
- provider.on('accountsChanged', this.onAccountsChanged);
97
- provider.on('chainChanged', this.onChainChanged);
98
- provider.on('disconnect', this.onDisconnect);
99
- }
100
-
101
- this.emit('message', {
102
- type: 'connecting'
103
- });
104
- const account = await this.getAccount();
105
- const id = await this.getChainId();
106
- const unsupported = this.isChainUnsupported(id);
107
- 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);
108
- return {
109
- account,
110
- chain: {
111
- id,
112
- unsupported
113
- },
114
- provider
115
- };
116
- } catch (error) {
117
- if (error.code === 4001) throw new base.UserRejectedRequestError();
118
- throw error;
119
- }
120
- }
121
-
122
- async disconnect() {
123
- var _this$options3, _client$storage3;
124
-
125
- const provider = await this.getProvider();
126
- if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
127
- provider.removeListener('accountsChanged', this.onAccountsChanged);
128
- provider.removeListener('chainChanged', this.onChainChanged);
129
- provider.removeListener('disconnect', this.onDisconnect);
130
- if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_client$storage3 = client.storage) === null || _client$storage3 === void 0 ? void 0 : _client$storage3.removeItem(shimKey);
131
- }
132
-
133
- async getAccount() {
134
- const provider = await this.getProvider();
135
- if (!provider) throw new base.ConnectorNotFoundError();
136
- const accounts = await provider.request({
137
- method: 'eth_requestAccounts'
138
- }); // return checksum address
139
-
140
- return utils.getAddress(accounts[0]);
141
- }
142
-
143
- async getChainId() {
144
- const provider = await this.getProvider();
145
- if (!provider) throw new base.ConnectorNotFoundError();
146
- return await provider.request({
147
- method: 'eth_chainId'
148
- }).then(base.normalizeChainId);
149
- }
150
-
151
- async getProvider() {
152
- if (typeof window !== 'undefined' && !!window.ethereum) base._classPrivateFieldSet(this, _provider, window.ethereum);
153
- return base._classPrivateFieldGet(this, _provider);
154
- }
155
-
156
- async getSigner() {
157
- const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
158
- return new ethers.providers.Web3Provider(provider).getSigner(account);
159
- }
160
-
161
- async isAuthorized() {
162
- try {
163
- var _this$options4, _client$storage4;
164
-
165
- if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_client$storage4 = client.storage) !== null && _client$storage4 !== void 0 && _client$storage4.getItem(shimKey))) return false;
166
- const provider = await this.getProvider();
167
- if (!provider) throw new base.ConnectorNotFoundError();
168
- const accounts = await provider.request({
169
- method: 'eth_accounts'
170
- });
171
- const account = accounts[0];
172
- return !!account;
173
- } catch {
174
- return false;
175
- }
176
- }
177
-
178
- async switchChain(chainId) {
179
- const provider = await this.getProvider();
180
- if (!provider) throw new base.ConnectorNotFoundError();
181
- const id = utils.hexValue(chainId);
182
-
183
- try {
184
- var _chains$find;
185
-
186
- await provider.request({
187
- method: 'wallet_switchEthereumChain',
188
- params: [{
189
- chainId: id
190
- }]
191
- });
192
- const chains = [...this.chains, ...base.allChains];
193
- return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
194
- id: chainId,
195
- name: "Chain ".concat(id),
196
- rpcUrls: {
197
- default: []
198
- }
199
- };
200
- } catch (error) {
201
- // Indicates chain is not added to provider
202
- if (error.code === 4902) {
203
- try {
204
- const chain = this.chains.find(x => x.id === chainId);
205
- if (!chain) throw new base.ChainNotConfiguredError();
206
- await provider.request({
207
- method: 'wallet_addEthereumChain',
208
- params: [{
209
- chainId: id,
210
- chainName: chain.name,
211
- nativeCurrency: chain.nativeCurrency,
212
- rpcUrls: this.getRpcUrls(chain),
213
- blockExplorerUrls: this.getBlockExplorerUrls(chain)
214
- }]
215
- });
216
- return chain;
217
- } catch (addError) {
218
- throw new base.AddChainError();
219
- }
220
- } else if (error.code === 4001) throw new base.UserRejectedRequestError();else throw new base.SwitchChainError();
221
- }
222
- }
223
-
224
- async watchAsset(_ref) {
225
- let {
226
- address,
227
- decimals = 18,
228
- image,
229
- symbol
230
- } = _ref;
231
- const provider = await this.getProvider();
232
- if (!provider) throw new base.ConnectorNotFoundError();
233
- return await provider.request({
234
- method: 'wallet_watchAsset',
235
- params: {
236
- type: 'ERC20',
237
- options: {
238
- address,
239
- decimals,
240
- image,
241
- symbol
242
- }
243
- }
244
- });
245
- }
246
-
247
- }
248
-
249
- const noopStorage = {
250
- getItem: _key => '',
251
- setItem: (_key, _value) => null,
252
- removeItem: _key => null
253
- };
254
- function createStorage(_ref) {
255
- let {
256
- storage,
257
- key: prefix = 'wagmi'
258
- } = _ref;
259
- return { ...storage,
260
- getItem: function (key) {
261
- let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
262
- const value = storage.getItem("".concat(prefix, ".").concat(key));
263
-
264
- try {
265
- return value ? JSON.parse(value) : defaultState;
266
- } catch (error) {
267
- console.warn(error);
268
- return defaultState;
269
- }
270
- },
271
- setItem: (key, value) => {
272
- if (value === null) {
273
- storage.removeItem("".concat(prefix, ".").concat(key));
274
- } else {
275
- try {
276
- storage.setItem("".concat(prefix, ".").concat(key), JSON.stringify(value));
277
- } catch (err) {
278
- console.error(err);
279
- }
280
- }
281
- },
282
- removeItem: key => storage.removeItem("".concat(prefix, ".").concat(key))
283
- };
284
- }
285
-
286
- const defaultConfig = {
287
- connectors: [new InjectedConnector()],
288
- provider: _ref => {
289
- let {
290
- chainId
291
- } = _ref;
292
-
293
- try {
294
- return ethers.getDefaultProvider(chainId);
295
- } catch (error) {
296
- return ethers.getDefaultProvider();
297
- }
298
- },
299
- storage: createStorage({
300
- storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
301
- })
302
- };
303
-
304
- var _lastUsedConnector = /*#__PURE__*/new WeakMap();
305
-
306
- var _addEffects = /*#__PURE__*/new WeakSet();
307
-
308
- class Client {
309
- constructor() {
310
- let {
311
- autoConnect,
312
- connectors: _connectors = defaultConfig.connectors,
313
- provider: _provider = defaultConfig.provider,
314
- storage = defaultConfig.storage,
315
- webSocketProvider: _webSocketProvider
316
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;
317
-
318
- classPrivateMethodGet._classPrivateMethodInitSpec(this, _addEffects);
319
-
320
- base._defineProperty(this, "config", void 0);
321
-
322
- base._defineProperty(this, "storage", void 0);
323
-
324
- base._defineProperty(this, "store", void 0);
325
-
326
- base._classPrivateFieldInitSpec(this, _lastUsedConnector, {
327
- writable: true,
328
- value: void 0
329
- });
330
-
331
- this.config = {
332
- autoConnect,
333
- connectors: _connectors,
334
- provider: _provider,
335
- webSocketProvider: _webSocketProvider
336
- };
337
- let status = 'disconnected';
338
-
339
- let _chainId;
340
-
341
- if (autoConnect) {
342
- try {
343
- var _JSON$parse, _JSON$parse$state, _data$chain;
344
-
345
- const rawState = storage.getItem('state', '');
346
- const data = (_JSON$parse = JSON.parse(rawState || '{}')) === null || _JSON$parse === void 0 ? void 0 : (_JSON$parse$state = _JSON$parse.state) === null || _JSON$parse$state === void 0 ? void 0 : _JSON$parse$state.data; // If account exists in localStorage, set status to reconnecting
347
-
348
- status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
349
- _chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id; // eslint-disable-next-line no-empty
350
- } catch (_error) {}
351
- }
352
-
353
- this.store = create__default["default"](middleware.subscribeWithSelector(middleware.persist((_set, _get) => ({
354
- connectors: typeof _connectors === 'function' ? _connectors({
355
- chainId: _chainId
356
- }) : _connectors,
357
- provider: typeof _provider === 'function' ? _provider({
358
- chainId: _chainId
359
- }) : _provider,
360
- status,
361
- webSocketProvider: typeof _webSocketProvider === 'function' ? _webSocketProvider({
362
- chainId: _chainId
363
- }) : _webSocketProvider
364
- }), {
365
- name: 'state',
366
- getStorage: () => storage,
367
- partialize: state => {
368
- var _state$data, _state$data2;
369
-
370
- return { ...(this.config.autoConnect && {
371
- data: {
372
- account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
373
- chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
374
- }
375
- }),
376
- chains: state === null || state === void 0 ? void 0 : state.chains
377
- };
378
- }
379
- })));
380
- this.storage = storage;
381
-
382
- base._classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
383
-
384
- classPrivateMethodGet._classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
385
- }
386
-
387
- get chains() {
388
- return this.store.getState().chains;
389
- }
390
-
391
- get connectors() {
392
- return this.store.getState().connectors;
393
- }
394
-
395
- get connector() {
396
- return this.store.getState().connector;
397
- }
398
-
399
- get data() {
400
- return this.store.getState().data;
401
- }
402
-
403
- get error() {
404
- return this.store.getState().error;
405
- }
406
-
407
- get provider() {
408
- return this.store.getState().provider;
409
- }
410
-
411
- get status() {
412
- return this.store.getState().status;
413
- }
414
-
415
- get subscribe() {
416
- return this.store.subscribe;
417
- }
418
-
419
- get webSocketProvider() {
420
- return this.store.getState().webSocketProvider;
421
- }
422
-
423
- setState(updater) {
424
- const newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
425
- this.store.setState(newState, true);
426
- }
427
-
428
- clearState() {
429
- this.setState(x => ({ ...x,
430
- connector: undefined,
431
- data: undefined,
432
- error: undefined,
433
- status: 'disconnected'
434
- }));
435
- }
436
-
437
- async destroy() {
438
- var _this$connector$disco, _this$connector;
439
-
440
- 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));
441
- this.clearState();
442
- this.store.destroy();
443
- }
444
-
445
- async autoConnect() {
446
- if (!this.connectors.length) return; // Try last used connector first
447
-
448
- const sorted = base._classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === base._classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
449
- let connected = false;
450
-
451
- for (const connector of sorted) {
452
- if (!connector.ready || !connector.isAuthorized) continue;
453
- const isAuthorized = await connector.isAuthorized();
454
- if (!isAuthorized) continue;
455
- const data = await connector.connect();
456
- this.setState(x => ({ ...x,
457
- connector,
458
- chains: connector === null || connector === void 0 ? void 0 : connector.chains,
459
- data,
460
- status: 'connected'
461
- }));
462
- connected = true;
463
- break;
464
- } // If connecting didn't succeed, set to disconnected
465
-
466
-
467
- if (!connected) this.setState(x => ({ ...x,
468
- status: 'disconnected'
469
- }));
470
- return this.data;
471
- }
472
-
473
- setLastUsedConnector() {
474
- var _this$storage;
475
-
476
- let lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
477
- (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
478
- }
479
-
480
- }
481
-
482
- function _addEffects2() {
483
- const onChange = data => {
484
- this.setState(x => ({ ...x,
485
- data: { ...x.data,
486
- ...data
487
- }
488
- }));
489
- };
490
-
491
- const onDisconnect = () => {
492
- this.clearState();
493
- };
494
-
495
- const onError = error => {
496
- this.setState(x => ({ ...x,
497
- error
498
- }));
499
- };
500
-
501
- this.store.subscribe(_ref2 => {
502
- let {
503
- connector
504
- } = _ref2;
505
- return connector;
506
- }, (connector, prevConnector) => {
507
- var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
508
-
509
- prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off = prevConnector.off) === null || _prevConnector$off === void 0 ? void 0 : _prevConnector$off.call(prevConnector, 'change', onChange);
510
- prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off2 = prevConnector.off) === null || _prevConnector$off2 === void 0 ? void 0 : _prevConnector$off2.call(prevConnector, 'disconnect', onDisconnect);
511
- prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off3 = prevConnector.off) === null || _prevConnector$off3 === void 0 ? void 0 : _prevConnector$off3.call(prevConnector, 'error', onError);
512
- if (!connector) return;
513
- (_connector$on = connector.on) === null || _connector$on === void 0 ? void 0 : _connector$on.call(connector, 'change', onChange);
514
- (_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
515
- (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
516
- });
517
- const {
518
- connectors,
519
- provider,
520
- webSocketProvider
521
- } = this.config;
522
- const subscribeConnectors = typeof connectors === 'function';
523
- const subscribeProvider = typeof provider === 'function';
524
- const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
525
- if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref3 => {
526
- var _data$chain2;
527
-
528
- let {
529
- data
530
- } = _ref3;
531
- return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
532
- }, chainId => {
533
- this.setState(x => ({ ...x,
534
- connectors: subscribeConnectors ? connectors({
535
- chainId
536
- }) : x.connectors,
537
- provider: subscribeProvider ? provider({
538
- chainId
539
- }) : x.provider,
540
- webSocketProvider: subscribeWebSocketProvider ? webSocketProvider({
541
- chainId
542
- }) : x.webSocketProvider
543
- }));
544
- });
545
- }
546
-
547
- let client;
548
- function createClient(config) {
549
- const client_ = new Client(config);
550
- client = client_;
551
- return client_;
552
- }
553
-
554
- async function connect(_ref) {
555
- let {
556
- connector
557
- } = _ref;
558
- const activeConnector = client.connector;
559
- if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
560
- const data = await connector.connect();
561
- client.setLastUsedConnector(connector.id);
562
- client.setState(x => ({ ...x,
563
- connector,
564
- chains: connector === null || connector === void 0 ? void 0 : connector.chains,
565
- data
566
- }));
567
- client.storage.setItem('connected', true);
568
- return { ...data,
569
- connector
570
- };
571
- }
572
-
573
- async function disconnect() {
574
- if (client.connector) await client.connector.disconnect();
575
- client.clearState();
576
- client.storage.removeItem('connected');
577
- }
578
-
579
- async function fetchBalance(_ref) {
580
- var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
581
-
582
- let {
583
- addressOrName,
584
- formatUnits: unit = 'ether',
585
- token
586
- } = _ref;
587
-
588
- if (token) {
589
- const contract = new ethers$1.Contract(token, erc20ABI, client.provider);
590
- const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
591
- return {
592
- decimals,
593
- formatted: utils.formatUnits(value, unit),
594
- symbol,
595
- unit,
596
- value
597
- };
598
- }
599
-
600
- 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];
601
- const value = await client.provider.getBalance(addressOrName);
602
- const chain = chains.find(x => x.id === client.provider.network.chainId);
603
- return {
604
- 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,
605
- formatted: utils.formatUnits(value, unit),
606
- 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',
607
- unit,
608
- value
609
- };
610
- }
611
-
612
- async function fetchSigner() {
613
- var _client$connector, _client$connector$get;
614
-
615
- 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));
616
- return signer;
617
- }
618
-
619
- function getAccount() {
620
- const {
621
- data,
622
- connector
623
- } = client;
624
- return {
625
- address: data === null || data === void 0 ? void 0 : data.account,
626
- connector
627
- };
628
- }
629
-
630
- function getNetwork() {
631
- var _data$chain, _data$chain2, _find;
632
-
633
- const {
634
- chains,
635
- data
636
- } = client;
637
- const chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
638
- const unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
639
- const activeChains = chains !== null && chains !== void 0 ? chains : [];
640
- const activeChain = (_find = [...activeChains, ...base.allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
641
- id: chainId,
642
- name: "Chain ".concat(chainId),
643
- rpcUrls: {
644
- default: []
645
- }
646
- };
647
- return {
648
- chain: chainId ? { ...activeChain,
649
- id: chainId,
650
- unsupported
651
- } : undefined,
652
- chains: activeChains
653
- };
654
- }
655
-
656
- async function signMessage(args) {
657
- try {
658
- const signer = await fetchSigner();
659
- if (!signer) throw new base.ConnectorNotFoundError();
660
- return await signer.signMessage(args.message);
661
- } catch (error_) {
662
- let error = error_;
663
- if (error_.code === 4001) error = new base.UserRejectedRequestError();
664
- throw error;
665
- }
666
- }
667
-
668
- async function signTypedData(args) {
669
- try {
670
- const signer = await fetchSigner();
671
- if (!signer) throw new base.ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
672
-
673
- return await signer._signTypedData(args.domain, args.types, args.value);
674
- } catch (error_) {
675
- let error = error_;
676
- if (error_.code === 4001) error = new base.UserRejectedRequestError();
677
- throw error;
678
- }
679
- }
680
-
681
- async function switchNetwork(_ref) {
682
- var _client$connector;
683
-
684
- let {
685
- chainId
686
- } = _ref;
687
- if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new base.SwitchChainNotSupportedError();
688
- const chain = await client.connector.switchChain(chainId);
689
- return chain;
690
- }
691
-
692
- function watchAccount(callback) {
693
- const handleChange = () => callback(getAccount());
694
-
695
- const unsubscribe = client.subscribe(_ref => {
696
- let {
697
- data,
698
- connector
699
- } = _ref;
700
- return {
701
- account: data === null || data === void 0 ? void 0 : data.account,
702
- connector
703
- };
704
- }, handleChange, {
705
- equalityFn: (selected, previous) => selected.account === previous.account && selected.connector === previous.connector
706
- });
707
- return unsubscribe;
708
- }
709
-
710
- function watchBalance(args, callback) {
711
- const handleChange = async () => callback(await fetchBalance(args));
712
-
713
- const unsubscribe = client.subscribe(_ref => {
714
- var _data$chain;
715
-
716
- let {
717
- data
718
- } = _ref;
719
- return {
720
- account: data === null || data === void 0 ? void 0 : data.account,
721
- chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id
722
- };
723
- }, handleChange, {
724
- equalityFn: (selected, previous) => selected.account === previous.account && selected.chainId === previous.chainId
725
- });
726
- return unsubscribe;
727
- }
728
-
729
- function watchNetwork(callback) {
730
- const handleChange = () => callback(getNetwork());
731
-
732
- const unsubscribe = client.subscribe(_ref => {
733
- var _data$chain;
734
-
735
- let {
736
- data,
737
- chains
738
- } = _ref;
739
- return {
740
- chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
741
- chains
742
- };
743
- }, handleChange, {
744
- equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.chains === previous.chains
745
- });
746
- return unsubscribe;
747
- }
748
-
749
- function watchSigner(callback) {
750
- const handleChange = async () => callback(await fetchSigner());
751
-
752
- const unsubscribe = client.subscribe(_ref => {
753
- var _data$chain;
754
-
755
- let {
756
- data,
757
- connector
758
- } = _ref;
759
- return {
760
- account: data === null || data === void 0 ? void 0 : data.account,
761
- chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
762
- connector
763
- };
764
- }, handleChange, {
765
- equalityFn: (selected, previous) => selected.account === previous.account && selected.chainId === previous.chainId && selected.connector === previous.connector
766
- });
767
- return unsubscribe;
768
- }
769
-
770
- function getContract(_ref) {
771
- let {
772
- addressOrName,
773
- contractInterface,
774
- signerOrProvider
775
- } = _ref;
776
- return new ethers$1.Contract(addressOrName, contractInterface, signerOrProvider);
777
- }
778
-
779
- async function readContract(contractConfig, functionName) {
780
- let {
781
- args,
782
- overrides
783
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
784
- const {
785
- provider
786
- } = client;
787
- const contract = getContract({
788
- signerOrProvider: provider,
789
- ...contractConfig
790
- });
791
- const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
792
- const response = await contract[functionName](...params);
793
- return response;
794
- }
795
-
796
- function watchContractEvent(
797
- /** Contract configuration */
798
- contractArgs,
799
- /** Event name to listen to */
800
- eventName, callback) {
801
- let {
802
- once
803
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
804
- let contract;
805
-
806
- const watchEvent = async () => {
807
- if (contract) {
808
- var _contract;
809
-
810
- (_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
811
- }
812
-
813
- contract = getContract({
814
- signerOrProvider: client.webSocketProvider || client.provider,
815
- ...contractArgs
816
- });
817
- if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
818
- };
819
-
820
- watchEvent();
821
- const unsubscribe = client.subscribe(_ref => {
822
- let {
823
- provider,
824
- webSocketProvider
825
- } = _ref;
826
- return {
827
- provider,
828
- webSocketProvider
829
- };
830
- }, watchEvent, {
831
- equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
832
- });
833
- return () => {
834
- var _contract2;
835
-
836
- (_contract2 = contract) === null || _contract2 === void 0 ? void 0 : _contract2.off(eventName, callback);
837
- unsubscribe();
838
- };
839
- }
840
-
841
- async function fetchBlockNumber() {
842
- const blockNumber = await client.provider.getBlockNumber();
843
- return blockNumber;
844
- }
845
-
846
- function watchBlockNumber(args, callback) {
847
- let prevProvider;
848
-
849
- const createListener = provider => {
850
- const listener = blockNumber => {
851
- callback(blockNumber);
852
- };
853
-
854
- if (prevProvider) {
855
- var _prevProvider;
856
-
857
- (_prevProvider = prevProvider) === null || _prevProvider === void 0 ? void 0 : _prevProvider.off('block', listener);
858
- }
859
-
860
- provider.on('block', listener);
861
- prevProvider = provider;
862
- };
863
-
864
- const {
865
- provider,
866
- webSocketProvider
867
- } = client;
868
- const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
869
- if (args.listen) createListener(provider_);
870
- const unsubscribe = client.subscribe(_ref => {
871
- let {
872
- provider,
873
- webSocketProvider
874
- } = _ref;
875
- return {
876
- provider,
877
- webSocketProvider
878
- };
879
- }, async _ref2 => {
880
- let {
881
- provider,
882
- webSocketProvider
883
- } = _ref2;
884
- const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
885
-
886
- if (args.listen && provider_) {
887
- createListener(provider_);
888
- }
889
-
890
- callback(await fetchBlockNumber());
891
- }, {
892
- equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
893
- });
894
- return unsubscribe;
895
- }
896
-
897
- function watchReadContract(contractConfig, functionName) {
898
- var _config$listenToBlock;
899
-
900
- let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
901
- let callback = arguments.length > 3 ? arguments[3] : undefined;
902
-
903
- const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
904
-
905
- const unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
906
- listen: true
907
- }, handleChange) : undefined;
908
- const unsubscribe = client.subscribe(_ref => {
909
- let {
910
- provider
911
- } = _ref;
912
- return provider;
913
- }, handleChange);
914
- return () => {
915
- unsubscribe();
916
- unwatch === null || unwatch === void 0 ? void 0 : unwatch();
917
- };
918
- }
919
-
920
- async function writeContract(contractConfig, functionName) {
921
- let {
922
- args,
923
- overrides
924
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
925
- const {
926
- connector
927
- } = client;
928
- const contract = getContract(contractConfig);
929
- if (!connector) throw new base.ConnectorNotFoundError();
930
- const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
931
-
932
- try {
933
- const signer = await connector.getSigner();
934
- const contract_ = contract.connect(signer);
935
- const response = await contract_[functionName](...params);
936
- return response;
937
- } catch (error_) {
938
- let error = error_;
939
- if (error_.code === 4001) error = new base.UserRejectedRequestError();
940
- throw error;
941
- }
942
- }
943
-
944
- async function fetchEnsAddress(_ref) {
945
- let {
946
- name
947
- } = _ref;
948
- const address = await client.provider.resolveName(name);
949
-
950
- try {
951
- return address ? utils.getAddress(address) : null;
952
- } catch (_error) {
953
- return null;
954
- }
955
- }
956
-
957
- async function fetchEnsAvatar(_ref) {
958
- let {
959
- addressOrName
960
- } = _ref;
961
- // TODO: Update with more advanced logic
962
- // https://github.com/ensdomains/ens-avatar
963
- const avatar = await client.provider.getAvatar(addressOrName);
964
- return avatar;
965
- }
966
-
967
- async function fetchEnsName(_ref) {
968
- let {
969
- address
970
- } = _ref;
971
- const ensName = await client.provider.lookupAddress(address);
972
- return ensName;
973
- }
974
-
975
- async function fetchEnsResolver(_ref) {
976
- let {
977
- name
978
- } = _ref;
979
- const resolver = await client.provider.getResolver(name);
980
- return resolver;
981
- }
982
-
983
- function watchEnsAddress(args, callback) {
984
- const handleChange = async () => callback(await fetchEnsAddress(args));
985
-
986
- const unsubscribe = client.subscribe(_ref => {
987
- let {
988
- provider
989
- } = _ref;
990
- return provider;
991
- }, handleChange);
992
- return unsubscribe;
993
- }
994
-
995
- function watchEnsAvatar(args, callback) {
996
- const handleChange = async () => callback(await fetchEnsAvatar(args));
997
-
998
- const unsubscribe = client.subscribe(_ref => {
999
- let {
1000
- provider
1001
- } = _ref;
1002
- return provider;
1003
- }, handleChange);
1004
- return unsubscribe;
1005
- }
1006
-
1007
- function watchEnsName(args, callback) {
1008
- const handleChange = async () => callback(await fetchEnsName(args));
1009
-
1010
- const unsubscribe = client.subscribe(_ref => {
1011
- let {
1012
- provider
1013
- } = _ref;
1014
- return provider;
1015
- }, handleChange);
1016
- return unsubscribe;
1017
- }
1018
-
1019
- function watchEnsResolver(args, callback) {
1020
- const handleChange = async () => callback(await fetchEnsResolver(args));
1021
-
1022
- const unsubscribe = client.subscribe(_ref => {
1023
- let {
1024
- provider
1025
- } = _ref;
1026
- return provider;
1027
- }, handleChange);
1028
- return unsubscribe;
1029
- }
1030
-
1031
- async function fetchFeeData() {
1032
- let {
1033
- formatUnits: units = 'wei'
1034
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1035
- const feeData = await client.provider.getFeeData();
1036
- const formatted = {
1037
- gasPrice: utils.formatUnits(feeData.gasPrice, units),
1038
- maxFeePerGas: utils.formatUnits(feeData.maxFeePerGas, units),
1039
- maxPriorityFeePerGas: utils.formatUnits(feeData.maxPriorityFeePerGas, units)
1040
- };
1041
- return { ...feeData,
1042
- formatted
1043
- };
1044
- }
1045
-
1046
- function watchFeeData(args, callback) {
1047
- const handleChange = async () => callback(await fetchFeeData(args));
1048
-
1049
- const unwatch = args.listenToBlock ? watchBlockNumber({
1050
- listen: true
1051
- }, handleChange) : undefined;
1052
- const unsubscribe = client.subscribe(_ref => {
1053
- let {
1054
- provider
1055
- } = _ref;
1056
- return provider;
1057
- }, handleChange);
1058
- return () => {
1059
- unsubscribe();
1060
- unwatch === null || unwatch === void 0 ? void 0 : unwatch();
1061
- };
1062
- }
1063
-
1064
- function getProvider() {
1065
- return client.provider;
1066
- }
1067
-
1068
- function getWebSocketProvider() {
1069
- return client.webSocketProvider;
1070
- }
1071
-
1072
- async function fetchToken(_ref) {
1073
- let {
1074
- address,
1075
- formatUnits: units = 'ether'
1076
- } = _ref;
1077
- if (!address) throw new Error('address is required');
1078
- const {
1079
- provider
1080
- } = client;
1081
- const contract = new ethers$1.Contract(address, erc20ABI, provider);
1082
- const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
1083
- const token = {
1084
- address,
1085
- decimals,
1086
- symbol,
1087
- totalSupply: {
1088
- formatted: utils.formatUnits(totalSupply, units),
1089
- value: totalSupply
1090
- }
1091
- };
1092
- return token;
1093
- }
1094
-
1095
- function watchToken(args, callback) {
1096
- const handleChange = async () => callback(await fetchToken(args));
1097
-
1098
- const unsubscribe = client.subscribe(_ref => {
1099
- let {
1100
- provider
1101
- } = _ref;
1102
- return provider;
1103
- }, handleChange);
1104
- return unsubscribe;
1105
- }
1106
-
1107
- async function sendTransaction(args) {
1108
- try {
1109
- const signer = await fetchSigner();
1110
- if (!signer) throw new base.ConnectorNotFoundError();
1111
- const transaction = await signer.sendTransaction(args.request);
1112
- return transaction;
1113
- } catch (error_) {
1114
- let error = error_;
1115
- if (error_.code === 4001) error = new base.UserRejectedRequestError();
1116
- throw error;
1117
- }
1118
- }
1119
-
1120
- async function waitForTransaction(args) {
1121
- const {
1122
- provider
1123
- } = client;
1124
- let promise; // eslint-disable-next-line testing-library/await-async-utils
1125
-
1126
- 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');
1127
- const receipt = await promise;
1128
- return receipt;
1129
- }
1130
-
1131
- exports.AddChainError = base.AddChainError;
1132
- exports.ChainNotConfiguredError = base.ChainNotConfiguredError;
1133
- exports.Connector = base.Connector;
1134
- exports.ConnectorAlreadyConnectedError = base.ConnectorAlreadyConnectedError;
1135
- exports.ConnectorNotFoundError = base.ConnectorNotFoundError;
1136
- exports.SwitchChainError = base.SwitchChainError;
1137
- exports.SwitchChainNotSupportedError = base.SwitchChainNotSupportedError;
1138
- exports.UserRejectedRequestError = base.UserRejectedRequestError;
1139
- exports.alchemyRpcUrls = base.alchemyRpcUrls;
1140
- exports.allChains = base.allChains;
1141
- exports.chain = base.chain;
1142
- exports.chainId = base.chainId;
1143
- exports.defaultChains = base.defaultChains;
1144
- exports.etherscanBlockExplorers = base.etherscanBlockExplorers;
1145
- exports.infuraRpcUrls = base.infuraRpcUrls;
1146
- exports.normalizeChainId = base.normalizeChainId;
1147
- exports.Client = Client;
1148
- exports.InjectedConnector = InjectedConnector;
1149
- exports.WagmiClient = Client;
1150
- exports.connect = connect;
1151
- exports.createClient = createClient;
1152
- exports.createStorage = createStorage;
1153
- exports.createWagmiClient = createClient;
1154
- exports.createWagmiStorage = createStorage;
1155
- exports.disconnect = disconnect;
1156
- exports.erc20ABI = erc20ABI;
1157
- exports.erc721ABI = erc721ABI;
1158
- exports.fetchBalance = fetchBalance;
1159
- exports.fetchBlockNumber = fetchBlockNumber;
1160
- exports.fetchEnsAddress = fetchEnsAddress;
1161
- exports.fetchEnsAvatar = fetchEnsAvatar;
1162
- exports.fetchEnsName = fetchEnsName;
1163
- exports.fetchEnsResolver = fetchEnsResolver;
1164
- exports.fetchFeeData = fetchFeeData;
1165
- exports.fetchSigner = fetchSigner;
1166
- exports.fetchToken = fetchToken;
1167
- exports.getAccount = getAccount;
1168
- exports.getContract = getContract;
1169
- exports.getNetwork = getNetwork;
1170
- exports.getProvider = getProvider;
1171
- exports.getWebSocketProvider = getWebSocketProvider;
1172
- exports.noopStorage = noopStorage;
1173
- exports.readContract = readContract;
1174
- exports.sendTransaction = sendTransaction;
1175
- exports.signMessage = signMessage;
1176
- exports.signTypedData = signTypedData;
1177
- exports.switchNetwork = switchNetwork;
1178
- exports.units = units;
1179
- exports.waitForTransaction = waitForTransaction;
1180
- exports.watchAccount = watchAccount;
1181
- exports.watchBalance = watchBalance;
1182
- exports.watchBlockNumber = watchBlockNumber;
1183
- exports.watchContractEvent = watchContractEvent;
1184
- exports.watchEnsAddress = watchEnsAddress;
1185
- exports.watchEnsAvatar = watchEnsAvatar;
1186
- exports.watchEnsName = watchEnsName;
1187
- exports.watchEnsResolver = watchEnsResolver;
1188
- exports.watchFeeData = watchFeeData;
1189
- exports.watchNetwork = watchNetwork;
1190
- exports.watchReadContract = watchReadContract;
1191
- exports.watchSigner = watchSigner;
1192
- exports.watchToken = watchToken;
1193
- exports.writeContract = writeContract;