@@ -2,6 +2,7 @@ import * as bitcoin from 'bitcoinjs-lib';
22import {
33 Address ,
44 createPublicClient ,
5+ defineChain ,
56 encodeAbiParameters ,
67 formatUnits ,
78 Hex ,
@@ -138,31 +139,38 @@ export function formatBtc(btc: bigint) {
138139 return formatUnits ( btc , 8 ) ;
139140}
140141
141- const supportedChains = [
142+ const supportedChainsMapping = {
142143 bob,
143- mainnet ,
144+ ethereum : defineChain ( {
145+ ...mainnet ,
146+ rpcUrls : {
147+ default : {
148+ http : [ 'https://ethereum-rpc.publicnode.com' ] ,
149+ } ,
150+ } ,
151+ } ) ,
144152 sonic,
145153 bsc,
146154 unichain,
147- berachain ,
155+ bera : berachain ,
148156 sei,
149157 avalanche,
150158 base,
151159 soneium,
152160 optimism,
153- ] as const ;
161+ } as const ;
154162
155- const chainIdToChainConfigMapping = supportedChains . reduce (
163+ const chainIdToChainConfigMapping = Object . values ( supportedChainsMapping ) . reduce (
156164 ( acc , chain ) => {
157165 acc [ chain . id ] = chain ;
158166 return acc ;
159167 } ,
160168 { } as Record < ViemChain [ 'id' ] , ViemChain >
161169) ;
162170
163- const chainNameToChainIdMapping = supportedChains . reduce (
164- ( acc , chain ) => {
165- acc [ chain . name . toLowerCase ( ) ] = chain . id ;
171+ const chainNameToChainIdMapping = Object . entries ( supportedChainsMapping ) . reduce (
172+ ( acc , [ name , chain ] ) => {
173+ acc [ name . toLowerCase ( ) ] = chain . id ;
166174 return acc ;
167175 } ,
168176 { } as Record < ViemChain [ 'name' ] , ViemChain [ 'id' ] >
@@ -172,7 +180,7 @@ function getChainIdByName(chainName: string) {
172180 const chainId = chainNameToChainIdMapping [ chainName . toLowerCase ( ) ] ;
173181 if ( ! chainId ) {
174182 throw new Error (
175- `Chain id for "${ chainName } " not found. Allowed values ${ supportedChains . map ( ( chain ) => chain . name ) } `
183+ `Chain id for "${ chainName } " not found. Allowed values ${ Object . keys ( supportedChainsMapping ) . map ( ( chainName ) => chainName . toLocaleLowerCase ( ) ) } `
176184 ) ;
177185 }
178186 return chainId ;
@@ -182,7 +190,7 @@ function getChainConfigById(chainId: number) {
182190 const config = chainIdToChainConfigMapping [ chainId ] ;
183191 if ( ! config ) {
184192 throw new Error (
185- `Chain id for "${ chainId } " not found. Allowed values ${ supportedChains . map ( ( chain ) => chain . id ) } `
193+ `Chain id for "${ chainId } " not found. Allowed values ${ Object . values ( supportedChainsMapping ) . map ( ( chain ) => chain . id ) } `
186194 ) ;
187195 }
188196
0 commit comments