io.nuls.kernel.model.Transaction类的使用及代码示例

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

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

Transaction介绍

暂无

代码示例

代码示例来源: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();
  this.fee = tx.getFee().getValue();
  this.size = tx.getSize();
  if (this.blockHeight > 0 || TxStatusEnum.CONFIRMED.equals(tx.getStatus())) {
    this.confirmCount = bestBlockHeight - this.blockHeight;
  } else {
    this.confirmCount = 0L;
  if (TxStatusEnum.CONFIRMED.equals(tx.getStatus())) {
    this.status = 1;
  } else {
  if (tx.getRemark() != null) {
    try {
      this.setRemark(new String(tx.getRemark(), NulsConfig.DEFAULT_ENCODING));
    } catch (UnsupportedEncodingException e) {
      this.setRemark(Hex.encode(tx.getRemark()));
  if (tx.getTransactionSignature() != null) {
    this.setScriptSig(Hex.encode(tx.getTransactionSignature()));
  CoinData coinData = tx.getCoinData();
  List<InputDto> inputs = new ArrayList<>();
  if(coinData != null) {

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

public static TransactionCreatedReturnInfo makeReturnInfo(Transaction tx) throws IOException {
    String hash = NulsDigestData.calcDigestData(tx.serializeForHash()).getDigestHex();
    String txHex = Hex.encode(tx.serialize());
    CoinData coinData = tx.getCoinData();
    List<InputDto> inputs = ConvertCoinTool.convertInputList(coinData.getFrom());
    List<OutputDto> outputs = ConvertCoinTool.convertOutputList(coinData.getTo(), hash);
    TransactionCreatedReturnInfo returnInfo = new TransactionCreatedReturnInfo(hash, txHex, inputs, outputs);
    return returnInfo;
  }
}

代码示例来源: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

break;
if (tx.getHash() == null || tx.getHash().size() == 0 || tx.getHash().size() > 70) {
  result = false;
  break;
if (tx.getType() == 0 || tx.getType() > MAX_TX_TYPE) {
  result = false;
  break;
if (tx.getTime() == 0) {
  result = false;
  break;
if (tx.getRemark() != null && tx.getRemark().length > MAX_REMARK_LEN) {
  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

private void rollbackToMapAndContractUsedCoinMap(Transaction tx, Map<String, Coin> toMaps, Map<String,Coin> contractUsedCoinMap) {
  if (tx == null || tx.getCoinData() == null || contractUsedCoinMap == null) {
    return;
  }
  CoinData coinData = tx.getCoinData();
  List<Coin> froms = coinData.getFrom();
  List<Coin> tos = coinData.getTo();
  String key;
  for (Coin from : froms) {
    key = from.getKey();
    if(key != null) {
      contractUsedCoinMap.remove(from.getKey());
    }
  }
  try {
    byte[] txHashBytes = tx.getHash().serialize();
    for (int i = 0, size = tos.size(); i < size; i++) {
      toMaps.remove(LedgerUtil.asString(ArraysTool.concatenate(txHashBytes, new VarInt(i).encode())));
    }
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
}

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

public List<NulsDigestData> getTxHashList() {
  List<NulsDigestData> list = new ArrayList<>();
  for (Transaction tx : txs) {
    if (null == tx) {
      continue;
    }
    list.add(tx.getHash());
  }
  return list;
}

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

CoinData coinData = tx.getCoinData();
byte[] txHashBytes;
try {
  txHashBytes = tx.getHash().serialize();
} catch (IOException e) {
  throw new NulsRuntimeException(e);
  if(tx.getType() == ContractConstant.TX_TYPE_CONTRACT_TRANSFER) {
    froms = coinData.getFrom();
    int txHashSize = tx.getHash().size();
    byte[] fromSource;
    byte[] utxoFromHash;
      sourceTxCoinTo = sourceTx.getCoinData().getTo().get((int) new VarInt(utxoFromIndex, 0).value);

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

if (transaction == null || transaction.getCoinData() == null) {
  return ValidateResult.getFailedResult(CLASS_NAME, LedgerErrorCode.NULL_PARAMETER);
  CoinData coinData = transaction.getCoinData();
  List<Coin> froms = coinData.getFrom();
  int fromSize = froms.size();
  TransactionSignature transactionSignature = new TransactionSignature();
  if (transaction.needVerifySignature() && fromSize > 0) {
    try {
      transactionSignature.parse(transaction.getTransactionSignature(), 0);
    } catch (NulsException e) {
      return ValidateResult.getFailedResult(CLASS_NAME, LedgerErrorCode.LEDGER_P2PKH_SCRIPT_ERROR);
      if (transaction.getType() != ContractConstant.TX_TYPE_CONTRACT_TRANSFER) {
        boolean isContractAddress = contractService.isContractAddress(realAddressBytes);
        if (isContractAddress) {
      if (transaction.needVerifySignature()) {
        if (transactionSignature != null) {
          if (fromAddressBytes != null && transactionSignature.getScripts() != null
    if (!transaction.isUnlockTx()) {
  byte[] txBytes = transaction.getHash().serialize();
  for (int i = 0; i < tos.size(); i++) {
    Coin to = tos.get(i);
    if (ContractConstant.TX_TYPE_CALL_CONTRACT != transaction.getType()

代码示例来源: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

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

int txType;
for (Transaction tx : txList) {
  txType = tx.getType();
  if (txType == ContractConstant.TX_TYPE_CREATE_CONTRACT
      || txType == ContractConstant.TX_TYPE_CALL_CONTRACT
    ContractResult contractResult = contractTx.getContractResult();
    if (contractResult == null) {
      contractResult = contractService.getContractExecuteResult(tx.getHash());
      if (contractResult == null) {
        Log.error("get contract tx contractResult error: " + tx.getHash().getDigestHex());
        continue;
    ContractData contractData = (ContractData) tx.getTxData();
    long realGasUsed = contractResult.getGasUsed();
    long txGasUsed = contractData.getGasLimit();

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

@Override
public int compare(Transaction o1, Transaction o2) {
  if (o1.getHash().equals(o2.getHash())) {
    return 0;
  if (o1.getTime() < o2.getTime()) {
    return -1;
  } else if (o1.getTime() > o2.getTime()) {
    return 1;
  } else {
    for (Coin coin : o1.getCoinData().getFrom()) {
      NulsByteBuffer buffer = new NulsByteBuffer(coin.getOwner());
      NulsDigestData hash = null;
        Log.error(e);
      if (o2.getHash().equals(hash)) {
        return 1;
    for (Coin coin : o2.getCoinData().getFrom()) {
      NulsByteBuffer buffer = new NulsByteBuffer(coin.getOwner());
      NulsDigestData hash = null;
        Log.error(e);
      if (o1.getHash().equals(hash)) {
        return -1;

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

private boolean processTx(Transaction tx, boolean isOrphanTx) {
  try {
    Result result = tx.verify();
    if (result.isFailed()) {
      return false;
    Transaction tempTx = ledgerService.getTx(tx.getHash());
    if (tempTx != null) {
      return isOrphanTx;
      pool.add(tx, false);
      List<Coin> fromCoins = tx.getCoinData().getFrom();
      for (Coin coin : fromCoins) {
        String key = LedgerUtil.asString(coin.getOwner());
      processOrphanTx(tx);
    } else if (isOrphanTx) {
      return tx.getTime() < (TimeService.currentTimeMillis() - 3600000L);

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

public void initUsedTxSets() {
  usedTxSets = new HashSet<>();
  List<Transaction> allUnconfirmedTxs = unconfirmedTransactionStorageService.loadAllUnconfirmedList().getData();
  for (Transaction tx : allUnconfirmedTxs) {
    CoinData coinData = tx.getCoinData();
    if (coinData == null) {
      continue;
    }
    List<Coin> froms = tx.getCoinData().getFrom();
    for (Coin from : froms) {
      usedTxSets.add(LedgerUtil.asString(from.getOwner()));
    }
  }
}

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

for (Transaction tx : list) {
  Result result = verifyTransaction(tx, toMaps, fromSet);
  boolean hashRight = NulsDigestData.calcDigestData(tx.serializeForHash()).equals(tx.getHash());
  if (result.isSuccess() && hashRight) {
    if (TimeService.currentTimeMillis() - tx.getTime() < 300000L) {
      return;
    List<byte[]> addresses = tx.getAllRelativeAddress();
    Set<String> set = new HashSet<>();
    for (byte[] address : addresses) {

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

@Override
public void onMessage(TransactionMessage message, Node fromNode) {
  Transaction tx = message.getMsgBody();
  if (null == tx) {
    return;
  }
  if (tx.isSystemTx()) {
    return;
  }
  NulsDigestData hash = tx.getHash();
  TransactionDuplicateRemoval.insert(hash);
  transactionService.newTx(tx);
}

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

transactionSignature.getScripts().clear();
transactionSignature.getScripts().add(scriptSign);
tx.setTransactionSignature(transactionSignature.serialize());
  return sendResult;
return Result.getSuccess().setData(tx.getHash().getDigestHex());
tx.setTransactionSignature(transactionSignature.serialize());
return Result.getSuccess().setData(Hex.encode(tx.serialize()));

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

tokenTransferInfoPo.setSymbol(contractAddressInfo.getNrc20TokenSymbol());
tokenTransferInfoPo.setDecimals(contractAddressInfo.getDecimals());
tokenTransferInfoPo.setTime(tx.getTime());
tokenTransferInfoPo.setBlockHeight(tx.getBlockHeight());
txHashBytes = tx.getHash().serialize();
tokenTransferInfoPo.setTxHash(txHashBytes);
tokenTransferInfoPo.setStatus((byte) (contractResult.isSuccess() ? 1 : 2));

代码示例来源: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();
  }
}

相关文章