/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: common/contract.proto */

#ifndef PROTOBUF_C_common_2fcontract_2eproto__INCLUDED
#define PROTOBUF_C_common_2fcontract_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1004000 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif

#include "transaction.pb-c-hwbcs.h"

typedef struct Common__Invocation Common__Invocation;
typedef struct Common__ContractInvocation Common__ContractInvocation;


/* --- enums --- */


/* --- messages --- */

struct  Common__Invocation
{
  ProtobufCMessage base;
  Common__TxHeader *header;
  Common__ContractInvocation *parameters;
};
#define COMMON__INVOCATION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__invocation__descriptor) \
    , NULL, NULL }


struct  Common__ContractInvocation
{
  ProtobufCMessage base;
  char *contract_name;
  char *func_name;
  size_t n_args;
  ProtobufCBinaryData *args;
  ProtobufCBinaryData encryptedkey;
  protobuf_c_boolean is_compressed;
};
#define COMMON__CONTRACT_INVOCATION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__contract_invocation__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL, {0,NULL}, 0 }


/* Common__Invocation methods */
void   common__invocation__init
                     (Common__Invocation         *message);
size_t common__invocation__get_packed_size
                     (const Common__Invocation   *message);
size_t common__invocation__pack
                     (const Common__Invocation   *message,
                      uint8_t             *out);
size_t common__invocation__pack_to_buffer
                     (const Common__Invocation   *message,
                      ProtobufCBuffer     *buffer);
Common__Invocation *
       common__invocation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__invocation__free_unpacked
                     (Common__Invocation *message,
                      ProtobufCAllocator *allocator);
/* Common__ContractInvocation methods */
void   common__contract_invocation__init
                     (Common__ContractInvocation         *message);
size_t common__contract_invocation__get_packed_size
                     (const Common__ContractInvocation   *message);
size_t common__contract_invocation__pack
                     (const Common__ContractInvocation   *message,
                      uint8_t             *out);
size_t common__contract_invocation__pack_to_buffer
                     (const Common__ContractInvocation   *message,
                      ProtobufCBuffer     *buffer);
Common__ContractInvocation *
       common__contract_invocation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__contract_invocation__free_unpacked
                     (Common__ContractInvocation *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Common__Invocation_Closure)
                 (const Common__Invocation *message,
                  void *closure_data);
typedef void (*Common__ContractInvocation_Closure)
                 (const Common__ContractInvocation *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor common__invocation__descriptor;
extern const ProtobufCMessageDescriptor common__contract_invocation__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_common_2fcontract_2eproto__INCLUDED */
