From a76bbe84f87577022e5d3c5932e803c1c1070652 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Tue, 17 Dec 2024 22:54:25 +0530 Subject: [PATCH 01/20] feat: dont include all chains in e2e --- .../arb-token-bridge-ui/src/util/orbitChainsList.ts | 10 +++++++++- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 9 ++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index fd7bcc9f4b..6e62796109 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -1,6 +1,7 @@ import { NativeCurrencyBase } from '../hooks/useNativeCurrency' -import { ChainWithRpcUrl } from './networks' +import { ChainWithRpcUrl, ChainId } from './networks' import orbitChainsData from './orbitChainsData.json' +import { isTestingEnvironment } from './CommonUtils' export type NetworkType = | 'Ethereum' @@ -59,6 +60,13 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { + if (isTestingEnvironment) { + // During E2E tests, only return local chains + return Object.values(orbitChains).filter( + chain => chain.chainId === ChainId.L3Local + ) + } + const mainnetChains = mainnet ? Object.values(orbitMainnets) : [] const testnetChains = testnet ? Object.values(orbitTestnets) : [] diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 4b748a2080..f8d650b3e4 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -44,15 +44,10 @@ const defaultChains = [ const chainList = isTestingEnvironment ? [ - ...defaultChains, - // Orbit chains - ...wagmiOrbitChains, - // add local environments during testing + // only include local environments during testing local, arbitrumLocal, - l3Local, - // user-added custom chains - ...customChains + l3Local ] : [...defaultChains, ...wagmiOrbitChains, ...customChains] From ab258f226e8bd4af7fbba942729b325723e3a335 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Tue, 17 Dec 2024 23:00:39 +0530 Subject: [PATCH 02/20] dev: type ensure --- packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 987a628792..5ebfb7eca5 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -17,4 +17,5 @@ export function shortenTxHash(txHash: string) { } export const isTestingEnvironment = - !!window.Cypress || process.env.NODE_ENV !== 'production' + !!(typeof window !== 'undefined' && window && window.Cypress) || + process.env.NODE_ENV !== 'production' From d0c1ec93b6219114567e701526b6d8e9f2909717 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Wed, 18 Dec 2024 15:19:35 +0530 Subject: [PATCH 03/20] dev: try --- packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 5ebfb7eca5..d4752956f2 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -16,6 +16,8 @@ export function shortenTxHash(txHash: string) { )}` } -export const isTestingEnvironment = - !!(typeof window !== 'undefined' && window && window.Cypress) || - process.env.NODE_ENV !== 'production' +export const isTestingEnvironment = !!( + typeof window !== 'undefined' && + window && + window.Cypress +) From 02757262a63483c1185efddc20901a809da19c72 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Wed, 18 Dec 2024 15:20:58 +0530 Subject: [PATCH 04/20] dev: sepolia --- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index f8d650b3e4..5d0967a42b 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -47,7 +47,9 @@ const chainList = isTestingEnvironment // only include local environments during testing local, arbitrumLocal, - l3Local + l3Local, + sepolia, + arbitrumSepolia ] : [...defaultChains, ...wagmiOrbitChains, ...customChains] From 3e85667daf34613fabb4000ebe3fe1b9d2f032bd Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Dec 2024 19:03:03 +0530 Subject: [PATCH 05/20] dev: testing env revert --- package.json | 8 +++---- .../src/util/CommonUtils.ts | 7 ++---- .../src/util/orbitChainsList.ts | 3 +-- .../src/util/wagmi/setup.ts | 22 +++++++++---------- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 69a2eb97a8..95d4a62343 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,10 @@ "prettier:format": "./node_modules/.bin/prettier --write .", "lint": "yarn workspace arb-token-bridge-ui lint", "lint:fix": "yarn workspace arb-token-bridge-ui lint:fix", - "test:e2e": "yarn workspace arb-token-bridge-ui env-cmd --silent --file .e2e.env yarn synpress run --configFile synpress.config.ts", - "test:e2e:cctp": "yarn test:e2e --configFile synpress.cctp.config.ts", - "test:e2e:orbit": "E2E_ORBIT=true yarn test:e2e", - "test:e2e:orbit:custom-gas-token": "E2E_ORBIT_CUSTOM_GAS_TOKEN=true yarn test:e2e" + "test:e2e": "E2E=true yarn workspace arb-token-bridge-ui env-cmd --silent --file .e2e.env yarn synpress run --configFile synpress.config.ts", + "test:e2e:cctp": "E2E=true yarn test:e2e --configFile synpress.cctp.config.ts", + "test:e2e:orbit": "E2E=true E2E_ORBIT=true yarn test:e2e", + "test:e2e:orbit:custom-gas-token": "E2E=true E2E_ORBIT_CUSTOM_GAS_TOKEN=true yarn test:e2e" }, "resolutions": { "**/@walletconnect/ethereum-provider": "2.13.1", diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index d4752956f2..987a628792 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -16,8 +16,5 @@ export function shortenTxHash(txHash: string) { )}` } -export const isTestingEnvironment = !!( - typeof window !== 'undefined' && - window && - window.Cypress -) +export const isTestingEnvironment = + !!window.Cypress || process.env.NODE_ENV !== 'production' diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index 6e62796109..dabf523a75 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -1,7 +1,6 @@ import { NativeCurrencyBase } from '../hooks/useNativeCurrency' import { ChainWithRpcUrl, ChainId } from './networks' import orbitChainsData from './orbitChainsData.json' -import { isTestingEnvironment } from './CommonUtils' export type NetworkType = | 'Ethereum' @@ -60,7 +59,7 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { - if (isTestingEnvironment) { + if (process.env.E2E === 'E2E') { // During E2E tests, only return local chains return Object.values(orbitChains).filter( chain => chain.chainId === ChainId.L3Local diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index e6a4853b54..3ef8fca515 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -16,7 +16,6 @@ import { base, baseSepolia } from './wagmiAdditionalNetworks' -import { isTestingEnvironment } from '../CommonUtils' import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' @@ -42,16 +41,17 @@ const defaultChains = [ holesky ] -const chainList = isTestingEnvironment - ? [ - // only include local environments during testing - local, - arbitrumLocal, - l3Local, - sepolia, - arbitrumSepolia - ] - : [...defaultChains, ...wagmiOrbitChains, ...customChains] +const chainList = + process.env.E2E === 'true' + ? [ + // only include local environments during testing + local, + arbitrumLocal, + l3Local, + sepolia, + arbitrumSepolia + ] + : [...defaultChains, ...wagmiOrbitChains, ...customChains] const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID! From fca4388345f9f5054795add41128e78a3b7239f9 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Dec 2024 19:04:35 +0530 Subject: [PATCH 06/20] dev: update --- packages/arb-token-bridge-ui/src/util/orbitChainsList.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index dabf523a75..7b17470dd8 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -59,7 +59,7 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { - if (process.env.E2E === 'E2E') { + if (process.env.E2E === 'true') { // During E2E tests, only return local chains return Object.values(orbitChains).filter( chain => chain.chainId === ChainId.L3Local From ddbb852b8f947843202e119e85502d40b1c28b1d Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Dec 2024 19:14:56 +0530 Subject: [PATCH 07/20] dev: env utils --- .../src/components/common/ProjectsListing.tsx | 4 ++-- .../src/util/CommonUtils.ts | 3 --- .../arb-token-bridge-ui/src/util/envUtils.ts | 7 ++++++ .../src/util/orbitChainsList.ts | 3 ++- .../src/util/wagmi/setup.ts | 22 +++++++++---------- 5 files changed, 22 insertions(+), 17 deletions(-) create mode 100644 packages/arb-token-bridge-ui/src/util/envUtils.ts diff --git a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx index 24169687dc..f42ff7a36f 100644 --- a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx +++ b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx @@ -11,7 +11,7 @@ import { getBridgeUiConfigForChain } from '../../util/bridgeUiConfig' import { getChainQueryParamForChain } from '../../types/ChainQueryParam' import { trackEvent } from '../../util/AnalyticsUtils' import { useIsTestnetMode } from '../../hooks/useIsTestnetMode' -import { isTestingEnvironment } from '../../util/CommonUtils' +import { isNonProductionEnvironment } from '../../util/envUtils' const shuffleArray = (array: PortalProject[]) => { return array.sort(() => Math.random() - 0.5) @@ -54,7 +54,7 @@ const fetchProjects = async ( } if (isTestnetMode) { - return isTestingEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production + return isNonProductionEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production } try { diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 987a628792..7f30ac20ec 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -15,6 +15,3 @@ export function shortenTxHash(txHash: string) { txHashLength )}` } - -export const isTestingEnvironment = - !!window.Cypress || process.env.NODE_ENV !== 'production' diff --git a/packages/arb-token-bridge-ui/src/util/envUtils.ts b/packages/arb-token-bridge-ui/src/util/envUtils.ts new file mode 100644 index 0000000000..2e8b6b36dd --- /dev/null +++ b/packages/arb-token-bridge-ui/src/util/envUtils.ts @@ -0,0 +1,7 @@ +export const isE2eEnvironment = + !!(typeof window !== 'undefined' && window && window.Cypress) || + process.env.E2E === 'true' + +// non-production environment can be e2e, vercel preview and local dev environment +export const isNonProductionEnvironment = + isE2eEnvironment || process.env.NODE_ENV !== 'production' diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index 7b17470dd8..93192b4756 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -1,4 +1,5 @@ import { NativeCurrencyBase } from '../hooks/useNativeCurrency' +import { isE2eEnvironment } from './envUtils' import { ChainWithRpcUrl, ChainId } from './networks' import orbitChainsData from './orbitChainsData.json' @@ -59,7 +60,7 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { - if (process.env.E2E === 'true') { + if (isE2eEnvironment) { // During E2E tests, only return local chains return Object.values(orbitChains).filter( chain => chain.chainId === ChainId.L3Local diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 3ef8fca515..409d05f5f4 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -20,6 +20,7 @@ import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' import { customInfuraProvider } from '../infura' +import { isE2eEnvironment } from '../envUtils' const customChains = getCustomChainsFromLocalStorage().map(chain => getWagmiChain(chain.chainId) @@ -41,17 +42,16 @@ const defaultChains = [ holesky ] -const chainList = - process.env.E2E === 'true' - ? [ - // only include local environments during testing - local, - arbitrumLocal, - l3Local, - sepolia, - arbitrumSepolia - ] - : [...defaultChains, ...wagmiOrbitChains, ...customChains] +const chainList = isE2eEnvironment + ? [ + // only include local + sepolia testnet during E2E's + local, + arbitrumLocal, + l3Local, + sepolia, + arbitrumSepolia + ] + : [...defaultChains, ...wagmiOrbitChains, ...customChains] const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID! From aac801cb7bb266ed2b627f08da2d7f4e96b54270 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Wed, 25 Dec 2024 21:28:20 +0700 Subject: [PATCH 08/20] try mainnet --- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 409d05f5f4..b11fc7863c 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -49,7 +49,8 @@ const chainList = isE2eEnvironment arbitrumLocal, l3Local, sepolia, - arbitrumSepolia + arbitrumSepolia, + mainnet ] : [...defaultChains, ...wagmiOrbitChains, ...customChains] From f157820b52d5547b390a378ae8d0fd07549a9ec5 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Thu, 26 Dec 2024 17:35:30 +0700 Subject: [PATCH 09/20] dev: comment + retry --- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index b11fc7863c..9d7410545e 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -44,7 +44,7 @@ const defaultChains = [ const chainList = isE2eEnvironment ? [ - // only include local + sepolia testnet during E2E's + // include only required networks in E2E tests local, arbitrumLocal, l3Local, From f752af4e07260990a5406733e9e44590e6aa8df2 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Thu, 26 Dec 2024 19:52:33 +0700 Subject: [PATCH 10/20] dev: simplified --- package.json | 8 ++++---- .../src/components/common/ProjectsListing.tsx | 4 ++-- packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 5 +++++ packages/arb-token-bridge-ui/src/util/envUtils.ts | 7 ------- packages/arb-token-bridge-ui/src/util/orbitChainsList.ts | 3 +-- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 3 +-- 6 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 packages/arb-token-bridge-ui/src/util/envUtils.ts diff --git a/package.json b/package.json index 95d4a62343..69a2eb97a8 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,10 @@ "prettier:format": "./node_modules/.bin/prettier --write .", "lint": "yarn workspace arb-token-bridge-ui lint", "lint:fix": "yarn workspace arb-token-bridge-ui lint:fix", - "test:e2e": "E2E=true yarn workspace arb-token-bridge-ui env-cmd --silent --file .e2e.env yarn synpress run --configFile synpress.config.ts", - "test:e2e:cctp": "E2E=true yarn test:e2e --configFile synpress.cctp.config.ts", - "test:e2e:orbit": "E2E=true E2E_ORBIT=true yarn test:e2e", - "test:e2e:orbit:custom-gas-token": "E2E=true E2E_ORBIT_CUSTOM_GAS_TOKEN=true yarn test:e2e" + "test:e2e": "yarn workspace arb-token-bridge-ui env-cmd --silent --file .e2e.env yarn synpress run --configFile synpress.config.ts", + "test:e2e:cctp": "yarn test:e2e --configFile synpress.cctp.config.ts", + "test:e2e:orbit": "E2E_ORBIT=true yarn test:e2e", + "test:e2e:orbit:custom-gas-token": "E2E_ORBIT_CUSTOM_GAS_TOKEN=true yarn test:e2e" }, "resolutions": { "**/@walletconnect/ethereum-provider": "2.13.1", diff --git a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx index f42ff7a36f..24169687dc 100644 --- a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx +++ b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx @@ -11,7 +11,7 @@ import { getBridgeUiConfigForChain } from '../../util/bridgeUiConfig' import { getChainQueryParamForChain } from '../../types/ChainQueryParam' import { trackEvent } from '../../util/AnalyticsUtils' import { useIsTestnetMode } from '../../hooks/useIsTestnetMode' -import { isNonProductionEnvironment } from '../../util/envUtils' +import { isTestingEnvironment } from '../../util/CommonUtils' const shuffleArray = (array: PortalProject[]) => { return array.sort(() => Math.random() - 0.5) @@ -54,7 +54,7 @@ const fetchProjects = async ( } if (isTestnetMode) { - return isNonProductionEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production + return isTestingEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production } try { diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 7f30ac20ec..524e5782ca 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -15,3 +15,8 @@ export function shortenTxHash(txHash: string) { txHashLength )}` } + +export const isTestingEnvironment = + (typeof window !== 'undefined' && !!window.Cypress) || + process.env.NODE_ENV !== 'production' || + process.env.NEXT_PUBLIC_IS_E2E_TEST diff --git a/packages/arb-token-bridge-ui/src/util/envUtils.ts b/packages/arb-token-bridge-ui/src/util/envUtils.ts deleted file mode 100644 index 2e8b6b36dd..0000000000 --- a/packages/arb-token-bridge-ui/src/util/envUtils.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const isE2eEnvironment = - !!(typeof window !== 'undefined' && window && window.Cypress) || - process.env.E2E === 'true' - -// non-production environment can be e2e, vercel preview and local dev environment -export const isNonProductionEnvironment = - isE2eEnvironment || process.env.NODE_ENV !== 'production' diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index 93192b4756..759a9224b6 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -1,5 +1,4 @@ import { NativeCurrencyBase } from '../hooks/useNativeCurrency' -import { isE2eEnvironment } from './envUtils' import { ChainWithRpcUrl, ChainId } from './networks' import orbitChainsData from './orbitChainsData.json' @@ -60,7 +59,7 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { - if (isE2eEnvironment) { + if (process.env.NEXT_PUBLIC_IS_E2E_TEST) { // During E2E tests, only return local chains return Object.values(orbitChains).filter( chain => chain.chainId === ChainId.L3Local diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 9d7410545e..cc70025f06 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -20,7 +20,6 @@ import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' import { customInfuraProvider } from '../infura' -import { isE2eEnvironment } from '../envUtils' const customChains = getCustomChainsFromLocalStorage().map(chain => getWagmiChain(chain.chainId) @@ -42,7 +41,7 @@ const defaultChains = [ holesky ] -const chainList = isE2eEnvironment +const chainList = process.env.NEXT_PUBLIC_IS_E2E_TEST ? [ // include only required networks in E2E tests local, From 9fab3dc4a04e306a422775e8e123f36589e91204 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Thu, 26 Dec 2024 20:00:01 +0700 Subject: [PATCH 11/20] dev: comments --- packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 2 +- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 524e5782ca..be7a8f567d 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -17,6 +17,6 @@ export function shortenTxHash(txHash: string) { } export const isTestingEnvironment = + process.env.NODE_ENV !== 'production' || // `NODE_ENV` defaults to `production` in prod / vercel-preview mode (typeof window !== 'undefined' && !!window.Cypress) || - process.env.NODE_ENV !== 'production' || process.env.NEXT_PUBLIC_IS_E2E_TEST diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index cc70025f06..6d08df5b53 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -47,9 +47,9 @@ const chainList = process.env.NEXT_PUBLIC_IS_E2E_TEST local, arbitrumLocal, l3Local, - sepolia, - arbitrumSepolia, - mainnet + sepolia, // required for cctp + arbitrumSepolia, // required for cctp + mainnet // required for import token test ] : [...defaultChains, ...wagmiOrbitChains, ...customChains] From fd36e4c55903ea346ea1d7d84108c0571af87c66 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Thu, 26 Dec 2024 20:02:21 +0700 Subject: [PATCH 12/20] updated comment --- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 6d08df5b53..786273019e 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -47,8 +47,8 @@ const chainList = process.env.NEXT_PUBLIC_IS_E2E_TEST local, arbitrumLocal, l3Local, - sepolia, // required for cctp - arbitrumSepolia, // required for cctp + sepolia, // required for testing cctp + arbitrumSepolia, // required for testing cctp mainnet // required for import token test ] : [...defaultChains, ...wagmiOrbitChains, ...customChains] From 693d3f1f3697802a2e6b3c0e31b9129588f9d41b Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Thu, 26 Dec 2024 20:08:14 +0700 Subject: [PATCH 13/20] dev: update code --- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 786273019e..85c78b441d 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -16,6 +16,7 @@ import { base, baseSepolia } from './wagmiAdditionalNetworks' +import { isTestingEnvironment } from '../CommonUtils' import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' @@ -41,9 +42,8 @@ const defaultChains = [ holesky ] -const chainList = process.env.NEXT_PUBLIC_IS_E2E_TEST +const chainList = isTestingEnvironment ? [ - // include only required networks in E2E tests local, arbitrumLocal, l3Local, From 3dd658dcad036181bc9bf7f92192bce5a0b29941 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 27 Dec 2024 17:39:15 +0700 Subject: [PATCH 14/20] dev: test --- .../src/components/TransferPanel/TransferPanel.tsx | 1 + packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx b/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx index 5710d4ba57..4d8b28cd9f 100644 --- a/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx +++ b/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx @@ -941,6 +941,7 @@ export function TransferPanel() { return transfer() } + console.log({ xxxxx: process.env.NODE_ENV }) return ( <> Date: Fri, 27 Dec 2024 18:22:11 +0700 Subject: [PATCH 15/20] dev: cypress test --- .../src/util/CommonUtils.ts | 3 +-- .../src/util/orbitChainsList.ts | 2 +- .../src/util/wagmi/setup.ts | 22 +++++++++---------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index f4f93bc5fd..3269c97a45 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -17,6 +17,5 @@ export function shortenTxHash(txHash: string) { } export const isTestingEnvironment = - process.env.NODE_ENV !== 'production' || // `NODE_ENV` defaults to `production` in prod / vercel-preview mode - process.env.NEXT_PUBLIC_IS_E2E_TEST || + process.env.NODE_ENV !== 'production' || (typeof window !== 'undefined' && !!window.Cypress) diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index 759a9224b6..74df6e0f7b 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -59,7 +59,7 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { - if (process.env.NEXT_PUBLIC_IS_E2E_TEST) { + if (typeof window !== 'undefined' && !!window.Cypress) { // During E2E tests, only return local chains return Object.values(orbitChains).filter( chain => chain.chainId === ChainId.L3Local diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 85c78b441d..9f2d115ad6 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -16,7 +16,6 @@ import { base, baseSepolia } from './wagmiAdditionalNetworks' -import { isTestingEnvironment } from '../CommonUtils' import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' @@ -42,16 +41,17 @@ const defaultChains = [ holesky ] -const chainList = isTestingEnvironment - ? [ - local, - arbitrumLocal, - l3Local, - sepolia, // required for testing cctp - arbitrumSepolia, // required for testing cctp - mainnet // required for import token test - ] - : [...defaultChains, ...wagmiOrbitChains, ...customChains] +const chainList = + typeof window !== 'undefined' && !!window.Cypress + ? [ + local, + arbitrumLocal, + l3Local, + sepolia, // required for testing cctp + arbitrumSepolia, // required for testing cctp + mainnet // required for import token test + ] + : [...defaultChains, ...wagmiOrbitChains, ...customChains] const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID! From a4d39e9120b6faa158aa70f9d9f13de578b7f303 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 27 Dec 2024 18:26:12 +0700 Subject: [PATCH 16/20] dev: e2e testing env --- .../TransferPanel/TransferPanel.tsx | 1 - .../src/util/CommonUtils.ts | 6 +++-- .../src/util/orbitChainsList.ts | 3 ++- .../src/util/wagmi/setup.ts | 22 +++++++++---------- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx b/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx index 4d8b28cd9f..5710d4ba57 100644 --- a/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx +++ b/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx @@ -941,7 +941,6 @@ export function TransferPanel() { return transfer() } - console.log({ xxxxx: process.env.NODE_ENV }) return ( <> chain.chainId === ChainId.L3Local diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 9f2d115ad6..22d15f12cc 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -20,6 +20,7 @@ import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' import { customInfuraProvider } from '../infura' +import { isE2eTestingEnvironment } from '../CommonUtils' const customChains = getCustomChainsFromLocalStorage().map(chain => getWagmiChain(chain.chainId) @@ -41,17 +42,16 @@ const defaultChains = [ holesky ] -const chainList = - typeof window !== 'undefined' && !!window.Cypress - ? [ - local, - arbitrumLocal, - l3Local, - sepolia, // required for testing cctp - arbitrumSepolia, // required for testing cctp - mainnet // required for import token test - ] - : [...defaultChains, ...wagmiOrbitChains, ...customChains] +const chainList = isE2eTestingEnvironment + ? [ + local, + arbitrumLocal, + l3Local, + sepolia, // required for testing cctp + arbitrumSepolia, // required for testing cctp + mainnet // required for import token test + ] + : [...defaultChains, ...wagmiOrbitChains, ...customChains] const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID! From 818d34ffa0d59a205ff5274f85cc4469ec29eea3 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 27 Dec 2024 18:33:11 +0700 Subject: [PATCH 17/20] dev: testing --- .../src/util/CommonUtils.ts | 2 +- .../src/util/wagmi/setup.ts | 31 ++++++++++++++++--- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 78b2a07ec5..a37a7818c9 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -20,4 +20,4 @@ export const isE2eTestingEnvironment = typeof window !== 'undefined' && !!window.Cypress export const isTestingEnvironment = - process.env.NODE_ENV !== 'production' || isE2eTestingEnvironment + isE2eTestingEnvironment || process.env.NODE_ENV !== 'production' // Test env = E2E or any development (non-preview/prod environment) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 22d15f12cc..462c437487 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -16,11 +16,11 @@ import { base, baseSepolia } from './wagmiAdditionalNetworks' +import { isTestingEnvironment, isE2eTestingEnvironment } from '../CommonUtils' import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' import { customInfuraProvider } from '../infura' -import { isE2eTestingEnvironment } from '../CommonUtils' const customChains = getCustomChainsFromLocalStorage().map(chain => getWagmiChain(chain.chainId) @@ -42,8 +42,10 @@ const defaultChains = [ holesky ] -const chainList = isE2eTestingEnvironment - ? [ +const getChainList = () => { + // for E2E tests, only have local + minimal required chains + if (isE2eTestingEnvironment) { + return [ local, arbitrumLocal, l3Local, @@ -51,7 +53,28 @@ const chainList = isE2eTestingEnvironment arbitrumSepolia, // required for testing cctp mainnet // required for import token test ] - : [...defaultChains, ...wagmiOrbitChains, ...customChains] + } + + // for local env, have all local + default + user added chains + if (isTestingEnvironment) { + return [ + ...defaultChains, + // Orbit chains + ...wagmiOrbitChains, + // add local environments during testing + local, + arbitrumLocal, + l3Local, + // user-added custom chains + ...customChains + ] + } + + // for preview + production env, return all non-local chains + return [...defaultChains, ...wagmiOrbitChains, ...customChains] +} + +const chainList = getChainList() const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID! From 6272440197e353caecac92d280e6e8bcb5f6a8bc Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 10 Jan 2025 23:02:17 +0530 Subject: [PATCH 18/20] dev: updated naming --- .../src/components/common/ProjectsListing.tsx | 4 ++-- packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 2 +- packages/arb-token-bridge-ui/src/util/wagmi/setup.ts | 7 +++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx index 24169687dc..4c5e91dcd4 100644 --- a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx +++ b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx @@ -11,7 +11,7 @@ import { getBridgeUiConfigForChain } from '../../util/bridgeUiConfig' import { getChainQueryParamForChain } from '../../types/ChainQueryParam' import { trackEvent } from '../../util/AnalyticsUtils' import { useIsTestnetMode } from '../../hooks/useIsTestnetMode' -import { isTestingEnvironment } from '../../util/CommonUtils' +import { isDevelopmentEnvironment } from '../../util/CommonUtils' const shuffleArray = (array: PortalProject[]) => { return array.sort(() => Math.random() - 0.5) @@ -54,7 +54,7 @@ const fetchProjects = async ( } if (isTestnetMode) { - return isTestingEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production + return isDevelopmentEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production } try { diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index a37a7818c9..157f772a06 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -19,5 +19,5 @@ export function shortenTxHash(txHash: string) { export const isE2eTestingEnvironment = typeof window !== 'undefined' && !!window.Cypress -export const isTestingEnvironment = +export const isDevelopmentEnvironment = isE2eTestingEnvironment || process.env.NODE_ENV !== 'production' // Test env = E2E or any development (non-preview/prod environment) diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 462c437487..f515f80186 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -16,7 +16,10 @@ import { base, baseSepolia } from './wagmiAdditionalNetworks' -import { isTestingEnvironment, isE2eTestingEnvironment } from '../CommonUtils' +import { + isDevelopmentEnvironment, + isE2eTestingEnvironment +} from '../CommonUtils' import { getCustomChainsFromLocalStorage, ChainId, rpcURLs } from '../networks' import { getOrbitChains } from '../orbitChainsList' import { getWagmiChain } from './getWagmiChain' @@ -56,7 +59,7 @@ const getChainList = () => { } // for local env, have all local + default + user added chains - if (isTestingEnvironment) { + if (isDevelopmentEnvironment) { return [ ...defaultChains, // Orbit chains From 4614bec88f20194b30c40d718a52f442b9ca87f0 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 10 Jan 2025 23:16:14 +0530 Subject: [PATCH 19/20] review comment --- packages/arb-token-bridge-ui/src/util/CommonUtils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 157f772a06..c1942ccdea 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -19,5 +19,4 @@ export function shortenTxHash(txHash: string) { export const isE2eTestingEnvironment = typeof window !== 'undefined' && !!window.Cypress -export const isDevelopmentEnvironment = - isE2eTestingEnvironment || process.env.NODE_ENV !== 'production' // Test env = E2E or any development (non-preview/prod environment) +export const isDevelopmentEnvironment = process.env.NODE_ENV === 'development' From a255b5a76e58377582820a4f861e0e7d428861c4 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Mon, 13 Jan 2025 18:29:32 +0530 Subject: [PATCH 20/20] dev: conflict --- packages/arb-token-bridge-ui/src/util/orbitChainsList.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index 96ae4f52d6..8444f45ca0 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -1,6 +1,7 @@ import { NativeCurrencyBase } from '../hooks/useNativeCurrency' +import { ChainId } from '../types/ChainId' import { isE2eTestingEnvironment } from './CommonUtils' -import { ChainWithRpcUrl, ChainId } from './networks' +import { ChainWithRpcUrl } from './networks' import orbitChainsData from './orbitChainsData.json' export type NetworkType =