Browse Source

Refactored the timestamp generation mechanism of ContractEventSendOperation;

tags/1.0.0
huanghaiquan 5 years ago
parent
commit
fa99325a93
3 changed files with 42 additions and 20 deletions
  1. +30
    -12
      source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractEventSendOperation.java
  2. +8
    -5
      source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOpTemplate.java
  3. +4
    -3
      source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilderImpl.java

+ 30
- 12
source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractEventSendOperation.java View File

@@ -10,21 +10,39 @@ import com.jd.blockchain.utils.Bytes;
* @author huanghaiquan * @author huanghaiquan
* *
*/ */
@DataContract(code= DataCodes.TX_OP_CONTRACT_EVENT_SEND)
@DataContract(code = DataCodes.TX_OP_CONTRACT_EVENT_SEND)
public interface ContractEventSendOperation extends Operation { public interface ContractEventSendOperation extends Operation {
@DataField(order=2, primitiveType=PrimitiveType.BYTES)

/**
* 响应事件的合约地址;
*
* @return
*/
@DataField(order = 2, primitiveType = PrimitiveType.BYTES)
Bytes getContractAddress(); Bytes getContractAddress();
@DataField(order=3, primitiveType=PrimitiveType.TEXT)

/**
* 事件名;
*
* @return
*/
@DataField(order = 3, primitiveType = PrimitiveType.TEXT)
String getEvent(); String getEvent();
@DataField(order=4, primitiveType=PrimitiveType.BYTES)

/**
* 事件参数;
*
* @return
*/
@DataField(order = 4, primitiveType = PrimitiveType.BYTES)
byte[] getArgs(); byte[] getArgs();


//获得交易操作时间;
@DataField(order=5, primitiveType=PrimitiveType.INT64)
Long getTxOpTime();
/**
* 时间戳;
*
* @return
*/
@DataField(order = 5, primitiveType = PrimitiveType.INT64)
long getTs();

} }

+ 8
- 5
source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOpTemplate.java View File

@@ -12,8 +12,8 @@ public class ContractEventSendOpTemplate implements ContractEventSendOperation {
private Bytes contractAddress; private Bytes contractAddress;
private byte[] args; private byte[] args;
private String event; private String event;
//交易操作时间;
private Long txOpTime;
private long ts;


public ContractEventSendOpTemplate() { public ContractEventSendOpTemplate() {
} }
@@ -22,7 +22,6 @@ public class ContractEventSendOpTemplate implements ContractEventSendOperation {
this.contractAddress = contractAddress; this.contractAddress = contractAddress;
this.event = event; this.event = event;
this.args = args; this.args = args;
this.txOpTime = System.currentTimeMillis();
} }


@Override @Override
@@ -41,7 +40,11 @@ public class ContractEventSendOpTemplate implements ContractEventSendOperation {
} }


@Override @Override
public Long getTxOpTime() {
return txOpTime;
public long getTs() {
return ts;
}

public void setTs(long ts) {
this.ts = ts;
} }
} }

+ 4
- 3
source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilderImpl.java View File

@@ -4,18 +4,19 @@ import com.jd.blockchain.ledger.ContractEventSendOperation;
import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.Bytes;
@Deprecated @Deprecated
class ContractEventSendOperationBuilderImpl implements ContractEventSendOperationBuilder{
class ContractEventSendOperationBuilderImpl implements ContractEventSendOperationBuilder {
@Override @Override
public ContractEventSendOperation send(String address, String event, byte[] args) { public ContractEventSendOperation send(String address, String event, byte[] args) {
ContractEventSendOpTemplate op = new ContractEventSendOpTemplate(Bytes.fromBase58(address), event, args); ContractEventSendOpTemplate op = new ContractEventSendOpTemplate(Bytes.fromBase58(address), event, args);
op.setTs(System.currentTimeMillis());
return op; return op;
} }
@Override @Override
public ContractEventSendOperation send(Bytes address, String event, byte[] args) { public ContractEventSendOperation send(Bytes address, String event, byte[] args) {
ContractEventSendOpTemplate op = new ContractEventSendOpTemplate(address, event, args); ContractEventSendOpTemplate op = new ContractEventSendOpTemplate(address, event, args);
op.setTs(System.currentTimeMillis());
return op; return op;
} }


Loading…
Cancel
Save