@wagmi/core 0.4.9 → 0.5.1

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 (77) hide show
  1. package/README.md +6 -6
  2. package/chains/dist/wagmi-core-chains.cjs.dev.js +4 -2
  3. package/chains/dist/wagmi-core-chains.cjs.prod.js +4 -2
  4. package/chains/dist/wagmi-core-chains.esm.js +2 -2
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -26
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -26
  7. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +5 -3
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +22 -23
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +22 -23
  10. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +5 -6
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +33 -31
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +33 -31
  13. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +6 -4
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +24 -25
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +24 -25
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +5 -6
  17. package/dist/{chains-b8e32454.cjs.prod.js → chains-acd25777.cjs.prod.js} +68 -9
  18. package/dist/{chains-174cf4b4.esm.js → chains-ce86f5e0.esm.js} +67 -10
  19. package/dist/{chains-ba6218fb.cjs.dev.js → chains-e81629e7.cjs.dev.js} +68 -9
  20. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -1
  21. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -3
  22. package/dist/declarations/src/actions/contracts/deprecatedWriteContract.d.ts +16 -0
  23. package/dist/declarations/src/actions/{tokens → contracts}/fetchToken.d.ts +0 -0
  24. package/dist/declarations/src/actions/contracts/index.d.ts +4 -1
  25. package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +37 -0
  26. package/dist/declarations/src/actions/contracts/writeContract.d.ts +44 -8
  27. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +2 -1
  28. package/dist/declarations/src/actions/index.d.ts +2 -3
  29. package/dist/declarations/src/actions/transactions/deprecatedSendTransaction.d.ts +12 -0
  30. package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +21 -0
  31. package/dist/declarations/src/actions/transactions/index.d.ts +4 -1
  32. package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +36 -0
  33. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +43 -8
  34. package/dist/declarations/src/chains.d.ts +1 -1
  35. package/dist/declarations/src/client.d.ts +2 -2
  36. package/dist/declarations/src/connectors/base.d.ts +1 -2
  37. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +2 -2
  38. package/dist/declarations/src/connectors/injected.d.ts +1 -1
  39. package/dist/declarations/src/connectors/mock/provider.d.ts +3 -2
  40. package/dist/declarations/src/connectors/walletConnect.d.ts +3 -2
  41. package/dist/declarations/src/constants/chains.d.ts +5 -0
  42. package/dist/declarations/src/constants/index.d.ts +1 -1
  43. package/dist/declarations/src/constants/rpcs.d.ts +5 -5
  44. package/dist/declarations/src/errors.d.ts +10 -3
  45. package/dist/declarations/src/index.d.ts +4 -4
  46. package/dist/declarations/src/providers/alchemy.d.ts +2 -3
  47. package/dist/declarations/src/providers/infura.d.ts +2 -3
  48. package/dist/declarations/src/providers/jsonRpc.d.ts +1 -2
  49. package/dist/declarations/src/providers/public.d.ts +2 -4
  50. package/dist/declarations/src/types/index.d.ts +6 -1
  51. package/dist/declarations/src/utils/configureChains.d.ts +3 -1
  52. package/dist/{client-fbdcbdb2.esm.js → getProvider-073f640f.esm.js} +369 -3
  53. package/dist/{client-4983a639.cjs.dev.js → getProvider-5c497ca0.cjs.dev.js} +436 -45
  54. package/dist/{client-dfad744f.cjs.prod.js → getProvider-868752e4.cjs.prod.js} +436 -45
  55. package/dist/{rpcs-1fd0a12f.cjs.prod.js → rpcs-3cf5a783.cjs.dev.js} +18 -12
  56. package/dist/{rpcs-f1d24f0e.cjs.dev.js → rpcs-afd1cc09.cjs.prod.js} +18 -12
  57. package/dist/{rpcs-b73a8f60.esm.js → rpcs-e837abf2.esm.js} +17 -11
  58. package/dist/wagmi-core.cjs.dev.js +586 -308
  59. package/dist/wagmi-core.cjs.prod.js +586 -308
  60. package/dist/wagmi-core.esm.js +493 -222
  61. package/package.json +9 -5
  62. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +5 -7
  63. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +5 -7
  64. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +5 -7
  65. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +5 -7
  66. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +5 -7
  67. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +5 -7
  68. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -2
  69. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -2
  70. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -2
  71. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -2
  72. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -2
  73. package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -2
  74. package/dist/base-337e6424.cjs.prod.js +0 -343
  75. package/dist/base-bd337280.cjs.dev.js +0 -343
  76. package/dist/base-f1bbf263.esm.js +0 -316
  77. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
@@ -1,8 +1,306 @@
1
- import { e as Connector, _ as _defineProperty, j as _classPrivateFieldInitSpec, n as normalizeChainId, k as _classPrivateFieldGet, l as _classPrivateFieldSet, c as ConnectorNotFoundError, U as UserRejectedRequestError, R as ResourceUnavailableError, f as ChainNotConfiguredError, A as AddChainError, i as SwitchChainError, m as _classPrivateMethodInitSpec, o as _classPrivateMethodGet } from './base-f1bbf263.esm.js';
2
- import create from 'zustand/vanilla';
3
1
  import { subscribeWithSelector, persist } from 'zustand/middleware';
2
+ import create from 'zustand/vanilla';
4
3
  import { providers } from 'ethers';
5
4
  import { getAddress, hexValue } from 'ethers/lib/utils';
5
+ import EventEmitter from 'eventemitter3';
6
+ import { d as defaultChains } from './chains-ce86f5e0.esm.js';
7
+
8
+ function _checkPrivateRedeclaration(obj, privateCollection) {
9
+ if (privateCollection.has(obj)) {
10
+ throw new TypeError("Cannot initialize the same private elements twice on an object");
11
+ }
12
+ }
13
+
14
+ function _classPrivateMethodInitSpec(obj, privateSet) {
15
+ _checkPrivateRedeclaration(obj, privateSet);
16
+ privateSet.add(obj);
17
+ }
18
+
19
+ function _classPrivateFieldInitSpec(obj, privateMap, value) {
20
+ _checkPrivateRedeclaration(obj, privateMap);
21
+ privateMap.set(obj, value);
22
+ }
23
+
24
+ function _defineProperty(obj, key, value) {
25
+ if (key in obj) {
26
+ Object.defineProperty(obj, key, {
27
+ value: value,
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true
31
+ });
32
+ } else {
33
+ obj[key] = value;
34
+ }
35
+
36
+ return obj;
37
+ }
38
+
39
+ function _classApplyDescriptorGet(receiver, descriptor) {
40
+ if (descriptor.get) {
41
+ return descriptor.get.call(receiver);
42
+ }
43
+
44
+ return descriptor.value;
45
+ }
46
+
47
+ function _classExtractFieldDescriptor(receiver, privateMap, action) {
48
+ if (!privateMap.has(receiver)) {
49
+ throw new TypeError("attempted to " + action + " private field on non-instance");
50
+ }
51
+
52
+ return privateMap.get(receiver);
53
+ }
54
+
55
+ function _classPrivateFieldGet(receiver, privateMap) {
56
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
57
+ return _classApplyDescriptorGet(receiver, descriptor);
58
+ }
59
+
60
+ function _classPrivateMethodGet(receiver, privateSet, fn) {
61
+ if (!privateSet.has(receiver)) {
62
+ throw new TypeError("attempted to get private field on non-instance");
63
+ }
64
+
65
+ return fn;
66
+ }
67
+
68
+ function _classApplyDescriptorSet(receiver, descriptor, value) {
69
+ if (descriptor.set) {
70
+ descriptor.set.call(receiver, value);
71
+ } else {
72
+ if (!descriptor.writable) {
73
+ throw new TypeError("attempted to set read only private field");
74
+ }
75
+
76
+ descriptor.value = value;
77
+ }
78
+ }
79
+
80
+ function _classPrivateFieldSet(receiver, privateMap, value) {
81
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
82
+ _classApplyDescriptorSet(receiver, descriptor, value);
83
+ return value;
84
+ }
85
+
86
+ /**
87
+ * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
88
+ * @see https://eips.ethereum.org/EIPS/eip-1474
89
+ */
90
+ class RpcError extends Error {
91
+ constructor(
92
+ /** Number error code */
93
+ code,
94
+ /** Human-readable string */
95
+ message,
96
+ /** Low-level error */
97
+ internal,
98
+ /** Other useful information about error */
99
+ data) {
100
+ if (!Number.isInteger(code)) throw new Error('"code" must be an integer.');
101
+ if (!message || typeof message !== 'string') throw new Error('"message" must be a nonempty string.');
102
+ super(message);
103
+
104
+ _defineProperty(this, "code", void 0);
105
+
106
+ _defineProperty(this, "data", void 0);
107
+
108
+ _defineProperty(this, "internal", void 0);
109
+
110
+ this.code = code;
111
+ this.data = data;
112
+ this.internal = internal;
113
+ }
114
+
115
+ }
116
+ /**
117
+ * Error subclass implementing Ethereum Provider errors per EIP-1193.
118
+ * @see https://eips.ethereum.org/EIPS/eip-1193
119
+ */
120
+
121
+ class ProviderRpcError extends RpcError {
122
+ /**
123
+ * Create an Ethereum Provider JSON-RPC error.
124
+ * `code` must be an integer in the 1000 <= 4999 range.
125
+ */
126
+ constructor(
127
+ /**
128
+ * Number error code
129
+ * @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
130
+ */
131
+ code,
132
+ /** Human-readable string */
133
+ message,
134
+ /** Low-level error */
135
+ internal,
136
+ /** Other useful information about error */
137
+ data) {
138
+ if (!(Number.isInteger(code) && code >= 1000 && code <= 4999)) throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');
139
+ super(code, message, internal, data);
140
+ }
141
+
142
+ }
143
+ class AddChainError extends Error {
144
+ constructor() {
145
+ super(...arguments);
146
+
147
+ _defineProperty(this, "name", 'AddChainError');
148
+
149
+ _defineProperty(this, "message", 'Error adding chain');
150
+ }
151
+
152
+ }
153
+ class ChainDoesNotSupportMulticallError extends Error {
154
+ constructor(_ref) {
155
+ let {
156
+ blockNumber,
157
+ chain
158
+ } = _ref;
159
+ super("Chain \"".concat(chain.name, "\" does not support multicall").concat(blockNumber ? " on block ".concat(blockNumber) : '', "."));
160
+
161
+ _defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
162
+ }
163
+
164
+ }
165
+ class ChainMismatchError extends Error {
166
+ constructor(_ref2) {
167
+ let {
168
+ activeChain,
169
+ targetChain
170
+ } = _ref2;
171
+ super("Chain mismatch: Expected \"".concat(targetChain, "\", received \"").concat(activeChain, "\"."));
172
+
173
+ _defineProperty(this, "name", 'ChainMismatchError');
174
+ }
175
+
176
+ }
177
+ class ChainNotConfiguredError extends Error {
178
+ constructor() {
179
+ super(...arguments);
180
+
181
+ _defineProperty(this, "name", 'ChainNotConfigured');
182
+
183
+ _defineProperty(this, "message", 'Chain not configured');
184
+ }
185
+
186
+ }
187
+ class ConnectorAlreadyConnectedError extends Error {
188
+ constructor() {
189
+ super(...arguments);
190
+
191
+ _defineProperty(this, "name", 'ConnectorAlreadyConnectedError');
192
+
193
+ _defineProperty(this, "message", 'Connector already connected');
194
+ }
195
+
196
+ }
197
+ class ConnectorNotFoundError extends Error {
198
+ constructor() {
199
+ super(...arguments);
200
+
201
+ _defineProperty(this, "name", 'ConnectorNotFoundError');
202
+
203
+ _defineProperty(this, "message", 'Connector not found');
204
+ }
205
+
206
+ }
207
+ class ContractMethodDoesNotExistError extends Error {
208
+ constructor(_ref3) {
209
+ var _chain$blockExplorers;
210
+
211
+ let {
212
+ addressOrName,
213
+ chainId,
214
+ functionName
215
+ } = _ref3;
216
+ const {
217
+ chains,
218
+ network
219
+ } = getProvider();
220
+ const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref4 => {
221
+ let {
222
+ id
223
+ } = _ref4;
224
+ return id === (chainId || network.chainId);
225
+ });
226
+ const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default;
227
+ super(["Function \"".concat(functionName, "\" on contract \"").concat(addressOrName, "\" does not exist."), ...(blockExplorer ? ['', "".concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name, ": ").concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url, "/address/").concat(addressOrName, "#readContract")] : [])].join('\n'));
228
+
229
+ _defineProperty(this, "name", 'ContractMethodDoesNotExistError');
230
+ }
231
+
232
+ }
233
+ class ContractMethodNoResultError extends Error {
234
+ constructor(_ref5) {
235
+ var _chain$blockExplorers2;
236
+
237
+ let {
238
+ addressOrName,
239
+ chainId,
240
+ functionName
241
+ } = _ref5;
242
+ const {
243
+ chains,
244
+ network
245
+ } = getProvider();
246
+ const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref6 => {
247
+ let {
248
+ id
249
+ } = _ref6;
250
+ return id === (chainId || network.chainId);
251
+ });
252
+ const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers2 = chain.blockExplorers) === null || _chain$blockExplorers2 === void 0 ? void 0 : _chain$blockExplorers2.default;
253
+ super(["Function \"".concat(functionName, "\" on contract \"").concat(addressOrName, "\" returned an empty response."), '', "Are you sure the function \"".concat(functionName, "\" exists on this contract?"), ...(blockExplorer ? ['', "".concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name, ": ").concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url, "/address/").concat(addressOrName, "#readContract")] : [])].join('\n'));
254
+
255
+ _defineProperty(this, "name", 'ContractMethodNoResultError');
256
+ }
257
+
258
+ }
259
+ class ProviderChainsNotFound extends Error {
260
+ constructor() {
261
+ super(...arguments);
262
+
263
+ _defineProperty(this, "name", 'ProviderChainsNotFound');
264
+
265
+ _defineProperty(this, "message", ['No chains were found on the wagmi provider. Some functions that require a chain may not work.', '', 'It is recommended to add a list of chains to the provider in `createClient`.', '', 'Example:', '', '```', "import { getDefaultProvider } from 'ethers'", "import { chain, createClient } from 'wagmi'", '', 'createClient({', ' provider: Object.assign(getDefaultProvider(), { chains: [chain.mainnet] })', '})', '```'].join('\n'));
266
+ }
267
+
268
+ }
269
+ class ResourceUnavailableError extends RpcError {
270
+ constructor(error) {
271
+ super(-32002, 'Resource unavailable', error);
272
+
273
+ _defineProperty(this, "name", 'ResourceUnavailable');
274
+ }
275
+
276
+ }
277
+ class SwitchChainError extends ProviderRpcError {
278
+ constructor(error) {
279
+ super(4902, 'Error switching chain', error);
280
+
281
+ _defineProperty(this, "name", 'SwitchChainError');
282
+ }
283
+
284
+ }
285
+ class SwitchChainNotSupportedError extends Error {
286
+ constructor(_ref7) {
287
+ let {
288
+ connector
289
+ } = _ref7;
290
+ super("\"".concat(connector.name, "\" does not support programmatic chain switching."));
291
+
292
+ _defineProperty(this, "name", 'SwitchChainNotSupportedError');
293
+ }
294
+
295
+ }
296
+ class UserRejectedRequestError extends ProviderRpcError {
297
+ constructor(error) {
298
+ super(4001, 'User rejected request', error);
299
+
300
+ _defineProperty(this, "name", 'UserRejectedRequestError');
301
+ }
302
+
303
+ }
6
304
 
7
305
  function getInjectedName(ethereum) {
8
306
  var _ethereum$providers, _getName;
@@ -19,6 +317,7 @@ function getInjectedName(ethereum) {
19
317
  if (provider.isTokenPocket) return 'TokenPocket';
20
318
  if (provider.isTokenary) return 'Tokenary';
21
319
  if (provider.isTrust) return 'Trust Wallet';
320
+ if (provider.isOneInchIOSWallet || provider.isOneInchAndroidWallet) return '1inch Wallet';
22
321
  if (provider.isMetaMask) return 'MetaMask';
23
322
  }; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
24
323
 
@@ -50,6 +349,60 @@ function getInjectedName(ethereum) {
50
349
  return (_getName = getName(ethereum)) !== null && _getName !== void 0 ? _getName : 'Injected';
51
350
  }
52
351
 
352
+ function normalizeChainId(chainId) {
353
+ if (typeof chainId === 'string') return Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10);
354
+ if (typeof chainId === 'bigint') return Number(chainId);
355
+ return chainId;
356
+ }
357
+
358
+ class Connector extends EventEmitter {
359
+ /** Unique connector id */
360
+
361
+ /** Connector name */
362
+
363
+ /** Chains connector supports */
364
+
365
+ /** Options to use with connector */
366
+
367
+ /** Whether connector is usable */
368
+ constructor(_ref) {
369
+ let {
370
+ chains = defaultChains,
371
+ options
372
+ } = _ref;
373
+ super();
374
+
375
+ _defineProperty(this, "id", void 0);
376
+
377
+ _defineProperty(this, "name", void 0);
378
+
379
+ _defineProperty(this, "chains", void 0);
380
+
381
+ _defineProperty(this, "options", void 0);
382
+
383
+ _defineProperty(this, "ready", void 0);
384
+
385
+ this.chains = chains;
386
+ this.options = options;
387
+ }
388
+
389
+ getBlockExplorerUrls(chain) {
390
+ var _chain$blockExplorers;
391
+
392
+ const {
393
+ default: blockExplorer,
394
+ ...blockExplorers
395
+ } = (_chain$blockExplorers = chain.blockExplorers) !== null && _chain$blockExplorers !== void 0 ? _chain$blockExplorers : {};
396
+ if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
397
+ return [];
398
+ }
399
+
400
+ isChainUnsupported(chainId) {
401
+ return !this.chains.some(x => x.id === chainId);
402
+ }
403
+
404
+ }
405
+
53
406
  var _provider = /*#__PURE__*/new WeakMap();
54
407
 
55
408
  var _switchingChains = /*#__PURE__*/new WeakMap();
@@ -454,6 +807,8 @@ class Client {
454
807
  _classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
455
808
 
456
809
  _classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
810
+
811
+ if (autoConnect && typeof window !== 'undefined') setTimeout(async () => await this.autoConnect(), 0);
457
812
  }
458
813
 
459
814
  get chains() {
@@ -648,4 +1003,15 @@ function getClient() {
648
1003
  return client;
649
1004
  }
650
1005
 
651
- export { Client as C, InjectedConnector as I, createStorage as a, createClient as c, getClient as g, noopStorage as n };
1006
+ function getProvider() {
1007
+ let {
1008
+ chainId
1009
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1010
+ const client = getClient();
1011
+ if (chainId && typeof client.config.provider === 'function') return client.config.provider({
1012
+ chainId
1013
+ });
1014
+ return client.provider;
1015
+ }
1016
+
1017
+ export { AddChainError as A, ConnectorAlreadyConnectedError as C, InjectedConnector as I, ProviderChainsNotFound as P, ResourceUnavailableError as R, SwitchChainNotSupportedError as S, UserRejectedRequestError as U, _classPrivateMethodInitSpec as _, ConnectorNotFoundError as a, ChainMismatchError as b, ContractMethodDoesNotExistError as c, getProvider as d, ChainDoesNotSupportMulticallError as e, ContractMethodNoResultError as f, getClient as g, createClient as h, Client as i, Connector as j, ChainNotConfiguredError as k, ProviderRpcError as l, RpcError as m, normalizeChainId as n, SwitchChainError as o, createStorage as p, noopStorage as q, _defineProperty as r, _classPrivateFieldInitSpec as s, _classPrivateFieldGet as t, _classPrivateFieldSet as u, _classPrivateMethodGet as v };