diff --git a/packages/bridge-controller/CHANGELOG.md b/packages/bridge-controller/CHANGELOG.md index 68d42dfe943..9aeb954bce3 100644 --- a/packages/bridge-controller/CHANGELOG.md +++ b/packages/bridge-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Add support for HyperEVM and MegaETH ([#7757](https://github.com/MetaMask/core/pull/7757)) + ## [65.0.1] ### Changed diff --git a/packages/bridge-controller/src/constants/bridge.ts b/packages/bridge-controller/src/constants/bridge.ts index e538dc79d5a..871962d8058 100644 --- a/packages/bridge-controller/src/constants/bridge.ts +++ b/packages/bridge-controller/src/constants/bridge.ts @@ -20,6 +20,8 @@ export const ALLOWED_BRIDGE_CHAIN_IDS = [ CHAIN_IDS.BASE, CHAIN_IDS.SEI, CHAIN_IDS.MONAD, + CHAIN_IDS.HYPEREVM, + CHAIN_IDS.MEGAETH, SolScope.Mainnet, BtcScope.Mainnet, TrxScope.Mainnet, @@ -62,6 +64,8 @@ export const DEFAULT_CHAIN_RANKING = [ { chainId: 'eip155:10', name: 'Optimism' }, { chainId: 'eip155:143', name: 'Monad' }, { chainId: 'eip155:1329', name: 'Sei' }, + { chainId: 'eip155:999', name: 'HyperEVM' }, + { chainId: 'eip155:4326', name: 'MegaETH' }, { chainId: 'eip155:324', name: 'zkSync' }, ] as const; diff --git a/packages/bridge-controller/src/constants/chains.ts b/packages/bridge-controller/src/constants/chains.ts index e5804c292b2..970e105d21b 100644 --- a/packages/bridge-controller/src/constants/chains.ts +++ b/packages/bridge-controller/src/constants/chains.ts @@ -75,6 +75,8 @@ export const CHAIN_IDS = { MODE_SEPOLIA: '0x397', MODE: '0x868b', MONAD: '0x8f', + HYPEREVM: '0x3e7', + MEGAETH: '0x10e6', } as const; export const NETWORK_TYPES = { @@ -126,6 +128,8 @@ export const MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia'; export const MODE_DISPLAY_NAME = 'Mode Mainnet'; export const SEI_DISPLAY_NAME = 'Sei Network'; export const MONAD_DISPLAY_NAME = 'Monad'; +export const HYPEREVM_DISPLAY_NAME = 'HyperEVM'; +export const MEGAETH_DISPLAY_NAME = 'MegaETH'; export const NETWORK_TO_NAME_MAP = { [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME, @@ -159,4 +163,6 @@ export const NETWORK_TO_NAME_MAP = { [CHAIN_IDS.LISK_SEPOLIA]: LISK_SEPOLIA_DISPLAY_NAME, [CHAIN_IDS.SEI]: SEI_DISPLAY_NAME, [CHAIN_IDS.MONAD]: MONAD_DISPLAY_NAME, + [CHAIN_IDS.HYPEREVM]: HYPEREVM_DISPLAY_NAME, + [CHAIN_IDS.MEGAETH]: MEGAETH_DISPLAY_NAME, } as const; diff --git a/packages/bridge-controller/src/constants/tokens.ts b/packages/bridge-controller/src/constants/tokens.ts index 5db2e6b1f58..e3245c342f2 100644 --- a/packages/bridge-controller/src/constants/tokens.ts +++ b/packages/bridge-controller/src/constants/tokens.ts @@ -57,6 +57,7 @@ const CURRENCY_SYMBOLS = { BTC: 'BTC', TRX: 'TRX', MON: 'MON', + HYPE: 'HYPE', } as const; const ETH_SWAPS_TOKEN_OBJECT = { @@ -135,6 +136,10 @@ const BASE_SWAPS_TOKEN_OBJECT = { ...ETH_SWAPS_TOKEN_OBJECT, } as const; +const MEGAETH_SWAPS_TOKEN_OBJECT = { + ...ETH_SWAPS_TOKEN_OBJECT, +} as const; + const SOLANA_SWAPS_TOKEN_OBJECT = { symbol: CURRENCY_SYMBOLS.SOL, name: 'Solana', @@ -175,6 +180,14 @@ const MONAD_SWAPS_TOKEN_OBJECT = { iconUrl: '', } as const; +const HYPEREVM_SWAPS_TOKEN_OBJECT = { + symbol: CURRENCY_SYMBOLS.HYPE, + name: 'Hyperliquid', + address: DEFAULT_TOKEN_ADDRESS, + decimals: 18, + iconUrl: '', +} as const; + export const SWAPS_CHAINID_DEFAULT_TOKEN_MAP = { [CHAIN_IDS.MAINNET]: ETH_SWAPS_TOKEN_OBJECT, [CHAIN_IDS.LOCALHOST]: TEST_ETH_SWAPS_TOKEN_OBJECT, @@ -190,6 +203,8 @@ export const SWAPS_CHAINID_DEFAULT_TOKEN_MAP = { [CHAIN_IDS.BASE]: BASE_SWAPS_TOKEN_OBJECT, [CHAIN_IDS.SEI]: SEI_SWAPS_TOKEN_OBJECT, [CHAIN_IDS.MONAD]: MONAD_SWAPS_TOKEN_OBJECT, + [CHAIN_IDS.HYPEREVM]: HYPEREVM_SWAPS_TOKEN_OBJECT, + [CHAIN_IDS.MEGAETH]: MEGAETH_SWAPS_TOKEN_OBJECT, [SolScope.Mainnet]: SOLANA_SWAPS_TOKEN_OBJECT, [SolScope.Devnet]: SOLANA_SWAPS_TOKEN_OBJECT, [BtcScope.Mainnet]: BTC_SWAPS_TOKEN_OBJECT, @@ -219,4 +234,5 @@ export const SYMBOL_TO_SLIP44_MAP: Record< SEI: 'slip44:19000118', TRX: 'slip44:195', MON: 'slip44:268435779', + HYPE: 'slip44:2457', }; diff --git a/packages/bridge-controller/src/types.ts b/packages/bridge-controller/src/types.ts index b8c2407eb1b..5ebedeba5c0 100644 --- a/packages/bridge-controller/src/types.ts +++ b/packages/bridge-controller/src/types.ts @@ -299,6 +299,8 @@ export enum ChainId { TRON = 728126428, SEI = 1329, MONAD = 143, + HYPEREVM = 999, + MEGAETH = 4326, } export type FeatureFlagsPlatformConfig = Infer;