Handle unknown chain (#260)

This commit is contained in:
KirillPamPam
2023-07-26 19:31:59 +04:00
committed by GitHub
parent 6a1ee930a4
commit fc2354f9c3

View File

@@ -21,6 +21,7 @@ import io.emeraldpay.api.proto.BlockchainOuterClass.DescribeRequest
import io.emeraldpay.api.proto.BlockchainOuterClass.DescribeResponse
import io.emeraldpay.api.proto.BlockchainOuterClass.StatusRequest
import io.emeraldpay.api.proto.Common
import io.emeraldpay.api.proto.Common.ChainRef.UNRECOGNIZED
import io.emeraldpay.api.proto.ReactorBlockchainGrpc
import io.emeraldpay.dshackle.BlockchainType
import io.emeraldpay.dshackle.Chain
@@ -151,10 +152,15 @@ class GrpcUpstreams(
private fun processDescription(value: DescribeResponse): Flux<UpstreamChangeEvent> {
val chainNames = value.chainsList.map { it.chain.name }
.also {
if (it.contains("UNRECOGNIZED")) {
log.warn("There is an UNRECOGNIZED chain, it's necessary to update dshackle-main")
}
}
val version = value.buildInfo.version
log.info("Start processing grpc upstream description for $id with chains $chainNames and version $version")
val current = value.chainsList.filter {
Chain.byId(it.chain.number) != Chain.UNSPECIFIED
it.chain != UNRECOGNIZED && Chain.byId(it.chain.number) != Chain.UNSPECIFIED
}.mapNotNull { chainDetails ->
try {
val chain = Chain.byId(chainDetails.chain.number)