ratio1 3.4.76__tar.gz → 3.4.78__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.76 → ratio1-3.4.78}/PKG-INFO +1 -1
- {ratio1-3.4.76 → ratio1-3.4.78}/pyproject.toml +1 -1
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/_ver.py +1 -1
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/cli_commands.py +1 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/nodes.py +4 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/code_cheker/base.py +1 -1
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex21_telegram_community_bot.py +30 -6
- {ratio1-3.4.76 → ratio1-3.4.78}/.devcontainer/Dockerfile +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/.devcontainer/devcontainer.json +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/.gitattributes +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/.github/workflows/python-publish.yml +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/.gitignore +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/.vscode/launch.json +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/LICENSE +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/README.md +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/TODOs.md +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/r1ctl.MD +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/distributed_custom_code_presets.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/generic_session.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/instance.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/payload/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/payload/payload.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/pipeline.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/plugin_template.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/responses.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/transaction.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base/webapp_pipeline.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/base_decentra_object.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/base.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/chain.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/ec.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/bc/evm.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/51.15.142.167.crt +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/README.md +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/cli.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/oracles.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/cli/package_update.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/code_cheker/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/code_cheker/checker.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/amqp_wrapper.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/base_comm_wrapper.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/comm/mqtt_wrapper.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/README.md +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/apps.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/base.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/comms.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/environment.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/evm_net.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/formatter.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/heartbeat.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/misc.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/payload.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/const/plugins/deeploy_const.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/default/session/mqtt_session.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/base/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/base/base_formatter.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/a_dummy.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/aixp1.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/default/default.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/io_formatter/io_formatter_manager.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ifps_keygen +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/ipfs/r1fs.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/base_logger.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/small_logger.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/unix.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/utils.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/win32.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/logging/tzlocal/windows_tz.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/plugins_manager_mixin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/__init__.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/comm_utils.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/config.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/dotenv.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/requirements.txt +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/template.env +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/.example_env +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/_example_pk_sdk.pem +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/eth2025/deploy_home_safety.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex01_part1_connect.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex01_part2_filter.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex01_part3_adv_filter.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex02_part1_deploy_webapi.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex02_part2_deploy_plugin.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex08_custom_webapi.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex10_telegram_echo_bot.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex12_telegram_smart_bot.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex14_wallets.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex18_deploy_container_webapi.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex19_deeploy_container_example.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/ex22_deeploy_custom_code.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/winrun.bat +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/README.md +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/_show_config_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/cstore_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/dauth_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/keys_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/node_info_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/ora_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/ora_intervals.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/ora_sign_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/owner_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/payload_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/session_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_auth_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_nodes_licenses.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_oracles_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/w3_poai_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/whitelist_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/_checks/workload_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/ai4e/delete.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/ai4e/launcher.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/dates/check_date.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/debug/close_pipeline.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/decentralized/chain_dist_example.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/deeploy/checker.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/deeploy/checker2.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/deeploy/create_request.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/enc_dec/enc_dec_test.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/allocate_rewards.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/balance.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/eth_sign.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/info.md +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/send.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/send_many.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/eth/sign.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/log.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/logger/run.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/lp/lp_checker.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/multi-enc-dec/multi_test1.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/multi-enc-dec/multi_test2.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/netmon/check_netmon.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/netmon/netmon_data.json +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/pipelines/start.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/pipelines/stop.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/scripts/monitoring/collect_messages.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/sign/simple_payload_checker.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/sign/test_sign1.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/sign/test_sign2.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/test.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/tokens/get_check.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/utils/get_documentation.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/attach_example.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/ex1.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/hello.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/remote_exec.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/various/save_images.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/wl/wl_add.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
- {ratio1-3.4.76 → ratio1-3.4.78}/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.78
|
|
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
|
|
@@ -75,6 +75,7 @@ CLI_COMMANDS = {
|
|
|
75
75
|
"--owner" : "Get the apps for a particular owner/initiator",
|
|
76
76
|
"--full": "Include admin apps (flag)",
|
|
77
77
|
"--json": "Output the entire JSON config of applications (flag)",
|
|
78
|
+
"--wide": "Display all available information (flag)",
|
|
78
79
|
}
|
|
79
80
|
},
|
|
80
81
|
"networks": {
|
|
@@ -151,6 +151,7 @@ def get_apps(args):
|
|
|
151
151
|
show_full = args.full
|
|
152
152
|
as_json = args.json
|
|
153
153
|
owner = args.owner
|
|
154
|
+
wide = args.wide
|
|
154
155
|
|
|
155
156
|
# 1. Init session
|
|
156
157
|
from ratio1 import Session
|
|
@@ -203,6 +204,9 @@ def get_apps(args):
|
|
|
203
204
|
),
|
|
204
205
|
color='b'
|
|
205
206
|
)
|
|
207
|
+
|
|
208
|
+
if not wide:
|
|
209
|
+
df_apps = df_apps[['Node Alias', 'Owner Alias', 'App', 'Plugin', 'Id', 'Probe', 'LastError']]
|
|
206
210
|
log_with_color(f"{df_apps}\n")
|
|
207
211
|
#end if as_json
|
|
208
212
|
#end if res is not None
|
|
@@ -229,7 +229,7 @@ class BaseCodeChecker:
|
|
|
229
229
|
for line in lines:
|
|
230
230
|
rstripped = line.rstrip()
|
|
231
231
|
stripped = line.lstrip()
|
|
232
|
-
is_loop = stripped.startswith(('while', 'for'))
|
|
232
|
+
is_loop = stripped.startswith(('while ', 'for '))
|
|
233
233
|
has_loop = has_loop or is_loop
|
|
234
234
|
if is_loop and rstripped[-1] != ':':
|
|
235
235
|
parts = line.split(':')
|
|
@@ -35,6 +35,8 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
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
37
|
|
|
38
|
+
need_last_epoch_info = "need_last_epoch_info"
|
|
39
|
+
|
|
38
40
|
def get_erc721_total_supply(contract_address: str) -> int:
|
|
39
41
|
return int(plugin.requests.post("https://base-mainnet.public.blastapi.io", json={
|
|
40
42
|
"jsonrpc": "2.0",
|
|
@@ -93,6 +95,7 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
93
95
|
plugin.obj_cache[alert_cache_key] = {}
|
|
94
96
|
plugin.obj_cache[watched_wallets_loops_delay_cache_key] = 30
|
|
95
97
|
plugin.obj_cache[cache_already_read_key] = True # We use this flag to read the cache only once at the first run
|
|
98
|
+
|
|
96
99
|
|
|
97
100
|
# Check users' watched wallets and notify if any node is offline
|
|
98
101
|
if plugin.obj_cache.get(watched_wallets_loops_delay_cache_key) == 30:
|
|
@@ -123,9 +126,12 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
123
126
|
else:
|
|
124
127
|
plugin.obj_cache[watched_wallets_loops_delay_cache_key] += 1
|
|
125
128
|
|
|
129
|
+
|
|
130
|
+
need_info = plugin.obj_cache.get(need_last_epoch_info, False)
|
|
131
|
+
|
|
126
132
|
# Check if the epoch review has already been processed for the last epoch
|
|
127
133
|
if plugin.obj_cache.get(epoch_review_cache_key) is not None:
|
|
128
|
-
if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch) is not None:
|
|
134
|
+
if plugin.obj_cache.get(epoch_review_cache_key).get(last_epoch) is not None and not need_info:
|
|
129
135
|
return
|
|
130
136
|
else:
|
|
131
137
|
plugin.P("Epoch review not processed for last epoch, continuing with processing.")
|
|
@@ -133,6 +139,8 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
133
139
|
plugin.P("No epoch review data found, initializing cache.")
|
|
134
140
|
plugin.obj_cache[epoch_review_cache_key] = {}
|
|
135
141
|
plugin.obj_cache[watched_wallets_cache_key] = {}
|
|
142
|
+
|
|
143
|
+
plugin.obj_cache[need_last_epoch_info] = False # set false no matter wwhat as we display the info
|
|
136
144
|
|
|
137
145
|
# Get all the required data for the epoch review
|
|
138
146
|
last_epoch_nd_mining, nodes_count, nd_count, mnd_count, gnd_count = get_nodes_details()
|
|
@@ -143,17 +151,20 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
143
151
|
current_burn = float(tokenDetails["burned"])
|
|
144
152
|
nd_current_burn = float(tokenDetails["ndContractBurn"])
|
|
145
153
|
current_poai_burn = current_burn - nd_current_burn
|
|
146
|
-
circulating_supply = tokenDetails["circulatingSupply"]
|
|
147
|
-
total_supply = tokenDetails["totalSupply"]
|
|
154
|
+
circulating_supply = float(tokenDetails["circulatingSupply"])
|
|
155
|
+
total_supply = float(tokenDetails["totalSupply"])
|
|
148
156
|
burned_last_epoch = get_burned_last_epoch(current_burn)
|
|
149
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
|
|
150
161
|
burned_nd_last_epoch = burned_last_epoch - burned_poai_last_epoch
|
|
151
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}")
|
|
152
163
|
|
|
153
164
|
nd_supply = get_erc721_total_supply("0xE658DF6dA3FB5d4FBa562F1D5934bd0F9c6bd423")
|
|
154
165
|
mnd_supply = get_erc721_total_supply("0x0C431e546371C87354714Fcc1a13365391A549E2")
|
|
155
166
|
total_licenses = nd_supply + mnd_supply
|
|
156
|
-
plugin.P(f"Total ND supply: {nd_supply}, Total MND supply: {mnd_supply}, Total Licenses: {total_licenses}")
|
|
167
|
+
plugin.P(f"Total ND supply: {nd_supply}, Total MND supply: {mnd_supply}, Total Licenses: {total_licenses}")
|
|
157
168
|
|
|
158
169
|
# Prepare the message to send to the group chat
|
|
159
170
|
message = f"📆 Epoch {last_epoch} Summary\n\n"
|
|
@@ -165,6 +176,7 @@ def loop_processing(plugin: CustomPluginTemplate):
|
|
|
165
176
|
if burned_nd_last_epoch > 0:
|
|
166
177
|
message += f"🔥 Last Epoch License Sales Burn: {(burned_nd_last_epoch):,.2f} R1\n"
|
|
167
178
|
if burned_poai_last_epoch > 0:
|
|
179
|
+
message += f"🎁 Last Epoch PoAI Rewards: {(poai_usdc_last_epoch):,.2f} USDC\n"
|
|
168
180
|
message += f"🔥 Last Epoch PoAI Burn: {(burned_poai_last_epoch):,.2f} R1\n"
|
|
169
181
|
message += f"🔥 Total Burn: {(current_burn):,.2f} R1\n"
|
|
170
182
|
plugin.send_message_to_user(user_id=plugin.cfg_chat_id, text=message)
|
|
@@ -186,7 +198,7 @@ def reply(plugin: CustomPluginTemplate, message: str, user: str, chat_id: str):
|
|
|
186
198
|
"""
|
|
187
199
|
watched_wallets_cache_key = f"ratio1_watched_wallets"
|
|
188
200
|
diskapi_watched_wallets_file_name = "ratio1_watched_wallets_data.pkl"
|
|
189
|
-
|
|
201
|
+
|
|
190
202
|
def handle_watch():
|
|
191
203
|
user_watched_wallets = plugin.obj_cache.get(watched_wallets_cache_key).get(chat_id, [])
|
|
192
204
|
message_parts = message.split(" ")
|
|
@@ -270,6 +282,15 @@ def reply(plugin: CustomPluginTemplate, message: str, user: str, chat_id: str):
|
|
|
270
282
|
|
|
271
283
|
def handle_start():
|
|
272
284
|
return "Welcome to the Ratio1 Bot! Use /watch <wallet_address> to start watching your nodes. You will receive notifications when your nodes are offline."
|
|
285
|
+
|
|
286
|
+
def hands_last_epoch_info():
|
|
287
|
+
need_last_epoch_info = "need_last_epoch_info"
|
|
288
|
+
if user in plugin.cfg_admins:
|
|
289
|
+
plugin.obj_cache[need_last_epoch_info] = True
|
|
290
|
+
msg = f"Hi Master {user}! Forcing last epoch info display."
|
|
291
|
+
else:
|
|
292
|
+
msg = f"Sorry {user}, you are not authorized to force last epoch info display."
|
|
293
|
+
return msg
|
|
273
294
|
|
|
274
295
|
# We do not want to reply to messages in the Ratio1 Community Group
|
|
275
296
|
if str(chat_id) == str(plugin.cfg_chat_id):
|
|
@@ -290,6 +311,8 @@ def reply(plugin: CustomPluginTemplate, message: str, user: str, chat_id: str):
|
|
|
290
311
|
return handle_network_status()
|
|
291
312
|
if message.startswith("/start"):
|
|
292
313
|
return handle_start()
|
|
314
|
+
if message.startswith("/last_epoch_info"):
|
|
315
|
+
return hands_last_epoch_info()
|
|
293
316
|
|
|
294
317
|
return "Please use the /watch command followed by your Ethereum Wallet address to start watching the nodes on your wallet."
|
|
295
318
|
|
|
@@ -311,7 +334,7 @@ if __name__ == "__main__":
|
|
|
311
334
|
session.P(f"Connecting to node: {node}")
|
|
312
335
|
session.wait_for_node(node)
|
|
313
336
|
|
|
314
|
-
COMMAND = "
|
|
337
|
+
COMMAND = "START" # "START" or "STOP"
|
|
315
338
|
|
|
316
339
|
if COMMAND == "START":
|
|
317
340
|
pipeline, _ = session.create_telegram_simple_bot(
|
|
@@ -321,6 +344,7 @@ if __name__ == "__main__":
|
|
|
321
344
|
chat_id=chat_id,
|
|
322
345
|
message_handler=reply,
|
|
323
346
|
processing_handler=loop_processing,
|
|
347
|
+
admins=['401110073', '683223680'],
|
|
324
348
|
)
|
|
325
349
|
pipeline.deploy()
|
|
326
350
|
elif COMMAND == "STOP":
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.76 → ratio1-3.4.78}/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.76 → ratio1-3.4.78}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py
RENAMED
|
File without changes
|
{ratio1-3.4.76 → ratio1-3.4.78}/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.76 → ratio1-3.4.78}/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.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py
RENAMED
|
File without changes
|
{ratio1-3.4.76 → ratio1-3.4.78}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|