use of io.nuls.protocol.message.TxGroupMessage in project nuls by nuls-io.
the class GetTxGroupHandler method onMessage.
@Override
public void onMessage(GetTxGroupRequest message, Node fromNode) {
if (message == null || fromNode == null) {
return;
}
GetTxGroupParam getTxGroupParam = message.getMsgBody();
if (getTxGroupParam == null || getTxGroupParam.getTxHashList() == null || getTxGroupParam.getTxHashList().size() > 10000) {
return;
}
NulsDigestData requestHash = null;
try {
requestHash = NulsDigestData.calcDigestData(getTxGroupParam.serialize());
} catch (IOException e) {
Log.error(e);
return;
}
TxGroupMessage txGroupMessage = new TxGroupMessage();
TxGroup txGroup = new TxGroup();
List<Transaction> txList = new ArrayList<>();
for (NulsDigestData hash : getTxGroupParam.getTxHashList()) {
Transaction tx = transactionService.getTx(hash);
if (tx != null) {
txList.add(tx);
} else {
Log.error("GetTxGroupHandler NULL TX=========================================hash: " + hash.getDigestHex());
return;
}
}
if (txList.isEmpty()) {
Log.error("ASK:{}, {}", fromNode, getTxGroupParam.getTxHashList().get(0));
return;
}
txGroup.setTxList(txList);
txGroup.setRequestHash(requestHash);
txGroupMessage.setMsgBody(txGroup);
messageBusService.sendToNode(txGroupMessage, fromNode, true);
}
Aggregations