Skip to content

Commit 14eac8a

Browse files
Revert "fix: let Dev UI work with Hardhat mainnet forking"
This reverts commit 0e26baa. The fix wasn't working because `Provider.perform()` can only be used to perform a select subset of JSON-RPC calls, which don't include the non-standard `web3_clientVersion`.
1 parent 015ef68 commit 14eac8a

File tree

1 file changed

+14
-50
lines changed

1 file changed

+14
-50
lines changed

packages/dev-frontend/src/hooks/LiquityContext.tsx

Lines changed: 14 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { createContext, useContext, useEffect, useMemo, useState } from "react";
22
import { Provider } from "@ethersproject/abstract-provider";
33
import { getNetwork } from "@ethersproject/networks";
4-
import { BaseProvider, Web3Provider } from "@ethersproject/providers";
4+
import { Web3Provider } from "@ethersproject/providers";
55
import { useWeb3React } from "@web3-react/core";
66

77
import { isBatchedProvider, isWebSocketAugmentedProvider } from "@liquity/providers";
@@ -36,16 +36,6 @@ const wsParams = (network: string, infuraApiKey: string): [string, string] => [
3636

3737
const webSocketSupportedNetworks = ["homestead", "kovan", "rinkeby", "ropsten", "goerli"];
3838

39-
const getClientVersion = async (provider: BaseProvider): Promise<string | undefined> => {
40-
try {
41-
const clientVersion = await provider.perform("web3_clientVersion", []);
42-
43-
if (typeof clientVersion === "string") {
44-
return clientVersion;
45-
}
46-
} catch {}
47-
};
48-
4939
export const LiquityProvider: React.FC<LiquityProviderProps> = ({
5040
children,
5141
loader,
@@ -72,14 +62,7 @@ export const LiquityProvider: React.FC<LiquityProviderProps> = ({
7262
}, []);
7363

7464
useEffect(() => {
75-
if (!config || !connection) {
76-
return;
77-
}
78-
79-
let mounted = true;
80-
let wsOpen = false;
81-
82-
const setupProvider = async () => {
65+
if (config && connection) {
8366
const { provider, chainId } = connection;
8467

8568
if (isBatchedProvider(provider) && provider.chainId !== chainId) {
@@ -88,41 +71,22 @@ export const LiquityProvider: React.FC<LiquityProviderProps> = ({
8871

8972
if (isWebSocketAugmentedProvider(provider)) {
9073
const network = getNetwork(chainId);
91-
const clientVersion = await getClientVersion(provider);
9274

93-
if (!mounted) {
94-
return;
75+
if (
76+
network.name &&
77+
webSocketSupportedNetworks.includes(network.name) &&
78+
config.infuraApiKey
79+
) {
80+
provider.openWebSocket(...wsParams(network.name, config.infuraApiKey));
81+
} else if (connection._isDev) {
82+
provider.openWebSocket(`ws://${window.location.hostname}:8546`, chainId);
9583
}
9684

97-
// If client is HardHat, assume that it's running in fork mode, therefore don't use an
98-
// Infura WebSocket connection, as that would see a different (unforked) blockchain state.
99-
if (!clientVersion || !clientVersion.match(/hardhat/i)) {
100-
if (
101-
network.name &&
102-
webSocketSupportedNetworks.includes(network.name) &&
103-
config.infuraApiKey
104-
) {
105-
provider.openWebSocket(...wsParams(network.name, config.infuraApiKey));
106-
wsOpen = true;
107-
} else if (connection._isDev) {
108-
provider.openWebSocket(`ws://${window.location.hostname}:8546`, chainId);
109-
wsOpen = true;
110-
}
111-
}
85+
return () => {
86+
provider.closeWebSocket();
87+
};
11288
}
113-
};
114-
115-
setupProvider();
116-
117-
return () => {
118-
const { provider } = connection;
119-
120-
if (isWebSocketAugmentedProvider(provider) && wsOpen) {
121-
provider.closeWebSocket();
122-
}
123-
124-
mounted = false;
125-
};
89+
}
12690
}, [config, connection]);
12791

12892
if (!config || !provider || !account || !chainId) {

0 commit comments

Comments
 (0)