From 846cc24bdd7a96ba4b9559ba2941ec63ac939a6d Mon Sep 17 00:00:00 2001 From: aelmanaa Date: Mon, 4 Dec 2023 16:35:03 +0100 Subject: [PATCH 01/29] ccip v1.2.0 testnet --- src/config/data/ccip/data.ts | 181 +++-- src/config/data/ccip/types.ts | 5 + .../ccip/{ => v1_0_0}/mainnet/chains.json | 0 .../data/ccip/{ => v1_0_0}/mainnet/lanes.json | 0 .../ccip/{ => v1_0_0}/mainnet/tokens.json | 0 .../ccip/{ => v1_0_0}/testnet/chains.json | 0 .../data/ccip/{ => v1_0_0}/testnet/lanes.json | 0 .../ccip/{ => v1_0_0}/testnet/tokens.json | 0 .../data/ccip/v1_2_0/testnet/chains.json | 32 + .../data/ccip/v1_2_0/testnet/lanes.json | 654 ++++++++++++++++++ .../data/ccip/v1_2_0/testnet/tokens.json | 245 +++++++ src/config/sidebar.ts | 12 +- src/content/ccip/supported-networks/index.mdx | 7 +- .../{ => v1_0_0}/mainnet.mdx | 4 +- .../supported-networks/v1_0_0/testnet.mdx | 17 + .../{ => v1_2_0}/testnet.mdx | 4 +- .../ccip/components/NetworkDropdown.tsx | 39 +- .../supported-networks/ChainConfig.astro | 10 +- .../supported-networks/LaneConfig.astro | 7 +- .../components/supported-networks/Main.astro | 12 +- src/features/redirects/redirects.json | 10 + 21 files changed, 1162 insertions(+), 77 deletions(-) rename src/config/data/ccip/{ => v1_0_0}/mainnet/chains.json (100%) rename src/config/data/ccip/{ => v1_0_0}/mainnet/lanes.json (100%) rename src/config/data/ccip/{ => v1_0_0}/mainnet/tokens.json (100%) rename src/config/data/ccip/{ => v1_0_0}/testnet/chains.json (100%) rename src/config/data/ccip/{ => v1_0_0}/testnet/lanes.json (100%) rename src/config/data/ccip/{ => v1_0_0}/testnet/tokens.json (100%) create mode 100644 src/config/data/ccip/v1_2_0/testnet/chains.json create mode 100644 src/config/data/ccip/v1_2_0/testnet/lanes.json create mode 100644 src/config/data/ccip/v1_2_0/testnet/tokens.json rename src/content/ccip/supported-networks/{ => v1_0_0}/mainnet.mdx (75%) create mode 100644 src/content/ccip/supported-networks/v1_0_0/testnet.mdx rename src/content/ccip/supported-networks/{ => v1_2_0}/testnet.mdx (79%) diff --git a/src/config/data/ccip/data.ts b/src/config/data/ccip/data.ts index 5ffbcbc4368..f0b4ff5378c 100644 --- a/src/config/data/ccip/data.ts +++ b/src/config/data/ccip/data.ts @@ -1,83 +1,161 @@ -import { ChainsConfig, LanesConfig, TokensConfig, Environment } from "./types" +import { ChainsConfig, LanesConfig, TokensConfig, Environment, Version } from "./types" // For mainnet -import chainsMainnet from "@config/data/ccip/mainnet/chains.json" -import lanesMainnet from "@config/data/ccip/mainnet/lanes.json" -import tokensMainnet from "@config/data/ccip/mainnet//tokens.json" +import chainsMainnetv100 from "@config/data/ccip/v1_0_0/mainnet/chains.json" +import lanesMainnetv100 from "@config/data/ccip/v1_0_0/mainnet/lanes.json" +import tokensMainnetv100 from "@config/data/ccip/v1_0_0/mainnet/tokens.json" // For testnet -import chainsTestnet from "@config/data/ccip/testnet/chains.json" -import lanesTestnet from "@config/data/ccip/testnet/lanes.json" -import tokensTestnet from "@config/data/ccip/testnet/tokens.json" +import chainsTestnetv120 from "@config/data/ccip/v1_2_0/testnet/chains.json" +import lanesTestnetv120 from "@config/data/ccip/v1_2_0/testnet/lanes.json" +import tokensTestnetv120 from "@config/data/ccip/v1_2_0/testnet/tokens.json" + +import chainsTestnetv100 from "@config/data/ccip/v1_0_0/testnet/chains.json" +import lanesTestnetv100 from "@config/data/ccip/v1_0_0/testnet/lanes.json" +import tokensTestnetv100 from "@config/data/ccip/v1_0_0/testnet/tokens.json" import { SupportedChain } from "@config/types" import { supportedChainToChainInRdd } from "@features/utils" -export const loadReferenceData = (environment: Environment) => { - let chainsReferenceData: ChainsConfig, lanesReferenceData: LanesConfig, tokensReferenceData: TokensConfig - switch ( - environment // Make sure to use the parameter 'environment', not the type 'Environment' - ) { - case Environment.Mainnet: - chainsReferenceData = chainsMainnet as unknown as ChainsConfig - lanesReferenceData = lanesMainnet as unknown as LanesConfig - tokensReferenceData = tokensMainnet as unknown as TokensConfig +export const loadReferenceData = ({ environment, version }: { environment: Environment; version: Version }) => { + let chainsReferenceData: ChainsConfig + let lanesReferenceData: LanesConfig + let tokensReferenceData: TokensConfig + + if (environment === Environment.Mainnet && version === Version.V1_0_0) { + chainsReferenceData = chainsMainnetv100 as unknown as ChainsConfig + lanesReferenceData = lanesMainnetv100 as unknown as LanesConfig + tokensReferenceData = tokensMainnetv100 as unknown as TokensConfig + } else if (environment === Environment.Testnet && version === Version.V1_2_0) { + chainsReferenceData = chainsTestnetv120 as unknown as ChainsConfig + lanesReferenceData = lanesTestnetv120 as unknown as LanesConfig + tokensReferenceData = tokensTestnetv120 as unknown as TokensConfig + } else if (environment === Environment.Testnet && version === Version.V1_0_0) { + chainsReferenceData = chainsTestnetv100 as unknown as ChainsConfig + lanesReferenceData = lanesTestnetv100 as unknown as LanesConfig + tokensReferenceData = tokensTestnetv100 as unknown as TokensConfig + } else { + throw new Error(`Invalid environment/version combination: ${environment}/${version}`) + } + + return { chainsReferenceData, lanesReferenceData, tokensReferenceData } +} + +export const getAllChains = ({ + mainnetVersion, + testnetVersion, +}: { + mainnetVersion: Version + testnetVersion: Version +}) => { + let chainsMainnetKeys: string[] = [] + let chainsTestnetKeys: string[] = [] + + switch (mainnetVersion) { + case Version.V1_0_0: + chainsMainnetKeys = Object.keys(chainsMainnetv100) + break + default: + throw new Error(`Invalid mainnet version: ${mainnetVersion}`) + } + + switch (testnetVersion) { + case Version.V1_0_0: + chainsTestnetKeys = Object.keys(chainsTestnetv100) break - case Environment.Testnet: - chainsReferenceData = chainsTestnet as unknown as ChainsConfig - lanesReferenceData = lanesTestnet as unknown as LanesConfig - tokensReferenceData = tokensTestnet as unknown as TokensConfig + case Version.V1_2_0: + chainsTestnetKeys = Object.keys(chainsTestnetv120) break default: - throw Error(`Wrong environment ${environment}`) + throw new Error(`Invalid testnet version: ${testnetVersion}`) } - return { chainsReferenceData, lanesReferenceData, tokensReferenceData } + return [...chainsMainnetKeys, ...chainsTestnetKeys] } -export const allChains = [...Object.keys(chainsMainnet), ...Object.keys(chainsTestnet)] - const CCIPTokenImage = "https://images.prismic.io/data-chain-link/86d5bc29-7511-49f5-bbd8-18a8ebc008b0_ccip-icon-white.png?auto=compress,format" -export const isBnMRdd = (chainRdd: string) => { - return tokensTestnet["CCIP-BnM"][chainRdd] +const isBnMRdd = ({ chainRdd, version }: { chainRdd: string; version: Version }) => { + let tokensTestData + + switch (version) { + case Version.V1_0_0: + tokensTestData = tokensTestnetv100["CCIP-BnM"] + break + case Version.V1_2_0: + tokensTestData = tokensTestnetv120["CCIP-BnM"] + break + default: + throw new Error(`Invalid testnet version: ${version}`) + } + + return tokensTestData[chainRdd] } -export const isBnM = (chain: SupportedChain) => { +export const isBnM = ({ chain, version }: { chain: SupportedChain; version: Version }) => { const chainRdd = supportedChainToChainInRdd(chain) - return isBnMRdd(chainRdd) + return isBnMRdd({ chainRdd, version }) } -export const isLnMRdd = (chainRdd: string) => { +export const isLnMRdd = ({ chainRdd, version }: { chainRdd: string; version: Version }) => { + let tokensTestData const supportedChainForLock: SupportedChain = "ETHEREUM_SEPOLIA" + switch (version) { + case Version.V1_0_0: + tokensTestData = tokensTestnetv100["CCIP-LnM"] + break + case Version.V1_2_0: + tokensTestData = tokensTestnetv120["CCIP-LnM"] + break + default: + throw new Error(`Invalid testnet version: ${version}`) + } + return { - supported: tokensTestnet["CCIP-LnM"][chainRdd], + supported: tokensTestData[chainRdd], supportedChainForLock, - } // LnM only for Sepolia + } } -export const isLnM = (chain: SupportedChain) => { +export const isLnM = ({ chain, version }: { chain: SupportedChain; version: Version }) => { const chainRdd = supportedChainToChainInRdd(chain) - return isLnMRdd(chainRdd) + return isLnMRdd({ chainRdd, version }) } -export const isBnMOrLnMRdd = (chainRdd: string) => { - return isBnMRdd(chainRdd) || isLnMRdd(chainRdd).supported +export const isBnMOrLnMRdd = ({ chainRdd, version }: { chainRdd: string; version: Version }) => { + return isBnMRdd({ chainRdd, version }) || isLnMRdd({ chainRdd, version }).supported } -export const isBnMOrLnM = (chain: SupportedChain) => { - return isBnM(chain) || isLnM(chain) +export const isBnMOrLnM = ({ chain, version }: { chain: SupportedChain; version: Version }) => { + return isBnM({ chain, version }) || isLnM({ chain, version }) } -export const getBnMParams = (supportedChain: SupportedChain) => { +export const getBnMParams = ({ supportedChain, version }: { supportedChain: SupportedChain; version: Version }) => { const supportedChainRdd = supportedChainToChainInRdd(supportedChain) - if (!(supportedChainRdd in chainsTestnet)) return undefined // No BnM for mainnets - const token = tokensTestnet["CCIP-BnM"][supportedChainRdd] + + let chainsTestData + let tokensTestData + switch (version) { + case Version.V1_0_0: + chainsTestData = chainsTestnetv100 + tokensTestData = tokensTestnetv100["CCIP-BnM"] + break + case Version.V1_2_0: + chainsTestData = chainsTestnetv120 + tokensTestData = tokensTestnetv120["CCIP-BnM"] + break + default: + throw new Error(`Invalid testnet version: ${version}`) + } + + if (!(supportedChainRdd in chainsTestData)) return undefined // No BnM for mainnets + const token = tokensTestData[supportedChainRdd] if (!token || Object.keys(token).length === 0) { console.warn(`No BnM found for testnet ${supportedChain}`) return undefined } + const { tokenAddress: address, symbol, @@ -98,23 +176,40 @@ export const getBnMParams = (supportedChain: SupportedChain) => { } } -export const getLnMParams = (supportedChain: SupportedChain) => { +export const getLnMParams = ({ supportedChain, version }: { supportedChain: SupportedChain; version: Version }) => { const supportedChainRdd = supportedChainToChainInRdd(supportedChain) - if (!isLnMRdd(supportedChainRdd).supported) return undefined - const token = tokensTestnet["CCIP-LnM"][supportedChainRdd] + + if (!isLnMRdd({ chainRdd: supportedChainRdd, version }).supported) return undefined + + let tokensTestData + switch (version) { + case Version.V1_0_0: + tokensTestData = tokensTestnetv100["CCIP-LnM"] + break + case Version.V1_2_0: + tokensTestData = tokensTestnetv120["CCIP-LnM"] + break + default: + throw new Error(`Invalid testnet version: ${version}`) + } + + const token = tokensTestData[supportedChainRdd] if (!token || Object.keys(token).length === 0) { console.warn(`No LnM found for testnet ${supportedChain}`) return undefined } + const { tokenAddress: address, symbol, decimals, } = token as { tokenAddress: string; symbol: string; decimals: number } + if (!address || !symbol || !decimals) { console.error(`Token data not correct for LnM token on ${supportedChain}`) return undefined } + return { type: "ERC20", options: { diff --git a/src/config/data/ccip/types.ts b/src/config/data/ccip/types.ts index dac4fd4d36d..0d3af5036a4 100644 --- a/src/config/data/ccip/types.ts +++ b/src/config/data/ccip/types.ts @@ -56,3 +56,8 @@ export enum Environment { Mainnet = "mainnet", Testnet = "testnet", } + +export enum Version { + V1_0_0 = "1.0.0", + V1_2_0 = "1.2.0", +} diff --git a/src/config/data/ccip/mainnet/chains.json b/src/config/data/ccip/v1_0_0/mainnet/chains.json similarity index 100% rename from src/config/data/ccip/mainnet/chains.json rename to src/config/data/ccip/v1_0_0/mainnet/chains.json diff --git a/src/config/data/ccip/mainnet/lanes.json b/src/config/data/ccip/v1_0_0/mainnet/lanes.json similarity index 100% rename from src/config/data/ccip/mainnet/lanes.json rename to src/config/data/ccip/v1_0_0/mainnet/lanes.json diff --git a/src/config/data/ccip/mainnet/tokens.json b/src/config/data/ccip/v1_0_0/mainnet/tokens.json similarity index 100% rename from src/config/data/ccip/mainnet/tokens.json rename to src/config/data/ccip/v1_0_0/mainnet/tokens.json diff --git a/src/config/data/ccip/testnet/chains.json b/src/config/data/ccip/v1_0_0/testnet/chains.json similarity index 100% rename from src/config/data/ccip/testnet/chains.json rename to src/config/data/ccip/v1_0_0/testnet/chains.json diff --git a/src/config/data/ccip/testnet/lanes.json b/src/config/data/ccip/v1_0_0/testnet/lanes.json similarity index 100% rename from src/config/data/ccip/testnet/lanes.json rename to src/config/data/ccip/v1_0_0/testnet/lanes.json diff --git a/src/config/data/ccip/testnet/tokens.json b/src/config/data/ccip/v1_0_0/testnet/tokens.json similarity index 100% rename from src/config/data/ccip/testnet/tokens.json rename to src/config/data/ccip/v1_0_0/testnet/tokens.json diff --git a/src/config/data/ccip/v1_2_0/testnet/chains.json b/src/config/data/ccip/v1_2_0/testnet/chains.json new file mode 100644 index 00000000000..360c6bbd01f --- /dev/null +++ b/src/config/data/ccip/v1_2_0/testnet/chains.json @@ -0,0 +1,32 @@ +{ + "ethereum-testnet-sepolia": { + "chainSelector": "16015286601757825753", + "router": "0x0bf3de8c5d3e8a2b34d2beeb17abfcebaf363a59", + "feeTokens": ["LINK", "WETH"] + }, + "ethereum-testnet-goerli-optimism-1": { + "chainSelector": "2664363617261496610", + "router": "0xcc5a0b910d9e9504a7561934bed294c51285a78d", + "feeTokens": ["LINK", "WETH"] + }, + "matic-testnet": { + "chainSelector": "12532609583862916517", + "router": "0x1035cabc275068e0f4b745a29cedf38e13af41b1", + "feeTokens": ["LINK", "WMATIC"] + }, + "avalanche-fuji-testnet": { + "chainSelector": "14767482510784806043", + "router": "0xf694e193200268f9a4868e4aa017a0118c9a8177", + "feeTokens": ["LINK", "WAVAX"] + }, + "bsc-testnet": { + "chainSelector": "13264668187771770619", + "router": "0xe1053ae1857476f36a3c62580ff9b016e8ee8f6f", + "feeTokens": ["LINK", "WBNB"] + }, + "ethereum-testnet-goerli-base-1": { + "chainSelector": "5790810961207155433", + "router": "0x80af2f44ed0469018922c9f483dc5a909862fdc2", + "feeTokens": ["LINK", "WETH"] + } +} diff --git a/src/config/data/ccip/v1_2_0/testnet/lanes.json b/src/config/data/ccip/v1_2_0/testnet/lanes.json new file mode 100644 index 00000000000..1aa2b1ad50b --- /dev/null +++ b/src/config/data/ccip/v1_2_0/testnet/lanes.json @@ -0,0 +1,654 @@ +{ + "avalanche-fuji-testnet": { + "ethereum-testnet-sepolia": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-optimism-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "USDC": { + "rateLimiterConfig": { + "capacity": "100000000000", + "isEnabled": true, + "rate": "167000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "matic-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "bsc-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-base-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "USDC": { + "rateLimiterConfig": { + "capacity": "100000000000", + "isEnabled": true, + "rate": "167000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "bsc-testnet": { + "ethereum-testnet-sepolia": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "avalanche-fuji-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "matic-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-base-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "ethereum-testnet-goerli-base-1": { + "ethereum-testnet-sepolia": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-optimism-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "USDC": { + "rateLimiterConfig": { + "capacity": "100000000000", + "isEnabled": true, + "rate": "167000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "bsc-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "avalanche-fuji-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "USDC": { + "rateLimiterConfig": { + "capacity": "100000000000", + "isEnabled": true, + "rate": "167000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "ethereum-testnet-goerli-optimism-1": { + "ethereum-testnet-sepolia": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "avalanche-fuji-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "USDC": { + "rateLimiterConfig": { + "capacity": "100000000000", + "isEnabled": true, + "rate": "167000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "matic-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-base-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "USDC": { + "rateLimiterConfig": { + "capacity": "100000000000", + "isEnabled": true, + "rate": "167000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "ethereum-testnet-sepolia": { + "avalanche-fuji-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-optimism-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "matic-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "bsc-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-base-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "matic-testnet": { + "ethereum-testnet-sepolia": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "avalanche-fuji-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "ethereum-testnet-goerli-optimism-1": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "bsc-testnet": { + "supportedTokens": { + "CCIP-BnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + }, + "CCIP-LnM": { + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + }, + "rateLimiterConfig": { + "capacity": "100000000000000000000000", + "isEnabled": true, + "rate": "167000000000000000000" + } + } + } +} diff --git a/src/config/data/ccip/v1_2_0/testnet/tokens.json b/src/config/data/ccip/v1_2_0/testnet/tokens.json new file mode 100644 index 00000000000..ec04d5e5e85 --- /dev/null +++ b/src/config/data/ccip/v1_2_0/testnet/tokens.json @@ -0,0 +1,245 @@ +{ + "LINK": { + "avalanche-fuji-testnet": { + "tokenAddress": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", + "allowListEnabled": false, + "poolAddress": "0x658af0d8ecbb13c5fd5b545ac7316e50cc07cf6e", + "poolType": "lockRelease", + "name": "Chainlink Token", + "symbol": "LINK.e", + "decimals": 18 + }, + "bsc-testnet": { + "tokenAddress": "0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06", + "allowListEnabled": false, + "poolAddress": "0x8a710bbd77661d168d5a6725bd2e514ba1bff59d", + "name": "ChainLink Token", + "symbol": "LINK", + "decimals": 18 + }, + "ethereum-testnet-goerli-base-1": { + "tokenAddress": "0xd886e2286fd1073df82462ea1822119600af80b6", + "allowListEnabled": false, + "name": "ChainLink Token", + "symbol": "LINK", + "decimals": 18 + }, + "ethereum-testnet-goerli-optimism-1": { + "tokenAddress": "0xdc2CC710e42857672E7907CF474a69B63B93089f", + "allowListEnabled": false, + "poolAddress": "0xdecfaf632175915bdf38c00d9d9746e8a90a56c4", + "poolType": "lockRelease", + "name": "ChainLink Token", + "symbol": "LINK", + "decimals": 18 + }, + "ethereum-testnet-sepolia": { + "tokenAddress": "0x779877A7B0D9E8603169DdbD7836e478b4624789", + "allowListEnabled": false, + "poolAddress": "0x5344b4bf5ae39038a591866d2853b2b1db622911", + "poolType": "lockRelease", + "name": "ChainLink Token", + "symbol": "LINK", + "decimals": 18 + }, + "matic-testnet": { + "tokenAddress": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", + "allowListEnabled": false, + "poolAddress": "0x6fce09b2e74f649a4494a1844219cb0d86cfe8b7", + "poolType": "lockRelease", + "name": "ChainLink Token", + "symbol": "LINK", + "decimals": 18 + } + }, + "WAVAX": { + "avalanche-fuji-testnet": { + "tokenAddress": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", + "allowListEnabled": false, + "poolType": "lockRelease", + "name": "Wrapped AVAX", + "symbol": "WAVAX", + "decimals": 18 + } + }, + "WBNB": { + "bsc-testnet": { + "tokenAddress": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", + "allowListEnabled": false, + "name": "Wrapped BNB", + "symbol": "WBNB", + "decimals": 18 + } + }, + "WETH": { + "ethereum-testnet-goerli-base-1": { + "tokenAddress": "0x4200000000000000000000000000000000000006", + "allowListEnabled": false, + "name": "Wrapped Ether", + "symbol": "WETH", + "decimals": 18 + }, + "ethereum-testnet-goerli-optimism-1": { + "tokenAddress": "0x4200000000000000000000000000000000000006", + "allowListEnabled": false, + "name": "Wrapped Ether", + "symbol": "WETH", + "decimals": 18 + }, + "ethereum-testnet-sepolia": { + "tokenAddress": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", + "allowListEnabled": false, + "name": "Wrapped Ether", + "symbol": "WETH", + "decimals": 18 + } + }, + "WMATIC": { + "matic-testnet": { + "tokenAddress": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", + "allowListEnabled": false, + "poolType": "lockRelease", + "name": "Wrapped Matic", + "symbol": "WMATIC", + "decimals": 18 + } + }, + "USDC": { + "ethereum-testnet-goerli-optimism-1": { + "tokenAddress": "0xe05606174bac4A6364B31bd0eCA4bf4dD368f8C6", + "allowListEnabled": false, + "poolAddress": "0x4849a40e3e64c3315a8e1875525301b19fc5babd", + "name": "USD Coin", + "symbol": "USDC", + "decimals": 6 + }, + "avalanche-fuji-testnet": { + "tokenAddress": "0x5425890298aed601595a70AB815c96711a31Bc65", + "allowListEnabled": false, + "poolAddress": "0x7a4d8f8c18762d362e64b411d7490fba112811cd", + "name": "USD Coin", + "symbol": "USDC", + "decimals": 6 + }, + "ethereum-testnet-goerli-base-1": { + "tokenAddress": "0xf175520c52418dfe19c8098071a252da48cd1c19", + "allowListEnabled": false, + "poolAddress": "0x5c576130b38e914abe4f422074fd8f86d1aa829b", + "name": "USD Coin", + "symbol": "USDC", + "decimals": 6 + } + }, + "CCIP-BnM": { + "avalanche-fuji-testnet": { + "tokenAddress": "0xD21341536c5cF5EB1bcb58f6723cE26e8D8E90e4", + "allowListEnabled": false, + "poolAddress": "0xec1062cbdf4fbf31b3a6aac62b6f6f123bb70e12", + "poolType": "burnMint", + "name": "CCIP-BnM", + "symbol": "CCIP-BnM", + "decimals": 18 + }, + "bsc-testnet": { + "tokenAddress": "0xbfa2acd33ed6eec0ed3cc06bf1ac38d22b36b9e9", + "allowListEnabled": false, + "poolAddress": "0x31ede84776da37e2404ee88d71c234e92cb672e5", + "poolType": "burnMint", + "name": "CCIP-BnM", + "symbol": "CCIP-BnM", + "decimals": 18 + }, + "ethereum-testnet-goerli-base-1": { + "tokenAddress": "0xbf9036529123de264bfa0fc7362fe25b650d4b16", + "allowListEnabled": false, + "poolAddress": "0x7e4247af17f00e92d4c067170917716d987c38f4", + "poolType": "burnMint", + "name": "CCIP-BnM", + "symbol": "CCIP-BnM", + "decimals": 18 + }, + "ethereum-testnet-goerli-optimism-1": { + "tokenAddress": "0xaBfE9D11A2f1D61990D1d253EC98B5Da00304F16", + "allowListEnabled": false, + "poolAddress": "0x8668ab4eb1dffe11db7491ebce633b050bb29cda", + "poolType": "burnMint", + "name": "CCIP-BnM", + "symbol": "CCIP-BnM", + "decimals": 18 + }, + "ethereum-testnet-sepolia": { + "tokenAddress": "0xFd57b4ddBf88a4e07fF4e34C487b99af2Fe82a05", + "allowListEnabled": false, + "poolAddress": "0x38d1ef9619cd40cf5482c045660ae7c82ada062c", + "poolType": "burnMint", + "name": "CCIP-BnM", + "symbol": "CCIP-BnM", + "decimals": 18 + }, + "matic-testnet": { + "tokenAddress": "0xf1E3A5842EeEF51F2967b3F05D45DD4f4205FF40", + "allowListEnabled": false, + "poolAddress": "0xa6c88f12ae1aa9c333e86ccbdd2957cac2e5f58c", + "poolType": "burnMint", + "name": "CCIP-BnM", + "symbol": "CCIP-BnM", + "decimals": 18 + } + }, + "CCIP-LnM": { + "avalanche-fuji-testnet": { + "tokenAddress": "0x70f5c5c40b873ea597776da2c21929a8282a3b35", + "allowListEnabled": false, + "poolAddress": "0x583dbe5f15dea93f321826d856994e53e01cd498", + "poolType": "lockRelease", + "name": "CCIP_LnM", + "symbol": "CCIP_LnM", + "decimals": 18 + }, + "bsc-testnet": { + "tokenAddress": "0x79a4fc27f69323660f5bfc12dee21c3cc14f5901", + "allowListEnabled": false, + "poolAddress": "0x44a27e50bec104518823c928a5560d2c69281e61", + "poolType": "lockRelease", + "name": "CCIP_LnM", + "symbol": "CCIP_LnM", + "decimals": 18 + }, + "ethereum-testnet-goerli-base-1": { + "tokenAddress": "0x73ed16c1a61b098fd6924cce5cc6a9a30348d944", + "allowListEnabled": false, + "poolAddress": "0x6becd9eb4df6bf59152344fbcdc7919b9f38c6ef", + "poolType": "lockRelease", + "name": "CCIP_LnM", + "symbol": "CCIP_LnM", + "decimals": 18 + }, + "ethereum-testnet-goerli-optimism-1": { + "tokenAddress": "0x835833d556299cdec623e7980e7369145b037591", + "allowListEnabled": false, + "poolAddress": "0xf66d20ac7b981e249fce8fb8ddae3974f5559735", + "poolType": "lockRelease", + "name": "CCIP_LnM", + "symbol": "CCIP_LnM", + "decimals": 18 + }, + "ethereum-testnet-sepolia": { + "tokenAddress": "0x466D489b6d36E7E3b824ef491C225F5830E81cC1", + "allowListEnabled": false, + "poolAddress": "0x09EC713b931586eD6Aa5425eC4d9dA078a47B6b1", + "poolType": "lockRelease", + "name": "CCIP_LnM", + "symbol": "CCIP_LnM", + "decimals": 18 + }, + "matic-testnet": { + "tokenAddress": "0xc1c76a8c5bfde1be034bbcd930c668726e7c1987", + "allowListEnabled": false, + "poolAddress": "0x83369f8586ba000a87db278549b9a2370dc626b6", + "poolType": "lockRelease", + "name": "CCIP_LnM", + "symbol": "CCIP_LnM", + "decimals": 18 + } + } +} diff --git a/src/config/sidebar.ts b/src/config/sidebar.ts index 4cb578323be..4cc1810e3f9 100644 --- a/src/config/sidebar.ts +++ b/src/config/sidebar.ts @@ -823,12 +823,16 @@ export const SIDEBAR: Partial> = { url: "ccip/supported-networks", children: [ { - title: "Mainnet", - url: "ccip/supported-networks/mainnet", + title: "Mainnet v1.0.0", + url: "ccip/supported-networks/v1_0_0/mainnet", }, { - title: "Testnet", - url: "ccip/supported-networks/testnet", + title: "Testnet v1.2.0", + url: "ccip/supported-networks/v1_2_0/testnet", + }, + { + title: "Testnet v1.0.0 (Deprecated)", + url: "ccip/supported-networks/v1_0_0/testnet", }, ], }, diff --git a/src/content/ccip/supported-networks/index.mdx b/src/content/ccip/supported-networks/index.mdx index e494cebbb29..c9467a33902 100644 --- a/src/content/ccip/supported-networks/index.mdx +++ b/src/content/ccip/supported-networks/index.mdx @@ -6,5 +6,8 @@ title: "CCIP Supported Networks" Click on the following links to find the latest configuration for Chainlink CCIP: -- [Mainnets](/ccip/supported-networks/mainnet) -- [Testnets](/ccip/supported-networks/testnet) +- Mainnets: + - [v1.0.0](/ccip/supported-networks/v1_0_0/mainnet) +- Testnets: + - [v1.2.0](/ccip/supported-networks/v1_2_0/testnet) + - [v1.0.0 (Deprecated)](/ccip/supported-networks/v1_0_0/testnet) diff --git a/src/content/ccip/supported-networks/mainnet.mdx b/src/content/ccip/supported-networks/v1_0_0/mainnet.mdx similarity index 75% rename from src/content/ccip/supported-networks/mainnet.mdx rename to src/content/ccip/supported-networks/v1_0_0/mainnet.mdx index 2e1cc37447b..d2c28362236 100644 --- a/src/content/ccip/supported-networks/mainnet.mdx +++ b/src/content/ccip/supported-networks/v1_0_0/mainnet.mdx @@ -6,11 +6,11 @@ title: "CCIP Supported Networks Mainnet" import { Aside } from "@components" import Main from "@features/ccip/components/supported-networks/Main.astro" -import { Environment } from "@config/data/ccip" +import { Environment, Version } from "@config/data/ccip" -
+
diff --git a/src/content/ccip/supported-networks/v1_0_0/testnet.mdx b/src/content/ccip/supported-networks/v1_0_0/testnet.mdx new file mode 100644 index 00000000000..e66db54e1d6 --- /dev/null +++ b/src/content/ccip/supported-networks/v1_0_0/testnet.mdx @@ -0,0 +1,17 @@ +--- +section: ccip +date: Last Modified +title: "CCIP Supported Networks Testnet - v1.0 (Deprecated)" +--- + +import { Aside } from "@components" +import Main from "@features/ccip/components/supported-networks/Main.astro" +import { Environment, Version } from "@config/data/ccip" + + + +
diff --git a/src/content/ccip/supported-networks/testnet.mdx b/src/content/ccip/supported-networks/v1_2_0/testnet.mdx similarity index 79% rename from src/content/ccip/supported-networks/testnet.mdx rename to src/content/ccip/supported-networks/v1_2_0/testnet.mdx index f47a12fa26d..25e35124bc2 100644 --- a/src/content/ccip/supported-networks/testnet.mdx +++ b/src/content/ccip/supported-networks/v1_2_0/testnet.mdx @@ -6,7 +6,7 @@ title: "CCIP Supported Networks Testnet" import { Aside } from "@components" import Main from "@features/ccip/components/supported-networks/Main.astro" -import { Environment } from "@config/data/ccip" +import { Environment, Version } from "@config/data/ccip" -
+
diff --git a/src/features/ccip/components/NetworkDropdown.tsx b/src/features/ccip/components/NetworkDropdown.tsx index 919dd8f5b3d..d8a1ebcecfb 100644 --- a/src/features/ccip/components/NetworkDropdown.tsx +++ b/src/features/ccip/components/NetworkDropdown.tsx @@ -6,7 +6,16 @@ import { MetaMaskInpageProvider } from "@metamask/providers" import { ethers, Contract, utils } from "ethers" import { burnMintAbi } from "@features/abi" import { SupportedChain } from "@config" -import { allChains, getBnMParams, getLnMParams, isBnMOrLnMRdd, isLnM, isBnM, isBnMOrLnM } from "@config/data/ccip" +import { + getAllChains, + getBnMParams, + getLnMParams, + isBnMOrLnMRdd, + isLnM, + isBnM, + isBnMOrLnM, + Version, +} from "@config/data/ccip" import { Toast } from "./Toast" import { directoryToSupportedChain, @@ -48,7 +57,9 @@ export const NetworkDropdown = ({ userAddress }: Props) => { detailsElementRef.current.open = false }, [detailsElementRef]) - const supportedChains = allChains.map((element) => directoryToSupportedChain(element)) + const supportedChains = getAllChains({ mainnetVersion: Version.V1_0, testnetVersion: Version.V1_2 }).map((element) => + directoryToSupportedChain(element) + ) const supportedChainFromHexChainId = (chainHexId: string) => { const supportedChain = supportedChains.find((supportedChain) => { @@ -148,7 +159,7 @@ export const NetworkDropdown = ({ userAddress }: Props) => { const addBnMAssetToWallet = async () => { if (!activeChain) return - const params = getBnMParams(activeChain) + const params = getBnMParams({ supportedChain: activeChain, version: Version.V1_2 }) if (!params) return validateEthereumApi(window.ethereum) const success = await window.ethereum.request({ @@ -167,7 +178,7 @@ export const NetworkDropdown = ({ userAddress }: Props) => { const addLnMAssetToWallet = async () => { if (!activeChain) return - const params = getLnMParams(activeChain) + const params = getLnMParams({ supportedChain: activeChain, version: Version.V1_2 }) if (!params) return validateEthereumApi(window.ethereum) const success = await window.ethereum.request({ @@ -189,7 +200,7 @@ export const NetworkDropdown = ({ userAddress }: Props) => { setMintBnMTokenButtonDisabled(true) if (!activeChain) return - const params = getBnMParams(activeChain) + const params = getBnMParams({ supportedChain: activeChain, version: Version.V1_2 }) if (!params) return const { address: ccipBNMContractAddress } = params.options const provider = new ethers.providers.Web3Provider(window.ethereum) @@ -229,7 +240,7 @@ export const NetworkDropdown = ({ userAddress }: Props) => { setMintLnMTokenButtonDisabled(true) if (!activeChain) return - const params = getLnMParams(activeChain) + const params = getLnMParams({ supportedChain: activeChain, version: Version.V1_2 }) if (!params) return const { address: ccipLNMContractAddress } = params.options const provider = new ethers.providers.Web3Provider(window.ethereum) @@ -321,8 +332,8 @@ export const NetworkDropdown = ({ userAddress }: Props) => {
{activeChain ? (
    - {allChains.map((chainRdd) => { - if (isBnMOrLnMRdd(chainRdd)) { + {getAllChains({ mainnetVersion: Version.V1_0, testnetVersion: Version.V1_2 }).map((chainRdd) => { + if (isBnMOrLnMRdd({ chainRdd, version: Version.V1_2 })) { const supportedChain = directoryToSupportedChain(chainRdd) const supportedChainTitle = getTitle(supportedChain) const activeChainTitle = getTitle(activeChain) @@ -380,10 +391,10 @@ export const NetworkDropdown = ({ userAddress }: Props) => {
{activeChain !== undefined ? ( - isBnMOrLnM(activeChain) ? ( + isBnMOrLnM({ chain: activeChain, version: Version.V1_2 }) ? ( <>
- {activeChain && isBnM(activeChain) && ( + {activeChain && isBnM({ chain: activeChain, version: Version.V1_2 }) && (
)} - {activeChain && isLnM(activeChain).supported && ( + {activeChain && isLnM({ chain: activeChain, version: Version.V1_2 }).supported && (

- {isLnM(activeChain).supportedChainForLock === activeChain ? ( + {isLnM({ chain: activeChain, version: Version.V1_2 }).supportedChainForLock === activeChain ? ( @@ -432,8 +443,8 @@ export const NetworkDropdown = ({ userAddress }: Props) => { <>

Chainlink CCIP does not support this network. Switch your wallet to a supported network.