# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: qrl.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='qrl.proto',
  package='qrl',
  syntax='proto3',
  serialized_pb=_b('\n\tqrl.proto\x12\x03qrl\"+\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\"\x17\n\x07PingReq\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1b\n\x08PongResp\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x12\n\x10GetKnownPeersReq\"9\n\x11GetKnownPeersResp\x12$\n\x0bknown_peers\x18\x01 \x01(\x0b\x32\x0f.qrl.KnownPeers\"\r\n\x0bGetStatsReq\"\x83\x02\n\x0cGetStatsResp\x12 \n\tnode_info\x18\x01 \x01(\x0b\x32\r.qrl.NodeInfo\x12\r\n\x05\x65poch\x18\x02 \x01(\x04\x12\x16\n\x0euptime_network\x18\x03 \x01(\x04\x12\x15\n\rstakers_count\x18\x04 \x01(\x04\x12\x19\n\x11\x62lock_last_reward\x18\x05 \x01(\x04\x12\x17\n\x0f\x62lock_time_mean\x18\x06 \x01(\x04\x12\x15\n\rblock_time_sd\x18\x07 \x01(\x04\x12\x1a\n\x12\x63oins_total_supply\x18\x08 \x01(\x04\x12\x15\n\rcoins_emitted\x18\t \x01(\x04\x12\x15\n\rcoins_atstake\x18\n \x01(\x04\"\x11\n\x0fGetNodeStateReq\"/\n\x10GetNodeStateResp\x12\x1b\n\x04info\x18\x01 \x01(\x0b\x32\r.qrl.NodeInfo\"%\n\x12GetAddressStateReq\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"7\n\x13GetAddressStateResp\x12 \n\x05state\x18\x01 \x01(\x0b\x32\x11.qrl.AddressState\"\x1d\n\x0cGetObjectReq\x12\r\n\x05query\x18\x01 \x01(\x0c\"\x9a\x01\n\rGetObjectResp\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12*\n\raddress_state\x18\x02 \x01(\x0b\x32\x11.qrl.AddressStateH\x00\x12\'\n\x0btransaction\x18\x03 \x01(\x0b\x32\x10.qrl.TransactionH\x00\x12\x1b\n\x05\x62lock\x18\x04 \x01(\x0b\x32\n.qrl.BlockH\x00\x42\x08\n\x06result\"\x12\n\x10GetLatestDataReq\"\x8b\x01\n\x11GetLatestDataResp\x12\x1a\n\x06\x62locks\x18\x01 \x03(\x0b\x32\n.qrl.Block\x12&\n\x0ctransactions\x18\x02 \x03(\x0b\x32\x10.qrl.Transaction\x12\x32\n\x18transactions_unconfirmed\x18\x03 \x03(\x0b\x32\x10.qrl.Transaction\"\x82\x01\n\x10TransferCoinsReq\x12\x14\n\x0c\x61\x64\x64ress_from\x18\x01 \x01(\x0c\x12\x12\n\naddress_to\x18\x02 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x03 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x04 \x01(\x04\x12\x0f\n\x07xmss_pk\x18\x05 \x01(\x0c\x12\x16\n\x0exmss_ots_index\x18\x06 \x01(\x04\"C\n\x11TransferCoinsResp\x12.\n\x14transaction_unsigned\x18\x01 \x01(\x0b\x32\x10.qrl.Transaction\"B\n\x12PushTransactionReq\x12,\n\x12transaction_signed\x18\x01 \x01(\x0b\x32\x10.qrl.Transaction\",\n\x13PushTransactionResp\x12\x15\n\rsome_response\x18\x01 \x01(\t\"\xa4\x02\n\x08NodeInfo\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\"\n\x05state\x18\x02 \x01(\x0e\x32\x13.qrl.NodeInfo.State\x12\x17\n\x0fnum_connections\x18\x03 \x01(\r\x12\x17\n\x0fnum_known_peers\x18\x04 \x01(\r\x12\x0e\n\x06uptime\x18\x05 \x01(\x04\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\x04\x12\x17\n\x0f\x62lock_last_hash\x18\x07 \x01(\x0c\x12\x15\n\rstake_enabled\x18\x08 \x01(\x08\x12\x12\n\nnetwork_id\x18\t \x01(\t\"G\n\x05State\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08UNSYNCED\x10\x01\x12\x0b\n\x07SYNCING\x10\x02\x12\n\n\x06SYNCED\x10\x03\x12\n\n\x06\x46ORKED\x10\x04\"+\n\x0bWalletStore\x12\x1c\n\x07wallets\x18\x01 \x03(\x0b\x32\x0b.qrl.Wallet\"?\n\x06Wallet\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x10\n\x08mnemonic\x18\x02 \x01(\t\x12\x12\n\nxmss_index\x18\x03 \x01(\x05\"&\n\nKnownPeers\x12\x18\n\x05peers\x18\x01 \x03(\x0b\x32\t.qrl.Peer\"\x12\n\x04Peer\x12\n\n\x02ip\x18\x01 \x01(\t\"z\n\x0c\x41\x64\x64ressState\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0f\n\x07\x62\x61lance\x18\x02 \x01(\x04\x12\r\n\x05nonce\x18\x03 \x01(\x04\x12\x11\n\tpubhashes\x18\x04 \x03(\x0c\x12&\n\x0ctransactions\x18\x05 \x03(\x0b\x32\x10.qrl.Transaction\"\xf0\x01\n\x0b\x42lockHeader\x12\x14\n\x0c\x62lock_number\x18\x01 \x01(\x04\x12\r\n\x05\x65poch\x18\x02 \x01(\x04\x12!\n\ttimestamp\x18\x03 \x01(\x0b\x32\x0e.qrl.Timestamp\x12\x13\n\x0bhash_header\x18\x04 \x01(\x0c\x12\x18\n\x10hash_header_prev\x18\x05 \x01(\x0c\x12\x14\n\x0creward_block\x18\x06 \x01(\x04\x12\x12\n\nreward_fee\x18\x07 \x01(\x04\x12\x13\n\x0bmerkle_root\x18\x08 \x01(\x0c\x12\x13\n\x0bhash_reveal\x18\t \x01(\x0c\x12\x16\n\x0estake_selector\x18\n \x01(\x0c\"}\n\x05\x42lock\x12 \n\x06header\x18\x01 \x01(\x0b\x32\x10.qrl.BlockHeader\x12&\n\x0ctransactions\x18\x02 \x03(\x0b\x32\x10.qrl.Transaction\x12*\n\x10\x64up_transactions\x18\x03 \x03(\x0b\x32\x10.qrl.Transaction\"D\n\x11\x42lockMetaDataList\x12/\n\x13\x62lock_number_hashes\x18\x01 \x03(\x0b\x32\x12.qrl.BlockMetaData\":\n\rBlockMetaData\x12\x14\n\x0c\x62lock_number\x18\x01 \x01(\x04\x12\x13\n\x0bhash_header\x18\x02 \x01(\x0c\"|\n\x02MR\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x16\n\x0estake_selector\x18\x03 \x01(\x0c\x12\x14\n\x0c\x62lock_number\x18\x04 \x01(\x04\x12\x17\n\x0fprev_headerhash\x18\x05 \x01(\x0c\x12\x13\n\x0breveal_hash\x18\x06 \x01(\x0c\"\x89\x08\n\x0bTransaction\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.qrl.Transaction.Type\x12\r\n\x05nonce\x18\x02 \x01(\x04\x12\x11\n\taddr_from\x18\x03 \x01(\x0c\x12\x12\n\npublic_key\x18\x04 \x01(\x0c\x12\x18\n\x10transaction_hash\x18\x05 \x01(\x0c\x12\x0f\n\x07ots_key\x18\x06 \x01(\r\x12\x11\n\tsignature\x18\x07 \x01(\x0c\x12-\n\x08transfer\x18\x08 \x01(\x0b\x32\x19.qrl.Transaction.TransferH\x00\x12\'\n\x05stake\x18\t \x01(\x0b\x32\x16.qrl.Transaction.StakeH\x00\x12-\n\x08\x63oinbase\x18\n \x01(\x0b\x32\x19.qrl.Transaction.CoinBaseH\x00\x12\x36\n\tlatticePK\x18\x0b \x01(\x0b\x32!.qrl.Transaction.LatticePublicKeyH\x00\x12/\n\tduplicate\x18\x0c \x01(\x0b\x32\x1a.qrl.Transaction.DuplicateH\x00\x1a\x38\n\x08Transfer\x12\x0f\n\x07\x61\x64\x64r_to\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x03 \x01(\x04\x1a\x94\x01\n\x05Stake\x12\x0f\n\x07\x62\x61lance\x18\x01 \x01(\x04\x12\x1e\n\x16\x61\x63tivation_blocknumber\x18\x02 \x01(\x04\x12\x1d\n\x15\x66inalized_blocknumber\x18\x03 \x01(\x04\x12\x1c\n\x14\x66inalized_headerhash\x18\x04 \x01(\x0c\x12\x0f\n\x07slavePK\x18\x05 \x01(\x0c\x12\x0c\n\x04hash\x18\x07 \x01(\x0c\x1a\t\n\x07\x44\x65stake\x1a+\n\x08\x43oinBase\x12\x0f\n\x07\x61\x64\x64r_to\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x1a\x36\n\x10LatticePublicKey\x12\x10\n\x08pk_kyber\x18\x01 \x01(\x0c\x12\x10\n\x08pk_tesla\x18\x02 \x01(\x0c\x1a\xb7\x01\n\tDuplicate\x12\x14\n\x0c\x62lock_number\x18\x01 \x01(\x04\x12\x18\n\x10prev_header_hash\x18\x02 \x01(\x04\x12\x17\n\x0f\x63oinbase1_hhash\x18\x03 \x01(\x0c\x12\x17\n\x0f\x63oinbase2_hhash\x18\x04 \x01(\x0c\x12#\n\tcoinbase1\x18\x05 \x01(\x0b\x32\x10.qrl.Transaction\x12#\n\tcoinbase2\x18\x06 \x01(\x0b\x32\x10.qrl.Transaction\"c\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08TRANSFER\x10\x01\x12\t\n\x05STAKE\x10\x02\x12\x0b\n\x07\x44\x45STAKE\x10\x03\x12\x0c\n\x08\x43OINBASE\x10\x04\x12\x0b\n\x07LATTICE\x10\x05\x12\r\n\tDUPLICATE\x10\x06\x42\x11\n\x0ftransactionType2p\n\x07P2PNode\x12%\n\x04Ping\x12\x0c.qrl.PingReq\x1a\r.qrl.PongResp\"\x00\x12>\n\rGetKnownPeers\x12\x15.qrl.GetKnownPeersReq\x1a\x16.qrl.GetKnownPeersResp2\xf9\x03\n\tPublicAPI\x12;\n\x0cGetNodeState\x12\x14.qrl.GetNodeStateReq\x1a\x15.qrl.GetNodeStateResp\x12/\n\x08GetStats\x12\x10.qrl.GetStatsReq\x1a\x11.qrl.GetStatsResp\x12>\n\rGetKnownPeers\x12\x15.qrl.GetKnownPeersReq\x1a\x16.qrl.GetKnownPeersResp\x12\x44\n\x0fGetAddressState\x12\x17.qrl.GetAddressStateReq\x1a\x18.qrl.GetAddressStateResp\x12\x32\n\tGetObject\x12\x11.qrl.GetObjectReq\x1a\x12.qrl.GetObjectResp\x12>\n\rGetLatestData\x12\x15.qrl.GetLatestDataReq\x1a\x16.qrl.GetLatestDataResp\x12>\n\rTransferCoins\x12\x15.qrl.TransferCoinsReq\x1a\x16.qrl.TransferCoinsResp\x12\x44\n\x0fPushTransaction\x12\x17.qrl.PushTransactionReq\x1a\x18.qrl.PushTransactionResp2\n\n\x08\x41\x64minAPIb\x06proto3')
)



_NODEINFO_STATE = _descriptor.EnumDescriptor(
  name='State',
  full_name='qrl.NodeInfo.State',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNSYNCED', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SYNCING', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SYNCED', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FORKED', index=4, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1525,
  serialized_end=1596,
)
_sym_db.RegisterEnumDescriptor(_NODEINFO_STATE)

_TRANSACTION_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='qrl.Transaction.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TRANSFER', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='STAKE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DESTAKE', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COINBASE', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LATTICE', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DUPLICATE', index=6, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3434,
  serialized_end=3533,
)
_sym_db.RegisterEnumDescriptor(_TRANSACTION_TYPE)


_TIMESTAMP = _descriptor.Descriptor(
  name='Timestamp',
  full_name='qrl.Timestamp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='seconds', full_name='qrl.Timestamp.seconds', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='nanos', full_name='qrl.Timestamp.nanos', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=18,
  serialized_end=61,
)


_PINGREQ = _descriptor.Descriptor(
  name='PingReq',
  full_name='qrl.PingReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='qrl.PingReq.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=63,
  serialized_end=86,
)


_PONGRESP = _descriptor.Descriptor(
  name='PongResp',
  full_name='qrl.PongResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='message', full_name='qrl.PongResp.message', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=88,
  serialized_end=115,
)


_GETKNOWNPEERSREQ = _descriptor.Descriptor(
  name='GetKnownPeersReq',
  full_name='qrl.GetKnownPeersReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=117,
  serialized_end=135,
)


_GETKNOWNPEERSRESP = _descriptor.Descriptor(
  name='GetKnownPeersResp',
  full_name='qrl.GetKnownPeersResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='known_peers', full_name='qrl.GetKnownPeersResp.known_peers', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=137,
  serialized_end=194,
)


_GETSTATSREQ = _descriptor.Descriptor(
  name='GetStatsReq',
  full_name='qrl.GetStatsReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=196,
  serialized_end=209,
)


_GETSTATSRESP = _descriptor.Descriptor(
  name='GetStatsResp',
  full_name='qrl.GetStatsResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='node_info', full_name='qrl.GetStatsResp.node_info', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='epoch', full_name='qrl.GetStatsResp.epoch', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='uptime_network', full_name='qrl.GetStatsResp.uptime_network', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stakers_count', full_name='qrl.GetStatsResp.stakers_count', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block_last_reward', full_name='qrl.GetStatsResp.block_last_reward', index=4,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block_time_mean', full_name='qrl.GetStatsResp.block_time_mean', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block_time_sd', full_name='qrl.GetStatsResp.block_time_sd', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coins_total_supply', full_name='qrl.GetStatsResp.coins_total_supply', index=7,
      number=8, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coins_emitted', full_name='qrl.GetStatsResp.coins_emitted', index=8,
      number=9, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coins_atstake', full_name='qrl.GetStatsResp.coins_atstake', index=9,
      number=10, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=212,
  serialized_end=471,
)


_GETNODESTATEREQ = _descriptor.Descriptor(
  name='GetNodeStateReq',
  full_name='qrl.GetNodeStateReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=473,
  serialized_end=490,
)


_GETNODESTATERESP = _descriptor.Descriptor(
  name='GetNodeStateResp',
  full_name='qrl.GetNodeStateResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='info', full_name='qrl.GetNodeStateResp.info', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=492,
  serialized_end=539,
)


_GETADDRESSSTATEREQ = _descriptor.Descriptor(
  name='GetAddressStateReq',
  full_name='qrl.GetAddressStateReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='address', full_name='qrl.GetAddressStateReq.address', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=541,
  serialized_end=578,
)


_GETADDRESSSTATERESP = _descriptor.Descriptor(
  name='GetAddressStateResp',
  full_name='qrl.GetAddressStateResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='state', full_name='qrl.GetAddressStateResp.state', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=580,
  serialized_end=635,
)


_GETOBJECTREQ = _descriptor.Descriptor(
  name='GetObjectReq',
  full_name='qrl.GetObjectReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='query', full_name='qrl.GetObjectReq.query', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=637,
  serialized_end=666,
)


_GETOBJECTRESP = _descriptor.Descriptor(
  name='GetObjectResp',
  full_name='qrl.GetObjectResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='found', full_name='qrl.GetObjectResp.found', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='address_state', full_name='qrl.GetObjectResp.address_state', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transaction', full_name='qrl.GetObjectResp.transaction', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block', full_name='qrl.GetObjectResp.block', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='result', full_name='qrl.GetObjectResp.result',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=669,
  serialized_end=823,
)


_GETLATESTDATAREQ = _descriptor.Descriptor(
  name='GetLatestDataReq',
  full_name='qrl.GetLatestDataReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=825,
  serialized_end=843,
)


_GETLATESTDATARESP = _descriptor.Descriptor(
  name='GetLatestDataResp',
  full_name='qrl.GetLatestDataResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='blocks', full_name='qrl.GetLatestDataResp.blocks', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transactions', full_name='qrl.GetLatestDataResp.transactions', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transactions_unconfirmed', full_name='qrl.GetLatestDataResp.transactions_unconfirmed', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=846,
  serialized_end=985,
)


_TRANSFERCOINSREQ = _descriptor.Descriptor(
  name='TransferCoinsReq',
  full_name='qrl.TransferCoinsReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='address_from', full_name='qrl.TransferCoinsReq.address_from', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='address_to', full_name='qrl.TransferCoinsReq.address_to', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='amount', full_name='qrl.TransferCoinsReq.amount', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='fee', full_name='qrl.TransferCoinsReq.fee', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='xmss_pk', full_name='qrl.TransferCoinsReq.xmss_pk', index=4,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='xmss_ots_index', full_name='qrl.TransferCoinsReq.xmss_ots_index', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=988,
  serialized_end=1118,
)


_TRANSFERCOINSRESP = _descriptor.Descriptor(
  name='TransferCoinsResp',
  full_name='qrl.TransferCoinsResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='transaction_unsigned', full_name='qrl.TransferCoinsResp.transaction_unsigned', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1120,
  serialized_end=1187,
)


_PUSHTRANSACTIONREQ = _descriptor.Descriptor(
  name='PushTransactionReq',
  full_name='qrl.PushTransactionReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='transaction_signed', full_name='qrl.PushTransactionReq.transaction_signed', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1189,
  serialized_end=1255,
)


_PUSHTRANSACTIONRESP = _descriptor.Descriptor(
  name='PushTransactionResp',
  full_name='qrl.PushTransactionResp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='some_response', full_name='qrl.PushTransactionResp.some_response', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1257,
  serialized_end=1301,
)


_NODEINFO = _descriptor.Descriptor(
  name='NodeInfo',
  full_name='qrl.NodeInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='version', full_name='qrl.NodeInfo.version', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='state', full_name='qrl.NodeInfo.state', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='num_connections', full_name='qrl.NodeInfo.num_connections', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='num_known_peers', full_name='qrl.NodeInfo.num_known_peers', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='uptime', full_name='qrl.NodeInfo.uptime', index=4,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block_height', full_name='qrl.NodeInfo.block_height', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block_last_hash', full_name='qrl.NodeInfo.block_last_hash', index=6,
      number=7, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stake_enabled', full_name='qrl.NodeInfo.stake_enabled', index=7,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='network_id', full_name='qrl.NodeInfo.network_id', index=8,
      number=9, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _NODEINFO_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1304,
  serialized_end=1596,
)


_WALLETSTORE = _descriptor.Descriptor(
  name='WalletStore',
  full_name='qrl.WalletStore',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='wallets', full_name='qrl.WalletStore.wallets', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1598,
  serialized_end=1641,
)


_WALLET = _descriptor.Descriptor(
  name='Wallet',
  full_name='qrl.Wallet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='address', full_name='qrl.Wallet.address', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='mnemonic', full_name='qrl.Wallet.mnemonic', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='xmss_index', full_name='qrl.Wallet.xmss_index', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1643,
  serialized_end=1706,
)


_KNOWNPEERS = _descriptor.Descriptor(
  name='KnownPeers',
  full_name='qrl.KnownPeers',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='peers', full_name='qrl.KnownPeers.peers', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1708,
  serialized_end=1746,
)


_PEER = _descriptor.Descriptor(
  name='Peer',
  full_name='qrl.Peer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ip', full_name='qrl.Peer.ip', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1748,
  serialized_end=1766,
)


_ADDRESSSTATE = _descriptor.Descriptor(
  name='AddressState',
  full_name='qrl.AddressState',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='address', full_name='qrl.AddressState.address', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='balance', full_name='qrl.AddressState.balance', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='nonce', full_name='qrl.AddressState.nonce', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='pubhashes', full_name='qrl.AddressState.pubhashes', index=3,
      number=4, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transactions', full_name='qrl.AddressState.transactions', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1768,
  serialized_end=1890,
)


_BLOCKHEADER = _descriptor.Descriptor(
  name='BlockHeader',
  full_name='qrl.BlockHeader',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='block_number', full_name='qrl.BlockHeader.block_number', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='epoch', full_name='qrl.BlockHeader.epoch', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='qrl.BlockHeader.timestamp', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hash_header', full_name='qrl.BlockHeader.hash_header', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hash_header_prev', full_name='qrl.BlockHeader.hash_header_prev', index=4,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='reward_block', full_name='qrl.BlockHeader.reward_block', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='reward_fee', full_name='qrl.BlockHeader.reward_fee', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='merkle_root', full_name='qrl.BlockHeader.merkle_root', index=7,
      number=8, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hash_reveal', full_name='qrl.BlockHeader.hash_reveal', index=8,
      number=9, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stake_selector', full_name='qrl.BlockHeader.stake_selector', index=9,
      number=10, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1893,
  serialized_end=2133,
)


_BLOCK = _descriptor.Descriptor(
  name='Block',
  full_name='qrl.Block',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='header', full_name='qrl.Block.header', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transactions', full_name='qrl.Block.transactions', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dup_transactions', full_name='qrl.Block.dup_transactions', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2135,
  serialized_end=2260,
)


_BLOCKMETADATALIST = _descriptor.Descriptor(
  name='BlockMetaDataList',
  full_name='qrl.BlockMetaDataList',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='block_number_hashes', full_name='qrl.BlockMetaDataList.block_number_hashes', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2262,
  serialized_end=2330,
)


_BLOCKMETADATA = _descriptor.Descriptor(
  name='BlockMetaData',
  full_name='qrl.BlockMetaData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='block_number', full_name='qrl.BlockMetaData.block_number', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hash_header', full_name='qrl.BlockMetaData.hash_header', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2332,
  serialized_end=2390,
)


_MR = _descriptor.Descriptor(
  name='MR',
  full_name='qrl.MR',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hash', full_name='qrl.MR.hash', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='type', full_name='qrl.MR.type', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stake_selector', full_name='qrl.MR.stake_selector', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='block_number', full_name='qrl.MR.block_number', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='prev_headerhash', full_name='qrl.MR.prev_headerhash', index=4,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='reveal_hash', full_name='qrl.MR.reveal_hash', index=5,
      number=6, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2392,
  serialized_end=2516,
)


_TRANSACTION_TRANSFER = _descriptor.Descriptor(
  name='Transfer',
  full_name='qrl.Transaction.Transfer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='addr_to', full_name='qrl.Transaction.Transfer.addr_to', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='amount', full_name='qrl.Transaction.Transfer.amount', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='fee', full_name='qrl.Transaction.Transfer.fee', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2927,
  serialized_end=2983,
)

_TRANSACTION_STAKE = _descriptor.Descriptor(
  name='Stake',
  full_name='qrl.Transaction.Stake',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='balance', full_name='qrl.Transaction.Stake.balance', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='activation_blocknumber', full_name='qrl.Transaction.Stake.activation_blocknumber', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='finalized_blocknumber', full_name='qrl.Transaction.Stake.finalized_blocknumber', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='finalized_headerhash', full_name='qrl.Transaction.Stake.finalized_headerhash', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='slavePK', full_name='qrl.Transaction.Stake.slavePK', index=4,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hash', full_name='qrl.Transaction.Stake.hash', index=5,
      number=7, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2986,
  serialized_end=3134,
)

_TRANSACTION_DESTAKE = _descriptor.Descriptor(
  name='Destake',
  full_name='qrl.Transaction.Destake',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3136,
  serialized_end=3145,
)

_TRANSACTION_COINBASE = _descriptor.Descriptor(
  name='CoinBase',
  full_name='qrl.Transaction.CoinBase',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='addr_to', full_name='qrl.Transaction.CoinBase.addr_to', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='amount', full_name='qrl.Transaction.CoinBase.amount', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3147,
  serialized_end=3190,
)

_TRANSACTION_LATTICEPUBLICKEY = _descriptor.Descriptor(
  name='LatticePublicKey',
  full_name='qrl.Transaction.LatticePublicKey',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pk_kyber', full_name='qrl.Transaction.LatticePublicKey.pk_kyber', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='pk_tesla', full_name='qrl.Transaction.LatticePublicKey.pk_tesla', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3192,
  serialized_end=3246,
)

_TRANSACTION_DUPLICATE = _descriptor.Descriptor(
  name='Duplicate',
  full_name='qrl.Transaction.Duplicate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='block_number', full_name='qrl.Transaction.Duplicate.block_number', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='prev_header_hash', full_name='qrl.Transaction.Duplicate.prev_header_hash', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coinbase1_hhash', full_name='qrl.Transaction.Duplicate.coinbase1_hhash', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coinbase2_hhash', full_name='qrl.Transaction.Duplicate.coinbase2_hhash', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coinbase1', full_name='qrl.Transaction.Duplicate.coinbase1', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coinbase2', full_name='qrl.Transaction.Duplicate.coinbase2', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3249,
  serialized_end=3432,
)

_TRANSACTION = _descriptor.Descriptor(
  name='Transaction',
  full_name='qrl.Transaction',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='qrl.Transaction.type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='nonce', full_name='qrl.Transaction.nonce', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='addr_from', full_name='qrl.Transaction.addr_from', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='public_key', full_name='qrl.Transaction.public_key', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transaction_hash', full_name='qrl.Transaction.transaction_hash', index=4,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='ots_key', full_name='qrl.Transaction.ots_key', index=5,
      number=6, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='signature', full_name='qrl.Transaction.signature', index=6,
      number=7, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transfer', full_name='qrl.Transaction.transfer', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stake', full_name='qrl.Transaction.stake', index=8,
      number=9, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coinbase', full_name='qrl.Transaction.coinbase', index=9,
      number=10, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='latticePK', full_name='qrl.Transaction.latticePK', index=10,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='duplicate', full_name='qrl.Transaction.duplicate', index=11,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[_TRANSACTION_TRANSFER, _TRANSACTION_STAKE, _TRANSACTION_DESTAKE, _TRANSACTION_COINBASE, _TRANSACTION_LATTICEPUBLICKEY, _TRANSACTION_DUPLICATE, ],
  enum_types=[
    _TRANSACTION_TYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='transactionType', full_name='qrl.Transaction.transactionType',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2519,
  serialized_end=3552,
)

_GETKNOWNPEERSRESP.fields_by_name['known_peers'].message_type = _KNOWNPEERS
_GETSTATSRESP.fields_by_name['node_info'].message_type = _NODEINFO
_GETNODESTATERESP.fields_by_name['info'].message_type = _NODEINFO
_GETADDRESSSTATERESP.fields_by_name['state'].message_type = _ADDRESSSTATE
_GETOBJECTRESP.fields_by_name['address_state'].message_type = _ADDRESSSTATE
_GETOBJECTRESP.fields_by_name['transaction'].message_type = _TRANSACTION
_GETOBJECTRESP.fields_by_name['block'].message_type = _BLOCK
_GETOBJECTRESP.oneofs_by_name['result'].fields.append(
  _GETOBJECTRESP.fields_by_name['address_state'])
_GETOBJECTRESP.fields_by_name['address_state'].containing_oneof = _GETOBJECTRESP.oneofs_by_name['result']
_GETOBJECTRESP.oneofs_by_name['result'].fields.append(
  _GETOBJECTRESP.fields_by_name['transaction'])
_GETOBJECTRESP.fields_by_name['transaction'].containing_oneof = _GETOBJECTRESP.oneofs_by_name['result']
_GETOBJECTRESP.oneofs_by_name['result'].fields.append(
  _GETOBJECTRESP.fields_by_name['block'])
_GETOBJECTRESP.fields_by_name['block'].containing_oneof = _GETOBJECTRESP.oneofs_by_name['result']
_GETLATESTDATARESP.fields_by_name['blocks'].message_type = _BLOCK
_GETLATESTDATARESP.fields_by_name['transactions'].message_type = _TRANSACTION
_GETLATESTDATARESP.fields_by_name['transactions_unconfirmed'].message_type = _TRANSACTION
_TRANSFERCOINSRESP.fields_by_name['transaction_unsigned'].message_type = _TRANSACTION
_PUSHTRANSACTIONREQ.fields_by_name['transaction_signed'].message_type = _TRANSACTION
_NODEINFO.fields_by_name['state'].enum_type = _NODEINFO_STATE
_NODEINFO_STATE.containing_type = _NODEINFO
_WALLETSTORE.fields_by_name['wallets'].message_type = _WALLET
_KNOWNPEERS.fields_by_name['peers'].message_type = _PEER
_ADDRESSSTATE.fields_by_name['transactions'].message_type = _TRANSACTION
_BLOCKHEADER.fields_by_name['timestamp'].message_type = _TIMESTAMP
_BLOCK.fields_by_name['header'].message_type = _BLOCKHEADER
_BLOCK.fields_by_name['transactions'].message_type = _TRANSACTION
_BLOCK.fields_by_name['dup_transactions'].message_type = _TRANSACTION
_BLOCKMETADATALIST.fields_by_name['block_number_hashes'].message_type = _BLOCKMETADATA
_TRANSACTION_TRANSFER.containing_type = _TRANSACTION
_TRANSACTION_STAKE.containing_type = _TRANSACTION
_TRANSACTION_DESTAKE.containing_type = _TRANSACTION
_TRANSACTION_COINBASE.containing_type = _TRANSACTION
_TRANSACTION_LATTICEPUBLICKEY.containing_type = _TRANSACTION
_TRANSACTION_DUPLICATE.fields_by_name['coinbase1'].message_type = _TRANSACTION
_TRANSACTION_DUPLICATE.fields_by_name['coinbase2'].message_type = _TRANSACTION
_TRANSACTION_DUPLICATE.containing_type = _TRANSACTION
_TRANSACTION.fields_by_name['type'].enum_type = _TRANSACTION_TYPE
_TRANSACTION.fields_by_name['transfer'].message_type = _TRANSACTION_TRANSFER
_TRANSACTION.fields_by_name['stake'].message_type = _TRANSACTION_STAKE
_TRANSACTION.fields_by_name['coinbase'].message_type = _TRANSACTION_COINBASE
_TRANSACTION.fields_by_name['latticePK'].message_type = _TRANSACTION_LATTICEPUBLICKEY
_TRANSACTION.fields_by_name['duplicate'].message_type = _TRANSACTION_DUPLICATE
_TRANSACTION_TYPE.containing_type = _TRANSACTION
_TRANSACTION.oneofs_by_name['transactionType'].fields.append(
  _TRANSACTION.fields_by_name['transfer'])
_TRANSACTION.fields_by_name['transfer'].containing_oneof = _TRANSACTION.oneofs_by_name['transactionType']
_TRANSACTION.oneofs_by_name['transactionType'].fields.append(
  _TRANSACTION.fields_by_name['stake'])
_TRANSACTION.fields_by_name['stake'].containing_oneof = _TRANSACTION.oneofs_by_name['transactionType']
_TRANSACTION.oneofs_by_name['transactionType'].fields.append(
  _TRANSACTION.fields_by_name['coinbase'])
_TRANSACTION.fields_by_name['coinbase'].containing_oneof = _TRANSACTION.oneofs_by_name['transactionType']
_TRANSACTION.oneofs_by_name['transactionType'].fields.append(
  _TRANSACTION.fields_by_name['latticePK'])
_TRANSACTION.fields_by_name['latticePK'].containing_oneof = _TRANSACTION.oneofs_by_name['transactionType']
_TRANSACTION.oneofs_by_name['transactionType'].fields.append(
  _TRANSACTION.fields_by_name['duplicate'])
_TRANSACTION.fields_by_name['duplicate'].containing_oneof = _TRANSACTION.oneofs_by_name['transactionType']
DESCRIPTOR.message_types_by_name['Timestamp'] = _TIMESTAMP
DESCRIPTOR.message_types_by_name['PingReq'] = _PINGREQ
DESCRIPTOR.message_types_by_name['PongResp'] = _PONGRESP
DESCRIPTOR.message_types_by_name['GetKnownPeersReq'] = _GETKNOWNPEERSREQ
DESCRIPTOR.message_types_by_name['GetKnownPeersResp'] = _GETKNOWNPEERSRESP
DESCRIPTOR.message_types_by_name['GetStatsReq'] = _GETSTATSREQ
DESCRIPTOR.message_types_by_name['GetStatsResp'] = _GETSTATSRESP
DESCRIPTOR.message_types_by_name['GetNodeStateReq'] = _GETNODESTATEREQ
DESCRIPTOR.message_types_by_name['GetNodeStateResp'] = _GETNODESTATERESP
DESCRIPTOR.message_types_by_name['GetAddressStateReq'] = _GETADDRESSSTATEREQ
DESCRIPTOR.message_types_by_name['GetAddressStateResp'] = _GETADDRESSSTATERESP
DESCRIPTOR.message_types_by_name['GetObjectReq'] = _GETOBJECTREQ
DESCRIPTOR.message_types_by_name['GetObjectResp'] = _GETOBJECTRESP
DESCRIPTOR.message_types_by_name['GetLatestDataReq'] = _GETLATESTDATAREQ
DESCRIPTOR.message_types_by_name['GetLatestDataResp'] = _GETLATESTDATARESP
DESCRIPTOR.message_types_by_name['TransferCoinsReq'] = _TRANSFERCOINSREQ
DESCRIPTOR.message_types_by_name['TransferCoinsResp'] = _TRANSFERCOINSRESP
DESCRIPTOR.message_types_by_name['PushTransactionReq'] = _PUSHTRANSACTIONREQ
DESCRIPTOR.message_types_by_name['PushTransactionResp'] = _PUSHTRANSACTIONRESP
DESCRIPTOR.message_types_by_name['NodeInfo'] = _NODEINFO
DESCRIPTOR.message_types_by_name['WalletStore'] = _WALLETSTORE
DESCRIPTOR.message_types_by_name['Wallet'] = _WALLET
DESCRIPTOR.message_types_by_name['KnownPeers'] = _KNOWNPEERS
DESCRIPTOR.message_types_by_name['Peer'] = _PEER
DESCRIPTOR.message_types_by_name['AddressState'] = _ADDRESSSTATE
DESCRIPTOR.message_types_by_name['BlockHeader'] = _BLOCKHEADER
DESCRIPTOR.message_types_by_name['Block'] = _BLOCK
DESCRIPTOR.message_types_by_name['BlockMetaDataList'] = _BLOCKMETADATALIST
DESCRIPTOR.message_types_by_name['BlockMetaData'] = _BLOCKMETADATA
DESCRIPTOR.message_types_by_name['MR'] = _MR
DESCRIPTOR.message_types_by_name['Transaction'] = _TRANSACTION
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Timestamp = _reflection.GeneratedProtocolMessageType('Timestamp', (_message.Message,), dict(
  DESCRIPTOR = _TIMESTAMP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.Timestamp)
  ))
_sym_db.RegisterMessage(Timestamp)

PingReq = _reflection.GeneratedProtocolMessageType('PingReq', (_message.Message,), dict(
  DESCRIPTOR = _PINGREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.PingReq)
  ))
_sym_db.RegisterMessage(PingReq)

PongResp = _reflection.GeneratedProtocolMessageType('PongResp', (_message.Message,), dict(
  DESCRIPTOR = _PONGRESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.PongResp)
  ))
_sym_db.RegisterMessage(PongResp)

GetKnownPeersReq = _reflection.GeneratedProtocolMessageType('GetKnownPeersReq', (_message.Message,), dict(
  DESCRIPTOR = _GETKNOWNPEERSREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetKnownPeersReq)
  ))
_sym_db.RegisterMessage(GetKnownPeersReq)

GetKnownPeersResp = _reflection.GeneratedProtocolMessageType('GetKnownPeersResp', (_message.Message,), dict(
  DESCRIPTOR = _GETKNOWNPEERSRESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetKnownPeersResp)
  ))
_sym_db.RegisterMessage(GetKnownPeersResp)

GetStatsReq = _reflection.GeneratedProtocolMessageType('GetStatsReq', (_message.Message,), dict(
  DESCRIPTOR = _GETSTATSREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetStatsReq)
  ))
_sym_db.RegisterMessage(GetStatsReq)

GetStatsResp = _reflection.GeneratedProtocolMessageType('GetStatsResp', (_message.Message,), dict(
  DESCRIPTOR = _GETSTATSRESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetStatsResp)
  ))
_sym_db.RegisterMessage(GetStatsResp)

GetNodeStateReq = _reflection.GeneratedProtocolMessageType('GetNodeStateReq', (_message.Message,), dict(
  DESCRIPTOR = _GETNODESTATEREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetNodeStateReq)
  ))
_sym_db.RegisterMessage(GetNodeStateReq)

GetNodeStateResp = _reflection.GeneratedProtocolMessageType('GetNodeStateResp', (_message.Message,), dict(
  DESCRIPTOR = _GETNODESTATERESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetNodeStateResp)
  ))
_sym_db.RegisterMessage(GetNodeStateResp)

GetAddressStateReq = _reflection.GeneratedProtocolMessageType('GetAddressStateReq', (_message.Message,), dict(
  DESCRIPTOR = _GETADDRESSSTATEREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetAddressStateReq)
  ))
_sym_db.RegisterMessage(GetAddressStateReq)

GetAddressStateResp = _reflection.GeneratedProtocolMessageType('GetAddressStateResp', (_message.Message,), dict(
  DESCRIPTOR = _GETADDRESSSTATERESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetAddressStateResp)
  ))
_sym_db.RegisterMessage(GetAddressStateResp)

GetObjectReq = _reflection.GeneratedProtocolMessageType('GetObjectReq', (_message.Message,), dict(
  DESCRIPTOR = _GETOBJECTREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetObjectReq)
  ))
_sym_db.RegisterMessage(GetObjectReq)

GetObjectResp = _reflection.GeneratedProtocolMessageType('GetObjectResp', (_message.Message,), dict(
  DESCRIPTOR = _GETOBJECTRESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetObjectResp)
  ))
_sym_db.RegisterMessage(GetObjectResp)

GetLatestDataReq = _reflection.GeneratedProtocolMessageType('GetLatestDataReq', (_message.Message,), dict(
  DESCRIPTOR = _GETLATESTDATAREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetLatestDataReq)
  ))
_sym_db.RegisterMessage(GetLatestDataReq)

GetLatestDataResp = _reflection.GeneratedProtocolMessageType('GetLatestDataResp', (_message.Message,), dict(
  DESCRIPTOR = _GETLATESTDATARESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.GetLatestDataResp)
  ))
_sym_db.RegisterMessage(GetLatestDataResp)

TransferCoinsReq = _reflection.GeneratedProtocolMessageType('TransferCoinsReq', (_message.Message,), dict(
  DESCRIPTOR = _TRANSFERCOINSREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.TransferCoinsReq)
  ))
_sym_db.RegisterMessage(TransferCoinsReq)

TransferCoinsResp = _reflection.GeneratedProtocolMessageType('TransferCoinsResp', (_message.Message,), dict(
  DESCRIPTOR = _TRANSFERCOINSRESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.TransferCoinsResp)
  ))
_sym_db.RegisterMessage(TransferCoinsResp)

PushTransactionReq = _reflection.GeneratedProtocolMessageType('PushTransactionReq', (_message.Message,), dict(
  DESCRIPTOR = _PUSHTRANSACTIONREQ,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.PushTransactionReq)
  ))
_sym_db.RegisterMessage(PushTransactionReq)

PushTransactionResp = _reflection.GeneratedProtocolMessageType('PushTransactionResp', (_message.Message,), dict(
  DESCRIPTOR = _PUSHTRANSACTIONRESP,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.PushTransactionResp)
  ))
_sym_db.RegisterMessage(PushTransactionResp)

NodeInfo = _reflection.GeneratedProtocolMessageType('NodeInfo', (_message.Message,), dict(
  DESCRIPTOR = _NODEINFO,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.NodeInfo)
  ))
_sym_db.RegisterMessage(NodeInfo)

WalletStore = _reflection.GeneratedProtocolMessageType('WalletStore', (_message.Message,), dict(
  DESCRIPTOR = _WALLETSTORE,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.WalletStore)
  ))
_sym_db.RegisterMessage(WalletStore)

Wallet = _reflection.GeneratedProtocolMessageType('Wallet', (_message.Message,), dict(
  DESCRIPTOR = _WALLET,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.Wallet)
  ))
_sym_db.RegisterMessage(Wallet)

KnownPeers = _reflection.GeneratedProtocolMessageType('KnownPeers', (_message.Message,), dict(
  DESCRIPTOR = _KNOWNPEERS,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.KnownPeers)
  ))
_sym_db.RegisterMessage(KnownPeers)

Peer = _reflection.GeneratedProtocolMessageType('Peer', (_message.Message,), dict(
  DESCRIPTOR = _PEER,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.Peer)
  ))
_sym_db.RegisterMessage(Peer)

AddressState = _reflection.GeneratedProtocolMessageType('AddressState', (_message.Message,), dict(
  DESCRIPTOR = _ADDRESSSTATE,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.AddressState)
  ))
_sym_db.RegisterMessage(AddressState)

BlockHeader = _reflection.GeneratedProtocolMessageType('BlockHeader', (_message.Message,), dict(
  DESCRIPTOR = _BLOCKHEADER,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.BlockHeader)
  ))
_sym_db.RegisterMessage(BlockHeader)

Block = _reflection.GeneratedProtocolMessageType('Block', (_message.Message,), dict(
  DESCRIPTOR = _BLOCK,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.Block)
  ))
_sym_db.RegisterMessage(Block)

BlockMetaDataList = _reflection.GeneratedProtocolMessageType('BlockMetaDataList', (_message.Message,), dict(
  DESCRIPTOR = _BLOCKMETADATALIST,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.BlockMetaDataList)
  ))
_sym_db.RegisterMessage(BlockMetaDataList)

BlockMetaData = _reflection.GeneratedProtocolMessageType('BlockMetaData', (_message.Message,), dict(
  DESCRIPTOR = _BLOCKMETADATA,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.BlockMetaData)
  ))
_sym_db.RegisterMessage(BlockMetaData)

MR = _reflection.GeneratedProtocolMessageType('MR', (_message.Message,), dict(
  DESCRIPTOR = _MR,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.MR)
  ))
_sym_db.RegisterMessage(MR)

Transaction = _reflection.GeneratedProtocolMessageType('Transaction', (_message.Message,), dict(

  Transfer = _reflection.GeneratedProtocolMessageType('Transfer', (_message.Message,), dict(
    DESCRIPTOR = _TRANSACTION_TRANSFER,
    __module__ = 'qrl_pb2'
    # @@protoc_insertion_point(class_scope:qrl.Transaction.Transfer)
    ))
  ,

  Stake = _reflection.GeneratedProtocolMessageType('Stake', (_message.Message,), dict(
    DESCRIPTOR = _TRANSACTION_STAKE,
    __module__ = 'qrl_pb2'
    # @@protoc_insertion_point(class_scope:qrl.Transaction.Stake)
    ))
  ,

  Destake = _reflection.GeneratedProtocolMessageType('Destake', (_message.Message,), dict(
    DESCRIPTOR = _TRANSACTION_DESTAKE,
    __module__ = 'qrl_pb2'
    # @@protoc_insertion_point(class_scope:qrl.Transaction.Destake)
    ))
  ,

  CoinBase = _reflection.GeneratedProtocolMessageType('CoinBase', (_message.Message,), dict(
    DESCRIPTOR = _TRANSACTION_COINBASE,
    __module__ = 'qrl_pb2'
    # @@protoc_insertion_point(class_scope:qrl.Transaction.CoinBase)
    ))
  ,

  LatticePublicKey = _reflection.GeneratedProtocolMessageType('LatticePublicKey', (_message.Message,), dict(
    DESCRIPTOR = _TRANSACTION_LATTICEPUBLICKEY,
    __module__ = 'qrl_pb2'
    # @@protoc_insertion_point(class_scope:qrl.Transaction.LatticePublicKey)
    ))
  ,

  Duplicate = _reflection.GeneratedProtocolMessageType('Duplicate', (_message.Message,), dict(
    DESCRIPTOR = _TRANSACTION_DUPLICATE,
    __module__ = 'qrl_pb2'
    # @@protoc_insertion_point(class_scope:qrl.Transaction.Duplicate)
    ))
  ,
  DESCRIPTOR = _TRANSACTION,
  __module__ = 'qrl_pb2'
  # @@protoc_insertion_point(class_scope:qrl.Transaction)
  ))
_sym_db.RegisterMessage(Transaction)
_sym_db.RegisterMessage(Transaction.Transfer)
_sym_db.RegisterMessage(Transaction.Stake)
_sym_db.RegisterMessage(Transaction.Destake)
_sym_db.RegisterMessage(Transaction.CoinBase)
_sym_db.RegisterMessage(Transaction.LatticePublicKey)
_sym_db.RegisterMessage(Transaction.Duplicate)



_P2PNODE = _descriptor.ServiceDescriptor(
  name='P2PNode',
  full_name='qrl.P2PNode',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=3554,
  serialized_end=3666,
  methods=[
  _descriptor.MethodDescriptor(
    name='Ping',
    full_name='qrl.P2PNode.Ping',
    index=0,
    containing_service=None,
    input_type=_PINGREQ,
    output_type=_PONGRESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetKnownPeers',
    full_name='qrl.P2PNode.GetKnownPeers',
    index=1,
    containing_service=None,
    input_type=_GETKNOWNPEERSREQ,
    output_type=_GETKNOWNPEERSRESP,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_P2PNODE)

DESCRIPTOR.services_by_name['P2PNode'] = _P2PNODE


_PUBLICAPI = _descriptor.ServiceDescriptor(
  name='PublicAPI',
  full_name='qrl.PublicAPI',
  file=DESCRIPTOR,
  index=1,
  options=None,
  serialized_start=3669,
  serialized_end=4174,
  methods=[
  _descriptor.MethodDescriptor(
    name='GetNodeState',
    full_name='qrl.PublicAPI.GetNodeState',
    index=0,
    containing_service=None,
    input_type=_GETNODESTATEREQ,
    output_type=_GETNODESTATERESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetStats',
    full_name='qrl.PublicAPI.GetStats',
    index=1,
    containing_service=None,
    input_type=_GETSTATSREQ,
    output_type=_GETSTATSRESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetKnownPeers',
    full_name='qrl.PublicAPI.GetKnownPeers',
    index=2,
    containing_service=None,
    input_type=_GETKNOWNPEERSREQ,
    output_type=_GETKNOWNPEERSRESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAddressState',
    full_name='qrl.PublicAPI.GetAddressState',
    index=3,
    containing_service=None,
    input_type=_GETADDRESSSTATEREQ,
    output_type=_GETADDRESSSTATERESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetObject',
    full_name='qrl.PublicAPI.GetObject',
    index=4,
    containing_service=None,
    input_type=_GETOBJECTREQ,
    output_type=_GETOBJECTRESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetLatestData',
    full_name='qrl.PublicAPI.GetLatestData',
    index=5,
    containing_service=None,
    input_type=_GETLATESTDATAREQ,
    output_type=_GETLATESTDATARESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='TransferCoins',
    full_name='qrl.PublicAPI.TransferCoins',
    index=6,
    containing_service=None,
    input_type=_TRANSFERCOINSREQ,
    output_type=_TRANSFERCOINSRESP,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='PushTransaction',
    full_name='qrl.PublicAPI.PushTransaction',
    index=7,
    containing_service=None,
    input_type=_PUSHTRANSACTIONREQ,
    output_type=_PUSHTRANSACTIONRESP,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_PUBLICAPI)

DESCRIPTOR.services_by_name['PublicAPI'] = _PUBLICAPI


_ADMINAPI = _descriptor.ServiceDescriptor(
  name='AdminAPI',
  full_name='qrl.AdminAPI',
  file=DESCRIPTOR,
  index=2,
  options=None,
  serialized_start=4176,
  serialized_end=4186,
  methods=[
])
_sym_db.RegisterServiceDescriptor(_ADMINAPI)

DESCRIPTOR.services_by_name['AdminAPI'] = _ADMINAPI

try:
  # THESE ELEMENTS WILL BE DEPRECATED.
  # Please use the generated *_pb2_grpc.py files instead.
  import grpc
  from grpc.beta import implementations as beta_implementations
  from grpc.beta import interfaces as beta_interfaces
  from grpc.framework.common import cardinality
  from grpc.framework.interfaces.face import utilities as face_utilities


  class P2PNodeStub(object):
    """//////////////////////////
    //////////////////////////
    //////////////////////////
    ////     API       ///////
    //////////////////////////
    //////////////////////////
    //////////////////////////

    This service describes the P2P API
    """

    def __init__(self, channel):
      """Constructor.

      Args:
        channel: A grpc.Channel.
      """
      self.Ping = channel.unary_unary(
          '/qrl.P2PNode/Ping',
          request_serializer=PingReq.SerializeToString,
          response_deserializer=PongResp.FromString,
          )
      self.GetKnownPeers = channel.unary_unary(
          '/qrl.P2PNode/GetKnownPeers',
          request_serializer=GetKnownPeersReq.SerializeToString,
          response_deserializer=GetKnownPeersResp.FromString,
          )


  class P2PNodeServicer(object):
    """//////////////////////////
    //////////////////////////
    //////////////////////////
    ////     API       ///////
    //////////////////////////
    //////////////////////////
    //////////////////////////

    This service describes the P2P API
    """

    def Ping(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetKnownPeers(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_P2PNodeServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Ping': grpc.unary_unary_rpc_method_handler(
            servicer.Ping,
            request_deserializer=PingReq.FromString,
            response_serializer=PongResp.SerializeToString,
        ),
        'GetKnownPeers': grpc.unary_unary_rpc_method_handler(
            servicer.GetKnownPeers,
            request_deserializer=GetKnownPeersReq.FromString,
            response_serializer=GetKnownPeersResp.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'qrl.P2PNode', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class PublicAPIStub(object):
    """This service describes the Public API used by clients (wallet/cli/etc)
    """

    def __init__(self, channel):
      """Constructor.

      Args:
        channel: A grpc.Channel.
      """
      self.GetNodeState = channel.unary_unary(
          '/qrl.PublicAPI/GetNodeState',
          request_serializer=GetNodeStateReq.SerializeToString,
          response_deserializer=GetNodeStateResp.FromString,
          )
      self.GetStats = channel.unary_unary(
          '/qrl.PublicAPI/GetStats',
          request_serializer=GetStatsReq.SerializeToString,
          response_deserializer=GetStatsResp.FromString,
          )
      self.GetKnownPeers = channel.unary_unary(
          '/qrl.PublicAPI/GetKnownPeers',
          request_serializer=GetKnownPeersReq.SerializeToString,
          response_deserializer=GetKnownPeersResp.FromString,
          )
      self.GetAddressState = channel.unary_unary(
          '/qrl.PublicAPI/GetAddressState',
          request_serializer=GetAddressStateReq.SerializeToString,
          response_deserializer=GetAddressStateResp.FromString,
          )
      self.GetObject = channel.unary_unary(
          '/qrl.PublicAPI/GetObject',
          request_serializer=GetObjectReq.SerializeToString,
          response_deserializer=GetObjectResp.FromString,
          )
      self.GetLatestData = channel.unary_unary(
          '/qrl.PublicAPI/GetLatestData',
          request_serializer=GetLatestDataReq.SerializeToString,
          response_deserializer=GetLatestDataResp.FromString,
          )
      self.TransferCoins = channel.unary_unary(
          '/qrl.PublicAPI/TransferCoins',
          request_serializer=TransferCoinsReq.SerializeToString,
          response_deserializer=TransferCoinsResp.FromString,
          )
      self.PushTransaction = channel.unary_unary(
          '/qrl.PublicAPI/PushTransaction',
          request_serializer=PushTransactionReq.SerializeToString,
          response_deserializer=PushTransactionResp.FromString,
          )


  class PublicAPIServicer(object):
    """This service describes the Public API used by clients (wallet/cli/etc)
    """

    def GetNodeState(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetStats(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetKnownPeers(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetAddressState(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetObject(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetLatestData(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def TransferCoins(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def PushTransaction(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_PublicAPIServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'GetNodeState': grpc.unary_unary_rpc_method_handler(
            servicer.GetNodeState,
            request_deserializer=GetNodeStateReq.FromString,
            response_serializer=GetNodeStateResp.SerializeToString,
        ),
        'GetStats': grpc.unary_unary_rpc_method_handler(
            servicer.GetStats,
            request_deserializer=GetStatsReq.FromString,
            response_serializer=GetStatsResp.SerializeToString,
        ),
        'GetKnownPeers': grpc.unary_unary_rpc_method_handler(
            servicer.GetKnownPeers,
            request_deserializer=GetKnownPeersReq.FromString,
            response_serializer=GetKnownPeersResp.SerializeToString,
        ),
        'GetAddressState': grpc.unary_unary_rpc_method_handler(
            servicer.GetAddressState,
            request_deserializer=GetAddressStateReq.FromString,
            response_serializer=GetAddressStateResp.SerializeToString,
        ),
        'GetObject': grpc.unary_unary_rpc_method_handler(
            servicer.GetObject,
            request_deserializer=GetObjectReq.FromString,
            response_serializer=GetObjectResp.SerializeToString,
        ),
        'GetLatestData': grpc.unary_unary_rpc_method_handler(
            servicer.GetLatestData,
            request_deserializer=GetLatestDataReq.FromString,
            response_serializer=GetLatestDataResp.SerializeToString,
        ),
        'TransferCoins': grpc.unary_unary_rpc_method_handler(
            servicer.TransferCoins,
            request_deserializer=TransferCoinsReq.FromString,
            response_serializer=TransferCoinsResp.SerializeToString,
        ),
        'PushTransaction': grpc.unary_unary_rpc_method_handler(
            servicer.PushTransaction,
            request_deserializer=PushTransactionReq.FromString,
            response_serializer=PushTransactionResp.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'qrl.PublicAPI', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class AdminAPIStub(object):
    """This is a place holder for testing/instrumentation APIs
    """

    def __init__(self, channel):
      """Constructor.

      Args:
        channel: A grpc.Channel.
      """


  class AdminAPIServicer(object):
    """This is a place holder for testing/instrumentation APIs
    """


  def add_AdminAPIServicer_to_server(servicer, server):
    rpc_method_handlers = {
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'qrl.AdminAPI', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class BetaP2PNodeServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """//////////////////////////
    //////////////////////////
    //////////////////////////
    ////     API       ///////
    //////////////////////////
    //////////////////////////
    //////////////////////////

    This service describes the P2P API
    """
    def Ping(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetKnownPeers(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaP2PNodeStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """//////////////////////////
    //////////////////////////
    //////////////////////////
    ////     API       ///////
    //////////////////////////
    //////////////////////////
    //////////////////////////

    This service describes the P2P API
    """
    def Ping(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    Ping.future = None
    def GetKnownPeers(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetKnownPeers.future = None


  def beta_create_P2PNode_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('qrl.P2PNode', 'GetKnownPeers'): GetKnownPeersReq.FromString,
      ('qrl.P2PNode', 'Ping'): PingReq.FromString,
    }
    response_serializers = {
      ('qrl.P2PNode', 'GetKnownPeers'): GetKnownPeersResp.SerializeToString,
      ('qrl.P2PNode', 'Ping'): PongResp.SerializeToString,
    }
    method_implementations = {
      ('qrl.P2PNode', 'GetKnownPeers'): face_utilities.unary_unary_inline(servicer.GetKnownPeers),
      ('qrl.P2PNode', 'Ping'): face_utilities.unary_unary_inline(servicer.Ping),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_P2PNode_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('qrl.P2PNode', 'GetKnownPeers'): GetKnownPeersReq.SerializeToString,
      ('qrl.P2PNode', 'Ping'): PingReq.SerializeToString,
    }
    response_deserializers = {
      ('qrl.P2PNode', 'GetKnownPeers'): GetKnownPeersResp.FromString,
      ('qrl.P2PNode', 'Ping'): PongResp.FromString,
    }
    cardinalities = {
      'GetKnownPeers': cardinality.Cardinality.UNARY_UNARY,
      'Ping': cardinality.Cardinality.UNARY_UNARY,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'qrl.P2PNode', cardinalities, options=stub_options)


  class BetaPublicAPIServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """This service describes the Public API used by clients (wallet/cli/etc)
    """
    def GetNodeState(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetStats(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetKnownPeers(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetAddressState(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetObject(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetLatestData(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def TransferCoins(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def PushTransaction(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaPublicAPIStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """This service describes the Public API used by clients (wallet/cli/etc)
    """
    def GetNodeState(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetNodeState.future = None
    def GetStats(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetStats.future = None
    def GetKnownPeers(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetKnownPeers.future = None
    def GetAddressState(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetAddressState.future = None
    def GetObject(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetObject.future = None
    def GetLatestData(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetLatestData.future = None
    def TransferCoins(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    TransferCoins.future = None
    def PushTransaction(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    PushTransaction.future = None


  def beta_create_PublicAPI_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('qrl.PublicAPI', 'GetAddressState'): GetAddressStateReq.FromString,
      ('qrl.PublicAPI', 'GetKnownPeers'): GetKnownPeersReq.FromString,
      ('qrl.PublicAPI', 'GetLatestData'): GetLatestDataReq.FromString,
      ('qrl.PublicAPI', 'GetNodeState'): GetNodeStateReq.FromString,
      ('qrl.PublicAPI', 'GetObject'): GetObjectReq.FromString,
      ('qrl.PublicAPI', 'GetStats'): GetStatsReq.FromString,
      ('qrl.PublicAPI', 'PushTransaction'): PushTransactionReq.FromString,
      ('qrl.PublicAPI', 'TransferCoins'): TransferCoinsReq.FromString,
    }
    response_serializers = {
      ('qrl.PublicAPI', 'GetAddressState'): GetAddressStateResp.SerializeToString,
      ('qrl.PublicAPI', 'GetKnownPeers'): GetKnownPeersResp.SerializeToString,
      ('qrl.PublicAPI', 'GetLatestData'): GetLatestDataResp.SerializeToString,
      ('qrl.PublicAPI', 'GetNodeState'): GetNodeStateResp.SerializeToString,
      ('qrl.PublicAPI', 'GetObject'): GetObjectResp.SerializeToString,
      ('qrl.PublicAPI', 'GetStats'): GetStatsResp.SerializeToString,
      ('qrl.PublicAPI', 'PushTransaction'): PushTransactionResp.SerializeToString,
      ('qrl.PublicAPI', 'TransferCoins'): TransferCoinsResp.SerializeToString,
    }
    method_implementations = {
      ('qrl.PublicAPI', 'GetAddressState'): face_utilities.unary_unary_inline(servicer.GetAddressState),
      ('qrl.PublicAPI', 'GetKnownPeers'): face_utilities.unary_unary_inline(servicer.GetKnownPeers),
      ('qrl.PublicAPI', 'GetLatestData'): face_utilities.unary_unary_inline(servicer.GetLatestData),
      ('qrl.PublicAPI', 'GetNodeState'): face_utilities.unary_unary_inline(servicer.GetNodeState),
      ('qrl.PublicAPI', 'GetObject'): face_utilities.unary_unary_inline(servicer.GetObject),
      ('qrl.PublicAPI', 'GetStats'): face_utilities.unary_unary_inline(servicer.GetStats),
      ('qrl.PublicAPI', 'PushTransaction'): face_utilities.unary_unary_inline(servicer.PushTransaction),
      ('qrl.PublicAPI', 'TransferCoins'): face_utilities.unary_unary_inline(servicer.TransferCoins),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_PublicAPI_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('qrl.PublicAPI', 'GetAddressState'): GetAddressStateReq.SerializeToString,
      ('qrl.PublicAPI', 'GetKnownPeers'): GetKnownPeersReq.SerializeToString,
      ('qrl.PublicAPI', 'GetLatestData'): GetLatestDataReq.SerializeToString,
      ('qrl.PublicAPI', 'GetNodeState'): GetNodeStateReq.SerializeToString,
      ('qrl.PublicAPI', 'GetObject'): GetObjectReq.SerializeToString,
      ('qrl.PublicAPI', 'GetStats'): GetStatsReq.SerializeToString,
      ('qrl.PublicAPI', 'PushTransaction'): PushTransactionReq.SerializeToString,
      ('qrl.PublicAPI', 'TransferCoins'): TransferCoinsReq.SerializeToString,
    }
    response_deserializers = {
      ('qrl.PublicAPI', 'GetAddressState'): GetAddressStateResp.FromString,
      ('qrl.PublicAPI', 'GetKnownPeers'): GetKnownPeersResp.FromString,
      ('qrl.PublicAPI', 'GetLatestData'): GetLatestDataResp.FromString,
      ('qrl.PublicAPI', 'GetNodeState'): GetNodeStateResp.FromString,
      ('qrl.PublicAPI', 'GetObject'): GetObjectResp.FromString,
      ('qrl.PublicAPI', 'GetStats'): GetStatsResp.FromString,
      ('qrl.PublicAPI', 'PushTransaction'): PushTransactionResp.FromString,
      ('qrl.PublicAPI', 'TransferCoins'): TransferCoinsResp.FromString,
    }
    cardinalities = {
      'GetAddressState': cardinality.Cardinality.UNARY_UNARY,
      'GetKnownPeers': cardinality.Cardinality.UNARY_UNARY,
      'GetLatestData': cardinality.Cardinality.UNARY_UNARY,
      'GetNodeState': cardinality.Cardinality.UNARY_UNARY,
      'GetObject': cardinality.Cardinality.UNARY_UNARY,
      'GetStats': cardinality.Cardinality.UNARY_UNARY,
      'PushTransaction': cardinality.Cardinality.UNARY_UNARY,
      'TransferCoins': cardinality.Cardinality.UNARY_UNARY,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'qrl.PublicAPI', cardinalities, options=stub_options)


  class BetaAdminAPIServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """This is a place holder for testing/instrumentation APIs
    """


  class BetaAdminAPIStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """This is a place holder for testing/instrumentation APIs
    """


  def beta_create_AdminAPI_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
    }
    response_serializers = {
    }
    method_implementations = {
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_AdminAPI_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
    }
    response_deserializers = {
    }
    cardinalities = {
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'qrl.AdminAPI', cardinalities, options=stub_options)
except ImportError:
  pass
# @@protoc_insertion_point(module_scope)
