ratio1 3.4.90__tar.gz → 3.4.92__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 (221) hide show
  1. {ratio1-3.4.90 → ratio1-3.4.92}/PKG-INFO +1 -1
  2. {ratio1-3.4.90 → ratio1-3.4.92}/pyproject.toml +1 -1
  3. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/_ver.py +1 -1
  4. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/evm.py +35 -0
  5. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/evm_net.py +13 -0
  6. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex21_telegram_community_bot.py +18 -35
  7. ratio1-3.4.92/xperimental/_checks/w3_first_closable_job_check.py +22 -0
  8. {ratio1-3.4.90 → ratio1-3.4.92}/.devcontainer/Dockerfile +0 -0
  9. {ratio1-3.4.90 → ratio1-3.4.92}/.devcontainer/devcontainer.json +0 -0
  10. {ratio1-3.4.90 → ratio1-3.4.92}/.gitattributes +0 -0
  11. {ratio1-3.4.90 → ratio1-3.4.92}/.github/workflows/python-publish.yml +0 -0
  12. {ratio1-3.4.90 → ratio1-3.4.92}/.gitignore +0 -0
  13. {ratio1-3.4.90 → ratio1-3.4.92}/.vscode/launch.json +0 -0
  14. {ratio1-3.4.90 → ratio1-3.4.92}/LICENSE +0 -0
  15. {ratio1-3.4.90 → ratio1-3.4.92}/README.md +0 -0
  16. {ratio1-3.4.90 → ratio1-3.4.92}/TODOs.md +0 -0
  17. {ratio1-3.4.90 → ratio1-3.4.92}/__init__.py +0 -0
  18. {ratio1-3.4.90 → ratio1-3.4.92}/r1ctl.MD +0 -0
  19. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/__init__.py +0 -0
  20. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/__init__.py +0 -0
  21. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/distributed_custom_code_presets.py +0 -0
  22. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/generic_session.py +0 -0
  23. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/instance.py +0 -0
  24. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/payload/__init__.py +0 -0
  25. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/payload/payload.py +0 -0
  26. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/pipeline.py +0 -0
  27. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/plugin_template.py +0 -0
  28. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/responses.py +0 -0
  29. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/transaction.py +0 -0
  30. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/webapp_pipeline.py +0 -0
  31. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base_decentra_object.py +0 -0
  32. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/__init__.py +0 -0
  33. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/base.py +0 -0
  34. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/chain.py +0 -0
  35. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/ec.py +0 -0
  36. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/51.15.142.167.crt +0 -0
  37. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/72.60.187.24.crt +0 -0
  38. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/72.60.81.67.crt +0 -0
  39. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/__init__.py +0 -0
  40. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  41. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  42. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  43. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/README.md +0 -0
  44. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/cli.py +0 -0
  45. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/cli_commands.py +0 -0
  46. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/nodes.py +0 -0
  47. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/oracles.py +0 -0
  48. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/package_update.py +0 -0
  49. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/code_cheker/__init__.py +0 -0
  50. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/code_cheker/base.py +0 -0
  51. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/code_cheker/checker.py +0 -0
  52. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/__init__.py +0 -0
  53. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/amqp_wrapper.py +0 -0
  54. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/base_comm_wrapper.py +0 -0
  55. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/mqtt_wrapper.py +0 -0
  56. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/README.md +0 -0
  57. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/__init__.py +0 -0
  58. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/apps.py +0 -0
  59. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/base.py +0 -0
  60. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/comms.py +0 -0
  61. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/environment.py +0 -0
  62. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/formatter.py +0 -0
  63. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/heartbeat.py +0 -0
  64. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/misc.py +0 -0
  65. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/payload.py +0 -0
  66. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/plugins/deeploy_const.py +0 -0
  67. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/__init__.py +0 -0
  68. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/__init__.py +0 -0
  69. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  70. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  71. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  72. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  73. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  74. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  75. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  76. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/session/mqtt_session.py +0 -0
  77. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/__init__.py +0 -0
  78. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/base/__init__.py +0 -0
  79. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/base/base_formatter.py +0 -0
  80. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/__init__.py +0 -0
  81. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/a_dummy.py +0 -0
  82. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/aixp1.py +0 -0
  83. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/default.py +0 -0
  84. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  85. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/__init__.py +0 -0
  86. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ifps_keygen +0 -0
  87. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  88. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  89. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  90. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  91. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  92. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  93. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  94. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/r1fs.py +0 -0
  95. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/__init__.py +0 -0
  96. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/base_logger.py +0 -0
  97. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/__init__.py +0 -0
  98. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  99. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  100. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  101. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  102. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  103. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  104. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  105. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  106. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  107. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  108. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  109. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  110. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  111. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/small_logger.py +0 -0
  112. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/__init__.py +0 -0
  113. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/unix.py +0 -0
  114. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/utils.py +0 -0
  115. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/win32.py +0 -0
  116. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  117. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/plugins_manager_mixin.py +0 -0
  118. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/__init__.py +0 -0
  119. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/comm_utils.py +0 -0
  120. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/config.py +0 -0
  121. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/dotenv.py +0 -0
  122. {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  123. {ratio1-3.4.90 → ratio1-3.4.92}/requirements.txt +0 -0
  124. {ratio1-3.4.90 → ratio1-3.4.92}/template.env +0 -0
  125. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/.example_env +0 -0
  126. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  127. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  128. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/_example_pk_sdk.pem +0 -0
  129. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/eth2025/deploy_home_safety.py +0 -0
  130. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  131. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex01_part1_connect.py +0 -0
  132. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex01_part2_filter.py +0 -0
  133. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex01_part3_adv_filter.py +0 -0
  134. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  135. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  136. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  137. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  138. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  139. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  140. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  141. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  142. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex08_custom_webapi.py +0 -0
  143. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  144. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex10_telegram_echo_bot.py +0 -0
  145. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  146. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex12_telegram_smart_bot.py +0 -0
  147. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  148. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex14_wallets.py +0 -0
  149. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  150. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  151. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  152. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex18_deploy_container_webapi.py +0 -0
  153. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex19_deeploy_container_example.py +0 -0
  154. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  155. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex22_deeploy_custom_code.py +0 -0
  156. {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  157. {ratio1-3.4.90 → ratio1-3.4.92}/winrun.bat +0 -0
  158. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/README.md +0 -0
  159. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/_show_config_check.py +0 -0
  160. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/cstore_check.py +0 -0
  161. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/dauth_check.py +0 -0
  162. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/keys_check.py +0 -0
  163. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/node_info_check.py +0 -0
  164. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/ora_check.py +0 -0
  165. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/ora_intervals.py +0 -0
  166. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/ora_sign_check.py +0 -0
  167. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/owner_check.py +0 -0
  168. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/payload_check.py +0 -0
  169. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/session_check.py +0 -0
  170. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_auth_check.py +0 -0
  171. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  172. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_oracles_check.py +0 -0
  173. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_poai_check.py +0 -0
  174. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/whitelist_check.py +0 -0
  175. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/workload_check.py +0 -0
  176. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/ai4e/delete.py +0 -0
  177. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/ai4e/launcher.py +0 -0
  178. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/dates/check_date.py +0 -0
  179. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/debug/close_pipeline.py +0 -0
  180. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/decentralized/chain_dist_example.py +0 -0
  181. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  182. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  183. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/deeploy/checker.py +0 -0
  184. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/deeploy/checker2.py +0 -0
  185. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/deeploy/create_request.py +0 -0
  186. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/enc_dec/enc_dec_test.py +0 -0
  187. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/allocate_rewards.py +0 -0
  188. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/balance.py +0 -0
  189. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/eth_sign.py +0 -0
  190. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/info.md +0 -0
  191. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/send.py +0 -0
  192. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/send_many.py +0 -0
  193. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/sign.py +0 -0
  194. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/log.py +0 -0
  195. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/logger/run.py +0 -0
  196. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/lp/lp_checker.py +0 -0
  197. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  198. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  199. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/netmon/check_netmon.py +0 -0
  200. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/netmon/netmon_data.json +0 -0
  201. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/pipelines/start.py +0 -0
  202. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/pipelines/stop.py +0 -0
  203. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  204. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  205. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  206. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/sign/simple_payload_checker.py +0 -0
  207. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/sign/test_sign1.py +0 -0
  208. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/sign/test_sign2.py +0 -0
  209. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/test.py +0 -0
  210. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/tokens/get_check.py +0 -0
  211. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/utils/get_documentation.py +0 -0
  212. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/attach_example.py +0 -0
  213. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/ex1.py +0 -0
  214. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/hello.py +0 -0
  215. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/remote_exec.py +0 -0
  216. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/save_images.py +0 -0
  217. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/wl/wl_add.py +0 -0
  218. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  219. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  220. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  221. {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.90
3
+ Version: 3.4.92
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.90"
7
+ version = "3.4.92"
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.90"
1
+ __VER__ = "3.4.92"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -1561,6 +1561,41 @@ class _EVMMixin:
1561
1561
 
1562
1562
  return result
1563
1563
 
1564
+ def web3_get_first_closable_job_id(
1565
+ self,
1566
+ network: str = None
1567
+ ):
1568
+ """
1569
+ Retrieve the ID of the first job that can be closed using getFirstClosableJobId().
1570
+
1571
+ Parameters
1572
+ ----------
1573
+ network : str, optional
1574
+ The network to use. If None, defaults to self.evm_network.
1575
+
1576
+ Returns
1577
+ -------
1578
+ int or None
1579
+ The ID of the first closable job, or None if no such job exists.
1580
+ """
1581
+ w3vars = self._get_web3_vars(network)
1582
+ network = w3vars.network
1583
+
1584
+ contract = w3vars.w3.eth.contract(
1585
+ address=w3vars.poai_manager_address,
1586
+ abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1587
+ )
1588
+
1589
+ self.P(f"`getFirstClosableJobId` on {network} via {w3vars.rpc_url}", verbosity=2)
1590
+
1591
+ # Call the contract function to get the first closable job ID.
1592
+ result = contract.functions.getFirstClosableJobId().call()
1593
+ if result == 0:
1594
+ result = None
1595
+ self.P(f"First closable job ID: {result}", verbosity=2)
1596
+
1597
+ return result
1598
+
1564
1599
  def web3_get_is_last_epoch_allocated(
1565
1600
  self,
1566
1601
  network: str = None
@@ -417,6 +417,19 @@ _POAI_MANAGER_ABI = [
417
417
  ],
418
418
  "stateMutability": "view",
419
419
  "type": "function"
420
+ },
421
+ {
422
+ "inputs": [],
423
+ "name": "getFirstClosableJobId",
424
+ "outputs": [
425
+ {
426
+ "internalType": "uint256",
427
+ "name": "",
428
+ "type": "uint256"
429
+ }
430
+ ],
431
+ "stateMutability": "view",
432
+ "type": "function"
420
433
  }
421
434
  ]
422
435
 
@@ -38,7 +38,7 @@ def loop_processing(plugin: CustomPluginTemplate):
38
38
  need_last_epoch_info = "need_last_epoch_info"
39
39
 
40
40
  def get_erc721_total_supply(contract_address: str) -> int:
41
- return int(plugin.requests.post("https://base-mainnet.public.blastapi.io", json={
41
+ return int(plugin.requests.post("https://base.drpc.org", json={
42
42
  "jsonrpc": "2.0",
43
43
  "method": "eth_call",
44
44
  "params": [
@@ -74,20 +74,6 @@ def loop_processing(plugin: CustomPluginTemplate):
74
74
  gnd_count += 1
75
75
  return (last_epoch_nd_mining / 10**18), nodes_count, nd_count, mnd_count, gnd_count
76
76
 
77
- def get_burned_last_epoch(current_burn: int) -> int:
78
- if plugin.obj_cache.get(epoch_review_cache_key) is None:
79
- return current_burn
80
- if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch - 1) is None:
81
- return current_burn
82
- return current_burn - plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch - 1).get("burned")
83
-
84
- def get_poai_burned_last_epoch(current_burn: int) -> int:
85
- if plugin.obj_cache.get(epoch_review_cache_key) is None:
86
- return current_burn
87
- if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch - 1) is None:
88
- return current_burn
89
- return current_burn - plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch - 1).get("poai_burned", 0)
90
-
91
77
  # If it is the first run, we need to initialize the cache from diskapi
92
78
  if plugin.obj_cache.get(cache_already_read_key) is None:
93
79
  plugin.obj_cache[epoch_review_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_epoch_review_file_name) or {}
@@ -134,7 +120,7 @@ def loop_processing(plugin: CustomPluginTemplate):
134
120
  if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch) is not None and not need_info:
135
121
  return
136
122
  else:
137
- plugin.P("Epoch review not processed for last epoch, continuing with processing.")
123
+ plugin.P("Epoch review not processed for last epoch or resend requested, continuing with processing.")
138
124
  else:
139
125
  plugin.P("No epoch review data found, initializing cache.")
140
126
  plugin.obj_cache[epoch_review_cache_key] = {}
@@ -142,24 +128,23 @@ def loop_processing(plugin: CustomPluginTemplate):
142
128
 
143
129
  plugin.obj_cache[need_last_epoch_info] = False # set false no matter wwhat as we display the info
144
130
 
131
+ # We get token details from the Ratio1 API
132
+ apiResponse = plugin.requests.get("https://dapp-api.ratio1.ai/token/bot-stats").json()
133
+ apiEpoch = apiResponse["epoch"]
134
+ if apiEpoch != last_epoch + 1:
135
+ plugin.P(f"API epoch {apiEpoch} does not match last epoch {last_epoch}, skipping epoch review processing.")
136
+ return
137
+
145
138
  # Get all the required data for the epoch review
146
139
  last_epoch_nd_mining, nodes_count, nd_count, mnd_count, gnd_count = get_nodes_details()
147
140
  plugin.P(f"Found {nd_count} ND, {mnd_count} MND, {gnd_count} GND. Last epoch mining: {last_epoch_nd_mining}")
148
141
 
149
- # We get token details from the Ratio1 API
150
- tokenDetails = plugin.requests.get("https://dapp-api.ratio1.ai/token/supply?withDecimals=true").json()
151
- current_burn = float(tokenDetails["burned"])
152
- nd_current_burn = float(tokenDetails["ndContractBurn"])
153
- current_poai_burn = current_burn - nd_current_burn
154
- circulating_supply = float(tokenDetails["circulatingSupply"])
155
- total_supply = float(tokenDetails["totalSupply"])
156
- burned_last_epoch = get_burned_last_epoch(current_burn)
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
161
- burned_nd_last_epoch = burned_last_epoch - burned_poai_last_epoch
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}")
142
+ total_supply = float(apiResponse["totalSupply"])
143
+ circulating_supply = float(apiResponse["circulatingSupply"])
144
+ burned_nd_last_epoch = float(apiResponse["epochNdBurnR1"])
145
+ burned_poai_last_epoch = float(apiResponse["epochPoaiBurnR1"])
146
+ poai_usdc_last_epoch = float(apiResponse["epochPoaiRewardsUsdc"])
147
+ total_burn = float(apiResponse["totalBurn"])
163
148
 
164
149
  nd_supply = get_erc721_total_supply("0xE658DF6dA3FB5d4FBa562F1D5934bd0F9c6bd423")
165
150
  mnd_supply = get_erc721_total_supply("0x0C431e546371C87354714Fcc1a13365391A549E2")
@@ -178,14 +163,11 @@ def loop_processing(plugin: CustomPluginTemplate):
178
163
  if burned_poai_last_epoch > 0:
179
164
  message += f"🎁 Last Epoch PoAI Rewards: {(poai_usdc_last_epoch):,.2f} USDC\n"
180
165
  message += f"🔥 Last Epoch PoAI Burn: {(burned_poai_last_epoch):,.2f} R1\n"
181
- message += f"🔥 Total Burn: {(current_burn):,.2f} R1\n"
166
+ message += f"🔥 Total Burn: {(total_burn):,.2f} R1\n"
182
167
  plugin.send_message_to_user(user_id=plugin.cfg_chat_id, text=message)
183
168
 
184
169
  # Save the epoch review data to the cache and diskapi
185
- plugin.obj_cache[epoch_review_cache_key][last_epoch] = {
186
- "burned": current_burn,
187
- "poai_burned": current_poai_burn
188
- }
170
+ plugin.obj_cache[epoch_review_cache_key][last_epoch] = True
189
171
  plugin.P(f"Saving epoch review data to diskapi file {diskapi_epoch_review_file_name}...")
190
172
  plugin.diskapi_save_pickle_to_data(plugin.obj_cache.get(epoch_review_cache_key), diskapi_epoch_review_file_name)
191
173
  return
@@ -345,6 +327,7 @@ if __name__ == "__main__":
345
327
  message_handler=reply,
346
328
  processing_handler=loop_processing,
347
329
  admins=['401110073', '683223680'],
330
+ process_delay=10,
348
331
  )
349
332
  pipeline.deploy()
350
333
  elif COMMAND == "STOP":
@@ -0,0 +1,22 @@
1
+ from ratio1 import Logger
2
+ from ratio1.bc import DefaultBlockEngine
3
+
4
+
5
+ if __name__ == '__main__':
6
+ logger = Logger("ENC")
7
+ engine = DefaultBlockEngine(
8
+ log=logger,
9
+ name="default",
10
+ user_config=True,
11
+ )
12
+
13
+ engine.reset_network("devnet")
14
+
15
+ network = engine.evm_network
16
+ logger.P(f"Checking first closable job on {network}", color='b')
17
+
18
+ try:
19
+ job_id = engine.web3_get_first_closable_job_id()
20
+ logger.P(f"First closable job ID: {job_id}", color='g')
21
+ except Exception as exc:
22
+ logger.P(f"Failed to retrieve first closable job ID: {exc}", color='r')
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