add logs subscription detection fix (#426)
This commit is contained in:
@@ -31,7 +31,12 @@ open class EthereumEgressSubscription(
|
|||||||
open val logs = ConnectLogs(upstream, scheduler)
|
open val logs = ConnectLogs(upstream, scheduler)
|
||||||
override fun getAvailableTopics(): List<String> {
|
override fun getAvailableTopics(): List<String> {
|
||||||
val subs = if (upstream.getCapabilities().contains(Capability.WS_HEAD)) {
|
val subs = if (upstream.getCapabilities().contains(Capability.WS_HEAD)) {
|
||||||
listOf(METHOD_NEW_HEADS, METHOD_LOGS)
|
// we can't use logs without eth_getLogs method available
|
||||||
|
if (upstream.getMethods().isAvailable("eth_getLogs")) {
|
||||||
|
listOf(METHOD_NEW_HEADS, METHOD_LOGS)
|
||||||
|
} else {
|
||||||
|
listOf(METHOD_NEW_HEADS)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
listOf()
|
listOf()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,6 +200,14 @@ class EthereumEgressSubscriptionSpec extends Specification {
|
|||||||
def ethereumSubscribe3 = new EthereumEgressSubscription(TestingCommons.multistream(up3) as GenericMultistream, Schedulers.boundedElastic(), Stub(PendingTxesSource))
|
def ethereumSubscribe3 = new EthereumEgressSubscription(TestingCommons.multistream(up3) as GenericMultistream, Schedulers.boundedElastic(), Stub(PendingTxesSource))
|
||||||
then:
|
then:
|
||||||
ethereumSubscribe3.getAvailableTopics().toSet() == [EthereumEgressSubscription.METHOD_LOGS, EthereumEgressSubscription.METHOD_NEW_HEADS, EthereumEgressSubscription.METHOD_PENDING_TXES].toSet()
|
ethereumSubscribe3.getAvailableTopics().toSet() == [EthereumEgressSubscription.METHOD_LOGS, EthereumEgressSubscription.METHOD_NEW_HEADS, EthereumEgressSubscription.METHOD_PENDING_TXES].toSet()
|
||||||
|
when:
|
||||||
|
def up4 = TestingCommons.upstream(TestingCommons.api(), "eth_getBlockByNumber")
|
||||||
|
up4.getConnectorMock().setLiveness(Flux.just(true))
|
||||||
|
up4.stop()
|
||||||
|
up4.start()
|
||||||
|
def ethereumSubscribe4 = new EthereumEgressSubscription(TestingCommons.multistream(up4) as GenericMultistream, Schedulers.boundedElastic(), null)
|
||||||
|
then:
|
||||||
|
ethereumSubscribe4.getAvailableTopics().toSet() == [EthereumEgressSubscription.METHOD_NEW_HEADS].toSet()
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user