@wagmi/core 0.5.6 → 0.5.7

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 (50) hide show
  1. package/chains/dist/wagmi-core-chains.cjs.dev.js +2 -2
  2. package/chains/dist/wagmi-core-chains.cjs.prod.js +2 -2
  3. package/chains/dist/wagmi-core-chains.esm.js +2 -2
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +10 -6
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +10 -6
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +10 -6
  7. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +3 -3
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +3 -3
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +3 -3
  10. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +3 -3
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +3 -3
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +3 -3
  13. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +3 -3
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +3 -3
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +3 -3
  16. package/dist/{chains-868f0ac6.cjs.prod.js → chains-789e0c2e.cjs.prod.js} +2 -1
  17. package/dist/{chains-a22bcfea.esm.js → chains-8c76af1b.esm.js} +2 -1
  18. package/dist/{chains-4fdb21bc.cjs.dev.js → chains-ec1de502.cjs.dev.js} +2 -1
  19. package/dist/debounce-0862bf88.esm.js +18 -0
  20. package/dist/debounce-2d836dc9.cjs.prod.js +20 -0
  21. package/dist/debounce-46ac0312.cjs.dev.js +20 -0
  22. package/dist/declarations/src/client.d.ts +11 -1
  23. package/dist/declarations/src/constants/rpcs.d.ts +1 -1
  24. package/dist/declarations/src/internal.d.ts +1 -0
  25. package/dist/declarations/src/utils/debounce.d.ts +1 -0
  26. package/dist/declarations/src/utils/index.d.ts +1 -0
  27. package/dist/{getProvider-b220fed1.cjs.prod.js → getProvider-1b3eeda8.cjs.dev.js} +60 -20
  28. package/dist/{getProvider-3a26f086.cjs.dev.js → getProvider-ad4ce6a4.cjs.prod.js} +60 -20
  29. package/dist/{getProvider-a3c8cf52.esm.js → getProvider-f1dfc7e3.esm.js} +60 -20
  30. package/dist/{rpcs-6e1b1718.esm.js → rpcs-8d636858.esm.js} +1 -0
  31. package/dist/{rpcs-3326627e.cjs.dev.js → rpcs-d2cd65f1.cjs.dev.js} +1 -0
  32. package/dist/{rpcs-45537550.cjs.prod.js → rpcs-edec227e.cjs.prod.js} +1 -0
  33. package/dist/wagmi-core.cjs.dev.js +15 -7
  34. package/dist/wagmi-core.cjs.prod.js +15 -7
  35. package/dist/wagmi-core.esm.js +17 -9
  36. package/internal/dist/wagmi-core-internal.cjs.d.ts +1 -0
  37. package/internal/dist/wagmi-core-internal.cjs.dev.js +9 -0
  38. package/internal/dist/wagmi-core-internal.cjs.js +7 -0
  39. package/internal/dist/wagmi-core-internal.cjs.prod.js +9 -0
  40. package/internal/dist/wagmi-core-internal.esm.js +1 -0
  41. package/internal/package.json +4 -0
  42. package/package.json +7 -1
  43. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +1 -1
  44. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +1 -1
  45. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +1 -1
  46. package/providers/coinbaseNode/dist/wagmi-core-providers-coinbaseNode.cjs.d.ts +11 -0
  47. package/providers/coinbaseNode/dist/wagmi-core-providers-coinbaseNode.cjs.js +16 -0
  48. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +1 -1
  49. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +1 -1
  50. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +1 -1
@@ -5,7 +5,7 @@ var create = require('zustand/vanilla');
5
5
  var ethers = require('ethers');
6
6
  var utils = require('ethers/lib/utils');
7
7
  var EventEmitter = require('eventemitter3');
8
- var chains = require('./chains-4fdb21bc.cjs.dev.js');
8
+ var chains = require('./chains-789e0c2e.cjs.prod.js');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
11
11
 
@@ -785,10 +785,14 @@ class Client {
785
785
 
786
786
  _defineProperty(this, "config", void 0);
787
787
 
788
+ _defineProperty(this, "providers", new Map());
789
+
788
790
  _defineProperty(this, "storage", void 0);
789
791
 
790
792
  _defineProperty(this, "store", void 0);
791
793
 
794
+ _defineProperty(this, "webSocketProviders", new Map());
795
+
792
796
  _classPrivateFieldInitSpec(this, _isAutoConnecting, {
793
797
  writable: true,
794
798
  value: void 0
@@ -799,7 +803,15 @@ class Client {
799
803
  value: void 0
800
804
  });
801
805
 
802
- // Check status for autoConnect flag
806
+ this.config = {
807
+ autoConnect,
808
+ connectors,
809
+ logger,
810
+ provider: _provider,
811
+ storage,
812
+ webSocketProvider: _webSocketProvider
813
+ }; // Check status for autoConnect flag
814
+
803
815
  let status = 'disconnected';
804
816
 
805
817
  let _chainId;
@@ -819,13 +831,13 @@ class Client {
819
831
 
820
832
  this.store = create__default["default"](middleware.subscribeWithSelector(middleware.persist(() => ({
821
833
  connectors: typeof connectors === 'function' ? connectors() : connectors,
822
- provider: typeof _provider === 'function' ? _provider({
834
+ provider: this.getProvider({
823
835
  chainId: _chainId
824
- }) : _provider,
836
+ }),
825
837
  status,
826
- webSocketProvider: typeof _webSocketProvider === 'function' ? _webSocketProvider({
838
+ webSocketProvider: this.getWebSocketProvider({
827
839
  chainId: _chainId
828
- }) : _webSocketProvider
840
+ })
829
841
  }), {
830
842
  name: storeKey,
831
843
  getStorage: () => storage,
@@ -843,14 +855,6 @@ class Client {
843
855
  },
844
856
  version: 1
845
857
  })));
846
- this.config = {
847
- autoConnect,
848
- connectors,
849
- logger,
850
- provider: _provider,
851
- storage,
852
- webSocketProvider: _webSocketProvider
853
- };
854
858
  this.storage = storage;
855
859
 
856
860
  _classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
@@ -969,6 +973,40 @@ class Client {
969
973
  return this.data;
970
974
  }
971
975
 
976
+ getProvider() {
977
+ let {
978
+ bust,
979
+ chainId
980
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
981
+ let provider_ = this.providers.get(chainId !== null && chainId !== void 0 ? chainId : -1);
982
+ if (provider_ && !bust) return provider_;
983
+ const {
984
+ provider
985
+ } = this.config;
986
+ provider_ = typeof provider === 'function' ? provider({
987
+ chainId
988
+ }) : provider;
989
+ this.providers.set(chainId !== null && chainId !== void 0 ? chainId : -1, provider_);
990
+ return provider_;
991
+ }
992
+
993
+ getWebSocketProvider() {
994
+ let {
995
+ bust,
996
+ chainId
997
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
998
+ let webSocketProvider_ = this.webSocketProviders.get(chainId !== null && chainId !== void 0 ? chainId : -1);
999
+ if (webSocketProvider_ && !bust) return webSocketProvider_;
1000
+ const {
1001
+ webSocketProvider
1002
+ } = this.config;
1003
+ webSocketProvider_ = typeof webSocketProvider === 'function' ? webSocketProvider({
1004
+ chainId
1005
+ }) : webSocketProvider;
1006
+ if (webSocketProvider_) this.webSocketProviders.set(chainId !== null && chainId !== void 0 ? chainId : -1, webSocketProvider_);
1007
+ return webSocketProvider_;
1008
+ }
1009
+
972
1010
  setLastUsedConnector() {
973
1011
  var _this$storage;
974
1012
 
@@ -1028,12 +1066,14 @@ function _addEffects2() {
1028
1066
  return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
1029
1067
  }, chainId => {
1030
1068
  this.setState(x => ({ ...x,
1031
- provider: subscribeProvider ? provider({
1069
+ provider: this.getProvider({
1070
+ bust: true,
1032
1071
  chainId
1033
- }) : x.provider,
1034
- webSocketProvider: subscribeWebSocketProvider ? webSocketProvider({
1072
+ }),
1073
+ webSocketProvider: this.getWebSocketProvider({
1074
+ bust: true,
1035
1075
  chainId
1036
- }) : x.webSocketProvider
1076
+ })
1037
1077
  }));
1038
1078
  });
1039
1079
  }
@@ -1057,9 +1097,9 @@ function getProvider() {
1057
1097
  chainId
1058
1098
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1059
1099
  const client = getClient();
1060
- if (chainId && typeof client.config.provider === 'function') return client.config.provider({
1100
+ if (chainId) return client.getProvider({
1061
1101
  chainId
1062
- });
1102
+ }) || client.provider;
1063
1103
  return client.provider;
1064
1104
  }
1065
1105
 
@@ -3,7 +3,7 @@ import create from 'zustand/vanilla';
3
3
  import { providers } from 'ethers';
4
4
  import { getAddress, hexValue } from 'ethers/lib/utils';
5
5
  import EventEmitter from 'eventemitter3';
6
- import { d as defaultChains } from './chains-a22bcfea.esm.js';
6
+ import { d as defaultChains } from './chains-8c76af1b.esm.js';
7
7
 
8
8
  function _checkPrivateRedeclaration(obj, privateCollection) {
9
9
  if (privateCollection.has(obj)) {
@@ -778,10 +778,14 @@ class Client {
778
778
 
779
779
  _defineProperty(this, "config", void 0);
780
780
 
781
+ _defineProperty(this, "providers", new Map());
782
+
781
783
  _defineProperty(this, "storage", void 0);
782
784
 
783
785
  _defineProperty(this, "store", void 0);
784
786
 
787
+ _defineProperty(this, "webSocketProviders", new Map());
788
+
785
789
  _classPrivateFieldInitSpec(this, _isAutoConnecting, {
786
790
  writable: true,
787
791
  value: void 0
@@ -792,7 +796,15 @@ class Client {
792
796
  value: void 0
793
797
  });
794
798
 
795
- // Check status for autoConnect flag
799
+ this.config = {
800
+ autoConnect,
801
+ connectors,
802
+ logger,
803
+ provider: _provider,
804
+ storage,
805
+ webSocketProvider: _webSocketProvider
806
+ }; // Check status for autoConnect flag
807
+
796
808
  let status = 'disconnected';
797
809
 
798
810
  let _chainId;
@@ -812,13 +824,13 @@ class Client {
812
824
 
813
825
  this.store = create(subscribeWithSelector(persist(() => ({
814
826
  connectors: typeof connectors === 'function' ? connectors() : connectors,
815
- provider: typeof _provider === 'function' ? _provider({
827
+ provider: this.getProvider({
816
828
  chainId: _chainId
817
- }) : _provider,
829
+ }),
818
830
  status,
819
- webSocketProvider: typeof _webSocketProvider === 'function' ? _webSocketProvider({
831
+ webSocketProvider: this.getWebSocketProvider({
820
832
  chainId: _chainId
821
- }) : _webSocketProvider
833
+ })
822
834
  }), {
823
835
  name: storeKey,
824
836
  getStorage: () => storage,
@@ -836,14 +848,6 @@ class Client {
836
848
  },
837
849
  version: 1
838
850
  })));
839
- this.config = {
840
- autoConnect,
841
- connectors,
842
- logger,
843
- provider: _provider,
844
- storage,
845
- webSocketProvider: _webSocketProvider
846
- };
847
851
  this.storage = storage;
848
852
 
849
853
  _classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
@@ -962,6 +966,40 @@ class Client {
962
966
  return this.data;
963
967
  }
964
968
 
969
+ getProvider() {
970
+ let {
971
+ bust,
972
+ chainId
973
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
974
+ let provider_ = this.providers.get(chainId !== null && chainId !== void 0 ? chainId : -1);
975
+ if (provider_ && !bust) return provider_;
976
+ const {
977
+ provider
978
+ } = this.config;
979
+ provider_ = typeof provider === 'function' ? provider({
980
+ chainId
981
+ }) : provider;
982
+ this.providers.set(chainId !== null && chainId !== void 0 ? chainId : -1, provider_);
983
+ return provider_;
984
+ }
985
+
986
+ getWebSocketProvider() {
987
+ let {
988
+ bust,
989
+ chainId
990
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
991
+ let webSocketProvider_ = this.webSocketProviders.get(chainId !== null && chainId !== void 0 ? chainId : -1);
992
+ if (webSocketProvider_ && !bust) return webSocketProvider_;
993
+ const {
994
+ webSocketProvider
995
+ } = this.config;
996
+ webSocketProvider_ = typeof webSocketProvider === 'function' ? webSocketProvider({
997
+ chainId
998
+ }) : webSocketProvider;
999
+ if (webSocketProvider_) this.webSocketProviders.set(chainId !== null && chainId !== void 0 ? chainId : -1, webSocketProvider_);
1000
+ return webSocketProvider_;
1001
+ }
1002
+
965
1003
  setLastUsedConnector() {
966
1004
  var _this$storage;
967
1005
 
@@ -1021,12 +1059,14 @@ function _addEffects2() {
1021
1059
  return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
1022
1060
  }, chainId => {
1023
1061
  this.setState(x => ({ ...x,
1024
- provider: subscribeProvider ? provider({
1062
+ provider: this.getProvider({
1063
+ bust: true,
1025
1064
  chainId
1026
- }) : x.provider,
1027
- webSocketProvider: subscribeWebSocketProvider ? webSocketProvider({
1065
+ }),
1066
+ webSocketProvider: this.getWebSocketProvider({
1067
+ bust: true,
1028
1068
  chainId
1029
- }) : x.webSocketProvider
1069
+ })
1030
1070
  }));
1031
1071
  });
1032
1072
  }
@@ -1050,9 +1090,9 @@ function getProvider() {
1050
1090
  chainId
1051
1091
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1052
1092
  const client = getClient();
1053
- if (chainId && typeof client.config.provider === 'function') return client.config.provider({
1093
+ if (chainId) return client.getProvider({
1054
1094
  chainId
1055
- });
1095
+ }) || client.provider;
1056
1096
  return client.provider;
1057
1097
  }
1058
1098
 
@@ -21,6 +21,7 @@ const infuraRpcUrls = {
21
21
  rinkeby: 'https://rinkeby.infura.io/v3',
22
22
  goerli: 'https://goerli.infura.io/v3',
23
23
  kovan: 'https://kovan.infura.io/v3',
24
+ sepolia: 'https://sepolia.infura.io/v3',
24
25
  optimism: 'https://optimism-mainnet.infura.io/v3',
25
26
  optimismKovan: 'https://optimism-kovan.infura.io/v3',
26
27
  optimismGoerli: 'https://optimism-goerli.infura.io/v3',
@@ -23,6 +23,7 @@ const infuraRpcUrls = {
23
23
  rinkeby: 'https://rinkeby.infura.io/v3',
24
24
  goerli: 'https://goerli.infura.io/v3',
25
25
  kovan: 'https://kovan.infura.io/v3',
26
+ sepolia: 'https://sepolia.infura.io/v3',
26
27
  optimism: 'https://optimism-mainnet.infura.io/v3',
27
28
  optimismKovan: 'https://optimism-kovan.infura.io/v3',
28
29
  optimismGoerli: 'https://optimism-goerli.infura.io/v3',
@@ -23,6 +23,7 @@ const infuraRpcUrls = {
23
23
  rinkeby: 'https://rinkeby.infura.io/v3',
24
24
  goerli: 'https://goerli.infura.io/v3',
25
25
  kovan: 'https://kovan.infura.io/v3',
26
+ sepolia: 'https://sepolia.infura.io/v3',
26
27
  optimism: 'https://optimism-mainnet.infura.io/v3',
27
28
  optimismKovan: 'https://optimism-kovan.infura.io/v3',
28
29
  optimismGoerli: 'https://optimism-goerli.infura.io/v3',
@@ -2,13 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var getProvider = require('./getProvider-3a26f086.cjs.dev.js');
5
+ var getProvider = require('./getProvider-1b3eeda8.cjs.dev.js');
6
6
  var ethers = require('ethers');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
- var chains = require('./chains-4fdb21bc.cjs.dev.js');
9
+ var chains = require('./chains-ec1de502.cjs.dev.js');
10
10
  var shallow = require('zustand/shallow');
11
- var rpcs = require('./rpcs-3326627e.cjs.dev.js');
11
+ var debounce = require('./debounce-46ac0312.cjs.dev.js');
12
+ var rpcs = require('./rpcs-d2cd65f1.cjs.dev.js');
12
13
  require('zustand/middleware');
13
14
  require('zustand/vanilla');
14
15
  require('eventemitter3');
@@ -474,9 +475,9 @@ function getWebSocketProvider() {
474
475
  chainId
475
476
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
476
477
  const client = getProvider.getClient();
477
- if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
478
+ if (chainId) return client.getWebSocketProvider({
478
479
  chainId
479
- });
480
+ }) || client.webSocketProvider;
480
481
  return client.webSocketProvider;
481
482
  }
482
483
 
@@ -802,13 +803,20 @@ function watchBlockNumber(args, callback) {
802
803
  let previousProvider;
803
804
 
804
805
  const createListener = provider => {
806
+ // We need to debounce the listener as we want to opt-out
807
+ // of the behavior where ethers emits a "block" event for
808
+ // every block that was missed in between the `pollingInterval`.
809
+ // We are setting a wait time of 1 as emitting an event in
810
+ // ethers takes ~0.1ms.
811
+ const debouncedCallback = debounce.debounce(callback, 1);
812
+
805
813
  if (previousProvider) {
806
814
  var _previousProvider;
807
815
 
808
- (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', callback);
816
+ (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', debouncedCallback);
809
817
  }
810
818
 
811
- provider.on('block', callback);
819
+ provider.on('block', debouncedCallback);
812
820
  previousProvider = provider;
813
821
  };
814
822
 
@@ -2,13 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var getProvider = require('./getProvider-b220fed1.cjs.prod.js');
5
+ var getProvider = require('./getProvider-ad4ce6a4.cjs.prod.js');
6
6
  var ethers = require('ethers');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
- var chains = require('./chains-868f0ac6.cjs.prod.js');
9
+ var chains = require('./chains-789e0c2e.cjs.prod.js');
10
10
  var shallow = require('zustand/shallow');
11
- var rpcs = require('./rpcs-45537550.cjs.prod.js');
11
+ var debounce = require('./debounce-2d836dc9.cjs.prod.js');
12
+ var rpcs = require('./rpcs-edec227e.cjs.prod.js');
12
13
  require('zustand/middleware');
13
14
  require('zustand/vanilla');
14
15
  require('eventemitter3');
@@ -474,9 +475,9 @@ function getWebSocketProvider() {
474
475
  chainId
475
476
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
476
477
  const client = getProvider.getClient();
477
- if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
478
+ if (chainId) return client.getWebSocketProvider({
478
479
  chainId
479
- });
480
+ }) || client.webSocketProvider;
480
481
  return client.webSocketProvider;
481
482
  }
482
483
 
@@ -802,13 +803,20 @@ function watchBlockNumber(args, callback) {
802
803
  let previousProvider;
803
804
 
804
805
  const createListener = provider => {
806
+ // We need to debounce the listener as we want to opt-out
807
+ // of the behavior where ethers emits a "block" event for
808
+ // every block that was missed in between the `pollingInterval`.
809
+ // We are setting a wait time of 1 as emitting an event in
810
+ // ethers takes ~0.1ms.
811
+ const debouncedCallback = debounce.debounce(callback, 1);
812
+
805
813
  if (previousProvider) {
806
814
  var _previousProvider;
807
815
 
808
- (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', callback);
816
+ (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', debouncedCallback);
809
817
  }
810
818
 
811
- provider.on('block', callback);
819
+ provider.on('block', debouncedCallback);
812
820
  previousProvider = provider;
813
821
  };
814
822
 
@@ -1,12 +1,13 @@
1
- import { g as getClient, C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, b as ChainMismatchError, U as UserRejectedRequestError, c as ContractMethodDoesNotExistError, d as getProvider, P as ProviderChainsNotFound, e as ChainDoesNotSupportMulticallError, f as ContractMethodRevertedError, h as ContractMethodNoResultError, i as ContractResultDecodeError, n as normalizeChainId, S as SwitchChainNotSupportedError } from './getProvider-a3c8cf52.esm.js';
2
- export { A as AddChainError, e as ChainDoesNotSupportMulticallError, b as ChainMismatchError, m as ChainNotConfiguredError, k as Client, l as Connector, C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, c as ContractMethodDoesNotExistError, h as ContractMethodNoResultError, f as ContractMethodRevertedError, i as ContractResultDecodeError, I as InjectedConnector, P as ProviderChainsNotFound, o as ProviderRpcError, R as ResourceUnavailableError, p as RpcError, q as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, j as createClient, r as createStorage, d as getProvider, s as noopStorage, n as normalizeChainId } from './getProvider-a3c8cf52.esm.js';
1
+ import { g as getClient, C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, b as ChainMismatchError, U as UserRejectedRequestError, c as ContractMethodDoesNotExistError, d as getProvider, P as ProviderChainsNotFound, e as ChainDoesNotSupportMulticallError, f as ContractMethodRevertedError, h as ContractMethodNoResultError, i as ContractResultDecodeError, n as normalizeChainId, S as SwitchChainNotSupportedError } from './getProvider-f1dfc7e3.esm.js';
2
+ export { A as AddChainError, e as ChainDoesNotSupportMulticallError, b as ChainMismatchError, m as ChainNotConfiguredError, k as Client, l as Connector, C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, c as ContractMethodDoesNotExistError, h as ContractMethodNoResultError, f as ContractMethodRevertedError, i as ContractResultDecodeError, I as InjectedConnector, P as ProviderChainsNotFound, o as ProviderRpcError, R as ResourceUnavailableError, p as RpcError, q as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, j as createClient, r as createStorage, d as getProvider, s as noopStorage, n as normalizeChainId } from './getProvider-f1dfc7e3.esm.js';
3
3
  import { providers, Contract as Contract$1 } from 'ethers';
4
4
  import { Contract, logger } from 'ethers/lib/ethers';
5
5
  import { FormatTypes, formatUnits, getAddress, isAddress, Logger } from 'ethers/lib/utils';
6
- import { m as mainnet } from './chains-a22bcfea.esm.js';
7
- export { a as allChains, c as chain, b as chainId, d as defaultChains, e as defaultL2Chains, f as etherscanBlockExplorers } from './chains-a22bcfea.esm.js';
6
+ import { m as mainnet } from './chains-8c76af1b.esm.js';
7
+ export { a as allChains, c as chain, b as chainId, d as defaultChains, e as defaultL2Chains, f as etherscanBlockExplorers } from './chains-8c76af1b.esm.js';
8
8
  import shallow from 'zustand/shallow';
9
- export { a as alchemyRpcUrls, i as infuraRpcUrls, p as publicRpcUrls } from './rpcs-6e1b1718.esm.js';
9
+ import { d as debounce } from './debounce-0862bf88.esm.js';
10
+ export { a as alchemyRpcUrls, i as infuraRpcUrls, p as publicRpcUrls } from './rpcs-8d636858.esm.js';
10
11
  import 'zustand/middleware';
11
12
  import 'zustand/vanilla';
12
13
  import 'eventemitter3';
@@ -468,9 +469,9 @@ function getWebSocketProvider() {
468
469
  chainId
469
470
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
470
471
  const client = getClient();
471
- if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
472
+ if (chainId) return client.getWebSocketProvider({
472
473
  chainId
473
- });
474
+ }) || client.webSocketProvider;
474
475
  return client.webSocketProvider;
475
476
  }
476
477
 
@@ -796,13 +797,20 @@ function watchBlockNumber(args, callback) {
796
797
  let previousProvider;
797
798
 
798
799
  const createListener = provider => {
800
+ // We need to debounce the listener as we want to opt-out
801
+ // of the behavior where ethers emits a "block" event for
802
+ // every block that was missed in between the `pollingInterval`.
803
+ // We are setting a wait time of 1 as emitting an event in
804
+ // ethers takes ~0.1ms.
805
+ const debouncedCallback = debounce(callback, 1);
806
+
799
807
  if (previousProvider) {
800
808
  var _previousProvider;
801
809
 
802
- (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', callback);
810
+ (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', debouncedCallback);
803
811
  }
804
812
 
805
- provider.on('block', callback);
813
+ provider.on('block', debouncedCallback);
806
814
  previousProvider = provider;
807
815
  };
808
816
 
@@ -0,0 +1 @@
1
+ export * from "../../dist/declarations/src/internal";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var debounce = require('../../dist/debounce-46ac0312.cjs.dev.js');
6
+
7
+
8
+
9
+ exports.debounce = debounce.debounce;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./wagmi-core-internal.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./wagmi-core-internal.cjs.dev.js");
7
+ }
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var debounce = require('../../dist/debounce-2d836dc9.cjs.prod.js');
6
+
7
+
8
+
9
+ exports.debounce = debounce.debounce;
@@ -0,0 +1 @@
1
+ export { d as debounce } from '../../dist/debounce-0862bf88.esm.js';
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/wagmi-core-internal.cjs.js",
3
+ "module": "dist/wagmi-core-internal.esm.js"
4
+ }
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.5.6",
5
+ "version": "0.5.7",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/wagmi-dev/wagmi.git",
@@ -49,6 +49,10 @@
49
49
  "module": "./connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js",
50
50
  "default": "./connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js"
51
51
  },
52
+ "./internal": {
53
+ "module": "./internal/dist/wagmi-core-internal.esm.js",
54
+ "default": "./internal/dist/wagmi-core-internal.cjs.js"
55
+ },
52
56
  "./providers/alchemy": {
53
57
  "module": "./providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js",
54
58
  "default": "./providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js"
@@ -70,6 +74,7 @@
70
74
  "files": [
71
75
  "/chains",
72
76
  "/connectors",
77
+ "/internal",
73
78
  "/providers",
74
79
  "/dist"
75
80
  ],
@@ -81,6 +86,7 @@
81
86
  "connectors/metaMask.ts",
82
87
  "connectors/walletConnect.ts",
83
88
  "connectors/mock/index.ts",
89
+ "internal.ts",
84
90
  "providers/alchemy.ts",
85
91
  "providers/public.ts",
86
92
  "providers/infura.ts",
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ethers = require('ethers');
6
- var rpcs = require('../../../dist/rpcs-3326627e.cjs.dev.js');
6
+ var rpcs = require('../../../dist/rpcs-d2cd65f1.cjs.dev.js');
7
7
 
8
8
  function alchemyProvider() {
9
9
  let {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ethers = require('ethers');
6
- var rpcs = require('../../../dist/rpcs-45537550.cjs.prod.js');
6
+ var rpcs = require('../../../dist/rpcs-edec227e.cjs.prod.js');
7
7
 
8
8
  function alchemyProvider() {
9
9
  let {
@@ -1,5 +1,5 @@
1
1
  import { providers } from 'ethers';
2
- import { d as defaultAlchemyApiKey } from '../../../dist/rpcs-6e1b1718.esm.js';
2
+ import { d as defaultAlchemyApiKey } from '../../../dist/rpcs-8d636858.esm.js';
3
3
 
4
4
  function alchemyProvider() {
5
5
  let {
@@ -0,0 +1,11 @@
1
+ // are you seeing an error that a default export doesn't exist but your source file has a default export?
2
+ // you should run `yarn` or `yarn preconstruct dev` if preconstruct dev isn't in your postinstall hook
3
+
4
+ // curious why you need to?
5
+ // this file exists so that you can import from the entrypoint normally
6
+ // except that it points to your source file and you don't need to run build constantly
7
+ // which means we need to re-export all of the modules from your source file
8
+ // and since export * doesn't include default exports, we need to read your source file
9
+ // to check for a default export and re-export it if it exists
10
+ // it's not ideal, but it works pretty well ¯\_(ツ)_/¯
11
+ export * from "../../../src/providers/coinbaseNode";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // this file might look strange and you might be wondering what it's for
3
+ // it's lets you import your source files by importing this entrypoint
4
+ // as you would import it if it was built with preconstruct build
5
+ // this file is slightly different to some others though
6
+ // it has a require hook which compiles your code with Babel
7
+ // this means that you don't have to set up @babel/register or anything like that
8
+ // but you can still require this module and it'll be compiled
9
+
10
+ // this bit of code imports the require hook and registers it
11
+ let unregister = require("../../../../../node_modules/.pnpm/@preconstruct+hook@0.4.0/node_modules/@preconstruct/hook").___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, "../../../../..", "../../..");
12
+
13
+ // this re-exports the source file
14
+ module.exports = require("../../../src/providers/coinbaseNode.ts");
15
+
16
+ unregister();
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ethers = require('ethers');
6
- var rpcs = require('../../../dist/rpcs-3326627e.cjs.dev.js');
6
+ var rpcs = require('../../../dist/rpcs-d2cd65f1.cjs.dev.js');
7
7
 
8
8
  function infuraProvider() {
9
9
  let {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ethers = require('ethers');
6
- var rpcs = require('../../../dist/rpcs-45537550.cjs.prod.js');
6
+ var rpcs = require('../../../dist/rpcs-edec227e.cjs.prod.js');
7
7
 
8
8
  function infuraProvider() {
9
9
  let {
@@ -1,5 +1,5 @@
1
1
  import { providers } from 'ethers';
2
- import { b as defaultInfuraApiKey } from '../../../dist/rpcs-6e1b1718.esm.js';
2
+ import { b as defaultInfuraApiKey } from '../../../dist/rpcs-8d636858.esm.js';
3
3
 
4
4
  function infuraProvider() {
5
5
  let {