@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
@@ -1,6 +1,6 @@
1
- import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-7c370e43.esm.js';
2
- import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-b052e615.esm.js';
3
- export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-b052e615.esm.js';
1
+ import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-271594d5.esm.js';
2
+ import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-d3f58b0e.esm.js';
3
+ export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-d3f58b0e.esm.js';
4
4
  import { providers, getDefaultProvider } from 'ethers';
5
5
  import create from 'zustand/vanilla';
6
6
  import { subscribeWithSelector, persist } from 'zustand/middleware';
@@ -16,13 +16,22 @@ const erc721ABI = ['event Approval(address indexed _owner, address indexed _appr
16
16
  // https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
17
17
  const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
18
18
 
19
+ const injectedProvidersLookup = {
20
+ isMetaMask: 'MetaMask',
21
+ // Place other options below in alphabetical order
22
+ isBraveWallet: 'Brave Wallet',
23
+ isCoinbaseWallet: 'Coinbase Wallet',
24
+ isFrame: 'Frame',
25
+ isTally: 'Tally'
26
+ };
27
+ const injectedOptions = Object.entries(injectedProvidersLookup);
19
28
  function getInjectedName(ethereum) {
20
29
  if (!ethereum) return 'Injected';
21
- if (ethereum.isMetaMask) return 'MetaMask';
22
- if (ethereum.isBraveWallet) return 'Brave Wallet';
23
- if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet';
24
- if (ethereum.isFrame) return 'Frame';
25
- if (ethereum.isTally) return 'Tally';
30
+
31
+ for (const [key, val] of injectedOptions) {
32
+ if (ethereum[key]) return val;
33
+ }
34
+
26
35
  return 'Injected';
27
36
  }
28
37
 
@@ -68,10 +77,10 @@ class InjectedConnector extends Connector {
68
77
  });
69
78
 
70
79
  _defineProperty(this, "onDisconnect", () => {
71
- var _this$options, _client$storage;
80
+ var _this$options, _getClient$storage;
72
81
 
73
82
  this.emit('disconnect');
74
- 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);
83
+ 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);
75
84
  });
76
85
 
77
86
  let name = 'Injected';
@@ -81,7 +90,7 @@ class InjectedConnector extends Connector {
81
90
 
82
91
  async connect() {
83
92
  try {
84
- var _this$options2, _client$storage2;
93
+ var _this$options2, _getClient$storage2;
85
94
 
86
95
  const provider = await this.getProvider();
87
96
  if (!provider) throw new ConnectorNotFoundError();
@@ -98,7 +107,7 @@ class InjectedConnector extends Connector {
98
107
  const account = await this.getAccount();
99
108
  const id = await this.getChainId();
100
109
  const unsupported = this.isChainUnsupported(id);
101
- 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);
110
+ 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);
102
111
  return {
103
112
  account,
104
113
  chain: {
@@ -114,14 +123,14 @@ class InjectedConnector extends Connector {
114
123
  }
115
124
 
116
125
  async disconnect() {
117
- var _this$options3, _client$storage3;
126
+ var _this$options3, _getClient$storage3;
118
127
 
119
128
  const provider = await this.getProvider();
120
129
  if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
121
130
  provider.removeListener('accountsChanged', this.onAccountsChanged);
122
131
  provider.removeListener('chainChanged', this.onChainChanged);
123
132
  provider.removeListener('disconnect', this.onDisconnect);
124
- 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);
133
+ 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);
125
134
  }
126
135
 
127
136
  async getAccount() {
@@ -154,9 +163,9 @@ class InjectedConnector extends Connector {
154
163
 
155
164
  async isAuthorized() {
156
165
  try {
157
- var _this$options4, _client$storage4;
166
+ var _this$options4, _getClient$storage4;
158
167
 
159
- 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;
168
+ 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;
160
169
  const provider = await this.getProvider();
161
170
  if (!provider) throw new ConnectorNotFoundError();
162
171
  const accounts = await provider.request({
@@ -570,22 +579,50 @@ async function connect(_ref) {
570
579
  }
571
580
 
572
581
  async function disconnect() {
582
+ const client = getClient();
573
583
  if (client.connector) await client.connector.disconnect();
574
584
  client.clearState();
575
585
  client.storage.removeItem('connected');
576
586
  }
577
587
 
588
+ function getProvider() {
589
+ let {
590
+ chainId
591
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
592
+ const client = getClient();
593
+ if (chainId && typeof client.config.provider === 'function') return client.config.provider({
594
+ chainId
595
+ });
596
+ return client.provider;
597
+ }
598
+
599
+ function getWebSocketProvider() {
600
+ let {
601
+ chainId
602
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
603
+ const client = getClient();
604
+ if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
605
+ chainId
606
+ });
607
+ return client.webSocketProvider;
608
+ }
609
+
578
610
  async function fetchBalance(_ref) {
579
611
  var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
580
612
 
581
613
  let {
582
614
  addressOrName,
615
+ chainId,
583
616
  formatUnits: unit = 'ether',
584
617
  token
585
618
  } = _ref;
619
+ const client = getClient();
620
+ const provider = getProvider({
621
+ chainId
622
+ });
586
623
 
587
624
  if (token) {
588
- const contract = new Contract(token, erc20ABI, client.provider);
625
+ const contract = new Contract(token, erc20ABI, provider);
589
626
  const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
590
627
  return {
591
628
  decimals,
@@ -597,8 +634,8 @@ async function fetchBalance(_ref) {
597
634
  }
598
635
 
599
636
  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 : []), ...allChains];
600
- const value = await client.provider.getBalance(addressOrName);
601
- const chain = chains.find(x => x.id === client.provider.network.chainId);
637
+ const value = await provider.getBalance(addressOrName);
638
+ const chain = chains.find(x => x.id === provider.network.chainId);
602
639
  return {
603
640
  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,
604
641
  formatted: formatUnits(value, unit),
@@ -611,7 +648,8 @@ async function fetchBalance(_ref) {
611
648
  async function fetchSigner() {
612
649
  var _client$connector, _client$connector$get;
613
650
 
614
- 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));
651
+ const client = getClient();
652
+ 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;
615
653
  return signer;
616
654
  }
617
655
 
@@ -619,7 +657,7 @@ function getAccount() {
619
657
  const {
620
658
  data,
621
659
  connector
622
- } = client;
660
+ } = getClient();
623
661
  return {
624
662
  address: data === null || data === void 0 ? void 0 : data.account,
625
663
  connector
@@ -627,15 +665,11 @@ function getAccount() {
627
665
  }
628
666
 
629
667
  function getNetwork() {
630
- var _data$chain, _data$chain2, _find;
668
+ var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
631
669
 
632
- const {
633
- chains,
634
- data
635
- } = client;
636
- const chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
637
- const unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
638
- const activeChains = chains !== null && chains !== void 0 ? chains : [];
670
+ const client = getClient();
671
+ 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;
672
+ const activeChains = (_client$chains = client.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
639
673
  const activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
640
674
  id: chainId,
641
675
  name: "Chain ".concat(chainId),
@@ -645,8 +679,8 @@ function getNetwork() {
645
679
  };
646
680
  return {
647
681
  chain: chainId ? { ...activeChain,
648
- id: chainId,
649
- unsupported
682
+ ...((_client$data2 = client.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
683
+ id: chainId
650
684
  } : undefined,
651
685
  chains: activeChains
652
686
  };
@@ -683,12 +717,15 @@ async function switchNetwork(_ref) {
683
717
  let {
684
718
  chainId
685
719
  } = _ref;
720
+ const client = getClient();
686
721
  if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new SwitchChainNotSupportedError();
687
722
  const chain = await client.connector.switchChain(chainId);
688
723
  return chain;
689
724
  }
690
725
 
691
726
  function watchAccount(callback) {
727
+ const client = getClient();
728
+
692
729
  const handleChange = () => callback(getAccount());
693
730
 
694
731
  const unsubscribe = client.subscribe(_ref => {
@@ -707,6 +744,8 @@ function watchAccount(callback) {
707
744
  }
708
745
 
709
746
  function watchBalance(args, callback) {
747
+ const client = getClient();
748
+
710
749
  const handleChange = async () => callback(await fetchBalance(args));
711
750
 
712
751
  const unsubscribe = client.subscribe(_ref => {
@@ -726,6 +765,8 @@ function watchBalance(args, callback) {
726
765
  }
727
766
 
728
767
  function watchNetwork(callback) {
768
+ const client = getClient();
769
+
729
770
  const handleChange = () => callback(getNetwork());
730
771
 
731
772
  const unsubscribe = client.subscribe(_ref => {
@@ -746,6 +787,8 @@ function watchNetwork(callback) {
746
787
  }
747
788
 
748
789
  function watchSigner(callback) {
790
+ const client = getClient();
791
+
749
792
  const handleChange = async () => callback(await fetchSigner());
750
793
 
751
794
  const unsubscribe = client.subscribe(_ref => {
@@ -778,17 +821,20 @@ function getContract(_ref) {
778
821
  async function readContract(contractConfig, functionName) {
779
822
  let {
780
823
  args,
824
+ chainId,
781
825
  overrides
782
826
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
783
- const {
784
- provider
785
- } = client;
827
+ const provider = getProvider({
828
+ chainId
829
+ });
786
830
  const contract = getContract({
787
831
  signerOrProvider: provider,
788
832
  ...contractConfig
789
833
  });
790
834
  const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
791
- const response = await contract[functionName](...params);
835
+ const contractFunction = contract[functionName];
836
+ if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
837
+ const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
792
838
  return response;
793
839
  }
794
840
 
@@ -798,6 +844,7 @@ contractArgs,
798
844
  /** Event name to listen to */
799
845
  eventName, callback) {
800
846
  let {
847
+ chainId,
801
848
  once
802
849
  } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
803
850
  let contract;
@@ -810,13 +857,18 @@ eventName, callback) {
810
857
  }
811
858
 
812
859
  contract = getContract({
813
- signerOrProvider: client.webSocketProvider || client.provider,
860
+ signerOrProvider: getWebSocketProvider({
861
+ chainId
862
+ }) || getProvider({
863
+ chainId
864
+ }),
814
865
  ...contractArgs
815
866
  });
816
867
  if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
817
868
  };
818
869
 
819
870
  watchEvent();
871
+ const client = getClient();
820
872
  const unsubscribe = client.subscribe(_ref => {
821
873
  let {
822
874
  provider,
@@ -838,33 +890,34 @@ eventName, callback) {
838
890
  }
839
891
 
840
892
  async function fetchBlockNumber() {
841
- const blockNumber = await client.provider.getBlockNumber();
893
+ let {
894
+ chainId
895
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
896
+ const provider = getProvider({
897
+ chainId
898
+ });
899
+ const blockNumber = await provider.getBlockNumber();
842
900
  return blockNumber;
843
901
  }
844
902
 
845
903
  function watchBlockNumber(args, callback) {
904
+ var _client$webSocketProv;
905
+
846
906
  let prevProvider;
847
907
 
848
908
  const createListener = provider => {
849
- const listener = blockNumber => {
850
- callback(blockNumber);
851
- };
852
-
853
909
  if (prevProvider) {
854
910
  var _prevProvider;
855
911
 
856
- (_prevProvider = prevProvider) === null || _prevProvider === void 0 ? void 0 : _prevProvider.off('block', listener);
912
+ (_prevProvider = prevProvider) === null || _prevProvider === void 0 ? void 0 : _prevProvider.off('block', callback);
857
913
  }
858
914
 
859
- provider.on('block', listener);
915
+ provider.on('block', callback);
860
916
  prevProvider = provider;
861
917
  };
862
918
 
863
- const {
864
- provider,
865
- webSocketProvider
866
- } = client;
867
- const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
919
+ const client = getClient();
920
+ const provider_ = (_client$webSocketProv = client.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client.provider;
868
921
  if (args.listen) createListener(provider_);
869
922
  const unsubscribe = client.subscribe(_ref => {
870
923
  let {
@@ -890,7 +943,10 @@ function watchBlockNumber(args, callback) {
890
943
  }, {
891
944
  equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
892
945
  });
893
- return unsubscribe;
946
+ return () => {
947
+ unsubscribe();
948
+ provider_ === null || provider_ === void 0 ? void 0 : provider_.off('block', callback);
949
+ };
894
950
  }
895
951
 
896
952
  function watchReadContract(contractConfig, functionName) {
@@ -898,6 +954,7 @@ function watchReadContract(contractConfig, functionName) {
898
954
 
899
955
  let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
900
956
  let callback = arguments.length > 3 ? arguments[3] : undefined;
957
+ const client = getClient();
901
958
 
902
959
  const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
903
960
 
@@ -921,17 +978,17 @@ async function writeContract(contractConfig, functionName) {
921
978
  args,
922
979
  overrides
923
980
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
924
- const {
925
- connector
926
- } = client;
927
- const contract = getContract(contractConfig);
928
- if (!connector) throw new ConnectorNotFoundError();
981
+ const client = getClient();
982
+ if (!client.connector) throw new ConnectorNotFoundError();
929
983
  const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
930
984
 
931
985
  try {
932
- const signer = await connector.getSigner();
933
- const contract_ = contract.connect(signer);
934
- const response = await contract_[functionName](...params);
986
+ const signer = await client.connector.getSigner();
987
+ const contract = getContract(contractConfig);
988
+ const contractWithSigner = contract.connect(signer);
989
+ const contractFunction = contractWithSigner[functionName];
990
+ if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
991
+ const response = await contractFunction(...params);
935
992
  return response;
936
993
  } catch (error_) {
937
994
  let error = error_;
@@ -942,9 +999,13 @@ async function writeContract(contractConfig, functionName) {
942
999
 
943
1000
  async function fetchEnsAddress(_ref) {
944
1001
  let {
1002
+ chainId,
945
1003
  name
946
1004
  } = _ref;
947
- const address = await client.provider.resolveName(name);
1005
+ const provider = getProvider({
1006
+ chainId
1007
+ });
1008
+ const address = await provider.resolveName(name);
948
1009
 
949
1010
  try {
950
1011
  return address ? getAddress(address) : null;
@@ -955,31 +1016,45 @@ async function fetchEnsAddress(_ref) {
955
1016
 
956
1017
  async function fetchEnsAvatar(_ref) {
957
1018
  let {
958
- addressOrName
1019
+ addressOrName,
1020
+ chainId
959
1021
  } = _ref;
960
- // TODO: Update with more advanced logic
1022
+ const provider = getProvider({
1023
+ chainId
1024
+ }); // TODO: Update with more advanced logic
961
1025
  // https://github.com/ensdomains/ens-avatar
962
- const avatar = await client.provider.getAvatar(addressOrName);
1026
+
1027
+ const avatar = await provider.getAvatar(addressOrName);
963
1028
  return avatar;
964
1029
  }
965
1030
 
966
1031
  async function fetchEnsName(_ref) {
967
1032
  let {
968
- address
1033
+ address,
1034
+ chainId
969
1035
  } = _ref;
970
- const ensName = await client.provider.lookupAddress(address);
1036
+ const provider = getProvider({
1037
+ chainId
1038
+ });
1039
+ const ensName = await provider.lookupAddress(address);
971
1040
  return ensName;
972
1041
  }
973
1042
 
974
1043
  async function fetchEnsResolver(_ref) {
975
1044
  let {
1045
+ chainId,
976
1046
  name
977
1047
  } = _ref;
978
- const resolver = await client.provider.getResolver(name);
1048
+ const provider = getProvider({
1049
+ chainId
1050
+ });
1051
+ const resolver = await provider.getResolver(name);
979
1052
  return resolver;
980
1053
  }
981
1054
 
982
1055
  function watchEnsAddress(args, callback) {
1056
+ const client = getClient();
1057
+
983
1058
  const handleChange = async () => callback(await fetchEnsAddress(args));
984
1059
 
985
1060
  const unsubscribe = client.subscribe(_ref => {
@@ -992,6 +1067,8 @@ function watchEnsAddress(args, callback) {
992
1067
  }
993
1068
 
994
1069
  function watchEnsAvatar(args, callback) {
1070
+ const client = getClient();
1071
+
995
1072
  const handleChange = async () => callback(await fetchEnsAvatar(args));
996
1073
 
997
1074
  const unsubscribe = client.subscribe(_ref => {
@@ -1004,6 +1081,8 @@ function watchEnsAvatar(args, callback) {
1004
1081
  }
1005
1082
 
1006
1083
  function watchEnsName(args, callback) {
1084
+ const client = getClient();
1085
+
1007
1086
  const handleChange = async () => callback(await fetchEnsName(args));
1008
1087
 
1009
1088
  const unsubscribe = client.subscribe(_ref => {
@@ -1016,6 +1095,8 @@ function watchEnsName(args, callback) {
1016
1095
  }
1017
1096
 
1018
1097
  function watchEnsResolver(args, callback) {
1098
+ const client = getClient();
1099
+
1019
1100
  const handleChange = async () => callback(await fetchEnsResolver(args));
1020
1101
 
1021
1102
  const unsubscribe = client.subscribe(_ref => {
@@ -1029,9 +1110,13 @@ function watchEnsResolver(args, callback) {
1029
1110
 
1030
1111
  async function fetchFeeData() {
1031
1112
  let {
1113
+ chainId,
1032
1114
  formatUnits: units = 'wei'
1033
1115
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1034
- const feeData = await client.provider.getFeeData();
1116
+ const provider = getProvider({
1117
+ chainId
1118
+ });
1119
+ const feeData = await provider.getFeeData();
1035
1120
  const formatted = {
1036
1121
  gasPrice: formatUnits(feeData.gasPrice, units),
1037
1122
  maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
@@ -1043,6 +1128,8 @@ async function fetchFeeData() {
1043
1128
  }
1044
1129
 
1045
1130
  function watchFeeData(args, callback) {
1131
+ const client = getClient();
1132
+
1046
1133
  const handleChange = async () => callback(await fetchFeeData(args));
1047
1134
 
1048
1135
  const unwatch = args.listenToBlock ? watchBlockNumber({
@@ -1060,23 +1147,15 @@ function watchFeeData(args, callback) {
1060
1147
  };
1061
1148
  }
1062
1149
 
1063
- function getProvider() {
1064
- return getClient().provider;
1065
- }
1066
-
1067
- function getWebSocketProvider() {
1068
- return getClient().webSocketProvider;
1069
- }
1070
-
1071
1150
  async function fetchToken(_ref) {
1072
1151
  let {
1073
1152
  address,
1153
+ chainId,
1074
1154
  formatUnits: units = 'ether'
1075
1155
  } = _ref;
1076
- if (!address) throw new Error('address is required');
1077
- const {
1078
- provider
1079
- } = client;
1156
+ const provider = getProvider({
1157
+ chainId
1158
+ });
1080
1159
  const contract = new Contract(address, erc20ABI, provider);
1081
1160
  const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
1082
1161
  const token = {
@@ -1092,6 +1171,8 @@ async function fetchToken(_ref) {
1092
1171
  }
1093
1172
 
1094
1173
  function watchToken(args, callback) {
1174
+ const client = getClient();
1175
+
1095
1176
  const handleChange = async () => callback(await fetchToken(args));
1096
1177
 
1097
1178
  const unsubscribe = client.subscribe(_ref => {
@@ -1117,9 +1198,7 @@ async function sendTransaction(args) {
1117
1198
  }
1118
1199
 
1119
1200
  async function waitForTransaction(args) {
1120
- const {
1121
- provider
1122
- } = client;
1201
+ const provider = getProvider();
1123
1202
  let promise; // eslint-disable-next-line testing-library/await-async-utils
1124
1203
 
1125
1204
  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');
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@wagmi/core",
3
- "description": "Vanilla JS Client for Ethereum",
4
- "license": "MIT",
5
- "version": "0.2.0-next.11",
3
+ "description": "Vanilla JS library for Ethereum",
4
+ "license": "WAGMIT",
5
+ "version": "0.2.0-next.14",
6
+ "author": "awkweb.eth",
6
7
  "ethereum": "awkweb.eth",
7
8
  "repository": "tmm/wagmi",
8
9
  "sideEffects": false,
@@ -62,5 +63,12 @@
62
63
  "@coinbase/wallet-sdk": "^3.0.1",
63
64
  "@walletconnect/ethereum-provider": "1.7.5",
64
65
  "ethers": "^5.5.1"
65
- }
66
+ },
67
+ "keywords": [
68
+ "eth",
69
+ "ethereum",
70
+ "dapps",
71
+ "wallet",
72
+ "web3"
73
+ ]
66
74
  }
@@ -1,2 +0,0 @@
1
- export declare const defaultAlchemyId = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
2
- export declare const defaultInfuraId = "84842078b09946638c03157f83405213";