| updateCanonicalChainData(BlockchainStorage.Updater, BlockWithReceipts) |   | 77% |   | 80% | 2 | 6 | 4 | 12 | 0 | 1 |
| getBlockHeaderSafe(Hash) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$getTotalDifficultyByHash$21(Hash, Cache) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$getTxReceipts$18(Hash, Cache) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$getBlockBody$15(Hash, Cache) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$getBlockHeaderSafe$12(Hash, Cache) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$getBlockHeader$9(Hash, Cache) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| rewindToBlock(Hash) |   | 82% | | n/a | 0 | 1 | 3 | 12 | 0 | 1 |
| forwardToBlock(BlockHeader) |   | 81% | | n/a | 0 | 1 | 3 | 13 | 0 | 1 |
| DefaultBlockchain(Optional, BlockchainStorage, MetricsSystem, long, String, int) |   | 96% |   | 75% | 1 | 3 | 1 | 52 | 0 | 1 |
| createMutable(Block, BlockchainStorage, MetricsSystem, long, String) |   | 42% | | n/a | 0 | 1 | 1 | 3 | 0 | 1 |
| setGenesis(Block, String) |   | 92% |   | 75% | 2 | 5 | 1 | 20 | 0 | 1 |
| removeChainReorgObserver(long) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$calculateTotalDifficulty$31() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getTotalDifficultyByHash$20(Hash) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getTxReceipts$17(Hash) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getBlockBody$14(Hash) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getBlockHeaderSafe$13(Hash) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getBlockHeaderSafe$11(Hash) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getBlockHeader$8(Hash) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| storeBlock(Block, List) |   | 75% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| lambda$forwardToBlock$38(BlockAddedEvent, BlockAddedObserver) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| blockShouldBeProcessed(Block, List) |   | 92% |   | 75% | 1 | 3 | 1 | 6 | 0 | 1 |
| lambda$new$7(CacheMetricsCollector) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| appendBlockHelper(BlockWithReceipts, boolean) |  | 98% |   | 83% | 1 | 4 | 1 | 19 | 0 | 1 |
| handleChainReorg(BlockchainStorage.Updater, BlockWithReceipts) |  | 100% |  | 100% | 0 | 4 | 0 | 54 | 0 | 1 |
| maybeLogReorg(BlockWithReceipts, BlockWithReceipts, BlockWithReceipts) |  | 100% |   | 83% | 1 | 4 | 0 | 12 | 0 | 1 |
| unsafeImportBlock(Block, List, Optional) |  | 100% |  | 100% | 0 | 2 | 0 | 13 | 0 | 1 |
| handleNewHead(BlockchainStorage.Updater, BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 10 | 0 | 1 |
| handleFork(BlockchainStorage.Updater, Block) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| indexTransactionForBlock(BlockchainStorage.Updater, Hash, List) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| calculateTotalDifficulty(BlockHeader) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| cacheBlockData(Block, List) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| updateCacheForNewCanonicalHead(Block, Difficulty) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| validateStorageNonEmpty(BlockchainStorage) |  | 100% |   | 75% | 1 | 3 | 0 | 5 | 0 | 1 |
| unsafeSetChainHead(BlockHeader, Difficulty) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| blockIsAlreadyTracked(Block) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| appendBlock(Block, List) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| clearIndexedTransactionsForBlock(BlockchainStorage.Updater, List) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| lambda$maybeLogReorg$35(BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| createMutable(Block, BlockchainStorage, MetricsSystem, long) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| createMutable(Block, BlockchainStorage, MetricsSystem, long, String, int) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getChainHeadBlock() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| rewindToBlock(long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBlockWithReceipts(BlockHeader) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$maybeLogReorg$36(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| create(BlockchainStorage, MetricsSystem, long) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| getBlockHeader(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getBlockBody(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getTxReceipts(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getTotalDifficultyByHash(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getParentBlockWithReceipts(BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| getChainHead() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| addAddedLogsWithMetadata(List, BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| addRemovedLogsWithMetadata(List, BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| setFinalized(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| setSafeBlock(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| DefaultBlockchain(Optional, BlockchainStorage, MetricsSystem, long) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$getBlockWithReceipts$41(BlockHeader, Block) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$handleChainReorg$33(BlockchainStorage.Updater, List, Hash, List) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$getTransactionByHash$24(TransactionLocation) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getBlockHeader(long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTransactionByHash(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| blockIsConnected(Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| observeBlockAdded(BlockAddedObserver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| observeChainReorg(ChainReorgObserver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$cacheBlockData$28(Block, Cache) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getForks() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| notifyChainReorgBlockAdded(BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$cacheBlockData$26(Block, Cache) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$cacheBlockData$25(Block, Cache) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getTransactionByHash$23(TransactionLocation, BlockBody) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getBlockWithReceipts$40(Block, List) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getBlockWithReceipts$39(BlockHeader, BlockBody) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$handleChainReorg$34(BlockWithReceipts, Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$handleFork$32(Block, Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$cacheBlockData$27(Block, List, Cache) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$1() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBlockHashByNumber(long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTransactionLocation(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| removeObserver(long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$notifyChainReorgBlockAdded$42(BlockWithReceipts, ChainReorgObserver) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$unsafeImportBlock$30(BlockchainStorage.Updater, Hash, Difficulty) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getTotalDifficultyByHash$22(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getTxReceipts$19(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getBlockBody$16(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getBlockHeader$10(Hash) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$0(String, Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getFinalized() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSafeBlock() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getChainHeadHash() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getChainHeadBlockNumber() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setBlockChoiceRule(Comparator) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| handleStoreOnly(BlockWithReceipts) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| observerCount() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$rewindToBlock$37(BlockAddedEvent, BlockAddedObserver) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$appendBlockHelper$29(BlockAddedEvent, BlockAddedObserver) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$4() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$3() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$2() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getChainHeadHeader() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBlockChoiceRule() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBlockHeadersCache() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBlockBodiesCache() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTransactionReceiptsCache() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTotalDifficultyCache() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$6() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$new$5() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |