wagmi 0.0.17 → 0.1.3

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 (29) hide show
  1. package/README.md +16 -0
  2. package/connectors/injected/dist/wagmi-connectors-injected.cjs.d.ts +1 -0
  3. package/connectors/injected/dist/wagmi-connectors-injected.cjs.dev.js +12 -0
  4. package/connectors/injected/dist/wagmi-connectors-injected.cjs.js +7 -0
  5. package/connectors/injected/dist/wagmi-connectors-injected.cjs.prod.js +12 -0
  6. package/connectors/injected/dist/wagmi-connectors-injected.esm.js +1 -0
  7. package/connectors/injected/package.json +4 -0
  8. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.d.ts +1 -0
  9. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.dev.js +12 -0
  10. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.js +7 -0
  11. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.prod.js +12 -0
  12. package/connectors/walletConnect/dist/wagmi-connectors-walletConnect.esm.js +1 -0
  13. package/connectors/walletConnect/package.json +4 -0
  14. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.d.ts +1 -0
  15. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.dev.js +12 -0
  16. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.js +7 -0
  17. package/connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.prod.js +12 -0
  18. package/connectors/walletLink/dist/wagmi-connectors-walletLink.esm.js +1 -0
  19. package/connectors/walletLink/package.json +4 -0
  20. package/dist/declarations/src/connectors/injected.d.ts +1 -0
  21. package/dist/declarations/src/connectors/walletConnect.d.ts +1 -0
  22. package/dist/declarations/src/connectors/walletLink.d.ts +1 -0
  23. package/dist/declarations/src/context.d.ts +1 -1
  24. package/dist/declarations/src/hooks/accounts/useNetwork.d.ts +1 -1
  25. package/dist/declarations/src/index.d.ts +1 -1
  26. package/dist/wagmi.cjs.dev.js +16 -30
  27. package/dist/wagmi.cjs.prod.js +16 -30
  28. package/dist/wagmi.esm.js +17 -23
  29. package/package.json +22 -6
package/README.md CHANGED
@@ -11,6 +11,12 @@
11
11
  src="https://img.shields.io/npm/l/wagmi.svg?style=for-the-badge&labelColor=161c22"
12
12
  />
13
13
  </a>
14
+ <a aria-label="Sponsors" href="https://github.com/sponsors/tmm">
15
+ <img
16
+ alt=""
17
+ src="https://img.shields.io/github/sponsors/tmm.svg?style=for-the-badge&labelColor=161c22"
18
+ />
19
+ </a>
14
20
  </p>
15
21
 
16
22
  # wagmi
@@ -73,6 +79,16 @@ Every component inside the `Provider` is set up with the default `InjectedConnec
73
79
 
74
80
  Want 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).
75
81
 
82
+ ## Community
83
+
84
+ Feel free to join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions) or reach out [on Twitter](https://twitter.com/awkweb)!
85
+
86
+ ## Support
87
+
88
+ - awkweb.eth
89
+ - [GitHub Sponsors](https://github.com/sponsors/tmm)
90
+ - Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)
91
+
76
92
  ## Thanks
77
93
 
78
94
  - [ricmoo.eth](https://twitter.com/ricmoo) for creating and continued work on [ethers.js](https://github.com/ethers-io/ethers.js)
@@ -0,0 +1 @@
1
+ export * from "../../../dist/declarations/src/connectors/injected";
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var wagmiPrivate = require('wagmi-private');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, 'InjectedConnector', {
10
+ enumerable: true,
11
+ get: function () { return wagmiPrivate.InjectedConnector; }
12
+ });
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./wagmi-connectors-injected.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./wagmi-connectors-injected.cjs.dev.js");
7
+ }
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var wagmiPrivate = require('wagmi-private');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, 'InjectedConnector', {
10
+ enumerable: true,
11
+ get: function () { return wagmiPrivate.InjectedConnector; }
12
+ });
@@ -0,0 +1 @@
1
+ export { InjectedConnector } from 'wagmi-private';
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/wagmi-connectors-injected.cjs.js",
3
+ "module": "dist/wagmi-connectors-injected.esm.js"
4
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../dist/declarations/src/connectors/walletConnect";
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var walletConnect = require('wagmi-private/connectors/walletConnect');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, 'WalletConnectConnector', {
10
+ enumerable: true,
11
+ get: function () { return walletConnect.WalletConnectConnector; }
12
+ });
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./wagmi-connectors-walletConnect.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./wagmi-connectors-walletConnect.cjs.dev.js");
7
+ }
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var walletConnect = require('wagmi-private/connectors/walletConnect');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, 'WalletConnectConnector', {
10
+ enumerable: true,
11
+ get: function () { return walletConnect.WalletConnectConnector; }
12
+ });
@@ -0,0 +1 @@
1
+ export { WalletConnectConnector } from 'wagmi-private/connectors/walletConnect';
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/wagmi-connectors-walletConnect.cjs.js",
3
+ "module": "dist/wagmi-connectors-walletConnect.esm.js"
4
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../dist/declarations/src/connectors/walletLink";
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var walletLink = require('wagmi-private/connectors/walletLink');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, 'WalletLinkConnector', {
10
+ enumerable: true,
11
+ get: function () { return walletLink.WalletLinkConnector; }
12
+ });
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./wagmi-connectors-walletLink.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./wagmi-connectors-walletLink.cjs.dev.js");
7
+ }
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var walletLink = require('wagmi-private/connectors/walletLink');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, 'WalletLinkConnector', {
10
+ enumerable: true,
11
+ get: function () { return walletLink.WalletLinkConnector; }
12
+ });
@@ -0,0 +1 @@
1
+ export { WalletLinkConnector } from 'wagmi-private/connectors/walletLink';
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/wagmi-connectors-walletLink.cjs.js",
3
+ "module": "dist/wagmi-connectors-walletLink.esm.js"
4
+ }
@@ -0,0 +1 @@
1
+ export { InjectedConnector } from 'wagmi-private';
@@ -0,0 +1 @@
1
+ export { WalletConnectConnector } from 'wagmi-private/connectors/walletConnect';
@@ -0,0 +1 @@
1
+ export { WalletLinkConnector } from 'wagmi-private/connectors/walletLink';
@@ -53,7 +53,7 @@ export declare type Props = {
53
53
  webSocketProvider?: WebSocketProvider | ((config: {
54
54
  chainId?: number;
55
55
  connector?: Connector;
56
- }) => WebSocketProvider);
56
+ }) => WebSocketProvider | undefined);
57
57
  };
58
58
  export declare const Provider: ({ autoConnect, children, connectors: connectors_, connectorStorageKey, provider: provider_, webSocketProvider: webSocketProvider_, }: React.PropsWithChildren<Props>) => React.FunctionComponentElement<React.ProviderProps<ContextValue | null>>;
59
59
  export declare const useContext: () => ContextValue;
@@ -3,7 +3,7 @@ export declare const useNetwork: () => readonly [{
3
3
  readonly data: {
4
4
  readonly chain: {
5
5
  id: number;
6
- unsupported: boolean;
6
+ unsupported: boolean | undefined;
7
7
  name?: string | undefined;
8
8
  nativeCurrency?: {
9
9
  name: string;
@@ -1,5 +1,5 @@
1
1
  export { Provider, useContext } from './context';
2
2
  export type { Props as ProviderProps } from './context';
3
3
  export { useAccount, useBalance, useBlockNumber, useConnect, useContract, useContractEvent, useContractRead, useContractWrite, useEnsAvatar, useEnsLookup, useEnsResolver, useFeeData, useNetwork, useProvider, useSignMessage, useToken, useTransaction, useWaitForTransaction, useWebSocketProvider, } from './hooks';
4
- export { Connector, InjectedConnector, WalletConnectConnector, WalletLinkConnector, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId, } from 'wagmi-private';
4
+ export { Connector, InjectedConnector, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId, } from 'wagmi-private';
5
5
  export type { Chain, Data } from 'wagmi-private';
@@ -773,7 +773,7 @@ var initialState$6 = {
773
773
  loading: false
774
774
  };
775
775
  var useNetwork = () => {
776
- var _connector$chains;
776
+ var _data$chain, _data$chain2, _connector$chains;
777
777
 
778
778
  var {
779
779
  state: {
@@ -782,10 +782,10 @@ var useNetwork = () => {
782
782
  }
783
783
  } = useContext();
784
784
  var [state, setState] = React__namespace.useState(initialState$6);
785
- var chainId = data === null || data === void 0 ? void 0 : data.chainId;
785
+ var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
786
+ var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
786
787
  var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
787
788
  var activeChain = [...activeChains, ...wagmiPrivate.defaultChains, ...wagmiPrivate.defaultL2Chains].find(x => x.id === chainId);
788
- var supported = activeChains.some(x => x.id === chainId);
789
789
  var switchNetwork = React__namespace.useCallback( /*#__PURE__*/function () {
790
790
  var _ref = _asyncToGenerator(function* (chainId) {
791
791
  if (!(connector !== null && connector !== void 0 && connector.switchChain)) return false;
@@ -824,7 +824,7 @@ var useNetwork = () => {
824
824
  data: {
825
825
  chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, {
826
826
  id: chainId,
827
- unsupported: !supported
827
+ unsupported
828
828
  }) : undefined,
829
829
  chains: activeChains
830
830
  },
@@ -908,19 +908,13 @@ var useContract = _ref2 => {
908
908
  contractInterface,
909
909
  signerOrProvider
910
910
  } = _ref2;
911
- var contractRef = React__namespace.useRef(getContract({
912
- addressOrName,
913
- contractInterface,
914
- signerOrProvider
915
- }));
916
- React__namespace.useEffect(() => {
917
- contractRef.current = getContract({
911
+ return React__namespace.useMemo(() => {
912
+ return getContract({
918
913
  addressOrName,
919
914
  contractInterface,
920
915
  signerOrProvider
921
916
  });
922
917
  }, [addressOrName, contractInterface, signerOrProvider]);
923
- return contractRef.current;
924
918
  };
925
919
 
926
920
  var useContractEvent = function useContractEvent(contractConfig, eventName, listener) {
@@ -1364,7 +1358,7 @@ var useWaitForTransaction = function useWaitForTransaction() {
1364
1358
 
1365
1359
  var Context = /*#__PURE__*/React__namespace.createContext(null);
1366
1360
  var Provider = _ref => {
1367
- var _state$data2, _state$data4, _state$data6;
1361
+ var _state$data2, _state$data2$chain, _state$data4, _state$data4$chain, _state$data6, _state$data6$chain;
1368
1362
 
1369
1363
  var {
1370
1364
  autoConnect,
@@ -1379,32 +1373,32 @@ var Provider = _ref => {
1379
1373
  cacheBuster: 1
1380
1374
  });
1381
1375
  var connectors = React__namespace.useMemo(() => {
1382
- var _state$data;
1376
+ var _state$data, _state$data$chain;
1383
1377
 
1384
1378
  if (typeof connectors_ !== 'function') return connectors_;
1385
1379
  return connectors_({
1386
- chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.chainId
1380
+ chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : (_state$data$chain = _state$data.chain) === null || _state$data$chain === void 0 ? void 0 : _state$data$chain.id
1387
1381
  });
1388
- }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chainId]);
1382
+ }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : (_state$data2$chain = _state$data2.chain) === null || _state$data2$chain === void 0 ? void 0 : _state$data2$chain.id]);
1389
1383
  var provider = React__namespace.useMemo(() => {
1390
- var _state$data3;
1384
+ var _state$data3, _state$data3$chain;
1391
1385
 
1392
1386
  if (typeof provider_ !== 'function') return provider_;
1393
1387
  return provider_({
1394
- chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : _state$data3.chainId,
1388
+ chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : (_state$data3$chain = _state$data3.chain) === null || _state$data3$chain === void 0 ? void 0 : _state$data3$chain.id,
1395
1389
  connector: state.connector
1396
1390
  });
1397
- }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : _state$data4.chainId, state.connector]);
1391
+ }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : (_state$data4$chain = _state$data4.chain) === null || _state$data4$chain === void 0 ? void 0 : _state$data4$chain.id, state.connector]);
1398
1392
  var webSocketProvider = React__namespace.useMemo(() => {
1399
- var _state$data5;
1393
+ var _state$data5, _state$data5$chain;
1400
1394
 
1401
1395
  if (!webSocketProvider_) return undefined;
1402
1396
  if (typeof webSocketProvider_ !== 'function') return webSocketProvider_;
1403
1397
  return webSocketProvider_({
1404
- chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : _state$data5.chainId,
1398
+ chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : (_state$data5$chain = _state$data5.chain) === null || _state$data5$chain === void 0 ? void 0 : _state$data5$chain.id,
1405
1399
  connector: state.connector
1406
1400
  });
1407
- }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : _state$data6.chainId, state.connector]); // Attempt to connect on mount
1401
+ }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : (_state$data6$chain = _state$data6.chain) === null || _state$data6$chain === void 0 ? void 0 : _state$data6$chain.id, state.connector]); // Attempt to connect on mount
1408
1402
 
1409
1403
  /* eslint-disable react-hooks/exhaustive-deps */
1410
1404
 
@@ -1500,14 +1494,6 @@ Object.defineProperty(exports, 'InjectedConnector', {
1500
1494
  enumerable: true,
1501
1495
  get: function () { return wagmiPrivate.InjectedConnector; }
1502
1496
  });
1503
- Object.defineProperty(exports, 'WalletConnectConnector', {
1504
- enumerable: true,
1505
- get: function () { return wagmiPrivate.WalletConnectConnector; }
1506
- });
1507
- Object.defineProperty(exports, 'WalletLinkConnector', {
1508
- enumerable: true,
1509
- get: function () { return wagmiPrivate.WalletLinkConnector; }
1510
- });
1511
1497
  Object.defineProperty(exports, 'chain', {
1512
1498
  enumerable: true,
1513
1499
  get: function () { return wagmiPrivate.chain; }
@@ -773,7 +773,7 @@ var initialState$6 = {
773
773
  loading: false
774
774
  };
775
775
  var useNetwork = () => {
776
- var _connector$chains;
776
+ var _data$chain, _data$chain2, _connector$chains;
777
777
 
778
778
  var {
779
779
  state: {
@@ -782,10 +782,10 @@ var useNetwork = () => {
782
782
  }
783
783
  } = useContext();
784
784
  var [state, setState] = React__namespace.useState(initialState$6);
785
- var chainId = data === null || data === void 0 ? void 0 : data.chainId;
785
+ var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
786
+ var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
786
787
  var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
787
788
  var activeChain = [...activeChains, ...wagmiPrivate.defaultChains, ...wagmiPrivate.defaultL2Chains].find(x => x.id === chainId);
788
- var supported = activeChains.some(x => x.id === chainId);
789
789
  var switchNetwork = React__namespace.useCallback( /*#__PURE__*/function () {
790
790
  var _ref = _asyncToGenerator(function* (chainId) {
791
791
  if (!(connector !== null && connector !== void 0 && connector.switchChain)) return false;
@@ -824,7 +824,7 @@ var useNetwork = () => {
824
824
  data: {
825
825
  chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, {
826
826
  id: chainId,
827
- unsupported: !supported
827
+ unsupported
828
828
  }) : undefined,
829
829
  chains: activeChains
830
830
  },
@@ -908,19 +908,13 @@ var useContract = _ref2 => {
908
908
  contractInterface,
909
909
  signerOrProvider
910
910
  } = _ref2;
911
- var contractRef = React__namespace.useRef(getContract({
912
- addressOrName,
913
- contractInterface,
914
- signerOrProvider
915
- }));
916
- React__namespace.useEffect(() => {
917
- contractRef.current = getContract({
911
+ return React__namespace.useMemo(() => {
912
+ return getContract({
918
913
  addressOrName,
919
914
  contractInterface,
920
915
  signerOrProvider
921
916
  });
922
917
  }, [addressOrName, contractInterface, signerOrProvider]);
923
- return contractRef.current;
924
918
  };
925
919
 
926
920
  var useContractEvent = function useContractEvent(contractConfig, eventName, listener) {
@@ -1364,7 +1358,7 @@ var useWaitForTransaction = function useWaitForTransaction() {
1364
1358
 
1365
1359
  var Context = /*#__PURE__*/React__namespace.createContext(null);
1366
1360
  var Provider = _ref => {
1367
- var _state$data2, _state$data4, _state$data6;
1361
+ var _state$data2, _state$data2$chain, _state$data4, _state$data4$chain, _state$data6, _state$data6$chain;
1368
1362
 
1369
1363
  var {
1370
1364
  autoConnect,
@@ -1379,32 +1373,32 @@ var Provider = _ref => {
1379
1373
  cacheBuster: 1
1380
1374
  });
1381
1375
  var connectors = React__namespace.useMemo(() => {
1382
- var _state$data;
1376
+ var _state$data, _state$data$chain;
1383
1377
 
1384
1378
  if (typeof connectors_ !== 'function') return connectors_;
1385
1379
  return connectors_({
1386
- chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.chainId
1380
+ chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : (_state$data$chain = _state$data.chain) === null || _state$data$chain === void 0 ? void 0 : _state$data$chain.id
1387
1381
  });
1388
- }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chainId]);
1382
+ }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : (_state$data2$chain = _state$data2.chain) === null || _state$data2$chain === void 0 ? void 0 : _state$data2$chain.id]);
1389
1383
  var provider = React__namespace.useMemo(() => {
1390
- var _state$data3;
1384
+ var _state$data3, _state$data3$chain;
1391
1385
 
1392
1386
  if (typeof provider_ !== 'function') return provider_;
1393
1387
  return provider_({
1394
- chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : _state$data3.chainId,
1388
+ chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : (_state$data3$chain = _state$data3.chain) === null || _state$data3$chain === void 0 ? void 0 : _state$data3$chain.id,
1395
1389
  connector: state.connector
1396
1390
  });
1397
- }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : _state$data4.chainId, state.connector]);
1391
+ }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : (_state$data4$chain = _state$data4.chain) === null || _state$data4$chain === void 0 ? void 0 : _state$data4$chain.id, state.connector]);
1398
1392
  var webSocketProvider = React__namespace.useMemo(() => {
1399
- var _state$data5;
1393
+ var _state$data5, _state$data5$chain;
1400
1394
 
1401
1395
  if (!webSocketProvider_) return undefined;
1402
1396
  if (typeof webSocketProvider_ !== 'function') return webSocketProvider_;
1403
1397
  return webSocketProvider_({
1404
- chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : _state$data5.chainId,
1398
+ chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : (_state$data5$chain = _state$data5.chain) === null || _state$data5$chain === void 0 ? void 0 : _state$data5$chain.id,
1405
1399
  connector: state.connector
1406
1400
  });
1407
- }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : _state$data6.chainId, state.connector]); // Attempt to connect on mount
1401
+ }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : (_state$data6$chain = _state$data6.chain) === null || _state$data6$chain === void 0 ? void 0 : _state$data6$chain.id, state.connector]); // Attempt to connect on mount
1408
1402
 
1409
1403
  /* eslint-disable react-hooks/exhaustive-deps */
1410
1404
 
@@ -1500,14 +1494,6 @@ Object.defineProperty(exports, 'InjectedConnector', {
1500
1494
  enumerable: true,
1501
1495
  get: function () { return wagmiPrivate.InjectedConnector; }
1502
1496
  });
1503
- Object.defineProperty(exports, 'WalletConnectConnector', {
1504
- enumerable: true,
1505
- get: function () { return wagmiPrivate.WalletConnectConnector; }
1506
- });
1507
- Object.defineProperty(exports, 'WalletLinkConnector', {
1508
- enumerable: true,
1509
- get: function () { return wagmiPrivate.WalletLinkConnector; }
1510
- });
1511
1497
  Object.defineProperty(exports, 'chain', {
1512
1498
  enumerable: true,
1513
1499
  get: function () { return wagmiPrivate.chain; }
package/dist/wagmi.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { getDefaultProvider } from '@ethersproject/providers';
3
3
  import { erc20ABI, defaultChains, defaultL2Chains, ConnectorNotFoundError, UserRejectedRequestError, InjectedConnector } from 'wagmi-private';
4
- export { Connector, InjectedConnector, WalletConnectConnector, WalletLinkConnector, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId } from 'wagmi-private';
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
 
7
7
  function _defineProperty(obj, key, value) {
@@ -750,7 +750,7 @@ var initialState$6 = {
750
750
  loading: false
751
751
  };
752
752
  var useNetwork = () => {
753
- var _connector$chains;
753
+ var _data$chain, _data$chain2, _connector$chains;
754
754
 
755
755
  var {
756
756
  state: {
@@ -759,10 +759,10 @@ var useNetwork = () => {
759
759
  }
760
760
  } = useContext();
761
761
  var [state, setState] = React.useState(initialState$6);
762
- var chainId = data === null || data === void 0 ? void 0 : data.chainId;
762
+ var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
763
+ var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
763
764
  var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
764
765
  var activeChain = [...activeChains, ...defaultChains, ...defaultL2Chains].find(x => x.id === chainId);
765
- var supported = activeChains.some(x => x.id === chainId);
766
766
  var switchNetwork = React.useCallback( /*#__PURE__*/function () {
767
767
  var _ref = _asyncToGenerator(function* (chainId) {
768
768
  if (!(connector !== null && connector !== void 0 && connector.switchChain)) return false;
@@ -801,7 +801,7 @@ var useNetwork = () => {
801
801
  data: {
802
802
  chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, {
803
803
  id: chainId,
804
- unsupported: !supported
804
+ unsupported
805
805
  }) : undefined,
806
806
  chains: activeChains
807
807
  },
@@ -885,19 +885,13 @@ var useContract = _ref2 => {
885
885
  contractInterface,
886
886
  signerOrProvider
887
887
  } = _ref2;
888
- var contractRef = React.useRef(getContract({
889
- addressOrName,
890
- contractInterface,
891
- signerOrProvider
892
- }));
893
- React.useEffect(() => {
894
- contractRef.current = getContract({
888
+ return React.useMemo(() => {
889
+ return getContract({
895
890
  addressOrName,
896
891
  contractInterface,
897
892
  signerOrProvider
898
893
  });
899
894
  }, [addressOrName, contractInterface, signerOrProvider]);
900
- return contractRef.current;
901
895
  };
902
896
 
903
897
  var useContractEvent = function useContractEvent(contractConfig, eventName, listener) {
@@ -1341,7 +1335,7 @@ var useWaitForTransaction = function useWaitForTransaction() {
1341
1335
 
1342
1336
  var Context = /*#__PURE__*/React.createContext(null);
1343
1337
  var Provider = _ref => {
1344
- var _state$data2, _state$data4, _state$data6;
1338
+ var _state$data2, _state$data2$chain, _state$data4, _state$data4$chain, _state$data6, _state$data6$chain;
1345
1339
 
1346
1340
  var {
1347
1341
  autoConnect,
@@ -1356,32 +1350,32 @@ var Provider = _ref => {
1356
1350
  cacheBuster: 1
1357
1351
  });
1358
1352
  var connectors = React.useMemo(() => {
1359
- var _state$data;
1353
+ var _state$data, _state$data$chain;
1360
1354
 
1361
1355
  if (typeof connectors_ !== 'function') return connectors_;
1362
1356
  return connectors_({
1363
- chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.chainId
1357
+ chainId: (_state$data = state.data) === null || _state$data === void 0 ? void 0 : (_state$data$chain = _state$data.chain) === null || _state$data$chain === void 0 ? void 0 : _state$data$chain.id
1364
1358
  });
1365
- }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chainId]);
1359
+ }, [connectors_, (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : (_state$data2$chain = _state$data2.chain) === null || _state$data2$chain === void 0 ? void 0 : _state$data2$chain.id]);
1366
1360
  var provider = React.useMemo(() => {
1367
- var _state$data3;
1361
+ var _state$data3, _state$data3$chain;
1368
1362
 
1369
1363
  if (typeof provider_ !== 'function') return provider_;
1370
1364
  return provider_({
1371
- chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : _state$data3.chainId,
1365
+ chainId: (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : (_state$data3$chain = _state$data3.chain) === null || _state$data3$chain === void 0 ? void 0 : _state$data3$chain.id,
1372
1366
  connector: state.connector
1373
1367
  });
1374
- }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : _state$data4.chainId, state.connector]);
1368
+ }, [provider_, (_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : (_state$data4$chain = _state$data4.chain) === null || _state$data4$chain === void 0 ? void 0 : _state$data4$chain.id, state.connector]);
1375
1369
  var webSocketProvider = React.useMemo(() => {
1376
- var _state$data5;
1370
+ var _state$data5, _state$data5$chain;
1377
1371
 
1378
1372
  if (!webSocketProvider_) return undefined;
1379
1373
  if (typeof webSocketProvider_ !== 'function') return webSocketProvider_;
1380
1374
  return webSocketProvider_({
1381
- chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : _state$data5.chainId,
1375
+ chainId: (_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : (_state$data5$chain = _state$data5.chain) === null || _state$data5$chain === void 0 ? void 0 : _state$data5$chain.id,
1382
1376
  connector: state.connector
1383
1377
  });
1384
- }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : _state$data6.chainId, state.connector]); // Attempt to connect on mount
1378
+ }, [webSocketProvider_, (_state$data6 = state.data) === null || _state$data6 === void 0 ? void 0 : (_state$data6$chain = _state$data6.chain) === null || _state$data6$chain === void 0 ? void 0 : _state$data6$chain.id, state.connector]); // Attempt to connect on mount
1385
1379
 
1386
1380
  /* eslint-disable react-hooks/exhaustive-deps */
1387
1381
 
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.0.17",
5
+ "version": "0.1.3",
6
6
  "ethereum": "awkweb.eth",
7
7
  "repository": "tmm/wagmi",
8
8
  "homepage": "https://wagmi-xyz.vercel.app",
@@ -14,14 +14,30 @@
14
14
  ".": {
15
15
  "module": "./dist/wagmi.esm.js",
16
16
  "default": "./dist/wagmi.cjs.js"
17
+ },
18
+ "./connectors/injected": {
19
+ "main": "./connectors/injected/dist/wagmi-connectors-injected.cjs.js",
20
+ "module": "./connectors/injected/dist/wagmi-connectors-injected.esm.js"
21
+ },
22
+ "./connectors/walletConnect": {
23
+ "main": "./connectors/walletConnect/dist/wagmi-connectors-walletConnect.cjs.js",
24
+ "module": "./connectors/walletConnect/dist/wagmi-connectors-walletConnect.esm.js"
25
+ },
26
+ "./connectors/walletLink": {
27
+ "main": "./connectors/walletLink/dist/wagmi-connectors-walletLink.cjs.js",
28
+ "module": "./connectors/walletLink/dist/wagmi-connectors-walletLink.esm.js"
17
29
  }
18
30
  },
19
31
  "files": [
20
- "/dist"
32
+ "/dist",
33
+ "/connectors"
21
34
  ],
22
35
  "preconstruct": {
23
36
  "entrypoints": [
24
- "index.ts"
37
+ "index.ts",
38
+ "connectors/injected.ts",
39
+ "connectors/walletConnect.ts",
40
+ "connectors/walletLink.ts"
25
41
  ]
26
42
  },
27
43
  "peerDependencies": {
@@ -31,7 +47,7 @@
31
47
  "dependencies": {
32
48
  "@walletconnect/ethereum-provider": "^1.6.6",
33
49
  "@ethersproject/providers": "^5.5.1",
34
- "wagmi-private": "0.0.17",
50
+ "wagmi-private": "0.1.2",
35
51
  "walletlink": "^2.2.8"
36
52
  },
37
53
  "devDependencies": {
@@ -41,7 +57,7 @@
41
57
  "ethers": "^5.5.1",
42
58
  "react": "^17.0.0",
43
59
  "walletlink": "^2.2.8",
44
- "wagmi-testing": "0.0.17"
60
+ "wagmi-testing": "0.1.2"
45
61
  },
46
- "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</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## 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=\"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"
47
63
  }