| lambda$markBadBlock$6(BadBlockManager, BlockHeader, AbstractPeerTask.PeerTaskResult, Throwable) |   | 89% |   | 50% | 1 | 2 | 1 | 11 | 0 | 1 |
| DownloadHeaderSequenceTask(ProtocolSchedule, ProtocolContext, EthContext, BlockHeader, int, int, ValidationPolicy, MetricsSystem) |  | 97% |   | 50% | 1 | 2 | 0 | 13 | 0 | 1 |
| lambda$processHeaders$3(AbstractPeerTask.PeerTaskResult) |  | 100% |  | 100% | 0 | 12 | 0 | 29 | 0 | 1 |
| downloadHeaders(Optional) |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 0 | 1 |
| lambda$processHeaders$2(AbstractPeerTask.PeerTaskResult, BlockHeader, BlockHeader, boolean, CompletableFuture, Object, Throwable) |  | 100% |  | 100% | 0 | 3 | 0 | 17 | 0 | 1 |
| lambda$executePeerTask$0(List, Throwable) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| lambda$downloadHeaders$1(Hash, BlockHeader, int, Optional) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| executePeerTask(Optional) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| markBadBlock(BlockHeader, EthPeer) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| checkHeaderInRange(BlockHeader) |  | 100% |   | 75% | 1 | 3 | 0 | 2 | 0 | 1 |
| validateHeader(BlockHeader, BlockHeader) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| endingAtHeader(ProtocolSchedule, ProtocolContext, EthContext, BlockHeader, int, int, ValidationPolicy, MetricsSystem) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| endingAtHeader(ProtocolSchedule, ProtocolContext, EthContext, BlockHeader, int, ValidationPolicy, MetricsSystem) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| processHeaders(AbstractPeerTask.PeerTaskResult) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$markBadBlock$5(BadBlockManager, BlockHeader, BadBlockCause) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$markBadBlock$4(BadBlockManager, BadBlockCause, Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |