wagmi 0.2.21 → 0.3.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 (68) hide show
  1. package/connectors/coinbaseWallet/dist/wagmi-connectors-coinbaseWallet.cjs.d.ts +1 -0
  2. package/connectors/coinbaseWallet/dist/wagmi-connectors-coinbaseWallet.cjs.dev.js +12 -0
  3. package/connectors/coinbaseWallet/dist/wagmi-connectors-coinbaseWallet.cjs.js +7 -0
  4. package/connectors/coinbaseWallet/dist/wagmi-connectors-coinbaseWallet.cjs.prod.js +12 -0
  5. package/connectors/coinbaseWallet/dist/wagmi-connectors-coinbaseWallet.esm.js +1 -0
  6. package/connectors/coinbaseWallet/package.json +4 -0
  7. package/connectors/injected/dist/wagmi-connectors-injected.cjs.dev.js +2 -2
  8. package/connectors/injected/dist/wagmi-connectors-injected.cjs.prod.js +2 -2
  9. package/connectors/injected/dist/wagmi-connectors-injected.esm.js +1 -1
  10. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.dev.js +1 -1
  11. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.prod.js +1 -1
  12. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.esm.js +1 -1
  13. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.d.ts +11 -1
  14. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.js +15 -6
  15. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +1 -0
  16. package/dist/declarations/src/connectors/injected.d.ts +1 -1
  17. package/dist/declarations/src/connectors/walletConnect.d.ts +1 -1
  18. package/dist/declarations/src/context.d.ts +12 -59
  19. package/dist/declarations/src/hooks/accounts/index.d.ts +0 -1
  20. package/dist/declarations/src/hooks/accounts/useAccount.d.ts +179 -11
  21. package/dist/declarations/src/hooks/accounts/useBalance.d.ts +15 -26
  22. package/dist/declarations/src/hooks/accounts/useConnect.d.ts +95 -13
  23. package/dist/declarations/src/hooks/accounts/useNetwork.d.ts +87 -29
  24. package/dist/declarations/src/hooks/accounts/useSignMessage.d.ts +63 -15
  25. package/dist/declarations/src/hooks/accounts/useSigner.d.ts +117 -11
  26. package/dist/declarations/src/hooks/contracts/index.d.ts +1 -1
  27. package/dist/declarations/src/hooks/contracts/useContract.d.ts +3 -11
  28. package/dist/declarations/src/hooks/contracts/useContractEvent.d.ts +3 -4
  29. package/dist/declarations/src/hooks/contracts/useContractRead.d.ts +17 -22
  30. package/dist/declarations/src/hooks/contracts/useContractWrite.d.ts +69 -19
  31. package/dist/declarations/src/hooks/contracts/useToken.d.ts +13 -42
  32. package/dist/declarations/src/hooks/ens/index.d.ts +2 -2
  33. package/dist/declarations/src/hooks/ens/useEnsAddress.d.ts +17 -0
  34. package/dist/declarations/src/hooks/ens/useEnsAvatar.d.ts +15 -12
  35. package/dist/declarations/src/hooks/ens/useEnsName.d.ts +17 -0
  36. package/dist/declarations/src/hooks/ens/useEnsResolver.d.ts +15 -19
  37. package/dist/declarations/src/hooks/index.d.ts +4 -4
  38. package/dist/declarations/src/hooks/network-status/useBlockNumber.d.ts +10 -15
  39. package/dist/declarations/src/hooks/network-status/useFeeData.d.ts +12 -27
  40. package/dist/declarations/src/hooks/providers/useProvider.d.ts +1 -1
  41. package/dist/declarations/src/hooks/providers/useWebSocketProvider.d.ts +1 -1
  42. package/dist/declarations/src/hooks/transactions/index.d.ts +1 -1
  43. package/dist/declarations/src/hooks/transactions/useSendTransaction.d.ts +69 -0
  44. package/dist/declarations/src/hooks/transactions/useWaitForTransaction.d.ts +15 -31
  45. package/dist/declarations/src/hooks/utils/index.d.ts +1 -3
  46. package/dist/declarations/src/hooks/utils/useChainId.d.ts +1 -0
  47. package/dist/declarations/src/index.d.ts +3 -5
  48. package/dist/declarations/src/types/index.d.ts +50 -0
  49. package/dist/declarations/src/utils/deserialize.d.ts +2 -0
  50. package/dist/declarations/src/utils/index.d.ts +2 -0
  51. package/dist/declarations/src/utils/serialize.d.ts +7 -0
  52. package/dist/wagmi.cjs.dev.js +1103 -1646
  53. package/dist/wagmi.cjs.prod.js +1103 -1646
  54. package/dist/wagmi.esm.js +1086 -1603
  55. package/package.json +15 -18
  56. package/README.md +0 -81
  57. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.dev.js +0 -12
  58. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.prod.js +0 -12
  59. package/connectors/walletLink/dist/wagmi-connectors-walletLink.esm.js +0 -1
  60. package/connectors/walletLink/package.json +0 -4
  61. package/dist/declarations/src/connectors/walletLink.d.ts +0 -1
  62. package/dist/declarations/src/hooks/accounts/useSignTypedData.d.ts +0 -33
  63. package/dist/declarations/src/hooks/ens/useEnsLookup.d.ts +0 -20
  64. package/dist/declarations/src/hooks/ens/useEnsResolveName.d.ts +0 -20
  65. package/dist/declarations/src/hooks/transactions/useTransaction.d.ts +0 -18
  66. package/dist/declarations/src/hooks/utils/useCacheBuster.d.ts +0 -1
  67. package/dist/declarations/src/hooks/utils/useCancel.d.ts +0 -3
  68. package/dist/declarations/src/hooks/utils/useLocalStorage.d.ts +0 -1
@@ -3,9 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var providers = require('@ethersproject/providers');
7
- var wagmiCore = require('wagmi-core');
8
- var ethers = require('ethers');
6
+ var core = require('@wagmi/core');
7
+ var reactQuery = require('react-query');
8
+ var persistQueryClientExperimental = require('react-query/persistQueryClient-experimental');
9
+ var createWebStoragePersistorExperimental = require('react-query/createWebStoragePersistor-experimental');
10
+ var ethers = require('ethers/lib/ethers');
9
11
 
10
12
  function _interopNamespace(e) {
11
13
  if (e && e.__esModule) return e;
@@ -27,6 +29,76 @@ function _interopNamespace(e) {
27
29
 
28
30
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
31
 
32
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
33
+ try {
34
+ var info = gen[key](arg);
35
+ var value = info.value;
36
+ } catch (error) {
37
+ reject(error);
38
+ return;
39
+ }
40
+
41
+ if (info.done) {
42
+ resolve(value);
43
+ } else {
44
+ Promise.resolve(value).then(_next, _throw);
45
+ }
46
+ }
47
+
48
+ function _asyncToGenerator(fn) {
49
+ return function () {
50
+ var self = this,
51
+ args = arguments;
52
+ return new Promise(function (resolve, reject) {
53
+ var gen = fn.apply(self, args);
54
+
55
+ function _next(value) {
56
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
57
+ }
58
+
59
+ function _throw(err) {
60
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
61
+ }
62
+
63
+ _next(undefined);
64
+ });
65
+ };
66
+ }
67
+
68
+ function _objectWithoutPropertiesLoose(source, excluded) {
69
+ if (source == null) return {};
70
+ var target = {};
71
+ var sourceKeys = Object.keys(source);
72
+ var key, i;
73
+
74
+ for (i = 0; i < sourceKeys.length; i++) {
75
+ key = sourceKeys[i];
76
+ if (excluded.indexOf(key) >= 0) continue;
77
+ target[key] = source[key];
78
+ }
79
+
80
+ return target;
81
+ }
82
+
83
+ function _objectWithoutProperties(source, excluded) {
84
+ if (source == null) return {};
85
+ var target = _objectWithoutPropertiesLoose(source, excluded);
86
+ var key, i;
87
+
88
+ if (Object.getOwnPropertySymbols) {
89
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
90
+
91
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
92
+ key = sourceSymbolKeys[i];
93
+ if (excluded.indexOf(key) >= 0) continue;
94
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
95
+ target[key] = source[key];
96
+ }
97
+ }
98
+
99
+ return target;
100
+ }
101
+
30
102
  function _defineProperty(obj, key, value) {
31
103
  if (key in obj) {
32
104
  Object.defineProperty(obj, key, {
@@ -68,1171 +140,922 @@ function _objectSpread2(target) {
68
140
  return target;
69
141
  }
70
142
 
71
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
72
- try {
73
- var info = gen[key](arg);
74
- var value = info.value;
75
- } catch (error) {
76
- reject(error);
77
- return;
143
+ var findAndReplace = (cacheRef, _ref) => {
144
+ var {
145
+ find,
146
+ replace
147
+ } = _ref;
148
+
149
+ if (cacheRef && find(cacheRef)) {
150
+ return replace(cacheRef);
78
151
  }
79
152
 
80
- if (info.done) {
81
- resolve(value);
82
- } else {
83
- Promise.resolve(value).then(_next, _throw);
153
+ if (typeof cacheRef !== 'object') {
154
+ return cacheRef;
84
155
  }
85
- }
86
156
 
87
- function _asyncToGenerator(fn) {
88
- return function () {
89
- var self = this,
90
- args = arguments;
91
- return new Promise(function (resolve, reject) {
92
- var gen = fn.apply(self, args);
157
+ if (Array.isArray(cacheRef)) {
158
+ return cacheRef.map(item => findAndReplace(item, {
159
+ find,
160
+ replace
161
+ }));
162
+ }
93
163
 
94
- function _next(value) {
95
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
96
- }
164
+ if (cacheRef instanceof Object) {
165
+ return Object.entries(cacheRef).reduce((curr, _ref2) => {
166
+ var [key, value] = _ref2;
167
+ return _objectSpread2(_objectSpread2({}, curr), {}, {
168
+ [key]: findAndReplace(value, {
169
+ find,
170
+ replace
171
+ })
172
+ });
173
+ }, {});
174
+ }
97
175
 
98
- function _throw(err) {
99
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
100
- }
176
+ return cacheRef;
177
+ };
101
178
 
102
- _next(undefined);
103
- });
104
- };
179
+ function deserialize(cachedString) {
180
+ var cache = JSON.parse(cachedString);
181
+ var deserializedCacheWithBigNumbers = findAndReplace(cache, {
182
+ find: data => data.type === 'BigNumber',
183
+ replace: data => ethers.BigNumber.from(data.hex)
184
+ });
185
+ return deserializedCacheWithBigNumbers;
105
186
  }
106
187
 
107
- var useProvider = () => {
108
- var {
109
- state
110
- } = useContext();
111
- return state.provider;
112
- };
113
-
114
- var useWebSocketProvider = () => {
115
- var {
116
- state
117
- } = useContext();
118
- return state.webSocketProvider;
119
- };
188
+ var LIMIT_REPLACE_NODE = '[...]';
189
+ var CIRCULAR_REPLACE_NODE = '[Circular]';
190
+ var arr = [];
191
+ var replacerStack = [];
192
+ var defaultOptions = {
193
+ depthLimit: Number.MAX_SAFE_INTEGER,
194
+ edgesLimit: Number.MAX_SAFE_INTEGER
195
+ }; // Regular stringify
120
196
 
121
- var useCacheBuster = () => {
122
- var context = useContext();
123
- return context.state.cacheBuster;
124
- };
197
+ function serialize(obj, replacer, spacer) {
198
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultOptions;
199
+ decirc(obj, '', 0, [], undefined, 0, options);
200
+ var res;
125
201
 
126
- var useCancel = () => {
127
- var cancelCallback = React__namespace.useRef(null);
128
- React__namespace.useEffect(() => {
129
- return () => {
130
- var _cancelCallback$curre;
202
+ try {
203
+ if (replacerStack.length === 0) {
204
+ res = JSON.stringify(obj, replacer, spacer);
205
+ } else {
206
+ res = JSON.stringify(obj, replaceGetterValues(replacer), spacer);
207
+ }
208
+ } catch (_) {
209
+ return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]');
210
+ } finally {
211
+ while (arr.length !== 0) {
212
+ var part = arr.pop();
213
+
214
+ if (part.length === 4) {
215
+ Object.defineProperty(part[0], part[1], part[3]);
216
+ } else {
217
+ part[0][part[1]] = part[2];
218
+ }
219
+ }
220
+ }
131
221
 
132
- return (_cancelCallback$curre = cancelCallback.current) === null || _cancelCallback$curre === void 0 ? void 0 : _cancelCallback$curre.call(cancelCallback);
133
- };
134
- }, []);
135
- var cancel = React__namespace.useCallback(callback => {
136
- var _cancelCallback$curre2;
222
+ return res;
223
+ }
137
224
 
138
- (_cancelCallback$curre2 = cancelCallback.current) === null || _cancelCallback$curre2 === void 0 ? void 0 : _cancelCallback$curre2.call(cancelCallback);
139
- if (callback) cancelCallback.current = callback;
140
- }, []);
141
- return cancel;
142
- };
225
+ function setReplace(replace, val, k, parent) {
226
+ var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);
143
227
 
144
- var useLocalStorage = function useLocalStorage(key) {
145
- var defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
146
- var [value, setValue] = React__namespace.useState(() => {
147
- if (typeof localStorage === 'undefined') return defaultState;
148
- var value = localStorage.getItem(key);
149
-
150
- try {
151
- return value ? JSON.parse(value) : defaultState;
152
- } catch (error) {
153
- console.warn(error);
154
- return defaultState;
228
+ if ((propertyDescriptor === null || propertyDescriptor === void 0 ? void 0 : propertyDescriptor.get) !== undefined) {
229
+ if (propertyDescriptor.configurable) {
230
+ Object.defineProperty(parent, k, {
231
+ value: replace
232
+ });
233
+ arr.push([parent, k, val, propertyDescriptor]);
234
+ } else {
235
+ replacerStack.push([val, k, replace]);
155
236
  }
156
- });
157
- var setLocalStorage = React__namespace.useCallback(newValue => {
158
- if (newValue === value) return;
159
- setValue(newValue);
160
- if (newValue === null) localStorage.removeItem(key);else localStorage.setItem(key, JSON.stringify(newValue));
237
+ } else {
238
+ parent[k] = replace;
239
+ arr.push([parent, k, val]);
240
+ }
241
+ }
161
242
 
162
- if (newValue === null) {
163
- localStorage.removeItem(key);
164
- } else {
165
- try {
166
- localStorage.setItem(key, JSON.stringify(newValue));
167
- } catch (error) {
168
- console.error(error);
243
+ function decirc(val, k, edgeIndex, stack, parent, depth, options) {
244
+ depth += 1;
245
+ var i;
246
+
247
+ if (typeof val === 'object' && val !== null) {
248
+ for (i = 0; i < stack.length; i++) {
249
+ if (stack[i] === val) {
250
+ setReplace(CIRCULAR_REPLACE_NODE, val, k, parent);
251
+ return;
169
252
  }
170
253
  }
171
- }, [value, setValue, key]);
172
- return [value, setLocalStorage];
173
- };
174
-
175
- var initialState$g = {
176
- loading: false
177
- };
178
- var useEnsAvatar = function useEnsAvatar() {
179
- var {
180
- addressOrName,
181
- skip
182
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
183
- var cacheBuster = useCacheBuster();
184
- var provider = useProvider();
185
- var [state, setState] = React__namespace.useState(initialState$g);
186
- var cancelQuery = useCancel();
187
- var getEnsAvatar = React__namespace.useCallback( /*#__PURE__*/function () {
188
- var _ref = _asyncToGenerator(function* (config) {
189
- var didCancel = false;
190
- cancelQuery(() => {
191
- didCancel = true;
192
- });
193
254
 
194
- try {
195
- var config_ = config !== null && config !== void 0 ? config : {
196
- addressOrName
197
- };
198
- if (!config_.addressOrName) throw new Error('addressOrName is required');
199
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
200
- error: undefined,
201
- loading: true
202
- }));
203
- var avatar = yield provider.getAvatar(config_.addressOrName);
204
-
205
- if (!didCancel) {
206
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
207
- avatar,
208
- loading: false
209
- }));
210
- }
255
+ if (typeof options.depthLimit !== 'undefined' && depth > options.depthLimit) {
256
+ setReplace(LIMIT_REPLACE_NODE, val, k, parent);
257
+ return;
258
+ }
211
259
 
212
- return avatar;
213
- } catch (error_) {
214
- var error = error_;
260
+ if (typeof options.edgesLimit !== 'undefined' && edgeIndex + 1 > options.edgesLimit) {
261
+ setReplace(LIMIT_REPLACE_NODE, val, k, parent);
262
+ return;
263
+ }
215
264
 
216
- if (!didCancel) {
217
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
218
- error,
219
- loading: false
220
- }));
221
- }
265
+ stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!
222
266
 
223
- return error;
267
+ if (Array.isArray(val)) {
268
+ for (i = 0; i < val.length; i++) {
269
+ decirc(val[i], i, i, stack, val, depth, options);
224
270
  }
225
- });
271
+ } else {
272
+ var keys = Object.keys(val);
226
273
 
227
- return function (_x) {
228
- return _ref.apply(this, arguments);
229
- };
230
- }(), [addressOrName, cancelQuery, provider]); // Fetch avatar when deps or chain changes
274
+ for (i = 0; i < keys.length; i++) {
275
+ var _key = keys[i];
276
+ decirc(val[_key], _key, i, stack, val, depth, options);
277
+ }
278
+ }
231
279
 
232
- /* eslint-disable react-hooks/exhaustive-deps */
280
+ stack.pop();
281
+ }
282
+ }
233
283
 
234
- React__namespace.useEffect(() => {
235
- if (skip || !addressOrName) return;
236
- getEnsAvatar({
237
- addressOrName
238
- });
239
- return cancelQuery;
240
- }, [addressOrName, cacheBuster, cancelQuery, skip]);
241
- /* eslint-enable react-hooks/exhaustive-deps */
284
+ // wraps replacer function to handle values we couldn't replace
285
+ // and mark them as replaced value
286
+ function replaceGetterValues() {
287
+ var replacer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (_k, v) => v;
288
+ return (key, val) => {
289
+ if (replacerStack.length > 0) {
290
+ for (var i = 0; i < replacerStack.length; i++) {
291
+ var part = replacerStack[i];
292
+
293
+ if (part[1] === key && part[0] === val) {
294
+ val = part[2];
295
+ replacerStack.splice(i, 1);
296
+ break;
297
+ }
298
+ }
299
+ }
242
300
 
243
- return [{
244
- data: state.avatar,
245
- loading: state.loading,
246
- error: state.error
247
- }, getEnsAvatar];
248
- };
301
+ return replacer.apply(key, val);
302
+ };
303
+ }
249
304
 
250
- var initialState$f = {
251
- loading: false
305
+ var _excluded$6 = ["queryClient"];
306
+ var Context = /*#__PURE__*/React__namespace.createContext(undefined);
307
+ var defaultQueryClientConfig = {
308
+ defaultOptions: {
309
+ queries: {
310
+ cacheTime: 1000 * 60 * 60 * 24,
311
+ // 24 hours
312
+ notifyOnChangeProps: 'tracked',
313
+ refetchOnWindowFocus: false,
314
+ retry: 0
315
+ }
316
+ }
252
317
  };
253
- var useEnsLookup = function useEnsLookup() {
318
+ function createClient() {
319
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
320
+ {
321
+ queryClient = new reactQuery.QueryClient(defaultQueryClientConfig)
322
+ } = _ref,
323
+ config = _objectWithoutProperties(_ref, _excluded$6);
324
+
325
+ var client = core.createClient(config);
326
+ var persistor = createWebStoragePersistorExperimental.createWebStoragePersistor({
327
+ storage: client.storage || window.localStorage,
328
+ serialize,
329
+ deserialize
330
+ });
331
+ persistQueryClientExperimental.persistQueryClient({
332
+ queryClient,
333
+ persistor,
334
+ dehydrateOptions: {
335
+ shouldDehydrateQuery: query => query.cacheTime !== 0
336
+ }
337
+ });
338
+ return Object.assign(client, {
339
+ queryClient
340
+ });
341
+ }
342
+ function Provider(_ref2) {
254
343
  var {
255
- address,
256
- skip
257
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
258
- var cacheBuster = useCacheBuster();
259
- var provider = useProvider();
260
- var [state, setState] = React__namespace.useState(initialState$f);
261
- var cancelQuery = useCancel();
262
- var lookupAddress = React__namespace.useCallback( /*#__PURE__*/function () {
263
- var _ref = _asyncToGenerator(function* (config) {
264
- var didCancel = false;
265
- cancelQuery(() => {
266
- didCancel = true;
267
- });
268
-
269
- try {
270
- var config_ = config !== null && config !== void 0 ? config : {
271
- address
272
- };
273
- if (!config_.address) throw new Error('address is required');
274
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
275
- error: undefined,
276
- loading: true
277
- }));
278
- var ens = yield provider.lookupAddress(config_.address);
279
-
280
- if (!didCancel) {
281
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
282
- ens,
283
- loading: false
284
- }));
285
- }
344
+ children,
345
+ client = createClient()
346
+ } = _ref2;
347
+ // Attempt to connect on mount
286
348
 
287
- return {
288
- data: ens,
289
- error: undefined
290
- };
291
- } catch (error_) {
292
- var error = error_;
293
-
294
- if (!didCancel) {
295
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
296
- error,
297
- loading: false
298
- }));
299
- }
349
+ /* eslint-disable react-hooks/exhaustive-deps */
350
+ React__namespace.useEffect(() => {
300
351
 
301
- return {
302
- data: undefined,
303
- error
304
- };
305
- }
306
- });
352
+ _asyncToGenerator(function* () {
353
+ if (!client.config.autoConnect) return;
354
+ yield client.autoConnect();
355
+ })();
356
+ }, []);
357
+ /* eslint-enable react-hooks/exhaustive-deps */
307
358
 
308
- return function (_x) {
309
- return _ref.apply(this, arguments);
310
- };
311
- }(), [address, cancelQuery, provider]); // Resolve name when deps or chain changes
359
+ return /*#__PURE__*/React__namespace.createElement(Context.Provider, {
360
+ value: client
361
+ }, /*#__PURE__*/React__namespace.createElement(reactQuery.QueryClientProvider, {
362
+ client: client.queryClient
363
+ }, children));
364
+ }
365
+ function useClient() {
366
+ var client = React__namespace.useContext(Context);
367
+ if (!client) throw Error('Must be used within WagmiProvider');
368
+ return client;
369
+ }
312
370
 
313
- /* eslint-disable react-hooks/exhaustive-deps */
371
+ function useProvider() {
372
+ var [, forceUpdate] = React__namespace.useReducer(c => c + 1, 0);
373
+ var client = useClient();
374
+ React__namespace.useEffect(() => {
375
+ var unsubscribe = client.subscribe(state => state.provider, forceUpdate);
376
+ return unsubscribe;
377
+ }, [client]);
378
+ return client.provider;
379
+ }
314
380
 
381
+ function useWebSocketProvider() {
382
+ var [, forceUpdate] = React__namespace.useReducer(c => c + 1, 0);
383
+ var client = useClient();
315
384
  React__namespace.useEffect(() => {
316
- if (skip || !address) return;
317
- lookupAddress({
318
- address
319
- });
320
- return cancelQuery;
321
- }, [address, cacheBuster, cancelQuery, skip]);
322
- /* eslint-enable react-hooks/exhaustive-deps */
385
+ var unsubscribe = client.subscribe(state => state.webSocketProvider, forceUpdate);
386
+ return unsubscribe;
387
+ }, [client]);
388
+ return client.webSocketProvider;
389
+ }
323
390
 
391
+ function useChainId() {
392
+ var _provider$network;
393
+
394
+ var provider = useProvider();
395
+ return provider === null || provider === void 0 ? void 0 : (_provider$network = provider.network) === null || _provider$network === void 0 ? void 0 : _provider$network.chainId;
396
+ }
397
+
398
+ var queryKey$a = _ref => {
399
+ var {
400
+ chainId,
401
+ name
402
+ } = _ref;
324
403
  return [{
325
- data: state.ens,
326
- loading: state.loading,
327
- error: state.error
328
- }, lookupAddress];
404
+ entity: 'ensAddress',
405
+ chainId,
406
+ name
407
+ }];
329
408
  };
330
409
 
331
- var initialState$e = {
332
- loading: false
410
+ var queryFn$9 = _ref2 => {
411
+ var {
412
+ queryKey: [{
413
+ name
414
+ }]
415
+ } = _ref2;
416
+ if (!name) throw new Error('name is required');
417
+ return core.fetchEnsAddress({
418
+ name
419
+ });
333
420
  };
334
- var useEnsResolveName = function useEnsResolveName() {
421
+
422
+ function useEnsAddress() {
335
423
  var {
336
424
  name,
337
- skip
425
+ cacheTime,
426
+ enabled = true,
427
+ keepPreviousData,
428
+ select,
429
+ staleTime = 1000 * 60 * 60 * 24,
430
+ // 24 hours
431
+ suspense,
432
+ onError,
433
+ onSettled,
434
+ onSuccess
338
435
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
339
- var cacheBuster = useCacheBuster();
340
- var provider = useProvider();
341
- var [state, setState] = React__namespace.useState(initialState$e);
342
- var cancelQuery = useCancel();
343
- var resolveName = React__namespace.useCallback( /*#__PURE__*/function () {
344
- var _ref = _asyncToGenerator(function* (config) {
345
- var didCancel = false;
346
- cancelQuery(() => {
347
- didCancel = true;
348
- });
436
+ var chainId = useChainId();
437
+ return reactQuery.useQuery(queryKey$a({
438
+ chainId,
439
+ name
440
+ }), queryFn$9, {
441
+ cacheTime,
442
+ enabled: Boolean(enabled && chainId && name),
443
+ keepPreviousData,
444
+ select,
445
+ staleTime,
446
+ suspense,
447
+ onError,
448
+ onSettled,
449
+ onSuccess
450
+ });
451
+ }
349
452
 
350
- try {
351
- var config_ = config !== null && config !== void 0 ? config : {
352
- name
353
- };
354
- if (!config_.name) throw new Error('name is required');
355
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
356
- error: undefined,
357
- loading: true
358
- }));
359
- var address = yield provider.resolveName(config_.name);
360
-
361
- if (!didCancel) {
362
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
363
- address,
364
- loading: false
365
- }));
366
- }
453
+ var queryKey$9 = _ref => {
454
+ var {
455
+ addressOrName,
456
+ chainId
457
+ } = _ref;
458
+ return [{
459
+ entity: 'ensAvatar',
460
+ addressOrName,
461
+ chainId
462
+ }];
463
+ };
367
464
 
368
- return {
369
- data: address,
370
- error: undefined
371
- };
372
- } catch (error_) {
373
- var error = error_;
374
-
375
- if (!didCancel) {
376
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
377
- error,
378
- loading: false
379
- }));
380
- }
465
+ var queryFn$8 = _ref2 => {
466
+ var {
467
+ queryKey: [{
468
+ addressOrName
469
+ }]
470
+ } = _ref2;
471
+ if (!addressOrName) throw new Error('addressOrName is required');
472
+ return core.fetchEnsAvatar({
473
+ addressOrName
474
+ });
475
+ };
381
476
 
382
- return {
383
- data: undefined,
384
- error
385
- };
386
- }
387
- });
477
+ function useEnsAvatar() {
478
+ var {
479
+ addressOrName,
480
+ cacheTime,
481
+ enabled = true,
482
+ keepPreviousData,
483
+ select,
484
+ staleTime = 1000 * 60 * 60 * 24,
485
+ // 24 hours
486
+ suspense,
487
+ onError,
488
+ onSettled,
489
+ onSuccess
490
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
491
+ var chainId = useChainId();
492
+ return reactQuery.useQuery(queryKey$9({
493
+ addressOrName,
494
+ chainId
495
+ }), queryFn$8, {
496
+ cacheTime,
497
+ enabled: Boolean(enabled && addressOrName && chainId),
498
+ keepPreviousData,
499
+ select,
500
+ staleTime,
501
+ suspense,
502
+ onError,
503
+ onSettled,
504
+ onSuccess
505
+ });
506
+ }
388
507
 
389
- return function (_x) {
390
- return _ref.apply(this, arguments);
391
- };
392
- }(), [name, cancelQuery, provider]); // Resolve name when deps or chain changes
508
+ var queryKey$8 = _ref => {
509
+ var {
510
+ address,
511
+ chainId
512
+ } = _ref;
513
+ return [{
514
+ entity: 'ensName',
515
+ address,
516
+ chainId
517
+ }];
518
+ };
393
519
 
394
- /* eslint-disable react-hooks/exhaustive-deps */
520
+ var queryFn$7 = _ref2 => {
521
+ var {
522
+ queryKey: [{
523
+ address
524
+ }]
525
+ } = _ref2;
526
+ if (!address) throw new Error('address is required');
527
+ return core.fetchEnsName({
528
+ address
529
+ });
530
+ };
395
531
 
396
- React__namespace.useEffect(() => {
397
- if (skip || !name) return;
398
- resolveName({
399
- name
400
- });
401
- return cancelQuery;
402
- }, [name, cacheBuster, cancelQuery, skip]);
403
- /* eslint-enable react-hooks/exhaustive-deps */
532
+ function useEnsName() {
533
+ var {
534
+ address,
535
+ cacheTime,
536
+ enabled = true,
537
+ keepPreviousData,
538
+ select,
539
+ staleTime = 1000 * 60 * 60 * 24,
540
+ // 24 hours
541
+ suspense,
542
+ onError,
543
+ onSettled,
544
+ onSuccess
545
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
546
+ var chainId = useChainId();
547
+ return reactQuery.useQuery(queryKey$8({
548
+ address,
549
+ chainId
550
+ }), queryFn$7, {
551
+ cacheTime,
552
+ enabled: Boolean(enabled && address && chainId),
553
+ keepPreviousData,
554
+ select,
555
+ staleTime,
556
+ suspense,
557
+ onError,
558
+ onSettled,
559
+ onSuccess
560
+ });
561
+ }
404
562
 
563
+ var queryKey$7 = _ref => {
564
+ var {
565
+ chainId,
566
+ name
567
+ } = _ref;
405
568
  return [{
406
- data: state.address,
407
- loading: state.loading,
408
- error: state.error
409
- }, resolveName];
569
+ entity: 'ensResolver',
570
+ chainId,
571
+ name
572
+ }];
410
573
  };
411
574
 
412
- var initialState$d = {
413
- loading: false
575
+ var queryFn$6 = _ref2 => {
576
+ var {
577
+ queryKey: [{
578
+ name
579
+ }]
580
+ } = _ref2;
581
+ if (!name) throw new Error('name is required');
582
+ return core.fetchEnsResolver({
583
+ name
584
+ });
414
585
  };
415
- var useEnsResolver = function useEnsResolver() {
586
+
587
+ function useEnsResolver() {
416
588
  var {
417
589
  name,
418
- skip
590
+ cacheTime,
591
+ enabled = true,
592
+ keepPreviousData,
593
+ select,
594
+ staleTime = 1000 * 60 * 60 * 24,
595
+ // 24 hours
596
+ suspense,
597
+ onError,
598
+ onSettled,
599
+ onSuccess
419
600
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
420
- var cacheBuster = useCacheBuster();
421
- var provider = useProvider();
422
- var [state, setState] = React__namespace.useState(initialState$d);
423
- var cancelQuery = useCancel();
424
- var getEnsResolver = React__namespace.useCallback( /*#__PURE__*/function () {
425
- var _ref = _asyncToGenerator(function* (config) {
426
- var didCancel = false;
427
- cancelQuery(() => {
428
- didCancel = true;
429
- });
430
-
431
- try {
432
- var config_ = config !== null && config !== void 0 ? config : {
433
- name
434
- };
435
- if (!config_.name) throw new Error('name is required');
436
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
437
- error: undefined,
438
- loading: true
439
- }));
440
- var resolver = yield provider.getResolver(config_.name);
441
-
442
- if (!didCancel) {
443
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
444
- loading: false,
445
- resolver
446
- }));
447
- }
448
-
449
- return {
450
- data: resolver,
451
- error: undefined
452
- };
453
- } catch (error_) {
454
- var error = error_;
455
-
456
- if (!didCancel) {
457
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
458
- error,
459
- loading: false
460
- }));
461
- }
601
+ var chainId = useChainId();
602
+ return reactQuery.useQuery(queryKey$7({
603
+ chainId,
604
+ name
605
+ }), queryFn$6, {
606
+ cacheTime,
607
+ enabled: Boolean(enabled && chainId && name),
608
+ keepPreviousData,
609
+ select,
610
+ staleTime,
611
+ suspense,
612
+ onError,
613
+ onSettled,
614
+ onSuccess
615
+ });
616
+ }
462
617
 
463
- return {
464
- data: undefined,
465
- error
466
- };
467
- }
468
- });
618
+ var _excluded$5 = ["data", "error", "isError", "isLoading", "status"];
619
+ var queryKey$6 = () => [{
620
+ entity: 'account'
621
+ }];
622
+ function useAccount() {
623
+ var {
624
+ ens,
625
+ cacheTime,
626
+ enabled = true,
627
+ keepPreviousData,
628
+ select,
629
+ staleTime,
630
+ suspense,
631
+ onError,
632
+ onSettled,
633
+ onSuccess
634
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
635
+ var client = useClient();
636
+ var queryClient = reactQuery.useQueryClient();
469
637
 
470
- return function (_x) {
471
- return _ref.apply(this, arguments);
638
+ var _useQuery = reactQuery.useQuery(queryKey$6(), () => {
639
+ var {
640
+ address,
641
+ connector
642
+ } = core.getAccount();
643
+ var cachedAccount = queryClient.getQueryData(queryKey$6());
644
+ return address ? {
645
+ address,
646
+ connector
647
+ } : cachedAccount || {
648
+ address: undefined,
649
+ connector: undefined
472
650
  };
473
- }(), [cancelQuery, name, provider]); // Fetch avatar when deps or chain changes
474
-
475
- /* eslint-disable react-hooks/exhaustive-deps */
476
-
477
- React__namespace.useEffect(() => {
478
- if (skip || !name) return;
479
- getEnsResolver({
480
- name
481
- });
482
- return cancelQuery;
483
- }, [cacheBuster, cancelQuery, name, skip]);
484
- /* eslint-enable react-hooks/exhaustive-deps */
485
-
486
- return [{
487
- data: state.resolver,
488
- loading: state.loading,
489
- error: state.error
490
- }, getEnsResolver];
491
- };
492
-
493
- var useAccount = function useAccount() {
494
- var _globalState$data;
651
+ }, {
652
+ cacheTime,
653
+ enabled,
654
+ keepPreviousData,
655
+ select,
656
+ staleTime,
657
+ suspense,
658
+ onError,
659
+ onSettled,
660
+ onSuccess
661
+ }),
662
+ {
663
+ data: accountData,
664
+ error,
665
+ isError,
666
+ isLoading,
667
+ status
668
+ } = _useQuery,
669
+ accountQueryResult = _objectWithoutProperties(_useQuery, _excluded$5);
495
670
 
671
+ var address = accountData === null || accountData === void 0 ? void 0 : accountData.address;
496
672
  var {
497
- fetchEns
498
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
673
+ data: ensAvatarData
674
+ } = useEnsAvatar({
675
+ addressOrName: address,
676
+ enabled: Boolean(typeof ens === 'boolean' ? ens : ens === null || ens === void 0 ? void 0 : ens.avatar)
677
+ });
499
678
  var {
500
- state: globalState,
501
- setState
502
- } = useContext();
503
- var address = (_globalState$data = globalState.data) === null || _globalState$data === void 0 ? void 0 : _globalState$data.account;
504
- var [{
505
- data: ens,
506
- error: ensError,
507
- loading: ensLoading
508
- }] = useEnsLookup({
679
+ data: ensNameData
680
+ } = useEnsName({
509
681
  address,
510
- skip: !fetchEns
511
- });
512
- var [{
513
- data: avatar,
514
- error: avatarError,
515
- loading: avatarLoading
516
- }] = useEnsAvatar({
517
- addressOrName: ens,
518
- skip: !fetchEns || !ens
682
+ enabled: Boolean(typeof ens === 'boolean' ? ens : ens === null || ens === void 0 ? void 0 : ens.name)
519
683
  });
520
- var disconnect = React__namespace.useCallback(() => {
521
- setState(x => {
522
- var _x$connector;
523
-
524
- (_x$connector = x.connector) === null || _x$connector === void 0 ? void 0 : _x$connector.disconnect();
525
- return {
526
- cacheBuster: x.cacheBuster + 1
527
- };
684
+ React__namespace.useEffect(() => {
685
+ var unwatch = core.watchAccount(data => {
686
+ queryClient.setQueryData(queryKey$6(), data);
528
687
  });
529
- }, [setState]);
530
- var error = ensError || avatarError;
531
- var loading = ensLoading || avatarLoading;
532
- return [{
533
- data: address ? {
534
- address,
535
- connector: globalState.connector,
536
- ens: ens ? {
537
- avatar,
538
- name: ens
539
- } : undefined
540
- } : undefined,
688
+ return unwatch;
689
+ }, [queryClient]); // Force data to be undefined if no address exists
690
+
691
+ var data_ = address ? accountData : undefined;
692
+ var isLoading_ = isLoading || client.status === 'connecting';
693
+ var status_;
694
+ if (isLoading_) status_ = 'loading';else if (!address) status_ = 'idle';else status_ = status;
695
+ var ensData = ensNameData !== undefined || ensAvatarData !== undefined ? {
696
+ ens: {
697
+ avatar: ensAvatarData,
698
+ name: ensNameData
699
+ }
700
+ } : {};
701
+ return _objectSpread2(_objectSpread2({}, accountQueryResult), {}, {
702
+ data: data_ ? _objectSpread2(_objectSpread2({}, data_), ensData) : undefined,
703
+ disconnect: core.disconnect,
541
704
  error,
542
- loading
543
- }, disconnect];
705
+ isError,
706
+ isIdle: status_ === 'idle',
707
+ isLoading: status_ === 'loading',
708
+ isSuccess: status_ === 'success',
709
+ status: status_
710
+ });
711
+ }
712
+
713
+ var queryKey$5 = _ref => {
714
+ var {
715
+ chainId
716
+ } = _ref;
717
+ return [{
718
+ entity: 'blockNumber',
719
+ chainId
720
+ }];
544
721
  };
545
722
 
546
- var initialState$c = {
547
- loading: false
723
+ var queryFn$5 = () => {
724
+ return core.fetchBlockNumber();
548
725
  };
549
- var useBlockNumber = function useBlockNumber() {
726
+
727
+ function useBlockNumber() {
550
728
  var {
551
- skip,
552
- watch
729
+ cacheTime = 0,
730
+ enabled = true,
731
+ keepPreviousData,
732
+ select,
733
+ staleTime,
734
+ suspense,
735
+ onError,
736
+ onSettled,
737
+ onSuccess,
738
+ watch = false
553
739
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
554
- var cacheBuster = useCacheBuster();
740
+ var chainId = useChainId();
555
741
  var provider = useProvider();
556
742
  var webSocketProvider = useWebSocketProvider();
557
- var [state, setState] = React__namespace.useState(initialState$c);
558
- var cancelQuery = useCancel();
559
- var getBlockNumber = React__namespace.useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
560
- var didCancel = false;
561
- cancelQuery(() => {
562
- didCancel = true;
563
- });
564
-
565
- try {
566
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
567
- error: undefined,
568
- loading: true
569
- }));
570
- var blockNumber = yield provider.getBlockNumber();
571
-
572
- if (!didCancel) {
573
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
574
- blockNumber,
575
- loading: false
576
- }));
577
- }
578
-
579
- return {
580
- data: blockNumber,
581
- error: undefined
582
- };
583
- } catch (error_) {
584
- var error = error_;
585
-
586
- if (!didCancel) {
587
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
588
- error,
589
- loading: false
590
- }));
591
- }
592
-
593
- return {
594
- data: undefined,
595
- error
596
- };
597
- }
598
- }), [cancelQuery, provider]);
599
- /* eslint-disable react-hooks/exhaustive-deps */
600
-
601
- React__namespace.useEffect(() => {
602
- if (skip) return;
603
- getBlockNumber();
604
- return cancelQuery;
605
- }, [cacheBuster, cancelQuery, skip]);
606
- /* eslint-enable react-hooks/exhaustive-deps */
743
+ var queryClient = reactQuery.useQueryClient(); // console.log({ webSocketProvider, provider })
607
744
 
608
745
  React__namespace.useEffect(() => {
609
746
  if (!watch) return;
610
- var didCancel = false;
611
747
 
612
748
  var listener = blockNumber => {
613
749
  // Just to be safe in case the provider implementation
614
750
  // calls the event callback after .off() has been called
615
- if (!didCancel) {
616
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
617
- blockNumber
618
- }));
619
- }
751
+ queryClient.setQueryData(queryKey$5({
752
+ chainId
753
+ }), blockNumber);
620
754
  };
621
755
 
622
- var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
756
+ var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider; // console.log({ provider_ })
757
+
623
758
  provider_.on('block', listener);
624
759
  return () => {
625
- didCancel = true;
626
760
  provider_.off('block', listener);
627
761
  };
628
- }, [provider, watch, webSocketProvider]);
762
+ }, [chainId, provider, queryClient, watch, webSocketProvider]);
763
+ return reactQuery.useQuery(queryKey$5({
764
+ chainId
765
+ }), queryFn$5, {
766
+ cacheTime,
767
+ enabled,
768
+ keepPreviousData,
769
+ select,
770
+ staleTime,
771
+ suspense,
772
+ onError,
773
+ onSettled,
774
+ onSuccess
775
+ });
776
+ }
777
+
778
+ var queryKey$4 = _ref => {
779
+ var {
780
+ addressOrName,
781
+ chainId,
782
+ formatUnits,
783
+ token
784
+ } = _ref;
629
785
  return [{
630
- data: state.blockNumber,
631
- error: state.error,
632
- loading: state.loading
633
- }, getBlockNumber];
786
+ entity: 'balance',
787
+ addressOrName,
788
+ chainId,
789
+ formatUnits,
790
+ token
791
+ }];
634
792
  };
635
793
 
636
- var initialState$b = {
637
- loading: false
638
- };
639
- var useFeeData = function useFeeData() {
794
+ var queryFn$4 = _ref2 => {
640
795
  var {
641
- formatUnits = 'wei',
642
- skip,
643
- watch
644
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
645
- var provider = useProvider();
646
- var [{
647
- data: blockNumber
648
- }] = useBlockNumber({
649
- skip: true,
650
- watch
796
+ queryKey: [{
797
+ addressOrName,
798
+ formatUnits,
799
+ token
800
+ }]
801
+ } = _ref2;
802
+ if (!addressOrName) throw new Error('address is required');
803
+ return core.fetchBalance({
804
+ addressOrName,
805
+ formatUnits,
806
+ token
651
807
  });
652
- var cacheBuster = useCacheBuster();
653
- var [state, setState] = React__namespace.useState(initialState$b);
654
- var cancelQuery = useCancel();
655
- var getFeeData = React__namespace.useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
656
- var didCancel = false;
657
- cancelQuery(() => {
658
- didCancel = true;
659
- });
660
-
661
- try {
662
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
663
- error: undefined,
664
- loading: true
665
- }));
666
- var feeData = yield provider.getFeeData();
667
-
668
- if (!didCancel) {
669
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
670
- feeData,
671
- loading: false
672
- }));
673
- }
674
-
675
- return {
676
- data: feeData,
677
- error: undefined
678
- };
679
- } catch (error_) {
680
- var error = error_;
681
-
682
- if (!didCancel) {
683
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
684
- error,
685
- loading: false
686
- }));
687
- }
688
-
689
- return {
690
- data: undefined,
691
- error
692
- };
693
- }
694
- }), [cancelQuery, provider]); // Fetch feeData on mount or when chain changes
695
-
696
- /* eslint-disable react-hooks/exhaustive-deps */
697
-
698
- React__namespace.useEffect(() => {
699
- if (skip) return;
700
- getFeeData();
701
- return cancelQuery;
702
- }, [cacheBuster, cancelQuery, skip]);
703
- /* eslint-enable react-hooks/exhaustive-deps */
704
-
705
- React__namespace.useEffect(() => {
706
- if (!watch || !blockNumber) return;
707
- getFeeData();
708
- return cancelQuery;
709
- }, [blockNumber, cancelQuery, getFeeData, watch]);
710
- var formatted = state.feeData ? {
711
- gasPrice: ethers.utils.formatUnits(state.feeData.gasPrice, formatUnits),
712
- maxFeePerGas: ethers.utils.formatUnits(state.feeData.maxFeePerGas, formatUnits),
713
- maxPriorityFeePerGas: ethers.utils.formatUnits(state.feeData.maxPriorityFeePerGas, formatUnits)
714
- } : undefined;
715
- return [{
716
- data: state.feeData ? _objectSpread2(_objectSpread2({}, state.feeData), {}, {
717
- formatted
718
- }) : undefined,
719
- loading: state.loading,
720
- error: state.error
721
- }, getFeeData];
722
808
  };
723
809
 
724
- var initialState$a = {
725
- loading: false
726
- };
727
- var useBalance = function useBalance() {
810
+ function useBalance() {
728
811
  var {
729
812
  addressOrName,
730
813
  formatUnits = 'ether',
731
- skip,
732
814
  token,
733
- watch
815
+ watch,
816
+ cacheTime,
817
+ enabled = true,
818
+ keepPreviousData,
819
+ select,
820
+ staleTime,
821
+ suspense,
822
+ onError,
823
+ onSettled,
824
+ onSuccess
734
825
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
826
+ var chainId = useChainId();
827
+ var balanceQuery = reactQuery.useQuery(queryKey$4({
828
+ addressOrName,
829
+ chainId,
830
+ formatUnits,
831
+ token
832
+ }), queryFn$4, {
833
+ cacheTime,
834
+ enabled: Boolean(enabled && addressOrName),
835
+ keepPreviousData,
836
+ select,
837
+ staleTime,
838
+ suspense,
839
+ onError,
840
+ onSettled,
841
+ onSuccess
842
+ });
735
843
  var {
736
- state: {
737
- connector
738
- }
739
- } = useContext();
740
- var cacheBuster = useCacheBuster();
741
- var provider = useProvider();
742
- var [{
743
844
  data: blockNumber
744
- }] = useBlockNumber({
745
- skip: true,
845
+ } = useBlockNumber({
746
846
  watch
747
847
  });
748
- var [state, setState] = React__namespace.useState(initialState$a);
749
- var cancelQuery = useCancel();
750
- var getBalance = React__namespace.useCallback( /*#__PURE__*/function () {
751
- var _ref = _asyncToGenerator(function* (config) {
752
- var didCancel = false;
753
- cancelQuery(() => {
754
- didCancel = true;
755
- });
756
-
757
- try {
758
- var _connector$chains;
759
-
760
- var config_ = config !== null && config !== void 0 ? config : {
761
- addressOrName,
762
- formatUnits,
763
- token
764
- };
765
- if (!config_.addressOrName) throw new Error('address is required');
766
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
767
- error: undefined,
768
- loading: true
769
- }));
770
- var balance = yield wagmiCore.balanceAction({
771
- chains: [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiCore.defaultChains, ...wagmiCore.defaultL2Chains],
772
- config: config_,
773
- provider
774
- });
775
- if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
776
- balance,
777
- loading: false
778
- }));
779
- return {
780
- data: balance,
781
- error: undefined
782
- };
783
- } catch (error_) {
784
- var error = error_;
785
- if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
786
- error,
787
- loading: false
788
- }));
789
- return {
790
- data: undefined,
791
- error
792
- };
793
- }
794
- });
795
-
796
- return function (_x) {
797
- return _ref.apply(this, arguments);
798
- };
799
- }(), [addressOrName, cancelQuery, connector, formatUnits, provider, token]); // Fetch balance when deps or chain changes
800
-
801
- /* eslint-disable react-hooks/exhaustive-deps */
802
-
803
- React__namespace.useEffect(() => {
804
- if (skip || !addressOrName) return;
805
- getBalance({
806
- addressOrName,
807
- formatUnits,
808
- token
809
- });
810
- return cancelQuery;
811
- }, [addressOrName, cacheBuster, cancelQuery, skip, token]);
812
- /* eslint-enable react-hooks/exhaustive-deps */
813
-
814
- /* eslint-disable react-hooks/exhaustive-deps */
815
-
816
848
  React__namespace.useEffect(() => {
849
+ if (!enabled) return;
817
850
  if (!watch) return;
818
851
  if (!blockNumber) return;
819
852
  if (!addressOrName) return;
820
- getBalance({
821
- addressOrName,
822
- formatUnits,
823
- token
824
- });
853
+ balanceQuery.refetch(); // eslint-disable-next-line react-hooks/exhaustive-deps
825
854
  }, [blockNumber]);
826
- /* eslint-enable react-hooks/exhaustive-deps */
855
+ return balanceQuery;
856
+ }
827
857
 
828
- return [{
829
- data: state.balance,
830
- error: state.error,
831
- loading: state.loading
832
- }, getBalance];
833
- };
858
+ var _excluded$4 = ["mutate", "mutateAsync", "status", "variables", "isSuccess", "isLoading"];
859
+ var mutationKey$4 = 'connect';
834
860
 
835
- var initialState$9 = {
836
- loading: false
837
- };
838
- var useConnect = () => {
839
- var _globalState$data;
861
+ var mutationFn$2 = connector => core.connect(connector);
840
862
 
863
+ function useConnect() {
841
864
  var {
842
- state: globalState,
843
- setState: setGlobalState,
844
- setLastUsedConnector
845
- } = useContext();
846
- var [state, setState] = React__namespace.useState(initialState$9);
847
- var cancelQuery = useCancel();
848
- var connect = React__namespace.useCallback( /*#__PURE__*/function () {
849
- var _ref = _asyncToGenerator(function* (connector) {
850
- var didCancel = false;
851
- cancelQuery(() => {
852
- didCancel = true;
853
- });
854
-
855
- try {
856
- var activeConnector = globalState === null || globalState === void 0 ? void 0 : globalState.connector;
857
- if (connector === activeConnector) throw new wagmiCore.ConnectorAlreadyConnectedError();
858
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
859
- loading: true,
860
- connector,
861
- error: undefined
862
- }));
863
- var data = yield connector.connect();
864
-
865
- if (!didCancel) {
866
- // Update connector globally only after successful connection
867
- setGlobalState(x => _objectSpread2(_objectSpread2({}, x), {}, {
868
- connector,
869
- data
870
- }));
871
- setLastUsedConnector(connector.name);
872
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
873
- loading: false
874
- }));
875
- }
876
-
877
- return {
878
- data,
879
- error: undefined
880
- };
881
- } catch (error_) {
882
- var error = error_;
883
-
884
- if (!didCancel) {
885
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
886
- connector: undefined,
887
- error,
888
- loading: false
889
- }));
890
- }
891
-
892
- return {
893
- data: undefined,
894
- error
895
- };
896
- }
897
- });
865
+ onBeforeConnect,
866
+ onConnect,
867
+ onError,
868
+ onSettled
869
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
870
+ var [, forceUpdate] = React__namespace.useReducer(c => c + 1, 0);
871
+ var client = useClient();
872
+
873
+ var _useMutation = reactQuery.useMutation(mutationKey$4, mutationFn$2, {
874
+ onError,
875
+ onMutate: onBeforeConnect,
876
+ onSettled,
877
+ onSuccess: onConnect
878
+ }),
879
+ {
880
+ mutate,
881
+ mutateAsync,
882
+ status,
883
+ variables: connector,
884
+ // Remove these values from return
885
+
886
+ /* eslint-disable @typescript-eslint/no-unused-vars */
887
+ isSuccess,
888
+ isLoading
889
+ } = _useMutation,
890
+ connectMutation = _objectWithoutProperties(_useMutation, _excluded$4); // Trigger update when connector or status change
898
891
 
899
- return function (_x) {
900
- return _ref.apply(this, arguments);
901
- };
902
- }(), [cancelQuery, globalState.connector, setGlobalState, setLastUsedConnector]); // Keep connector in sync with global connector
903
892
 
904
893
  React__namespace.useEffect(() => {
905
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
906
- connector: globalState.connector,
907
- error: undefined
908
- }));
909
- return cancelQuery;
910
- }, [cancelQuery, globalState.connector]);
911
- return [{
912
- data: {
913
- connected: !!((_globalState$data = globalState.data) !== null && _globalState$data !== void 0 && _globalState$data.account),
894
+ var unsubscribe = client.subscribe(state => ({
914
895
  connector: state.connector,
915
- connectors: globalState.connectors
916
- },
917
- error: state.error,
918
- loading: state.loading || globalState.connecting
919
- }, connect];
920
- };
921
-
922
- var initialState$8 = {
923
- loading: false
924
- };
925
- var useNetwork = () => {
926
- var _data$chain, _data$chain2, _connector$chains;
927
-
928
- var {
929
- state: {
930
- connector,
931
- data
932
- }
933
- } = useContext();
934
- var [state, setState] = React__namespace.useState(initialState$8);
935
- var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
936
- var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
937
- var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
938
- var activeChain = [...activeChains, ...wagmiCore.allChains].find(x => x.id === chainId);
939
- var cancelQuery = useCancel();
940
- var switchNetwork = React__namespace.useCallback( /*#__PURE__*/function () {
941
- var _ref = _asyncToGenerator(function* (chainId) {
942
- var didCancel = false;
943
- cancelQuery(() => {
944
- didCancel = true;
945
- });
946
- if (!(connector !== null && connector !== void 0 && connector.switchChain)) return {
947
- data: undefined,
948
- error: new wagmiCore.SwitchChainError()
949
- };
950
-
951
- try {
952
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
953
- error: undefined,
954
- loading: true
955
- }));
956
- var chain = yield connector.switchChain(chainId);
957
-
958
- if (!didCancel) {
959
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
960
- loading: false
961
- }));
962
- }
963
-
964
- return {
965
- data: chain,
966
- error: undefined
967
- };
968
- } catch (error_) {
969
- var error = error_;
970
-
971
- if (!didCancel) {
972
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
973
- error,
974
- loading: false
975
- }));
976
- }
977
-
978
- return {
979
- data: undefined,
980
- error
981
- };
982
- }
983
- });
984
-
985
- return function (_x) {
986
- return _ref.apply(this, arguments);
987
- };
988
- }(), [cancelQuery, connector]);
989
- return [{
990
- data: {
991
- chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, {
992
- id: chainId,
993
- unsupported
994
- }) : undefined,
995
- chains: activeChains
996
- },
997
- error: state.error,
998
- loading: state.loading
999
- }, connector !== null && connector !== void 0 && connector.switchChain ? switchNetwork : undefined];
1000
- };
1001
-
1002
- var initialState$7 = {
1003
- data: undefined,
1004
- error: undefined,
1005
- loading: false
1006
- };
1007
- var useSigner = function useSigner() {
1008
- var {
1009
- skip
1010
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1011
- var cacheBuster = useCacheBuster();
1012
- var {
1013
- state: {
1014
- connector
1015
- }
1016
- } = useContext();
1017
- var [state, setState] = React__namespace.useState(initialState$7);
1018
- var cancelQuery = useCancel();
1019
- var getSigner = React__namespace.useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
1020
- var didCancel = false;
1021
- cancelQuery(() => {
1022
- didCancel = true;
896
+ status: state.status
897
+ }), forceUpdate, {
898
+ equalityFn: (selected, previous) => selected.status === previous.status && selected.connector === previous.connector
1023
899
  });
900
+ return unsubscribe;
901
+ }, [client]);
902
+ var status_;
903
+ if (client.status === 'reconnecting') status_ = 'reconnecting';else if (status === 'loading' || client.status === 'connecting') status_ = 'connecting';else if (status === 'success' || !!client.connector) status_ = 'connected';else if (!client.connector) status_ = 'disconnected';else status_ = status;
904
+ return _objectSpread2(_objectSpread2({}, connectMutation), {}, {
905
+ activeConnector: client.connector,
906
+ connect: mutate,
907
+ connectAsync: mutateAsync,
908
+ connector,
909
+ connectors: client.connectors,
910
+ isConnected: status_ === 'connected',
911
+ isConnecting: status_ === 'connecting',
912
+ isDisconnected: status_ === 'disconnected',
913
+ isIdle: status_ === 'idle',
914
+ isReconnecting: status_ === 'reconnecting',
915
+ status: status_
916
+ });
917
+ }
1024
918
 
1025
- try {
1026
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1027
- error: undefined,
1028
- loading: true
1029
- }));
1030
- var signer = yield connector === null || connector === void 0 ? void 0 : connector.getSigner();
1031
-
1032
- if (!didCancel) {
1033
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1034
- data: signer,
1035
- loading: false
1036
- }));
1037
- }
1038
-
1039
- return signer;
1040
- } catch (error_) {
1041
- var error = error_;
1042
-
1043
- if (!didCancel) {
1044
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1045
- data: undefined,
1046
- error,
1047
- loading: false
1048
- }));
1049
- }
1050
- }
1051
- }), [cancelQuery, connector]);
1052
- /* eslint-disable react-hooks/exhaustive-deps */
1053
-
1054
- React__namespace.useEffect(() => {
1055
- if (skip) return;
1056
- getSigner();
1057
- return cancelQuery;
1058
- }, [cacheBuster, connector, cancelQuery, skip]);
1059
- /* eslint-enable react-hooks/exhaustive-deps */
1060
-
1061
- return [state, getSigner];
1062
- };
1063
-
1064
- var initialState$6 = {
1065
- loading: false
1066
- };
1067
- var useSignMessage = function useSignMessage() {
1068
- var {
1069
- message
1070
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1071
- var {
1072
- state: {
1073
- connector
1074
- }
1075
- } = useContext();
1076
- var [state, setState] = React__namespace.useState(initialState$6);
1077
- var cancelQuery = useCancel();
1078
- var signMessage = React__namespace.useCallback( /*#__PURE__*/function () {
1079
- var _ref = _asyncToGenerator(function* (config) {
1080
- var didCancel = false;
1081
- cancelQuery(() => {
1082
- didCancel = true;
1083
- });
1084
-
1085
- try {
1086
- var config_ = config !== null && config !== void 0 ? config : {
1087
- message
1088
- };
1089
- if (!config_.message) throw new Error('message is required');
1090
- if (!connector) throw new wagmiCore.ConnectorNotFoundError();
1091
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1092
- error: undefined,
1093
- loading: true
1094
- }));
1095
- var signer = yield connector.getSigner();
1096
- var signature = yield signer.signMessage(config_.message);
1097
-
1098
- if (!didCancel) {
1099
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1100
- signature,
1101
- loading: false
1102
- }));
1103
- }
1104
-
1105
- return {
1106
- data: signature,
1107
- error: undefined
1108
- };
1109
- } catch (error_) {
1110
- var error = error_;
1111
- if (error_.code === 4001) error = new wagmiCore.UserRejectedRequestError();
1112
-
1113
- if (!didCancel) {
1114
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1115
- error,
1116
- loading: false
1117
- }));
1118
- }
919
+ var _excluded$3 = ["mutate", "mutateAsync", "variables"];
920
+ var mutationKey$3 = 'switchNetwork';
921
+ var queryKey$3 = () => [{
922
+ entity: 'chain'
923
+ }];
1119
924
 
1120
- return {
1121
- data: undefined,
1122
- error
1123
- };
1124
- }
1125
- });
925
+ var queryFn$3 = () => core.getNetwork();
1126
926
 
1127
- return function (_x) {
1128
- return _ref.apply(this, arguments);
1129
- };
1130
- }(), [cancelQuery, connector, message]);
1131
- return [{
1132
- data: state.signature,
1133
- error: state.error,
1134
- loading: state.loading
1135
- }, signMessage];
1136
- };
927
+ function useNetwork() {
928
+ var _queryResult$data, _queryResult$data$cha, _queryResult$data2;
1137
929
 
1138
- var initialState$5 = {
1139
- loading: false
1140
- };
1141
- var useSignTypedData = function useSignTypedData() {
1142
930
  var {
1143
- domain,
1144
- types,
1145
- value
931
+ onError,
932
+ onMutate,
933
+ onSettled,
934
+ onSuccess
1146
935
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1147
- var {
1148
- state: {
1149
- connector
1150
- }
1151
- } = useContext();
1152
- var [state, setState] = React__namespace.useState(initialState$5);
1153
- var cancelQuery = useCancel();
1154
- var signTypedData = React__namespace.useCallback( /*#__PURE__*/function () {
1155
- var _ref = _asyncToGenerator(function* (config) {
1156
- var didCancel = false;
1157
- cancelQuery(() => {
1158
- didCancel = true;
1159
- });
1160
-
1161
- try {
1162
- var config_ = config !== null && config !== void 0 ? config : {
1163
- domain,
1164
- types,
1165
- value
1166
- };
1167
- if (!config_.domain) throw new Error('domain is required');
1168
- if (!config_.types) throw new Error('type is required');
1169
- if (!config_.value) throw new Error('value is required');
1170
- if (!connector) throw new wagmiCore.ConnectorNotFoundError();
1171
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1172
- error: undefined,
1173
- loading: true
1174
- }));
1175
- var signer = yield connector.getSigner(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
1176
-
1177
- var signature = yield signer._signTypedData(config_.domain, config_.types, config_.value);
1178
-
1179
- if (!didCancel) {
1180
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1181
- signature,
1182
- loading: false
1183
- }));
1184
- }
936
+ var [, forceUpdate] = React__namespace.useReducer(c => c + 1, 0);
937
+ var client = useClient();
938
+ var queryClient = reactQuery.useQueryClient();
939
+ var connector = client.connector;
940
+
941
+ var _useMutation = reactQuery.useMutation(mutationKey$3, chainId => {
942
+ if (!(connector !== null && connector !== void 0 && connector.switchChain)) throw new core.SwitchChainError();
943
+ return connector.switchChain(chainId);
944
+ }, {
945
+ onError,
946
+ onMutate,
947
+ onSettled,
948
+ onSuccess
949
+ }),
950
+ {
951
+ mutate,
952
+ mutateAsync,
953
+ variables: chainId
954
+ } = _useMutation,
955
+ networkMutation = _objectWithoutProperties(_useMutation, _excluded$3);
956
+
957
+ var queryResult = reactQuery.useQuery(queryKey$3(), queryFn$3);
958
+ React__namespace.useEffect(() => {
959
+ var unwatch = core.watchNetwork(data => {
960
+ queryClient.setQueryData(queryKey$3(), data);
961
+ forceUpdate();
962
+ });
963
+ return unwatch;
964
+ }, [queryClient]);
965
+ return _objectSpread2(_objectSpread2({}, networkMutation), {}, {
966
+ activeChain: (_queryResult$data = queryResult.data) === null || _queryResult$data === void 0 ? void 0 : _queryResult$data.chain,
967
+ chainId,
968
+ chains: (_queryResult$data$cha = (_queryResult$data2 = queryResult.data) === null || _queryResult$data2 === void 0 ? void 0 : _queryResult$data2.chains) !== null && _queryResult$data$cha !== void 0 ? _queryResult$data$cha : [],
969
+ switchNetwork: connector !== null && connector !== void 0 && connector.switchChain ? mutate : undefined,
970
+ switchNetworkAsync: connector !== null && connector !== void 0 && connector.switchChain ? mutateAsync : undefined
971
+ });
972
+ }
1185
973
 
1186
- return {
1187
- data: signature,
1188
- error: undefined
1189
- };
1190
- } catch (error_) {
1191
- var error = error_;
1192
- if (error_.code === 4001) error = new wagmiCore.UserRejectedRequestError();
1193
-
1194
- if (!didCancel) {
1195
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1196
- error,
1197
- loading: false
1198
- }));
1199
- }
974
+ var queryKey$2 = () => [{
975
+ entity: 'signer'
976
+ }];
977
+ var queryFn$2 = () => core.fetchSigner();
978
+ function useSigner() {
979
+ var {
980
+ onError,
981
+ onSettled,
982
+ onSuccess
983
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
984
+ var signerQuery = reactQuery.useQuery(queryKey$2(), queryFn$2, {
985
+ cacheTime: 0,
986
+ enabled: false,
987
+ onError,
988
+ onSettled,
989
+ onSuccess
990
+ });
991
+ var queryClient = reactQuery.useQueryClient();
992
+ React__namespace.useEffect(() => {
993
+ var unwatch = core.watchSigner(signer => queryClient.setQueryData(queryKey$2(), signer));
994
+ return unwatch;
995
+ }, [queryClient]);
996
+ var status = !signerQuery.data ? 'loading' : signerQuery.status;
997
+ return _objectSpread2(_objectSpread2({}, signerQuery), {}, {
998
+ isIdle: false,
999
+ isFetching: signerQuery.isFetching || status === 'loading',
1000
+ isLoading: signerQuery.isLoading || status === 'loading',
1001
+ status
1002
+ });
1003
+ }
1200
1004
 
1201
- return {
1202
- data: undefined,
1203
- error
1204
- };
1205
- }
1206
- });
1005
+ var _excluded$2 = ["mutate", "mutateAsync"];
1006
+ var mutationKey$2 = 'signMessage';
1207
1007
 
1208
- return function (_x) {
1209
- return _ref.apply(this, arguments);
1210
- };
1211
- }(), [cancelQuery, connector, domain, types, value]);
1212
- return [{
1213
- data: state.signature,
1214
- error: state.error,
1215
- loading: state.loading
1216
- }, signTypedData];
1008
+ var mutationFn$1 = args => {
1009
+ var {
1010
+ message
1011
+ } = args;
1012
+ if (!message) throw new Error('message is required');
1013
+ return core.signMessage({
1014
+ message
1015
+ });
1217
1016
  };
1218
1017
 
1219
- var getContract = _ref => {
1018
+ function useSignMessage() {
1220
1019
  var {
1221
- addressOrName,
1222
- contractInterface,
1223
- signerOrProvider
1224
- } = _ref;
1225
- return new ethers.Contract(addressOrName, contractInterface, signerOrProvider);
1226
- };
1020
+ message,
1021
+ onError,
1022
+ onMutate,
1023
+ onSettled,
1024
+ onSuccess
1025
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1026
+
1027
+ var _useMutation = reactQuery.useMutation(mutationKey$2, mutationFn$1, {
1028
+ onError,
1029
+ onMutate,
1030
+ onSettled,
1031
+ onSuccess
1032
+ }),
1033
+ {
1034
+ mutate,
1035
+ mutateAsync
1036
+ } = _useMutation,
1037
+ signMessageMutation = _objectWithoutProperties(_useMutation, _excluded$2);
1038
+
1039
+ var signMessage = React__namespace.useCallback(args => mutate(_objectSpread2({
1040
+ message
1041
+ }, args !== null && args !== void 0 ? args : {})), [message, mutate]);
1042
+ var signMessageAsync = React__namespace.useCallback(args => mutateAsync(_objectSpread2({
1043
+ message
1044
+ }, args !== null && args !== void 0 ? args : {})), [message, mutateAsync]);
1045
+ return _objectSpread2(_objectSpread2({}, signMessageMutation), {}, {
1046
+ signMessage,
1047
+ signMessageAsync
1048
+ });
1049
+ }
1227
1050
 
1228
- var useContract = _ref2 => {
1051
+ var useContract = _ref => {
1229
1052
  var {
1230
1053
  addressOrName,
1231
1054
  contractInterface,
1232
1055
  signerOrProvider
1233
- } = _ref2;
1056
+ } = _ref;
1234
1057
  return React__namespace.useMemo(() => {
1235
- return getContract({
1058
+ return core.getContract({
1236
1059
  addressOrName,
1237
1060
  contractInterface,
1238
1061
  signerOrProvider
@@ -1271,702 +1094,336 @@ var useContractEvent = function useContractEvent(contractConfig, eventName, list
1271
1094
  /* eslint-enable react-hooks/exhaustive-deps */
1272
1095
  };
1273
1096
 
1274
- var initialState$4 = {
1275
- loading: false
1097
+ var queryKey$1 = _ref => {
1098
+ var [contractConfig, functionName, {
1099
+ args,
1100
+ overrides
1101
+ }, {
1102
+ blockNumber,
1103
+ chainId
1104
+ }] = _ref;
1105
+ return [{
1106
+ entity: 'readContract',
1107
+ args,
1108
+ blockNumber,
1109
+ chainId,
1110
+ contractConfig,
1111
+ functionName,
1112
+ overrides
1113
+ }];
1114
+ };
1115
+
1116
+ var queryFn$1 = _ref2 => {
1117
+ var {
1118
+ queryKey: [{
1119
+ args,
1120
+ contractConfig,
1121
+ functionName,
1122
+ overrides
1123
+ }]
1124
+ } = _ref2;
1125
+ return core.readContract(contractConfig, functionName, {
1126
+ args,
1127
+ overrides
1128
+ });
1276
1129
  };
1277
- var useContractRead = function useContractRead(contractConfig, functionName) {
1130
+
1131
+ function useContractRead(contractConfig, functionName) {
1278
1132
  var {
1279
1133
  args,
1280
1134
  overrides,
1281
- skip,
1282
- watch
1135
+ watch,
1136
+ cacheTime,
1137
+ enabled: enabled_ = true,
1138
+ keepPreviousData,
1139
+ select,
1140
+ staleTime,
1141
+ suspense,
1142
+ onError,
1143
+ onSettled,
1144
+ onSuccess
1283
1145
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1284
- var cacheBuster = useCacheBuster();
1285
- var provider = useProvider();
1286
- var contract = useContract(_objectSpread2({
1287
- signerOrProvider: provider
1288
- }, contractConfig));
1289
- var [{
1146
+ var chainId = useChainId();
1147
+ var {
1290
1148
  data: blockNumber
1291
- }] = useBlockNumber({
1292
- skip: true,
1149
+ } = useBlockNumber({
1150
+ enabled: false,
1293
1151
  watch
1294
1152
  });
1295
- var [state, setState] = React__namespace.useState(initialState$4);
1296
- var cancelQuery = useCancel();
1297
- var read = React__namespace.useCallback( /*#__PURE__*/function () {
1298
- var _ref = _asyncToGenerator(function* (config) {
1299
- var didCancel = false;
1300
- cancelQuery(() => {
1301
- didCancel = true;
1302
- });
1303
-
1304
- try {
1305
- var config_ = config !== null && config !== void 0 ? config : {
1306
- args,
1307
- overrides
1308
- };
1309
- var params = [...(Array.isArray(config_.args) ? config_.args : config_.args ? [config_.args] : []), ...(config_.overrides ? [config_.overrides] : [])];
1310
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1311
- error: undefined,
1312
- loading: true,
1313
- response: undefined
1314
- }));
1315
- var response = yield contract[functionName](...params);
1316
-
1317
- if (!didCancel) {
1318
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1319
- loading: false,
1320
- response
1321
- }));
1322
- }
1323
-
1324
- return {
1325
- data: response,
1326
- error: undefined
1327
- };
1328
- } catch (error_) {
1329
- var error = error_;
1330
-
1331
- if (!didCancel) {
1332
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1333
- error,
1334
- loading: false
1335
- }));
1336
- }
1337
-
1338
- return {
1339
- data: undefined,
1340
- error
1341
- };
1342
- }
1343
- });
1344
-
1345
- return function (_x) {
1346
- return _ref.apply(this, arguments);
1347
- };
1348
- }(), [args, cancelQuery, contract, functionName, overrides]);
1349
- /* eslint-disable react-hooks/exhaustive-deps */
1350
-
1351
- React__namespace.useEffect(() => {
1352
- if (skip) return;
1353
- read();
1354
- return cancelQuery;
1355
- }, [cacheBuster, cancelQuery, skip]);
1356
- /* eslint-enable react-hooks/exhaustive-deps */
1357
-
1358
- /* eslint-disable react-hooks/exhaustive-deps */
1153
+ var queryKey_ = React__namespace.useMemo(() => queryKey$1([contractConfig, functionName, {
1154
+ args,
1155
+ overrides
1156
+ }, {
1157
+ chainId,
1158
+ blockNumber: watch ? blockNumber : undefined
1159
+ }]), [args, blockNumber, chainId, contractConfig, functionName, overrides, watch]);
1160
+ var enabled = React__namespace.useMemo(() => {
1161
+ var enabled = Boolean(enabled_ && contractConfig && functionName);
1162
+
1163
+ if (watch) {
1164
+ enabled = Boolean(enabled && blockNumber);
1165
+ }
1359
1166
 
1167
+ return enabled;
1168
+ }, [blockNumber, contractConfig, enabled_, functionName, watch]);
1169
+ var client = reactQuery.useQueryClient();
1360
1170
  React__namespace.useEffect(() => {
1361
- if (!watch) return;
1362
- if (!blockNumber) return;
1363
- read();
1364
- return cancelQuery;
1365
- }, [blockNumber, cancelQuery, watch]);
1366
- /* eslint-enable react-hooks/exhaustive-deps */
1171
+ enabled && core.watchReadContract(contractConfig, functionName, {
1172
+ args,
1173
+ overrides,
1174
+ listenToBlock: false
1175
+ }, result => client.setQueryData(queryKey_, result));
1176
+ }, [args, client, contractConfig, enabled, functionName, overrides, queryKey_]);
1177
+ return reactQuery.useQuery(queryKey_, queryFn$1, {
1178
+ cacheTime,
1179
+ enabled,
1180
+ keepPreviousData,
1181
+ select,
1182
+ staleTime,
1183
+ suspense,
1184
+ onError,
1185
+ onSettled,
1186
+ onSuccess
1187
+ });
1188
+ }
1367
1189
 
1190
+ var _excluded$1 = ["mutate", "mutateAsync"];
1191
+ var mutationKey$1 = _ref => {
1192
+ var [contractConfig, functionName, {
1193
+ args,
1194
+ overrides
1195
+ }] = _ref;
1368
1196
  return [{
1369
- data: state.response,
1370
- error: state.error,
1371
- loading: state.loading
1372
- }, read];
1373
- };
1374
-
1375
- var initialState$3 = {
1376
- loading: false
1197
+ entity: 'writeContract',
1198
+ args,
1199
+ contractConfig,
1200
+ functionName,
1201
+ overrides
1202
+ }];
1377
1203
  };
1378
- var useContractWrite = function useContractWrite(contractConfig, functionName) {
1204
+ function useContractWrite(contractConfig, functionName) {
1379
1205
  var {
1380
1206
  args,
1381
- overrides
1207
+ overrides,
1208
+ onError,
1209
+ onMutate,
1210
+ onSettled,
1211
+ onSuccess
1382
1212
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1383
- var {
1384
- state: {
1385
- connector
1386
- }
1387
- } = useContext();
1388
- var contract = useContract(contractConfig);
1389
- var [state, setState] = React__namespace.useState(initialState$3);
1390
- var cancelQuery = useCancel();
1391
- var write = React__namespace.useCallback( /*#__PURE__*/function () {
1392
- var _ref = _asyncToGenerator(function* (config) {
1393
- var didCancel = false;
1394
- cancelQuery(() => {
1395
- didCancel = true;
1396
- });
1397
-
1398
- try {
1399
- var config_ = config !== null && config !== void 0 ? config : {
1400
- args,
1401
- overrides
1402
- };
1403
- if (!connector) throw new wagmiCore.ConnectorNotFoundError();
1404
- var params = [...(Array.isArray(config_.args) ? config_.args : config_.args ? [config_.args] : []), ...(config_.overrides ? [config_.overrides] : [])];
1405
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1406
- error: undefined,
1407
- loading: true,
1408
- response: undefined
1409
- }));
1410
- var signer = yield connector.getSigner();
1411
- var contract_ = contract.connect(signer);
1412
- var response = yield contract_[functionName](...params);
1413
-
1414
- if (!didCancel) {
1415
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1416
- loading: false,
1417
- response
1418
- }));
1419
- }
1420
1213
 
1421
- return {
1422
- data: response,
1423
- error: undefined
1424
- };
1425
- } catch (error_) {
1426
- var error = error_;
1427
- if (error_.code === 4001) error = new wagmiCore.UserRejectedRequestError();
1428
-
1429
- if (!didCancel) {
1430
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1431
- error,
1432
- loading: false
1433
- }));
1434
- }
1435
-
1436
- return {
1437
- data: undefined,
1438
- error
1439
- };
1440
- }
1441
- });
1214
+ var _useMutation = reactQuery.useMutation(mutationKey$1([contractConfig, functionName, {
1215
+ args,
1216
+ overrides
1217
+ }]), args => core.writeContract(contractConfig, functionName, {
1218
+ args,
1219
+ overrides
1220
+ }), {
1221
+ onError,
1222
+ onMutate,
1223
+ onSettled,
1224
+ onSuccess
1225
+ }),
1226
+ {
1227
+ mutate,
1228
+ mutateAsync
1229
+ } = _useMutation,
1230
+ writeContractMutation = _objectWithoutProperties(_useMutation, _excluded$1);
1231
+
1232
+ var write = React__namespace.useCallback(overrideConfig => mutate(overrideConfig || {
1233
+ args,
1234
+ overrides
1235
+ }), [args, mutate, overrides]);
1236
+ var writeAsync = React__namespace.useCallback(overrideConfig => mutateAsync(overrideConfig || {
1237
+ args,
1238
+ overrides
1239
+ }), [args, mutateAsync, overrides]);
1240
+ return _objectSpread2(_objectSpread2({}, writeContractMutation), {}, {
1241
+ write,
1242
+ writeAsync
1243
+ });
1244
+ }
1442
1245
 
1443
- return function (_x) {
1444
- return _ref.apply(this, arguments);
1445
- };
1446
- }(), [args, cancelQuery, connector, contract, functionName, overrides]);
1246
+ var queryKey = _ref => {
1247
+ var {
1248
+ address,
1249
+ chainId,
1250
+ formatUnits
1251
+ } = _ref;
1447
1252
  return [{
1448
- data: state.response,
1449
- error: state.error,
1450
- loading: state.loading
1451
- }, write];
1253
+ entity: 'token',
1254
+ address,
1255
+ chainId,
1256
+ formatUnits
1257
+ }];
1452
1258
  };
1453
1259
 
1454
- var initialState$2 = {
1455
- loading: false
1260
+ var queryFn = _ref2 => {
1261
+ var {
1262
+ queryKey: [{
1263
+ address,
1264
+ formatUnits
1265
+ }]
1266
+ } = _ref2;
1267
+ if (!address) throw new Error('address is required');
1268
+ return core.fetchToken({
1269
+ address,
1270
+ formatUnits
1271
+ });
1456
1272
  };
1457
- var useToken = function useToken() {
1273
+
1274
+ function useToken() {
1458
1275
  var {
1459
1276
  address,
1460
1277
  formatUnits = 'ether',
1461
- skip
1278
+ cacheTime,
1279
+ enabled = true,
1280
+ keepPreviousData,
1281
+ select,
1282
+ staleTime,
1283
+ suspense,
1284
+ onError,
1285
+ onSettled,
1286
+ onSuccess
1462
1287
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1463
- var {
1464
- state: {
1465
- connector
1466
- }
1467
- } = useContext();
1468
- var provider = useProvider();
1469
- var [state, setState] = React__namespace.useState(initialState$2);
1470
- var cancelQuery = useCancel();
1471
- var getToken = React__namespace.useCallback( /*#__PURE__*/function () {
1472
- var _ref = _asyncToGenerator(function* (config) {
1473
- var didCancel = false;
1474
- cancelQuery(() => {
1475
- didCancel = true;
1476
- });
1477
-
1478
- try {
1479
- var _config_$formatUnits;
1480
-
1481
- var config_ = config !== null && config !== void 0 ? config : {
1482
- address,
1483
- formatUnits
1484
- };
1485
- if (!config_.address) throw new Error('address is required');
1486
- var contract = new ethers.ethers.Contract(config_.address, wagmiCore.erc20ABI, provider);
1487
- var formatUnits_ = (_config_$formatUnits = config_.formatUnits) !== null && _config_$formatUnits !== void 0 ? _config_$formatUnits : 'ether';
1488
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1489
- error: undefined,
1490
- loading: true
1491
- }));
1492
- var [symbol, decimals, totalSupply] = yield Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
1493
- var token = {
1494
- address: config_.address,
1495
- decimals,
1496
- symbol,
1497
- totalSupply: {
1498
- formatted: ethers.utils.formatUnits(totalSupply, formatUnits_),
1499
- value: totalSupply
1500
- }
1501
- };
1502
-
1503
- if (!didCancel) {
1504
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1505
- token,
1506
- loading: false
1507
- }));
1508
- }
1509
-
1510
- return {
1511
- data: token,
1512
- error: undefined
1513
- };
1514
- } catch (error_) {
1515
- var error = error_;
1516
-
1517
- if (!didCancel) {
1518
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1519
- error,
1520
- loading: false
1521
- }));
1522
- }
1523
-
1524
- return {
1525
- data: undefined,
1526
- error
1527
- };
1528
- }
1529
- });
1530
-
1531
- return function (_x) {
1532
- return _ref.apply(this, arguments);
1533
- };
1534
- }(), [address, cancelQuery, formatUnits, provider]);
1535
- var watchToken = React__namespace.useCallback( /*#__PURE__*/function () {
1536
- var _ref2 = _asyncToGenerator(function* (token) {
1537
- if (!(connector !== null && connector !== void 0 && connector.watchAsset)) return false;
1538
-
1539
- try {
1540
- yield connector.watchAsset(token);
1541
- return true;
1542
- } catch (error) {
1543
- return error;
1544
- }
1545
- });
1546
-
1547
- return function (_x2) {
1548
- return _ref2.apply(this, arguments);
1549
- };
1550
- }(), [connector]);
1551
- /* eslint-disable react-hooks/exhaustive-deps */
1552
-
1553
- React__namespace.useEffect(() => {
1554
- if (skip || !address) return;
1555
- getToken({
1556
- address,
1557
- formatUnits
1558
- });
1559
- return cancelQuery;
1560
- }, [address, cancelQuery, formatUnits, skip]);
1561
- /* eslint-enable react-hooks/exhaustive-deps */
1288
+ var chainId = useChainId();
1289
+ return reactQuery.useQuery(queryKey({
1290
+ address,
1291
+ chainId,
1292
+ formatUnits
1293
+ }), queryFn, {
1294
+ cacheTime,
1295
+ enabled: Boolean(enabled && address),
1296
+ keepPreviousData,
1297
+ select,
1298
+ staleTime,
1299
+ suspense,
1300
+ onError,
1301
+ onSettled,
1302
+ onSuccess
1303
+ });
1304
+ }
1562
1305
 
1306
+ var _excluded = ["mutate", "mutateAsync"];
1307
+ var mutationKey = _ref => {
1308
+ var {
1309
+ request
1310
+ } = _ref;
1563
1311
  return [{
1564
- data: state.token ? _objectSpread2(_objectSpread2({}, state.token), {}, {
1565
- address
1566
- }) : undefined,
1567
- error: state.error,
1568
- loading: state.loading
1569
- }, watchToken, getToken];
1312
+ entity: 'writeContract',
1313
+ request
1314
+ }];
1570
1315
  };
1571
1316
 
1572
- var initialState$1 = {
1573
- loading: false
1574
- };
1575
- var useTransaction = function useTransaction() {
1317
+ var mutationFn = args => {
1576
1318
  var {
1577
1319
  request
1578
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1579
- var {
1580
- state: {
1581
- connector
1582
- }
1583
- } = useContext();
1584
- var [state, setState] = React__namespace.useState(initialState$1);
1585
- var cancelQuery = useCancel();
1586
- var sendTransaction = React__namespace.useCallback( /*#__PURE__*/function () {
1587
- var _ref = _asyncToGenerator(function* (config) {
1588
- var didCancel = false;
1589
- cancelQuery(() => {
1590
- didCancel = true;
1591
- });
1592
-
1593
- try {
1594
- var config_ = config !== null && config !== void 0 ? config : {
1595
- request
1596
- };
1597
- if (!config_.request) throw new Error('request is required');
1598
- if (!connector) throw new wagmiCore.ConnectorNotFoundError();
1599
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1600
- loading: true
1601
- }));
1602
- var signer = yield connector.getSigner();
1603
- var transaction = yield signer.sendTransaction(config_.request);
1604
-
1605
- if (!didCancel) {
1606
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1607
- loading: false,
1608
- transaction
1609
- }));
1610
- }
1611
-
1612
- return {
1613
- data: transaction,
1614
- error: undefined
1615
- };
1616
- } catch (error_) {
1617
- var error = error_;
1618
- if (error_.code === 4001) error = new wagmiCore.UserRejectedRequestError();
1619
-
1620
- if (!didCancel) {
1621
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1622
- error,
1623
- loading: false
1624
- }));
1625
- }
1626
-
1627
- return {
1628
- data: undefined,
1629
- error
1630
- };
1631
- }
1632
- });
1633
-
1634
- return function (_x) {
1635
- return _ref.apply(this, arguments);
1636
- };
1637
- }(), [cancelQuery, connector, request]);
1638
- return [{
1639
- data: state.transaction,
1640
- error: state.error,
1641
- loading: state.loading
1642
- }, sendTransaction];
1320
+ } = args;
1321
+ if (!request) throw new Error('request is required');
1322
+ return core.sendTransaction({
1323
+ request
1324
+ });
1643
1325
  };
1644
1326
 
1645
- var initialState = {
1646
- loading: false
1647
- };
1648
- var useWaitForTransaction = function useWaitForTransaction() {
1327
+ function useSendTransaction() {
1649
1328
  var {
1650
- confirmations,
1651
- hash,
1652
- skip,
1653
- timeout,
1654
- wait: wait_
1329
+ request,
1330
+ onError,
1331
+ onMutate,
1332
+ onSettled,
1333
+ onSuccess
1655
1334
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1656
- var provider = useProvider();
1657
- var [state, setState] = React__namespace.useState(initialState);
1658
- var cancelQuery = useCancel();
1659
- var wait = React__namespace.useCallback( /*#__PURE__*/function () {
1660
- var _ref = _asyncToGenerator(function* (config) {
1661
- var didCancel = false;
1662
- cancelQuery(() => {
1663
- didCancel = true;
1664
- });
1665
-
1666
- try {
1667
- var config_ = config !== null && config !== void 0 ? config : {
1668
- confirmations,
1669
- hash,
1670
- timeout,
1671
- wait: wait_
1672
- };
1673
- if (!config_.hash && !config_.wait) throw new Error('hash or wait is required');
1674
- var promise; // eslint-disable-next-line testing-library/await-async-utils
1675
-
1676
- if (config_.wait) promise = config_.wait(config_.confirmations);else if (config_.hash) promise = provider.waitForTransaction(config_.hash, config_.confirmations, config_.timeout);else throw new Error('hash or wait is required');
1677
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1678
- loading: true
1679
- }));
1680
- var receipt = yield promise;
1681
-
1682
- if (!didCancel) {
1683
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1684
- loading: false,
1685
- receipt
1686
- }));
1687
- }
1688
-
1689
- return {
1690
- data: receipt,
1691
- error: undefined
1692
- };
1693
- } catch (error_) {
1694
- var error = error_;
1695
-
1696
- if (!didCancel) {
1697
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1698
- error,
1699
- loading: false
1700
- }));
1701
- }
1702
-
1703
- return {
1704
- data: undefined,
1705
- error
1706
- };
1707
- }
1708
- });
1709
-
1710
- return function (_x) {
1711
- return _ref.apply(this, arguments);
1712
- };
1713
- }(), [cancelQuery, confirmations, hash, provider, timeout, wait_]); // Fetch balance when deps or chain changes
1714
-
1715
- /* eslint-disable react-hooks/exhaustive-deps */
1716
-
1717
- React__namespace.useEffect(() => {
1718
- if (skip || !hash && !wait_) return;
1719
- /* eslint-disable testing-library/await-async-utils */
1720
-
1721
- wait({
1722
- confirmations,
1723
- hash,
1724
- timeout,
1725
- wait: wait_
1726
- });
1727
- /* eslint-enable testing-library/await-async-utils */
1728
-
1729
- return cancelQuery;
1730
- }, [cancelQuery, hash, skip, wait_]);
1731
- /* eslint-enable react-hooks/exhaustive-deps */
1732
-
1733
- return [{
1734
- data: state.receipt,
1735
- error: state.error,
1736
- loading: state.loading
1737
- }, wait];
1738
- };
1739
-
1740
- var Context = /*#__PURE__*/React__namespace.createContext(null);
1741
- var Provider = _ref => {
1742
- var _state$data2, _state$data2$chain, _state$data4, _state$data4$chain, _state$data6, _state$data6$chain;
1743
1335
 
1744
- var {
1745
- autoConnect = false,
1746
- children,
1747
- connectors: connectors_ = [new wagmiCore.InjectedConnector()],
1748
- connectorStorageKey = 'wagmi.wallet',
1749
- provider: provider_ = providers.getDefaultProvider(),
1750
- webSocketProvider: webSocketProvider_
1751
- } = _ref;
1752
- var [lastUsedConnector, setLastUsedConnector] = useLocalStorage(connectorStorageKey);
1753
- var [state, setState] = React__namespace.useState({
1754
- cacheBuster: 1,
1755
- connecting: autoConnect
1336
+ var _useMutation = reactQuery.useMutation(mutationKey({
1337
+ request
1338
+ }), mutationFn, {
1339
+ onError,
1340
+ onMutate,
1341
+ onSettled,
1342
+ onSuccess
1343
+ }),
1344
+ {
1345
+ mutate,
1346
+ mutateAsync
1347
+ } = _useMutation,
1348
+ transactionMutation = _objectWithoutProperties(_useMutation, _excluded);
1349
+
1350
+ var sendTransaction = React__namespace.useCallback(args => mutate(_objectSpread2({
1351
+ request
1352
+ }, args !== null && args !== void 0 ? args : {})), [mutate, request]);
1353
+ var sendTransactionAsync = React__namespace.useCallback(args => mutateAsync(_objectSpread2({
1354
+ request
1355
+ }, args !== null && args !== void 0 ? args : {})), [mutateAsync, request]);
1356
+ return _objectSpread2(_objectSpread2({}, transactionMutation), {}, {
1357
+ sendTransaction,
1358
+ sendTransactionAsync
1756
1359
  });
1757
- var connectors = React__namespace.useMemo(() => {
1758
- var _state$data, _state$data$chain;
1759
-
1760
- if (typeof connectors_ !== 'function') return connectors_;
1761
- return connectors_({
1762
- chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : (_state$data$chain = _state$data.chain) === null || _state$data$chain === void 0 ? void 0 : _state$data$chain.id
1763
- });
1764
- }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : (_state$data2$chain = _state$data2.chain) === null || _state$data2$chain === void 0 ? void 0 : _state$data2$chain.id]);
1765
- var provider = React__namespace.useMemo(() => {
1766
- var _state$data3, _state$data3$chain;
1767
-
1768
- if (typeof provider_ !== 'function') return provider_;
1769
- return provider_({
1770
- chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : (_state$data3$chain = _state$data3.chain) === null || _state$data3$chain === void 0 ? void 0 : _state$data3$chain.id,
1771
- connector: state.connector
1772
- });
1773
- }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : (_state$data4$chain = _state$data4.chain) === null || _state$data4$chain === void 0 ? void 0 : _state$data4$chain.id, state.connector]);
1774
- var webSocketProvider = React__namespace.useMemo(() => {
1775
- var _state$data5, _state$data5$chain;
1776
-
1777
- if (!webSocketProvider_) return undefined;
1778
- if (typeof webSocketProvider_ !== 'function') return webSocketProvider_;
1779
- return webSocketProvider_({
1780
- chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : (_state$data5$chain = _state$data5.chain) === null || _state$data5$chain === void 0 ? void 0 : _state$data5$chain.id,
1781
- connector: state.connector
1782
- });
1783
- }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : (_state$data6$chain = _state$data6.chain) === null || _state$data6$chain === void 0 ? void 0 : _state$data6$chain.id, state.connector]); // Attempt to connect on mount
1784
-
1785
- /* eslint-disable react-hooks/exhaustive-deps */
1786
-
1787
- React__namespace.useEffect(() => {
1788
- if (!autoConnect) return;
1789
-
1790
- _asyncToGenerator(function* () {
1791
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1792
- connecting: true
1793
- }));
1794
- var sorted = lastUsedConnector ? [...connectors].sort(x => x.name === lastUsedConnector ? -1 : 1) : connectors;
1795
-
1796
- var _loop = function* _loop(connector) {
1797
- if (!connector.ready || !connector.isAuthorized) return "continue";
1798
- var isAuthorized = yield connector.isAuthorized();
1799
- if (!isAuthorized) return "continue";
1800
- var data = yield connector.connect();
1801
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1802
- connector,
1803
- data
1804
- }));
1805
- return "break";
1806
- };
1807
-
1808
- for (var connector of sorted) {
1809
- var _ret = yield* _loop(connector);
1810
-
1811
- if (_ret === "continue") continue;
1812
- if (_ret === "break") break;
1813
- }
1814
-
1815
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1816
- connecting: false
1817
- }));
1818
- })();
1819
- }, []);
1820
- /* eslint-enable react-hooks/exhaustive-deps */
1821
- // Make sure connectors close
1822
-
1823
- React__namespace.useEffect(() => {
1824
- return () => {
1825
- if (!state.connector) return;
1826
- state.connector.disconnect();
1827
- };
1828
- }, [state.connector]); // Watch connector for events
1829
-
1830
- React__namespace.useEffect(() => {
1831
- if (!state.connector) return;
1832
-
1833
- var onChange = data => setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1834
- cacheBuster: x.cacheBuster + 1,
1835
- data: _objectSpread2(_objectSpread2({}, x.data), data)
1836
- }));
1837
-
1838
- var onDisconnect = () => setState({
1839
- cacheBuster: 1
1840
- });
1841
-
1842
- var onError = error => setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1843
- error
1844
- }));
1845
-
1846
- state.connector.on('change', onChange);
1847
- state.connector.on('disconnect', onDisconnect);
1848
- state.connector.on('error', onError);
1849
- return () => {
1850
- if (!state.connector) return;
1851
- state.connector.off('change', onChange);
1852
- state.connector.off('disconnect', onDisconnect);
1853
- state.connector.off('error', onError);
1854
- };
1855
- }, [state.connector]);
1856
- var value = {
1857
- state: {
1858
- cacheBuster: state.cacheBuster,
1859
- connecting: state.connecting,
1860
- connectors,
1861
- connector: state.connector,
1862
- data: state.data,
1863
- provider,
1864
- webSocketProvider
1865
- },
1866
- setState,
1867
- setLastUsedConnector
1868
- };
1869
- return /*#__PURE__*/React__namespace.createElement(Context.Provider, {
1870
- value
1871
- }, children);
1872
- };
1873
- var useContext = () => {
1874
- var context = React__namespace.useContext(Context);
1875
- if (!context) throw Error('Must be used within Provider');
1876
- return context;
1877
- };
1360
+ }
1878
1361
 
1879
- Object.defineProperty(exports, 'AddChainError', {
1880
- enumerable: true,
1881
- get: function () { return wagmiCore.AddChainError; }
1882
- });
1883
- Object.defineProperty(exports, 'ChainNotConfiguredError', {
1362
+ Object.defineProperty(exports, 'Client', {
1884
1363
  enumerable: true,
1885
- get: function () { return wagmiCore.ChainNotConfiguredError; }
1364
+ get: function () { return core.Client; }
1886
1365
  });
1887
1366
  Object.defineProperty(exports, 'Connector', {
1888
1367
  enumerable: true,
1889
- get: function () { return wagmiCore.Connector; }
1890
- });
1891
- Object.defineProperty(exports, 'ConnectorAlreadyConnectedError', {
1892
- enumerable: true,
1893
- get: function () { return wagmiCore.ConnectorAlreadyConnectedError; }
1894
- });
1895
- Object.defineProperty(exports, 'ConnectorNotFoundError', {
1896
- enumerable: true,
1897
- get: function () { return wagmiCore.ConnectorNotFoundError; }
1368
+ get: function () { return core.Connector; }
1898
1369
  });
1899
- Object.defineProperty(exports, 'InjectedConnector', {
1370
+ Object.defineProperty(exports, 'WagmiClient', {
1900
1371
  enumerable: true,
1901
- get: function () { return wagmiCore.InjectedConnector; }
1902
- });
1903
- Object.defineProperty(exports, 'SwitchChainError', {
1904
- enumerable: true,
1905
- get: function () { return wagmiCore.SwitchChainError; }
1906
- });
1907
- Object.defineProperty(exports, 'UserRejectedRequestError', {
1908
- enumerable: true,
1909
- get: function () { return wagmiCore.UserRejectedRequestError; }
1372
+ get: function () { return core.WagmiClient; }
1910
1373
  });
1911
1374
  Object.defineProperty(exports, 'allChains', {
1912
1375
  enumerable: true,
1913
- get: function () { return wagmiCore.allChains; }
1376
+ get: function () { return core.allChains; }
1914
1377
  });
1915
1378
  Object.defineProperty(exports, 'chain', {
1916
1379
  enumerable: true,
1917
- get: function () { return wagmiCore.chain; }
1380
+ get: function () { return core.chain; }
1918
1381
  });
1919
- Object.defineProperty(exports, 'defaultChains', {
1382
+ Object.defineProperty(exports, 'createStorage', {
1920
1383
  enumerable: true,
1921
- get: function () { return wagmiCore.defaultChains; }
1384
+ get: function () { return core.createStorage; }
1922
1385
  });
1923
- Object.defineProperty(exports, 'defaultL2Chains', {
1386
+ Object.defineProperty(exports, 'createWagmiStorage', {
1924
1387
  enumerable: true,
1925
- get: function () { return wagmiCore.defaultL2Chains; }
1388
+ get: function () { return core.createWagmiStorage; }
1926
1389
  });
1927
- Object.defineProperty(exports, 'developmentChains', {
1390
+ Object.defineProperty(exports, 'defaultChains', {
1928
1391
  enumerable: true,
1929
- get: function () { return wagmiCore.developmentChains; }
1392
+ get: function () { return core.defaultChains; }
1930
1393
  });
1931
1394
  Object.defineProperty(exports, 'erc1155ABI', {
1932
1395
  enumerable: true,
1933
- get: function () { return wagmiCore.erc1155ABI; }
1396
+ get: function () { return core.erc1155ABI; }
1934
1397
  });
1935
1398
  Object.defineProperty(exports, 'erc20ABI', {
1936
1399
  enumerable: true,
1937
- get: function () { return wagmiCore.erc20ABI; }
1400
+ get: function () { return core.erc20ABI; }
1938
1401
  });
1939
1402
  Object.defineProperty(exports, 'erc721ABI', {
1940
1403
  enumerable: true,
1941
- get: function () { return wagmiCore.erc721ABI; }
1942
- });
1943
- Object.defineProperty(exports, 'normalizeChainId', {
1944
- enumerable: true,
1945
- get: function () { return wagmiCore.normalizeChainId; }
1404
+ get: function () { return core.erc721ABI; }
1946
1405
  });
1947
- exports.Context = Context;
1948
1406
  exports.Provider = Provider;
1949
1407
  exports.WagmiProvider = Provider;
1408
+ exports.createClient = createClient;
1950
1409
  exports.useAccount = useAccount;
1951
1410
  exports.useBalance = useBalance;
1952
1411
  exports.useBlockNumber = useBlockNumber;
1412
+ exports.useClient = useClient;
1953
1413
  exports.useConnect = useConnect;
1954
- exports.useContext = useContext;
1955
1414
  exports.useContract = useContract;
1956
1415
  exports.useContractEvent = useContractEvent;
1957
1416
  exports.useContractRead = useContractRead;
1958
1417
  exports.useContractWrite = useContractWrite;
1418
+ exports.useEnsAddress = useEnsAddress;
1959
1419
  exports.useEnsAvatar = useEnsAvatar;
1960
- exports.useEnsLookup = useEnsLookup;
1961
- exports.useEnsResolveName = useEnsResolveName;
1420
+ exports.useEnsName = useEnsName;
1962
1421
  exports.useEnsResolver = useEnsResolver;
1963
- exports.useFeeData = useFeeData;
1964
1422
  exports.useNetwork = useNetwork;
1965
1423
  exports.useProvider = useProvider;
1424
+ exports.useSendTransaction = useSendTransaction;
1966
1425
  exports.useSignMessage = useSignMessage;
1967
- exports.useSignTypedData = useSignTypedData;
1968
1426
  exports.useSigner = useSigner;
1969
1427
  exports.useToken = useToken;
1970
- exports.useTransaction = useTransaction;
1971
- exports.useWaitForTransaction = useWaitForTransaction;
1428
+ exports.useWagmiClient = useClient;
1972
1429
  exports.useWebSocketProvider = useWebSocketProvider;