Check CallLimitValidator only at startup (#479)

* Check CallLimitValidator only at startup checks

* simplify code
This commit is contained in:
Anton
2024-05-20 14:20:32 +03:00
committed by GitHub
parent f6090a40ac
commit 4f36257726
2 changed files with 16 additions and 4 deletions

View File

@@ -34,8 +34,8 @@ abstract class UpstreamValidator(
abstract fun validateUpstreamSettings(): Mono<ValidateUpstreamSettingsResult>
fun validateUpstreamSettingsOnStartup(): ValidateUpstreamSettingsResult {
return validateUpstreamSettings().block() ?: ValidateUpstreamSettingsResult.UPSTREAM_FATAL_SETTINGS_ERROR
open fun validateUpstreamSettingsOnStartup(): ValidateUpstreamSettingsResult {
return ValidateUpstreamSettingsResult.UPSTREAM_VALID
}
companion object {

View File

@@ -80,13 +80,25 @@ open class EthereumUpstreamValidator @JvmOverloads constructor(
}
return Mono.zip(
validateChain(),
validateCallLimit(),
validateOldBlocks(),
).map {
listOf(it.t1, it.t2, it.t3).sorted().last()
listOf(it.t1, it.t2).maxOf { it }
}
}
override fun validateUpstreamSettingsOnStartup(): ValidateUpstreamSettingsResult {
if (options.disableUpstreamValidation) {
return ValidateUpstreamSettingsResult.UPSTREAM_VALID
}
return Mono.zip(
validateChain(),
validateOldBlocks(),
validateCallLimit(),
).map {
listOf(it.t1, it.t2, it.t3).maxOf { it }
}.block() ?: ValidateUpstreamSettingsResult.UPSTREAM_SETTINGS_ERROR
}
private fun validateChain(): Mono<ValidateUpstreamSettingsResult> {
if (!options.validateChain) {
return Mono.just(ValidateUpstreamSettingsResult.UPSTREAM_VALID)