From 6b4fa46908d99da730df3399a68b1dc0f7f06ff9 Mon Sep 17 00:00:00 2001 From: Filip Sekulic Date: Thu, 14 Jul 2022 11:43:56 +0200 Subject: [PATCH] Removed the Infura v3 key from rpcUrl display (#15193) * Removed infura v3 key from rpcUrl display * Code refactor * Fixed error * Prevent submission of form when editing an featured rpc and there is a chainId error * Add optional chaining to rpcurls to prevent type errors Co-authored-by: Dan J Miller --- shared/constants/network.js | 2 +- .../confirmation/templates/add-ethereum-chain.js | 10 +++++++++- .../networks-tab/networks-form/networks-form.js | 16 +++++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/shared/constants/network.js b/shared/constants/network.js index 7f5227c29..6891017d9 100644 --- a/shared/constants/network.js +++ b/shared/constants/network.js @@ -56,7 +56,7 @@ export const FANTOM_DISPLAY_NAME = 'Fantom Opera'; export const HARMONY_DISPLAY_NAME = 'Harmony Mainnet Shard 0'; export const PALM_DISPLAY_NAME = 'Palm'; -const infuraProjectId = process.env.INFURA_PROJECT_ID; +export const infuraProjectId = process.env.INFURA_PROJECT_ID; export const getRpcUrl = ({ network, excludeProjectId = false }) => `https://${network}.infura.io/v3/${excludeProjectId ? '' : infuraProjectId}`; diff --git a/ui/pages/confirmation/templates/add-ethereum-chain.js b/ui/pages/confirmation/templates/add-ethereum-chain.js index 5e4594eab..da9b541ad 100644 --- a/ui/pages/confirmation/templates/add-ethereum-chain.js +++ b/ui/pages/confirmation/templates/add-ethereum-chain.js @@ -1,5 +1,6 @@ import { ethErrors } from 'eth-rpc-errors'; import React from 'react'; +import { infuraProjectId } from '../../../../shared/constants/network'; import { SEVERITIES, TYPOGRAPHY, @@ -267,7 +268,14 @@ function getValues(pendingApproval, t, actions) { }, dictionary: { [t('networkName')]: pendingApproval.requestData.chainName, - [t('networkURL')]: pendingApproval.requestData.rpcUrl, + [t('networkURL')]: pendingApproval.requestData.rpcUrl?.includes( + `/v3/${infuraProjectId}`, + ) + ? pendingApproval.requestData.rpcUrl.replace( + `/v3/${infuraProjectId}`, + '', + ) + : pendingApproval.requestData.rpcUrl, [t('chainId')]: parseInt(pendingApproval.requestData.chainId, 16), [t('currencySymbol')]: pendingApproval.requestData.ticker, [t('blockExplorerUrl')]: pendingApproval.requestData diff --git a/ui/pages/settings/networks-tab/networks-form/networks-form.js b/ui/pages/settings/networks-tab/networks-form/networks-form.js index c097e53c0..deab03259 100644 --- a/ui/pages/settings/networks-tab/networks-form/networks-form.js +++ b/ui/pages/settings/networks-tab/networks-form/networks-form.js @@ -36,6 +36,10 @@ import fetchWithCache from '../../../../helpers/utils/fetch-with-cache'; import { usePrevious } from '../../../../hooks/usePrevious'; import { MetaMetricsContext } from '../../../../contexts/metametrics'; import { EVENT } from '../../../../../shared/constants/metametrics'; +import { + infuraProjectId, + FEATURED_RPCS, +} from '../../../../../shared/constants/network'; /** * Attempts to convert the given chainId to a decimal string, for display @@ -96,6 +100,9 @@ const NetworksForm = ({ const [errors, setErrors] = useState({}); const [warnings, setWarnings] = useState({}); const [isSubmitting, setIsSubmitting] = useState(false); + const chainIdMatchesFeaturedRPC = FEATURED_RPCS.some( + (featuredRpc) => Number(featuredRpc.chainId) === Number(chainId), + ); const resetForm = useCallback(() => { setNetworkName(selectedNetworkName || ''); @@ -555,10 +562,13 @@ const NetworksForm = ({ }; const deletable = !isCurrentRpcTarget && !viewOnly && !addNewNetwork; const stateUnchanged = stateIsUnchanged(); + const chainIdErrorOnFeaturedRpcDuringEdit = + selectedNetwork?.rpcUrl && warnings.chainId && chainIdMatchesFeaturedRPC; const isSubmitDisabled = hasErrors() || isSubmitting || stateUnchanged || + chainIdErrorOnFeaturedRpcDuringEdit || !rpcUrl || !chainId || !ticker; @@ -599,7 +609,11 @@ const NetworksForm = ({ error={errors.rpcUrl?.msg || ''} onChange={setRpcUrl} titleText={t('rpcUrl')} - value={rpcUrl} + value={ + rpcUrl?.includes(`/v3/${infuraProjectId}`) + ? rpcUrl.replace(`/v3/${infuraProjectId}`, '') + : rpcUrl + } disabled={viewOnly} />