uses http as default RPC provider for nodes running in integration tests as a workaround for dropped subscriptions

This commit is contained in:
Marcin Czenko 2024-10-16 04:13:58 +02:00
parent 934434b145
commit 34182ee92f
No known key found for this signature in database
GPG Key ID: 33DEA0C8E30937C0
1 changed files with 8 additions and 4 deletions

View File

@ -67,6 +67,10 @@ template multinodesuite*(name: string, body: untyped) =
let starttime = now().format("yyyy-MM-dd'_'HH:mm:ss") let starttime = now().format("yyyy-MM-dd'_'HH:mm:ss")
var currentTestName = "" var currentTestName = ""
var nodeConfigs: NodeConfigs var nodeConfigs: NodeConfigs
# Workaround for https://github.com/NomicFoundation/hardhat/issues/2053
# Do not use websockets, but use http and polling to stop subscriptions
# from being removed after 5 minutes
let defaultProviderUrl = "http://127.0.0.1:8545"
var ethProvider {.inject, used.}: JsonRpcProvider var ethProvider {.inject, used.}: JsonRpcProvider
var accounts {.inject, used.}: seq[Address] var accounts {.inject, used.}: seq[Address]
var snapshot: JsonNode var snapshot: JsonNode
@ -196,7 +200,7 @@ template multinodesuite*(name: string, body: untyped) =
proc startClientNode(conf: CodexConfig): Future[NodeProcess] {.async.} = proc startClientNode(conf: CodexConfig): Future[NodeProcess] {.async.} =
let clientIdx = clients().len let clientIdx = clients().len
var config = conf var config = conf
config.addCliOption(StartUpCmd.persistence, "--eth-provider", "http://127.0.0.1:8545") config.addCliOption(StartUpCmd.persistence, "--eth-provider", defaultProviderUrl)
config.addCliOption(StartUpCmd.persistence, "--eth-account", $accounts[running.len]) config.addCliOption(StartUpCmd.persistence, "--eth-account", $accounts[running.len])
return await newCodexProcess(clientIdx, config, Role.Client) return await newCodexProcess(clientIdx, config, Role.Client)
@ -204,7 +208,7 @@ template multinodesuite*(name: string, body: untyped) =
let providerIdx = providers().len let providerIdx = providers().len
var config = conf var config = conf
config.addCliOption("--bootstrap-node", bootstrap) config.addCliOption("--bootstrap-node", bootstrap)
config.addCliOption(StartUpCmd.persistence, "--eth-provider", "http://127.0.0.1:8545") config.addCliOption(StartUpCmd.persistence, "--eth-provider", defaultProviderUrl)
config.addCliOption(StartUpCmd.persistence, "--eth-account", $accounts[running.len]) config.addCliOption(StartUpCmd.persistence, "--eth-account", $accounts[running.len])
config.addCliOption(PersistenceCmd.prover, "--circom-r1cs", config.addCliOption(PersistenceCmd.prover, "--circom-r1cs",
"vendor/codex-contracts-eth/verifier/networks/hardhat/proof_main.r1cs") "vendor/codex-contracts-eth/verifier/networks/hardhat/proof_main.r1cs")
@ -219,7 +223,7 @@ template multinodesuite*(name: string, body: untyped) =
let validatorIdx = validators().len let validatorIdx = validators().len
var config = conf var config = conf
config.addCliOption("--bootstrap-node", bootstrap) config.addCliOption("--bootstrap-node", bootstrap)
config.addCliOption(StartUpCmd.persistence, "--eth-provider", "http://127.0.0.1:8545") config.addCliOption(StartUpCmd.persistence, "--eth-provider", defaultProviderUrl)
config.addCliOption(StartUpCmd.persistence, "--eth-account", $accounts[running.len]) config.addCliOption(StartUpCmd.persistence, "--eth-account", $accounts[running.len])
config.addCliOption(StartUpCmd.persistence, "--validator") config.addCliOption(StartUpCmd.persistence, "--validator")
@ -268,7 +272,7 @@ template multinodesuite*(name: string, body: untyped) =
# Do not use websockets, but use http and polling to stop subscriptions # Do not use websockets, but use http and polling to stop subscriptions
# from being removed after 5 minutes # from being removed after 5 minutes
ethProvider = JsonRpcProvider.new( ethProvider = JsonRpcProvider.new(
"http://127.0.0.1:8545", defaultProviderUrl,
pollingInterval = chronos.milliseconds(100) pollingInterval = chronos.milliseconds(100)
) )
# if hardhat was NOT started by the test, take a snapshot so it can be # if hardhat was NOT started by the test, take a snapshot so it can be