ratio1 3.4.93__tar.gz → 3.4.96__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 (223) hide show
  1. {ratio1-3.4.93 → ratio1-3.4.96}/PKG-INFO +1 -1
  2. {ratio1-3.4.93 → ratio1-3.4.96}/pyproject.toml +1 -1
  3. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/_ver.py +1 -1
  4. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/bc/evm.py +54 -21
  5. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/evm_net.py +85 -0
  6. ratio1-3.4.96/xperimental/_checks/w3_all_active_jobs_check.py +25 -0
  7. {ratio1-3.4.93 → ratio1-3.4.96}/.devcontainer/Dockerfile +0 -0
  8. {ratio1-3.4.93 → ratio1-3.4.96}/.devcontainer/devcontainer.json +0 -0
  9. {ratio1-3.4.93 → ratio1-3.4.96}/.gitattributes +0 -0
  10. {ratio1-3.4.93 → ratio1-3.4.96}/.github/workflows/python-publish.yml +0 -0
  11. {ratio1-3.4.93 → ratio1-3.4.96}/.gitignore +0 -0
  12. {ratio1-3.4.93 → ratio1-3.4.96}/.vscode/launch.json +0 -0
  13. {ratio1-3.4.93 → ratio1-3.4.96}/LICENSE +0 -0
  14. {ratio1-3.4.93 → ratio1-3.4.96}/README.md +0 -0
  15. {ratio1-3.4.93 → ratio1-3.4.96}/TODOs.md +0 -0
  16. {ratio1-3.4.93 → ratio1-3.4.96}/__init__.py +0 -0
  17. {ratio1-3.4.93 → ratio1-3.4.96}/r1ctl.MD +0 -0
  18. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/__init__.py +0 -0
  19. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/__init__.py +0 -0
  20. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/distributed_custom_code_presets.py +0 -0
  21. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/generic_session.py +0 -0
  22. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/instance.py +0 -0
  23. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/payload/__init__.py +0 -0
  24. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/payload/payload.py +0 -0
  25. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/pipeline.py +0 -0
  26. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/plugin_template.py +0 -0
  27. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/responses.py +0 -0
  28. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/transaction.py +0 -0
  29. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base/webapp_pipeline.py +0 -0
  30. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/base_decentra_object.py +0 -0
  31. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/bc/__init__.py +0 -0
  32. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/bc/base.py +0 -0
  33. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/bc/chain.py +0 -0
  34. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/bc/ec.py +0 -0
  35. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/51.15.142.167.crt +0 -0
  36. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/72.60.187.24.crt +0 -0
  37. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/72.60.81.67.crt +0 -0
  38. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/__init__.py +0 -0
  39. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  40. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  41. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  42. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/cli/README.md +0 -0
  43. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/cli/cli.py +0 -0
  44. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/cli/cli_commands.py +0 -0
  45. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/cli/nodes.py +0 -0
  46. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/cli/oracles.py +0 -0
  47. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/cli/package_update.py +0 -0
  48. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/code_cheker/__init__.py +0 -0
  49. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/code_cheker/base.py +0 -0
  50. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/code_cheker/checker.py +0 -0
  51. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/comm/__init__.py +0 -0
  52. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/comm/amqp_wrapper.py +0 -0
  53. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/comm/base_comm_wrapper.py +0 -0
  54. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/comm/mqtt_wrapper.py +0 -0
  55. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/README.md +0 -0
  56. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/__init__.py +0 -0
  57. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/apps.py +0 -0
  58. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/base.py +0 -0
  59. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/comms.py +0 -0
  60. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/environment.py +0 -0
  61. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/formatter.py +0 -0
  62. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/heartbeat.py +0 -0
  63. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/misc.py +0 -0
  64. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/payload.py +0 -0
  65. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/const/plugins/deeploy_const.py +0 -0
  66. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/__init__.py +0 -0
  67. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/__init__.py +0 -0
  68. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  69. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  70. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  71. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  72. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  73. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  74. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  75. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/default/session/mqtt_session.py +0 -0
  76. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/__init__.py +0 -0
  77. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/base/__init__.py +0 -0
  78. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/base/base_formatter.py +0 -0
  79. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/default/__init__.py +0 -0
  80. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/default/a_dummy.py +0 -0
  81. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/default/aixp1.py +0 -0
  82. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/default/default.py +0 -0
  83. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  84. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/__init__.py +0 -0
  85. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ifps_keygen +0 -0
  86. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  87. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  88. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  89. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  90. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  91. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  92. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  93. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/ipfs/r1fs.py +0 -0
  94. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/__init__.py +0 -0
  95. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/base_logger.py +0 -0
  96. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/__init__.py +0 -0
  97. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  98. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  99. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  100. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  101. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  102. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  103. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  104. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  105. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  106. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  107. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  108. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  109. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  110. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/small_logger.py +0 -0
  111. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/tzlocal/__init__.py +0 -0
  112. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/tzlocal/unix.py +0 -0
  113. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/tzlocal/utils.py +0 -0
  114. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/tzlocal/win32.py +0 -0
  115. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  116. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/plugins_manager_mixin.py +0 -0
  117. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/utils/__init__.py +0 -0
  118. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/utils/comm_utils.py +0 -0
  119. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/utils/config.py +0 -0
  120. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/utils/dotenv.py +0 -0
  121. {ratio1-3.4.93 → ratio1-3.4.96}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  122. {ratio1-3.4.93 → ratio1-3.4.96}/requirements.txt +0 -0
  123. {ratio1-3.4.93 → ratio1-3.4.96}/template.env +0 -0
  124. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/.example_env +0 -0
  125. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  126. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  127. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/_example_pk_sdk.pem +0 -0
  128. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/eth2025/deploy_home_safety.py +0 -0
  129. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  130. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex01_part1_connect.py +0 -0
  131. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex01_part2_filter.py +0 -0
  132. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex01_part3_adv_filter.py +0 -0
  133. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  134. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  135. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  136. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  137. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  138. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  139. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  140. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  141. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex08_custom_webapi.py +0 -0
  142. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  143. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex10_telegram_echo_bot.py +0 -0
  144. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  145. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex12_telegram_smart_bot.py +0 -0
  146. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  147. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex14_wallets.py +0 -0
  148. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  149. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  150. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  151. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex18_deploy_container_webapi.py +0 -0
  152. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex19_deeploy_container_example.py +0 -0
  153. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  154. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex21_telegram_community_bot.py +0 -0
  155. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex22_deeploy_custom_code.py +0 -0
  156. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/ex23_deploy_worker_app.py +0 -0
  157. {ratio1-3.4.93 → ratio1-3.4.96}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  158. {ratio1-3.4.93 → ratio1-3.4.96}/winrun.bat +0 -0
  159. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/README.md +0 -0
  160. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/_show_config_check.py +0 -0
  161. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/cstore_check.py +0 -0
  162. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/dauth_check.py +0 -0
  163. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/keys_check.py +0 -0
  164. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/node_info_check.py +0 -0
  165. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/ora_check.py +0 -0
  166. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/ora_intervals.py +0 -0
  167. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/ora_sign_check.py +0 -0
  168. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/owner_check.py +0 -0
  169. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/payload_check.py +0 -0
  170. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/session_check.py +0 -0
  171. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/w3_auth_check.py +0 -0
  172. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/w3_first_closable_job_check.py +0 -0
  173. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  174. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/w3_oracles_check.py +0 -0
  175. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/w3_poai_check.py +0 -0
  176. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/whitelist_check.py +0 -0
  177. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/_checks/workload_check.py +0 -0
  178. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/ai4e/delete.py +0 -0
  179. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/ai4e/launcher.py +0 -0
  180. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/dates/check_date.py +0 -0
  181. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/debug/close_pipeline.py +0 -0
  182. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/decentralized/chain_dist_example.py +0 -0
  183. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  184. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  185. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/deeploy/checker.py +0 -0
  186. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/deeploy/checker2.py +0 -0
  187. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/deeploy/create_request.py +0 -0
  188. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/enc_dec/enc_dec_test.py +0 -0
  189. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/allocate_rewards.py +0 -0
  190. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/balance.py +0 -0
  191. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/eth_sign.py +0 -0
  192. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/info.md +0 -0
  193. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/send.py +0 -0
  194. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/send_many.py +0 -0
  195. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/eth/sign.py +0 -0
  196. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/log.py +0 -0
  197. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/logger/run.py +0 -0
  198. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/lp/lp_checker.py +0 -0
  199. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  200. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  201. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/netmon/check_netmon.py +0 -0
  202. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/netmon/netmon_data.json +0 -0
  203. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/pipelines/start.py +0 -0
  204. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/pipelines/stop.py +0 -0
  205. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  206. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  207. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  208. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/sign/simple_payload_checker.py +0 -0
  209. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/sign/test_sign1.py +0 -0
  210. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/sign/test_sign2.py +0 -0
  211. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/test.py +0 -0
  212. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/tokens/get_check.py +0 -0
  213. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/utils/get_documentation.py +0 -0
  214. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/various/attach_example.py +0 -0
  215. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/various/ex1.py +0 -0
  216. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/various/hello.py +0 -0
  217. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/various/remote_exec.py +0 -0
  218. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/various/save_images.py +0 -0
  219. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/wl/wl_add.py +0 -0
  220. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  221. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  222. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  223. {ratio1-3.4.93 → ratio1-3.4.96}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.93
3
+ Version: 3.4.96
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.93"
7
+ version = "3.4.96"
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.93"
1
+ __VER__ = "3.4.96"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -1334,29 +1334,40 @@ class _EVMMixin:
1334
1334
 
1335
1335
  # Call the contract function to get details.
1336
1336
  result_tuple = contract.functions.getJobDetails(job_id).call()
1337
-
1338
- # Unpack the tuple into a dictionary for readability.
1339
- details = {
1340
- "network": network,
1341
- "jobId": result_tuple[0],
1342
- "projectHash": "0x" + result_tuple[1].hex(),
1343
- "requestTimestamp": result_tuple[2],
1344
- "startTimestamp": result_tuple[3],
1345
- "lastNodesChangeTimestamp": result_tuple[4],
1346
- "jobType": result_tuple[5],
1347
- "pricePerEpoch": result_tuple[6],
1348
- "lastExecutionEpoch": result_tuple[7],
1349
- "numberOfNodesRequested": result_tuple[8],
1350
- "balance": result_tuple[9],
1351
- "lastAllocatedEpoch": result_tuple[10],
1352
- "activeNodes": result_tuple[11],
1353
- "escrowAddress": result_tuple[12],
1354
- "escrowOwner": result_tuple[13],
1355
- }
1337
+ details = self._format_job_details(result_tuple, network)
1356
1338
  self.P(f"Job Details:\n{json.dumps(details, indent=2)}", verbosity=2)
1357
-
1358
1339
  return details
1359
1340
 
1341
+ def web3_get_all_active_jobs(
1342
+ self,
1343
+ network: str = None
1344
+ ):
1345
+ """
1346
+ Retrieve all active jobs tracked by the PoAI manager.
1347
+
1348
+ Parameters
1349
+ ----------
1350
+ network : str, optional
1351
+ The network to use. Defaults to the current engine network.
1352
+
1353
+ Returns
1354
+ -------
1355
+ list[dict]
1356
+ A list with the job details for every active job.
1357
+ """
1358
+ w3vars = self._get_web3_vars(network)
1359
+ network = w3vars.network
1360
+ contract = w3vars.w3.eth.contract(
1361
+ address=w3vars.poai_manager_address,
1362
+ abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1363
+ )
1364
+
1365
+ self.P(f"`getAllActiveJobs` on {network} via {w3vars.rpc_url}", verbosity=2)
1366
+ raw_jobs = contract.functions.getAllActiveJobs().call()
1367
+ jobs = [self._format_job_details(job, network) for job in raw_jobs]
1368
+ self.P(f"Active jobs found: {len(jobs)}", verbosity=2)
1369
+ return jobs
1370
+
1360
1371
  def web3_submit_node_update(
1361
1372
  self,
1362
1373
  job_id: int,
@@ -1400,7 +1411,7 @@ class _EVMMixin:
1400
1411
 
1401
1412
  # Estimate gas fees for the token transfer.
1402
1413
  gas_price = w3vars.w3.eth.gas_price # This fetches the current suggested gas price from the network.
1403
- estimated_gas = 750_000 # Have enough gas to cover all the actions if consensus is reached
1414
+ estimated_gas = 1_000_000 # Have enough gas to cover all the actions if consensus is reached
1404
1415
  gas_cost = estimated_gas * gas_price
1405
1416
 
1406
1417
  # Check that the sender's ETH balance can cover gas costs plus an extra buffer.
@@ -1630,6 +1641,28 @@ class _EVMMixin:
1630
1641
  self.P(f"Last epoch allocated: {result}", verbosity=2)
1631
1642
 
1632
1643
  return result
1644
+
1645
+ def _format_job_details(self, raw_job_details, network: str):
1646
+ """
1647
+ Normalize the job details tuple returned by the PoAI Manager contract.
1648
+ """
1649
+ return {
1650
+ "network": network,
1651
+ "jobId": raw_job_details[0],
1652
+ "projectHash": "0x" + raw_job_details[1].hex(),
1653
+ "requestTimestamp": raw_job_details[2],
1654
+ "startTimestamp": raw_job_details[3],
1655
+ "lastNodesChangeTimestamp": raw_job_details[4],
1656
+ "jobType": raw_job_details[5],
1657
+ "pricePerEpoch": raw_job_details[6],
1658
+ "lastExecutionEpoch": raw_job_details[7],
1659
+ "numberOfNodesRequested": raw_job_details[8],
1660
+ "balance": raw_job_details[9],
1661
+ "lastAllocatedEpoch": raw_job_details[10],
1662
+ "activeNodes": raw_job_details[11],
1663
+ "escrowAddress": raw_job_details[12],
1664
+ "escrowOwner": raw_job_details[13],
1665
+ }
1633
1666
 
1634
1667
  def get_deeploy_url(self):
1635
1668
  """
@@ -430,6 +430,91 @@ _POAI_MANAGER_ABI = [
430
430
  ],
431
431
  "stateMutability": "view",
432
432
  "type": "function"
433
+ },
434
+ {
435
+ "inputs": [],
436
+ "name": "getAllActiveJobs",
437
+ "outputs": [
438
+ {
439
+ "components": [
440
+ {
441
+ "internalType": "uint256",
442
+ "name": "id",
443
+ "type": "uint256"
444
+ },
445
+ {
446
+ "internalType": "bytes32",
447
+ "name": "projectHash",
448
+ "type": "bytes32"
449
+ },
450
+ {
451
+ "internalType": "uint256",
452
+ "name": "requestTimestamp",
453
+ "type": "uint256"
454
+ },
455
+ {
456
+ "internalType": "uint256",
457
+ "name": "startTimestamp",
458
+ "type": "uint256"
459
+ },
460
+ {
461
+ "internalType": "uint256",
462
+ "name": "lastNodesChangeTimestamp",
463
+ "type": "uint256"
464
+ },
465
+ {
466
+ "internalType": "uint256",
467
+ "name": "jobType",
468
+ "type": "uint256"
469
+ },
470
+ {
471
+ "internalType": "uint256",
472
+ "name": "pricePerEpoch",
473
+ "type": "uint256"
474
+ },
475
+ {
476
+ "internalType": "uint256",
477
+ "name": "lastExecutionEpoch",
478
+ "type": "uint256"
479
+ },
480
+ {
481
+ "internalType": "uint256",
482
+ "name": "numberOfNodesRequested",
483
+ "type": "uint256"
484
+ },
485
+ {
486
+ "internalType": "int256",
487
+ "name": "balance",
488
+ "type": "int256"
489
+ },
490
+ {
491
+ "internalType": "uint256",
492
+ "name": "lastAllocatedEpoch",
493
+ "type": "uint256"
494
+ },
495
+ {
496
+ "internalType": "address[]",
497
+ "name": "activeNodes",
498
+ "type": "address[]"
499
+ },
500
+ {
501
+ "internalType": "address",
502
+ "name": "escrowAddress",
503
+ "type": "address"
504
+ },
505
+ {
506
+ "internalType": "address",
507
+ "name": "escrowOwner",
508
+ "type": "address"
509
+ }
510
+ ],
511
+ "internalType": "struct JobWithAllDetails[]",
512
+ "name": "",
513
+ "type": "tuple[]"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
433
518
  }
434
519
  ]
435
520
 
@@ -0,0 +1,25 @@
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 all active jobs on {network}", color='b')
17
+
18
+ try:
19
+ jobs = engine.web3_get_all_active_jobs()
20
+ logger.P(f"Found {len(jobs)} active jobs", color='g')
21
+ if jobs:
22
+ first_job = jobs[0]
23
+ logger.P(f"First job snapshot: {first_job}", color='b')
24
+ except Exception as exc:
25
+ logger.P(f"Failed to retrieve active jobs: {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