diff --git a/explorer/package-lock.json b/explorer/package-lock.json index 969ae09df..7428b94a7 100644 --- a/explorer/package-lock.json +++ b/explorer/package-lock.json @@ -50,7 +50,7 @@ "react-scripts": "^4.0.3", "react-select": "^4.3.1", "superstruct": "^0.15.2", - "typescript": "^4.3.5" + "typescript": "^4.4.2" } }, "node_modules/@babel/code-frame": { @@ -22737,9 +22737,9 @@ "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "node_modules/typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", + "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -43676,9 +43676,9 @@ "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", + "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", diff --git a/explorer/package.json b/explorer/package.json index 7e188f849..364c803b9 100644 --- a/explorer/package.json +++ b/explorer/package.json @@ -46,7 +46,7 @@ "react-scripts": "^4.0.3", "react-select": "^4.3.1", "superstruct": "^0.15.2", - "typescript": "^4.3.5" + "typescript": "^4.4.2" }, "scripts": { "start": "react-scripts start", diff --git a/explorer/src/pages/inspector/RawInputCard.tsx b/explorer/src/pages/inspector/RawInputCard.tsx index 21f78bba7..a4830618c 100644 --- a/explorer/src/pages/inspector/RawInputCard.tsx +++ b/explorer/src/pages/inspector/RawInputCard.tsx @@ -113,7 +113,7 @@ export function RawInput({ setError(undefined); return; } catch (err) { - setError(err.message); + if (err instanceof Error) setError(err.message); } } else { setError(undefined); diff --git a/explorer/src/pages/inspector/SimulatorCard.tsx b/explorer/src/pages/inspector/SimulatorCard.tsx index 62b8341d6..134632fd7 100644 --- a/explorer/src/pages/inspector/SimulatorCard.tsx +++ b/explorer/src/pages/inspector/SimulatorCard.tsx @@ -273,7 +273,9 @@ function useSimulator(message: Message) { } catch (err) { console.error(err); setLogs(null); - setError(err.message); + if (err instanceof Error) { + setError(err.message); + } } finally { setSimulating(false); } diff --git a/explorer/src/providers/stats/solanaClusterStats.tsx b/explorer/src/providers/stats/solanaClusterStats.tsx index babd477d8..f16bffd04 100644 --- a/explorer/src/providers/stats/solanaClusterStats.tsx +++ b/explorer/src/providers/stats/solanaClusterStats.tsx @@ -126,14 +126,16 @@ export function SolanaClusterStatsProvider({ children }: Props) { if (cluster !== Cluster.Custom) { reportError(error, { url }); } - dispatchPerformanceInfo({ - type: PerformanceInfoActionType.SetError, - data: error.toString(), - }); - dispatchDashboardInfo({ - type: DashboardInfoActionType.SetError, - data: error.toString(), - }); + if (error instanceof Error) { + dispatchPerformanceInfo({ + type: PerformanceInfoActionType.SetError, + data: error.toString(), + }); + dispatchDashboardInfo({ + type: DashboardInfoActionType.SetError, + data: error.toString(), + }); + } setActive(false); } }; @@ -149,10 +151,12 @@ export function SolanaClusterStatsProvider({ children }: Props) { if (cluster !== Cluster.Custom) { reportError(error, { url }); } - dispatchPerformanceInfo({ - type: PerformanceInfoActionType.SetError, - data: error.toString(), - }); + if (error instanceof Error) { + dispatchPerformanceInfo({ + type: PerformanceInfoActionType.SetError, + data: error.toString(), + }); + } setActive(false); } }; @@ -169,10 +173,12 @@ export function SolanaClusterStatsProvider({ children }: Props) { if (cluster !== Cluster.Custom) { reportError(error, { url }); } - dispatchDashboardInfo({ - type: DashboardInfoActionType.SetError, - data: error.toString(), - }); + if (error instanceof Error) { + dispatchDashboardInfo({ + type: DashboardInfoActionType.SetError, + data: error.toString(), + }); + } setActive(false); } }; diff --git a/explorer/src/utils/sentry.ts b/explorer/src/utils/sentry.ts index a37cb70a7..58f1b9ce4 100644 --- a/explorer/src/utils/sentry.ts +++ b/explorer/src/utils/sentry.ts @@ -6,13 +6,15 @@ type Tags = } | undefined; -export function reportError(err: Error, tags: Tags) { - console.error(err, err.message); - try { - Sentry.captureException(err, { - tags, - }); - } catch (err) { - // Sentry can fail if error rate limit is reached +export function reportError(err: unknown, tags: Tags) { + if (err instanceof Error) { + console.error(err, err.message); + try { + Sentry.captureException(err, { + tags, + }); + } catch (err) { + // Sentry can fail if error rate limit is reached + } } }