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.
- {ratio1-3.4.90 → ratio1-3.4.92}/PKG-INFO +1 -1
- {ratio1-3.4.90 → ratio1-3.4.92}/pyproject.toml +1 -1
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/_ver.py +1 -1
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/evm.py +35 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/evm_net.py +13 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex21_telegram_community_bot.py +18 -35
- ratio1-3.4.92/xperimental/_checks/w3_first_closable_job_check.py +22 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/.devcontainer/Dockerfile +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/.devcontainer/devcontainer.json +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/.gitattributes +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/.github/workflows/python-publish.yml +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/.gitignore +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/.vscode/launch.json +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/LICENSE +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/README.md +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/TODOs.md +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/r1ctl.MD +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/distributed_custom_code_presets.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/generic_session.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/instance.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/payload/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/payload/payload.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/pipeline.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/plugin_template.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/responses.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/transaction.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base/webapp_pipeline.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/base_decentra_object.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/base.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/chain.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/bc/ec.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/51.15.142.167.crt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/72.60.187.24.crt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/72.60.81.67.crt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/README.md +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/cli.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/cli_commands.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/nodes.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/oracles.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/cli/package_update.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/code_cheker/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/code_cheker/base.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/code_cheker/checker.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/amqp_wrapper.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/base_comm_wrapper.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/comm/mqtt_wrapper.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/README.md +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/apps.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/base.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/comms.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/environment.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/formatter.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/heartbeat.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/misc.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/payload.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/const/plugins/deeploy_const.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/session/mqtt_session.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/base/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/base/base_formatter.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/a_dummy.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/aixp1.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/default/default.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/io_formatter/io_formatter_manager.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ifps_keygen +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/ipfs/r1fs.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/base_logger.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/small_logger.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/unix.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/utils.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/win32.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/logging/tzlocal/windows_tz.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/plugins_manager_mixin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/__init__.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/comm_utils.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/config.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/dotenv.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/requirements.txt +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/template.env +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/.example_env +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/_example_pk_sdk.pem +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/eth2025/deploy_home_safety.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex01_part1_connect.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex01_part2_filter.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex01_part3_adv_filter.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex02_part1_deploy_webapi.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex02_part2_deploy_plugin.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex08_custom_webapi.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex10_telegram_echo_bot.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex12_telegram_smart_bot.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex14_wallets.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex18_deploy_container_webapi.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex19_deeploy_container_example.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex22_deeploy_custom_code.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/winrun.bat +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/README.md +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/_show_config_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/cstore_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/dauth_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/keys_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/node_info_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/ora_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/ora_intervals.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/ora_sign_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/owner_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/payload_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/session_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_auth_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_nodes_licenses.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_oracles_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/w3_poai_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/whitelist_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/_checks/workload_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/ai4e/delete.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/ai4e/launcher.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/dates/check_date.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/debug/close_pipeline.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/decentralized/chain_dist_example.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/deeploy/checker.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/deeploy/checker2.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/deeploy/create_request.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/enc_dec/enc_dec_test.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/allocate_rewards.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/balance.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/eth_sign.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/info.md +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/send.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/send_many.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/eth/sign.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/log.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/logger/run.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/lp/lp_checker.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/multi-enc-dec/multi_test1.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/multi-enc-dec/multi_test2.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/netmon/check_netmon.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/netmon/netmon_data.json +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/pipelines/start.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/pipelines/stop.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/collect_messages.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/sign/simple_payload_checker.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/sign/test_sign1.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/sign/test_sign2.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/test.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/tokens/get_check.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/utils/get_documentation.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/attach_example.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/ex1.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/hello.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/remote_exec.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/various/save_images.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/wl/wl_add.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
- {ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
- {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.
|
|
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
|
|
@@ -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
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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: {(
|
|
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
|
|
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
|
{ratio1-3.4.90 → ratio1-3.4.92}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
{ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py
RENAMED
|
File without changes
|
{ratio1-3.4.90 → ratio1-3.4.92}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
{ratio1-3.4.90 → ratio1-3.4.92}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py
RENAMED
|
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
|
{ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py
RENAMED
|
File without changes
|
{ratio1-3.4.90 → ratio1-3.4.92}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|