ratio1 3.4.103__tar.gz → 3.4.105__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ratio1-3.4.103 → ratio1-3.4.105}/PKG-INFO +1 -1
- {ratio1-3.4.103 → ratio1-3.4.105}/pyproject.toml +1 -1
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/_ver.py +1 -1
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/evm_net.py +2 -2
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex21_telegram_community_bot.py +61 -12
- {ratio1-3.4.103 → ratio1-3.4.105}/.devcontainer/Dockerfile +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/.devcontainer/devcontainer.json +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/.gitattributes +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/.github/workflows/python-publish.yml +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/.gitignore +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/.vscode/launch.json +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/LICENSE +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/README.md +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/TODOs.md +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/r1ctl.MD +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/distributed_custom_code_presets.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/generic_session.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/instance.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/payload/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/payload/payload.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/pipeline.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/plugin_template.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/responses.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/transaction.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base/webapp_pipeline.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/base_decentra_object.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/base.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/chain.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/ec.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/bc/evm.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/141.136.35.100.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/195.35.29.4.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/31.97.72.187.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/51.15.142.167.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/72.60.187.24.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/72.60.81.67.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/72.60.83.78.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/README.md +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/cli.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/cli_commands.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/nodes.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/oracles.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/cli/package_update.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/code_cheker/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/code_cheker/base.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/code_cheker/checker.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/amqp_wrapper.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/base_comm_wrapper.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/comm/mqtt_wrapper.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/README.md +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/apps.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/base.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/comms.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/environment.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/formatter.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/heartbeat.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/misc.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/payload.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/const/plugins/deeploy_const.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/default/session/mqtt_session.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/base/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/base/base_formatter.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/a_dummy.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/aixp1.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/default/default.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/io_formatter/io_formatter_manager.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ifps_keygen +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/ipfs/r1fs.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/base_logger.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/small_logger.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/unix.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/utils.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/win32.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/tzlocal/windows_tz.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/plugins_manager_mixin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/__init__.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/comm_utils.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/config.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/dotenv.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/requirements.txt +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/template.env +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/.example_env +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/_example_pk_sdk.pem +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/eth2025/deploy_home_safety.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex01_part1_connect.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex01_part2_filter.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex01_part3_adv_filter.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex02_part1_deploy_webapi.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex02_part2_deploy_plugin.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex08_custom_webapi.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex10_telegram_echo_bot.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex12_telegram_smart_bot.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex14_wallets.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex18_deploy_container_webapi.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex19_deeploy_container_example.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex22_deeploy_custom_code.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex23_deploy_worker_app.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/winrun.bat +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/README.md +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/_show_config_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/cstore_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/dauth_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/keys_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/node_info_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/ora_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/ora_intervals.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/ora_sign_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/owner_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/payload_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/session_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_all_active_jobs_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_auth_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_first_closable_job_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_nodes_licenses.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_oracles_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/w3_poai_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/whitelist_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/_checks/workload_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/ai4e/delete.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/ai4e/launcher.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/dates/check_date.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/debug/close_pipeline.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/decentralized/chain_dist_example.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/deeploy/checker.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/deeploy/checker2.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/deeploy/create_request.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/enc_dec/enc_dec_test.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/allocate_rewards.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/balance.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/eth_sign.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/info.md +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/send.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/send_many.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/eth/sign.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/log.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/logger/run.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/lp/lp_checker.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/multi-enc-dec/multi_test1.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/multi-enc-dec/multi_test2.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/netmon/check_netmon.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/netmon/netmon_data.json +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/pipelines/start.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/pipelines/stop.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/scripts/monitoring/collect_messages.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/sign/simple_payload_checker.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/sign/test_sign1.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/sign/test_sign2.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/test.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/tokens/get_check.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/utils/get_documentation.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/attach_example.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/ex1.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/hello.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/remote_exec.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/various/save_images.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/wl/wl_add.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
- {ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ratio1
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.105
|
|
4
4
|
Summary: `ratio1` or Ration1 SDK is the Python SDK required for client app development for the Ratio1 ecosystem
|
|
5
5
|
Project-URL: Homepage, https://github.com/Ratio1/ratio1_sdk
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/Ratio1/ratio1_sdk/issues
|
|
@@ -616,8 +616,8 @@ EVM_NET_CONSTANTS = {
|
|
|
616
616
|
"0xai_A61eKDV1otIH6uWy3zDlbJNJUWayp1jAsirOuYxztf82", # tr1s-02
|
|
617
617
|
],
|
|
618
618
|
EvmNetConstants.EE_ORACLE_SYNC_USE_R1FS_KEY: False, # Do not use R1FS for oracle sync in testnet.
|
|
619
|
-
EvmNetConstants.ORACLE_SYNC_BLOCKCHAIN_PRESENCE_MIN_THRESHOLD_KEY: 0.
|
|
620
|
-
EvmNetConstants.ORACLE_SYNC_ONLINE_PRESENCE_MIN_THRESHOLD_KEY: 0.
|
|
619
|
+
EvmNetConstants.ORACLE_SYNC_BLOCKCHAIN_PRESENCE_MIN_THRESHOLD_KEY: 0.15,
|
|
620
|
+
EvmNetConstants.ORACLE_SYNC_ONLINE_PRESENCE_MIN_THRESHOLD_KEY: 0.2,
|
|
621
621
|
},
|
|
622
622
|
EvmNetData.DEVNET: {
|
|
623
623
|
EvmNetConstants.EE_NET_MON_01_SUPERVISOR_LOG_TIME_KEY: 60, # Log every minute.
|
|
@@ -34,6 +34,7 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
34
34
|
cache_already_read_key = f"ratio1_epoch_review_already_read"
|
|
35
35
|
diskapi_epoch_review_file_name = "ratio1_epoch_review_data.pkl"
|
|
36
36
|
diskapi_watched_wallets_file_name = "ratio1_watched_wallets_data.pkl"
|
|
37
|
+
diskapi_alerts_file_name = "ratio1_offline_node_alerts_data.pkl"
|
|
37
38
|
|
|
38
39
|
need_last_epoch_info = "need_last_epoch_info"
|
|
39
40
|
|
|
@@ -78,16 +79,20 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
78
79
|
if plugin.obj_cache.get(cache_already_read_key) is None:
|
|
79
80
|
plugin.obj_cache[epoch_review_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_epoch_review_file_name) or {}
|
|
80
81
|
plugin.obj_cache[watched_wallets_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_watched_wallets_file_name) or {}
|
|
81
|
-
plugin.obj_cache[alert_cache_key] = {}
|
|
82
|
-
plugin.obj_cache[watched_wallets_loops_delay_cache_key] =
|
|
82
|
+
plugin.obj_cache[alert_cache_key] = plugin.diskapi_load_pickle_from_data(diskapi_alerts_file_name) or {}
|
|
83
|
+
plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 10
|
|
83
84
|
plugin.obj_cache[cache_already_read_key] = True # We use this flag to read the cache only once at the first run
|
|
84
85
|
|
|
85
86
|
|
|
86
87
|
# Check users' watched wallets and notify if any node is offline
|
|
87
|
-
if plugin.obj_cache.get(watched_wallets_loops_delay_cache_key) ==
|
|
88
|
+
if plugin.obj_cache.get(watched_wallets_loops_delay_cache_key) == 10:
|
|
89
|
+
alert_changes = False
|
|
88
90
|
watched_wallets = plugin.obj_cache.get(watched_wallets_cache_key)
|
|
91
|
+
offline_node_min_seens = plugin.cfg_offline_node_min_seens
|
|
89
92
|
if watched_wallets is not None:
|
|
90
93
|
for user, wallets in watched_wallets.items():
|
|
94
|
+
new_online_nodes = []
|
|
95
|
+
new_offline_nodes = []
|
|
91
96
|
for wallet in wallets:
|
|
92
97
|
wallet_nodes = plugin.bc.get_wallet_nodes(wallet)
|
|
93
98
|
for node in wallet_nodes:
|
|
@@ -97,17 +102,56 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
97
102
|
node_alert_cache_key = f"{user}-{node}"
|
|
98
103
|
node_internal_addr = plugin.bc.eth_addr_to_internal_addr(node)
|
|
99
104
|
node_is_online = plugin.netmon.network_node_is_online(node_internal_addr)
|
|
105
|
+
node_cache_value = plugin.obj_cache[alert_cache_key].get(node_alert_cache_key)
|
|
100
106
|
if node_is_online:
|
|
101
|
-
if
|
|
102
|
-
# Node was previously offline
|
|
103
|
-
|
|
104
|
-
|
|
107
|
+
if node_cache_value is not None:
|
|
108
|
+
# Node was previously offline
|
|
109
|
+
if node_cache_value >= offline_node_min_seens:
|
|
110
|
+
# If we had notified the user, we notify them that the node is back online
|
|
111
|
+
new_online_nodes.append(node)
|
|
105
112
|
plugin.obj_cache[alert_cache_key][node_alert_cache_key] = None
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
alert_changes = True
|
|
114
|
+
else:
|
|
115
|
+
# Node is offline
|
|
116
|
+
if node_cache_value is None:
|
|
117
|
+
plugin.obj_cache[alert_cache_key][node_alert_cache_key] = 1
|
|
118
|
+
alert_changes = True
|
|
119
|
+
if offline_node_min_seens == 1:
|
|
120
|
+
# We need to notify the user
|
|
121
|
+
new_offline_nodes.append(node)
|
|
122
|
+
elif node_cache_value < offline_node_min_seens:
|
|
123
|
+
# The node was already offline but we have not notified the user yet
|
|
124
|
+
new_value = node_cache_value + 1
|
|
125
|
+
plugin.obj_cache[alert_cache_key][node_alert_cache_key] = new_value
|
|
126
|
+
alert_changes = True
|
|
127
|
+
if new_value >= offline_node_min_seens:
|
|
128
|
+
# We need to notify the user
|
|
129
|
+
new_offline_nodes.append(node)
|
|
130
|
+
# endfor wallet_nodes
|
|
131
|
+
# endfor wallets
|
|
132
|
+
if len(new_online_nodes) > 0:
|
|
133
|
+
if len(new_online_nodes) == 1:
|
|
134
|
+
message = f"✅ Node {plugin.netmon.network_node_eeid(node_internal_addr)} ({new_online_nodes[0]}) is back online."
|
|
135
|
+
else:
|
|
136
|
+
message = f"✅ The following nodes are back online:\n"
|
|
137
|
+
for node in new_online_nodes:
|
|
138
|
+
message += f"- {plugin.netmon.network_node_eeid(plugin.bc.eth_addr_to_internal_addr(node))} ({node})\n"
|
|
139
|
+
plugin.send_message_to_user(user_id=user, text=message)
|
|
140
|
+
# endif new_online_nodes
|
|
141
|
+
if len(new_offline_nodes) > 0:
|
|
142
|
+
if len(new_offline_nodes) == 1:
|
|
143
|
+
message = f"⚠️ Node {plugin.netmon.network_node_eeid(node_internal_addr)} ({new_offline_nodes[0]}) is offline. Please check your node status."
|
|
144
|
+
else:
|
|
145
|
+
message = f"⚠️ The following nodes are offline:\n"
|
|
146
|
+
for node in new_offline_nodes:
|
|
147
|
+
message += f"- {plugin.netmon.network_node_eeid(plugin.bc.eth_addr_to_internal_addr(node))} ({node})\n"
|
|
148
|
+
message += "Please check your nodes status."
|
|
149
|
+
plugin.send_message_to_user(user_id=user, text=message)
|
|
150
|
+
# endif new_offline_nodes
|
|
151
|
+
# endfor user, wallets
|
|
152
|
+
if alert_changes:
|
|
153
|
+
plugin.diskapi_save_pickle_to_data(plugin.obj_cache.get(alert_cache_key), diskapi_alerts_file_name)
|
|
154
|
+
# endif watched_wallets is not None
|
|
111
155
|
plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 0
|
|
112
156
|
else:
|
|
113
157
|
plugin.obj_cache[watched_wallets_loops_delay_cache_key] += 1
|
|
@@ -144,6 +188,8 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
144
188
|
burned_nd_last_epoch = float(apiResponse["epochNdBurnR1"])
|
|
145
189
|
burned_poai_last_epoch = float(apiResponse["epochPoaiBurnR1"])
|
|
146
190
|
poai_usdc_last_epoch = float(apiResponse["epochPoaiRewardsUsdc"])
|
|
191
|
+
token_burn_last_epoch = float(apiResponse["dailyTokenBurn"])
|
|
192
|
+
ecosystem_token_burn_last_epoch = token_burn_last_epoch - burned_nd_last_epoch - burned_poai_last_epoch
|
|
147
193
|
total_burn = float(apiResponse["totalBurn"])
|
|
148
194
|
|
|
149
195
|
nd_supply = get_erc721_total_supply("0xE658DF6dA3FB5d4FBa562F1D5934bd0F9c6bd423")
|
|
@@ -163,6 +209,8 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
163
209
|
if burned_poai_last_epoch > 0:
|
|
164
210
|
message += f"🎁 Last Epoch PoAI Rewards: {(poai_usdc_last_epoch):,.2f} USDC\n"
|
|
165
211
|
message += f"🔥 Last Epoch PoAI Burn: {(burned_poai_last_epoch):,.2f} R1\n"
|
|
212
|
+
if ecosystem_token_burn_last_epoch > 0:
|
|
213
|
+
message += f"🔥 Last Epoch Ecosystem Burn: {(ecosystem_token_burn_last_epoch):,.2f} R1\n"
|
|
166
214
|
message += f"🔥 Total Burn: {(total_burn):,.2f} R1\n"
|
|
167
215
|
plugin.send_message_to_user(user_id=plugin.cfg_chat_id, text=message)
|
|
168
216
|
|
|
@@ -327,6 +375,7 @@ if __name__ == "__main__":
|
|
|
327
375
|
message_handler=reply,
|
|
328
376
|
processing_handler=loop_processing,
|
|
329
377
|
admins=['401110073', '683223680'],
|
|
378
|
+
offline_node_min_seens=2,
|
|
330
379
|
process_delay=10,
|
|
331
380
|
)
|
|
332
381
|
pipeline.deploy()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.103 → ratio1-3.4.105}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.103 → ratio1-3.4.105}/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
|
{ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/general_serialization_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.103 → ratio1-3.4.105}/ratio1/logging/logger_mixins/pickle_serialization_mixin.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
|
{ratio1-3.4.103 → ratio1-3.4.105}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py
RENAMED
|
File without changes
|
{ratio1-3.4.103 → ratio1-3.4.105}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.103 → ratio1-3.4.105}/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.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py
RENAMED
|
File without changes
|
{ratio1-3.4.103 → ratio1-3.4.105}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|