From 83ca94cdb04a458e8f26e227a7884424f8dbf230 Mon Sep 17 00:00:00 2001 From: Paul <108695806+pxrl@users.noreply.github.com> Date: Wed, 2 Apr 2025 07:58:19 +0000 Subject: [PATCH] improve(NetworkUtils): Use constants CCTP information --- src/constants.ts | 2 ++ src/utils/NetworkUtils.ts | 45 +++++++++++---------------------------- 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index ad67b5bf2..7b6391c77 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -2,10 +2,12 @@ import { constants as ethersConstants } from "ethers"; import { CHAIN_IDs, TOKEN_SYMBOLS_MAP } from "@across-protocol/constants"; export { + CCTP_NO_DOMAIN, ChainFamily, CHAIN_IDs, MAINNET_CHAIN_IDs, PUBLIC_NETWORKS, + PRODUCTION_NETWORKS, TESTNET_CHAIN_IDs, TOKEN_SYMBOLS_MAP, } from "@across-protocol/constants"; diff --git a/src/utils/NetworkUtils.ts b/src/utils/NetworkUtils.ts index 7d8aa4836..551415391 100644 --- a/src/utils/NetworkUtils.ts +++ b/src/utils/NetworkUtils.ts @@ -1,4 +1,12 @@ -import { ChainFamily, CHAIN_IDs, MAINNET_CHAIN_IDs, PUBLIC_NETWORKS, TESTNET_CHAIN_IDs } from "../constants"; +import { + CCTP_NO_DOMAIN, + ChainFamily, + CHAIN_IDs, + MAINNET_CHAIN_IDs, + PRODUCTION_NETWORKS, + PUBLIC_NETWORKS, + TESTNET_CHAIN_IDs, +} from "../constants"; export const hreNetworks: Record = { 666: "Hardhat1", @@ -88,24 +96,6 @@ export function chainIsArbitrum(chainId: number): boolean { return [CHAIN_IDs.ARBITRUM, CHAIN_IDs.ARBITRUM_SEPOLIA].includes(chainId); } -/** - * Determines whether a chain ID is an Aleph0 implementation - * @param chainId Chain ID to evaluate - * @returns True if chainId is an Aleph0 chain, otherwise false. - */ -export function chainIsAlephZero(chainId: number): boolean { - return [CHAIN_IDs.ALEPH_ZERO].includes(chainId); -} - -/** - * Determines whether a chain ID is a Lens implementation - * @param chainId Chain ID to evaluate - * @returns True if chainId is a Lens chain, otherwise false. - */ -export function chainIsLens(chainId: number): boolean { - return [CHAIN_IDs.LENS_SEPOLIA].includes(chainId); -} - /** * Determines whether a chain ID is a Linea implementation. * @param chainId Chain ID to evaluate. @@ -149,19 +139,10 @@ export function chainIsSvm(chainId: number): boolean { * @returns True if chainId is a CCTP-bridging enabled chain, otherwise false. */ export function chainIsCCTPEnabled(chainId: number): boolean { - return [ - // Mainnets - CHAIN_IDs.ARBITRUM, - CHAIN_IDs.BASE, - CHAIN_IDs.OPTIMISM, - CHAIN_IDs.POLYGON, - CHAIN_IDs.UNICHAIN, - // Testnets - CHAIN_IDs.BASE_SEPOLIA, - CHAIN_IDs.OPTIMISM_SEPOLIA, - CHAIN_IDs.ARBITRUM_SEPOLIA, - CHAIN_IDs.POLYGON_AMOY, - ].includes(chainId); + // Add chainIds to cctpExceptions to administratively disable CCTP on a chain. + // This is useful if constants has been updated to specify a CCTP domain in advance of it being activated. + const cctpExceptions: number[] = []; + return PRODUCTION_NETWORKS[chainId]?.cctpDomain !== CCTP_NO_DOMAIN && !cctpExceptions.includes(chainId); } /**