/* 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 1003003 < 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 "member.pb-c.h"
#include "policy.pb-c.h"

typedef struct _Common__ContractId Common__ContractId;
typedef struct _Common__ContractInfo Common__ContractInfo;
typedef struct _Common__ContractTransaction Common__ContractTransaction;
typedef struct _Common__RemoteAttestationRequest Common__RemoteAttestationRequest;
typedef struct _Common__RemoteAttestationPayload Common__RemoteAttestationPayload;
typedef struct _Common__PrivateDeployRequest Common__PrivateDeployRequest;
typedef struct _Common__PrivateDeployPayload Common__PrivateDeployPayload;
typedef struct _Common__PrivateComputeRequest Common__PrivateComputeRequest;
typedef struct _Common__PrivateComputePayload Common__PrivateComputePayload;
typedef struct _Common__SignInfo Common__SignInfo;
typedef struct _Common__Contract Common__Contract;
typedef struct _Common__ContractList Common__ContractList;
typedef struct _Common__Epoch Common__Epoch;
typedef struct _Common__Validator Common__Validator;
typedef struct _Common__Delegation Common__Delegation;
typedef struct _Common__UnbondingDelegation Common__UnbondingDelegation;
typedef struct _Common__UnbondingDelegationEntry Common__UnbondingDelegationEntry;
typedef struct _Common__ValidatorVector Common__ValidatorVector;
typedef struct _Common__DelegationInfo Common__DelegationInfo;


/* --- enums --- */

typedef enum _Common__ContractName {
  /*
   * system chain configuration contract
   * used to add, delete and change the chain configuration
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_CHAIN_CONFIG = 0,
  /*
   * system chain query contract
   * used to query the configuration on the chain
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_QUERY = 1,
  /*
   * system certificate storage contract
   * used to manage certificates
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_CERT_MANAGE = 2,
  /*
   * governance contract
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_GOVERNANCE = 3,
  /*
   * multi signature contract on chain
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_MULTI_SIGN = 4,
  /*
   * contract state
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_STATE = 5,
  /*
   * private compute contract
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_PRIVATE_COMPUTE = 6,
  /*
   * erc20 contract for DPoS
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_DPOS_ERC20 = 7,
  /*
   * stake contract for dpos
   */
  COMMON__CONTRACT_NAME__SYSTEM_CONTRACT_DPOS_STAKE = 8
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__CONTRACT_NAME)
} Common__ContractName;
typedef enum _Common__QueryFunction {
  /*
   * get block by transactionId
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_BY_TX_ID = 0,
  /*
   * get contract information
   */
  COMMON__QUERY_FUNCTION__GET_CONTRACT_INFO = 1,
  /*
   * get transaction by transactionId
   */
  COMMON__QUERY_FUNCTION__GET_TX_BY_TX_ID = 2,
  /*
   * get block by block height
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_BY_HEIGHT = 3,
  /*
   * get chain information
   */
  COMMON__QUERY_FUNCTION__GET_CHAIN_INFO = 4,
  /*
   * get the last configuration block
   */
  COMMON__QUERY_FUNCTION__GET_LAST_CONFIG_BLOCK = 5,
  /*
   * get block by block hash
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_BY_HASH = 6,
  /*
   * get the list of node
   */
  COMMON__QUERY_FUNCTION__GET_NODE_CHAIN_LIST = 7,
  /*
   * get governance information
   */
  COMMON__QUERY_FUNCTION__GET_GOVERNANCE_CONTRACT = 8,
  /*
   * get read/write set information by eight
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_WITH_TXRWSETS_BY_HEIGHT = 9,
  /*
   * get read/write set information by hash
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_WITH_TXRWSETS_BY_HASH = 10,
  /*
   * get the last block
   */
  COMMON__QUERY_FUNCTION__GET_LAST_BLOCK = 11,
  /*
   * get full block by height
   */
  COMMON__QUERY_FUNCTION__GET_FULL_BLOCK_BY_HEIGHT = 12,
  /*
   * get block height by tx id
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_HEIGHT_BY_TX_ID = 13,
  /*
   * get block height by hash
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_HEIGHT_BY_HASH = 14,
  /*
   *get block header by height
   */
  COMMON__QUERY_FUNCTION__GET_BLOCK_HEADER_BY_HEIGHT = 15,
  /*
   * get archived block height
   */
  COMMON__QUERY_FUNCTION__GET_ARCHIVED_BLOCK_HEIGHT = 16,
  /*
   *get contract bytecode
   */
  COMMON__QUERY_FUNCTION__GET_CONTRACT_BYTECODE = 17,
  /*
   *get all contract info list
   */
  COMMON__QUERY_FUNCTION__GET_ALL_CONTRACTS = 18
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__QUERY_FUNCTION)
} Common__QueryFunction;
/*
 * smart contract runtime, contains vm type and language type
 */
typedef enum _Common__RuntimeType {
  COMMON__RUNTIME_TYPE__INVALID = 0,
  /*
   * native implement in chainmaker-go
   */
  COMMON__RUNTIME_TYPE__NATIVE = 1,
  /*
   * vm-wasmer, language-c++
   */
  COMMON__RUNTIME_TYPE__WASMER = 2,
  /*
   * vm-wxvm, language-cpp
   */
  COMMON__RUNTIME_TYPE__WXVM = 3,
  /*
   * wasm interpreter in go
   */
  COMMON__RUNTIME_TYPE__GASM = 4,
  /*
   * vm-evm
   */
  COMMON__RUNTIME_TYPE__EVM = 5,
  /*
   * vm-docker, language-golang
   */
  COMMON__RUNTIME_TYPE__DOCKER_GO = 6,
  /*
   * vm-docker, language-java
   */
  COMMON__RUNTIME_TYPE__DOCKER_JAVA = 7
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__RUNTIME_TYPE)
} Common__RuntimeType;
typedef enum _Common__ConfigFunction {
  /*
   * get chain configuration
   */
  COMMON__CONFIG_FUNCTION__GET_CHAIN_CONFIG = 0,
  /*
   * get the latest configuration block
   * the incoming blockheight must exist in the database
   * 如果传入的blockHeight是配置块，直接返回当前的配置信息
   */
  COMMON__CONFIG_FUNCTION__GET_CHAIN_CONFIG_AT = 1,
  /*
   * update core
   */
  COMMON__CONFIG_FUNCTION__CORE_UPDATE = 2,
  /*
   * update block
   */
  COMMON__CONFIG_FUNCTION__BLOCK_UPDATE = 3,
  /*
   * add trusted certficate (org_id and root)
   */
  COMMON__CONFIG_FUNCTION__TRUST_ROOT_ADD = 4,
  /*
   * [self] modify an individual's own trusted root certificate [org_id must exist in the original trust_roots,
   * and the new root certificate must be different from other certificates]
   */
  COMMON__CONFIG_FUNCTION__TRUST_ROOT_UPDATE = 5,
  /*
   * delete trusted root certificate [org_ ID should be in trust_ The nodes in nodes need to be deleted]
   */
  COMMON__CONFIG_FUNCTION__TRUST_ROOT_DELETE = 6,
  /*
   * organization add node address
   * org_id must already exist in nodes，you can add addresses in batches
   * the parameter is addresses. Single addresses are separated by ","
   * ip+port and peerid cannot be repeated
   * Deprecated , replace by NODE_ID_ADD
   */
  COMMON__CONFIG_FUNCTION__NODE_ADDR_ADD = 7,
  /*
   * [self]the organization updates an address
   *[org_id and address must already exist in nodes, new_address is the new address. ip+port and peerId cannot be duplicated]
   * Deprecated , replace by NODE_ID_UPDATE
   */
  COMMON__CONFIG_FUNCTION__NODE_ADDR_UPDATE = 8,
  /*
   * organization delete node address [org_id and address must already exist in nodes]
   * Deprecated , replace by NODE_ID_DELETE
   */
  COMMON__CONFIG_FUNCTION__NODE_ADDR_DELETE = 9,
  /*
   * organization add node address in batches [org_id在nodes不存在，批量添加地址，参数为node_ids，单地址用逗号","隔开。nodeId不能重复]
   */
  COMMON__CONFIG_FUNCTION__NODE_ORG_ADD = 10,
  /*
   * organization update
   * org_id must already exist in nodes，the parameter is addresses，Single addresses are separated by ","
   * ip+port and peerid cannot be repeated
   */
  COMMON__CONFIG_FUNCTION__NODE_ORG_UPDATE = 11,
  /*
   * organization delete, org_id must already exist in nodes
   */
  COMMON__CONFIG_FUNCTION__NODE_ORG_DELETE = 12,
  /*
   * add consensus parameters, key is not exit in ext_config
   */
  COMMON__CONFIG_FUNCTION__CONSENSUS_EXT_ADD = 13,
  /*
   * update onsensus parameters, key exit in ext_config
   */
  COMMON__CONFIG_FUNCTION__CONSENSUS_EXT_UPDATE = 14,
  /*
   * delete onsensus parameters, key exit in ext_config
   */
  COMMON__CONFIG_FUNCTION__CONSENSUS_EXT_DELETE = 15,
  /*
   * add permission
   */
  COMMON__CONFIG_FUNCTION__PERMISSION_ADD = 16,
  /*
   * update permission
   */
  COMMON__CONFIG_FUNCTION__PERMISSION_UPDATE = 17,
  /*
   * delete permission
   */
  COMMON__CONFIG_FUNCTION__PERMISSION_DELETE = 18,
  /*
   * organization add node_id
   * org_id must already exist in nodes，you can add node_id in batches
   * the parameter is node_ids. Single node_ids are separated by ","
   * node_id cannot be repeated
   */
  COMMON__CONFIG_FUNCTION__NODE_ID_ADD = 19,
  /*
   * [self]the organization updates a node_ids
   *[org_id and node_ids must already exist in nodes, new_node_id is the new node_id. node_id cannot be duplicated]
   */
  COMMON__CONFIG_FUNCTION__NODE_ID_UPDATE = 20,
  /*
   * organization delete node_id [org_id and node_id must already exist in nodes]
   */
  COMMON__CONFIG_FUNCTION__NODE_ID_DELETE = 21
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__CONFIG_FUNCTION)
} Common__ConfigFunction;
/*
 * Methods of certificate management
 */
typedef enum _Common__CertManageFunction {
  /*
   * add certficate
   */
  COMMON__CERT_MANAGE_FUNCTION__CERT_ADD = 0,
  /*
   * delete certficate
   */
  COMMON__CERT_MANAGE_FUNCTION__CERTS_DELETE = 1,
  /*
   * query certficate
   */
  COMMON__CERT_MANAGE_FUNCTION__CERTS_QUERY = 2,
  /*
   * freeze certificate
   */
  COMMON__CERT_MANAGE_FUNCTION__CERTS_FREEZE = 3,
  /*
   * unfreezing certificate
   */
  COMMON__CERT_MANAGE_FUNCTION__CERTS_UNFREEZE = 4,
  /*
   * Revocation of certificate
   */
  COMMON__CERT_MANAGE_FUNCTION__CERTS_REVOKE = 5
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__CERT_MANAGE_FUNCTION)
} Common__CertManageFunction;
/*
 * methods of managing multi signature
 */
typedef enum _Common__MultiSignFunction {
  /*
   * multi signature request
   */
  COMMON__MULTI_SIGN_FUNCTION__REQ = 0,
  /*
   * multi signature voting
   */
  COMMON__MULTI_SIGN_FUNCTION__VOTE = 1,
  /*
   * multi signature query
   */
  COMMON__MULTI_SIGN_FUNCTION__QUERY = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__MULTI_SIGN_FUNCTION)
} Common__MultiSignFunction;
/*
 * methods of user management contract
 */
typedef enum _Common__ManageUserContractFunction {
  /*
   * init contract
   */
  COMMON__MANAGE_USER_CONTRACT_FUNCTION__INIT_CONTRACT = 0,
  /*
   * upgrade contract
   */
  COMMON__MANAGE_USER_CONTRACT_FUNCTION__UPGRADE_CONTRACT = 1,
  /*
   * freeze  contract
   */
  COMMON__MANAGE_USER_CONTRACT_FUNCTION__FREEZE_CONTRACT = 2,
  /*
   * unfreezing contract
   */
  COMMON__MANAGE_USER_CONTRACT_FUNCTION__UNFREEZE_CONTRACT = 3,
  /*
   * Revocation of contract
   */
  COMMON__MANAGE_USER_CONTRACT_FUNCTION__REVOKE_CONTRACT = 4
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__MANAGE_USER_CONTRACT_FUNCTION)
} Common__ManageUserContractFunction;
/*
 * methods of private compute contract
 */
typedef enum _Common__PrivateComputeContractFunction {
  /*
   * get contract code
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_CONTRACT = 0,
  /*
   * get private data
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_DATA = 1,
  /*
   * save cert of tee
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__SAVE_CA_CERT = 2,
  /*
   * save private data dir
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__SAVE_DIR = 3,
  /*
   * save data of private computation result
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__SAVE_DATA = 4,
  /*
   *save enclave report
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__SAVE_ENCLAVE_REPORT = 5,
  /*
   *get enclave proof
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_ENCLAVE_PROOF = 6,
  /*
   *get cert of tee
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_CA_CERT = 7,
  /*
   *get private data dir
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_DIR = 8,
  /*
   *checkCallerCertAuth
   */
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__CHECK_CALLER_CERT_AUTH = 9,
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_ENCLAVE_ENCRYPT_PUB_KEY = 10,
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_ENCLAVE_VERIFICATION_PUB_KEY = 11,
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_ENCLAVE_REPORT = 12,
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_ENCLAVE_CHALLENGE = 13,
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__GET_ENCLAVE_SIGNATURE = 14,
  COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION__SAVE_REMOTE_ATTESTATION = 15
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__PRIVATE_COMPUTE_CONTRACT_FUNCTION)
} Common__PrivateComputeContractFunction;
/*
 *ContractStatus 合约状态
 */
typedef enum _Common__ContractStatus {
  /*
   *未知
   */
  COMMON__CONTRACT_STATUS__UNKNOWN = 0,
  /*
   *普通正常状态
   */
  COMMON__CONTRACT_STATUS__NORMAL = 1,
  /*
   *冻结
   */
  COMMON__CONTRACT_STATUS__FROZEN = 2,
  /*
   *被撤销
   */
  COMMON__CONTRACT_STATUS__REVOKED = 3
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__CONTRACT_STATUS)
} Common__ContractStatus;
typedef enum _Common__ContractType {
  /*
   *normal,support parallel
   */
  COMMON__CONTRACT_TYPE__PARALLEL = 0,
  /*
   *don't support parallel, for example: SQL contract
   */
  COMMON__CONTRACT_TYPE__SERIAL = 1,
  /*
   *like Fabric contract, run contract need add endorsement, for example: TEE contract
   */
  COMMON__CONTRACT_TYPE__ENDORSE = 2,
  /*
   *only pack 1 tx in block
   */
  COMMON__CONTRACT_TYPE__SINGLE = 4
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__CONTRACT_TYPE)
} Common__ContractType;
typedef enum _Common__DPoSERC20ContractFunction {
  /*
   * get owner of DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__GET_OWNER = 0,
  /*
   * get decimals of DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__GET_DECIMALS = 1,
  /*
   * transfer token at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__TRANSFER = 2,
  /*
   * transfer token from user at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__TRANSFER_FROM = 3,
  /*
   * get balance of user at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__GET_BALANCEOF = 4,
  /*
   * approve token for user to other user at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__APPROVE = 5,
  /*
   * get allowance at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__GET_ALLOWANCE = 6,
  /*
   * burn token at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__BURN = 7,
  /*
   * mint token at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__MINT = 8,
  /*
   * transfer owner ship at DPoS
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__TRANSFER_OWNERSHIP = 9,
  /*
   * get total supply of tokens
   */
  COMMON__DPO_SERC20_CONTRACT_FUNCTION__GET_TOTAL_SUPPLY = 10
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__DPO_SERC20_CONTRACT_FUNCTION)
} Common__DPoSERC20ContractFunction;
typedef enum _Common__DPoSStakeContractFunction {
  /*
   * get all validator candidates
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__GET_ALL_CANDIDATES = 0,
  /*
   * get validator by address
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__GET_VALIDATOR_BY_ADDRESS = 1,
  /*
   * delegate
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__DELEGATE = 2,
  /*
   * get delegate by address
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__GET_DELEGATIONS_BY_ADDRESS = 3,
  /*
   * get user delegation by validator
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__GET_USER_DELEGATION_BY_VALIDATOR = 4,
  /*
   * undelegate
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__UNDELEGATE = 5,
  /*
   * read epoch by id
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_EPOCH_BY_ID = 6,
  /*
   * read latest epoch
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_LATEST_EPOCH = 7,
  /*
   * set node id before join network
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__SET_NODE_ID = 8,
  /*
   * get node id after join network
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__GET_NODE_ID = 9,
  /*
   * update min self delegation
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__UPDATE_MIN_SELF_DELEGATION = 10,
  /*
   * read min self delegation
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_MIN_SELF_DELEGATION = 11,
  /*
   * update epoch validator number
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__UPDATE_EPOCH_VALIDATOR_NUMBER = 12,
  /*
   * read epoch validator number
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_EPOCH_VALIDATOR_NUMBER = 13,
  /*
   * update epoch block number
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__UPDATE_EPOCH_BLOCK_NUMBER = 14,
  /*
   * read epoch block number
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_EPOCH_BLOCK_NUMBER = 15,
  /*
   * read complete unbounding epoch number
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_COMPLETE_UNBOUNDING_EPOCH_NUMBER = 16,
  /*
   * read system contract address
   */
  COMMON__DPO_SSTAKE_CONTRACT_FUNCTION__READ_SYSTEM_CONTRACT_ADDR = 18
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__DPO_SSTAKE_CONTRACT_FUNCTION)
} Common__DPoSStakeContractFunction;
typedef enum _Common__BondStatus {
  COMMON__BOND_STATUS__Bonded = 0,
  COMMON__BOND_STATUS__Unbonding = 1,
  COMMON__BOND_STATUS__Unbonded = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COMMON__BOND_STATUS)
} Common__BondStatus;

/* --- messages --- */

/*
 * the unique identifier of a smart contract
 */
struct  _Common__ContractId
{
  ProtobufCMessage base;
  /*
   * smart contract name, set by contract creator, can have multiple versions
   */
  char *contract_name;
  /*
   * smart contract version, set by contract creator, name + version should be unique
   */
  char *contract_version;
  /*
   * smart contract runtime type, set by contract creator
   */
  Common__RuntimeType runtime_type;
};
#define COMMON__CONTRACT_ID__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__contract_id__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, COMMON__RUNTIME_TYPE__INVALID }


struct  _Common__ContractInfo
{
  ProtobufCMessage base;
  size_t n_contract_transaction;
  Common__ContractTransaction **contract_transaction;
};
#define COMMON__CONTRACT_INFO__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__contract_info__descriptor) \
    , 0,NULL }


struct  _Common__ContractTransaction
{
  ProtobufCMessage base;
  Common__ContractId *contract_id;
  char *tx_id;
};
#define COMMON__CONTRACT_TRANSACTION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__contract_transaction__descriptor) \
    , NULL, (char *)protobuf_c_empty_string }


struct  _Common__RemoteAttestationRequest
{
  ProtobufCMessage base;
  size_t n_sign_pair;
  Common__SignInfo **sign_pair;
  Common__RemoteAttestationPayload *payload;
};
#define COMMON__REMOTE_ATTESTATION_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__remote_attestation_request__descriptor) \
    , 0,NULL, NULL }


struct  _Common__RemoteAttestationPayload
{
  ProtobufCMessage base;
  char *challenge;
  size_t n_org_id;
  char **org_id;
};
#define COMMON__REMOTE_ATTESTATION_PAYLOAD__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__remote_attestation_payload__descriptor) \
    , (char *)protobuf_c_empty_string, 0,NULL }


struct  _Common__PrivateDeployRequest
{
  ProtobufCMessage base;
  size_t n_sign_pair;
  Common__SignInfo **sign_pair;
  Common__PrivateDeployPayload *payload;
};
#define COMMON__PRIVATE_DEPLOY_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__private_deploy_request__descriptor) \
    , 0,NULL, NULL }


struct  _Common__PrivateDeployPayload
{
  ProtobufCMessage base;
  char *code_bytes;
  /*
   * deploy args which is packed by abi
   */
  char *private_rlp_data;
  char *passwd;
  char *sig_algo;
  char *contract_name;
  char *contract_version;
  char *code_hash;
  size_t n_org_id;
  char **org_id;
};
#define COMMON__PRIVATE_DEPLOY_PAYLOAD__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__private_deploy_payload__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL }


struct  _Common__PrivateComputeRequest
{
  ProtobufCMessage base;
  size_t n_sign_pair;
  Common__SignInfo **sign_pair;
  Common__PrivateComputePayload *payload;
};
#define COMMON__PRIVATE_COMPUTE_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__private_compute_request__descriptor) \
    , 0,NULL, NULL }


struct  _Common__PrivateComputePayload
{
  ProtobufCMessage base;
  char *private_rlp_data;
  char *passwd;
  char *sig_algo;
  char *contract_name;
  char *code_hash;
  size_t n_org_id;
  char **org_id;
};
#define COMMON__PRIVATE_COMPUTE_PAYLOAD__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__private_compute_payload__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL }


struct  _Common__SignInfo
{
  ProtobufCMessage base;
  char *client_sign;
  char *cert;
};
#define COMMON__SIGN_INFO__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__sign_info__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string }


struct  _Common__Contract
{
  ProtobufCMessage base;
  /*
   * smart contract name, set by contract creator, can have multiple versions
   */
  char *name;
  /*
   * smart contract version, set by contract creator, name + version should be unique
   */
  char *version;
  /*
   * smart contract runtime type, set by contract creator
   */
  Common__RuntimeType runtime_type;
  /*
   *contract status
   */
  Common__ContractStatus status;
  /*
   * contract run parallel or need endorsement
   */
  Common__ContractType type;
  /*
   *if need endorsement,specify policy
   */
  Accesscontrol__Policy *endorse_policy;
  /*
   *contract upgrade policy
   */
  Accesscontrol__Policy *update_policy;
  /*
   *contract initial block timestamp
   */
  int64_t create_time;
  /*
   *contract creator identity
   */
  Accesscontrol__SerializedMember *creator;
  /*
   *contract identity
   */
  Accesscontrol__SerializedMember *address;
};
#define COMMON__CONTRACT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__contract__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, COMMON__RUNTIME_TYPE__INVALID, COMMON__CONTRACT_STATUS__UNKNOWN, COMMON__CONTRACT_TYPE__PARALLEL, NULL, NULL, 0, NULL, NULL }


struct  _Common__ContractList
{
  ProtobufCMessage base;
  size_t n_contracts;
  Common__Contract **contracts;
};
#define COMMON__CONTRACT_LIST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__contract_list__descriptor) \
    , 0,NULL }


struct  _Common__Epoch
{
  ProtobufCMessage base;
  /*
   * ID with auto-increment
   */
  uint64_t epochid;
  /*
   * A collection of validators for the current generation
   */
  size_t n_proposervector;
  char **proposervector;
  /*
   * Next epoch switch height
   */
  uint64_t nextepochcreateheight;
};
#define COMMON__EPOCH__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__epoch__descriptor) \
    , 0, 0,NULL, 0 }


struct  _Common__Validator
{
  ProtobufCMessage base;
  /*
   * The address of the verifier: base58.Encode(sha256(pubkey))
   */
  char *validatoraddress;
  /*
   * 活性惩罚后是否被移除验证人集合的标记
   */
  protobuf_c_boolean jailed;
  /*
   * 验证人状态包含 Bonded / Unbonding / Unbonded
   */
  Common__BondStatus status;
  /*
   * 抵押的 token 数量
   */
  char *tokens;
  /*
   * 抵押物的股权总计
   */
  char *delegatorshares;
  /*
   * 发起解除质押物交易的 Epoch
   */
  uint64_t unbondingepochid;
  /*
   * 解除质押 Epoch
   */
  uint64_t unbondingcompletionepochid;
  /*
   * 自抵押 token 数
   */
  char *selfdelegation;
};
#define COMMON__VALIDATOR__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__validator__descriptor) \
    , (char *)protobuf_c_empty_string, 0, COMMON__BOND_STATUS__Bonded, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0, (char *)protobuf_c_empty_string }


struct  _Common__Delegation
{
  ProtobufCMessage base;
  /*
   *抵押人的ID
   */
  char *delegatoraddress;
  /*
   *验证人的ID
   */
  char *validatoraddress;
  /*
   *抵押股权
   */
  char *shares;
};
#define COMMON__DELEGATION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__delegation__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string }


struct  _Common__UnbondingDelegation
{
  ProtobufCMessage base;
  /*
   * epoch id
   */
  char *epochid;
  /*
   * 抵押人ID
   */
  char *delegatoraddress;
  /*
   * 验证人ID
   */
  char *validatoraddress;
  /*
   * Unbond 记录
   */
  size_t n_entries;
  Common__UnbondingDelegationEntry **entries;
};
#define COMMON__UNBONDING_DELEGATION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__unbonding_delegation__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL }


struct  _Common__UnbondingDelegationEntry
{
  ProtobufCMessage base;
  /*
   * 创建 Epoch 高度
   */
  uint64_t creationepochid;
  /*
   * 完成 Epoch 高度
   */
  uint64_t completionepochid;
  /*
   * 解抵押金额
   */
  char *amount;
};
#define COMMON__UNBONDING_DELEGATION_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__unbonding_delegation_entry__descriptor) \
    , 0, 0, (char *)protobuf_c_empty_string }


struct  _Common__ValidatorVector
{
  ProtobufCMessage base;
  /*
   * 验证人数组
   */
  size_t n_vector;
  char **vector;
};
#define COMMON__VALIDATOR_VECTOR__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__validator_vector__descriptor) \
    , 0,NULL }


struct  _Common__DelegationInfo
{
  ProtobufCMessage base;
  /*
   * 验证人数组
   */
  size_t n_infos;
  Common__Delegation **infos;
};
#define COMMON__DELEGATION_INFO__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&common__delegation_info__descriptor) \
    , 0,NULL }


/* Common__ContractId methods */
void   common__contract_id__init
                     (Common__ContractId         *message);
size_t common__contract_id__get_packed_size
                     (const Common__ContractId   *message);
size_t common__contract_id__pack
                     (const Common__ContractId   *message,
                      uint8_t             *out);
size_t common__contract_id__pack_to_buffer
                     (const Common__ContractId   *message,
                      ProtobufCBuffer     *buffer);
Common__ContractId *
       common__contract_id__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__contract_id__free_unpacked
                     (Common__ContractId *message,
                      ProtobufCAllocator *allocator);
/* Common__ContractInfo methods */
void   common__contract_info__init
                     (Common__ContractInfo         *message);
size_t common__contract_info__get_packed_size
                     (const Common__ContractInfo   *message);
size_t common__contract_info__pack
                     (const Common__ContractInfo   *message,
                      uint8_t             *out);
size_t common__contract_info__pack_to_buffer
                     (const Common__ContractInfo   *message,
                      ProtobufCBuffer     *buffer);
Common__ContractInfo *
       common__contract_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__contract_info__free_unpacked
                     (Common__ContractInfo *message,
                      ProtobufCAllocator *allocator);
/* Common__ContractTransaction methods */
void   common__contract_transaction__init
                     (Common__ContractTransaction         *message);
size_t common__contract_transaction__get_packed_size
                     (const Common__ContractTransaction   *message);
size_t common__contract_transaction__pack
                     (const Common__ContractTransaction   *message,
                      uint8_t             *out);
size_t common__contract_transaction__pack_to_buffer
                     (const Common__ContractTransaction   *message,
                      ProtobufCBuffer     *buffer);
Common__ContractTransaction *
       common__contract_transaction__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__contract_transaction__free_unpacked
                     (Common__ContractTransaction *message,
                      ProtobufCAllocator *allocator);
/* Common__RemoteAttestationRequest methods */
void   common__remote_attestation_request__init
                     (Common__RemoteAttestationRequest         *message);
size_t common__remote_attestation_request__get_packed_size
                     (const Common__RemoteAttestationRequest   *message);
size_t common__remote_attestation_request__pack
                     (const Common__RemoteAttestationRequest   *message,
                      uint8_t             *out);
size_t common__remote_attestation_request__pack_to_buffer
                     (const Common__RemoteAttestationRequest   *message,
                      ProtobufCBuffer     *buffer);
Common__RemoteAttestationRequest *
       common__remote_attestation_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__remote_attestation_request__free_unpacked
                     (Common__RemoteAttestationRequest *message,
                      ProtobufCAllocator *allocator);
/* Common__RemoteAttestationPayload methods */
void   common__remote_attestation_payload__init
                     (Common__RemoteAttestationPayload         *message);
size_t common__remote_attestation_payload__get_packed_size
                     (const Common__RemoteAttestationPayload   *message);
size_t common__remote_attestation_payload__pack
                     (const Common__RemoteAttestationPayload   *message,
                      uint8_t             *out);
size_t common__remote_attestation_payload__pack_to_buffer
                     (const Common__RemoteAttestationPayload   *message,
                      ProtobufCBuffer     *buffer);
Common__RemoteAttestationPayload *
       common__remote_attestation_payload__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__remote_attestation_payload__free_unpacked
                     (Common__RemoteAttestationPayload *message,
                      ProtobufCAllocator *allocator);
/* Common__PrivateDeployRequest methods */
void   common__private_deploy_request__init
                     (Common__PrivateDeployRequest         *message);
size_t common__private_deploy_request__get_packed_size
                     (const Common__PrivateDeployRequest   *message);
size_t common__private_deploy_request__pack
                     (const Common__PrivateDeployRequest   *message,
                      uint8_t             *out);
size_t common__private_deploy_request__pack_to_buffer
                     (const Common__PrivateDeployRequest   *message,
                      ProtobufCBuffer     *buffer);
Common__PrivateDeployRequest *
       common__private_deploy_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__private_deploy_request__free_unpacked
                     (Common__PrivateDeployRequest *message,
                      ProtobufCAllocator *allocator);
/* Common__PrivateDeployPayload methods */
void   common__private_deploy_payload__init
                     (Common__PrivateDeployPayload         *message);
size_t common__private_deploy_payload__get_packed_size
                     (const Common__PrivateDeployPayload   *message);
size_t common__private_deploy_payload__pack
                     (const Common__PrivateDeployPayload   *message,
                      uint8_t             *out);
size_t common__private_deploy_payload__pack_to_buffer
                     (const Common__PrivateDeployPayload   *message,
                      ProtobufCBuffer     *buffer);
Common__PrivateDeployPayload *
       common__private_deploy_payload__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__private_deploy_payload__free_unpacked
                     (Common__PrivateDeployPayload *message,
                      ProtobufCAllocator *allocator);
/* Common__PrivateComputeRequest methods */
void   common__private_compute_request__init
                     (Common__PrivateComputeRequest         *message);
size_t common__private_compute_request__get_packed_size
                     (const Common__PrivateComputeRequest   *message);
size_t common__private_compute_request__pack
                     (const Common__PrivateComputeRequest   *message,
                      uint8_t             *out);
size_t common__private_compute_request__pack_to_buffer
                     (const Common__PrivateComputeRequest   *message,
                      ProtobufCBuffer     *buffer);
Common__PrivateComputeRequest *
       common__private_compute_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__private_compute_request__free_unpacked
                     (Common__PrivateComputeRequest *message,
                      ProtobufCAllocator *allocator);
/* Common__PrivateComputePayload methods */
void   common__private_compute_payload__init
                     (Common__PrivateComputePayload         *message);
size_t common__private_compute_payload__get_packed_size
                     (const Common__PrivateComputePayload   *message);
size_t common__private_compute_payload__pack
                     (const Common__PrivateComputePayload   *message,
                      uint8_t             *out);
size_t common__private_compute_payload__pack_to_buffer
                     (const Common__PrivateComputePayload   *message,
                      ProtobufCBuffer     *buffer);
Common__PrivateComputePayload *
       common__private_compute_payload__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__private_compute_payload__free_unpacked
                     (Common__PrivateComputePayload *message,
                      ProtobufCAllocator *allocator);
/* Common__SignInfo methods */
void   common__sign_info__init
                     (Common__SignInfo         *message);
size_t common__sign_info__get_packed_size
                     (const Common__SignInfo   *message);
size_t common__sign_info__pack
                     (const Common__SignInfo   *message,
                      uint8_t             *out);
size_t common__sign_info__pack_to_buffer
                     (const Common__SignInfo   *message,
                      ProtobufCBuffer     *buffer);
Common__SignInfo *
       common__sign_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__sign_info__free_unpacked
                     (Common__SignInfo *message,
                      ProtobufCAllocator *allocator);
/* Common__Contract methods */
void   common__contract__init
                     (Common__Contract         *message);
size_t common__contract__get_packed_size
                     (const Common__Contract   *message);
size_t common__contract__pack
                     (const Common__Contract   *message,
                      uint8_t             *out);
size_t common__contract__pack_to_buffer
                     (const Common__Contract   *message,
                      ProtobufCBuffer     *buffer);
Common__Contract *
       common__contract__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__contract__free_unpacked
                     (Common__Contract *message,
                      ProtobufCAllocator *allocator);
/* Common__ContractList methods */
void   common__contract_list__init
                     (Common__ContractList         *message);
size_t common__contract_list__get_packed_size
                     (const Common__ContractList   *message);
size_t common__contract_list__pack
                     (const Common__ContractList   *message,
                      uint8_t             *out);
size_t common__contract_list__pack_to_buffer
                     (const Common__ContractList   *message,
                      ProtobufCBuffer     *buffer);
Common__ContractList *
       common__contract_list__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__contract_list__free_unpacked
                     (Common__ContractList *message,
                      ProtobufCAllocator *allocator);
/* Common__Epoch methods */
void   common__epoch__init
                     (Common__Epoch         *message);
size_t common__epoch__get_packed_size
                     (const Common__Epoch   *message);
size_t common__epoch__pack
                     (const Common__Epoch   *message,
                      uint8_t             *out);
size_t common__epoch__pack_to_buffer
                     (const Common__Epoch   *message,
                      ProtobufCBuffer     *buffer);
Common__Epoch *
       common__epoch__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__epoch__free_unpacked
                     (Common__Epoch *message,
                      ProtobufCAllocator *allocator);
/* Common__Validator methods */
void   common__validator__init
                     (Common__Validator         *message);
size_t common__validator__get_packed_size
                     (const Common__Validator   *message);
size_t common__validator__pack
                     (const Common__Validator   *message,
                      uint8_t             *out);
size_t common__validator__pack_to_buffer
                     (const Common__Validator   *message,
                      ProtobufCBuffer     *buffer);
Common__Validator *
       common__validator__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__validator__free_unpacked
                     (Common__Validator *message,
                      ProtobufCAllocator *allocator);
/* Common__Delegation methods */
void   common__delegation__init
                     (Common__Delegation         *message);
size_t common__delegation__get_packed_size
                     (const Common__Delegation   *message);
size_t common__delegation__pack
                     (const Common__Delegation   *message,
                      uint8_t             *out);
size_t common__delegation__pack_to_buffer
                     (const Common__Delegation   *message,
                      ProtobufCBuffer     *buffer);
Common__Delegation *
       common__delegation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__delegation__free_unpacked
                     (Common__Delegation *message,
                      ProtobufCAllocator *allocator);
/* Common__UnbondingDelegation methods */
void   common__unbonding_delegation__init
                     (Common__UnbondingDelegation         *message);
size_t common__unbonding_delegation__get_packed_size
                     (const Common__UnbondingDelegation   *message);
size_t common__unbonding_delegation__pack
                     (const Common__UnbondingDelegation   *message,
                      uint8_t             *out);
size_t common__unbonding_delegation__pack_to_buffer
                     (const Common__UnbondingDelegation   *message,
                      ProtobufCBuffer     *buffer);
Common__UnbondingDelegation *
       common__unbonding_delegation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__unbonding_delegation__free_unpacked
                     (Common__UnbondingDelegation *message,
                      ProtobufCAllocator *allocator);
/* Common__UnbondingDelegationEntry methods */
void   common__unbonding_delegation_entry__init
                     (Common__UnbondingDelegationEntry         *message);
size_t common__unbonding_delegation_entry__get_packed_size
                     (const Common__UnbondingDelegationEntry   *message);
size_t common__unbonding_delegation_entry__pack
                     (const Common__UnbondingDelegationEntry   *message,
                      uint8_t             *out);
size_t common__unbonding_delegation_entry__pack_to_buffer
                     (const Common__UnbondingDelegationEntry   *message,
                      ProtobufCBuffer     *buffer);
Common__UnbondingDelegationEntry *
       common__unbonding_delegation_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__unbonding_delegation_entry__free_unpacked
                     (Common__UnbondingDelegationEntry *message,
                      ProtobufCAllocator *allocator);
/* Common__ValidatorVector methods */
void   common__validator_vector__init
                     (Common__ValidatorVector         *message);
size_t common__validator_vector__get_packed_size
                     (const Common__ValidatorVector   *message);
size_t common__validator_vector__pack
                     (const Common__ValidatorVector   *message,
                      uint8_t             *out);
size_t common__validator_vector__pack_to_buffer
                     (const Common__ValidatorVector   *message,
                      ProtobufCBuffer     *buffer);
Common__ValidatorVector *
       common__validator_vector__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__validator_vector__free_unpacked
                     (Common__ValidatorVector *message,
                      ProtobufCAllocator *allocator);
/* Common__DelegationInfo methods */
void   common__delegation_info__init
                     (Common__DelegationInfo         *message);
size_t common__delegation_info__get_packed_size
                     (const Common__DelegationInfo   *message);
size_t common__delegation_info__pack
                     (const Common__DelegationInfo   *message,
                      uint8_t             *out);
size_t common__delegation_info__pack_to_buffer
                     (const Common__DelegationInfo   *message,
                      ProtobufCBuffer     *buffer);
Common__DelegationInfo *
       common__delegation_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   common__delegation_info__free_unpacked
                     (Common__DelegationInfo *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Common__ContractId_Closure)
                 (const Common__ContractId *message,
                  void *closure_data);
typedef void (*Common__ContractInfo_Closure)
                 (const Common__ContractInfo *message,
                  void *closure_data);
typedef void (*Common__ContractTransaction_Closure)
                 (const Common__ContractTransaction *message,
                  void *closure_data);
typedef void (*Common__RemoteAttestationRequest_Closure)
                 (const Common__RemoteAttestationRequest *message,
                  void *closure_data);
typedef void (*Common__RemoteAttestationPayload_Closure)
                 (const Common__RemoteAttestationPayload *message,
                  void *closure_data);
typedef void (*Common__PrivateDeployRequest_Closure)
                 (const Common__PrivateDeployRequest *message,
                  void *closure_data);
typedef void (*Common__PrivateDeployPayload_Closure)
                 (const Common__PrivateDeployPayload *message,
                  void *closure_data);
typedef void (*Common__PrivateComputeRequest_Closure)
                 (const Common__PrivateComputeRequest *message,
                  void *closure_data);
typedef void (*Common__PrivateComputePayload_Closure)
                 (const Common__PrivateComputePayload *message,
                  void *closure_data);
typedef void (*Common__SignInfo_Closure)
                 (const Common__SignInfo *message,
                  void *closure_data);
typedef void (*Common__Contract_Closure)
                 (const Common__Contract *message,
                  void *closure_data);
typedef void (*Common__ContractList_Closure)
                 (const Common__ContractList *message,
                  void *closure_data);
typedef void (*Common__Epoch_Closure)
                 (const Common__Epoch *message,
                  void *closure_data);
typedef void (*Common__Validator_Closure)
                 (const Common__Validator *message,
                  void *closure_data);
typedef void (*Common__Delegation_Closure)
                 (const Common__Delegation *message,
                  void *closure_data);
typedef void (*Common__UnbondingDelegation_Closure)
                 (const Common__UnbondingDelegation *message,
                  void *closure_data);
typedef void (*Common__UnbondingDelegationEntry_Closure)
                 (const Common__UnbondingDelegationEntry *message,
                  void *closure_data);
typedef void (*Common__ValidatorVector_Closure)
                 (const Common__ValidatorVector *message,
                  void *closure_data);
typedef void (*Common__DelegationInfo_Closure)
                 (const Common__DelegationInfo *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    common__contract_name__descriptor;
extern const ProtobufCEnumDescriptor    common__query_function__descriptor;
extern const ProtobufCEnumDescriptor    common__runtime_type__descriptor;
extern const ProtobufCEnumDescriptor    common__config_function__descriptor;
extern const ProtobufCEnumDescriptor    common__cert_manage_function__descriptor;
extern const ProtobufCEnumDescriptor    common__multi_sign_function__descriptor;
extern const ProtobufCEnumDescriptor    common__manage_user_contract_function__descriptor;
extern const ProtobufCEnumDescriptor    common__private_compute_contract_function__descriptor;
extern const ProtobufCEnumDescriptor    common__contract_status__descriptor;
extern const ProtobufCEnumDescriptor    common__contract_type__descriptor;
extern const ProtobufCEnumDescriptor    common__dpo_serc20_contract_function__descriptor;
extern const ProtobufCEnumDescriptor    common__dpo_sstake_contract_function__descriptor;
extern const ProtobufCEnumDescriptor    common__bond_status__descriptor;
extern const ProtobufCMessageDescriptor common__contract_id__descriptor;
extern const ProtobufCMessageDescriptor common__contract_info__descriptor;
extern const ProtobufCMessageDescriptor common__contract_transaction__descriptor;
extern const ProtobufCMessageDescriptor common__remote_attestation_request__descriptor;
extern const ProtobufCMessageDescriptor common__remote_attestation_payload__descriptor;
extern const ProtobufCMessageDescriptor common__private_deploy_request__descriptor;
extern const ProtobufCMessageDescriptor common__private_deploy_payload__descriptor;
extern const ProtobufCMessageDescriptor common__private_compute_request__descriptor;
extern const ProtobufCMessageDescriptor common__private_compute_payload__descriptor;
extern const ProtobufCMessageDescriptor common__sign_info__descriptor;
extern const ProtobufCMessageDescriptor common__contract__descriptor;
extern const ProtobufCMessageDescriptor common__contract_list__descriptor;
extern const ProtobufCMessageDescriptor common__epoch__descriptor;
extern const ProtobufCMessageDescriptor common__validator__descriptor;
extern const ProtobufCMessageDescriptor common__delegation__descriptor;
extern const ProtobufCMessageDescriptor common__unbonding_delegation__descriptor;
extern const ProtobufCMessageDescriptor common__unbonding_delegation_entry__descriptor;
extern const ProtobufCMessageDescriptor common__validator_vector__descriptor;
extern const ProtobufCMessageDescriptor common__delegation_info__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_common_2fcontract_2eproto__INCLUDED */
