Coverage Summary for Class: BlockHeadersResponseMessage (co.rsk.net.messages)
Class |
Class, %
|
Method, %
|
Line, %
|
BlockHeadersResponseMessage |
0%
(0/1)
|
0%
(0/6)
|
0%
(0/13)
|
1 package co.rsk.net.messages;
2
3 import org.ethereum.core.BlockHeader;
4 import org.ethereum.util.RLP;
5
6 import java.util.List;
7
8 /**
9 * Created by ajlopez on 24/08/2017.
10 */
11 public class BlockHeadersResponseMessage extends MessageWithId {
12 /**
13 * Id to identify request/response correlation
14 */
15 private long id;
16
17 /**
18 * List of block headers from the peer
19 */
20 private List<BlockHeader> blockHeaders;
21
22 public BlockHeadersResponseMessage(long id, List<BlockHeader> headers) {
23 this.id = id;
24 this.blockHeaders = headers;
25 }
26
27 @Override
28 public long getId() { return this.id; }
29
30 public List<BlockHeader> getBlockHeaders() { return this.blockHeaders; }
31
32 @Override
33 protected byte[] getEncodedMessageWithoutId() {
34 byte[][] rlpHeaders = this.blockHeaders.stream()
35 .map(BlockHeader::getFullEncoded)
36 .toArray(byte[][]::new);
37
38 return RLP.encodeList(RLP.encodeList(rlpHeaders));
39 }
40
41 @Override
42 public MessageType getMessageType() {
43 return MessageType.BLOCK_HEADERS_RESPONSE_MESSAGE;
44 }
45
46 @Override
47 public void accept(MessageVisitor v) {
48 v.apply(this);
49 }
50 }