Search in sources :

Example 36 with Transaction

use of io.nuls.kernel.model.Transaction in project nuls by nuls-io.

the class SmallBlock method size.

@Override
public int size() {
    int size = header.size();
    size += SerializeUtils.sizeOfVarInt(txHashList.size());
    for (NulsDigestData hash : txHashList) {
        size += SerializeUtils.sizeOfNulsData(hash);
    }
    size += SerializeUtils.sizeOfVarInt(subTxList.size());
    for (Transaction tx : subTxList) {
        size += SerializeUtils.sizeOfNulsData(tx);
    }
    return size;
}
Also used : Transaction(io.nuls.kernel.model.Transaction) NulsDigestData(io.nuls.kernel.model.NulsDigestData)

Example 37 with Transaction

use of io.nuls.kernel.model.Transaction in project nuls by nuls-io.

the class AssemblyBlockUtil method assemblyBlock.

public static Block assemblyBlock(BlockHeader header, Map<NulsDigestData, Transaction> txMap, List<NulsDigestData> txHashList) {
    Block block = new Block();
    block.setHeader(header);
    List<Transaction> txs = new ArrayList<>();
    for (NulsDigestData txHash : txHashList) {
        Transaction tx = txMap.get(txHash);
        if (null == tx) {
            throw new NulsRuntimeException(TransactionErrorCode.TX_NOT_EXIST);
        }
        tx.setBlockHeight(header.getHeight());
        txs.add(tx);
    }
    block.setTxs(txs);
    return block;
}
Also used : Transaction(io.nuls.kernel.model.Transaction) ArrayList(java.util.ArrayList) Block(io.nuls.kernel.model.Block) NulsDigestData(io.nuls.kernel.model.NulsDigestData) NulsRuntimeException(io.nuls.kernel.exception.NulsRuntimeException)

Example 38 with Transaction

use of io.nuls.kernel.model.Transaction in project nuls by nuls-io.

the class AliasTxProcessor method conflictDetect.

/**
 * 冲突检测
 * 1.检测一个acount只能设置一个别名
 * 2.检查是否多个交易设置了同样的别名
 * conflictDetect
 * 1.Detecting an acount can only set one alias.
 * 2.Check if multiple aliasTransaction have the same alias.
 *
 * @param txList 需要检查的交易列表/A list of transactions to be checked.
 */
@Override
public ValidateResult conflictDetect(List<Transaction> txList) {
    if (null == txList || txList.isEmpty()) {
        return ValidateResult.getSuccessResult();
    }
    Set<String> aliasNames = new HashSet<>();
    Set<String> accountAddress = new HashSet<>();
    List<AliasPo> polist = this.aliasService.getAllAlias();
    for (AliasPo po : polist) {
        aliasNames.add(po.getAlias());
        accountAddress.add(Hex.encode(po.getAddress()));
    }
    for (Transaction transaction : txList) {
        if (transaction.getType() == AccountConstant.TX_TYPE_ACCOUNT_ALIAS) {
            AliasTransaction aliasTransaction = (AliasTransaction) transaction;
            Alias alias = aliasTransaction.getTxData();
            if (!aliasNames.add(alias.getAlias())) {
                return (ValidateResult) ValidateResult.getFailedResult(getClass().getName(), AccountErrorCode.ALIAS_CONFLICT).setData(aliasTransaction);
            }
            if (!accountAddress.add(Hex.encode(alias.getAddress()))) {
                return (ValidateResult) ValidateResult.getFailedResult(getClass().getName(), AccountErrorCode.ACCOUNT_ALREADY_SET_ALIAS).setData(aliasTransaction);
            }
        }
    }
    return ValidateResult.getSuccessResult();
}
Also used : AliasTransaction(io.nuls.account.tx.AliasTransaction) Transaction(io.nuls.kernel.model.Transaction) AliasTransaction(io.nuls.account.tx.AliasTransaction) Alias(io.nuls.account.model.Alias) ValidateResult(io.nuls.kernel.validate.ValidateResult) AliasPo(io.nuls.account.storage.po.AliasPo) HashSet(java.util.HashSet)

Aggregations

Transaction (io.nuls.kernel.model.Transaction)38 NulsDigestData (io.nuls.kernel.model.NulsDigestData)12 ArrayList (java.util.ArrayList)11 Test (org.junit.Test)8 NulsException (io.nuls.kernel.exception.NulsException)7 ValidateResult (io.nuls.kernel.validate.ValidateResult)7 NulsRuntimeException (io.nuls.kernel.exception.NulsRuntimeException)6 IOException (java.io.IOException)5 HashSet (java.util.HashSet)5 Result (io.nuls.kernel.model.Result)4 TransferTransaction (io.nuls.protocol.model.tx.TransferTransaction)4 CreateAgentTransaction (io.nuls.consensus.poc.protocol.tx.CreateAgentTransaction)3 RedPunishTransaction (io.nuls.consensus.poc.protocol.tx.RedPunishTransaction)3 NulsByteBuffer (io.nuls.kernel.utils.NulsByteBuffer)3 UnconfirmedTxPo (io.nuls.account.ledger.storage.po.UnconfirmedTxPo)2 StopAgentTransaction (io.nuls.consensus.poc.protocol.tx.StopAgentTransaction)2 AgentPo (io.nuls.consensus.poc.storage.po.AgentPo)2 Coin (io.nuls.kernel.model.Coin)2 TransactionProcessor (io.nuls.kernel.processor.TransactionProcessor)2 Alias (io.nuls.account.model.Alias)1