-
-
Notifications
You must be signed in to change notification settings - Fork 200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorporate Infura networks into networkConfigurations
#4189
Comments
Here is some more context for this ticket as well as ideas for how we could implement this ticket. Currently, And {
rpcUrl: string;
chainId: Hex;
ticker: string;
nickname?: string;
rpcPrefs?: {
blockExplorerUrl: string;
};
} All of these properties in createAutoManagedNetworkClient({
type: NetworkClientType.Custom,
chainId: networkConfiguration.chainId,
rpcUrl: networkConfiguration.rpcUrl,
ticker: networkConfiguration.ticker,
}) However, an Infura network configuration is different, because at the moment it is internal and isn't connected to the UI. All we need is the name of the network we want to connect to; once we have that, we can derive createAutoManagedNetworkClient({
type: NetworkClientType.Infura,
network,
infuraProjectId: this.#infuraProjectId,
chainId: BUILT_IN_NETWORKS[network].chainId,
ticker: BUILT_IN_NETWORKS[network].ticker,
}) So, we could introduce an Infura network configuration like so: {
network: InfuraNetworkType;
} Putting that together with the existing type CustomNetworkConfiguration = {
type: NetworkClientType.Custom;
rpcUrl: string;
chainId: Hex;
ticker: string;
nickname?: string;
rpcPrefs?: {
blockExplorerUrl: string;
};
};
type InfuraNetworkConfiguration = {
type: NetworkClientType.Infura;
network: InfuraNetworkType;
};
type NetworkConfiguration = CustomNetworkConfiguration | InfuraNetworkConfiguration;
type NetworkConfigurations = Record<string, NetworkConfiguration & { id: string }>; Once we have this, we should be able to refactor the existing code which creates the network clients. See |
Moving this back to Product Backlog because it's dependent on the investigatory work I'm doing for #3793. |
This ticket is being addressed by #4286. |
Today we have two types of networks that are accessible via the network controller: built-in Infura networks and RPC endpoints that the user has added. The former list is hardcoded and the latter list is tracked via
networkConfigurations
. Because of this bifurcation, when the network controller creates clients for these networks, it needs to use one way for built-in networks and another way for custom networks. For this reason, the configuration object that is used to create an Infura network client is different from the one used to create a custom network client. This creates unnecessary complexity.Moving built-in networks into
networkConfigurations
would not completely remove the complexity, but it would help simplify some of the boilerplate code in NetworkController, and is a prerequisite for #1279.The text was updated successfully, but these errors were encountered: