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

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "token/prover.pb-c.h"
void   protos__token_to_issue__init
                     (Protos__TokenToIssue         *message)
{
  static Protos__TokenToIssue init_value = PROTOS__TOKEN_TO_ISSUE__INIT;
  *message = init_value;
}
size_t protos__token_to_issue__get_packed_size
                     (const Protos__TokenToIssue *message)
{
  assert(message->base.descriptor == &protos__token_to_issue__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__token_to_issue__pack
                     (const Protos__TokenToIssue *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__token_to_issue__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__token_to_issue__pack_to_buffer
                     (const Protos__TokenToIssue *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__token_to_issue__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__TokenToIssue *
       protos__token_to_issue__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__TokenToIssue *)
     protobuf_c_message_unpack (&protos__token_to_issue__descriptor,
                                allocator, len, data);
}
void   protos__token_to_issue__free_unpacked
                     (Protos__TokenToIssue *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__token_to_issue__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__recipient_transfer_share__init
                     (Protos__RecipientTransferShare         *message)
{
  static Protos__RecipientTransferShare init_value = PROTOS__RECIPIENT_TRANSFER_SHARE__INIT;
  *message = init_value;
}
size_t protos__recipient_transfer_share__get_packed_size
                     (const Protos__RecipientTransferShare *message)
{
  assert(message->base.descriptor == &protos__recipient_transfer_share__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__recipient_transfer_share__pack
                     (const Protos__RecipientTransferShare *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__recipient_transfer_share__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__recipient_transfer_share__pack_to_buffer
                     (const Protos__RecipientTransferShare *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__recipient_transfer_share__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__RecipientTransferShare *
       protos__recipient_transfer_share__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__RecipientTransferShare *)
     protobuf_c_message_unpack (&protos__recipient_transfer_share__descriptor,
                                allocator, len, data);
}
void   protos__recipient_transfer_share__free_unpacked
                     (Protos__RecipientTransferShare *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__recipient_transfer_share__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__token_output__init
                     (Protos__TokenOutput         *message)
{
  static Protos__TokenOutput init_value = PROTOS__TOKEN_OUTPUT__INIT;
  *message = init_value;
}
size_t protos__token_output__get_packed_size
                     (const Protos__TokenOutput *message)
{
  assert(message->base.descriptor == &protos__token_output__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__token_output__pack
                     (const Protos__TokenOutput *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__token_output__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__token_output__pack_to_buffer
                     (const Protos__TokenOutput *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__token_output__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__TokenOutput *
       protos__token_output__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__TokenOutput *)
     protobuf_c_message_unpack (&protos__token_output__descriptor,
                                allocator, len, data);
}
void   protos__token_output__free_unpacked
                     (Protos__TokenOutput *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__token_output__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__unspent_tokens__init
                     (Protos__UnspentTokens         *message)
{
  static Protos__UnspentTokens init_value = PROTOS__UNSPENT_TOKENS__INIT;
  *message = init_value;
}
size_t protos__unspent_tokens__get_packed_size
                     (const Protos__UnspentTokens *message)
{
  assert(message->base.descriptor == &protos__unspent_tokens__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__unspent_tokens__pack
                     (const Protos__UnspentTokens *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__unspent_tokens__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__unspent_tokens__pack_to_buffer
                     (const Protos__UnspentTokens *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__unspent_tokens__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__UnspentTokens *
       protos__unspent_tokens__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__UnspentTokens *)
     protobuf_c_message_unpack (&protos__unspent_tokens__descriptor,
                                allocator, len, data);
}
void   protos__unspent_tokens__free_unpacked
                     (Protos__UnspentTokens *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__unspent_tokens__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__list_request__init
                     (Protos__ListRequest         *message)
{
  static Protos__ListRequest init_value = PROTOS__LIST_REQUEST__INIT;
  *message = init_value;
}
size_t protos__list_request__get_packed_size
                     (const Protos__ListRequest *message)
{
  assert(message->base.descriptor == &protos__list_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__list_request__pack
                     (const Protos__ListRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__list_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__list_request__pack_to_buffer
                     (const Protos__ListRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__list_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__ListRequest *
       protos__list_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__ListRequest *)
     protobuf_c_message_unpack (&protos__list_request__descriptor,
                                allocator, len, data);
}
void   protos__list_request__free_unpacked
                     (Protos__ListRequest *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__list_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__import_request__init
                     (Protos__ImportRequest         *message)
{
  static Protos__ImportRequest init_value = PROTOS__IMPORT_REQUEST__INIT;
  *message = init_value;
}
size_t protos__import_request__get_packed_size
                     (const Protos__ImportRequest *message)
{
  assert(message->base.descriptor == &protos__import_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__import_request__pack
                     (const Protos__ImportRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__import_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__import_request__pack_to_buffer
                     (const Protos__ImportRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__import_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__ImportRequest *
       protos__import_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__ImportRequest *)
     protobuf_c_message_unpack (&protos__import_request__descriptor,
                                allocator, len, data);
}
void   protos__import_request__free_unpacked
                     (Protos__ImportRequest *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__import_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__transfer_request__init
                     (Protos__TransferRequest         *message)
{
  static Protos__TransferRequest init_value = PROTOS__TRANSFER_REQUEST__INIT;
  *message = init_value;
}
size_t protos__transfer_request__get_packed_size
                     (const Protos__TransferRequest *message)
{
  assert(message->base.descriptor == &protos__transfer_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__transfer_request__pack
                     (const Protos__TransferRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__transfer_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__transfer_request__pack_to_buffer
                     (const Protos__TransferRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__transfer_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__TransferRequest *
       protos__transfer_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__TransferRequest *)
     protobuf_c_message_unpack (&protos__transfer_request__descriptor,
                                allocator, len, data);
}
void   protos__transfer_request__free_unpacked
                     (Protos__TransferRequest *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__transfer_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__redeem_request__init
                     (Protos__RedeemRequest         *message)
{
  static Protos__RedeemRequest init_value = PROTOS__REDEEM_REQUEST__INIT;
  *message = init_value;
}
size_t protos__redeem_request__get_packed_size
                     (const Protos__RedeemRequest *message)
{
  assert(message->base.descriptor == &protos__redeem_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__redeem_request__pack
                     (const Protos__RedeemRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__redeem_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__redeem_request__pack_to_buffer
                     (const Protos__RedeemRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__redeem_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__RedeemRequest *
       protos__redeem_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__RedeemRequest *)
     protobuf_c_message_unpack (&protos__redeem_request__descriptor,
                                allocator, len, data);
}
void   protos__redeem_request__free_unpacked
                     (Protos__RedeemRequest *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__redeem_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__allowance_recipient_share__init
                     (Protos__AllowanceRecipientShare         *message)
{
  static Protos__AllowanceRecipientShare init_value = PROTOS__ALLOWANCE_RECIPIENT_SHARE__INIT;
  *message = init_value;
}
size_t protos__allowance_recipient_share__get_packed_size
                     (const Protos__AllowanceRecipientShare *message)
{
  assert(message->base.descriptor == &protos__allowance_recipient_share__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__allowance_recipient_share__pack
                     (const Protos__AllowanceRecipientShare *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__allowance_recipient_share__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__allowance_recipient_share__pack_to_buffer
                     (const Protos__AllowanceRecipientShare *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__allowance_recipient_share__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__AllowanceRecipientShare *
       protos__allowance_recipient_share__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__AllowanceRecipientShare *)
     protobuf_c_message_unpack (&protos__allowance_recipient_share__descriptor,
                                allocator, len, data);
}
void   protos__allowance_recipient_share__free_unpacked
                     (Protos__AllowanceRecipientShare *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__allowance_recipient_share__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__approve_request__init
                     (Protos__ApproveRequest         *message)
{
  static Protos__ApproveRequest init_value = PROTOS__APPROVE_REQUEST__INIT;
  *message = init_value;
}
size_t protos__approve_request__get_packed_size
                     (const Protos__ApproveRequest *message)
{
  assert(message->base.descriptor == &protos__approve_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__approve_request__pack
                     (const Protos__ApproveRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__approve_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__approve_request__pack_to_buffer
                     (const Protos__ApproveRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__approve_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__ApproveRequest *
       protos__approve_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__ApproveRequest *)
     protobuf_c_message_unpack (&protos__approve_request__descriptor,
                                allocator, len, data);
}
void   protos__approve_request__free_unpacked
                     (Protos__ApproveRequest *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__approve_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__expectation_request__init
                     (Protos__ExpectationRequest         *message)
{
  static Protos__ExpectationRequest init_value = PROTOS__EXPECTATION_REQUEST__INIT;
  *message = init_value;
}
size_t protos__expectation_request__get_packed_size
                     (const Protos__ExpectationRequest *message)
{
  assert(message->base.descriptor == &protos__expectation_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__expectation_request__pack
                     (const Protos__ExpectationRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__expectation_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__expectation_request__pack_to_buffer
                     (const Protos__ExpectationRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__expectation_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__ExpectationRequest *
       protos__expectation_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__ExpectationRequest *)
     protobuf_c_message_unpack (&protos__expectation_request__descriptor,
                                allocator, len, data);
}
void   protos__expectation_request__free_unpacked
                     (Protos__ExpectationRequest *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__expectation_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__header__init
                     (Protos__Header         *message)
{
  static Protos__Header init_value = PROTOS__HEADER__INIT;
  *message = init_value;
}
size_t protos__header__get_packed_size
                     (const Protos__Header *message)
{
  assert(message->base.descriptor == &protos__header__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__header__pack
                     (const Protos__Header *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__header__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__header__pack_to_buffer
                     (const Protos__Header *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__header__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__Header *
       protos__header__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__Header *)
     protobuf_c_message_unpack (&protos__header__descriptor,
                                allocator, len, data);
}
void   protos__header__free_unpacked
                     (Protos__Header *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__header__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__command__init
                     (Protos__Command         *message)
{
  static Protos__Command init_value = PROTOS__COMMAND__INIT;
  *message = init_value;
}
size_t protos__command__get_packed_size
                     (const Protos__Command *message)
{
  assert(message->base.descriptor == &protos__command__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__command__pack
                     (const Protos__Command *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__command__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__command__pack_to_buffer
                     (const Protos__Command *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__command__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__Command *
       protos__command__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__Command *)
     protobuf_c_message_unpack (&protos__command__descriptor,
                                allocator, len, data);
}
void   protos__command__free_unpacked
                     (Protos__Command *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__command__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__signed_command__init
                     (Protos__SignedCommand         *message)
{
  static Protos__SignedCommand init_value = PROTOS__SIGNED_COMMAND__INIT;
  *message = init_value;
}
size_t protos__signed_command__get_packed_size
                     (const Protos__SignedCommand *message)
{
  assert(message->base.descriptor == &protos__signed_command__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__signed_command__pack
                     (const Protos__SignedCommand *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__signed_command__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__signed_command__pack_to_buffer
                     (const Protos__SignedCommand *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__signed_command__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__SignedCommand *
       protos__signed_command__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__SignedCommand *)
     protobuf_c_message_unpack (&protos__signed_command__descriptor,
                                allocator, len, data);
}
void   protos__signed_command__free_unpacked
                     (Protos__SignedCommand *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__signed_command__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__command_response_header__init
                     (Protos__CommandResponseHeader         *message)
{
  static Protos__CommandResponseHeader init_value = PROTOS__COMMAND_RESPONSE_HEADER__INIT;
  *message = init_value;
}
size_t protos__command_response_header__get_packed_size
                     (const Protos__CommandResponseHeader *message)
{
  assert(message->base.descriptor == &protos__command_response_header__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__command_response_header__pack
                     (const Protos__CommandResponseHeader *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__command_response_header__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__command_response_header__pack_to_buffer
                     (const Protos__CommandResponseHeader *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__command_response_header__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__CommandResponseHeader *
       protos__command_response_header__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__CommandResponseHeader *)
     protobuf_c_message_unpack (&protos__command_response_header__descriptor,
                                allocator, len, data);
}
void   protos__command_response_header__free_unpacked
                     (Protos__CommandResponseHeader *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__command_response_header__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__error__init
                     (Protos__Error         *message)
{
  static Protos__Error init_value = PROTOS__ERROR__INIT;
  *message = init_value;
}
size_t protos__error__get_packed_size
                     (const Protos__Error *message)
{
  assert(message->base.descriptor == &protos__error__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__error__pack
                     (const Protos__Error *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__error__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__error__pack_to_buffer
                     (const Protos__Error *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__error__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__Error *
       protos__error__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__Error *)
     protobuf_c_message_unpack (&protos__error__descriptor,
                                allocator, len, data);
}
void   protos__error__free_unpacked
                     (Protos__Error *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__error__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__command_response__init
                     (Protos__CommandResponse         *message)
{
  static Protos__CommandResponse init_value = PROTOS__COMMAND_RESPONSE__INIT;
  *message = init_value;
}
size_t protos__command_response__get_packed_size
                     (const Protos__CommandResponse *message)
{
  assert(message->base.descriptor == &protos__command_response__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__command_response__pack
                     (const Protos__CommandResponse *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__command_response__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__command_response__pack_to_buffer
                     (const Protos__CommandResponse *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__command_response__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__CommandResponse *
       protos__command_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__CommandResponse *)
     protobuf_c_message_unpack (&protos__command_response__descriptor,
                                allocator, len, data);
}
void   protos__command_response__free_unpacked
                     (Protos__CommandResponse *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__command_response__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protos__signed_command_response__init
                     (Protos__SignedCommandResponse         *message)
{
  static Protos__SignedCommandResponse init_value = PROTOS__SIGNED_COMMAND_RESPONSE__INIT;
  *message = init_value;
}
size_t protos__signed_command_response__get_packed_size
                     (const Protos__SignedCommandResponse *message)
{
  assert(message->base.descriptor == &protos__signed_command_response__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protos__signed_command_response__pack
                     (const Protos__SignedCommandResponse *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protos__signed_command_response__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protos__signed_command_response__pack_to_buffer
                     (const Protos__SignedCommandResponse *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protos__signed_command_response__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Protos__SignedCommandResponse *
       protos__signed_command_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Protos__SignedCommandResponse *)
     protobuf_c_message_unpack (&protos__signed_command_response__descriptor,
                                allocator, len, data);
}
void   protos__signed_command_response__free_unpacked
                     (Protos__SignedCommandResponse *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protos__signed_command_response__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor protos__token_to_issue__field_descriptors[3] =
{
  {
    "recipient",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__TokenToIssue, has_recipient),
    offsetof(Protos__TokenToIssue, recipient),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Protos__TokenToIssue, type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantity",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Protos__TokenToIssue, has_quantity),
    offsetof(Protos__TokenToIssue, quantity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__token_to_issue__field_indices_by_name[] = {
  2,   /* field[2] = quantity */
  0,   /* field[0] = recipient */
  1,   /* field[1] = type */
};
static const ProtobufCIntRange protos__token_to_issue__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__token_to_issue__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.TokenToIssue",
  "TokenToIssue",
  "Protos__TokenToIssue",
  "protos",
  sizeof(Protos__TokenToIssue),
  3,
  protos__token_to_issue__field_descriptors,
  protos__token_to_issue__field_indices_by_name,
  1,  protos__token_to_issue__number_ranges,
  (ProtobufCMessageInit) protos__token_to_issue__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__recipient_transfer_share__field_descriptors[2] =
{
  {
    "recipient",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__RecipientTransferShare, has_recipient),
    offsetof(Protos__RecipientTransferShare, recipient),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantity",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Protos__RecipientTransferShare, has_quantity),
    offsetof(Protos__RecipientTransferShare, quantity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__recipient_transfer_share__field_indices_by_name[] = {
  1,   /* field[1] = quantity */
  0,   /* field[0] = recipient */
};
static const ProtobufCIntRange protos__recipient_transfer_share__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protos__recipient_transfer_share__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.RecipientTransferShare",
  "RecipientTransferShare",
  "Protos__RecipientTransferShare",
  "protos",
  sizeof(Protos__RecipientTransferShare),
  2,
  protos__recipient_transfer_share__field_descriptors,
  protos__recipient_transfer_share__field_indices_by_name,
  1,  protos__recipient_transfer_share__number_ranges,
  (ProtobufCMessageInit) protos__recipient_transfer_share__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__token_output__field_descriptors[3] =
{
  {
    "id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__TokenOutput, has_id),
    offsetof(Protos__TokenOutput, id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Protos__TokenOutput, type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantity",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Protos__TokenOutput, has_quantity),
    offsetof(Protos__TokenOutput, quantity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__token_output__field_indices_by_name[] = {
  0,   /* field[0] = id */
  2,   /* field[2] = quantity */
  1,   /* field[1] = type */
};
static const ProtobufCIntRange protos__token_output__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__token_output__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.TokenOutput",
  "TokenOutput",
  "Protos__TokenOutput",
  "protos",
  sizeof(Protos__TokenOutput),
  3,
  protos__token_output__field_descriptors,
  protos__token_output__field_indices_by_name,
  1,  protos__token_output__number_ranges,
  (ProtobufCMessageInit) protos__token_output__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__unspent_tokens__field_descriptors[1] =
{
  {
    "tokens",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__UnspentTokens, n_tokens),
    offsetof(Protos__UnspentTokens, tokens),
    &protos__token_output__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__unspent_tokens__field_indices_by_name[] = {
  0,   /* field[0] = tokens */
};
static const ProtobufCIntRange protos__unspent_tokens__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor protos__unspent_tokens__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.UnspentTokens",
  "UnspentTokens",
  "Protos__UnspentTokens",
  "protos",
  sizeof(Protos__UnspentTokens),
  1,
  protos__unspent_tokens__field_descriptors,
  protos__unspent_tokens__field_indices_by_name,
  1,  protos__unspent_tokens__number_ranges,
  (ProtobufCMessageInit) protos__unspent_tokens__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__list_request__field_descriptors[1] =
{
  {
    "credential",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__ListRequest, has_credential),
    offsetof(Protos__ListRequest, credential),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__list_request__field_indices_by_name[] = {
  0,   /* field[0] = credential */
};
static const ProtobufCIntRange protos__list_request__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor protos__list_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.ListRequest",
  "ListRequest",
  "Protos__ListRequest",
  "protos",
  sizeof(Protos__ListRequest),
  1,
  protos__list_request__field_descriptors,
  protos__list_request__field_indices_by_name,
  1,  protos__list_request__number_ranges,
  (ProtobufCMessageInit) protos__list_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__import_request__field_descriptors[2] =
{
  {
    "credential",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__ImportRequest, has_credential),
    offsetof(Protos__ImportRequest, credential),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "tokens_to_issue",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__ImportRequest, n_tokens_to_issue),
    offsetof(Protos__ImportRequest, tokens_to_issue),
    &protos__token_to_issue__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__import_request__field_indices_by_name[] = {
  0,   /* field[0] = credential */
  1,   /* field[1] = tokens_to_issue */
};
static const ProtobufCIntRange protos__import_request__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protos__import_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.ImportRequest",
  "ImportRequest",
  "Protos__ImportRequest",
  "protos",
  sizeof(Protos__ImportRequest),
  2,
  protos__import_request__field_descriptors,
  protos__import_request__field_indices_by_name,
  1,  protos__import_request__number_ranges,
  (ProtobufCMessageInit) protos__import_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__transfer_request__field_descriptors[3] =
{
  {
    "credential",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__TransferRequest, has_credential),
    offsetof(Protos__TransferRequest, credential),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "token_ids",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__TransferRequest, n_token_ids),
    offsetof(Protos__TransferRequest, token_ids),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "shares",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__TransferRequest, n_shares),
    offsetof(Protos__TransferRequest, shares),
    &protos__recipient_transfer_share__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__transfer_request__field_indices_by_name[] = {
  0,   /* field[0] = credential */
  2,   /* field[2] = shares */
  1,   /* field[1] = token_ids */
};
static const ProtobufCIntRange protos__transfer_request__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__transfer_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.TransferRequest",
  "TransferRequest",
  "Protos__TransferRequest",
  "protos",
  sizeof(Protos__TransferRequest),
  3,
  protos__transfer_request__field_descriptors,
  protos__transfer_request__field_indices_by_name,
  1,  protos__transfer_request__number_ranges,
  (ProtobufCMessageInit) protos__transfer_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__redeem_request__field_descriptors[3] =
{
  {
    "credential",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__RedeemRequest, has_credential),
    offsetof(Protos__RedeemRequest, credential),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "token_ids",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__RedeemRequest, n_token_ids),
    offsetof(Protos__RedeemRequest, token_ids),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantity_to_redeem",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Protos__RedeemRequest, has_quantity_to_redeem),
    offsetof(Protos__RedeemRequest, quantity_to_redeem),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__redeem_request__field_indices_by_name[] = {
  0,   /* field[0] = credential */
  2,   /* field[2] = quantity_to_redeem */
  1,   /* field[1] = token_ids */
};
static const ProtobufCIntRange protos__redeem_request__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__redeem_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.RedeemRequest",
  "RedeemRequest",
  "Protos__RedeemRequest",
  "protos",
  sizeof(Protos__RedeemRequest),
  3,
  protos__redeem_request__field_descriptors,
  protos__redeem_request__field_indices_by_name,
  1,  protos__redeem_request__number_ranges,
  (ProtobufCMessageInit) protos__redeem_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__allowance_recipient_share__field_descriptors[2] =
{
  {
    "recipient",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__AllowanceRecipientShare, has_recipient),
    offsetof(Protos__AllowanceRecipientShare, recipient),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantity",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Protos__AllowanceRecipientShare, has_quantity),
    offsetof(Protos__AllowanceRecipientShare, quantity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__allowance_recipient_share__field_indices_by_name[] = {
  1,   /* field[1] = quantity */
  0,   /* field[0] = recipient */
};
static const ProtobufCIntRange protos__allowance_recipient_share__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protos__allowance_recipient_share__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.AllowanceRecipientShare",
  "AllowanceRecipientShare",
  "Protos__AllowanceRecipientShare",
  "protos",
  sizeof(Protos__AllowanceRecipientShare),
  2,
  protos__allowance_recipient_share__field_descriptors,
  protos__allowance_recipient_share__field_indices_by_name,
  1,  protos__allowance_recipient_share__number_ranges,
  (ProtobufCMessageInit) protos__allowance_recipient_share__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__approve_request__field_descriptors[3] =
{
  {
    "credential",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__ApproveRequest, has_credential),
    offsetof(Protos__ApproveRequest, credential),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "allowance_shares",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__ApproveRequest, n_allowance_shares),
    offsetof(Protos__ApproveRequest, allowance_shares),
    &protos__allowance_recipient_share__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "token_ids",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__ApproveRequest, n_token_ids),
    offsetof(Protos__ApproveRequest, token_ids),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__approve_request__field_indices_by_name[] = {
  1,   /* field[1] = allowance_shares */
  0,   /* field[0] = credential */
  2,   /* field[2] = token_ids */
};
static const ProtobufCIntRange protos__approve_request__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__approve_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.ApproveRequest",
  "ApproveRequest",
  "Protos__ApproveRequest",
  "protos",
  sizeof(Protos__ApproveRequest),
  3,
  protos__approve_request__field_descriptors,
  protos__approve_request__field_indices_by_name,
  1,  protos__approve_request__number_ranges,
  (ProtobufCMessageInit) protos__approve_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__expectation_request__field_descriptors[3] =
{
  {
    "credential",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__ExpectationRequest, has_credential),
    offsetof(Protos__ExpectationRequest, credential),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "expectation",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Protos__ExpectationRequest, expectation),
    &protos__token_expectation__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "token_ids",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__ExpectationRequest, n_token_ids),
    offsetof(Protos__ExpectationRequest, token_ids),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__expectation_request__field_indices_by_name[] = {
  0,   /* field[0] = credential */
  1,   /* field[1] = expectation */
  2,   /* field[2] = token_ids */
};
static const ProtobufCIntRange protos__expectation_request__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__expectation_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.ExpectationRequest",
  "ExpectationRequest",
  "Protos__ExpectationRequest",
  "protos",
  sizeof(Protos__ExpectationRequest),
  3,
  protos__expectation_request__field_descriptors,
  protos__expectation_request__field_indices_by_name,
  1,  protos__expectation_request__number_ranges,
  (ProtobufCMessageInit) protos__expectation_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__header__field_descriptors[4] =
{
  {
    "timestamp",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Protos__Header, timestamp),
    &google__protobuf__timestamp__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "channel_id",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Protos__Header, channel_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "nonce",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__Header, has_nonce),
    offsetof(Protos__Header, nonce),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "creator",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__Header, has_creator),
    offsetof(Protos__Header, creator),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__header__field_indices_by_name[] = {
  1,   /* field[1] = channel_id */
  3,   /* field[3] = creator */
  2,   /* field[2] = nonce */
  0,   /* field[0] = timestamp */
};
static const ProtobufCIntRange protos__header__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor protos__header__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.Header",
  "Header",
  "Protos__Header",
  "protos",
  sizeof(Protos__Header),
  4,
  protos__header__field_descriptors,
  protos__header__field_indices_by_name,
  1,  protos__header__number_ranges,
  (ProtobufCMessageInit) protos__header__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__command__field_descriptors[8] =
{
  {
    "header",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Protos__Command, header),
    &protos__header__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "import_request",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, import_request),
    &protos__import_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "transfer_request",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, transfer_request),
    &protos__transfer_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "list_request",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, list_request),
    &protos__list_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "redeem_request",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, redeem_request),
    &protos__redeem_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "approve_request",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, approve_request),
    &protos__approve_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "transfer_from_request",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, transfer_from_request),
    &protos__transfer_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "expectation_request",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__Command, payload_case),
    offsetof(Protos__Command, expectation_request),
    &protos__expectation_request__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__command__field_indices_by_name[] = {
  5,   /* field[5] = approve_request */
  7,   /* field[7] = expectation_request */
  0,   /* field[0] = header */
  1,   /* field[1] = import_request */
  3,   /* field[3] = list_request */
  4,   /* field[4] = redeem_request */
  6,   /* field[6] = transfer_from_request */
  2,   /* field[2] = transfer_request */
};
static const ProtobufCIntRange protos__command__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 8 }
};
const ProtobufCMessageDescriptor protos__command__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.Command",
  "Command",
  "Protos__Command",
  "protos",
  sizeof(Protos__Command),
  8,
  protos__command__field_descriptors,
  protos__command__field_indices_by_name,
  1,  protos__command__number_ranges,
  (ProtobufCMessageInit) protos__command__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__signed_command__field_descriptors[2] =
{
  {
    "command",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__SignedCommand, has_command),
    offsetof(Protos__SignedCommand, command),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signature",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__SignedCommand, has_signature),
    offsetof(Protos__SignedCommand, signature),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__signed_command__field_indices_by_name[] = {
  0,   /* field[0] = command */
  1,   /* field[1] = signature */
};
static const ProtobufCIntRange protos__signed_command__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protos__signed_command__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.SignedCommand",
  "SignedCommand",
  "Protos__SignedCommand",
  "protos",
  sizeof(Protos__SignedCommand),
  2,
  protos__signed_command__field_descriptors,
  protos__signed_command__field_indices_by_name,
  1,  protos__signed_command__number_ranges,
  (ProtobufCMessageInit) protos__signed_command__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__command_response_header__field_descriptors[3] =
{
  {
    "timestamp",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Protos__CommandResponseHeader, timestamp),
    &google__protobuf__timestamp__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "command_hash",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__CommandResponseHeader, has_command_hash),
    offsetof(Protos__CommandResponseHeader, command_hash),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "creator",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__CommandResponseHeader, has_creator),
    offsetof(Protos__CommandResponseHeader, creator),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__command_response_header__field_indices_by_name[] = {
  1,   /* field[1] = command_hash */
  2,   /* field[2] = creator */
  0,   /* field[0] = timestamp */
};
static const ProtobufCIntRange protos__command_response_header__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor protos__command_response_header__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.CommandResponseHeader",
  "CommandResponseHeader",
  "Protos__CommandResponseHeader",
  "protos",
  sizeof(Protos__CommandResponseHeader),
  3,
  protos__command_response_header__field_descriptors,
  protos__command_response_header__field_indices_by_name,
  1,  protos__command_response_header__number_ranges,
  (ProtobufCMessageInit) protos__command_response_header__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__error__field_descriptors[2] =
{
  {
    "message",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Protos__Error, message),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "payload",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__Error, has_payload),
    offsetof(Protos__Error, payload),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__error__field_indices_by_name[] = {
  0,   /* field[0] = message */
  1,   /* field[1] = payload */
};
static const ProtobufCIntRange protos__error__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protos__error__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.Error",
  "Error",
  "Protos__Error",
  "protos",
  sizeof(Protos__Error),
  2,
  protos__error__field_descriptors,
  protos__error__field_indices_by_name,
  1,  protos__error__number_ranges,
  (ProtobufCMessageInit) protos__error__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__command_response__field_descriptors[4] =
{
  {
    "header",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Protos__CommandResponse, header),
    &protos__command_response_header__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "err",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__CommandResponse, payload_case),
    offsetof(Protos__CommandResponse, err),
    &protos__error__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "token_transaction",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__CommandResponse, payload_case),
    offsetof(Protos__CommandResponse, token_transaction),
    &token_transaction__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "unspent_tokens",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Protos__CommandResponse, payload_case),
    offsetof(Protos__CommandResponse, unspent_tokens),
    &protos__unspent_tokens__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__command_response__field_indices_by_name[] = {
  1,   /* field[1] = err */
  0,   /* field[0] = header */
  2,   /* field[2] = token_transaction */
  3,   /* field[3] = unspent_tokens */
};
static const ProtobufCIntRange protos__command_response__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor protos__command_response__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.CommandResponse",
  "CommandResponse",
  "Protos__CommandResponse",
  "protos",
  sizeof(Protos__CommandResponse),
  4,
  protos__command_response__field_descriptors,
  protos__command_response__field_indices_by_name,
  1,  protos__command_response__number_ranges,
  (ProtobufCMessageInit) protos__command_response__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protos__signed_command_response__field_descriptors[2] =
{
  {
    "response",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__SignedCommandResponse, has_response),
    offsetof(Protos__SignedCommandResponse, response),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signature",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Protos__SignedCommandResponse, has_signature),
    offsetof(Protos__SignedCommandResponse, signature),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protos__signed_command_response__field_indices_by_name[] = {
  0,   /* field[0] = response */
  1,   /* field[1] = signature */
};
static const ProtobufCIntRange protos__signed_command_response__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protos__signed_command_response__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "protos.SignedCommandResponse",
  "SignedCommandResponse",
  "Protos__SignedCommandResponse",
  "protos",
  sizeof(Protos__SignedCommandResponse),
  2,
  protos__signed_command_response__field_descriptors,
  protos__signed_command_response__field_indices_by_name,
  1,  protos__signed_command_response__number_ranges,
  (ProtobufCMessageInit) protos__signed_command_response__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCMethodDescriptor protos__prover__method_descriptors[1] =
{
  { "ProcessCommand", &protos__signed_command__descriptor, &protos__signed_command_response__descriptor },
};
const unsigned protos__prover__method_indices_by_name[] = {
  0         /* ProcessCommand */
};
const ProtobufCServiceDescriptor protos__prover__descriptor =
{
  PROTOBUF_C__SERVICE_DESCRIPTOR_MAGIC,
  "protos.Prover",
  "Prover",
  "Protos__Prover",
  "protos",
  1,
  protos__prover__method_descriptors,
  protos__prover__method_indices_by_name
};
void protos__prover__process_command(ProtobufCService *service,
                                     const Protos__SignedCommand *input,
                                     Protos__SignedCommandResponse_Closure closure,
                                     void *closure_data)
{
  assert(service->descriptor == &protos__prover__descriptor);
  service->invoke(service, 0, (const ProtobufCMessage *) input, (ProtobufCClosure) closure, closure_data);
}
void protos__prover__init (Protos__Prover_Service *service,
                           Protos__Prover_ServiceDestroy destroy)
{
  protobuf_c_service_generated_init (&service->base,
                                     &protos__prover__descriptor,
                                     (ProtobufCServiceDestroy) destroy);
}
