ratio1 3.4.76__tar.gz → 3.4.78__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.76 → ratio1-3.4.78}/PKG-INFO +1 -1
  2. {ratio1-3.4.76 → ratio1-3.4.78}/pyproject.toml +1 -1
  3. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/_ver.py +1 -1
  4. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/cli_commands.py +1 -0
  5. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/nodes.py +4 -0
  6. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/code_cheker/base.py +1 -1
  7. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex21_telegram_community_bot.py +30 -6
  8. {ratio1-3.4.76 → ratio1-3.4.78}/.devcontainer/Dockerfile +0 -0
  9. {ratio1-3.4.76 → ratio1-3.4.78}/.devcontainer/devcontainer.json +0 -0
  10. {ratio1-3.4.76 → ratio1-3.4.78}/.gitattributes +0 -0
  11. {ratio1-3.4.76 → ratio1-3.4.78}/.github/workflows/python-publish.yml +0 -0
  12. {ratio1-3.4.76 → ratio1-3.4.78}/.gitignore +0 -0
  13. {ratio1-3.4.76 → ratio1-3.4.78}/.vscode/launch.json +0 -0
  14. {ratio1-3.4.76 → ratio1-3.4.78}/LICENSE +0 -0
  15. {ratio1-3.4.76 → ratio1-3.4.78}/README.md +0 -0
  16. {ratio1-3.4.76 → ratio1-3.4.78}/TODOs.md +0 -0
  17. {ratio1-3.4.76 → ratio1-3.4.78}/__init__.py +0 -0
  18. {ratio1-3.4.76 → ratio1-3.4.78}/r1ctl.MD +0 -0
  19. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/__init__.py +0 -0
  20. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/__init__.py +0 -0
  21. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/distributed_custom_code_presets.py +0 -0
  22. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/generic_session.py +0 -0
  23. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/instance.py +0 -0
  24. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/payload/__init__.py +0 -0
  25. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/payload/payload.py +0 -0
  26. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/pipeline.py +0 -0
  27. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/plugin_template.py +0 -0
  28. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/responses.py +0 -0
  29. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/transaction.py +0 -0
  30. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/webapp_pipeline.py +0 -0
  31. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base_decentra_object.py +0 -0
  32. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/__init__.py +0 -0
  33. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/base.py +0 -0
  34. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/chain.py +0 -0
  35. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/ec.py +0 -0
  36. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/evm.py +0 -0
  37. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/51.15.142.167.crt +0 -0
  38. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/__init__.py +0 -0
  39. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  40. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  41. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  42. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/README.md +0 -0
  43. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/cli.py +0 -0
  44. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/oracles.py +0 -0
  45. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/package_update.py +0 -0
  46. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/code_cheker/__init__.py +0 -0
  47. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/code_cheker/checker.py +0 -0
  48. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/__init__.py +0 -0
  49. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/amqp_wrapper.py +0 -0
  50. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/base_comm_wrapper.py +0 -0
  51. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/mqtt_wrapper.py +0 -0
  52. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/README.md +0 -0
  53. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/__init__.py +0 -0
  54. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/apps.py +0 -0
  55. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/base.py +0 -0
  56. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/comms.py +0 -0
  57. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/environment.py +0 -0
  58. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/evm_net.py +0 -0
  59. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/formatter.py +0 -0
  60. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/heartbeat.py +0 -0
  61. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/misc.py +0 -0
  62. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/payload.py +0 -0
  63. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/plugins/deeploy_const.py +0 -0
  64. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/__init__.py +0 -0
  65. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/__init__.py +0 -0
  66. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  67. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  68. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  69. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  70. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  71. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  72. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  73. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/session/mqtt_session.py +0 -0
  74. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/__init__.py +0 -0
  75. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/base/__init__.py +0 -0
  76. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/base/base_formatter.py +0 -0
  77. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/__init__.py +0 -0
  78. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/a_dummy.py +0 -0
  79. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/aixp1.py +0 -0
  80. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/default.py +0 -0
  81. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  82. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/__init__.py +0 -0
  83. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ifps_keygen +0 -0
  84. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  85. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  86. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  87. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  88. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  89. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  90. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  91. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/r1fs.py +0 -0
  92. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/__init__.py +0 -0
  93. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/base_logger.py +0 -0
  94. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/__init__.py +0 -0
  95. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  96. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  97. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  98. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  99. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  100. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  101. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  102. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  103. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  104. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  105. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  106. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  107. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  108. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/small_logger.py +0 -0
  109. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/__init__.py +0 -0
  110. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/unix.py +0 -0
  111. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/utils.py +0 -0
  112. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/win32.py +0 -0
  113. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  114. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/plugins_manager_mixin.py +0 -0
  115. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/__init__.py +0 -0
  116. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/comm_utils.py +0 -0
  117. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/config.py +0 -0
  118. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/dotenv.py +0 -0
  119. {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  120. {ratio1-3.4.76 → ratio1-3.4.78}/requirements.txt +0 -0
  121. {ratio1-3.4.76 → ratio1-3.4.78}/template.env +0 -0
  122. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/.example_env +0 -0
  123. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  124. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  125. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/_example_pk_sdk.pem +0 -0
  126. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/eth2025/deploy_home_safety.py +0 -0
  127. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  128. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex01_part1_connect.py +0 -0
  129. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex01_part2_filter.py +0 -0
  130. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex01_part3_adv_filter.py +0 -0
  131. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  132. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  133. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  134. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  135. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  136. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  137. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  138. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  139. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex08_custom_webapi.py +0 -0
  140. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  141. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex10_telegram_echo_bot.py +0 -0
  142. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  143. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex12_telegram_smart_bot.py +0 -0
  144. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  145. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex14_wallets.py +0 -0
  146. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  147. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  148. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  149. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex18_deploy_container_webapi.py +0 -0
  150. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex19_deeploy_container_example.py +0 -0
  151. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  152. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex22_deeploy_custom_code.py +0 -0
  153. {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  154. {ratio1-3.4.76 → ratio1-3.4.78}/winrun.bat +0 -0
  155. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/README.md +0 -0
  156. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/_show_config_check.py +0 -0
  157. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/cstore_check.py +0 -0
  158. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/dauth_check.py +0 -0
  159. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/keys_check.py +0 -0
  160. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/node_info_check.py +0 -0
  161. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/ora_check.py +0 -0
  162. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/ora_intervals.py +0 -0
  163. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/ora_sign_check.py +0 -0
  164. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/owner_check.py +0 -0
  165. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/payload_check.py +0 -0
  166. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/session_check.py +0 -0
  167. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_auth_check.py +0 -0
  168. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  169. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_oracles_check.py +0 -0
  170. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_poai_check.py +0 -0
  171. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/whitelist_check.py +0 -0
  172. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/workload_check.py +0 -0
  173. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/ai4e/delete.py +0 -0
  174. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/ai4e/launcher.py +0 -0
  175. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/dates/check_date.py +0 -0
  176. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/debug/close_pipeline.py +0 -0
  177. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/decentralized/chain_dist_example.py +0 -0
  178. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  179. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  180. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/deeploy/checker.py +0 -0
  181. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/deeploy/checker2.py +0 -0
  182. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/deeploy/create_request.py +0 -0
  183. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/enc_dec/enc_dec_test.py +0 -0
  184. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/allocate_rewards.py +0 -0
  185. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/balance.py +0 -0
  186. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/eth_sign.py +0 -0
  187. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/info.md +0 -0
  188. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/send.py +0 -0
  189. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/send_many.py +0 -0
  190. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/sign.py +0 -0
  191. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/log.py +0 -0
  192. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/logger/run.py +0 -0
  193. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/lp/lp_checker.py +0 -0
  194. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  195. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  196. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/netmon/check_netmon.py +0 -0
  197. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/netmon/netmon_data.json +0 -0
  198. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/pipelines/start.py +0 -0
  199. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/pipelines/stop.py +0 -0
  200. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  201. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  202. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  203. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/sign/simple_payload_checker.py +0 -0
  204. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/sign/test_sign1.py +0 -0
  205. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/sign/test_sign2.py +0 -0
  206. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/test.py +0 -0
  207. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/tokens/get_check.py +0 -0
  208. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/utils/get_documentation.py +0 -0
  209. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/attach_example.py +0 -0
  210. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/ex1.py +0 -0
  211. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/hello.py +0 -0
  212. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/remote_exec.py +0 -0
  213. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/save_images.py +0 -0
  214. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/wl/wl_add.py +0 -0
  215. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  216. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  217. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  218. {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.76
3
+ Version: 3.4.78
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.76"
7
+ version = "3.4.78"
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.76"
1
+ __VER__ = "3.4.78"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -75,6 +75,7 @@ CLI_COMMANDS = {
75
75
  "--owner" : "Get the apps for a particular owner/initiator",
76
76
  "--full": "Include admin apps (flag)",
77
77
  "--json": "Output the entire JSON config of applications (flag)",
78
+ "--wide": "Display all available information (flag)",
78
79
  }
79
80
  },
80
81
  "networks": {
@@ -151,6 +151,7 @@ def get_apps(args):
151
151
  show_full = args.full
152
152
  as_json = args.json
153
153
  owner = args.owner
154
+ wide = args.wide
154
155
 
155
156
  # 1. Init session
156
157
  from ratio1 import Session
@@ -203,6 +204,9 @@ def get_apps(args):
203
204
  ),
204
205
  color='b'
205
206
  )
207
+
208
+ if not wide:
209
+ df_apps = df_apps[['Node Alias', 'Owner Alias', 'App', 'Plugin', 'Id', 'Probe', 'LastError']]
206
210
  log_with_color(f"{df_apps}\n")
207
211
  #end if as_json
208
212
  #end if res is not None
@@ -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(':')
@@ -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