From 26f1229f36c2167f533080eb94eb05af7a6ffc64 Mon Sep 17 00:00:00 2001 From: Igor Artamonov Date: Thu, 29 Aug 2019 21:24:17 -0400 Subject: [PATCH] problem: gets block from cache without transaction data when it requested --- .../dshackle/upstream/CachingEthereumApi.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/upstream/CachingEthereumApi.kt b/src/main/kotlin/io/emeraldpay/dshackle/upstream/CachingEthereumApi.kt index edf4316e..10343f77 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/upstream/CachingEthereumApi.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/upstream/CachingEthereumApi.kt @@ -44,14 +44,19 @@ open class CachingEthereumApi( override fun execute(id: Int, method: String, params: List): Mono { return when (method) { - "eth_blockNumber" -> head.getFlux().next() + "eth_blockNumber" -> + head.getFlux().next() .map { HexQuantity.from(it.number).toHex() } .map(toJson(id)) - "eth_getBlockByHash" -> Mono.just(params[0]) - .map { BlockHash.from(it as String) } - .flatMap(cache::read) - .map(toJson(id)) - else -> Mono.empty() + "eth_getBlockByHash" -> + if (params.size == 2 && (params[1] == "false" || params[1] == false)) + Mono.just(params[0]) + .map { BlockHash.from(it as String) } + .flatMap(cache::read) + .map(toJson(id)) + else Mono.empty() + else -> + Mono.empty() } }