io.nuls.kernel.model.Transaction.getType()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(9.8k)|赞(0)|评价(0)|浏览(92)

本文整理了Java中io.nuls.kernel.model.Transaction.getType()方法的一些代码示例,展示了Transaction.getType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Transaction.getType()方法的具体详情如下:
包路径:io.nuls.kernel.model.Transaction
类名称:Transaction
方法名:getType

Transaction.getType介绍

暂无

代码示例

代码示例来源:origin: nuls-io/nuls

public static boolean isGasCostContractTransaction(Transaction tx) {
  if (tx == null) {
    return false;
  }
  int txType = tx.getType();
  if(txType == ContractConstant.TX_TYPE_CREATE_CONTRACT
      || txType == ContractConstant.TX_TYPE_CALL_CONTRACT) {
    return true;
  }
  return false;
}

代码示例来源:origin: nuls-io/nuls

public static boolean isContractTransaction(Transaction tx) {
  if (tx == null) {
    return false;
  }
  int txType = tx.getType();
  if(txType == ContractConstant.TX_TYPE_CREATE_CONTRACT
      || txType == ContractConstant.TX_TYPE_CALL_CONTRACT
      || txType == ContractConstant.TX_TYPE_DELETE_CONTRACT
      || txType == ContractConstant.TX_TYPE_CONTRACT_TRANSFER) {
    return true;
  }
  return false;
}

代码示例来源:origin: nuls-io/nuls

public static final void putTx(Class<? extends Transaction> txClass, Class<? extends TransactionProcessor> txProcessorClass) {
  if (null != txProcessorClass) {
    TX_SERVICE_MAP.put(txClass, txProcessorClass);
  }
  try {
    Transaction tx = txClass.newInstance();
    TYPE_TX_MAP.put(tx.getType(), txClass);
  } catch (InstantiationException e) {
    Log.error(e);
  } catch (IllegalAccessException e) {
    Log.error(e);
  }
}

代码示例来源:origin: nuls-io/nuls

public TransactionInfoPo(Transaction tx) {
  if (tx == null) {
    return;
  }
  this.txHash = tx.getHash();
  this.blockHeight = tx.getBlockHeight();
  this.time = tx.getTime();
  List<byte[]> addressList = tx.getAllRelativeAddress();
  byte[] addresses = new byte[addressList.size() * Address.ADDRESS_LENGTH];
  for (int i = 0; i < addressList.size(); i++) {
    System.arraycopy(addressList.get(i), 0, addresses, Address.ADDRESS_LENGTH * i, Address.ADDRESS_LENGTH);
  }
  this.addresses = addresses;
  this.txType = tx.getType();
}

代码示例来源:origin: nuls-io/nuls

public TransactionInfoPo(Transaction tx) {
  if (tx == null) {
    return;
  }
  this.txHash = tx.getHash();
  this.blockHeight = tx.getBlockHeight();
  this.time = tx.getTime();
  List<byte[]> addressList = tx.getAllRelativeAddress();
  byte[] addresses = new byte[addressList.size() * Address.ADDRESS_LENGTH];
  for (int i = 0; i < addressList.size(); i++) {
    System.arraycopy(addressList.get(i), 0, addresses, Address.ADDRESS_LENGTH* i, Address.ADDRESS_LENGTH);
  }
  this.addresses = addresses;
  this.txType = tx.getType();
}

代码示例来源:origin: nuls-io/nuls

@Override
  public ValidateResult validate(Transaction tx) {
    int txType = tx.getType();
    ProtocolContainer container = NulsVersionManager.getCurrentProtocolContainer();
    if(!container.containsTxType(txType)) {
      return ValidateResult.getFailedResult(this.getClass().getName(), TransactionErrorCode.TX_NOT_EFFECTIVE);
    }
    return ValidateResult.getSuccessResult();
  }
}

代码示例来源:origin: nuls-io/nuls

if (tx.getType() == ProtocolConstant.TX_TYPE_COINBASE || tx.getType() == ProtocolConstant.TX_TYPE_TRANSFER) {
  continue;

代码示例来源:origin: nuls-io/nuls

Set<String> accountAddress = new HashSet<>();
for (Transaction transaction : txList) {
  if (transaction.getType() == AccountConstant.TX_TYPE_ACCOUNT_ALIAS){
    AliasTransaction aliasTransaction = (AliasTransaction) transaction;
    Alias alias = aliasTransaction.getTxData();

代码示例来源:origin: nuls-io/nuls

if (transaction.getType() == ConsensusConstant.TX_TYPE_REGISTER_AGENT) {
  CreateAgentTransaction createAgentTransaction = (CreateAgentTransaction) transaction;
    return (ValidateResult) ValidateResult.getFailedResult(getClass().getName(), PocConsensusErrorCode.AGENT_EXIST).setData(transaction);
} else if (transaction.getType() == ConsensusConstant.TX_TYPE_RED_PUNISH) {
  RedPunishTransaction redPunishTransaction = (RedPunishTransaction) transaction;
  RedPunishData redPunishData = redPunishTransaction.getTxData();

代码示例来源:origin: nuls-io/nuls

private void rollbackContractTempBalance(Transaction tx, ContractResult contractResult) {
  if(tx != null && tx.getType() == ContractConstant.TX_TYPE_CALL_CONTRACT) {
    CallContractTransaction callContractTransaction = (CallContractTransaction) tx;
    CallContractData callContractData = callContractTransaction.getTxData();
    byte[] contractAddress = callContractData.getContractAddress();
    // 增加转出, 扣除转入
    List<ContractTransfer> transfers = contractResult.getTransfers();
    if(transfers != null && transfers.size() > 0) {
      LinkedHashMap<String, Na>[] contracts = this.filterContractNa(transfers);
      LinkedHashMap<String, Na> contractOutNa = contracts[0];
      LinkedHashMap<String, Na> contractInNa = contracts[1];
      byte[] contractBytes;
      Set<Map.Entry<String, Na>> outs = contractOutNa.entrySet();
      for(Map.Entry<String, Na> out : outs) {
        contractBytes = asBytes(out.getKey());
        contractBalanceManager.addTempBalance(contractBytes, out.getValue());
      }
      Set<Map.Entry<String, Na>> ins = contractInNa.entrySet();
      for(Map.Entry<String, Na> in : ins) {
        contractBytes = asBytes(in.getKey());
        contractBalanceManager.minusTempBalance(contractBytes, in.getValue());
      }
    }
    // 扣除转入
    long value = callContractData.getValue();
    if(value > 0) {
      contractBalanceManager.minusTempBalance(contractAddress, Na.valueOf(value));
    }
  }
}

代码示例来源:origin: nuls-io/nuls

public BlockDto(Block block) throws IOException {
  this(block.getHeader());
  this.size = block.size();
  this.txList = new ArrayList<>();
  Na fee = Na.ZERO;
  for (Transaction tx : block.getTxs()) {
    this.txList.add(new TransactionDto(tx));
    fee = fee.add(tx.getFee());
    if (tx.getType() == ProtocolConstant.TX_TYPE_COINBASE) {
      setBlockReward(tx);
    }
    tx.setStatus(TxStatusEnum.CONFIRMED);
  }
  this.fee = fee.getValue();
}

代码示例来源:origin: nuls-io/nuls

break;
if (tx.getType() == 0 || tx.getType() > MAX_TX_TYPE) {
  result = false;
  break;

代码示例来源:origin: nuls-io/nuls

public UtxoDto(Coin coin, Transaction tx) {
  this.txHash = tx.getHash().getDigestHex();
  this.createTime = tx.getTime();
  this.txType = tx.getType();
  this.lockTime = coin.getLockTime();
  this.value = coin.getNa().getValue();
}

代码示例来源:origin: nuls-io/nuls

@Override
  public ValidateResult validate(Transaction tx) throws NulsException {
    if(tx.getCoinData() == null){
      return ValidateResult.getSuccessResult();
    }
    List<Coin> toList = tx.getCoinData().getTo();
    if(toList == null || toList.size() == 0){
      return ValidateResult.getSuccessResult();
    }
    int type = tx.getType();
    for (Coin coin : toList) {
      if(ContractUtil.isLegalContractAddress(coin.getOwner())) {
        if(type != NulsConstant.TX_TYPE_COINBASE && type != ContractConstant.TX_TYPE_CALL_CONTRACT) {
          Log.error("contract data error: The contract does not accept transfers of this type[{}] of transaction.", type);
          return ValidateResult.getFailedResult(this.getClass().getSimpleName(), TransactionErrorCode.TX_DATA_VALIDATION_ERROR);
        }
      }
    }
    return ValidateResult.getSuccessResult();
  }
}

代码示例来源:origin: nuls-io/nuls

@Override
  public ValidateResult validate(Transaction tx) {
    int txType = tx.getType();
    if (tx.isSystemTx()) {
      return ValidateResult.getSuccessResult();
    }
    CoinData coinData = tx.getCoinData();
    if (null == coinData) {
      return ValidateResult.getFailedResult(this.getClass().getName(), TransactionErrorCode.COINDATA_NOT_FOUND);
    }
    Na realFee = tx.getFee();
    Na fee = null;
    if (txType == ProtocolConstant.TX_TYPE_TRANSFER
        || txType == ProtocolConstant.TX_TYPE_DATA
        || txType == ContractConstant.TX_TYPE_CREATE_CONTRACT
        || txType == ContractConstant.TX_TYPE_CALL_CONTRACT
        || txType == ContractConstant.TX_TYPE_DELETE_CONTRACT) {
      fee = TransactionFeeCalculator.getTransferFee(tx.size());
    } else {
      fee = TransactionFeeCalculator.getMaxFee(tx.size());
    }
    if (realFee.isGreaterOrEquals(fee)) {
      return ValidateResult.getSuccessResult();
    }
    return ValidateResult.getFailedResult(this.getClass().getName(), TransactionErrorCode.FEE_NOT_RIGHT);
  }
}

代码示例来源:origin: nuls-io/nuls

private Result<Integer> rollbackTransaction(Transaction tx) {
  // 获取tx中是智能合约地址的地址列表
  List<byte[]> addresses = ContractLedgerUtil.getRelatedAddresses(tx);
  if (addresses == null || addresses.size() == 0) {
    return Result.getSuccess().setData(new Integer(0));
  }
  TransactionInfoPo txInfoPo = new TransactionInfoPo(tx);
  // 删除合约地址相关交易 - TransactionInfo
  Result result = contractTransactionInfoService.deleteTransactionInfo(txInfoPo, addresses);
  if (result.isFailed()) {
    return result;
  }
  // 删除非合约交易转入合约地址的utxo
  if(tx.getType() != ContractConstant.TX_TYPE_CALL_CONTRACT) {
    result = contractUtxoService.deleteUtxoOfTransaction(tx);
    if (result.isFailed()) {
      Log.error("rollback non-call-contract transfer utxo error, reason is {}.", result.getMsg());
      return result;
    }
  }
  return result;
}

代码示例来源:origin: nuls-io/nuls

public BlockHeaderDto(Block block) throws IOException {
  this(block.getHeader());
  this.size = block.getHeader().size();
  Na fee = Na.ZERO;
  for (Transaction tx : block.getTxs()) {
    fee = fee.add(tx.getFee());
    if (tx.getType() == ProtocolConstant.TX_TYPE_COINBASE) {
      setBlockReward(tx);
    }
  }
  this.fee = fee.getValue();
}

代码示例来源:origin: nuls-io/nuls

private Result<Integer> saveConfirmedTransaction(Transaction tx) {
  if (tx == null) {
    Log.error("save confirmed contract tx error, tx is null.");
    return Result.getFailed(ContractErrorCode.NULL_PARAMETER);
  }
  // 获取tx中是智能合约地址列表
  List<byte[]> addresses = ContractLedgerUtil.getRelatedAddresses(tx);
  // 合约账本不处理非合约相关交易
  if (addresses == null || addresses.size() == 0) {
    return Result.getSuccess().setData(new Integer(0));
  }
  TransactionInfoPo txInfoPo = new TransactionInfoPo(tx);
  txInfoPo.setStatus(TransactionInfo.CONFIRMED);
  Result result = contractTransactionInfoService.saveTransactionInfo(txInfoPo, addresses);
  if (result.isFailed()) {
    Log.error("save confirmed contract transactionInfo error, reason is {}.", result.getMsg());
    return result;
  }
  // 保存非合约交易转入合约地址的utxo
  if(tx.getType() != ContractConstant.TX_TYPE_CALL_CONTRACT) {
    result = contractUtxoService.saveUtxoForContractAddress(tx);
    if (result.isFailed()) {
      Log.error("save confirmed non-call-contract transfer utxo error, reason is {}.", result.getMsg());
      return result;
    }
  }
  result.setData(new Integer(1));
  return result;
}

代码示例来源:origin: nuls-io/nuls

public ContractTransactionDto(Transaction tx) {
  long bestBlockHeight = NulsContext.getInstance().getBestBlock().getHeader().getHeight();
  this.hash = tx.getHash().getDigestHex();
  this.type = tx.getType();
  this.time = tx.getTime();
  this.blockHeight = tx.getBlockHeight();

代码示例来源:origin: nuls-io/nuls

public TransactionDto(Transaction tx) {
  long bestBlockHeight = NulsContext.getInstance().getBestBlock().getHeader().getHeight();
  this.hash = tx.getHash().getDigestHex();
  this.type = tx.getType();
  this.time = tx.getTime();
  this.blockHeight = tx.getBlockHeight();

相关文章