本文整理了Java中io.nuls.kernel.model.Transaction
类的一些代码示例,展示了Transaction
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Transaction
类的具体详情如下:
包路径:io.nuls.kernel.model.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();
}
}
内容来源于网络,如有侵权,请联系作者删除!