ratio1 3.4.47__tar.gz → 3.4.48__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 (213) hide show
  1. {ratio1-3.4.47 → ratio1-3.4.48}/PKG-INFO +1 -1
  2. {ratio1-3.4.47 → ratio1-3.4.48}/pyproject.toml +1 -1
  3. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/_ver.py +1 -1
  4. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/bc/evm.py +59 -0
  5. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/evm_net.py +84 -0
  6. ratio1-3.4.48/xperimental/_checks/w3_poai_check.py +25 -0
  7. {ratio1-3.4.47 → ratio1-3.4.48}/.devcontainer/Dockerfile +0 -0
  8. {ratio1-3.4.47 → ratio1-3.4.48}/.devcontainer/devcontainer.json +0 -0
  9. {ratio1-3.4.47 → ratio1-3.4.48}/.gitattributes +0 -0
  10. {ratio1-3.4.47 → ratio1-3.4.48}/.github/workflows/python-publish.yml +0 -0
  11. {ratio1-3.4.47 → ratio1-3.4.48}/.gitignore +0 -0
  12. {ratio1-3.4.47 → ratio1-3.4.48}/.vscode/launch.json +0 -0
  13. {ratio1-3.4.47 → ratio1-3.4.48}/LICENSE +0 -0
  14. {ratio1-3.4.47 → ratio1-3.4.48}/README.md +0 -0
  15. {ratio1-3.4.47 → ratio1-3.4.48}/TODOs.md +0 -0
  16. {ratio1-3.4.47 → ratio1-3.4.48}/__init__.py +0 -0
  17. {ratio1-3.4.47 → ratio1-3.4.48}/r1ctl.MD +0 -0
  18. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/__init__.py +0 -0
  19. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/__init__.py +0 -0
  20. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/distributed_custom_code_presets.py +0 -0
  21. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/generic_session.py +0 -0
  22. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/instance.py +0 -0
  23. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/payload/__init__.py +0 -0
  24. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/payload/payload.py +0 -0
  25. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/pipeline.py +0 -0
  26. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/plugin_template.py +0 -0
  27. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/responses.py +0 -0
  28. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/transaction.py +0 -0
  29. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base/webapp_pipeline.py +0 -0
  30. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/base_decentra_object.py +0 -0
  31. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/bc/__init__.py +0 -0
  32. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/bc/base.py +0 -0
  33. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/bc/chain.py +0 -0
  34. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/bc/ec.py +0 -0
  35. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/certs/51.15.142.167.crt +0 -0
  36. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/certs/__init__.py +0 -0
  37. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  38. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  39. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  40. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/cli/README.md +0 -0
  41. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/cli/cli.py +0 -0
  42. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/cli/cli_commands.py +0 -0
  43. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/cli/nodes.py +0 -0
  44. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/cli/oracles.py +0 -0
  45. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/cli/package_update.py +0 -0
  46. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/code_cheker/__init__.py +0 -0
  47. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/code_cheker/base.py +0 -0
  48. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/code_cheker/checker.py +0 -0
  49. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/comm/__init__.py +0 -0
  50. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/comm/amqp_wrapper.py +0 -0
  51. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/comm/base_comm_wrapper.py +0 -0
  52. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/comm/mqtt_wrapper.py +0 -0
  53. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/README.md +0 -0
  54. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/__init__.py +0 -0
  55. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/apps.py +0 -0
  56. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/base.py +0 -0
  57. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/comms.py +0 -0
  58. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/environment.py +0 -0
  59. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/formatter.py +0 -0
  60. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/heartbeat.py +0 -0
  61. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/misc.py +0 -0
  62. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/payload.py +0 -0
  63. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/const/plugins/deeploy_const.py +0 -0
  64. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/__init__.py +0 -0
  65. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/__init__.py +0 -0
  66. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  67. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  68. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  69. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  70. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  71. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  72. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  73. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/default/session/mqtt_session.py +0 -0
  74. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/__init__.py +0 -0
  75. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/base/__init__.py +0 -0
  76. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/base/base_formatter.py +0 -0
  77. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/default/__init__.py +0 -0
  78. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/default/a_dummy.py +0 -0
  79. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/default/aixp1.py +0 -0
  80. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/default/default.py +0 -0
  81. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  82. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/__init__.py +0 -0
  83. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ifps_keygen +0 -0
  84. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  85. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  86. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  87. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  88. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  89. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  90. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  91. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/ipfs/r1fs.py +0 -0
  92. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/__init__.py +0 -0
  93. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/base_logger.py +0 -0
  94. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/__init__.py +0 -0
  95. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  96. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  97. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  98. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  99. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  100. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  101. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  102. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  103. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  104. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  105. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  106. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  107. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  108. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/small_logger.py +0 -0
  109. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/tzlocal/__init__.py +0 -0
  110. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/tzlocal/unix.py +0 -0
  111. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/tzlocal/utils.py +0 -0
  112. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/tzlocal/win32.py +0 -0
  113. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  114. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/plugins_manager_mixin.py +0 -0
  115. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/utils/__init__.py +0 -0
  116. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/utils/comm_utils.py +0 -0
  117. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/utils/config.py +0 -0
  118. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/utils/dotenv.py +0 -0
  119. {ratio1-3.4.47 → ratio1-3.4.48}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  120. {ratio1-3.4.47 → ratio1-3.4.48}/requirements.txt +0 -0
  121. {ratio1-3.4.47 → ratio1-3.4.48}/template.env +0 -0
  122. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/.example_env +0 -0
  123. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  124. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  125. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/_example_pk_sdk.pem +0 -0
  126. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/eth2025/deploy_home_safety.py +0 -0
  127. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  128. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex01_part1_connect.py +0 -0
  129. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex01_part2_filter.py +0 -0
  130. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex01_part3_adv_filter.py +0 -0
  131. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  132. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  133. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  134. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  135. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  136. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  137. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  138. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  139. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex08_custom_webapi.py +0 -0
  140. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  141. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex10_telegram_echo_bot.py +0 -0
  142. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  143. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex12_telegram_smart_bot.py +0 -0
  144. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  145. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex14_wallets.py +0 -0
  146. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  147. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  148. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  149. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex18_deploy_container_webapi.py +0 -0
  150. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex19_deeploy_container_example.py +0 -0
  151. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  152. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex21_telegram_community_bot.py +0 -0
  153. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/ex22_deeploy_custom_code.py +0 -0
  154. {ratio1-3.4.47 → ratio1-3.4.48}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  155. {ratio1-3.4.47 → ratio1-3.4.48}/winrun.bat +0 -0
  156. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/README.md +0 -0
  157. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/_show_config_check.py +0 -0
  158. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/cstore_check.py +0 -0
  159. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/dauth_check.py +0 -0
  160. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/keys_check.py +0 -0
  161. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/node_info_check.py +0 -0
  162. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/ora_check.py +0 -0
  163. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/ora_intervals.py +0 -0
  164. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/ora_sign_check.py +0 -0
  165. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/owner_check.py +0 -0
  166. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/payload_check.py +0 -0
  167. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/session_check.py +0 -0
  168. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/w3_auth_check.py +0 -0
  169. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  170. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/w3_oracles_check.py +0 -0
  171. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/whitelist_check.py +0 -0
  172. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/_checks/workload_check.py +0 -0
  173. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/dates/check_date.py +0 -0
  174. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/debug/close_pipeline.py +0 -0
  175. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/decentralized/chain_dist_example.py +0 -0
  176. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  177. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  178. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/deeploy/checker.py +0 -0
  179. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/deeploy/checker2.py +0 -0
  180. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/deeploy/create_request.py +0 -0
  181. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/enc_dec/enc_dec_test.py +0 -0
  182. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/eth/balance.py +0 -0
  183. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/eth/eth_sign.py +0 -0
  184. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/eth/info.md +0 -0
  185. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/eth/send.py +0 -0
  186. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/eth/send_many.py +0 -0
  187. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/eth/sign.py +0 -0
  188. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/log.py +0 -0
  189. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/logger/run.py +0 -0
  190. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/lp/lp_checker.py +0 -0
  191. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  192. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  193. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/pipelines/start.py +0 -0
  194. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/pipelines/stop.py +0 -0
  195. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  196. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  197. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  198. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/sign/simple_payload_checker.py +0 -0
  199. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/sign/test_sign1.py +0 -0
  200. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/sign/test_sign2.py +0 -0
  201. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/test.py +0 -0
  202. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/tokens/get_check.py +0 -0
  203. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/utils/get_documentation.py +0 -0
  204. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/various/attach_example.py +0 -0
  205. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/various/ex1.py +0 -0
  206. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/various/hello.py +0 -0
  207. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/various/remote_exec.py +0 -0
  208. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/various/save_images.py +0 -0
  209. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/wl/wl_add.py +0 -0
  210. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  211. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  212. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  213. {ratio1-3.4.47 → ratio1-3.4.48}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.47
3
+ Version: 3.4.48
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.47"
7
+ version = "3.4.48"
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.47"
1
+ __VER__ = "3.4.48"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -28,6 +28,7 @@ Web3Vars = namedtuple(
28
28
  "r1_contract_address",
29
29
  "proxy_contract_address",
30
30
  "controller_contract_address",
31
+ "poai_manager_address",
31
32
  "get_oracles_abi",
32
33
  ]
33
34
  )
@@ -236,6 +237,7 @@ class _EVMMixin:
236
237
  proxy_contract_address = network_data[dAuth.EvmNetData.DAUTH_PROXYAPI_ADDR_KEY]
237
238
  str_genesis_date = network_data[dAuth.EvmNetData.EE_GENESIS_EPOCH_DATE_KEY]
238
239
  controller_contract_address = network_data[dAuth.EvmNetData.DAUTH_CONTROLLER_ADDR_KEY]
240
+ poai_manager_address = network_data[dAuth.EvmNetData.DAUTH_POAI_MANAGER_KEY]
239
241
  get_oracles_abi = network_data[dAuth.EvmNetData.DAUTH_GET_ORACLES_ABI]
240
242
  genesis_date = self.log.str_to_date(str_genesis_date).replace(tzinfo=timezone.utc)
241
243
  ep_sec = (
@@ -258,6 +260,7 @@ class _EVMMixin:
258
260
  r1_contract_address=r1_contract_address,
259
261
  proxy_contract_address=proxy_contract_address,
260
262
  controller_contract_address=controller_contract_address,
263
+ poai_manager_address=poai_manager_address,
261
264
  get_oracles_abi=get_oracles_abi,
262
265
  )
263
266
  return result
@@ -1294,6 +1297,62 @@ class _EVMMixin:
1294
1297
 
1295
1298
  return balances
1296
1299
 
1300
+ def web3_get_job_details(
1301
+ self,
1302
+ job_id: int,
1303
+ network: str = None
1304
+ ):
1305
+ """
1306
+ Retrieve license details for the specified node using getNodeLicenseDetails().
1307
+
1308
+ Parameters
1309
+ ----------
1310
+ job_id : int
1311
+ The job ID to retrieve details for.
1312
+
1313
+ network : str, optional
1314
+ The network to use. If None, defaults to self.evm_network.
1315
+
1316
+
1317
+ Returns
1318
+ -------
1319
+ dict
1320
+ A dictionary containing all job details returned by getJobDetails.
1321
+ """
1322
+ # Validate the job ID.
1323
+ assert isinstance(job_id, int), "Invalid job ID"
1324
+
1325
+ # Retrieve the necessary Web3 variables (pattern consistent with web3_send_r1).
1326
+ w3vars = self._get_web3_vars(network)
1327
+ network = w3vars.network
1328
+ contract = w3vars.w3.eth.contract(
1329
+ address=w3vars.poai_manager_address,
1330
+ abi=EVM_ABI_DATA.GET_JOB_DETAILS
1331
+ )
1332
+
1333
+ self.P(f"`getJobDetails` on {network} via {w3vars.rpc_url}", verbosity=2)
1334
+
1335
+ # Call the contract function to get details.
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
+ "requestTimestamp": result_tuple[1],
1343
+ "startTimestamp": result_tuple[2],
1344
+ "lastNodesChangeTimestamp": result_tuple[3],
1345
+ "jobType": result_tuple[4],
1346
+ "pricePerEpoch": result_tuple[5],
1347
+ "lastExecutionEpoch": result_tuple[6],
1348
+ "numberOfNodesRequested": result_tuple[7],
1349
+ "balance": result_tuple[8],
1350
+ "lastAllocatedEpoch": result_tuple[9],
1351
+ "activeNodes": result_tuple[10],
1352
+ }
1353
+ self.P(f"Job Details:\n{json.dumps(details, indent=2)}", verbosity=2)
1354
+
1355
+ return details
1297
1356
 
1298
1357
  def get_deeploy_url(self):
1299
1358
  """
@@ -9,6 +9,7 @@ class EvmNetData:
9
9
  DAUTH_R1_ADDR_KEY = 'EE_DAUTH_R1_ADDR'
10
10
  DAUTH_MND_ADDR_KEY = 'EE_DAUTH_MND_ADDR'
11
11
  DAUTH_PROXYAPI_ADDR_KEY = 'EE_DAUTH_PROXYAPI_ADDR'
12
+ DAUTH_POAI_MANAGER_KEY = 'EE_DAUTH_POAI_MANAGER'
12
13
 
13
14
  DAUTH_CONTROLLER_ADDR_KEY = 'EE_DAUTH_CONTROLLER_ADDR'
14
15
  DAUTH_GET_ORACLES_ABI = 'EE_DAUTH_GET_ORACLES_ABI'
@@ -219,6 +220,85 @@ _GET_ADDRESSES_BALANCES = [
219
220
  }
220
221
  ]
221
222
 
223
+ _GET_JOB_DETAILS_ABI = [
224
+ {
225
+ "inputs": [
226
+ {
227
+ "internalType": "uint256",
228
+ "name": "jobId",
229
+ "type": "uint256"
230
+ }
231
+ ],
232
+ "name": "getJobDetails",
233
+ "outputs": [
234
+ {
235
+ "components": [
236
+ {
237
+ "internalType": "uint256",
238
+ "name": "id",
239
+ "type": "uint256"
240
+ },
241
+ {
242
+ "internalType": "uint256",
243
+ "name": "requestTimestamp",
244
+ "type": "uint256"
245
+ },
246
+ {
247
+ "internalType": "uint256",
248
+ "name": "startTimestamp",
249
+ "type": "uint256"
250
+ },
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "lastNodesChangeTimestamp",
254
+ "type": "uint256"
255
+ },
256
+ {
257
+ "internalType": "uint256",
258
+ "name": "jobType",
259
+ "type": "uint256"
260
+ },
261
+ {
262
+ "internalType": "uint256",
263
+ "name": "pricePerEpoch",
264
+ "type": "uint256"
265
+ },
266
+ {
267
+ "internalType": "uint256",
268
+ "name": "lastExecutionEpoch",
269
+ "type": "uint256"
270
+ },
271
+ {
272
+ "internalType": "uint256",
273
+ "name": "numberOfNodesRequested",
274
+ "type": "uint256"
275
+ },
276
+ {
277
+ "internalType": "int256",
278
+ "name": "balance",
279
+ "type": "int256"
280
+ },
281
+ {
282
+ "internalType": "uint256",
283
+ "name": "lastAllocatedEpoch",
284
+ "type": "uint256"
285
+ },
286
+ {
287
+ "internalType": "address[]",
288
+ "name": "activeNodes",
289
+ "type": "address[]"
290
+ }
291
+ ],
292
+ "internalType": "struct JobDetails",
293
+ "name": "",
294
+ "type": "tuple"
295
+ }
296
+ ],
297
+ "stateMutability": "view",
298
+ "type": "function"
299
+ }
300
+ ]
301
+
222
302
  # A minimal ERC20 ABI for balanceOf, transfer, and decimals functions.
223
303
  _ERC20_ABI = [
224
304
  {
@@ -263,6 +343,7 @@ EVM_NET_DATA = {
263
343
  EvmNetData.DAUTH_R1_ADDR_KEY : "0x6444C6c2D527D85EA97032da9A7504d6d1448ecF",
264
344
  EvmNetData.DAUTH_MND_ADDR_KEY : "0x0C431e546371C87354714Fcc1a13365391A549E2",
265
345
  EvmNetData.DAUTH_PROXYAPI_ADDR_KEY : "0xa2fDD4c7E93790Ff68a01f01AA789D619F12c6AC",
346
+ EvmNetData.DAUTH_POAI_MANAGER_KEY : "0xTODO",
266
347
  EvmNetData.DAUTH_RPC_KEY : "https://base-mainnet.public.blastapi.io",
267
348
  EvmNetData.EE_GENESIS_EPOCH_DATE_KEY : "2025-05-23 16:00:00",
268
349
  EvmNetData.EE_EPOCH_INTERVALS_KEY : 24,
@@ -280,6 +361,7 @@ EVM_NET_DATA = {
280
361
  EvmNetData.DAUTH_R1_ADDR_KEY : "0xCC96f389F45Fc08b4fa8e2bC4C7DA9920292ec64",
281
362
  EvmNetData.DAUTH_MND_ADDR_KEY : "0xa8d7FFCE91a888872A9f5431B4Dd6c0c135055c1",
282
363
  EvmNetData.DAUTH_PROXYAPI_ADDR_KEY : "0xd1c7Dca934B37FAA402EB2EC64F6644d6957bE3b",
364
+ EvmNetData.DAUTH_POAI_MANAGER_KEY : "0xTODO",
283
365
  EvmNetData.DAUTH_RPC_KEY : "https://base-sepolia.public.blastapi.io",
284
366
  EvmNetData.EE_GENESIS_EPOCH_DATE_KEY : "2025-05-23 16:00:00",
285
367
  EvmNetData.EE_EPOCH_INTERVALS_KEY : 24,
@@ -298,6 +380,7 @@ EVM_NET_DATA = {
298
380
  EvmNetData.DAUTH_R1_ADDR_KEY : "0x277CbD0Cf25F4789Bc04035eCd03d811FAf73691",
299
381
  EvmNetData.DAUTH_MND_ADDR_KEY : "0x17B8934dc5833CdBa1eF42D13D65D677C4727748",
300
382
  EvmNetData.DAUTH_PROXYAPI_ADDR_KEY : "0xFcF04c9A67330431Af75a546615E4881BD8bdC78",
383
+ EvmNetData.DAUTH_POAI_MANAGER_KEY : "0x9A41f43494fCD592577228fE8E4014f2D75d2aa3",
301
384
  EvmNetData.DAUTH_RPC_KEY : "https://base-sepolia.public.blastapi.io",
302
385
  EvmNetData.EE_GENESIS_EPOCH_DATE_KEY : "2025-06-30 07:00:00",
303
386
  EvmNetData.EE_EPOCH_INTERVALS_KEY : 1,
@@ -346,5 +429,6 @@ class EVM_ABI_DATA:
346
429
  GET_WALLET_NODES = _GET_WALLET_NODES
347
430
  GET_ADDRESSES_BALANCES = _GET_ADDRESSES_BALANCES
348
431
  IS_NODE_ACTIVE = _DAUTH_ABI_IS_NODE_ACTIVE
432
+ GET_JOB_DETAILS = _GET_JOB_DETAILS_ABI
349
433
  ERC20_ABI = _ERC20_ABI
350
434
 
@@ -0,0 +1,25 @@
1
+ import os
2
+ import json
3
+
4
+
5
+ from ratio1 import Logger, const
6
+ from ratio1.bc import DefaultBlockEngine
7
+
8
+
9
+
10
+ if __name__ == '__main__' :
11
+
12
+ l = Logger("ENC")
13
+ eng = DefaultBlockEngine(
14
+ log=l, name="default",
15
+ user_config=True
16
+ )
17
+
18
+ eng.reset_network("devnet")
19
+
20
+ l.P(f"Checking web3 API on {eng.evm_network}", color='b')
21
+
22
+ job_id = 1
23
+ job_details = eng.web3_get_job_details(job_id)
24
+
25
+ l.P(f"Job Details for job id {job_id}:\n{json.dumps(job_details, indent=2)}", color='b')
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