From ef6ff919bd13e3fe14121829b56b66d2b4cd6d28 Mon Sep 17 00:00:00 2001 From: KirillPamPam Date: Thu, 16 Mar 2023 19:42:02 +0400 Subject: [PATCH] Fix getting not enrich blocks (#165) --- .../dshackle/cache/BlocksMemCache.kt | 7 ++-- .../dshackle/cache/BlocksMemCacheSpec.groovy | 34 +++++++++---------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/cache/BlocksMemCache.kt b/src/main/kotlin/io/emeraldpay/dshackle/cache/BlocksMemCache.kt index be05901d..b6ce3f5a 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/cache/BlocksMemCache.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/cache/BlocksMemCache.kt @@ -35,13 +35,12 @@ open class BlocksMemCache( } open fun get(key: BlockId): BlockContainer? { - return mapping.getIfPresent(key) + return mapping.getIfPresent(key)?.let { + return@let if (it.enriched) it else null + } } open fun add(block: BlockContainer) { -// if (!block.enriched) { -// return -// } mapping.put(block.hash, block) } diff --git a/src/test/groovy/io/emeraldpay/dshackle/cache/BlocksMemCacheSpec.groovy b/src/test/groovy/io/emeraldpay/dshackle/cache/BlocksMemCacheSpec.groovy index 45df5f5c..a4b6e82b 100644 --- a/src/test/groovy/io/emeraldpay/dshackle/cache/BlocksMemCacheSpec.groovy +++ b/src/test/groovy/io/emeraldpay/dshackle/cache/BlocksMemCacheSpec.groovy @@ -89,22 +89,22 @@ class BlocksMemCacheSpec extends Specification { act1 == null } -// def "Try add not full block and read"() { -// setup: -// def cache = new BlocksMemCache() -// def block = new BlockJson() -// block.number = 100 -// block.hash = BlockHash.from(hash1) -// block.totalDifficulty = BigInteger.ONE -// block.timestamp = Instant.now().truncatedTo(ChronoUnit.SECONDS) -// block.uncles = [] -// block.transactions = [] -// -// when: -// cache.add(BlockContainer.from(block)) -// def act = cache.read(BlockId.from(hash1)).block() -// then: -// act == null -// } + def "Try add not full block and read"() { + setup: + def cache = new BlocksMemCache() + def block = new BlockJson() + block.number = 100 + block.hash = BlockHash.from(hash1) + block.totalDifficulty = BigInteger.ONE + block.timestamp = Instant.now().truncatedTo(ChronoUnit.SECONDS) + block.uncles = [] + block.transactions = [] + + when: + cache.add(BlockContainer.from(block)) + def act = cache.read(BlockId.from(hash1)).block() + then: + act == null + } }