@@ -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) | @DataField(order=1, primitiveType = ValueType.BYTES) | ||||
HashDigest getHash(); | 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) | @DataField(order = 2, list = true, refContract = true, genericContract = true) | ||||
Operation[] getOperations(); | 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() { | public TransactionContent prepareContent() { | ||||
TxContentBlob txContent = new TxContentBlob(ledgerHash); | TxContentBlob txContent = new TxContentBlob(ledgerHash); | ||||
txContent.addOperations(opFactory.getOperations()); | txContent.addOperations(opFactory.getOperations()); | ||||
txContent.setTxOpTime(System.currentTimeMillis()); | |||||
byte[] contentBodyBytes = BinaryEncodingUtils.encode(txContent, TransactionContentBody.class); | byte[] contentBodyBytes = BinaryEncodingUtils.encode(txContent, TransactionContentBody.class); | ||||
HashDigest contentHash = CryptoUtils.hash(defaultHashAlgorithm).hash(contentBodyBytes); | HashDigest contentHash = CryptoUtils.hash(defaultHashAlgorithm).hash(contentBodyBytes); | ||||
@@ -33,9 +33,6 @@ public class TxContentBlob implements TransactionContent { | |||||
private HashDigest ledgerHash; | private HashDigest ledgerHash; | ||||
//交易操作时间; | |||||
private Long txOpTime; | |||||
@DConstructor(name ="TxContentBlob") | @DConstructor(name ="TxContentBlob") | ||||
public TxContentBlob(@FieldSetter(name="getLedgerHash", type="HashDigest") HashDigest ledgerHash) { | public TxContentBlob(@FieldSetter(name="getLedgerHash", type="HashDigest") HashDigest ledgerHash) { | ||||
this.ledgerHash = ledgerHash; | this.ledgerHash = ledgerHash; | ||||
@@ -92,13 +89,4 @@ public class TxContentBlob implements TransactionContent { | |||||
public void addOperations(Collection<Operation> operations) { | public void addOperations(Collection<Operation> operations) { | ||||
operationList.addAll(operations); | operationList.addAll(operations); | ||||
} | } | ||||
@Override | |||||
public Long getTxOpTime() { | |||||
return txOpTime; | |||||
} | |||||
public void setTxOpTime(Long txOpTime) { | |||||
this.txOpTime = txOpTime; | |||||
} | |||||
} | } |