From 13323d04285291a26dfd14556666870d913ffbf0 Mon Sep 17 00:00:00 2001 From: a10zn8 Date: Mon, 22 Jan 2024 00:13:35 +0300 Subject: [PATCH] starknet_syncing may return true/false besides syncing object (#402) --- .../upstream/starknet/StarknetChainSpecific.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/upstream/starknet/StarknetChainSpecific.kt b/src/main/kotlin/io/emeraldpay/dshackle/upstream/starknet/StarknetChainSpecific.kt index 8cc99e1a..7891912b 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/upstream/starknet/StarknetChainSpecific.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/upstream/starknet/StarknetChainSpecific.kt @@ -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