StoredContractByName.java

  1. package com.syntifi.casper.sdk.model.deploy.executabledeploy;

  2. import com.fasterxml.jackson.annotation.JsonProperty;
  3. import com.fasterxml.jackson.annotation.JsonTypeName;
  4. import com.syntifi.casper.sdk.exception.CLValueEncodeException;
  5. import com.syntifi.casper.sdk.exception.DynamicInstanceException;
  6. import com.syntifi.casper.sdk.exception.NoSuchTypeException;
  7. import com.syntifi.casper.sdk.model.clvalue.encdec.CLValueEncoder;
  8. import com.syntifi.casper.sdk.model.deploy.NamedArg;
  9. import lombok.AllArgsConstructor;
  10. import lombok.Builder;
  11. import lombok.Getter;
  12. import lombok.NoArgsConstructor;
  13. import lombok.Setter;

  14. import java.io.IOException;
  15. import java.util.List;

  16. /**
  17.  * Abstract Executable Deploy Item containing the StoredContractByName.
  18.  *
  19.  * @author Alexandre Carvalho
  20.  * @author Andre Bertolace
  21.  * @see ExecutableDeployItem
  22.  * @since 0.0.1
  23.  */
  24. @Getter
  25. @Setter
  26. @Builder
  27. @AllArgsConstructor
  28. @NoArgsConstructor
  29. @JsonTypeName("StoredContractByName")
  30. public class StoredContractByName implements ExecutableDeployItem {

  31.     /**
  32.      * Contract name
  33.      */
  34.     private String name;

  35.     /**
  36.      * Entry Point
  37.      */
  38.     @JsonProperty("entry_point")
  39.     private String entryPoint;

  40.     /**
  41.      * @see NamedArg
  42.      */
  43.     private List<NamedArg<?>> args;

  44.     /**
  45.      * {@link ExecutableDeployItem} order 2
  46.      */
  47.     @Override
  48.     public byte getOrder() {
  49.         return 0x2;
  50.     }

  51.     /**
  52.      * Implements the StoredContractByHash encoder
  53.      */
  54.     @Override
  55.     public void encode(CLValueEncoder clve, boolean encodeType)
  56.             throws IOException, CLValueEncodeException, DynamicInstanceException, NoSuchTypeException {
  57.         clve.write(getOrder());
  58.         clve.writeString(getName());
  59.         clve.writeString(getEntryPoint());
  60.         clve.writeInt(args.size());
  61.         for (NamedArg<?> namedArg : args) {
  62.             namedArg.encode(clve, true);
  63.         }
  64.     }
  65. }