Coverage Summary for Class: TransactionsMessage (co.rsk.net.messages)
Class |
Class, %
|
Method, %
|
Line, %
|
TransactionsMessage |
0%
(0/1)
|
0%
(0/7)
|
0%
(0/16)
|
1 /*
2 * This file is part of RskJ
3 * Copyright (C) 2017 RSK Labs Ltd.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 package co.rsk.net.messages;
20
21 import org.ethereum.core.Transaction;
22 import org.ethereum.util.RLP;
23
24 import java.util.ArrayList;
25 import java.util.List;
26
27 /**
28 * Created by ajlopez on 7/22/2016.
29 */
30 public class TransactionsMessage extends Message {
31 private List<Transaction> transactions;
32
33 public TransactionsMessage(List<Transaction> transactions) {
34 this.transactions = transactions;
35 }
36
37 public List<Transaction> getTransactions() {
38 return this.transactions;
39 }
40
41 @Override
42 public MessageType getMessageType() {
43 return MessageType.TRANSACTIONS;
44 }
45
46 @Override
47 public byte[] getEncodedMessage() {
48 List<byte[]> encodedElements = new ArrayList<>();
49
50 for (Transaction tx : transactions) {
51 encodedElements.add(tx.getEncoded());
52 }
53
54 byte[][] encodedElementArray = encodedElements.toArray(new byte[encodedElements.size()][]);
55
56 return RLP.encodeList(encodedElementArray);
57 }
58
59 public String getMessageContentInfo() {
60 if (this.transactions == null) {
61 return "";
62 }
63
64 StringBuilder sb = new StringBuilder().append(transactions.size()).append(" Received: ");
65 this.transactions.forEach(tx -> sb.append(tx.getHash().toHexString()).append(", "));
66 return sb.toString();
67 }
68
69 @Override
70 public void accept(MessageVisitor v) {
71 v.apply(this);
72 }
73 }