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