@@ -10,6 +10,8 @@ import {
1010 polygonAmoy ,
1111 arbitrum ,
1212 arbitrumSepolia ,
13+ mode ,
14+ modeTestnet ,
1315} from 'viem/chains' ;
1416import { z } from 'zod' ;
1517
@@ -23,6 +25,8 @@ const BASE = base.id;
2325const BASE_SEPOLIA = baseSepolia . id ;
2426const ARBITRUM = arbitrum . id ;
2527const ARBITRUM_SEPOLIA = arbitrumSepolia . id ;
28+ const MODE = mode . id ;
29+ const MODE_SEPOLIA = modeTestnet . id ;
2630
2731const CHAINS : ChainId [ ] = [
2832 ETHEREUM ,
@@ -35,6 +39,8 @@ const CHAINS: ChainId[] = [
3539 BASE_SEPOLIA ,
3640 ARBITRUM ,
3741 ARBITRUM_SEPOLIA ,
42+ MODE ,
43+ MODE_SEPOLIA ,
3844] ;
3945
4046const chainSchema = z . union ( [
@@ -49,6 +55,8 @@ const chainSchema = z.union([
4955 z . literal ( POLYGON_AMOY . toString ( ) ) ,
5056 z . literal ( ARBITRUM . toString ( ) ) ,
5157 z . literal ( ARBITRUM_SEPOLIA . toString ( ) ) ,
58+ z . literal ( MODE . toString ( ) ) ,
59+ z . literal ( MODE_SEPOLIA . toString ( ) ) ,
5260] ) ;
5361
5462type ChainId =
@@ -61,7 +69,9 @@ type ChainId =
6169 | typeof BASE
6270 | typeof BASE_SEPOLIA
6371 | typeof ARBITRUM
64- | typeof ARBITRUM_SEPOLIA ;
72+ | typeof ARBITRUM_SEPOLIA
73+ | typeof MODE
74+ | typeof MODE_SEPOLIA ;
6575
6676function getChainData ( chain : ChainId ) : ChainData {
6777 switch ( chain ) {
@@ -85,6 +95,10 @@ function getChainData(chain: ChainId): ChainData {
8595 return arbitrum ;
8696 case ARBITRUM_SEPOLIA :
8797 return arbitrumSepolia ;
98+ case MODE :
99+ return mode ;
100+ case MODE_SEPOLIA :
101+ return modeTestnet ;
88102 }
89103}
90104
@@ -104,6 +118,8 @@ export {
104118 BASE_SEPOLIA ,
105119 ARBITRUM ,
106120 ARBITRUM_SEPOLIA ,
121+ MODE ,
122+ MODE_SEPOLIA ,
107123 getChainData ,
108124 parseChainId ,
109125 chainSchema ,
0 commit comments