ratio1 3.4.75__tar.gz → 3.4.77__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 (218) hide show
  1. {ratio1-3.4.75 → ratio1-3.4.77}/PKG-INFO +1 -1
  2. {ratio1-3.4.75 → ratio1-3.4.77}/pyproject.toml +1 -1
  3. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/_ver.py +1 -1
  4. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/code_cheker/base.py +1 -1
  5. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/evm_net.py +7 -0
  6. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/heartbeat.py +3 -0
  7. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex21_telegram_community_bot.py +30 -6
  8. {ratio1-3.4.75 → ratio1-3.4.77}/.devcontainer/Dockerfile +0 -0
  9. {ratio1-3.4.75 → ratio1-3.4.77}/.devcontainer/devcontainer.json +0 -0
  10. {ratio1-3.4.75 → ratio1-3.4.77}/.gitattributes +0 -0
  11. {ratio1-3.4.75 → ratio1-3.4.77}/.github/workflows/python-publish.yml +0 -0
  12. {ratio1-3.4.75 → ratio1-3.4.77}/.gitignore +0 -0
  13. {ratio1-3.4.75 → ratio1-3.4.77}/.vscode/launch.json +0 -0
  14. {ratio1-3.4.75 → ratio1-3.4.77}/LICENSE +0 -0
  15. {ratio1-3.4.75 → ratio1-3.4.77}/README.md +0 -0
  16. {ratio1-3.4.75 → ratio1-3.4.77}/TODOs.md +0 -0
  17. {ratio1-3.4.75 → ratio1-3.4.77}/__init__.py +0 -0
  18. {ratio1-3.4.75 → ratio1-3.4.77}/r1ctl.MD +0 -0
  19. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/__init__.py +0 -0
  20. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/__init__.py +0 -0
  21. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/distributed_custom_code_presets.py +0 -0
  22. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/generic_session.py +0 -0
  23. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/instance.py +0 -0
  24. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/payload/__init__.py +0 -0
  25. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/payload/payload.py +0 -0
  26. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/pipeline.py +0 -0
  27. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/plugin_template.py +0 -0
  28. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/responses.py +0 -0
  29. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/transaction.py +0 -0
  30. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base/webapp_pipeline.py +0 -0
  31. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/base_decentra_object.py +0 -0
  32. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/bc/__init__.py +0 -0
  33. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/bc/base.py +0 -0
  34. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/bc/chain.py +0 -0
  35. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/bc/ec.py +0 -0
  36. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/bc/evm.py +0 -0
  37. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/certs/51.15.142.167.crt +0 -0
  38. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/certs/__init__.py +0 -0
  39. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  40. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  41. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  42. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/cli/README.md +0 -0
  43. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/cli/cli.py +0 -0
  44. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/cli/cli_commands.py +0 -0
  45. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/cli/nodes.py +0 -0
  46. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/cli/oracles.py +0 -0
  47. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/cli/package_update.py +0 -0
  48. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/code_cheker/__init__.py +0 -0
  49. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/code_cheker/checker.py +0 -0
  50. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/comm/__init__.py +0 -0
  51. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/comm/amqp_wrapper.py +0 -0
  52. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/comm/base_comm_wrapper.py +0 -0
  53. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/comm/mqtt_wrapper.py +0 -0
  54. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/README.md +0 -0
  55. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/__init__.py +0 -0
  56. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/apps.py +0 -0
  57. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/base.py +0 -0
  58. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/comms.py +0 -0
  59. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/environment.py +0 -0
  60. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/formatter.py +0 -0
  61. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/misc.py +0 -0
  62. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/payload.py +0 -0
  63. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/const/plugins/deeploy_const.py +0 -0
  64. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/__init__.py +0 -0
  65. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/__init__.py +0 -0
  66. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  67. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  68. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  69. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  70. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  71. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  72. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  73. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/default/session/mqtt_session.py +0 -0
  74. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/__init__.py +0 -0
  75. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/base/__init__.py +0 -0
  76. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/base/base_formatter.py +0 -0
  77. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/default/__init__.py +0 -0
  78. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/default/a_dummy.py +0 -0
  79. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/default/aixp1.py +0 -0
  80. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/default/default.py +0 -0
  81. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  82. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/__init__.py +0 -0
  83. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ifps_keygen +0 -0
  84. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  85. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  86. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  87. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  88. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  89. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  90. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  91. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/ipfs/r1fs.py +0 -0
  92. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/__init__.py +0 -0
  93. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/base_logger.py +0 -0
  94. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/__init__.py +0 -0
  95. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  96. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  97. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  98. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  99. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  100. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  101. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  102. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  103. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  104. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  105. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  106. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  107. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  108. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/small_logger.py +0 -0
  109. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/tzlocal/__init__.py +0 -0
  110. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/tzlocal/unix.py +0 -0
  111. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/tzlocal/utils.py +0 -0
  112. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/tzlocal/win32.py +0 -0
  113. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  114. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/plugins_manager_mixin.py +0 -0
  115. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/utils/__init__.py +0 -0
  116. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/utils/comm_utils.py +0 -0
  117. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/utils/config.py +0 -0
  118. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/utils/dotenv.py +0 -0
  119. {ratio1-3.4.75 → ratio1-3.4.77}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  120. {ratio1-3.4.75 → ratio1-3.4.77}/requirements.txt +0 -0
  121. {ratio1-3.4.75 → ratio1-3.4.77}/template.env +0 -0
  122. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/.example_env +0 -0
  123. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  124. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  125. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/_example_pk_sdk.pem +0 -0
  126. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/eth2025/deploy_home_safety.py +0 -0
  127. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  128. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex01_part1_connect.py +0 -0
  129. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex01_part2_filter.py +0 -0
  130. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex01_part3_adv_filter.py +0 -0
  131. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  132. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  133. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  134. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  135. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  136. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  137. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  138. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  139. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex08_custom_webapi.py +0 -0
  140. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  141. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex10_telegram_echo_bot.py +0 -0
  142. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  143. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex12_telegram_smart_bot.py +0 -0
  144. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  145. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex14_wallets.py +0 -0
  146. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  147. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  148. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  149. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex18_deploy_container_webapi.py +0 -0
  150. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex19_deeploy_container_example.py +0 -0
  151. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  152. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/ex22_deeploy_custom_code.py +0 -0
  153. {ratio1-3.4.75 → ratio1-3.4.77}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  154. {ratio1-3.4.75 → ratio1-3.4.77}/winrun.bat +0 -0
  155. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/README.md +0 -0
  156. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/_show_config_check.py +0 -0
  157. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/cstore_check.py +0 -0
  158. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/dauth_check.py +0 -0
  159. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/keys_check.py +0 -0
  160. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/node_info_check.py +0 -0
  161. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/ora_check.py +0 -0
  162. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/ora_intervals.py +0 -0
  163. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/ora_sign_check.py +0 -0
  164. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/owner_check.py +0 -0
  165. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/payload_check.py +0 -0
  166. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/session_check.py +0 -0
  167. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/w3_auth_check.py +0 -0
  168. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  169. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/w3_oracles_check.py +0 -0
  170. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/w3_poai_check.py +0 -0
  171. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/whitelist_check.py +0 -0
  172. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/_checks/workload_check.py +0 -0
  173. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/ai4e/delete.py +0 -0
  174. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/ai4e/launcher.py +0 -0
  175. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/dates/check_date.py +0 -0
  176. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/debug/close_pipeline.py +0 -0
  177. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/decentralized/chain_dist_example.py +0 -0
  178. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  179. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  180. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/deeploy/checker.py +0 -0
  181. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/deeploy/checker2.py +0 -0
  182. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/deeploy/create_request.py +0 -0
  183. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/enc_dec/enc_dec_test.py +0 -0
  184. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/allocate_rewards.py +0 -0
  185. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/balance.py +0 -0
  186. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/eth_sign.py +0 -0
  187. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/info.md +0 -0
  188. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/send.py +0 -0
  189. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/send_many.py +0 -0
  190. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/eth/sign.py +0 -0
  191. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/log.py +0 -0
  192. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/logger/run.py +0 -0
  193. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/lp/lp_checker.py +0 -0
  194. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  195. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  196. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/netmon/check_netmon.py +0 -0
  197. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/netmon/netmon_data.json +0 -0
  198. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/pipelines/start.py +0 -0
  199. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/pipelines/stop.py +0 -0
  200. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  201. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  202. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  203. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/sign/simple_payload_checker.py +0 -0
  204. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/sign/test_sign1.py +0 -0
  205. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/sign/test_sign2.py +0 -0
  206. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/test.py +0 -0
  207. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/tokens/get_check.py +0 -0
  208. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/utils/get_documentation.py +0 -0
  209. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/various/attach_example.py +0 -0
  210. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/various/ex1.py +0 -0
  211. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/various/hello.py +0 -0
  212. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/various/remote_exec.py +0 -0
  213. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/various/save_images.py +0 -0
  214. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/wl/wl_add.py +0 -0
  215. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  216. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  217. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  218. {ratio1-3.4.75 → ratio1-3.4.77}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.75
3
+ Version: 3.4.77
4
4
  Summary: `ratio1` or Ration1 SDK is the Python SDK required for client app development for the Ratio1 ecosystem
5
5
  Project-URL: Homepage, https://github.com/Ratio1/ratio1_sdk
6
6
  Project-URL: Bug Tracker, https://github.com/Ratio1/ratio1_sdk/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ratio1"
7
- version = "3.4.75"
7
+ version = "3.4.77"
8
8
  authors = [
9
9
  { name="Andrei Ionut Damian", email="andrei.damian@ratio1.ai" },
10
10
  { name="Cristan Bleotiu", email="cristian.bleotiu@ratio1.ai" },
@@ -1,4 +1,4 @@
1
- __VER__ = "3.4.75"
1
+ __VER__ = "3.4.77"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -229,7 +229,7 @@ class BaseCodeChecker:
229
229
  for line in lines:
230
230
  rstripped = line.rstrip()
231
231
  stripped = line.lstrip()
232
- is_loop = stripped.startswith(('while', 'for'))
232
+ is_loop = stripped.startswith(('while ', 'for '))
233
233
  has_loop = has_loop or is_loop
234
234
  if is_loop and rstripped[-1] != ':':
235
235
  parts = line.split(':')
@@ -22,6 +22,10 @@ class EvmNetData:
22
22
 
23
23
  EE_ORACLE_API_URL_KEY = 'EE_ORACLE_API_URL'
24
24
  EE_DEEPLOY_API_URL_KEY = 'EE_DEEPLOY_API_URL'
25
+ EE_DAPP_API_URL_KEY = 'EE_DAPP_API_URL_KEY'
26
+
27
+ # Node tags constants.
28
+ EE_NODETAG_KYB='EE_NODETAG_KYB'
25
29
  # endclass EvmNetData
26
30
 
27
31
 
@@ -433,6 +437,7 @@ EVM_NET_DATA = {
433
437
  EvmNetData.EE_SUPERVISOR_MIN_AVAIL_PRC_KEY : 0.90,
434
438
  EvmNetData.EE_ORACLE_API_URL_KEY : "https://oracle.ratio1.ai",
435
439
  EvmNetData.EE_DEEPLOY_API_URL_KEY : "https://deeploy-api.ratio1.ai",
440
+ EvmNetData.EE_DAPP_API_URL_KEY : "https://dapp-api.ratio1.ai",
436
441
  EvmNetData.DAUTH_GET_ORACLES_ABI : _DAUTH_ABI_GET_ORACLES,
437
442
  },
438
443
 
@@ -451,6 +456,7 @@ EVM_NET_DATA = {
451
456
  EvmNetData.EE_SUPERVISOR_MIN_AVAIL_PRC_KEY : 0.6,
452
457
  EvmNetData.EE_ORACLE_API_URL_KEY : "https://testnet-oracle.ratio1.ai",
453
458
  EvmNetData.EE_DEEPLOY_API_URL_KEY : "https://testnet-deeploy-api.ratio1.ai",
459
+ EvmNetData.EE_DAPP_API_URL_KEY : "https://testnet-dapp-api.ratio1.ai",
454
460
  EvmNetData.DAUTH_GET_ORACLES_ABI : _DAUTH_ABI_GET_ORACLES,
455
461
  },
456
462
 
@@ -470,6 +476,7 @@ EVM_NET_DATA = {
470
476
  EvmNetData.EE_SUPERVISOR_MIN_AVAIL_PRC_KEY : 0.6,
471
477
  EvmNetData.EE_ORACLE_API_URL_KEY : "https://devnet-oracle.ratio1.ai",
472
478
  EvmNetData.EE_DEEPLOY_API_URL_KEY : "https://devnet-deeploy-api.ratio1.ai",
479
+ EvmNetData.EE_DAPP_API_URL_KEY : "https://devnet-dapp-api.ratio1.ai",
473
480
  EvmNetData.DAUTH_GET_ORACLES_ABI : _DAUTH_ABI_GET_ORACLES,
474
481
  },
475
482
  }
@@ -74,6 +74,9 @@ R1FS_ID = 'R1FS_ID'
74
74
  R1FS_ONLINE = 'R1FS_ONLINE'
75
75
  R1FS_RELAY = 'R1FS_RELAY'
76
76
 
77
+ # Node tags.
78
+ EE_NODETAG_KYB = 'EE_NODETAG_KYB'
79
+ # End node tags.
77
80
 
78
81
  class COMM_INFO:
79
82
  IN_KB = 'IN_KB'
@@ -35,6 +35,8 @@ def loop_processing(plugin: CustomPluginTemplate):
35
35
  diskapi_epoch_review_file_name = "ratio1_epoch_review_data.pkl"
36
36
  diskapi_watched_wallets_file_name = "ratio1_watched_wallets_data.pkl"
37
37
 
38
+ need_last_epoch_info = "need_last_epoch_info"
39
+
38
40
  def get_erc721_total_supply(contract_address: str) -> int:
39
41
  return int(plugin.requests.post("https://base-mainnet.public.blastapi.io", json={
40
42
  "jsonrpc": "2.0",
@@ -93,6 +95,7 @@ def loop_processing(plugin: CustomPluginTemplate):
93
95
  plugin.obj_cache[alert_cache_key] = {}
94
96
  plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 30
95
97
  plugin.obj_cache[cache_already_read_key] = True # We use this flag to read the cache only once at the first run
98
+
96
99
 
97
100
  # Check users' watched wallets and notify if any node is offline
98
101
  if plugin.obj_cache.get(watched_wallets_loops_delay_cache_key) == 30:
@@ -123,9 +126,12 @@ def loop_processing(plugin: CustomPluginTemplate):
123
126
  else:
124
127
  plugin.obj_cache[watched_wallets_loops_delay_cache_key] += 1
125
128
 
129
+
130
+ need_info = plugin.obj_cache.get(need_last_epoch_info, False)
131
+
126
132
  # Check if the epoch review has already been processed for the last epoch
127
133
  if plugin.obj_cache.get(epoch_review_cache_key) is not None:
128
- if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch) is not None:
134
+ if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch) is not None and not need_info:
129
135
  return
130
136
  else:
131
137
  plugin.P("Epoch review not processed for last epoch, continuing with processing.")
@@ -133,6 +139,8 @@ def loop_processing(plugin: CustomPluginTemplate):
133
139
  plugin.P("No epoch review data found, initializing cache.")
134
140
  plugin.obj_cache[epoch_review_cache_key] = {}
135
141
  plugin.obj_cache[watched_wallets_cache_key] = {}
142
+
143
+ plugin.obj_cache[need_last_epoch_info] = False # set false no matter wwhat as we display the info
136
144
 
137
145
  # Get all the required data for the epoch review
138
146
  last_epoch_nd_mining, nodes_count, nd_count, mnd_count, gnd_count = get_nodes_details()
@@ -143,17 +151,20 @@ def loop_processing(plugin: CustomPluginTemplate):
143
151
  current_burn = float(tokenDetails["burned"])
144
152
  nd_current_burn = float(tokenDetails["ndContractBurn"])
145
153
  current_poai_burn = current_burn - nd_current_burn
146
- circulating_supply = tokenDetails["circulatingSupply"]
147
- total_supply = tokenDetails["totalSupply"]
154
+ circulating_supply = float(tokenDetails["circulatingSupply"])
155
+ total_supply = float(tokenDetails["totalSupply"])
148
156
  burned_last_epoch = get_burned_last_epoch(current_burn)
149
157
  burned_poai_last_epoch = get_poai_burned_last_epoch(current_poai_burn)
158
+ price_url = 'https://api.coingecko.com/api/v3/simple/price?ids=ratio1&vs_currencies=usd'
159
+ r1_usdc = plugin.requests.get(price_url).json().get("ratio1", {}).get("usd", 0)
160
+ poai_usdc_last_epoch = burned_poai_last_epoch / 0.15 * r1_usdc
150
161
  burned_nd_last_epoch = burned_last_epoch - burned_poai_last_epoch
151
162
  plugin.P(f"Burned last epoch: {burned_last_epoch}, ND burned last epoch: {burned_nd_last_epoch}, PoAI burned last epoch: {burned_poai_last_epoch}, Current burn: {current_burn}, Circulating supply: {circulating_supply}, Total supply: {total_supply}")
152
163
 
153
164
  nd_supply = get_erc721_total_supply("0xE658DF6dA3FB5d4FBa562F1D5934bd0F9c6bd423")
154
165
  mnd_supply = get_erc721_total_supply("0x0C431e546371C87354714Fcc1a13365391A549E2")
155
166
  total_licenses = nd_supply + mnd_supply
156
- plugin.P(f"Total ND supply: {nd_supply}, Total MND supply: {mnd_supply}, Total Licenses: {total_licenses}")
167
+ plugin.P(f"Total ND supply: {nd_supply}, Total MND supply: {mnd_supply}, Total Licenses: {total_licenses}")
157
168
 
158
169
  # Prepare the message to send to the group chat
159
170
  message = f"📆 Epoch {last_epoch} Summary\n\n"
@@ -165,6 +176,7 @@ def loop_processing(plugin: CustomPluginTemplate):
165
176
  if burned_nd_last_epoch > 0:
166
177
  message += f"🔥 Last Epoch License Sales Burn: {(burned_nd_last_epoch):,.2f} R1\n"
167
178
  if burned_poai_last_epoch > 0:
179
+ message += f"🎁 Last Epoch PoAI Rewards: {(poai_usdc_last_epoch):,.2f} USDC\n"
168
180
  message += f"🔥 Last Epoch PoAI Burn: {(burned_poai_last_epoch):,.2f} R1\n"
169
181
  message += f"🔥 Total Burn: {(current_burn):,.2f} R1\n"
170
182
  plugin.send_message_to_user(user_id=plugin.cfg_chat_id, text=message)
@@ -186,7 +198,7 @@ def reply(plugin: CustomPluginTemplate, message: str, user: str, chat_id: str):
186
198
  """
187
199
  watched_wallets_cache_key = f"ratio1_watched_wallets"
188
200
  diskapi_watched_wallets_file_name = "ratio1_watched_wallets_data.pkl"
189
-
201
+
190
202
  def handle_watch():
191
203
  user_watched_wallets = plugin.obj_cache.get(watched_wallets_cache_key).get(chat_id, [])
192
204
  message_parts = message.split(" ")
@@ -270,6 +282,15 @@ def reply(plugin: CustomPluginTemplate, message: str, user: str, chat_id: str):
270
282
 
271
283
  def handle_start():
272
284
  return "Welcome to the Ratio1 Bot! Use /watch <wallet_address> to start watching your nodes. You will receive notifications when your nodes are offline."
285
+
286
+ def hands_last_epoch_info():
287
+ need_last_epoch_info = "need_last_epoch_info"
288
+ if user in plugin.cfg_admins:
289
+ plugin.obj_cache[need_last_epoch_info] = True
290
+ msg = f"Hi Master {user}! Forcing last epoch info display."
291
+ else:
292
+ msg = f"Sorry {user}, you are not authorized to force last epoch info display."
293
+ return msg
273
294
 
274
295
  # We do not want to reply to messages in the Ratio1 Community Group
275
296
  if str(chat_id) == str(plugin.cfg_chat_id):
@@ -290,6 +311,8 @@ def reply(plugin: CustomPluginTemplate, message: str, user: str, chat_id: str):
290
311
  return handle_network_status()
291
312
  if message.startswith("/start"):
292
313
  return handle_start()
314
+ if message.startswith("/last_epoch_info"):
315
+ return hands_last_epoch_info()
293
316
 
294
317
  return "Please use the /watch command followed by your Ethereum Wallet address to start watching the nodes on your wallet."
295
318
 
@@ -311,7 +334,7 @@ if __name__ == "__main__":
311
334
  session.P(f"Connecting to node: {node}")
312
335
  session.wait_for_node(node)
313
336
 
314
- COMMAND = "STOP" # "START" or "STOP"
337
+ COMMAND = "START" # "START" or "STOP"
315
338
 
316
339
  if COMMAND == "START":
317
340
  pipeline, _ = session.create_telegram_simple_bot(
@@ -321,6 +344,7 @@ if __name__ == "__main__":
321
344
  chat_id=chat_id,
322
345
  message_handler=reply,
323
346
  processing_handler=loop_processing,
347
+ admins=['401110073', '683223680'],
324
348
  )
325
349
  pipeline.deploy()
326
350
  elif COMMAND == "STOP":
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes