Return validation options and fix gas validator (#553)
This commit is contained in:
@@ -49,6 +49,9 @@ class ChainOptionsReader : YamlConfigReader<ChainOptions.PartialOptions>() {
|
|||||||
getValueAsInt(values, "call-limit-size")?.let {
|
getValueAsInt(values, "call-limit-size")?.let {
|
||||||
options.callLimitSize = it
|
options.callLimitSize = it
|
||||||
}
|
}
|
||||||
|
getValueAsBool(values, "disable-upstream-validation")?.let {
|
||||||
|
options.disableUpstreamValidation = it
|
||||||
|
}
|
||||||
return options
|
return options
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,15 +155,18 @@ object EthereumChainSpecific : AbstractPollChainSpecific() {
|
|||||||
): List<SingleValidator<ValidateUpstreamSettingsResult>> {
|
): List<SingleValidator<ValidateUpstreamSettingsResult>> {
|
||||||
val limitValidator = callLimitValidatorFactory(upstream, options, config, chain)
|
val limitValidator = callLimitValidatorFactory(upstream, options, config, chain)
|
||||||
|
|
||||||
return listOf(
|
val validators = mutableListOf(
|
||||||
ChainIdValidator(upstream, chain),
|
ChainIdValidator(upstream, chain),
|
||||||
OldBlockValidator(upstream),
|
OldBlockValidator(upstream),
|
||||||
GasPriceValidator(upstream, config),
|
)
|
||||||
) + if (limitValidator.isEnabled()) {
|
if (limitValidator.isEnabled()) {
|
||||||
listOf(limitValidator)
|
validators.add(limitValidator)
|
||||||
} else {
|
|
||||||
emptyList()
|
|
||||||
}
|
}
|
||||||
|
if (options.validateGasPrice) {
|
||||||
|
validators.add(GasPriceValidator(upstream, config))
|
||||||
|
}
|
||||||
|
|
||||||
|
return validators
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun chainSettingsValidator(
|
override fun chainSettingsValidator(
|
||||||
|
|||||||
@@ -267,6 +267,9 @@ class GasPriceValidator(
|
|||||||
val log: Logger = LoggerFactory.getLogger(GasPriceValidator::class.java)
|
val log: Logger = LoggerFactory.getLogger(GasPriceValidator::class.java)
|
||||||
}
|
}
|
||||||
override fun validate(onError: ValidateUpstreamSettingsResult): Mono<ValidateUpstreamSettingsResult> {
|
override fun validate(onError: ValidateUpstreamSettingsResult): Mono<ValidateUpstreamSettingsResult> {
|
||||||
|
if (!upstream.getMethods().isCallable("eth_gasPrice")) {
|
||||||
|
return Mono.just(ValidateUpstreamSettingsResult.UPSTREAM_VALID)
|
||||||
|
}
|
||||||
return upstream.getIngressReader()
|
return upstream.getIngressReader()
|
||||||
.read(ChainRequest("eth_gasPrice", ListParams()))
|
.read(ChainRequest("eth_gasPrice", ListParams()))
|
||||||
.flatMap(ChainResponse::requireStringResult)
|
.flatMap(ChainResponse::requireStringResult)
|
||||||
|
|||||||
Reference in New Issue
Block a user