wagmi 0.2.15 → 0.2.16

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.
package/README.md CHANGED
@@ -29,19 +29,15 @@
29
29
 
30
30
  **React Hooks library for Ethereum, built on [ethers.js](https://github.com/ethers-io/ethers.js).**
31
31
 
32
- šŸš€   20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.
32
+ ## Features
33
33
 
34
- šŸ’¼   Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet
35
-
36
- šŸŒ€   Auto-refresh data on wallet and network changes
37
-
38
- šŸ¦„   TypeScript ready
39
-
40
- šŸ’Ø   Zero-dependencies (besides ethers.js peer dependency)
41
-
42
- 🌳   Test suite and documentation
43
-
44
- šŸ“–   MIT License
34
+ - šŸš€ 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.
35
+ - šŸ’¼ Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet
36
+ - šŸŒ€ Auto-refresh data on wallet and network changes
37
+ - šŸ¦„ TypeScript ready
38
+ - šŸ’Ø Zero-dependencies (besides ethers.js peer dependency)
39
+ - 🌳 Test suite and documentation
40
+ - šŸ“– MIT License
45
41
 
46
42
  ## Documentation
47
43
 
@@ -87,13 +83,16 @@ Want to learn more? Check out the [guides](https://wagmi-xyz.vercel.app/guides/c
87
83
 
88
84
  ## Community
89
85
 
90
- Feel free to join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions) or reach out [on Twitter](https://twitter.com/awkweb)!
86
+ - Join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions)
87
+ - Follow [@awkweb](https://twitter.com/awkweb) on Twitter for project updates
88
+ - Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)
89
+ - Share [your project/organization](https://github.com/tmm/wagmi/discussions/201) that uses wagmi
91
90
 
92
91
  ## Support
93
92
 
94
93
  - awkweb.eth
95
94
  - [GitHub Sponsors](https://github.com/sponsors/tmm)
96
- - Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)
95
+ - [Gitcoin Grant](https://gitcoin.co/grants/4493/wagmi-react-hooks-library-for-ethereum)
97
96
 
98
97
  ## Thanks
99
98
 
@@ -1,17 +1,11 @@
1
1
  import { BigNumber } from 'ethers';
2
- import { Unit } from 'wagmi-core';
2
+ import { BalanceActionArgs } from 'wagmi-core';
3
3
  export declare type Config = {
4
- /** Address or ENS name */
5
- addressOrName?: string;
6
- /** Units for formatting output */
7
- formatUnits?: Unit | number;
8
4
  /** Disables fetching */
9
5
  skip?: boolean;
10
- /** ERC-20 address */
11
- token?: string;
12
6
  /** Subscribe to changes */
13
7
  watch?: boolean;
14
- };
8
+ } & Partial<BalanceActionArgs['config']>;
15
9
  export declare const useBalance: ({ addressOrName, formatUnits, skip, token, watch, }?: Config) => readonly [{
16
10
  readonly data: {
17
11
  decimals: number;
@@ -26,12 +20,7 @@ export declare const useBalance: ({ addressOrName, formatUnits, skip, token, wat
26
20
  formatUnits?: Config['formatUnits'];
27
21
  token?: Config['token'];
28
22
  } | undefined) => Promise<{
29
- data: {
30
- decimals: number;
31
- formatted: string;
32
- symbol: string;
33
- value: BigNumber;
34
- };
23
+ data: import("wagmi-core").Balance;
35
24
  error: undefined;
36
25
  } | {
37
26
  data: undefined;
@@ -755,7 +755,7 @@ var useBalance = function useBalance() {
755
755
  });
756
756
 
757
757
  try {
758
- var _config_$formatUnits;
758
+ var _connector$chains;
759
759
 
760
760
  var config_ = config !== null && config !== void 0 ? config : {
761
761
  addressOrName,
@@ -763,57 +763,29 @@ var useBalance = function useBalance() {
763
763
  token
764
764
  };
765
765
  if (!config_.addressOrName) throw new Error('address is required');
766
- var formatUnits_ = (_config_$formatUnits = config_.formatUnits) !== null && _config_$formatUnits !== void 0 ? _config_$formatUnits : 'ether';
767
766
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
768
767
  error: undefined,
769
768
  loading: true
770
769
  }));
771
- var balance;
772
-
773
- if (config_.token) {
774
- var contract = new ethers.ethers.Contract(config_.token, wagmiCore.erc20ABI, provider);
775
- var [value, decimals, symbol] = yield Promise.all([contract.balanceOf(config_.addressOrName), contract.decimals(), contract.symbol()]);
776
- balance = {
777
- decimals,
778
- formatted: ethers.utils.formatUnits(value, formatUnits_),
779
- symbol,
780
- value
781
- };
782
- } else {
783
- var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
784
-
785
- var _value = yield provider.getBalance(config_.addressOrName);
786
-
787
- var chain = [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiCore.defaultChains, ...wagmiCore.defaultL2Chains].find(x => x.id === provider.network.chainId);
788
- balance = {
789
- 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,
790
- formatted: ethers.utils.formatUnits(_value, formatUnits_),
791
- 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',
792
- value: _value
793
- };
794
- }
795
-
796
- if (!didCancel) {
797
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
798
- balance,
799
- loading: false
800
- }));
801
- }
802
-
770
+ var balance = yield wagmiCore.balanceAction({
771
+ chains: [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiCore.defaultChains, ...wagmiCore.defaultL2Chains],
772
+ config: config_,
773
+ provider
774
+ });
775
+ if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
776
+ balance,
777
+ loading: false
778
+ }));
803
779
  return {
804
780
  data: balance,
805
781
  error: undefined
806
782
  };
807
783
  } catch (error_) {
808
784
  var error = error_;
809
-
810
- if (!didCancel) {
811
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
812
- error,
813
- loading: false
814
- }));
815
- }
816
-
785
+ if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
786
+ error,
787
+ loading: false
788
+ }));
817
789
  return {
818
790
  data: undefined,
819
791
  error
@@ -755,7 +755,7 @@ var useBalance = function useBalance() {
755
755
  });
756
756
 
757
757
  try {
758
- var _config_$formatUnits;
758
+ var _connector$chains;
759
759
 
760
760
  var config_ = config !== null && config !== void 0 ? config : {
761
761
  addressOrName,
@@ -763,57 +763,29 @@ var useBalance = function useBalance() {
763
763
  token
764
764
  };
765
765
  if (!config_.addressOrName) throw new Error('address is required');
766
- var formatUnits_ = (_config_$formatUnits = config_.formatUnits) !== null && _config_$formatUnits !== void 0 ? _config_$formatUnits : 'ether';
767
766
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
768
767
  error: undefined,
769
768
  loading: true
770
769
  }));
771
- var balance;
772
-
773
- if (config_.token) {
774
- var contract = new ethers.ethers.Contract(config_.token, wagmiCore.erc20ABI, provider);
775
- var [value, decimals, symbol] = yield Promise.all([contract.balanceOf(config_.addressOrName), contract.decimals(), contract.symbol()]);
776
- balance = {
777
- decimals,
778
- formatted: ethers.utils.formatUnits(value, formatUnits_),
779
- symbol,
780
- value
781
- };
782
- } else {
783
- var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
784
-
785
- var _value = yield provider.getBalance(config_.addressOrName);
786
-
787
- var chain = [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiCore.defaultChains, ...wagmiCore.defaultL2Chains].find(x => x.id === provider.network.chainId);
788
- balance = {
789
- 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,
790
- formatted: ethers.utils.formatUnits(_value, formatUnits_),
791
- 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',
792
- value: _value
793
- };
794
- }
795
-
796
- if (!didCancel) {
797
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
798
- balance,
799
- loading: false
800
- }));
801
- }
802
-
770
+ var balance = yield wagmiCore.balanceAction({
771
+ chains: [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...wagmiCore.defaultChains, ...wagmiCore.defaultL2Chains],
772
+ config: config_,
773
+ provider
774
+ });
775
+ if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
776
+ balance,
777
+ loading: false
778
+ }));
803
779
  return {
804
780
  data: balance,
805
781
  error: undefined
806
782
  };
807
783
  } catch (error_) {
808
784
  var error = error_;
809
-
810
- if (!didCancel) {
811
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
812
- error,
813
- loading: false
814
- }));
815
- }
816
-
785
+ if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
786
+ error,
787
+ loading: false
788
+ }));
817
789
  return {
818
790
  data: undefined,
819
791
  error
package/dist/wagmi.esm.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { getDefaultProvider } from '@ethersproject/providers';
3
- import { erc20ABI, defaultChains, defaultL2Chains, ConnectorAlreadyConnectedError, allChains, SwitchChainError, ConnectorNotFoundError, UserRejectedRequestError, InjectedConnector } from 'wagmi-core';
3
+ import { balanceAction, defaultChains, defaultL2Chains, ConnectorAlreadyConnectedError, allChains, SwitchChainError, ConnectorNotFoundError, UserRejectedRequestError, erc20ABI, InjectedConnector } from 'wagmi-core';
4
4
  export { AddChainError, ChainNotConfiguredError, Connector, ConnectorAlreadyConnectedError, ConnectorNotFoundError, InjectedConnector, SwitchChainError, UserRejectedRequestError, allChains, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId } from 'wagmi-core';
5
- import { utils, ethers, Contract } from 'ethers';
5
+ import { utils, Contract, ethers } from 'ethers';
6
6
 
7
7
  function _defineProperty(obj, key, value) {
8
8
  if (key in obj) {
@@ -732,7 +732,7 @@ var useBalance = function useBalance() {
732
732
  });
733
733
 
734
734
  try {
735
- var _config_$formatUnits;
735
+ var _connector$chains;
736
736
 
737
737
  var config_ = config !== null && config !== void 0 ? config : {
738
738
  addressOrName,
@@ -740,57 +740,29 @@ var useBalance = function useBalance() {
740
740
  token
741
741
  };
742
742
  if (!config_.addressOrName) throw new Error('address is required');
743
- var formatUnits_ = (_config_$formatUnits = config_.formatUnits) !== null && _config_$formatUnits !== void 0 ? _config_$formatUnits : 'ether';
744
743
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
745
744
  error: undefined,
746
745
  loading: true
747
746
  }));
748
- var balance;
749
-
750
- if (config_.token) {
751
- var contract = new ethers.Contract(config_.token, erc20ABI, provider);
752
- var [value, decimals, symbol] = yield Promise.all([contract.balanceOf(config_.addressOrName), contract.decimals(), contract.symbol()]);
753
- balance = {
754
- decimals,
755
- formatted: utils.formatUnits(value, formatUnits_),
756
- symbol,
757
- value
758
- };
759
- } else {
760
- var _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
761
-
762
- var _value = yield provider.getBalance(config_.addressOrName);
763
-
764
- 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);
765
- balance = {
766
- 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,
767
- formatted: utils.formatUnits(_value, formatUnits_),
768
- 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',
769
- value: _value
770
- };
771
- }
772
-
773
- if (!didCancel) {
774
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
775
- balance,
776
- loading: false
777
- }));
778
- }
779
-
747
+ var balance = yield balanceAction({
748
+ chains: [...((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), ...defaultChains, ...defaultL2Chains],
749
+ config: config_,
750
+ provider
751
+ });
752
+ if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
753
+ balance,
754
+ loading: false
755
+ }));
780
756
  return {
781
757
  data: balance,
782
758
  error: undefined
783
759
  };
784
760
  } catch (error_) {
785
761
  var error = error_;
786
-
787
- if (!didCancel) {
788
- setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
789
- error,
790
- loading: false
791
- }));
792
- }
793
-
762
+ if (!didCancel) setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
763
+ error,
764
+ loading: false
765
+ }));
794
766
  return {
795
767
  data: undefined,
796
768
  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.15",
5
+ "version": "0.2.16",
6
6
  "ethereum": "awkweb.eth",
7
7
  "repository": "tmm/wagmi",
8
8
  "homepage": "https://wagmi-xyz.vercel.app",
@@ -47,17 +47,17 @@
47
47
  "dependencies": {
48
48
  "@ethersproject/providers": "^5.5.1",
49
49
  "@walletconnect/ethereum-provider": "1.7.1",
50
- "wagmi-core": "0.1.11",
50
+ "wagmi-core": "0.1.12",
51
51
  "walletlink": "^2.2.8"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@testing-library/react-hooks": "^7.0.2",
55
55
  "@types/react": "^17.0.0",
56
- "wagmi-testing": "0.1.11",
56
+ "wagmi-testing": "0.1.12",
57
57
  "@walletconnect/ethereum-provider": "1.7.1",
58
58
  "ethers": "^5.5.1",
59
59
  "react": "^17.0.0",
60
60
  "walletlink": "^2.2.8"
61
61
  },
62
- "readme": "<p>\n <a aria-label=\"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 <a aria-label=\"Downloads\" href=\"https://www.npmjs.com/package/wagmi\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/dm/wagmi.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\nnpm 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"
62
+ "readme": "<p>\n <a aria-label=\"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 <a aria-label=\"Downloads\" href=\"https://www.npmjs.com/package/wagmi\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/dm/wagmi.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## Features\n\n- šŸš€ 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.\n- šŸ’¼ Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet\n- šŸŒ€ Auto-refresh data on wallet and network changes\n- šŸ¦„ TypeScript ready\n- šŸ’Ø Zero-dependencies (besides ethers.js peer dependency)\n- 🌳 Test suite and documentation\n- šŸ“– 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\nnpm 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\n- Join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions)\n- Follow [@awkweb](https://twitter.com/awkweb) on Twitter for project updates\n- Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)\n- Share [your project/organization](https://github.com/tmm/wagmi/discussions/201) that uses wagmi\n\n## Support\n\n- awkweb.eth\n- [GitHub Sponsors](https://github.com/sponsors/tmm)\n- [Gitcoin Grant](https://gitcoin.co/grants/4493/wagmi-react-hooks-library-for-ethereum)\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
  }