@@ -19,6 +19,8 @@ import {
1919 ME_TRANSFER_VALIDATOR_V3 ,
2020 MONAD_FACTORY_ADDRESS ,
2121 MONAD_REGISTRY_ADDRESS ,
22+ MEGAETH_FACTORY_ADDRESS ,
23+ MEGAETH_REGISTRY_ADDRESS ,
2224 SUPPORTED_CHAINS ,
2325 supportedChainNames ,
2426 TOKEN_STANDARD ,
@@ -40,6 +42,21 @@ import {
4042} from 'viem/chains' ;
4143import { Hex } from 'viem' ;
4244import { setBaseDir } from './setters' ;
45+ import { defineChain } from 'viem' ;
46+
47+ export const megaeth = defineChain ( {
48+ id : 4326 ,
49+ name : 'MegaETH' ,
50+ nativeCurrency : { name : 'MEGA' , symbol : 'MEGA' , decimals : 18 } ,
51+ rpcUrls : {
52+ default : {
53+ http : [ 'https://evm-router.magiceden.io/megaeth/mainnet/me2024' ] ,
54+ } ,
55+ } ,
56+ blockExplorers : {
57+ default : { name : 'MegaETH Explorer' , url : 'https://TBD' } ,
58+ } ,
59+ } ) ;
4360
4461/**
4562 * Retrieves the transfer validator address based on the network (chain ID).
@@ -65,6 +82,7 @@ export const getTransferValidatorAddress = (chainId: SUPPORTED_CHAINS): Hex => {
6582 return LIMITBREAK_TRANSFER_VALIDATOR_V3_BERACHAIN ;
6683
6784 case SUPPORTED_CHAINS . MONAD :
85+ case SUPPORTED_CHAINS . MEGAETH :
6886 return LIMITBREAK_TRANSFER_VALIDATOR_V5 ;
6987
7088 default :
@@ -115,6 +133,8 @@ export const getSymbolFromChainId = (chainId: SUPPORTED_CHAINS): string => {
115133 return 'MON' ;
116134 case SUPPORTED_CHAINS . AVALANCHE :
117135 return 'AVAX' ;
136+ case SUPPORTED_CHAINS . MEGAETH :
137+ return 'MEGA' ;
118138 default :
119139 return 'Unknown' ;
120140 }
@@ -166,14 +186,12 @@ export const getViemChainByChainId = (chainId: SUPPORTED_CHAINS) => {
166186 return berachain ;
167187 case SUPPORTED_CHAINS . SEPOLIA :
168188 return sepolia ;
169- case SUPPORTED_CHAINS . ARBITRUM :
170- return arbitrum ;
171189 case SUPPORTED_CHAINS . ABSTRACT :
172190 return abstract ;
173191 case SUPPORTED_CHAINS . MONAD :
174192 return monad ;
175- case SUPPORTED_CHAINS . AVALANCHE :
176- return avalanche ;
193+ case SUPPORTED_CHAINS . MEGAETH :
194+ return megaeth ;
177195 default :
178196 throw new Error ( `Unsupported chain ID: ${ chainId } ` ) ;
179197 }
@@ -257,6 +275,10 @@ export const getFactoryAddress = (chainId: SUPPORTED_CHAINS): `0x${string}` => {
257275 return MONAD_FACTORY_ADDRESS ;
258276 }
259277
278+ if ( chainId === SUPPORTED_CHAINS . MEGAETH ) {
279+ return MEGAETH_FACTORY_ADDRESS ;
280+ }
281+
260282 return DEFAULT_FACTORY_ADDRESS ;
261283} ;
262284
@@ -275,6 +297,10 @@ export const getRegistryAddress = (
275297 return MONAD_REGISTRY_ADDRESS ;
276298 }
277299
300+ if ( chainId === SUPPORTED_CHAINS . MEGAETH ) {
301+ return MEGAETH_REGISTRY_ADDRESS ;
302+ }
303+
278304 return DEFAULT_REGISTRY_ADDRESS ;
279305} ;
280306
@@ -306,6 +332,7 @@ export const getImplId = (
306332 case SUPPORTED_CHAINS . AVALANCHE :
307333 return 6 ;
308334 case SUPPORTED_CHAINS . MONAD :
335+ case SUPPORTED_CHAINS . MEGAETH :
309336 return 2 ;
310337 default :
311338 return 8 ;
0 commit comments