@@ -105,11 +105,13 @@ func newEVMClient(networkSettings EVMNetwork, logger zerolog.Logger) (EVMClient,
105105 return nil , err
106106 }
107107 ec .gasStats = NewGasStats (ec .ID )
108- err = ec .subscribeToNewHeaders ()
109- if err != nil {
110- return nil , err
108+ // Check if subscriptions are supported since HTTP does not suport subscriptions.
109+ if ec .Client .Client ().SupportsSubscriptions () {
110+ err = ec .subscribeToNewHeaders ()
111+ if err != nil {
112+ return nil , err
113+ }
111114 }
112-
113115 // Check if the chain supports EIP-1559
114116 // https://eips.ethereum.org/EIPS/eip-1559
115117 if networkSettings .SupportsEIP1559 {
@@ -1336,13 +1338,20 @@ func NewEVMClient(networkSettings EVMNetwork, env *environment.Environment, logg
13361338// ConnectEVMClient returns a multi-node EVM client connected to a specified network, using only URLs.
13371339// Should mostly be used for inside K8s, non-simulated tests.
13381340func ConnectEVMClient (networkSettings EVMNetwork , logger zerolog.Logger ) (EVMClient , error ) {
1341+ var urls []string
13391342 if len (networkSettings .URLs ) == 0 {
1340- return nil , fmt .Errorf ("no URLs provided to connect to network" )
1343+ if len (networkSettings .HTTPURLs ) == 0 {
1344+ return nil , fmt .Errorf ("no URLs provided to connect to network" )
1345+ }
1346+ logger .Warn ().Msg ("You are running using only HTTP RPC URLs." )
1347+ urls = networkSettings .HTTPURLs
1348+ } else {
1349+ urls = networkSettings .URLs
13411350 }
13421351
13431352 ecl := & EthereumMultinodeClient {}
13441353
1345- for idx , networkURL := range networkSettings . URLs {
1354+ for idx , networkURL := range urls {
13461355 networkSettings .URL = networkURL
13471356 ec , err := newEVMClient (networkSettings , logger )
13481357
0 commit comments