add logs subscription detection fix (#426)
This commit is contained in:
@@ -31,7 +31,12 @@ open class EthereumEgressSubscription(
|
||||
open val logs = ConnectLogs(upstream, scheduler)
|
||||
override fun getAvailableTopics(): List<String> {
|
||||
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 {
|
||||
listOf()
|
||||
}
|
||||
|
||||
@@ -200,6 +200,14 @@ class EthereumEgressSubscriptionSpec extends Specification {
|
||||
def ethereumSubscribe3 = new EthereumEgressSubscription(TestingCommons.multistream(up3) as GenericMultistream, Schedulers.boundedElastic(), Stub(PendingTxesSource))
|
||||
then:
|
||||
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