Add sei errors (#592)

This commit is contained in:
KirillPamPam
2024-11-07 17:06:56 +04:00
committed by GitHub
parent d6b6ca7edc
commit 4730845839
3 changed files with 11 additions and 13 deletions

View File

@@ -1,8 +1,6 @@
package io.emeraldpay.dshackle.upstream.ethereum
import io.emeraldpay.dshackle.Defaults
import io.emeraldpay.dshackle.upstream.ChainCallError
import io.emeraldpay.dshackle.upstream.ChainCallUpstreamException
import io.emeraldpay.dshackle.upstream.ChainRequest
import io.emeraldpay.dshackle.upstream.ChainResponse
import io.emeraldpay.dshackle.upstream.Upstream
@@ -22,14 +20,17 @@ class EthereumLowerBoundBlockDetector(
companion object {
private const val NO_BLOCK_DATA = "No block data"
private val NO_BLOCK_ERRORS = listOf(
val NO_BLOCK_ERRORS = setOf(
NO_BLOCK_DATA,
"error loading messages for tipset",
"bad tipset height",
"Block with such an ID is pruned", // zksync
"height is not available", // sei
"method handler crashed", // sei
)
}
private val recursiveLowerBound = RecursiveLowerBound(upstream, LowerBoundType.BLOCK, setOf(NO_BLOCK_DATA), lowerBounds)
private val recursiveLowerBound = RecursiveLowerBound(upstream, LowerBoundType.BLOCK, NO_BLOCK_ERRORS, lowerBounds)
override fun period(): Long {
return 3
@@ -52,10 +53,6 @@ class EthereumLowerBoundBlockDetector(
if (it.hasResult() && it.getResult().contentEquals("null".toByteArray())) {
throw IllegalStateException(NO_BLOCK_DATA)
}
}.doOnError {
if (it is ChainCallUpstreamException && handleError(it.error)) {
throw IllegalStateException(NO_BLOCK_DATA)
}
}
}
}.flatMap {
@@ -63,10 +60,6 @@ class EthereumLowerBoundBlockDetector(
}
}
private fun handleError(error: ChainCallError): Boolean {
return NO_BLOCK_ERRORS.any { error.message.contains(it) }
}
override fun types(): Set<LowerBoundType> {
return setOf(LowerBoundType.BLOCK, LowerBoundType.LOGS)
}

View File

@@ -48,6 +48,7 @@ class EthereumLowerBoundStateDetector(
"state at block", // berachain, eth
"unsupported block number", // arb
"unexpected state root", // fantom
"evm module does not exist on height", // sei
)
}

View File

@@ -19,9 +19,13 @@ class EthereumLowerBoundTxDetector(
companion object {
const val MAX_OFFSET = 20
private const val NO_TX_DATA = "No tx data"
private val NO_TX_ERRORS = setOf(
NO_TX_DATA,
).plus(EthereumLowerBoundBlockDetector.NO_BLOCK_ERRORS)
}
private val recursiveLowerBound = RecursiveLowerBound(upstream, LowerBoundType.TX, setOf(NO_TX_DATA), lowerBounds)
private val recursiveLowerBound = RecursiveLowerBound(upstream, LowerBoundType.TX, NO_TX_ERRORS, lowerBounds)
override fun period(): Long {
return 3