@@ -3,36 +3,13 @@ import env from "./env";
33export type ChainName = "eth" | "arb" | "opt" ;
44export type NetworkName = "mainnet" | "hoodi" ;
55
6- /**
7- * Returns the RPC url for the given network name
8- */
9- function url ( chainName : ChainName , networkName : NetworkName ) : string {
10- const url =
11- rpcUrl ( chainName ) ||
12- infuraUrl ( chainName , networkName ) ||
13- alchemyUrl ( chainName , networkName ) ;
14- if ( ! url ) {
15- throw new Error (
16- "RPC node credential was not provided. Please, set one of RPC_URL, INFURA_TOKEN or ALCHEMY_TOKEN env variables"
17- ) ;
18- }
19- return url ;
20- }
21-
22- function rpcUrl ( chainName : ChainName ) {
6+ function getChainRpcUrl ( chainName : ChainName ) {
237 if ( chainName === "eth" ) return env . ETH_RPC_URL ( ) ;
248 if ( chainName === "arb" ) return env . ARB_RPC_URL ( ) ;
259 if ( chainName === "opt" ) return env . OPT_RPC_URL ( ) ;
2610}
2711
28- function maybeChainIdConfig ( chainId : number ) {
29- if ( env . DONT_SET_CHAIN_ID ( ) ) {
30- return { } ;
31- }
32- return { chainId } ;
33- }
34-
35- function infuraUrl ( chainName : ChainName , networkName : NetworkName ) {
12+ function getInfuraUrl ( chainName : ChainName , networkName : NetworkName ) {
3613 const infuraToken = env . INFURA_TOKEN ( ) ;
3714 const infuraNetworkDomain =
3815 chainName === "eth" && networkName === "mainnet"
@@ -43,14 +20,42 @@ function infuraUrl(chainName: ChainName, networkName: NetworkName) {
4320 : undefined ;
4421}
4522
46- function alchemyUrl ( chainName : ChainName , networkName : NetworkName ) {
23+ function getAlchemyUrl ( chainName : ChainName , networkName : NetworkName ) {
4724 const alchemyToken = env . ALCHEMY_TOKEN ( ) ;
4825 return alchemyToken
4926 ? `https://${ chainName } -${ networkName } .g.alchemy.com/v2/${ alchemyToken } `
5027 : undefined ;
5128}
5229
30+ /**
31+ * Returns the RPC url for the given network name
32+ */
33+ function rpcUrl ( chainName : ChainName , networkName : NetworkName ) : string {
34+ const url =
35+ getChainRpcUrl ( chainName ) ||
36+ getInfuraUrl ( chainName , networkName ) ||
37+ getAlchemyUrl ( chainName , networkName ) ;
38+ if ( ! url ) {
39+ throw new Error (
40+ "RPC node credential was not provided. Please, set one of RPC_URL, INFURA_TOKEN or ALCHEMY_TOKEN env variables"
41+ ) ;
42+ }
43+ return url ;
44+ }
45+
46+ function maybeChainIdConfig ( chainId : number ) {
47+ if ( env . DONT_SET_CHAIN_ID ( ) ) {
48+ return { } ;
49+ }
50+ return { chainId } ;
51+ }
52+
53+ function hardforkConfig ( ) {
54+ return { hardfork : env . HARDFORK ( ) } ;
55+ }
56+
5357export default {
54- rpcUrl : url ,
58+ rpcUrl,
59+ hardforkConfig,
5560 maybeChainIdConfig,
5661} ;
0 commit comments