Search in sources :

Example 1 with TxGroupMessage

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);
}
Also used : TxGroup(io.nuls.protocol.model.TxGroup) Transaction(io.nuls.kernel.model.Transaction) GetTxGroupParam(io.nuls.protocol.model.GetTxGroupParam) ArrayList(java.util.ArrayList) NulsDigestData(io.nuls.kernel.model.NulsDigestData) IOException(java.io.IOException) TxGroupMessage(io.nuls.protocol.message.TxGroupMessage)

Aggregations

NulsDigestData (io.nuls.kernel.model.NulsDigestData)1 Transaction (io.nuls.kernel.model.Transaction)1 TxGroupMessage (io.nuls.protocol.message.TxGroupMessage)1 GetTxGroupParam (io.nuls.protocol.model.GetTxGroupParam)1 TxGroup (io.nuls.protocol.model.TxGroup)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1