starknet_syncing may return true/false besides syncing object (#402)

This commit is contained in:
a10zn8
2024-01-22 00:13:35 +03:00
committed by GitHub
parent aecc50fcf1
commit 13323d0428

View File

@@ -75,7 +75,15 @@ object StarknetChainSpecific : AbstractPollChainSpecific() {
}
fun validate(data: ByteArray, lagging: Int, upstreamId: String): UpstreamAvailability {
val resp = Global.objectMapper.readValue(data, StarknetSyncing::class.java)
val raw = Global.objectMapper.readTree(data)
if (raw.isBoolean) {
return if (raw.asBoolean()) {
UpstreamAvailability.SYNCING
} else {
UpstreamAvailability.OK
}
}
val resp = Global.objectMapper.treeToValue(raw, StarknetSyncing::class.java)
return if (resp.highest - resp.current > lagging) {
log.warn("Starknet node {} is syncing: current={} and highest={}", upstreamId, resp.current, resp.highest)
UpstreamAvailability.SYNCING