@@ -1,32 +1,36 @@ | |||
package com.jd.blockchain.ledger; | |||
import com.jd.blockchain.base.data.TypeCodes; | |||
import com.jd.blockchain.binaryproto.DataContract; | |||
import com.jd.blockchain.binaryproto.DataField; | |||
import com.jd.blockchain.utils.Bytes; | |||
import com.jd.blockchain.utils.ValueType; | |||
/** | |||
* @author huanghaiquan | |||
* | |||
*/ | |||
@DataContract(code= TypeCodes.TX_OP_CONTRACT_EVENT_SEND) | |||
public interface ContractEventSendOperation extends Operation { | |||
// @DataField(order=1, refEnum=true) | |||
// @Override | |||
// default OperationType getType() { | |||
// return OperationType.SEND_CONTRACT_EVENT; | |||
// } | |||
@DataField(order=2, primitiveType=ValueType.BYTES) | |||
Bytes getContractAddress(); | |||
@DataField(order=3, primitiveType=ValueType.TEXT) | |||
String getEvent(); | |||
@DataField(order=4, primitiveType=ValueType.BYTES) | |||
byte[] getArgs(); | |||
} | |||
package com.jd.blockchain.ledger; | |||
import com.jd.blockchain.base.data.TypeCodes; | |||
import com.jd.blockchain.binaryproto.DataContract; | |||
import com.jd.blockchain.binaryproto.DataField; | |||
import com.jd.blockchain.utils.Bytes; | |||
import com.jd.blockchain.utils.ValueType; | |||
/** | |||
* @author huanghaiquan | |||
* | |||
*/ | |||
@DataContract(code= TypeCodes.TX_OP_CONTRACT_EVENT_SEND) | |||
public interface ContractEventSendOperation extends Operation { | |||
// @DataField(order=1, refEnum=true) | |||
// @Override | |||
// default OperationType getType() { | |||
// return OperationType.SEND_CONTRACT_EVENT; | |||
// } | |||
@DataField(order=2, primitiveType=ValueType.BYTES) | |||
Bytes getContractAddress(); | |||
@DataField(order=3, primitiveType=ValueType.TEXT) | |||
String getEvent(); | |||
@DataField(order=4, primitiveType=ValueType.BYTES) | |||
byte[] getArgs(); | |||
//获得交易操作时间; | |||
@DataField(order=5, primitiveType=ValueType.INT64) | |||
Long getTxOpTime(); | |||
} |
@@ -18,8 +18,4 @@ public interface TransactionContent extends TransactionContentBody, HashObject { | |||
@DataField(order=1, primitiveType = ValueType.BYTES) | |||
HashDigest getHash(); | |||
//获得交易操作时间; | |||
@DataField(order=2, primitiveType = ValueType.INT64) | |||
Long getTxOpTime(); | |||
} |
@@ -33,12 +33,4 @@ public interface TransactionContentBody { | |||
@DataField(order = 2, list = true, refContract = true, genericContract = true) | |||
Operation[] getOperations(); | |||
/** | |||
* 交易操作时间 | |||
* | |||
* @return | |||
*/ | |||
@DataField(order = 3, primitiveType = ValueType.INT64) | |||
Long getTxOpTime(); | |||
} |
@@ -1,46 +1,52 @@ | |||
package com.jd.blockchain.ledger.data; | |||
import com.jd.blockchain.binaryproto.DConstructor; | |||
import com.jd.blockchain.binaryproto.DataContractRegistry; | |||
import com.jd.blockchain.binaryproto.FieldSetter; | |||
import com.jd.blockchain.ledger.ContractEventSendOperation; | |||
import com.jd.blockchain.utils.Bytes; | |||
public class ContractEventSendOpTemplate implements ContractEventSendOperation { | |||
static { | |||
DataContractRegistry.register(ContractEventSendOperation.class); | |||
} | |||
private Bytes contractAddress; | |||
private byte[] args; | |||
private String event; | |||
public ContractEventSendOpTemplate() { | |||
} | |||
@DConstructor(name="ContractEventSendOpTemplate") | |||
public ContractEventSendOpTemplate(@FieldSetter(name="getContractAddress", type="Bytes") Bytes contractAddress, | |||
@FieldSetter(name="getEvent", type="String") String event, | |||
@FieldSetter(name="getArgs", type="byte[]") byte[] args) { | |||
this.contractAddress = contractAddress; | |||
this.event = event; | |||
this.args = args; | |||
} | |||
@Override | |||
public Bytes getContractAddress() { | |||
return contractAddress; | |||
} | |||
@Override | |||
public String getEvent() { | |||
return event; | |||
} | |||
@Override | |||
public byte[] getArgs() { | |||
return args; | |||
} | |||
} | |||
package com.jd.blockchain.ledger.data; | |||
import com.jd.blockchain.binaryproto.DConstructor; | |||
import com.jd.blockchain.binaryproto.DataContractRegistry; | |||
import com.jd.blockchain.binaryproto.FieldSetter; | |||
import com.jd.blockchain.ledger.ContractEventSendOperation; | |||
import com.jd.blockchain.utils.Bytes; | |||
public class ContractEventSendOpTemplate implements ContractEventSendOperation { | |||
static { | |||
DataContractRegistry.register(ContractEventSendOperation.class); | |||
} | |||
private Bytes contractAddress; | |||
private byte[] args; | |||
private String event; | |||
//交易操作时间; | |||
private Long txOpTime; | |||
public ContractEventSendOpTemplate() { | |||
} | |||
@DConstructor(name="ContractEventSendOpTemplate") | |||
public ContractEventSendOpTemplate(@FieldSetter(name="getContractAddress", type="Bytes") Bytes contractAddress, | |||
@FieldSetter(name="getEvent", type="String") String event, | |||
@FieldSetter(name="getArgs", type="byte[]") byte[] args) { | |||
this.contractAddress = contractAddress; | |||
this.event = event; | |||
this.args = args; | |||
this.txOpTime = System.currentTimeMillis(); | |||
} | |||
@Override | |||
public Bytes getContractAddress() { | |||
return contractAddress; | |||
} | |||
@Override | |||
public String getEvent() { | |||
return event; | |||
} | |||
@Override | |||
public byte[] getArgs() { | |||
return args; | |||
} | |||
@Override | |||
public Long getTxOpTime() { | |||
return txOpTime; | |||
} | |||
} |
@@ -42,7 +42,6 @@ public class TxBuilder implements TransactionBuilder { | |||
public TransactionContent prepareContent() { | |||
TxContentBlob txContent = new TxContentBlob(ledgerHash); | |||
txContent.addOperations(opFactory.getOperations()); | |||
txContent.setTxOpTime(System.currentTimeMillis()); | |||
byte[] contentBodyBytes = BinaryEncodingUtils.encode(txContent, TransactionContentBody.class); | |||
HashDigest contentHash = CryptoUtils.hash(defaultHashAlgorithm).hash(contentBodyBytes); | |||
@@ -33,9 +33,6 @@ public class TxContentBlob implements TransactionContent { | |||
private HashDigest ledgerHash; | |||
//交易操作时间; | |||
private Long txOpTime; | |||
@DConstructor(name ="TxContentBlob") | |||
public TxContentBlob(@FieldSetter(name="getLedgerHash", type="HashDigest") HashDigest ledgerHash) { | |||
this.ledgerHash = ledgerHash; | |||
@@ -92,13 +89,4 @@ public class TxContentBlob implements TransactionContent { | |||
public void addOperations(Collection<Operation> operations) { | |||
operationList.addAll(operations); | |||
} | |||
@Override | |||
public Long getTxOpTime() { | |||
return txOpTime; | |||
} | |||
public void setTxOpTime(Long txOpTime) { | |||
this.txOpTime = txOpTime; | |||
} | |||
} |