hiero-sdk-python 0.0.1.dev2__tar.gz → 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/PKG-INFO +32 -2
  2. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/README.md +31 -1
  3. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/pyproject.toml +26 -5
  4. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/__init__.py +2 -0
  5. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/client/client.py +48 -3
  6. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/client/network.py +1 -1
  7. hiero_sdk_python-0.1.0/src/hiero_sdk_python/consensus/topic_message.py +176 -0
  8. hiero_sdk_python-0.1.0/src/hiero_sdk_python/crypto/private_key.py +152 -0
  9. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/crypto/public_key.py +57 -57
  10. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/mirror/consensus_service_pb2.py +44 -0
  11. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/mirror/consensus_service_pb2_grpc.py +106 -0
  12. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/mirror/mirror_network_service_pb2.py +41 -0
  13. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/mirror/mirror_network_service_pb2_grpc.py +108 -0
  14. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/address_book_service_pb2.py +41 -0
  15. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/address_book_service_pb2.pyi +8 -0
  16. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/address_book_service_pb2_grpc.py +444 -0
  17. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_encryption_key_pb2.py +37 -0
  18. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_encryption_key_pb2.pyi +11 -0
  19. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_encryption_key_pb2_grpc.py +24 -0
  20. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_message_pb2.py +37 -0
  21. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_message_pb2.pyi +17 -0
  22. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_message_pb2_grpc.py +24 -0
  23. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_share_signature_pb2.py +37 -0
  24. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_share_signature_pb2.pyi +17 -0
  25. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_share_signature_pb2_grpc.py +24 -0
  26. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_vote_pb2.py +37 -0
  27. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_vote_pb2.pyi +19 -0
  28. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/auxiliary/tss/tss_vote_pb2_grpc.py +24 -0
  29. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/basic_types_pb2.py +153 -0
  30. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/basic_types_pb2.pyi +694 -0
  31. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/basic_types_pb2_grpc.py +24 -0
  32. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_create_topic_pb2.py +39 -0
  33. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_create_topic_pb2.pyi +21 -0
  34. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_create_topic_pb2_grpc.py +24 -0
  35. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_delete_topic_pb2.py +38 -0
  36. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_delete_topic_pb2.pyi +12 -0
  37. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_delete_topic_pb2_grpc.py +24 -0
  38. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_get_topic_info_pb2.py +43 -0
  39. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_get_topic_info_pb2.pyi +27 -0
  40. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_get_topic_info_pb2_grpc.py +24 -0
  41. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_service_pb2.py +41 -0
  42. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_service_pb2.pyi +8 -0
  43. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_service_pb2_grpc.py +432 -0
  44. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_submit_message_pb2.py +40 -0
  45. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_submit_message_pb2.pyi +26 -0
  46. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_submit_message_pb2_grpc.py +24 -0
  47. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_topic_info_pb2.py +40 -0
  48. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_topic_info_pb2.pyi +30 -0
  49. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_topic_info_pb2_grpc.py +24 -0
  50. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_update_topic_pb2.py +41 -0
  51. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_update_topic_pb2.pyi +27 -0
  52. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/consensus_update_topic_pb2_grpc.py +24 -0
  53. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_call_local_pb2.py +52 -0
  54. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_call_local_pb2.pyi +79 -0
  55. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_call_local_pb2_grpc.py +24 -0
  56. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_call_pb2.py +38 -0
  57. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_call_pb2.pyi +18 -0
  58. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_call_pb2_grpc.py +24 -0
  59. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_create_pb2.py +41 -0
  60. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_create_pb2.pyi +45 -0
  61. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_create_pb2_grpc.py +24 -0
  62. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_delete_pb2.py +38 -0
  63. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_delete_pb2.pyi +18 -0
  64. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_delete_pb2_grpc.py +24 -0
  65. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_bytecode_pb2.py +42 -0
  66. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_bytecode_pb2.pyi +24 -0
  67. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_bytecode_pb2_grpc.py +24 -0
  68. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_info_pb2.py +48 -0
  69. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_info_pb2.pyi +60 -0
  70. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_info_pb2_grpc.py +24 -0
  71. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_records_pb2.py +47 -0
  72. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_records_pb2.pyi +28 -0
  73. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_get_records_pb2_grpc.py +24 -0
  74. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_types_pb2.py +39 -0
  75. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_types_pb2.pyi +15 -0
  76. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_types_pb2_grpc.py +24 -0
  77. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_update_pb2.py +47 -0
  78. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_update_pb2.pyi +39 -0
  79. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/contract_update_pb2_grpc.py +24 -0
  80. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_add_live_hash_pb2.py +41 -0
  81. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_add_live_hash_pb2.pyi +25 -0
  82. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_add_live_hash_pb2_grpc.py +24 -0
  83. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_approve_allowance_pb2.py +45 -0
  84. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_approve_allowance_pb2.pyi +56 -0
  85. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_approve_allowance_pb2_grpc.py +24 -0
  86. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_create_pb2.py +45 -0
  87. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_create_pb2.pyi +43 -0
  88. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_create_pb2_grpc.py +24 -0
  89. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_allowance_pb2.py +40 -0
  90. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_allowance_pb2.pyi +23 -0
  91. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_allowance_pb2_grpc.py +24 -0
  92. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_live_hash_pb2.py +38 -0
  93. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_live_hash_pb2.pyi +14 -0
  94. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_live_hash_pb2_grpc.py +24 -0
  95. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_pb2.py +38 -0
  96. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_pb2.pyi +14 -0
  97. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_delete_pb2_grpc.py +24 -0
  98. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_account_balance_pb2.py +44 -0
  99. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_account_balance_pb2.pyi +31 -0
  100. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_account_balance_pb2_grpc.py +24 -0
  101. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_account_records_pb2.py +43 -0
  102. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_account_records_pb2.pyi +28 -0
  103. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_account_records_pb2_grpc.py +24 -0
  104. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_info_pb2.py +55 -0
  105. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_info_pb2.pyi +73 -0
  106. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_info_pb2_grpc.py +24 -0
  107. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_live_hash_pb2.py +43 -0
  108. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_live_hash_pb2.pyi +27 -0
  109. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_live_hash_pb2_grpc.py +24 -0
  110. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_stakers_pb2.py +46 -0
  111. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_stakers_pb2.pyi +41 -0
  112. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_get_stakers_pb2_grpc.py +24 -0
  113. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_service_pb2.py +41 -0
  114. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_service_pb2.pyi +8 -0
  115. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_service_pb2_grpc.py +787 -0
  116. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_transfer_pb2.py +38 -0
  117. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_transfer_pb2.pyi +15 -0
  118. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_transfer_pb2_grpc.py +24 -0
  119. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_update_pb2.py +55 -0
  120. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_update_pb2.pyi +47 -0
  121. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/crypto_update_pb2_grpc.py +24 -0
  122. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/custom_fees_pb2.py +46 -0
  123. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/custom_fees_pb2.pyi +61 -0
  124. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/custom_fees_pb2_grpc.py +24 -0
  125. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/duration_pb2.py +37 -0
  126. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/duration_pb2.pyi +11 -0
  127. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/duration_pb2_grpc.py +24 -0
  128. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/ethereum_transaction_pb2.py +38 -0
  129. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/ethereum_transaction_pb2.pyi +16 -0
  130. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/ethereum_transaction_pb2_grpc.py +24 -0
  131. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_consensus_data_pb2.py +40 -0
  132. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_consensus_data_pb2.pyi +16 -0
  133. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_consensus_data_pb2_grpc.py +24 -0
  134. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_core_pb2.py +40 -0
  135. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_core_pb2.pyi +23 -0
  136. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_core_pb2_grpc.py +24 -0
  137. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_descriptor_pb2.py +37 -0
  138. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_descriptor_pb2.pyi +17 -0
  139. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_descriptor_pb2_grpc.py +24 -0
  140. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_transaction_pb2.py +38 -0
  141. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_transaction_pb2.pyi +14 -0
  142. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/event_transaction_pb2_grpc.py +24 -0
  143. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/gossip_event_pb2.py +41 -0
  144. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/gossip_event_pb2.pyi +20 -0
  145. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/gossip_event_pb2_grpc.py +24 -0
  146. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/state_signature_transaction_pb2.py +37 -0
  147. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/state_signature_transaction_pb2.pyi +15 -0
  148. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/event/state_signature_transaction_pb2_grpc.py +24 -0
  149. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/exchange_rate_pb2.py +40 -0
  150. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/exchange_rate_pb2.pyi +24 -0
  151. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/exchange_rate_pb2_grpc.py +24 -0
  152. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_append_pb2.py +38 -0
  153. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_append_pb2.pyi +14 -0
  154. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_append_pb2_grpc.py +24 -0
  155. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_create_pb2.py +39 -0
  156. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_create_pb2.pyi +25 -0
  157. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_create_pb2_grpc.py +24 -0
  158. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_delete_pb2.py +38 -0
  159. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_delete_pb2.pyi +12 -0
  160. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_delete_pb2_grpc.py +24 -0
  161. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_get_contents_pb2.py +44 -0
  162. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_get_contents_pb2.pyi +31 -0
  163. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_get_contents_pb2_grpc.py +24 -0
  164. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_get_info_pb2.py +45 -0
  165. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_get_info_pb2.pyi +42 -0
  166. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_get_info_pb2_grpc.py +24 -0
  167. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_service_pb2.py +41 -0
  168. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_service_pb2.pyi +8 -0
  169. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_service_pb2_grpc.py +423 -0
  170. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_update_pb2.py +40 -0
  171. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_update_pb2.pyi +22 -0
  172. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/file_update_pb2_grpc.py +24 -0
  173. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_pb2.py +48 -0
  174. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_pb2.pyi +28 -0
  175. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_pb2_grpc.py +24 -0
  176. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_service_pb2.py +39 -0
  177. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_service_pb2.pyi +6 -0
  178. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_service_pb2_grpc.py +107 -0
  179. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_type_pb2.py +37 -0
  180. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_type_pb2.pyi +20 -0
  181. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/freeze_type_pb2_grpc.py +24 -0
  182. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_account_details_pb2.py +56 -0
  183. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_account_details_pb2.pyi +96 -0
  184. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_account_details_pb2_grpc.py +24 -0
  185. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_by_key_pb2.py +45 -0
  186. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_by_key_pb2.pyi +38 -0
  187. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_by_key_pb2_grpc.py +24 -0
  188. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_by_solidity_id_pb2.py +42 -0
  189. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_by_solidity_id_pb2.pyi +28 -0
  190. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/get_by_solidity_id_pb2_grpc.py +24 -0
  191. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_get_execution_time_pb2.py +42 -0
  192. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_get_execution_time_pb2.pyi +25 -0
  193. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_get_execution_time_pb2_grpc.py +24 -0
  194. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_get_version_info_pb2.py +42 -0
  195. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_get_version_info_pb2.pyi +24 -0
  196. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_get_version_info_pb2_grpc.py +24 -0
  197. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_service_pb2.py +41 -0
  198. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_service_pb2.pyi +8 -0
  199. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/network_service_pb2_grpc.py +250 -0
  200. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_create_pb2.py +38 -0
  201. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_create_pb2.pyi +25 -0
  202. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_create_pb2_grpc.py +24 -0
  203. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_delete_pb2.py +37 -0
  204. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_delete_pb2.pyi +11 -0
  205. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_delete_pb2_grpc.py +24 -0
  206. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_stake_update_pb2.py +43 -0
  207. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_stake_update_pb2.pyi +58 -0
  208. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_stake_update_pb2_grpc.py +24 -0
  209. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_update_pb2.py +39 -0
  210. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_update_pb2.pyi +28 -0
  211. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/node_update_pb2_grpc.py +24 -0
  212. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/query_header_pb2.py +40 -0
  213. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/query_header_pb2.pyi +26 -0
  214. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/query_header_pb2_grpc.py +24 -0
  215. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/query_pb2.py +62 -0
  216. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/query_pb2.pyi +84 -0
  217. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/query_pb2_grpc.py +24 -0
  218. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_code_pb2.py +53 -0
  219. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_code_pb2.pyi +674 -0
  220. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_code_pb2_grpc.py +24 -0
  221. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_header_pb2.py +39 -0
  222. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_header_pb2.pyi +19 -0
  223. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_header_pb2_grpc.py +24 -0
  224. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_pb2.py +62 -0
  225. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_pb2.pyi +84 -0
  226. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/response_pb2_grpc.py +24 -0
  227. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedulable_transaction_body_pb2.py +83 -0
  228. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedulable_transaction_body_pb2.pyi +151 -0
  229. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedulable_transaction_body_pb2_grpc.py +24 -0
  230. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_create_pb2.py +40 -0
  231. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_create_pb2.pyi +24 -0
  232. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_create_pb2_grpc.py +24 -0
  233. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_delete_pb2.py +38 -0
  234. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_delete_pb2.pyi +12 -0
  235. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_delete_pb2_grpc.py +24 -0
  236. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_get_info_pb2.py +46 -0
  237. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_get_info_pb2.pyi +56 -0
  238. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_get_info_pb2_grpc.py +24 -0
  239. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_service_pb2.py +41 -0
  240. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_service_pb2.pyi +8 -0
  241. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_service_pb2_grpc.py +402 -0
  242. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_sign_pb2.py +38 -0
  243. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_sign_pb2.pyi +12 -0
  244. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/schedule_sign_pb2_grpc.py +24 -0
  245. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/smart_contract_service_pb2.py +43 -0
  246. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/smart_contract_service_pb2.pyi +8 -0
  247. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/smart_contract_service_pb2_grpc.py +604 -0
  248. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/system_delete_pb2.py +39 -0
  249. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/system_delete_pb2.pyi +17 -0
  250. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/system_delete_pb2_grpc.py +24 -0
  251. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/system_undelete_pb2.py +38 -0
  252. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/system_undelete_pb2.pyi +14 -0
  253. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/system_undelete_pb2_grpc.py +24 -0
  254. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/throttle_definitions_pb2.py +42 -0
  255. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/throttle_definitions_pb2.pyi +31 -0
  256. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/throttle_definitions_pb2_grpc.py +24 -0
  257. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/timestamp_pb2.py +39 -0
  258. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/timestamp_pb2.pyi +19 -0
  259. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/timestamp_pb2_grpc.py +24 -0
  260. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_airdrop_pb2.py +38 -0
  261. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_airdrop_pb2.pyi +13 -0
  262. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_airdrop_pb2_grpc.py +24 -0
  263. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_associate_pb2.py +38 -0
  264. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_associate_pb2.pyi +15 -0
  265. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_associate_pb2_grpc.py +24 -0
  266. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_burn_pb2.py +38 -0
  267. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_burn_pb2.pyi +17 -0
  268. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_burn_pb2_grpc.py +24 -0
  269. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_cancel_airdrop_pb2.py +38 -0
  270. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_cancel_airdrop_pb2.pyi +13 -0
  271. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_cancel_airdrop_pb2_grpc.py +24 -0
  272. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_claim_airdrop_pb2.py +38 -0
  273. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_claim_airdrop_pb2.pyi +13 -0
  274. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_claim_airdrop_pb2_grpc.py +24 -0
  275. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_create_pb2.py +41 -0
  276. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_create_pb2.pyi +60 -0
  277. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_create_pb2_grpc.py +24 -0
  278. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_delete_pb2.py +38 -0
  279. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_delete_pb2.pyi +12 -0
  280. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_delete_pb2_grpc.py +24 -0
  281. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_dissociate_pb2.py +38 -0
  282. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_dissociate_pb2.pyi +15 -0
  283. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_dissociate_pb2_grpc.py +24 -0
  284. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_fee_schedule_update_pb2.py +39 -0
  285. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_fee_schedule_update_pb2.pyi +16 -0
  286. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_fee_schedule_update_pb2_grpc.py +24 -0
  287. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_freeze_account_pb2.py +38 -0
  288. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_freeze_account_pb2.pyi +14 -0
  289. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_freeze_account_pb2_grpc.py +24 -0
  290. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_account_nft_infos_pb2.py +43 -0
  291. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_account_nft_infos_pb2.pyi +30 -0
  292. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_account_nft_infos_pb2_grpc.py +24 -0
  293. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_info_pb2.py +47 -0
  294. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_info_pb2.pyi +88 -0
  295. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_info_pb2_grpc.py +24 -0
  296. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_nft_info_pb2.py +45 -0
  297. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_nft_info_pb2.pyi +41 -0
  298. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_nft_info_pb2_grpc.py +24 -0
  299. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_nft_infos_pb2.py +43 -0
  300. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_nft_infos_pb2.pyi +32 -0
  301. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_get_nft_infos_pb2_grpc.py +24 -0
  302. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_grant_kyc_pb2.py +38 -0
  303. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_grant_kyc_pb2.pyi +14 -0
  304. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_grant_kyc_pb2_grpc.py +24 -0
  305. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_mint_pb2.py +38 -0
  306. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_mint_pb2.pyi +17 -0
  307. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_mint_pb2_grpc.py +24 -0
  308. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_pause_pb2.py +38 -0
  309. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_pause_pb2.pyi +12 -0
  310. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_pause_pb2_grpc.py +24 -0
  311. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_reject_pb2.py +40 -0
  312. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_reject_pb2.pyi +23 -0
  313. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_reject_pb2_grpc.py +24 -0
  314. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_revoke_kyc_pb2.py +38 -0
  315. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_revoke_kyc_pb2.pyi +14 -0
  316. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_revoke_kyc_pb2_grpc.py +24 -0
  317. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_service_pb2.py +45 -0
  318. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_service_pb2.pyi +8 -0
  319. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_service_pb2_grpc.py +1179 -0
  320. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_unfreeze_account_pb2.py +38 -0
  321. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_unfreeze_account_pb2.pyi +14 -0
  322. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_unfreeze_account_pb2_grpc.py +24 -0
  323. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_unpause_pb2.py +38 -0
  324. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_unpause_pb2.pyi +12 -0
  325. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_unpause_pb2_grpc.py +24 -0
  326. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_update_nfts_pb2.py +39 -0
  327. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_update_nfts_pb2.pyi +18 -0
  328. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_update_nfts_pb2_grpc.py +24 -0
  329. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_update_pb2.py +41 -0
  330. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_update_pb2.pyi +49 -0
  331. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_update_pb2_grpc.py +24 -0
  332. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_wipe_account_pb2.py +38 -0
  333. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_wipe_account_pb2.pyi +19 -0
  334. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/token_wipe_account_pb2_grpc.py +24 -0
  335. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_body_pb2.py +99 -0
  336. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_body_pb2.pyi +197 -0
  337. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_body_pb2_grpc.py +24 -0
  338. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_contents_pb2.py +38 -0
  339. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_contents_pb2.pyi +14 -0
  340. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_contents_pb2_grpc.py +24 -0
  341. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_fast_record_pb2.py +43 -0
  342. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_fast_record_pb2.pyi +25 -0
  343. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_fast_record_pb2_grpc.py +24 -0
  344. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_receipt_pb2.py +43 -0
  345. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_receipt_pb2.pyi +34 -0
  346. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_receipt_pb2_grpc.py +24 -0
  347. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_record_pb2.py +43 -0
  348. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_record_pb2.pyi +34 -0
  349. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_get_record_pb2_grpc.py +24 -0
  350. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_pb2.py +47 -0
  351. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_pb2.pyi +21 -0
  352. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_pb2_grpc.py +24 -0
  353. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_receipt_pb2.py +40 -0
  354. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_receipt_pb2.pyi +43 -0
  355. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_receipt_pb2_grpc.py +24 -0
  356. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_record_pb2.py +45 -0
  357. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_record_pb2.pyi +66 -0
  358. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_record_pb2_grpc.py +24 -0
  359. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_response_pb2.py +38 -0
  360. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_response_pb2.pyi +14 -0
  361. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/transaction_response_pb2_grpc.py +24 -0
  362. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/unchecked_submit_pb2.py +37 -0
  363. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/unchecked_submit_pb2.pyi +11 -0
  364. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/unchecked_submit_pb2_grpc.py +24 -0
  365. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/util_prng_pb2.py +37 -0
  366. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/util_prng_pb2.pyi +11 -0
  367. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/util_prng_pb2_grpc.py +24 -0
  368. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/util_service_pb2.py +39 -0
  369. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/util_service_pb2.pyi +6 -0
  370. hiero_sdk_python-0.1.0/src/hiero_sdk_python/hapi/services/util_service_pb2_grpc.py +106 -0
  371. hiero_sdk_python-0.1.0/src/hiero_sdk_python/query/topic_message_query.py +166 -0
  372. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/token_create_transaction.py +17 -2
  373. hiero_sdk_python-0.1.0/src/hiero_sdk_python/tokens/token_freeze_transaction.py +126 -0
  374. hiero_sdk_python-0.1.0/src/hiero_sdk_python/utils/crypto_utils.py +65 -0
  375. hiero_sdk_python-0.1.0/src/hiero_sdk_python/utils/subscription_handle.py +35 -0
  376. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/conftest.py +1 -1
  377. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_token_create_transaction.py +8 -0
  378. hiero_sdk_python-0.1.0/tests/test_token_freeze_transaction.py +96 -0
  379. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_token_mint_transaction.py +2 -2
  380. hiero_sdk_python-0.0.1.dev2/src/hiero_sdk_python/consensus/topic_message.py +0 -61
  381. hiero_sdk_python-0.0.1.dev2/src/hiero_sdk_python/crypto/private_key.py +0 -196
  382. hiero_sdk_python-0.0.1.dev2/src/hiero_sdk_python/query/topic_message_query.py +0 -105
  383. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/LICENSE +0 -0
  384. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/account/__init__.py +0 -0
  385. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/account/account_balance.py +0 -0
  386. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/account/account_create_transaction.py +0 -0
  387. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/account/account_id.py +0 -0
  388. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/client/__init__.py +0 -0
  389. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/__init__.py +0 -0
  390. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/topic_create_transaction.py +0 -0
  391. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/topic_delete_transaction.py +0 -0
  392. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/topic_id.py +0 -0
  393. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/topic_info.py +0 -0
  394. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/topic_message_submit_transaction.py +0 -0
  395. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/consensus/topic_update_transaction.py +0 -0
  396. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/crypto/__init__.py +0 -0
  397. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/hapi/mirror/__init__.py +0 -0
  398. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/hapi/services/__init__.py +0 -0
  399. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/hbar.py +0 -0
  400. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/query/__init__.py +0 -0
  401. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/query/account_balance_query.py +0 -0
  402. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/query/query.py +0 -0
  403. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/query/topic_info_query.py +0 -0
  404. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/query/transaction_get_receipt_query.py +0 -0
  405. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/response_code.py +0 -0
  406. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/timestamp.py +0 -0
  407. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/__init__.py +0 -0
  408. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/token_associate_transaction.py +0 -0
  409. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/token_delete_transaction.py +0 -0
  410. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/token_dissociate_transaction.py +0 -0
  411. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/token_id.py +0 -0
  412. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/tokens/token_mint_transaction.py +0 -0
  413. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/transaction/__init__.py +0 -0
  414. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/transaction/query_payment.py +0 -0
  415. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/transaction/transaction.py +0 -0
  416. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/transaction/transaction_id.py +0 -0
  417. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/transaction/transaction_receipt.py +0 -0
  418. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/transaction/transfer_transaction.py +0 -0
  419. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/src/hiero_sdk_python/utils/key_format.py +0 -0
  420. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/__init__.py +0 -0
  421. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_account_balance_query.py +0 -0
  422. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_account_create_transaction.py +0 -0
  423. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_get_receipt_query.py +0 -0
  424. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_token_associate_transaction.py +0 -0
  425. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_token_delete_transaction.py +0 -0
  426. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_token_dissociate_transaction.py +0 -0
  427. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_topic_create_transaction.py +0 -0
  428. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_topic_delete_transaction.py +0 -0
  429. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_topic_info_query.py +0 -0
  430. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_topic_message_query.py +0 -0
  431. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_topic_message_submit_transaction.py +0 -0
  432. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_topic_update_transaction.py +0 -0
  433. {hiero_sdk_python-0.0.1.dev2 → hiero_sdk_python-0.1.0}/tests/test_transfer_transaction.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hiero-sdk-python
3
- Version: 0.0.1.dev2
3
+ Version: 0.1.0
4
4
  Summary: A Hiero SDK in pure Python
5
5
  Author-Email: Nadine Loepfe <nadine.loepfe@hashgraph.com>, Richard Bair <rbair23@users.noreply.github.com>
6
6
  Maintainer-Email: Nadine Loepfe <nadine.loepfe@hashgraph.com>
@@ -225,7 +225,7 @@ Description-Content-Type: text/markdown
225
225
 
226
226
  This is a Python SDK for interacting with the Hedera Hashgraph platform. It allows developers to:
227
227
 
228
- - Manage Token Transactions like Create, Mint Fungible, Mint Non-Fungible, Associate, Dissociate, Transfer & Delete
228
+ - Manage Token Transactions like Create, Mint Fungible, Mint Non-Fungible, Associate, Dissociate, Transfer, Freeze & Delete
229
229
  - Manage Consensus Transactions like Topic Create, Update, Delete
230
230
  - Submit Topic Messages
231
231
  - Query Account Balance, Transaction Receipts, Topic Infos and Messages
@@ -248,6 +248,7 @@ This is a Python SDK for interacting with the Hedera Hashgraph platform. It allo
248
248
  - [Dissociating a Token](#dissociating-a-token)
249
249
  - [Transferring Tokens](#transferring-tokens)
250
250
  - [Deleting a Token](#deleting-a-token)
251
+ - [Freezing a Token](#freezing-a-token)
251
252
  - [Transferring HBAR](#transferring-hbar)
252
253
  - [Creating a Topic](#creating-a-topic)
253
254
  - [Submitting a Topic Message](#submitting-a-topic-message)
@@ -338,9 +339,11 @@ OPERATOR_ID=0.0.1234xx
338
339
  OPERATOR_KEY=302e020100300506032b657004220420...
339
340
  ADMIN_KEY=302a300506032b65700321009308ecfdf...
340
341
  SUPPLY_KEY =302a300506032b6570032100c5e4af5..."
342
+ FREEZE_KEY=302a300306072b65700321009308ecfdf...
341
343
  RECIPIENT_ID=0.0.789xx
342
344
  TOKEN_ID=0.0.100xx
343
345
  TOPIC_ID=0.0.200xx
346
+ FREEZE_ACCOUNT_ID=0.0.100
344
347
  NETWORK=testnet
345
348
  ```
346
349
 
@@ -371,6 +374,7 @@ Token association successful.
371
374
  Token dissociation successful.
372
375
  Token minting successful.
373
376
  Token transfer successful.
377
+ Token freeze successful.
374
378
  Token deletion successful.
375
379
  Topic creation successful.
376
380
  Topic Message submitted.
@@ -627,6 +631,32 @@ transaction.execute(client)
627
631
  transaction.execute(client)
628
632
  ```
629
633
 
634
+ ### Freezing a Token
635
+
636
+ #### Pythonic Syntax:
637
+ ```
638
+ transaction = TokenFreezeTransaction(
639
+ token_id=token_id
640
+ account_id=account_id
641
+ ).freeze_with(client)
642
+
643
+ transaction.sign(freeze_key) # Freeze key must have been set during token creation.
644
+ transaction.execute(client)
645
+ ```
646
+ #### Method Chaining:
647
+ ```
648
+ transaction = (
649
+ TokenFreezeTransaction()
650
+ .set_token_id(token_id)
651
+ .set_account_id(account_id)
652
+ .freeze_with(client)
653
+ )
654
+
655
+ transaction.sign(freeze_key) # Freeze key must also have been set in Token Create
656
+ transaction.execute(client)
657
+ ```
658
+
659
+
630
660
  ### Transferring HBAR
631
661
 
632
662
  #### Pythonic Syntax:
@@ -2,7 +2,7 @@
2
2
 
3
3
  This is a Python SDK for interacting with the Hedera Hashgraph platform. It allows developers to:
4
4
 
5
- - Manage Token Transactions like Create, Mint Fungible, Mint Non-Fungible, Associate, Dissociate, Transfer & Delete
5
+ - Manage Token Transactions like Create, Mint Fungible, Mint Non-Fungible, Associate, Dissociate, Transfer, Freeze & Delete
6
6
  - Manage Consensus Transactions like Topic Create, Update, Delete
7
7
  - Submit Topic Messages
8
8
  - Query Account Balance, Transaction Receipts, Topic Infos and Messages
@@ -25,6 +25,7 @@ This is a Python SDK for interacting with the Hedera Hashgraph platform. It allo
25
25
  - [Dissociating a Token](#dissociating-a-token)
26
26
  - [Transferring Tokens](#transferring-tokens)
27
27
  - [Deleting a Token](#deleting-a-token)
28
+ - [Freezing a Token](#freezing-a-token)
28
29
  - [Transferring HBAR](#transferring-hbar)
29
30
  - [Creating a Topic](#creating-a-topic)
30
31
  - [Submitting a Topic Message](#submitting-a-topic-message)
@@ -115,9 +116,11 @@ OPERATOR_ID=0.0.1234xx
115
116
  OPERATOR_KEY=302e020100300506032b657004220420...
116
117
  ADMIN_KEY=302a300506032b65700321009308ecfdf...
117
118
  SUPPLY_KEY =302a300506032b6570032100c5e4af5..."
119
+ FREEZE_KEY=302a300306072b65700321009308ecfdf...
118
120
  RECIPIENT_ID=0.0.789xx
119
121
  TOKEN_ID=0.0.100xx
120
122
  TOPIC_ID=0.0.200xx
123
+ FREEZE_ACCOUNT_ID=0.0.100
121
124
  NETWORK=testnet
122
125
  ```
123
126
 
@@ -148,6 +151,7 @@ Token association successful.
148
151
  Token dissociation successful.
149
152
  Token minting successful.
150
153
  Token transfer successful.
154
+ Token freeze successful.
151
155
  Token deletion successful.
152
156
  Topic creation successful.
153
157
  Topic Message submitted.
@@ -404,6 +408,32 @@ transaction.execute(client)
404
408
  transaction.execute(client)
405
409
  ```
406
410
 
411
+ ### Freezing a Token
412
+
413
+ #### Pythonic Syntax:
414
+ ```
415
+ transaction = TokenFreezeTransaction(
416
+ token_id=token_id
417
+ account_id=account_id
418
+ ).freeze_with(client)
419
+
420
+ transaction.sign(freeze_key) # Freeze key must have been set during token creation.
421
+ transaction.execute(client)
422
+ ```
423
+ #### Method Chaining:
424
+ ```
425
+ transaction = (
426
+ TokenFreezeTransaction()
427
+ .set_token_id(token_id)
428
+ .set_account_id(account_id)
429
+ .freeze_with(client)
430
+ )
431
+
432
+ transaction.sign(freeze_key) # Freeze key must also have been set in Token Create
433
+ transaction.execute(client)
434
+ ```
435
+
436
+
407
437
  ### Transferring HBAR
408
438
 
409
439
  #### Pythonic Syntax:
@@ -27,7 +27,7 @@ classifiers = [
27
27
  "Intended Audience :: Developers",
28
28
  "Topic :: Software Development :: Libraries :: Python Modules",
29
29
  ]
30
- version = "0.0.1.dev2"
30
+ version = "0.1.0"
31
31
 
32
32
  [project.license]
33
33
  file = "LICENSE"
@@ -40,6 +40,18 @@ lint = [
40
40
  "ruff>=0.8.3",
41
41
  ]
42
42
 
43
+ [build-system]
44
+ requires = [
45
+ "pdm-backend",
46
+ "setuptools",
47
+ "setuptools_scm",
48
+ ]
49
+ build-backend = "pdm.backend"
50
+
51
+ [tool.setuptools_scm]
52
+ version_scheme = "python-simplified-semver"
53
+ local_scheme = "dirty-tag"
54
+
43
55
  [tool.pdm.version]
44
56
  source = "scm"
45
57
 
@@ -49,11 +61,20 @@ excludes = [
49
61
  "**/.pytest_cache",
50
62
  ]
51
63
 
64
+ [tool.pytest.ini_options]
65
+ pythonpath = [
66
+ "src",
67
+ ]
68
+
52
69
  [tool.ruff]
53
70
  line-length = 120
54
71
 
55
- [build-system]
56
- requires = [
57
- "pdm-backend",
72
+ [tool.ruff.lint]
73
+ select = [
74
+ "E",
75
+ "W",
76
+ "F",
77
+ "C",
78
+ "I",
79
+ "D",
58
80
  ]
59
- build-backend = "pdm.backend"
@@ -16,6 +16,7 @@ from .tokens.token_associate_transaction import TokenAssociateTransaction
16
16
  from .tokens.token_dissociate_transaction import TokenDissociateTransaction
17
17
  from .tokens.token_delete_transaction import TokenDeleteTransaction
18
18
  from .tokens.token_mint_transaction import TokenMintTransaction
19
+ from .tokens.token_freeze_transaction import TokenFreezeTransaction
19
20
  from .tokens.token_id import TokenId
20
21
 
21
22
  # Transaction
@@ -64,6 +65,7 @@ __all__ = [
64
65
  "TokenDissociateTransaction",
65
66
  "TokenDeleteTransaction",
66
67
  "TokenMintTransaction",
68
+ "TokenFreezeTransaction",
67
69
  "TokenId",
68
70
 
69
71
  # Transaction
@@ -10,7 +10,6 @@ from hiero_sdk_python.hapi.services import (
10
10
 
11
11
  from hiero_sdk_python.hapi.mirror import (
12
12
  consensus_service_pb2_grpc as mirror_consensus_grpc,
13
- mirror_network_service_pb2_grpc as mirror_network_grpc
14
13
  )
15
14
 
16
15
  from .network import Network
@@ -46,7 +45,7 @@ class Client:
46
45
  if not node_account_ids:
47
46
  raise ValueError("No nodes available in the network configuration.")
48
47
 
49
- initial_node_id = node_account_ids[0]
48
+ initial_node_id = node_account_ids[0]
50
49
  self._switch_node(initial_node_id)
51
50
 
52
51
  self._init_mirror_stub()
@@ -61,16 +60,26 @@ class Client:
61
60
  self.mirror_stub = mirror_consensus_grpc.ConsensusServiceStub(self.mirror_channel)
62
61
 
63
62
  def set_operator(self, account_id, private_key):
63
+ """
64
+ Sets the operator credentials (account ID and private key).
65
+ """
64
66
  self.operator_account_id = account_id
65
67
  self.operator_private_key = private_key
66
68
 
67
69
  @property
68
70
  def operator(self):
71
+ """
72
+ Returns an Operator namedtuple if both account ID and private key are set,
73
+ otherwise None.
74
+ """
69
75
  if self.operator_account_id and self.operator_private_key:
70
76
  return Operator(account_id=self.operator_account_id, private_key=self.operator_private_key)
71
77
  return None
72
78
 
73
79
  def generate_transaction_id(self):
80
+ """
81
+ Generates a new transaction ID, requiring that the operator_account_id is set.
82
+ """
74
83
  if self.operator_account_id is None:
75
84
  raise ValueError("Operator account ID must be set to generate transaction ID.")
76
85
  return TransactionId.generate(self.operator_account_id)
@@ -85,6 +94,9 @@ class Client:
85
94
  raise ValueError("No nodes available in the network configuration.")
86
95
 
87
96
  def get_transaction_receipt(self, transaction_id, max_attempts=10, sleep_seconds=2):
97
+ """
98
+ Repeatedly queries for a transaction receipt until SUCCESS or certain retryable statuses.
99
+ """
88
100
  for attempt in range(max_attempts):
89
101
  receipt_query = TransactionGetReceiptQuery()
90
102
  receipt_query.set_transaction_id(transaction_id)
@@ -93,7 +105,13 @@ class Client:
93
105
 
94
106
  if status == ResponseCode.SUCCESS:
95
107
  return receipt
96
- elif status in (ResponseCode.UNKNOWN, ResponseCode.BUSY, ResponseCode.RECEIPT_NOT_FOUND, ResponseCode.RECORD_NOT_FOUND, ResponseCode.PLATFORM_NOT_ACTIVE):
108
+ elif status in (
109
+ ResponseCode.UNKNOWN,
110
+ ResponseCode.BUSY,
111
+ ResponseCode.RECEIPT_NOT_FOUND,
112
+ ResponseCode.RECORD_NOT_FOUND,
113
+ ResponseCode.PLATFORM_NOT_ACTIVE
114
+ ):
97
115
  time.sleep(sleep_seconds)
98
116
  continue
99
117
  else:
@@ -137,3 +155,30 @@ class Client:
137
155
  self.crypto_stub = crypto_service_pb2_grpc.CryptoServiceStub(self.channel)
138
156
  self.topic_stub = consensus_service_pb2_grpc.ConsensusServiceStub(self.channel)
139
157
  self.node_account_id = node_account_id
158
+
159
+ def close(self):
160
+ """
161
+ Closes any open gRPC channels and frees resources.
162
+ Call this when you are done using the Client to ensure a clean shutdown.
163
+ """
164
+ if self.channel is not None:
165
+ self.channel.close()
166
+ self.channel = None
167
+
168
+ if self.mirror_channel is not None:
169
+ self.mirror_channel.close()
170
+ self.mirror_channel = None
171
+
172
+ self.token_stub = None
173
+ self.crypto_stub = None
174
+ self.topic_stub = None
175
+ self.mirror_stub = None
176
+
177
+ def __enter__(self):
178
+ return self
179
+
180
+ def __exit__(self, exc_type, exc_value, traceback):
181
+ """
182
+ Automatically close channels when exiting 'with' block.
183
+ """
184
+ self.close()
@@ -18,7 +18,7 @@ class Network:
18
18
  'mainnet': 'https://mainnet-public.mirrornode.hedera.com',
19
19
  'testnet': 'https://testnet.mirrornode.hedera.com',
20
20
  'previewnet': 'https://previewnet.mirrornode.hedera.com',
21
- 'solo': 'http://localhost:8080'
21
+ 'solo': 'http://localhost:8080'
22
22
  }
23
23
 
24
24
  DEFAULT_NODES = {
@@ -0,0 +1,176 @@
1
+ from datetime import datetime
2
+ from typing import Optional, List, Union, Dict
3
+ from hiero_sdk_python.hapi.mirror import consensus_service_pb2 as mirror_proto
4
+
5
+ def _to_datetime(ts_proto) -> datetime:
6
+ """
7
+ Convert a protobuf Timestamp to a Python datetime (UTC).
8
+ """
9
+ return datetime.utcfromtimestamp(ts_proto.seconds + ts_proto.nanos / 1e9)
10
+
11
+
12
+ class TopicMessageChunk:
13
+ """
14
+ Represents a single chunk within a chunked topic message.
15
+ Mirrors the Java 'TopicMessageChunk'.
16
+ """
17
+
18
+ def __init__(self, response: mirror_proto.ConsensusTopicResponse):
19
+ self.consensus_timestamp = _to_datetime(response.consensusTimestamp)
20
+ self.content_size = len(response.message)
21
+ self.running_hash = response.runningHash
22
+ self.sequence_number = response.sequenceNumber
23
+
24
+
25
+ class TopicMessage:
26
+ """
27
+ Represents a Hedera TopicMessage, possibly composed of multiple chunks.
28
+ """
29
+
30
+ def __init__(
31
+ self,
32
+ consensus_timestamp: datetime,
33
+ message_data: Dict[str, Union[bytes, int]],
34
+ chunks: List[TopicMessageChunk],
35
+ transaction_id: Optional[str] = None,
36
+ ):
37
+ """
38
+ Args:
39
+ consensus_timestamp: The final consensus timestamp.
40
+ message_data: Dict with required fields:
41
+ {
42
+ "contents": bytes,
43
+ "running_hash": bytes,
44
+ "sequence_number": int
45
+ }
46
+ chunks: All individual chunks that form this message.
47
+ transaction_id: The transaction ID string if available.
48
+ """
49
+ self.consensus_timestamp = consensus_timestamp
50
+ self.contents = message_data["contents"]
51
+ self.running_hash = message_data["running_hash"]
52
+ self.sequence_number = message_data["sequence_number"]
53
+ self.chunks = chunks
54
+ self.transaction_id = transaction_id
55
+
56
+ @classmethod
57
+ def of_single(cls, response: mirror_proto.ConsensusTopicResponse) -> "TopicMessage":
58
+ """
59
+ Build a TopicMessage from a single-chunk response.
60
+ """
61
+ chunk = TopicMessageChunk(response)
62
+ consensus_timestamp = chunk.consensus_timestamp
63
+ contents = response.message
64
+ running_hash = response.runningHash
65
+ sequence_number = chunk.sequence_number
66
+
67
+ transaction_id = None
68
+ if response.HasField("chunkInfo") and response.chunkInfo.HasField("initialTransactionID"):
69
+ tx_id = response.chunkInfo.initialTransactionID
70
+ transaction_id = (
71
+ f"{tx_id.shardNum}.{tx_id.realmNum}.{tx_id.accountNum}-"
72
+ f"{tx_id.transactionValidStart.seconds}.{tx_id.transactionValidStart.nanos}"
73
+ )
74
+
75
+ return cls(
76
+ consensus_timestamp,
77
+ {
78
+ "contents": contents,
79
+ "running_hash": running_hash,
80
+ "sequence_number": sequence_number,
81
+ },
82
+ [chunk],
83
+ transaction_id
84
+ )
85
+
86
+ @classmethod
87
+ def of_many(cls, responses: List[mirror_proto.ConsensusTopicResponse]) -> "TopicMessage":
88
+ """
89
+ Reassemble multiple chunk responses into a single TopicMessage.
90
+ """
91
+ sorted_responses = sorted(responses, key=lambda r: r.chunkInfo.number)
92
+
93
+ chunks = []
94
+ total_size = 0
95
+ transaction_id = None
96
+
97
+ for r in sorted_responses:
98
+ c = TopicMessageChunk(r)
99
+ chunks.append(c)
100
+ total_size += len(r.message)
101
+
102
+ if (
103
+ transaction_id is None
104
+ and r.HasField("chunkInfo")
105
+ and r.chunkInfo.HasField("initialTransactionID")
106
+ ):
107
+ tx_id = r.chunkInfo.initialTransactionID
108
+ transaction_id = (
109
+ f"{tx_id.shardNum}.{tx_id.realmNum}.{tx_id.accountNum}-"
110
+ f"{tx_id.transactionValidStart.seconds}.{tx_id.transactionValidStart.nanos}"
111
+ )
112
+
113
+ contents = bytearray(total_size)
114
+ offset = 0
115
+ for r in sorted_responses:
116
+ end = offset + len(r.message)
117
+ contents[offset:end] = r.message
118
+ offset = end
119
+
120
+ last_r = sorted_responses[-1]
121
+ consensus_timestamp = _to_datetime(last_r.consensusTimestamp)
122
+ running_hash = last_r.runningHash
123
+ sequence_number = last_r.sequenceNumber
124
+
125
+ return cls(
126
+ consensus_timestamp,
127
+ {
128
+ "contents": bytes(contents),
129
+ "running_hash": running_hash,
130
+ "sequence_number": sequence_number,
131
+ },
132
+ chunks,
133
+ transaction_id
134
+ )
135
+
136
+ @classmethod
137
+ def from_proto(
138
+ cls,
139
+ response_or_responses: Union[mirror_proto.ConsensusTopicResponse, List[mirror_proto.ConsensusTopicResponse]],
140
+ chunking_enabled: bool = False
141
+ ) -> "TopicMessage":
142
+ """
143
+ Creates a TopicMessage from either:
144
+ - A single ConsensusTopicResponse
145
+ - A list of responses (for multi-chunk)
146
+
147
+ If chunking is enabled and multiple chunks are detected, they are reassembled
148
+ into one combined TopicMessage. Otherwise, a single chunk is returned as-is.
149
+ """
150
+ if not isinstance(response_or_responses, mirror_proto.ConsensusTopicResponse):
151
+ if not response_or_responses:
152
+ raise ValueError("Empty response list provided to from_proto().")
153
+
154
+ if not chunking_enabled and len(response_or_responses) == 1:
155
+ return cls.of_single(response_or_responses[0])
156
+
157
+ return cls.of_many(response_or_responses)
158
+
159
+ response = response_or_responses
160
+ if chunking_enabled and response.HasField("chunkInfo") and response.chunkInfo.total > 1:
161
+ raise ValueError(
162
+ "Cannot handle multi-chunk in a single response. Pass all chunk responses in a list."
163
+ )
164
+ return cls.of_single(response)
165
+
166
+ def __str__(self):
167
+ contents_str = self.contents.decode("utf-8", errors="replace")
168
+ return (
169
+ f"TopicMessage("
170
+ f"consensus_timestamp={self.consensus_timestamp}, "
171
+ f"sequence_number={self.sequence_number}, "
172
+ f"contents='{contents_str[:40]}{'...' if len(contents_str) > 40 else ''}', "
173
+ f"chunk_count={len(self.chunks)}, "
174
+ f"transaction_id={self.transaction_id}"
175
+ f")"
176
+ )
@@ -0,0 +1,152 @@
1
+ from cryptography.hazmat.primitives.asymmetric import ed25519, ec
2
+ from cryptography.hazmat.primitives import serialization
3
+ from cryptography.hazmat.backends import default_backend
4
+ from typing import Optional, Union
5
+ from hiero_sdk_python.crypto.public_key import PublicKey
6
+
7
+ class PrivateKey:
8
+ """
9
+ Represents a private key that can be either Ed25519 or ECDSA (secp256k1).
10
+ """
11
+
12
+ def __init__(
13
+ self, private_key: Union[ec.EllipticCurvePrivateKey, ed25519.Ed25519PrivateKey]):
14
+ """
15
+ Initializes a PrivateKey from a cryptography PrivateKey object.
16
+ """
17
+ self._private_key = private_key
18
+
19
+ @classmethod
20
+ def from_string(cls, key_str: str) -> "PrivateKey":
21
+ """
22
+ Load a private key from a hex-encoded string.
23
+ - If key_str starts with '0x', that prefix is removed.
24
+ - Then the remainder is decoded as hex -> bytes.
25
+ - Calls from_bytes to interpret raw or DER.
26
+
27
+ Raises ValueError if the hex is invalid or the bytes are not a valid key.
28
+ """
29
+ key_str = key_str.removeprefix("0x")
30
+
31
+ try:
32
+ key_bytes = bytes.fromhex(key_str)
33
+ except ValueError:
34
+ raise ValueError(f"Invalid hex string for private key: {key_str}")
35
+
36
+ return cls.from_bytes(key_bytes)
37
+
38
+ @classmethod
39
+ def generate(cls, key_type: str = "ed25519"):
40
+ if key_type.lower() == "ed25519":
41
+ return cls.generate_ed25519()
42
+ elif key_type.lower() == "ecdsa":
43
+ return cls.generate_ecdsa()
44
+ else:
45
+ raise ValueError("Invalid key_type. Use 'ed25519' or 'ecdsa'.")
46
+
47
+ @classmethod
48
+ def generate_ed25519(cls):
49
+ return cls(ed25519.Ed25519PrivateKey.generate())
50
+
51
+ @classmethod
52
+ def generate_ecdsa(cls):
53
+ private_key = ec.generate_private_key(ec.SECP256K1(), default_backend())
54
+ return cls(private_key)
55
+
56
+ @classmethod
57
+ def from_bytes(cls, key_bytes: bytes) -> "PrivateKey":
58
+ """
59
+ Load a private key from bytes. For Ed25519, expects 32 bytes (raw).
60
+ For ECDSA (secp256k1), also expects 32 bytes (raw scalar).
61
+ If the key is DER-encoded, tries to parse Ed25519 vs ECDSA.
62
+ """
63
+ if len(key_bytes) == 32:
64
+ ed_priv = cls._try_load_ed25519(key_bytes)
65
+ if ed_priv:
66
+ return cls(ed_priv)
67
+
68
+ ec_priv = cls._try_load_ecdsa(key_bytes)
69
+ if ec_priv:
70
+ return cls(ec_priv)
71
+
72
+ der_key = cls._try_load_der(key_bytes)
73
+ if der_key:
74
+ return cls(der_key)
75
+
76
+ raise ValueError("Failed to load private key from bytes.")
77
+
78
+ @staticmethod
79
+ def _try_load_ed25519(key_bytes: bytes) -> Optional[ed25519.Ed25519PrivateKey]:
80
+ try:
81
+ return ed25519.Ed25519PrivateKey.from_private_bytes(key_bytes)
82
+ except Exception:
83
+ return None
84
+
85
+ @staticmethod
86
+ def _try_load_ecdsa(key_bytes: bytes) -> Optional[ec.EllipticCurvePrivateKey]:
87
+ try:
88
+ private_int = int.from_bytes(key_bytes, "big")
89
+ return ec.derive_private_key(private_int, ec.SECP256K1(), default_backend())
90
+ except Exception:
91
+ return None
92
+
93
+ @staticmethod
94
+ def _try_load_der(key_bytes: bytes) -> Optional[Union[ed25519.Ed25519PrivateKey, ec.EllipticCurvePrivateKey]]:
95
+ try:
96
+ private_key = serialization.load_der_private_key(key_bytes, password=None)
97
+ if isinstance(private_key, ed25519.Ed25519PrivateKey):
98
+ return private_key
99
+ if isinstance(private_key, ec.EllipticCurvePrivateKey):
100
+ if not isinstance(private_key.curve, ec.SECP256K1):
101
+ raise ValueError("Only secp256k1 ECDSA is supported.")
102
+ return private_key
103
+ return None
104
+ except Exception:
105
+ return None
106
+
107
+ def sign(self, data: bytes) -> bytes:
108
+ return self._private_key.sign(data)
109
+
110
+ def public_key(self) -> PublicKey:
111
+ return PublicKey(self._private_key.public_key())
112
+
113
+ def to_bytes_raw(self) -> bytes:
114
+ if self.is_ed25519():
115
+ return self._private_key.private_bytes(
116
+ encoding=serialization.Encoding.Raw,
117
+ format=serialization.PrivateFormat.Raw,
118
+ encryption_algorithm=serialization.NoEncryption()
119
+ )
120
+ else:
121
+ return self._private_key.private_numbers().private_value.to_bytes(32, "big")
122
+
123
+ def to_string(self) -> str:
124
+ """
125
+ Returns the private key as a hex string (raw).
126
+ Matches old usage that calls to_string().
127
+ """
128
+ return self.to_string_raw()
129
+
130
+ def to_string_raw(self) -> str:
131
+ return self.to_bytes_raw().hex()
132
+
133
+ def to_bytes_der(self) -> bytes:
134
+ return self._private_key.private_bytes(
135
+ encoding=serialization.Encoding.DER,
136
+ format=serialization.PrivateFormat.PKCS8,
137
+ encryption_algorithm=serialization.NoEncryption()
138
+ )
139
+
140
+ def to_string_der(self) -> str:
141
+ return self.to_bytes_der().hex()
142
+
143
+ def is_ed25519(self) -> bool:
144
+ return isinstance(self._private_key, ed25519.Ed25519PrivateKey)
145
+
146
+ def is_ecdsa(self) -> bool:
147
+ return isinstance(self._private_key, ec.EllipticCurvePrivateKey)
148
+
149
+ def __repr__(self):
150
+ if self.is_ed25519():
151
+ return f"<PrivateKey (Ed25519) hex={self.to_string_raw()}>"
152
+ return f"<PrivateKey (ECDSA) hex={self.to_string_raw()}>"