ModuleBytes.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 ModuleBytes of the contract.
  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("ModuleBytes")
  30. public class ModuleBytes implements ExecutableDeployItem {

  31.     /**
  32.      * Module bytes
  33.      */
  34.     @JsonProperty("module_bytes")
  35.     private String bytes;

  36.     /**
  37.      * @see NamedArg
  38.      */
  39.     private List<NamedArg<?>> args;


  40.     /**
  41.      * {@link ExecutableDeployItem} order 0
  42.      */
  43.     @Override
  44.     public byte getOrder() {
  45.         return 0x0;
  46.     }

  47.     /**
  48.      * Implements the ModuleBytes encoder
  49.      */
  50.     @Override
  51.     public void encode(CLValueEncoder clve, boolean encodeType) throws IOException, CLValueEncodeException, DynamicInstanceException, NoSuchTypeException {
  52.         clve.write(getOrder());
  53.         clve.writeString(getBytes());
  54.         clve.writeInt(args.size());
  55.         for (NamedArg<?> namedArg : args) {
  56.             namedArg.encode(clve, encodeType);
  57.         }
  58.     }
  59. }