@wagmi/core 0.2.0-next.11 → 0.2.0-next.14

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