ratio1 3.4.103__tar.gz → 3.4.105__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 (227) hide show
  1. {ratio1-3.4.103 → ratio1-3.4.105}/PKG-INFO +1 -1
  2. {ratio1-3.4.103 → ratio1-3.4.105}/pyproject.toml +1 -1
  3. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/_ver.py +1 -1
  4. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/evm_net.py +2 -2
  5. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex21_telegram_community_bot.py +61 -12
  6. {ratio1-3.4.103 → ratio1-3.4.105}/.devcontainer/Dockerfile +0 -0
  7. {ratio1-3.4.103 → ratio1-3.4.105}/.devcontainer/devcontainer.json +0 -0
  8. {ratio1-3.4.103 → ratio1-3.4.105}/.gitattributes +0 -0
  9. {ratio1-3.4.103 → ratio1-3.4.105}/.github/workflows/python-publish.yml +0 -0
  10. {ratio1-3.4.103 → ratio1-3.4.105}/.gitignore +0 -0
  11. {ratio1-3.4.103 → ratio1-3.4.105}/.vscode/launch.json +0 -0
  12. {ratio1-3.4.103 → ratio1-3.4.105}/LICENSE +0 -0
  13. {ratio1-3.4.103 → ratio1-3.4.105}/README.md +0 -0
  14. {ratio1-3.4.103 → ratio1-3.4.105}/TODOs.md +0 -0
  15. {ratio1-3.4.103 → ratio1-3.4.105}/__init__.py +0 -0
  16. {ratio1-3.4.103 → ratio1-3.4.105}/r1ctl.MD +0 -0
  17. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/__init__.py +0 -0
  18. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/__init__.py +0 -0
  19. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/distributed_custom_code_presets.py +0 -0
  20. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/generic_session.py +0 -0
  21. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/instance.py +0 -0
  22. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/payload/__init__.py +0 -0
  23. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/payload/payload.py +0 -0
  24. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/pipeline.py +0 -0
  25. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/plugin_template.py +0 -0
  26. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/responses.py +0 -0
  27. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/transaction.py +0 -0
  28. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/webapp_pipeline.py +0 -0
  29. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base_decentra_object.py +0 -0
  30. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/__init__.py +0 -0
  31. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/base.py +0 -0
  32. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/chain.py +0 -0
  33. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/ec.py +0 -0
  34. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/evm.py +0 -0
  35. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/141.136.35.100.crt +0 -0
  36. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/195.35.29.4.crt +0 -0
  37. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/31.97.72.187.crt +0 -0
  38. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/51.15.142.167.crt +0 -0
  39. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/72.60.187.24.crt +0 -0
  40. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/72.60.81.67.crt +0 -0
  41. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/72.60.83.78.crt +0 -0
  42. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/__init__.py +0 -0
  43. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  44. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  45. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  46. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/README.md +0 -0
  47. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/cli.py +0 -0
  48. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/cli_commands.py +0 -0
  49. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/nodes.py +0 -0
  50. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/oracles.py +0 -0
  51. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/package_update.py +0 -0
  52. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/code_cheker/__init__.py +0 -0
  53. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/code_cheker/base.py +0 -0
  54. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/code_cheker/checker.py +0 -0
  55. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/__init__.py +0 -0
  56. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/amqp_wrapper.py +0 -0
  57. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/base_comm_wrapper.py +0 -0
  58. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/mqtt_wrapper.py +0 -0
  59. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/README.md +0 -0
  60. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/__init__.py +0 -0
  61. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/apps.py +0 -0
  62. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/base.py +0 -0
  63. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/comms.py +0 -0
  64. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/environment.py +0 -0
  65. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/formatter.py +0 -0
  66. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/heartbeat.py +0 -0
  67. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/misc.py +0 -0
  68. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/payload.py +0 -0
  69. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/plugins/deeploy_const.py +0 -0
  70. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/__init__.py +0 -0
  71. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/__init__.py +0 -0
  72. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  73. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  74. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  75. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  76. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  77. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  78. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  79. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/session/mqtt_session.py +0 -0
  80. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/__init__.py +0 -0
  81. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/base/__init__.py +0 -0
  82. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/base/base_formatter.py +0 -0
  83. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/__init__.py +0 -0
  84. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/a_dummy.py +0 -0
  85. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/aixp1.py +0 -0
  86. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/default.py +0 -0
  87. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  88. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/__init__.py +0 -0
  89. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ifps_keygen +0 -0
  90. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  91. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  92. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  93. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  94. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  95. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  96. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  97. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/r1fs.py +0 -0
  98. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/__init__.py +0 -0
  99. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/base_logger.py +0 -0
  100. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/__init__.py +0 -0
  101. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  102. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  103. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  104. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  105. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  106. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  107. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  108. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  109. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  110. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  111. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  112. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  113. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  114. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/small_logger.py +0 -0
  115. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/__init__.py +0 -0
  116. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/unix.py +0 -0
  117. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/utils.py +0 -0
  118. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/win32.py +0 -0
  119. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  120. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/plugins_manager_mixin.py +0 -0
  121. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/__init__.py +0 -0
  122. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/comm_utils.py +0 -0
  123. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/config.py +0 -0
  124. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/dotenv.py +0 -0
  125. {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  126. {ratio1-3.4.103 → ratio1-3.4.105}/requirements.txt +0 -0
  127. {ratio1-3.4.103 → ratio1-3.4.105}/template.env +0 -0
  128. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/.example_env +0 -0
  129. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  130. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  131. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/_example_pk_sdk.pem +0 -0
  132. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/eth2025/deploy_home_safety.py +0 -0
  133. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  134. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex01_part1_connect.py +0 -0
  135. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex01_part2_filter.py +0 -0
  136. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex01_part3_adv_filter.py +0 -0
  137. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  138. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  139. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  140. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  141. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  142. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  143. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  144. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  145. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex08_custom_webapi.py +0 -0
  146. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  147. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex10_telegram_echo_bot.py +0 -0
  148. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  149. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex12_telegram_smart_bot.py +0 -0
  150. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  151. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex14_wallets.py +0 -0
  152. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  153. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  154. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  155. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex18_deploy_container_webapi.py +0 -0
  156. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex19_deeploy_container_example.py +0 -0
  157. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  158. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex22_deeploy_custom_code.py +0 -0
  159. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex23_deploy_worker_app.py +0 -0
  160. {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  161. {ratio1-3.4.103 → ratio1-3.4.105}/winrun.bat +0 -0
  162. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/README.md +0 -0
  163. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/_show_config_check.py +0 -0
  164. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/cstore_check.py +0 -0
  165. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/dauth_check.py +0 -0
  166. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/keys_check.py +0 -0
  167. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/node_info_check.py +0 -0
  168. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/ora_check.py +0 -0
  169. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/ora_intervals.py +0 -0
  170. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/ora_sign_check.py +0 -0
  171. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/owner_check.py +0 -0
  172. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/payload_check.py +0 -0
  173. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/session_check.py +0 -0
  174. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_all_active_jobs_check.py +0 -0
  175. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_auth_check.py +0 -0
  176. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_first_closable_job_check.py +0 -0
  177. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  178. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_oracles_check.py +0 -0
  179. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_poai_check.py +0 -0
  180. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/whitelist_check.py +0 -0
  181. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/workload_check.py +0 -0
  182. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/ai4e/delete.py +0 -0
  183. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/ai4e/launcher.py +0 -0
  184. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/dates/check_date.py +0 -0
  185. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/debug/close_pipeline.py +0 -0
  186. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/decentralized/chain_dist_example.py +0 -0
  187. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  188. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  189. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/deeploy/checker.py +0 -0
  190. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/deeploy/checker2.py +0 -0
  191. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/deeploy/create_request.py +0 -0
  192. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/enc_dec/enc_dec_test.py +0 -0
  193. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/allocate_rewards.py +0 -0
  194. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/balance.py +0 -0
  195. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/eth_sign.py +0 -0
  196. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/info.md +0 -0
  197. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/send.py +0 -0
  198. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/send_many.py +0 -0
  199. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/sign.py +0 -0
  200. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/log.py +0 -0
  201. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/logger/run.py +0 -0
  202. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/lp/lp_checker.py +0 -0
  203. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  204. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  205. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/netmon/check_netmon.py +0 -0
  206. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/netmon/netmon_data.json +0 -0
  207. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/pipelines/start.py +0 -0
  208. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/pipelines/stop.py +0 -0
  209. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  210. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  211. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  212. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/sign/simple_payload_checker.py +0 -0
  213. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/sign/test_sign1.py +0 -0
  214. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/sign/test_sign2.py +0 -0
  215. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/test.py +0 -0
  216. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/tokens/get_check.py +0 -0
  217. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/utils/get_documentation.py +0 -0
  218. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/attach_example.py +0 -0
  219. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/ex1.py +0 -0
  220. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/hello.py +0 -0
  221. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/remote_exec.py +0 -0
  222. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/save_images.py +0 -0
  223. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/wl/wl_add.py +0 -0
  224. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  225. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  226. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  227. {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.103
3
+ Version: 3.4.105
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.103"
7
+ version = "3.4.105"
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.103"
1
+ __VER__ = "3.4.105"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -616,8 +616,8 @@ EVM_NET_CONSTANTS = {
616
616
  "0xai_A61eKDV1otIH6uWy3zDlbJNJUWayp1jAsirOuYxztf82", # tr1s-02
617
617
  ],
618
618
  EvmNetConstants.EE_ORACLE_SYNC_USE_R1FS_KEY: False, # Do not use R1FS for oracle sync in testnet.
619
- EvmNetConstants.ORACLE_SYNC_BLOCKCHAIN_PRESENCE_MIN_THRESHOLD_KEY: 0.3,
620
- EvmNetConstants.ORACLE_SYNC_ONLINE_PRESENCE_MIN_THRESHOLD_KEY: 0.4,
619
+ EvmNetConstants.ORACLE_SYNC_BLOCKCHAIN_PRESENCE_MIN_THRESHOLD_KEY: 0.15,
620
+ EvmNetConstants.ORACLE_SYNC_ONLINE_PRESENCE_MIN_THRESHOLD_KEY: 0.2,
621
621
  },
622
622
  EvmNetData.DEVNET: {
623
623
  EvmNetConstants.EE_NET_MON_01_SUPERVISOR_LOG_TIME_KEY: 60, # Log every minute.
@@ -34,6 +34,7 @@ def loop_processing(plugin: CustomPluginTemplate):
34
34
  cache_already_read_key = f"ratio1_epoch_review_already_read"
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
+ diskapi_alerts_file_name = "ratio1_offline_node_alerts_data.pkl"
37
38
 
38
39
  need_last_epoch_info = "need_last_epoch_info"
39
40
 
@@ -78,16 +79,20 @@ def loop_processing(plugin: CustomPluginTemplate):
78
79
  if plugin.obj_cache.get(cache_already_read_key) is None:
79
80
  plugin.obj_cache[epoch_review_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_epoch_review_file_name) or {}
80
81
  plugin.obj_cache[watched_wallets_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_watched_wallets_file_name) or {}
81
- plugin.obj_cache[alert_cache_key] = {}
82
- plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 30
82
+ plugin.obj_cache[alert_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_alerts_file_name) or {}
83
+ plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 10
83
84
  plugin.obj_cache[cache_already_read_key] = True # We use this flag to read the cache only once at the first run
84
85
 
85
86
 
86
87
  # Check users' watched wallets and notify if any node is offline
87
- if plugin.obj_cache.get(watched_wallets_loops_delay_cache_key) == 30:
88
+ if plugin.obj_cache.get(watched_wallets_loops_delay_cache_key) == 10:
89
+ alert_changes = False
88
90
  watched_wallets = plugin.obj_cache.get(watched_wallets_cache_key)
91
+ offline_node_min_seens = plugin.cfg_offline_node_min_seens
89
92
  if watched_wallets is not None:
90
93
  for user, wallets in watched_wallets.items():
94
+ new_online_nodes = []
95
+ new_offline_nodes = []
91
96
  for wallet in wallets:
92
97
  wallet_nodes = plugin.bc.get_wallet_nodes(wallet)
93
98
  for node in wallet_nodes:
@@ -97,17 +102,56 @@ def loop_processing(plugin: CustomPluginTemplate):
97
102
  node_alert_cache_key = f"{user}-{node}"
98
103
  node_internal_addr = plugin.bc.eth_addr_to_internal_addr(node)
99
104
  node_is_online = plugin.netmon.network_node_is_online(node_internal_addr)
105
+ node_cache_value = plugin.obj_cache[alert_cache_key].get(node_alert_cache_key)
100
106
  if node_is_online:
101
- if plugin.obj_cache[alert_cache_key].get(node_alert_cache_key) is not None:
102
- # Node was previously offline, now it is back online, we notify the user
103
- message = f"✅ Node {plugin.netmon.network_node_eeid(node_internal_addr)} ({node}) is back online."
104
- plugin.send_message_to_user(user_id=user, text=message)
107
+ if node_cache_value is not None:
108
+ # Node was previously offline
109
+ if node_cache_value >= offline_node_min_seens:
110
+ # If we had notified the user, we notify them that the node is back online
111
+ new_online_nodes.append(node)
105
112
  plugin.obj_cache[alert_cache_key][node_alert_cache_key] = None
106
- elif plugin.obj_cache[alert_cache_key].get(node_alert_cache_key) is None:
107
- # Node is offline and we haven't notified the user yet
108
- plugin.obj_cache[alert_cache_key][node_alert_cache_key] = True
109
- message = f"⚠️ Node {plugin.netmon.network_node_eeid(node_internal_addr)} ({node}) is offline. Please check your node status."
110
- plugin.send_message_to_user(user_id=user, text=message)
113
+ alert_changes = True
114
+ else:
115
+ # Node is offline
116
+ if node_cache_value is None:
117
+ plugin.obj_cache[alert_cache_key][node_alert_cache_key] = 1
118
+ alert_changes = True
119
+ if offline_node_min_seens == 1:
120
+ # We need to notify the user
121
+ new_offline_nodes.append(node)
122
+ elif node_cache_value < offline_node_min_seens:
123
+ # The node was already offline but we have not notified the user yet
124
+ new_value = node_cache_value + 1
125
+ plugin.obj_cache[alert_cache_key][node_alert_cache_key] = new_value
126
+ alert_changes = True
127
+ if new_value >= offline_node_min_seens:
128
+ # We need to notify the user
129
+ new_offline_nodes.append(node)
130
+ # endfor wallet_nodes
131
+ # endfor wallets
132
+ if len(new_online_nodes) > 0:
133
+ if len(new_online_nodes) == 1:
134
+ message = f"✅ Node {plugin.netmon.network_node_eeid(node_internal_addr)} ({new_online_nodes[0]}) is back online."
135
+ else:
136
+ message = f"✅ The following nodes are back online:\n"
137
+ for node in new_online_nodes:
138
+ message += f"- {plugin.netmon.network_node_eeid(plugin.bc.eth_addr_to_internal_addr(node))} ({node})\n"
139
+ plugin.send_message_to_user(user_id=user, text=message)
140
+ # endif new_online_nodes
141
+ if len(new_offline_nodes) > 0:
142
+ if len(new_offline_nodes) == 1:
143
+ message = f"⚠️ Node {plugin.netmon.network_node_eeid(node_internal_addr)} ({new_offline_nodes[0]}) is offline. Please check your node status."
144
+ else:
145
+ message = f"⚠️ The following nodes are offline:\n"
146
+ for node in new_offline_nodes:
147
+ message += f"- {plugin.netmon.network_node_eeid(plugin.bc.eth_addr_to_internal_addr(node))} ({node})\n"
148
+ message += "Please check your nodes status."
149
+ plugin.send_message_to_user(user_id=user, text=message)
150
+ # endif new_offline_nodes
151
+ # endfor user, wallets
152
+ if alert_changes:
153
+ plugin.diskapi_save_pickle_to_data(plugin.obj_cache.get(alert_cache_key), diskapi_alerts_file_name)
154
+ # endif watched_wallets is not None
111
155
  plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 0
112
156
  else:
113
157
  plugin.obj_cache[watched_wallets_loops_delay_cache_key] += 1
@@ -144,6 +188,8 @@ def loop_processing(plugin: CustomPluginTemplate):
144
188
  burned_nd_last_epoch = float(apiResponse["epochNdBurnR1"])
145
189
  burned_poai_last_epoch = float(apiResponse["epochPoaiBurnR1"])
146
190
  poai_usdc_last_epoch = float(apiResponse["epochPoaiRewardsUsdc"])
191
+ token_burn_last_epoch = float(apiResponse["dailyTokenBurn"])
192
+ ecosystem_token_burn_last_epoch = token_burn_last_epoch - burned_nd_last_epoch - burned_poai_last_epoch
147
193
  total_burn = float(apiResponse["totalBurn"])
148
194
 
149
195
  nd_supply = get_erc721_total_supply("0xE658DF6dA3FB5d4FBa562F1D5934bd0F9c6bd423")
@@ -163,6 +209,8 @@ def loop_processing(plugin: CustomPluginTemplate):
163
209
  if burned_poai_last_epoch > 0:
164
210
  message += f"🎁 Last Epoch PoAI Rewards: {(poai_usdc_last_epoch):,.2f} USDC\n"
165
211
  message += f"🔥 Last Epoch PoAI Burn: {(burned_poai_last_epoch):,.2f} R1\n"
212
+ if ecosystem_token_burn_last_epoch > 0:
213
+ message += f"🔥 Last Epoch Ecosystem Burn: {(ecosystem_token_burn_last_epoch):,.2f} R1\n"
166
214
  message += f"🔥 Total Burn: {(total_burn):,.2f} R1\n"
167
215
  plugin.send_message_to_user(user_id=plugin.cfg_chat_id, text=message)
168
216
 
@@ -327,6 +375,7 @@ if __name__ == "__main__":
327
375
  message_handler=reply,
328
376
  processing_handler=loop_processing,
329
377
  admins=['401110073', '683223680'],
378
+ offline_node_min_seens=2,
330
379
  process_delay=10,
331
380
  )
332
381
  pipeline.deploy()
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