From 2d497ad38bf099c859747c2c2b57a0185968d2a3 Mon Sep 17 00:00:00 2001 From: Eric Lau Date: Wed, 20 Dec 2023 13:58:04 -0500 Subject: [PATCH] Only keep necessary error handling, use stronger types --- packages/core/src/manifest.ts | 30 ++++++++++++++++-------------- packages/core/src/provider.ts | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/core/src/manifest.ts b/packages/core/src/manifest.ts index 36f5798f7..499bd3890 100644 --- a/packages/core/src/manifest.ts +++ b/packages/core/src/manifest.ts @@ -1,7 +1,7 @@ import os from 'os'; import path from 'path'; import { promises as fs } from 'fs'; -import { EthereumProvider, getChainId, getHardhatMetadata, networkNames } from './provider'; +import { EthereumProvider, HardhatMetadata, getChainId, getHardhatMetadata, networkNames } from './provider'; import lockfile from 'proper-lockfile'; import { compare as compareVersions } from 'compare-versions'; @@ -48,23 +48,25 @@ async function getDevInstanceMetadata( provider: EthereumProvider, chainId: number, ): Promise { - try { - const hardhatMetadata = await getHardhatMetadata(provider); - - if (hardhatMetadata.chainId !== chainId) { - throw new Error( - `Broken invariant: Hardhat metadata's chainId ${hardhatMetadata.chainId} does not match eth_chainId ${chainId}`, - ); - } + let hardhatMetadata: HardhatMetadata; - return { - networkName: hardhatMetadata.clientVersion.startsWith('anvil') ? 'anvil' : 'hardhat', - instanceId: hardhatMetadata.instanceId, - forkedNetwork: hardhatMetadata.forkedNetwork, - }; + try { + hardhatMetadata = await getHardhatMetadata(provider); } catch (e: unknown) { return undefined; } + + if (hardhatMetadata.chainId !== chainId) { + throw new Error( + `Broken invariant: Hardhat metadata's chainId ${hardhatMetadata.chainId} does not match eth_chainId ${chainId}`, + ); + } + + return { + networkName: hardhatMetadata.clientVersion.startsWith('anvil') ? 'anvil' : 'hardhat', + instanceId: hardhatMetadata.instanceId, + forkedNetwork: hardhatMetadata.forkedNetwork, + }; } function getSuffix(chainId: number, devInstanceMetadata?: DevInstanceMetadata) { diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts index a3bf697e8..9713d24a9 100644 --- a/packages/core/src/provider.ts +++ b/packages/core/src/provider.ts @@ -12,7 +12,7 @@ export interface EthereumProvider { send(method: string, params: unknown[]): Promise; } -interface HardhatMetadata { +export interface HardhatMetadata { clientVersion: string; chainId: number; instanceId: string;