@wagmi/core 0.2.0-next.10 → 0.2.0-next.13

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 (45) hide show
  1. package/LICENSE +1 -1
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +1 -1
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +1 -1
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +1 -1
  5. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +2 -2
  6. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +2 -2
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +2 -2
  8. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +2 -2
  9. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +2 -2
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +2 -2
  11. package/dist/{base-85d1eb89.cjs.dev.js → base-83fd83c6.cjs.dev.js} +3 -3
  12. package/dist/{base-d3563329.cjs.prod.js → base-9b2942ee.cjs.prod.js} +3 -3
  13. package/dist/{base-37097073.esm.js → base-b052e615.esm.js} +3 -3
  14. package/dist/{classPrivateMethodGet-3f47cf74.cjs.dev.js → classPrivateMethodGet-45a38143.cjs.dev.js} +1 -1
  15. package/dist/{classPrivateMethodGet-b3ba7c1d.esm.js → classPrivateMethodGet-7c370e43.esm.js} +1 -1
  16. package/dist/{classPrivateMethodGet-a763c0df.cjs.prod.js → classPrivateMethodGet-a1e1a4aa.cjs.prod.js} +1 -1
  17. package/dist/declarations/src/actions/accounts/connect.d.ts +1 -1
  18. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +3 -1
  19. package/dist/declarations/src/actions/accounts/getAccount.d.ts +1 -1
  20. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +1 -1
  21. package/dist/declarations/src/actions/contracts/readContract.d.ts +4 -1
  22. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -1
  23. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +3 -1
  24. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +3 -1
  25. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +3 -1
  26. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +3 -1
  27. package/dist/declarations/src/actions/index.d.ts +2 -2
  28. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +4 -1
  29. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +3 -1
  30. package/dist/declarations/src/actions/network-status/index.d.ts +1 -1
  31. package/dist/declarations/src/actions/providers/getProvider.d.ts +5 -1
  32. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +5 -1
  33. package/dist/declarations/src/actions/providers/index.d.ts +2 -2
  34. package/dist/declarations/src/actions/providers/watchProvider.d.ts +1 -1
  35. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +6 -10
  36. package/dist/declarations/src/client.d.ts +2 -2
  37. package/dist/declarations/src/connectors/injected.d.ts +2 -10
  38. package/dist/declarations/src/index.d.ts +1 -1
  39. package/dist/declarations/src/types/index.d.ts +65 -1
  40. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
  41. package/dist/wagmi-core.cjs.dev.js +152 -71
  42. package/dist/wagmi-core.cjs.prod.js +152 -71
  43. package/dist/wagmi-core.esm.js +153 -72
  44. package/package.json +12 -4
  45. package/dist/declarations/src/types/declarations.d.ts +0 -52
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var classPrivateMethodGet = require('./classPrivateMethodGet-3f47cf74.cjs.dev.js');
6
- var base = require('./base-85d1eb89.cjs.dev.js');
5
+ var classPrivateMethodGet = require('./classPrivateMethodGet-45a38143.cjs.dev.js');
6
+ var base = require('./base-83fd83c6.cjs.dev.js');
7
7
  var ethers = require('ethers');
8
8
  var create = require('zustand/vanilla');
9
9
  var middleware = require('zustand/middleware');
@@ -23,12 +23,22 @@ const erc721ABI = ['event Approval(address indexed _owner, address indexed _appr
23
23
  // https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
24
24
  const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
25
25
 
26
+ const injectedProvidersLookup = {
27
+ isMetaMask: 'MetaMask',
28
+ // Place other options below in alphabetical order
29
+ isBraveWallet: 'Brave Wallet',
30
+ isCoinbaseWallet: 'Coinbase Wallet',
31
+ isFrame: 'Frame',
32
+ isTally: 'Tally'
33
+ };
34
+ const injectedOptions = Object.entries(injectedProvidersLookup);
26
35
  function getInjectedName(ethereum) {
27
36
  if (!ethereum) return 'Injected';
28
- if (ethereum.isMetaMask) return 'MetaMask';
29
- if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet';
30
- if (ethereum.isFrame) return 'Frame';
31
- if (ethereum.isTally) return 'Tally';
37
+
38
+ for (const [key, val] of injectedOptions) {
39
+ if (ethereum[key]) return val;
40
+ }
41
+
32
42
  return 'Injected';
33
43
  }
34
44
 
@@ -74,10 +84,10 @@ class InjectedConnector extends base.Connector {
74
84
  });
75
85
 
76
86
  base._defineProperty(this, "onDisconnect", () => {
77
- var _this$options, _client$storage;
87
+ var _this$options, _getClient$storage;
78
88
 
79
89
  this.emit('disconnect');
80
- if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_client$storage = client.storage) === null || _client$storage === void 0 ? void 0 : _client$storage.removeItem(shimKey);
90
+ if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_getClient$storage = getClient().storage) === null || _getClient$storage === void 0 ? void 0 : _getClient$storage.removeItem(shimKey);
81
91
  });
82
92
 
83
93
  let name = 'Injected';
@@ -87,7 +97,7 @@ class InjectedConnector extends base.Connector {
87
97
 
88
98
  async connect() {
89
99
  try {
90
- var _this$options2, _client$storage2;
100
+ var _this$options2, _getClient$storage2;
91
101
 
92
102
  const provider = await this.getProvider();
93
103
  if (!provider) throw new base.ConnectorNotFoundError();
@@ -104,7 +114,7 @@ class InjectedConnector extends base.Connector {
104
114
  const account = await this.getAccount();
105
115
  const id = await this.getChainId();
106
116
  const unsupported = this.isChainUnsupported(id);
107
- if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_client$storage2 = client.storage) === null || _client$storage2 === void 0 ? void 0 : _client$storage2.setItem(shimKey, true);
117
+ if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_getClient$storage2 = getClient().storage) === null || _getClient$storage2 === void 0 ? void 0 : _getClient$storage2.setItem(shimKey, true);
108
118
  return {
109
119
  account,
110
120
  chain: {
@@ -120,14 +130,14 @@ class InjectedConnector extends base.Connector {
120
130
  }
121
131
 
122
132
  async disconnect() {
123
- var _this$options3, _client$storage3;
133
+ var _this$options3, _getClient$storage3;
124
134
 
125
135
  const provider = await this.getProvider();
126
136
  if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
127
137
  provider.removeListener('accountsChanged', this.onAccountsChanged);
128
138
  provider.removeListener('chainChanged', this.onChainChanged);
129
139
  provider.removeListener('disconnect', this.onDisconnect);
130
- if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_client$storage3 = client.storage) === null || _client$storage3 === void 0 ? void 0 : _client$storage3.removeItem(shimKey);
140
+ if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_getClient$storage3 = getClient().storage) === null || _getClient$storage3 === void 0 ? void 0 : _getClient$storage3.removeItem(shimKey);
131
141
  }
132
142
 
133
143
  async getAccount() {
@@ -160,9 +170,9 @@ class InjectedConnector extends base.Connector {
160
170
 
161
171
  async isAuthorized() {
162
172
  try {
163
- var _this$options4, _client$storage4;
173
+ var _this$options4, _getClient$storage4;
164
174
 
165
- if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_client$storage4 = client.storage) !== null && _client$storage4 !== void 0 && _client$storage4.getItem(shimKey))) return false;
175
+ if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(shimKey))) return false;
166
176
  const provider = await this.getProvider();
167
177
  if (!provider) throw new base.ConnectorNotFoundError();
168
178
  const accounts = await provider.request({
@@ -314,7 +324,7 @@ class Client {
314
324
  const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
315
325
  try {
316
326
  return ethers.getDefaultProvider(config.chainId);
317
- } catch (error) {
327
+ } catch {
318
328
  return ethers.getDefaultProvider();
319
329
  }
320
330
  };
@@ -576,22 +586,50 @@ async function connect(_ref) {
576
586
  }
577
587
 
578
588
  async function disconnect() {
589
+ const client = getClient();
579
590
  if (client.connector) await client.connector.disconnect();
580
591
  client.clearState();
581
592
  client.storage.removeItem('connected');
582
593
  }
583
594
 
595
+ function getProvider() {
596
+ let {
597
+ chainId
598
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
599
+ const client = getClient();
600
+ if (chainId && typeof client.config.provider === 'function') return client.config.provider({
601
+ chainId
602
+ });
603
+ return client.provider;
604
+ }
605
+
606
+ function getWebSocketProvider() {
607
+ let {
608
+ chainId
609
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
610
+ const client = getClient();
611
+ if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
612
+ chainId
613
+ });
614
+ return client.webSocketProvider;
615
+ }
616
+
584
617
  async function fetchBalance(_ref) {
585
618
  var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
586
619
 
587
620
  let {
588
621
  addressOrName,
622
+ chainId,
589
623
  formatUnits: unit = 'ether',
590
624
  token
591
625
  } = _ref;
626
+ const client = getClient();
627
+ const provider = getProvider({
628
+ chainId
629
+ });
592
630
 
593
631
  if (token) {
594
- const contract = new ethers$1.Contract(token, erc20ABI, client.provider);
632
+ const contract = new ethers$1.Contract(token, erc20ABI, provider);
595
633
  const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
596
634
  return {
597
635
  decimals,
@@ -603,8 +641,8 @@ async function fetchBalance(_ref) {
603
641
  }
604
642
 
605
643
  const chains = [...((_client$connector$cha = (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...base.allChains];
606
- const value = await client.provider.getBalance(addressOrName);
607
- const chain = chains.find(x => x.id === client.provider.network.chainId);
644
+ const value = await provider.getBalance(addressOrName);
645
+ const chain = chains.find(x => x.id === provider.network.chainId);
608
646
  return {
609
647
  decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
610
648
  formatted: utils.formatUnits(value, unit),
@@ -617,6 +655,7 @@ async function fetchBalance(_ref) {
617
655
  async function fetchSigner() {
618
656
  var _client$connector, _client$connector$get;
619
657
 
658
+ const client = getClient();
620
659
  const signer = await ((_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector));
621
660
  return signer;
622
661
  }
@@ -625,7 +664,7 @@ function getAccount() {
625
664
  const {
626
665
  data,
627
666
  connector
628
- } = client;
667
+ } = getClient();
629
668
  return {
630
669
  address: data === null || data === void 0 ? void 0 : data.account,
631
670
  connector
@@ -633,15 +672,11 @@ function getAccount() {
633
672
  }
634
673
 
635
674
  function getNetwork() {
636
- var _data$chain, _data$chain2, _find;
675
+ var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
637
676
 
638
- const {
639
- chains,
640
- data
641
- } = client;
642
- const chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
643
- const unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
644
- const activeChains = chains !== null && chains !== void 0 ? chains : [];
677
+ const client = getClient();
678
+ const chainId = (_client$data = client.data) === null || _client$data === void 0 ? void 0 : (_client$data$chain = _client$data.chain) === null || _client$data$chain === void 0 ? void 0 : _client$data$chain.id;
679
+ const activeChains = (_client$chains = client.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
645
680
  const activeChain = (_find = [...activeChains, ...base.allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
646
681
  id: chainId,
647
682
  name: "Chain ".concat(chainId),
@@ -651,8 +686,8 @@ function getNetwork() {
651
686
  };
652
687
  return {
653
688
  chain: chainId ? { ...activeChain,
654
- id: chainId,
655
- unsupported
689
+ ...((_client$data2 = client.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
690
+ id: chainId
656
691
  } : undefined,
657
692
  chains: activeChains
658
693
  };
@@ -689,12 +724,15 @@ async function switchNetwork(_ref) {
689
724
  let {
690
725
  chainId
691
726
  } = _ref;
727
+ const client = getClient();
692
728
  if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new base.SwitchChainNotSupportedError();
693
729
  const chain = await client.connector.switchChain(chainId);
694
730
  return chain;
695
731
  }
696
732
 
697
733
  function watchAccount(callback) {
734
+ const client = getClient();
735
+
698
736
  const handleChange = () => callback(getAccount());
699
737
 
700
738
  const unsubscribe = client.subscribe(_ref => {
@@ -713,6 +751,8 @@ function watchAccount(callback) {
713
751
  }
714
752
 
715
753
  function watchBalance(args, callback) {
754
+ const client = getClient();
755
+
716
756
  const handleChange = async () => callback(await fetchBalance(args));
717
757
 
718
758
  const unsubscribe = client.subscribe(_ref => {
@@ -732,6 +772,8 @@ function watchBalance(args, callback) {
732
772
  }
733
773
 
734
774
  function watchNetwork(callback) {
775
+ const client = getClient();
776
+
735
777
  const handleChange = () => callback(getNetwork());
736
778
 
737
779
  const unsubscribe = client.subscribe(_ref => {
@@ -752,6 +794,8 @@ function watchNetwork(callback) {
752
794
  }
753
795
 
754
796
  function watchSigner(callback) {
797
+ const client = getClient();
798
+
755
799
  const handleChange = async () => callback(await fetchSigner());
756
800
 
757
801
  const unsubscribe = client.subscribe(_ref => {
@@ -784,17 +828,20 @@ function getContract(_ref) {
784
828
  async function readContract(contractConfig, functionName) {
785
829
  let {
786
830
  args,
831
+ chainId,
787
832
  overrides
788
833
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
789
- const {
790
- provider
791
- } = client;
834
+ const provider = getProvider({
835
+ chainId
836
+ });
792
837
  const contract = getContract({
793
838
  signerOrProvider: provider,
794
839
  ...contractConfig
795
840
  });
796
841
  const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
797
- const response = await contract[functionName](...params);
842
+ const contractFunction = contract[functionName];
843
+ if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
844
+ const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
798
845
  return response;
799
846
  }
800
847
 
@@ -804,6 +851,7 @@ contractArgs,
804
851
  /** Event name to listen to */
805
852
  eventName, callback) {
806
853
  let {
854
+ chainId,
807
855
  once
808
856
  } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
809
857
  let contract;
@@ -816,13 +864,18 @@ eventName, callback) {
816
864
  }
817
865
 
818
866
  contract = getContract({
819
- signerOrProvider: client.webSocketProvider || client.provider,
867
+ signerOrProvider: getWebSocketProvider({
868
+ chainId
869
+ }) || getProvider({
870
+ chainId
871
+ }),
820
872
  ...contractArgs
821
873
  });
822
874
  if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
823
875
  };
824
876
 
825
877
  watchEvent();
878
+ const client = getClient();
826
879
  const unsubscribe = client.subscribe(_ref => {
827
880
  let {
828
881
  provider,
@@ -844,11 +897,19 @@ eventName, callback) {
844
897
  }
845
898
 
846
899
  async function fetchBlockNumber() {
847
- const blockNumber = await client.provider.getBlockNumber();
900
+ let {
901
+ chainId
902
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
903
+ const provider = getProvider({
904
+ chainId
905
+ });
906
+ const blockNumber = await provider.getBlockNumber();
848
907
  return blockNumber;
849
908
  }
850
909
 
851
910
  function watchBlockNumber(args, callback) {
911
+ var _client$webSocketProv;
912
+
852
913
  let prevProvider;
853
914
 
854
915
  const createListener = provider => {
@@ -866,11 +927,8 @@ function watchBlockNumber(args, callback) {
866
927
  prevProvider = provider;
867
928
  };
868
929
 
869
- const {
870
- provider,
871
- webSocketProvider
872
- } = client;
873
- const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
930
+ const client = getClient();
931
+ const provider_ = (_client$webSocketProv = client.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client.provider;
874
932
  if (args.listen) createListener(provider_);
875
933
  const unsubscribe = client.subscribe(_ref => {
876
934
  let {
@@ -904,6 +962,7 @@ function watchReadContract(contractConfig, functionName) {
904
962
 
905
963
  let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
906
964
  let callback = arguments.length > 3 ? arguments[3] : undefined;
965
+ const client = getClient();
907
966
 
908
967
  const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
909
968
 
@@ -927,17 +986,17 @@ async function writeContract(contractConfig, functionName) {
927
986
  args,
928
987
  overrides
929
988
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
930
- const {
931
- connector
932
- } = client;
933
- const contract = getContract(contractConfig);
934
- if (!connector) throw new base.ConnectorNotFoundError();
989
+ const client = getClient();
990
+ if (!client.connector) throw new base.ConnectorNotFoundError();
935
991
  const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
936
992
 
937
993
  try {
938
- const signer = await connector.getSigner();
939
- const contract_ = contract.connect(signer);
940
- const response = await contract_[functionName](...params);
994
+ const signer = await client.connector.getSigner();
995
+ const contract = getContract(contractConfig);
996
+ const contractWithSigner = contract.connect(signer);
997
+ const contractFunction = contractWithSigner[functionName];
998
+ if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
999
+ const response = await contractFunction(...params);
941
1000
  return response;
942
1001
  } catch (error_) {
943
1002
  let error = error_;
@@ -948,9 +1007,13 @@ async function writeContract(contractConfig, functionName) {
948
1007
 
949
1008
  async function fetchEnsAddress(_ref) {
950
1009
  let {
1010
+ chainId,
951
1011
  name
952
1012
  } = _ref;
953
- const address = await client.provider.resolveName(name);
1013
+ const provider = getProvider({
1014
+ chainId
1015
+ });
1016
+ const address = await provider.resolveName(name);
954
1017
 
955
1018
  try {
956
1019
  return address ? utils.getAddress(address) : null;
@@ -961,31 +1024,45 @@ async function fetchEnsAddress(_ref) {
961
1024
 
962
1025
  async function fetchEnsAvatar(_ref) {
963
1026
  let {
964
- addressOrName
1027
+ addressOrName,
1028
+ chainId
965
1029
  } = _ref;
966
- // TODO: Update with more advanced logic
1030
+ const provider = getProvider({
1031
+ chainId
1032
+ }); // TODO: Update with more advanced logic
967
1033
  // https://github.com/ensdomains/ens-avatar
968
- const avatar = await client.provider.getAvatar(addressOrName);
1034
+
1035
+ const avatar = await provider.getAvatar(addressOrName);
969
1036
  return avatar;
970
1037
  }
971
1038
 
972
1039
  async function fetchEnsName(_ref) {
973
1040
  let {
974
- address
1041
+ address,
1042
+ chainId
975
1043
  } = _ref;
976
- const ensName = await client.provider.lookupAddress(address);
1044
+ const provider = getProvider({
1045
+ chainId
1046
+ });
1047
+ const ensName = await provider.lookupAddress(address);
977
1048
  return ensName;
978
1049
  }
979
1050
 
980
1051
  async function fetchEnsResolver(_ref) {
981
1052
  let {
1053
+ chainId,
982
1054
  name
983
1055
  } = _ref;
984
- const resolver = await client.provider.getResolver(name);
1056
+ const provider = getProvider({
1057
+ chainId
1058
+ });
1059
+ const resolver = await provider.getResolver(name);
985
1060
  return resolver;
986
1061
  }
987
1062
 
988
1063
  function watchEnsAddress(args, callback) {
1064
+ const client = getClient();
1065
+
989
1066
  const handleChange = async () => callback(await fetchEnsAddress(args));
990
1067
 
991
1068
  const unsubscribe = client.subscribe(_ref => {
@@ -998,6 +1075,8 @@ function watchEnsAddress(args, callback) {
998
1075
  }
999
1076
 
1000
1077
  function watchEnsAvatar(args, callback) {
1078
+ const client = getClient();
1079
+
1001
1080
  const handleChange = async () => callback(await fetchEnsAvatar(args));
1002
1081
 
1003
1082
  const unsubscribe = client.subscribe(_ref => {
@@ -1010,6 +1089,8 @@ function watchEnsAvatar(args, callback) {
1010
1089
  }
1011
1090
 
1012
1091
  function watchEnsName(args, callback) {
1092
+ const client = getClient();
1093
+
1013
1094
  const handleChange = async () => callback(await fetchEnsName(args));
1014
1095
 
1015
1096
  const unsubscribe = client.subscribe(_ref => {
@@ -1022,6 +1103,8 @@ function watchEnsName(args, callback) {
1022
1103
  }
1023
1104
 
1024
1105
  function watchEnsResolver(args, callback) {
1106
+ const client = getClient();
1107
+
1025
1108
  const handleChange = async () => callback(await fetchEnsResolver(args));
1026
1109
 
1027
1110
  const unsubscribe = client.subscribe(_ref => {
@@ -1035,9 +1118,13 @@ function watchEnsResolver(args, callback) {
1035
1118
 
1036
1119
  async function fetchFeeData() {
1037
1120
  let {
1121
+ chainId,
1038
1122
  formatUnits: units = 'wei'
1039
1123
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1040
- const feeData = await client.provider.getFeeData();
1124
+ const provider = getProvider({
1125
+ chainId
1126
+ });
1127
+ const feeData = await provider.getFeeData();
1041
1128
  const formatted = {
1042
1129
  gasPrice: utils.formatUnits(feeData.gasPrice, units),
1043
1130
  maxFeePerGas: utils.formatUnits(feeData.maxFeePerGas, units),
@@ -1049,6 +1136,8 @@ async function fetchFeeData() {
1049
1136
  }
1050
1137
 
1051
1138
  function watchFeeData(args, callback) {
1139
+ const client = getClient();
1140
+
1052
1141
  const handleChange = async () => callback(await fetchFeeData(args));
1053
1142
 
1054
1143
  const unwatch = args.listenToBlock ? watchBlockNumber({
@@ -1066,23 +1155,15 @@ function watchFeeData(args, callback) {
1066
1155
  };
1067
1156
  }
1068
1157
 
1069
- function getProvider() {
1070
- return getClient().provider;
1071
- }
1072
-
1073
- function getWebSocketProvider() {
1074
- return getClient().provider;
1075
- }
1076
-
1077
1158
  async function fetchToken(_ref) {
1078
1159
  let {
1079
1160
  address,
1161
+ chainId,
1080
1162
  formatUnits: units = 'ether'
1081
1163
  } = _ref;
1082
- if (!address) throw new Error('address is required');
1083
- const {
1084
- provider
1085
- } = client;
1164
+ const provider = getProvider({
1165
+ chainId
1166
+ });
1086
1167
  const contract = new ethers$1.Contract(address, erc20ABI, provider);
1087
1168
  const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
1088
1169
  const token = {
@@ -1098,6 +1179,8 @@ async function fetchToken(_ref) {
1098
1179
  }
1099
1180
 
1100
1181
  function watchToken(args, callback) {
1182
+ const client = getClient();
1183
+
1101
1184
  const handleChange = async () => callback(await fetchToken(args));
1102
1185
 
1103
1186
  const unsubscribe = client.subscribe(_ref => {
@@ -1123,9 +1206,7 @@ async function sendTransaction(args) {
1123
1206
  }
1124
1207
 
1125
1208
  async function waitForTransaction(args) {
1126
- const {
1127
- provider
1128
- } = client;
1209
+ const provider = getProvider();
1129
1210
  let promise; // eslint-disable-next-line testing-library/await-async-utils
1130
1211
 
1131
1212
  if (args.wait) promise = args.wait(args.confirmations);else if (args.hash) promise = provider.waitForTransaction(args.hash, args.confirmations, args.timeout);else throw new Error('hash or wait is required');