wagmi 0.2.2 → 0.2.6

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.
@@ -14,6 +14,7 @@ export declare type Config = {
14
14
  };
15
15
  export declare const useBalance: ({ addressOrName, formatUnits, skip, token, watch, }?: Config) => readonly [{
16
16
  readonly data: {
17
+ decimals: number;
17
18
  formatted: string;
18
19
  symbol: string;
19
20
  value: BigNumber;
@@ -26,6 +27,7 @@ export declare const useBalance: ({ addressOrName, formatUnits, skip, token, wat
26
27
  token?: Config['token'];
27
28
  } | undefined) => Promise<{
28
29
  data: {
30
+ decimals: number;
29
31
  formatted: string;
30
32
  symbol: string;
31
33
  value: BigNumber;
@@ -1,4 +1,4 @@
1
- import { Chain } from 'wagmi-private';
1
+ import { Chain, SwitchChainError } from 'wagmi-private';
2
2
  export declare const useNetwork: () => readonly [{
3
3
  readonly data: {
4
4
  readonly chain: {
@@ -21,10 +21,10 @@ export declare const useNetwork: () => readonly [{
21
21
  };
22
22
  readonly error: Error | undefined;
23
23
  readonly loading: boolean | undefined;
24
- }, ((chainId: number) => Promise<false | {
25
- data: boolean;
26
- error: undefined;
27
- } | {
24
+ }, ((chainId: number) => Promise<{
28
25
  data: undefined;
29
- error: Error;
26
+ error: SwitchChainError;
27
+ } | {
28
+ data: Chain | undefined;
29
+ error: undefined;
30
30
  }>) | undefined];
@@ -616,21 +616,24 @@ var useBalance = function useBalance() {
616
616
  if (config_.token) {
617
617
  var contract = new ethers.ethers.Contract(config_.token, wagmiPrivate.erc20ABI, provider);
618
618
  var value = yield contract.balanceOf(config_.addressOrName);
619
+ var decimals = yield contract.decimals();
619
620
  var symbol = yield contract.symbol();
620
621
  balance = {
622
+ decimals,
621
623
  formatted: ethers.utils.formatUnits(value, formatUnits_),
622
624
  symbol,
623
625
  value
624
626
  };
625
627
  } else {
626
- var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2;
628
+ var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
627
629
 
628
630
  var _value = yield provider.getBalance(config_.addressOrName);
629
631
 
630
632
  var chain = [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiPrivate.defaultChains, ...wagmiPrivate.defaultL2Chains].find(x => x.id === provider.network.chainId);
631
633
  balance = {
634
+ 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,
632
635
  formatted: ethers.utils.formatUnits(_value, formatUnits_),
633
- symbol: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.symbol) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 'ETH',
636
+ symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
634
637
  value: _value
635
638
  };
636
639
  }
@@ -792,22 +795,25 @@ var useNetwork = () => {
792
795
  var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
793
796
  var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
794
797
  var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
795
- var activeChain = [...activeChains, ...wagmiPrivate.defaultChains, ...wagmiPrivate.defaultL2Chains].find(x => x.id === chainId);
798
+ var activeChain = [...activeChains, ...wagmiPrivate.allChains].find(x => x.id === chainId);
796
799
  var switchNetwork = React__namespace.useCallback( /*#__PURE__*/function () {
797
800
  var _ref = _asyncToGenerator(function* (chainId) {
798
- if (!(connector !== null && connector !== void 0 && connector.switchChain)) return false;
801
+ if (!(connector !== null && connector !== void 0 && connector.switchChain)) return {
802
+ data: undefined,
803
+ error: new wagmiPrivate.SwitchChainError()
804
+ };
799
805
 
800
806
  try {
801
807
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
802
808
  error: undefined,
803
809
  loading: true
804
810
  }));
805
- yield connector.switchChain(chainId);
811
+ var chain = yield connector.switchChain(chainId);
806
812
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
807
813
  loading: false
808
814
  }));
809
815
  return {
810
- data: true,
816
+ data: chain,
811
817
  error: undefined
812
818
  };
813
819
  } catch (error_) {
@@ -616,21 +616,24 @@ var useBalance = function useBalance() {
616
616
  if (config_.token) {
617
617
  var contract = new ethers.ethers.Contract(config_.token, wagmiPrivate.erc20ABI, provider);
618
618
  var value = yield contract.balanceOf(config_.addressOrName);
619
+ var decimals = yield contract.decimals();
619
620
  var symbol = yield contract.symbol();
620
621
  balance = {
622
+ decimals,
621
623
  formatted: ethers.utils.formatUnits(value, formatUnits_),
622
624
  symbol,
623
625
  value
624
626
  };
625
627
  } else {
626
- var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2;
628
+ var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
627
629
 
628
630
  var _value = yield provider.getBalance(config_.addressOrName);
629
631
 
630
632
  var chain = [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiPrivate.defaultChains, ...wagmiPrivate.defaultL2Chains].find(x => x.id === provider.network.chainId);
631
633
  balance = {
634
+ 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,
632
635
  formatted: ethers.utils.formatUnits(_value, formatUnits_),
633
- symbol: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.symbol) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 'ETH',
636
+ symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
634
637
  value: _value
635
638
  };
636
639
  }
@@ -792,22 +795,25 @@ var useNetwork = () => {
792
795
  var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
793
796
  var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
794
797
  var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
795
- var activeChain = [...activeChains, ...wagmiPrivate.defaultChains, ...wagmiPrivate.defaultL2Chains].find(x => x.id === chainId);
798
+ var activeChain = [...activeChains, ...wagmiPrivate.allChains].find(x => x.id === chainId);
796
799
  var switchNetwork = React__namespace.useCallback( /*#__PURE__*/function () {
797
800
  var _ref = _asyncToGenerator(function* (chainId) {
798
- if (!(connector !== null && connector !== void 0 && connector.switchChain)) return false;
801
+ if (!(connector !== null && connector !== void 0 && connector.switchChain)) return {
802
+ data: undefined,
803
+ error: new wagmiPrivate.SwitchChainError()
804
+ };
799
805
 
800
806
  try {
801
807
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
802
808
  error: undefined,
803
809
  loading: true
804
810
  }));
805
- yield connector.switchChain(chainId);
811
+ var chain = yield connector.switchChain(chainId);
806
812
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
807
813
  loading: false
808
814
  }));
809
815
  return {
810
- data: true,
816
+ data: chain,
811
817
  error: undefined
812
818
  };
813
819
  } catch (error_) {
package/dist/wagmi.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { getDefaultProvider } from '@ethersproject/providers';
3
- import { erc20ABI, defaultChains, defaultL2Chains, ConnectorNotFoundError, UserRejectedRequestError, InjectedConnector } from 'wagmi-private';
3
+ import { erc20ABI, defaultChains, defaultL2Chains, allChains, SwitchChainError, ConnectorNotFoundError, UserRejectedRequestError, InjectedConnector } from 'wagmi-private';
4
4
  export { Connector, InjectedConnector, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId } from 'wagmi-private';
5
5
  import { utils, ethers, Contract } from 'ethers';
6
6
 
@@ -593,21 +593,24 @@ var useBalance = function useBalance() {
593
593
  if (config_.token) {
594
594
  var contract = new ethers.Contract(config_.token, erc20ABI, provider);
595
595
  var value = yield contract.balanceOf(config_.addressOrName);
596
+ var decimals = yield contract.decimals();
596
597
  var symbol = yield contract.symbol();
597
598
  balance = {
599
+ decimals,
598
600
  formatted: utils.formatUnits(value, formatUnits_),
599
601
  symbol,
600
602
  value
601
603
  };
602
604
  } else {
603
- var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2;
605
+ var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
604
606
 
605
607
  var _value = yield provider.getBalance(config_.addressOrName);
606
608
 
607
609
  var chain = [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...defaultChains, ...defaultL2Chains].find(x => x.id === provider.network.chainId);
608
610
  balance = {
611
+ 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,
609
612
  formatted: utils.formatUnits(_value, formatUnits_),
610
- symbol: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.symbol) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 'ETH',
613
+ symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
611
614
  value: _value
612
615
  };
613
616
  }
@@ -769,22 +772,25 @@ var useNetwork = () => {
769
772
  var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
770
773
  var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
771
774
  var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
772
- var activeChain = [...activeChains, ...defaultChains, ...defaultL2Chains].find(x => x.id === chainId);
775
+ var activeChain = [...activeChains, ...allChains].find(x => x.id === chainId);
773
776
  var switchNetwork = React.useCallback( /*#__PURE__*/function () {
774
777
  var _ref = _asyncToGenerator(function* (chainId) {
775
- if (!(connector !== null && connector !== void 0 && connector.switchChain)) return false;
778
+ if (!(connector !== null && connector !== void 0 && connector.switchChain)) return {
779
+ data: undefined,
780
+ error: new SwitchChainError()
781
+ };
776
782
 
777
783
  try {
778
784
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
779
785
  error: undefined,
780
786
  loading: true
781
787
  }));
782
- yield connector.switchChain(chainId);
788
+ var chain = yield connector.switchChain(chainId);
783
789
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
784
790
  loading: false
785
791
  }));
786
792
  return {
787
- data: true,
793
+ data: chain,
788
794
  error: undefined
789
795
  };
790
796
  } catch (error_) {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "wagmi",
3
3
  "description": "React Hooks library for Ethereum",
4
4
  "license": "MIT",
5
- "version": "0.2.2",
5
+ "version": "0.2.6",
6
6
  "ethereum": "awkweb.eth",
7
7
  "repository": "tmm/wagmi",
8
8
  "homepage": "https://wagmi-xyz.vercel.app",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@ethersproject/providers": "^5.5.1",
49
49
  "@walletconnect/ethereum-provider": "1.7.1",
50
- "wagmi-private": "0.1.4",
50
+ "wagmi-private": "0.1.7",
51
51
  "walletlink": "^2.2.8"
52
52
  },
53
53
  "devDependencies": {
@@ -57,7 +57,7 @@
57
57
  "ethers": "^5.5.1",
58
58
  "react": "^17.0.0",
59
59
  "walletlink": "^2.2.8",
60
- "wagmi-testing": "0.1.4"
60
+ "wagmi-testing": "0.1.7"
61
61
  },
62
62
  "readme": "<p>\n <a aria-label=\"NPM version\" href=\"https://www.npmjs.com/package/wagmi\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/v/wagmi.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n <a aria-label=\"License\" href=\"/LICENSE\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/l/wagmi.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n <a aria-label=\"Sponsors\" href=\"https://github.com/sponsors/tmm\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/github/sponsors/tmm.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n</p>\n\n# wagmi\n\n**React Hooks library for Ethereum, built on [ethers.js](https://github.com/ethers-io/ethers.js).**\n\nšŸš€ &nbsp; 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.\n\nšŸ’¼ &nbsp; Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet\n\nšŸŒ€ &nbsp; Auto-refresh data on wallet and network changes\n\nšŸ¦„ &nbsp; TypeScript ready\n\nšŸ’Ø &nbsp; Zero-dependencies (besides ethers.js peer dependency)\n\n🌳 &nbsp; Test suite and documentation\n\nšŸ“– &nbsp; MIT License\n\n## Documentation\n\nVisit https://wagmi-xyz.vercel.app to view the full documentation.\n\n## Usage\n\n1. Install the dependencies.\n\n```bash\npnpm add wagmi ethers\n```\n\n2. Wrap your app with the `Provider` component.\n\n```tsx\nimport { Provider } from 'wagmi'\n\nconst App = () => (\n <Provider>\n <YourRoutes />\n </Provider>\n)\n```\n\n3. Use hooks.\n\n```tsx\nimport { useAccount } from 'wagmi'\n\nconst Page = () => {\n const [{ data, error, loading }, disconnect] = useAccount({\n fetchEns: true,\n })\n\n return ...\n}\n```\n\nEvery component inside the `Provider` is set up with the default `InjectedConnector` for connecting wallets and ethers.js [Default Provider](https://docs.ethers.io/v5/api/providers/#providers-getDefaultProvider) for fetching data.\n\nWant to learn more? Check out the [guides](https://wagmi-xyz.vercel.app/guides/connect-wallet) or browse the [API docs](https://wagmi-xyz.vercel.app/docs/provider).\n\n## Community\n\nFeel free to join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions) or reach out [on Twitter](https://twitter.com/awkweb)!\n\n## Support\n\n- awkweb.eth\n- [GitHub Sponsors](https://github.com/sponsors/tmm)\n- Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)\n\n## Thanks\n\n- [ricmoo.eth](https://twitter.com/ricmoo) for creating and continued work on [ethers.js](https://github.com/ethers-io/ethers.js)\n- [Mirror](https://mirror.xyz) for creating space to do good work\n\n## License\n\nMIT.\n\n<br />\n\nwagmi\n"
63
63
  }