@reef-knot/web3-react 1.0.5 → 1.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/context/web3.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAO7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAK7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAGvC,OAA2B,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;;AA6ED,wBAAyD"}
1
+ {"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/context/web3.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAO7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAK7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAGvC,OAA2B,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;;AAkFD,wBAAyD"}
@@ -39,7 +39,7 @@ var ProviderSDK = props => {
39
39
  library,
40
40
  account
41
41
  } = useWeb3();
42
- var [providerWeb3, setProviderWeb3] = useState(library);
42
+ var [providerWeb3, setProviderWeb3] = useState();
43
43
  // attempt to get providerWeb3 from wagmi
44
44
  var {
45
45
  connector: connectorWagmi,
@@ -48,11 +48,16 @@ var ProviderSDK = props => {
48
48
  useEffect(() => {
49
49
  (() => __awaiter(void 0, void 0, void 0, function* () {
50
50
  if (isConnected && !providerWeb3 && connectorWagmi) {
51
+ // Set wagmi provider
51
52
  var p = yield connectorWagmi.getProvider();
52
53
  setProviderWeb3(getLibrary(p));
54
+ } else if (!providerWeb3) {
55
+ // Set web3-react provider
56
+ // Passing `library` as init value for useState does not work, but works like this:
57
+ setProviderWeb3(library);
53
58
  }
54
59
  }))();
55
- }, [connectorWagmi, isConnected, providerWeb3]);
60
+ }, [connectorWagmi, isConnected, library, providerWeb3]);
56
61
  invariant(rpc[chainId], "RPC url for chain ".concat(chainId, " is not provided"));
57
62
  invariant(rpc[CHAINS.Mainnet], 'RPC url for mainnet is not provided');
58
63
  var providerRpc = getStaticRpcBatchProvider(chainId, rpc[chainId], 0, pollingInterval);
@@ -1,8 +1,7 @@
1
1
  import { useMemo } from 'react';
2
2
  import { getNetwork } from '@ethersproject/providers';
3
3
  import { useNetwork } from 'wagmi';
4
- import { useWeb3 } from './useWeb3.js';
5
- import { UnsupportedChainIdError } from '@web3-react/core';
4
+ import { useWeb3React, UnsupportedChainIdError } from '@web3-react/core';
6
5
 
7
6
  var STABLE_ARRAY = [];
8
7
  var useSupportedChains = () => {
@@ -12,7 +11,7 @@ var useSupportedChains = () => {
12
11
  var {
13
12
  error,
14
13
  connector
15
- } = useWeb3();
14
+ } = useWeb3React();
16
15
  // wagmi data
17
16
  var {
18
17
  chain,
@@ -1 +1 @@
1
- {"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,CA6B3E"}
1
+ {"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAIxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAkD3E"}
@@ -1,6 +1,7 @@
1
1
  import { useWeb3React } from '@web3-react/core';
2
2
  export { UnsupportedChainIdError } from '@web3-react/core';
3
3
  import { useAccount, useNetwork, useConnect } from 'wagmi';
4
+ import { useSupportedChains } from './useSupportedChains.js';
4
5
 
5
6
  // Shimming useWeb3React hook to also use data returned from wagmi
6
7
  function useWeb3(key) {
@@ -12,8 +13,25 @@ function useWeb3(key) {
12
13
  error: wagmiError
13
14
  } = useConnect();
14
15
  var account = web3ReactData.account || (wagmiAccount === null || wagmiAccount === void 0 ? void 0 : wagmiAccount.address);
15
- var active = web3ReactData.active || (wagmiAccount === null || wagmiAccount === void 0 ? void 0 : wagmiAccount.isConnected);
16
- var chainId = web3ReactData.chainId || ((_a = wagmiNetwork === null || wagmiNetwork === void 0 ? void 0 : wagmiNetwork.chain) === null || _a === void 0 ? void 0 : _a.id);
16
+ // web3-react and wagmi have different logic around unsupported chains.
17
+ // If a chain is not supported:
18
+ // web3-react sets:
19
+ // `chainId` === undefined
20
+ // `error` === UnsupportedChainIdError
21
+ // `active` === false
22
+ // wagmi sets:
23
+ // `chain.id` === actual value from wallet
24
+ // `chain.unsupported` === true
25
+ // `error` === null
26
+ // `isConnected` === true (connects via default chain)
27
+ // These differences break our widgets, because the widgets don't expect
28
+ // chainId to be unsupported, they expect chainId === undefined in that case.
29
+ // Making wagmi's logic to be the same as web3-react here, except setting an error:
30
+ var {
31
+ isUnsupported
32
+ } = useSupportedChains();
33
+ var chainId = isUnsupported ? undefined : web3ReactData.chainId || ((_a = wagmiNetwork === null || wagmiNetwork === void 0 ? void 0 : wagmiNetwork.chain) === null || _a === void 0 ? void 0 : _a.id);
34
+ var active = isUnsupported ? false : web3ReactData.active || (wagmiAccount === null || wagmiAccount === void 0 ? void 0 : wagmiAccount.isConnected);
17
35
  // wagmi and web3-react use the same Error type
18
36
  // wagmi is first here because it can be null, but we need Error | undefined
19
37
  var error = wagmiError || web3ReactData.error;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reef-knot/web3-react",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {