@wagmi/core 0.4.2 → 0.4.5

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 (35) hide show
  1. package/README.md +1 -1
  2. package/chains/dist/wagmi-core-chains.cjs.dev.js +1 -1
  3. package/chains/dist/wagmi-core-chains.cjs.prod.js +1 -1
  4. package/chains/dist/wagmi-core-chains.esm.js +1 -1
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +2 -2
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +2 -2
  7. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +2 -2
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +74 -3
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +74 -3
  10. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +74 -3
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +2 -2
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +2 -2
  13. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +2 -2
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +9 -6
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +9 -6
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +9 -6
  17. package/dist/{base-e71ae4b2.cjs.dev.js → base-797ad073.cjs.prod.js} +17 -3
  18. package/dist/{base-2d484f6c.cjs.prod.js → base-90b7f3e4.cjs.dev.js} +17 -3
  19. package/dist/{base-e66f9622.esm.js → base-b565d5d4.esm.js} +17 -4
  20. package/dist/{chains-d970ee8d.cjs.dev.js → chains-7e6dc59c.cjs.dev.js} +1 -1
  21. package/dist/{chains-865492ea.cjs.prod.js → chains-f7bb3211.cjs.prod.js} +1 -1
  22. package/dist/{chains-c389721d.esm.js → chains-fd2c546c.esm.js} +1 -1
  23. package/dist/{client-53f2119c.cjs.dev.js → client-71ece661.cjs.dev.js} +24 -23
  24. package/dist/{client-ffba0e25.esm.js → client-a05fd511.esm.js} +20 -20
  25. package/dist/{client-1feb9121.cjs.prod.js → client-a6e61429.cjs.prod.js} +24 -23
  26. package/dist/declarations/src/connectors/injected.d.ts +2 -0
  27. package/dist/declarations/src/connectors/metaMask.d.ts +16 -1
  28. package/dist/declarations/src/connectors/walletConnect.d.ts +2 -1
  29. package/dist/declarations/src/errors.d.ts +9 -0
  30. package/dist/declarations/src/index.d.ts +1 -1
  31. package/dist/declarations/src/types/index.d.ts +24 -0
  32. package/dist/wagmi-core.cjs.dev.js +36 -13
  33. package/dist/wagmi-core.cjs.prod.js +36 -13
  34. package/dist/wagmi-core.esm.js +31 -9
  35. package/package.json +1 -1
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var client = require('./client-53f2119c.cjs.dev.js');
6
- var base = require('./base-e71ae4b2.cjs.dev.js');
5
+ var client = require('./client-71ece661.cjs.dev.js');
6
+ var base = require('./base-90b7f3e4.cjs.dev.js');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
9
  var ethers = require('ethers');
10
10
  var shallow = require('zustand/shallow');
11
11
  var rpcs = require('./rpcs-f1d24f0e.cjs.dev.js');
12
- var chains = require('./chains-d970ee8d.cjs.dev.js');
12
+ var chains = require('./chains-7e6dc59c.cjs.dev.js');
13
13
  require('zustand/vanilla');
14
14
  require('zustand/middleware');
15
15
  require('eventemitter3');
@@ -183,29 +183,30 @@ async function connect(_ref) {
183
183
  chainId,
184
184
  connector
185
185
  } = _ref;
186
- const activeConnector = client.client.connector;
186
+ const client$1 = client.getClient();
187
+ const activeConnector = client$1.connector;
187
188
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
188
189
 
189
190
  try {
190
- client.client.setState(x => ({ ...x,
191
+ client$1.setState(x => ({ ...x,
191
192
  status: 'connecting'
192
193
  }));
193
194
  const data = await connector.connect({
194
195
  chainId
195
196
  });
196
- client.client.setLastUsedConnector(connector.id);
197
- client.client.setState(x => ({ ...x,
197
+ client$1.setLastUsedConnector(connector.id);
198
+ client$1.setState(x => ({ ...x,
198
199
  connector,
199
200
  chains: connector === null || connector === void 0 ? void 0 : connector.chains,
200
201
  data,
201
202
  status: 'connected'
202
203
  }));
203
- client.client.storage.setItem('connected', true);
204
+ client$1.storage.setItem('connected', true);
204
205
  return { ...data,
205
206
  connector
206
207
  };
207
208
  } catch (err) {
208
- client.client.setState(x => ({ ...x,
209
+ client$1.setState(x => ({ ...x,
209
210
  status: 'disconnected'
210
211
  }));
211
212
  throw err;
@@ -346,7 +347,7 @@ async function multicall(_ref) {
346
347
  if (!contract[functionName]) console.warn("\"".concat(functionName, "\" is not in the interface for contract \"").concat(addressOrName, "\""));
347
348
  return {
348
349
  target: addressOrName,
349
- allowFailure: allowFailure,
350
+ allowFailure,
350
351
  callData
351
352
  };
352
353
  });
@@ -363,12 +364,32 @@ async function multicall(_ref) {
363
364
  contractInterface,
364
365
  functionName
365
366
  } = contracts[i];
367
+
368
+ if (returnData === '0x') {
369
+ var _chain$blockExplorers;
370
+
371
+ const err = new base.ContractMethodNoResultError({
372
+ addressOrName,
373
+ blockExplorer: (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default,
374
+ functionName
375
+ });
376
+ if (!allowFailure) throw err;
377
+ console.warn(err.message);
378
+ return undefined;
379
+ }
380
+
366
381
  const contract = getContract({
367
382
  addressOrName,
368
383
  contractInterface
369
384
  });
370
- const result = contract.interface.decodeFunctionResult(functionName, returnData);
371
- return Array.isArray(result) && result.length === 1 ? result[0] : result;
385
+
386
+ try {
387
+ const result = contract.interface.decodeFunctionResult(functionName, returnData);
388
+ return Array.isArray(result) && result.length === 1 ? result[0] : result;
389
+ } catch (err) {
390
+ if (!allowFailure) throw err;
391
+ return undefined;
392
+ }
372
393
  });
373
394
  }
374
395
 
@@ -414,6 +435,7 @@ async function readContracts(_ref) {
414
435
 
415
436
  return (await Promise.all(promises)).flat();
416
437
  } catch (err) {
438
+ if (err instanceof base.ContractMethodNoResultError) throw err;
417
439
  const promises = contracts.map(contract => readContract({ ...contract,
418
440
  overrides
419
441
  }));
@@ -422,7 +444,7 @@ async function readContracts(_ref) {
422
444
  return (await Promise.allSettled(promises)).map(result => result.status === 'fulfilled' ? result.value : null);
423
445
  }
424
446
 
425
- return Promise.all(promises);
447
+ return await Promise.all(promises);
426
448
  }
427
449
  }
428
450
 
@@ -1084,6 +1106,7 @@ exports.ChainNotConfiguredError = base.ChainNotConfiguredError;
1084
1106
  exports.Connector = base.Connector;
1085
1107
  exports.ConnectorAlreadyConnectedError = base.ConnectorAlreadyConnectedError;
1086
1108
  exports.ConnectorNotFoundError = base.ConnectorNotFoundError;
1109
+ exports.ContractMethodNoResultError = base.ContractMethodNoResultError;
1087
1110
  exports.ProviderChainsNotFound = base.ProviderChainsNotFound;
1088
1111
  exports.ProviderRpcError = base.ProviderRpcError;
1089
1112
  exports.ResourceUnavailableError = base.ResourceUnavailableError;
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var client = require('./client-1feb9121.cjs.prod.js');
6
- var base = require('./base-2d484f6c.cjs.prod.js');
5
+ var client = require('./client-a6e61429.cjs.prod.js');
6
+ var base = require('./base-797ad073.cjs.prod.js');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
9
  var ethers = require('ethers');
10
10
  var shallow = require('zustand/shallow');
11
11
  var rpcs = require('./rpcs-1fd0a12f.cjs.prod.js');
12
- var chains = require('./chains-865492ea.cjs.prod.js');
12
+ var chains = require('./chains-f7bb3211.cjs.prod.js');
13
13
  require('zustand/vanilla');
14
14
  require('zustand/middleware');
15
15
  require('eventemitter3');
@@ -183,29 +183,30 @@ async function connect(_ref) {
183
183
  chainId,
184
184
  connector
185
185
  } = _ref;
186
- const activeConnector = client.client.connector;
186
+ const client$1 = client.getClient();
187
+ const activeConnector = client$1.connector;
187
188
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
188
189
 
189
190
  try {
190
- client.client.setState(x => ({ ...x,
191
+ client$1.setState(x => ({ ...x,
191
192
  status: 'connecting'
192
193
  }));
193
194
  const data = await connector.connect({
194
195
  chainId
195
196
  });
196
- client.client.setLastUsedConnector(connector.id);
197
- client.client.setState(x => ({ ...x,
197
+ client$1.setLastUsedConnector(connector.id);
198
+ client$1.setState(x => ({ ...x,
198
199
  connector,
199
200
  chains: connector === null || connector === void 0 ? void 0 : connector.chains,
200
201
  data,
201
202
  status: 'connected'
202
203
  }));
203
- client.client.storage.setItem('connected', true);
204
+ client$1.storage.setItem('connected', true);
204
205
  return { ...data,
205
206
  connector
206
207
  };
207
208
  } catch (err) {
208
- client.client.setState(x => ({ ...x,
209
+ client$1.setState(x => ({ ...x,
209
210
  status: 'disconnected'
210
211
  }));
211
212
  throw err;
@@ -346,7 +347,7 @@ async function multicall(_ref) {
346
347
  if (!contract[functionName]) console.warn("\"".concat(functionName, "\" is not in the interface for contract \"").concat(addressOrName, "\""));
347
348
  return {
348
349
  target: addressOrName,
349
- allowFailure: allowFailure,
350
+ allowFailure,
350
351
  callData
351
352
  };
352
353
  });
@@ -363,12 +364,32 @@ async function multicall(_ref) {
363
364
  contractInterface,
364
365
  functionName
365
366
  } = contracts[i];
367
+
368
+ if (returnData === '0x') {
369
+ var _chain$blockExplorers;
370
+
371
+ const err = new base.ContractMethodNoResultError({
372
+ addressOrName,
373
+ blockExplorer: (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default,
374
+ functionName
375
+ });
376
+ if (!allowFailure) throw err;
377
+ console.warn(err.message);
378
+ return undefined;
379
+ }
380
+
366
381
  const contract = getContract({
367
382
  addressOrName,
368
383
  contractInterface
369
384
  });
370
- const result = contract.interface.decodeFunctionResult(functionName, returnData);
371
- return Array.isArray(result) && result.length === 1 ? result[0] : result;
385
+
386
+ try {
387
+ const result = contract.interface.decodeFunctionResult(functionName, returnData);
388
+ return Array.isArray(result) && result.length === 1 ? result[0] : result;
389
+ } catch (err) {
390
+ if (!allowFailure) throw err;
391
+ return undefined;
392
+ }
372
393
  });
373
394
  }
374
395
 
@@ -414,6 +435,7 @@ async function readContracts(_ref) {
414
435
 
415
436
  return (await Promise.all(promises)).flat();
416
437
  } catch (err) {
438
+ if (err instanceof base.ContractMethodNoResultError) throw err;
417
439
  const promises = contracts.map(contract => readContract({ ...contract,
418
440
  overrides
419
441
  }));
@@ -422,7 +444,7 @@ async function readContracts(_ref) {
422
444
  return (await Promise.allSettled(promises)).map(result => result.status === 'fulfilled' ? result.value : null);
423
445
  }
424
446
 
425
- return Promise.all(promises);
447
+ return await Promise.all(promises);
426
448
  }
427
449
  }
428
450
 
@@ -1084,6 +1106,7 @@ exports.ChainNotConfiguredError = base.ChainNotConfiguredError;
1084
1106
  exports.Connector = base.Connector;
1085
1107
  exports.ConnectorAlreadyConnectedError = base.ConnectorAlreadyConnectedError;
1086
1108
  exports.ConnectorNotFoundError = base.ConnectorNotFoundError;
1109
+ exports.ContractMethodNoResultError = base.ContractMethodNoResultError;
1087
1110
  exports.ProviderChainsNotFound = base.ProviderChainsNotFound;
1088
1111
  exports.ProviderRpcError = base.ProviderRpcError;
1089
1112
  exports.ResourceUnavailableError = base.ResourceUnavailableError;
@@ -1,13 +1,13 @@
1
- import { c as client, g as getClient } from './client-ffba0e25.esm.js';
2
- export { C as Client, I as InjectedConnector, a as createClient, b as createStorage, n as noopStorage } from './client-ffba0e25.esm.js';
3
- import { C as ConnectorAlreadyConnectedError, P as ProviderChainsNotFound, a as ChainDoesNotSupportMulticallError, b as ConnectorNotFoundError, c as ChainMismatchError, U as UserRejectedRequestError, n as normalizeChainId, S as SwitchChainNotSupportedError } from './base-e66f9622.esm.js';
4
- export { A as AddChainError, a as ChainDoesNotSupportMulticallError, c as ChainMismatchError, e as ChainNotConfiguredError, d as Connector, C as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, P as ProviderChainsNotFound, f as ProviderRpcError, R as ResourceUnavailableError, g as RpcError, h as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, n as normalizeChainId } from './base-e66f9622.esm.js';
1
+ import { g as getClient } from './client-a05fd511.esm.js';
2
+ export { C as Client, I as InjectedConnector, c as createClient, a as createStorage, n as noopStorage } from './client-a05fd511.esm.js';
3
+ import { C as ConnectorAlreadyConnectedError, P as ProviderChainsNotFound, a as ChainDoesNotSupportMulticallError, b as ContractMethodNoResultError, c as ConnectorNotFoundError, d as ChainMismatchError, U as UserRejectedRequestError, n as normalizeChainId, S as SwitchChainNotSupportedError } from './base-b565d5d4.esm.js';
4
+ export { A as AddChainError, a as ChainDoesNotSupportMulticallError, d as ChainMismatchError, f as ChainNotConfiguredError, e as Connector, C as ConnectorAlreadyConnectedError, c as ConnectorNotFoundError, b as ContractMethodNoResultError, P as ProviderChainsNotFound, g as ProviderRpcError, R as ResourceUnavailableError, h as RpcError, i as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, n as normalizeChainId } from './base-b565d5d4.esm.js';
5
5
  import { logger, Contract as Contract$1 } from 'ethers/lib/ethers';
6
6
  import { isAddress, Logger, formatUnits, getAddress } from 'ethers/lib/utils';
7
7
  import { providers, Contract } from 'ethers';
8
8
  import shallow from 'zustand/shallow';
9
9
  export { a as alchemyRpcUrls, i as infuraRpcUrls, p as publicRpcUrls } from './rpcs-b73a8f60.esm.js';
10
- export { a as allChains, c as chain, b as chainId, d as defaultChains, e as defaultL2Chains, f as etherscanBlockExplorers } from './chains-c389721d.esm.js';
10
+ export { a as allChains, c as chain, b as chainId, d as defaultChains, e as defaultL2Chains, f as etherscanBlockExplorers } from './chains-fd2c546c.esm.js';
11
11
  import 'zustand/vanilla';
12
12
  import 'zustand/middleware';
13
13
  import 'eventemitter3';
@@ -177,6 +177,7 @@ async function connect(_ref) {
177
177
  chainId,
178
178
  connector
179
179
  } = _ref;
180
+ const client = getClient();
180
181
  const activeConnector = client.connector;
181
182
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
182
183
 
@@ -340,7 +341,7 @@ async function multicall(_ref) {
340
341
  if (!contract[functionName]) console.warn("\"".concat(functionName, "\" is not in the interface for contract \"").concat(addressOrName, "\""));
341
342
  return {
342
343
  target: addressOrName,
343
- allowFailure: allowFailure,
344
+ allowFailure,
344
345
  callData
345
346
  };
346
347
  });
@@ -357,12 +358,32 @@ async function multicall(_ref) {
357
358
  contractInterface,
358
359
  functionName
359
360
  } = contracts[i];
361
+
362
+ if (returnData === '0x') {
363
+ var _chain$blockExplorers;
364
+
365
+ const err = new ContractMethodNoResultError({
366
+ addressOrName,
367
+ blockExplorer: (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default,
368
+ functionName
369
+ });
370
+ if (!allowFailure) throw err;
371
+ console.warn(err.message);
372
+ return undefined;
373
+ }
374
+
360
375
  const contract = getContract({
361
376
  addressOrName,
362
377
  contractInterface
363
378
  });
364
- const result = contract.interface.decodeFunctionResult(functionName, returnData);
365
- return Array.isArray(result) && result.length === 1 ? result[0] : result;
379
+
380
+ try {
381
+ const result = contract.interface.decodeFunctionResult(functionName, returnData);
382
+ return Array.isArray(result) && result.length === 1 ? result[0] : result;
383
+ } catch (err) {
384
+ if (!allowFailure) throw err;
385
+ return undefined;
386
+ }
366
387
  });
367
388
  }
368
389
 
@@ -408,6 +429,7 @@ async function readContracts(_ref) {
408
429
 
409
430
  return (await Promise.all(promises)).flat();
410
431
  } catch (err) {
432
+ if (err instanceof ContractMethodNoResultError) throw err;
411
433
  const promises = contracts.map(contract => readContract({ ...contract,
412
434
  overrides
413
435
  }));
@@ -416,7 +438,7 @@ async function readContracts(_ref) {
416
438
  return (await Promise.allSettled(promises)).map(result => result.status === 'fulfilled' ? result.value : null);
417
439
  }
418
440
 
419
- return Promise.all(promises);
441
+ return await Promise.all(promises);
420
442
  }
421
443
  }
422
444
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@wagmi/core",
3
3
  "description": "Vanilla JS library for Ethereum",
4
4
  "license": "WAGMIT",
5
- "version": "0.4.2",
5
+ "version": "0.4.5",
6
6
  "repository": "tmm/wagmi",
7
7
  "author": "awkweb.eth",
8
8
  "ethereum": "awkweb.eth",