Skip to content

Commit 302cf1e

Browse files
authored
Remove WS dependancy in EVMClient creation (#1523)
* Remove WS dependancy in EVMClient creation * Fix typo
1 parent ed80355 commit 302cf1e

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

lib/.changeset/v1.50.20.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Allows for `ConnectEVMClient` to be setup with an HTTP RPC, does not `subscribeToNewHeaders` if using HTTP

lib/blockchain/ethereum.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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 support 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.
13381340
func 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

Comments
 (0)