DeployHeader.java
- package com.syntifi.casper.sdk.model.deploy;
- import com.fasterxml.jackson.annotation.JsonFormat;
- import com.fasterxml.jackson.annotation.JsonProperty;
- import com.syntifi.casper.sdk.exception.CLValueEncodeException;
- import com.syntifi.casper.sdk.exception.DynamicInstanceException;
- import com.syntifi.casper.sdk.exception.NoSuchTypeException;
- import com.syntifi.casper.sdk.model.clvalue.encdec.CLValueEncoder;
- import com.syntifi.casper.sdk.model.clvalue.encdec.interfaces.EncodableValue;
- import com.syntifi.casper.sdk.model.common.Digest;
- import com.syntifi.casper.sdk.model.common.Ttl;
- import com.syntifi.casper.sdk.model.key.PublicKey;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Getter;
- import lombok.NoArgsConstructor;
- import lombok.Setter;
- import java.io.IOException;
- import java.util.Date;
- import java.util.List;
- /**
- * The header portion of a [`Deploy`](struct.Deploy.html).
- *
- * @author Alexandre Carvalho
- * @author Andre Bertolace
- * @since 0.0.1
- */
- @Getter
- @Setter
- @Builder
- @AllArgsConstructor
- @NoArgsConstructor
- public class DeployHeader implements EncodableValue {
- /**
- * @see PublicKey
- */
- private PublicKey account;
- /**
- * Body hash
- */
- @JsonProperty("body_hash")
- private Digest bodyHash;
- /**
- * Chain name
- */
- @JsonProperty("chain_name")
- private String chainName;
- /**
- * Dependencies
- */
- private List<Digest> dependencies;
- /**
- * Gas price
- */
- @JsonProperty("gas_price")
- private Long gasPrice;
- /**
- * Timestamp formatted as per RFC 3339
- */
- @JsonProperty("timestamp")
- @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
- private Date timeStamp;
- /**
- * Human-readable duration
- */
- private Ttl ttl;
- /**
- * Implements DeployHearder encoder
- */
- @Override
- public void encode(CLValueEncoder clve, boolean encodeType) throws IOException, CLValueEncodeException, DynamicInstanceException, NoSuchTypeException {
- account.encode(clve, encodeType);
- clve.writeLong(timeStamp.getTime());
- ttl.encode(clve, encodeType);
- clve.writeLong(gasPrice);
- bodyHash.encode(clve, encodeType);
- if (dependencies != null) {
- clve.writeInt(dependencies.size());
- for (Digest dependency : dependencies) {
- clve.write(dependency.getDigest());
- }
- }
- clve.writeString(chainName);
- }
- }