diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8716edd4a..49fcba81b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,6 +9,11 @@ repos: - id: check-merge-conflict - id: no-commit-to-branch args: ["--branch", "main"] + - repo: https://github.com/PyCQA/autoflake + rev: v2.3.1 + hooks: + - id: autoflake + args: ["--remove-all-unused-imports", "--in-place"] # Copied from https://black.readthedocs.io/en/stable/integrations/source_version_control.html - repo: https://github.com/psf/black-pre-commit-mirror rev: 24.4.2 diff --git a/asgi.py b/asgi.py index 484362295..5abdcabb2 100644 --- a/asgi.py +++ b/asgi.py @@ -4,7 +4,6 @@ """ import os -import sys # Set production environment os.environ.setdefault("UVICORN_WORKER", "true") diff --git a/backend/consensus/base.py b/backend/consensus/base.py index bc221d360..869ce8551 100644 --- a/backend/consensus/base.py +++ b/backend/consensus/base.py @@ -34,10 +34,6 @@ Validator, ) from backend.node.base import Node -from backend.node.create_nodes.providers import ( - get_default_provider_for, - validate_provider, -) from backend.node.types import ( ExecutionMode, Receipt, @@ -54,9 +50,8 @@ from backend.rollup.consensus_service import ConsensusService import backend.validators as validators -from backend.database_handler.validators_registry import ValidatorsRegistry from backend.node.genvm.origin.public_abi import ResultCode -from backend.consensus.types import ConsensusResult, ConsensusRound +from backend.consensus.types import ConsensusRound from backend.consensus.utils import determine_consensus_from_votes from backend.consensus.decisions import ( decide_undetermined, @@ -101,8 +96,6 @@ class NoValidatorsAvailableError(Exception): """Raised when no validators are available to process a transaction.""" - pass - def _redact_consensus_data_for_log(consensus_data_dict: dict) -> dict: """ @@ -1392,7 +1385,6 @@ async def handle( Args: context (TransactionContext): The context of the transaction. """ - pass class PendingState(TransactionState): diff --git a/backend/consensus/monitoring.py b/backend/consensus/monitoring.py index dcfae0102..c08376041 100644 --- a/backend/consensus/monitoring.py +++ b/backend/consensus/monitoring.py @@ -8,8 +8,7 @@ import psutil import threading from typing import Dict, Any, Optional, Set -from dataclasses import dataclass, field -from datetime import datetime +from dataclasses import dataclass from loguru import logger from contextlib import asynccontextmanager, contextmanager diff --git a/backend/consensus/worker.py b/backend/consensus/worker.py index 7ef1fc0f9..ee25e65a9 100644 --- a/backend/consensus/worker.py +++ b/backend/consensus/worker.py @@ -3,21 +3,14 @@ import os import asyncio import time -import traceback -import threading import uuid from contextlib import asynccontextmanager from typing import Callable, Optional, Any -from datetime import datetime, timedelta from sqlalchemy.orm import Session from sqlalchemy import text from backend.database_handler.models import Transactions, TransactionStatus from backend.database_handler.transactions_processor import TransactionsProcessor -from backend.database_handler.chain_snapshot import ChainSnapshot -from backend.database_handler.contract_snapshot import ContractSnapshot -from backend.database_handler.contract_processor import ContractProcessor -from backend.database_handler.accounts_manager import AccountsManager from backend.database_handler.errors import ContractNotFoundError from backend.domain.types import Transaction from backend.node.genvm.error_codes import GenVMInternalError diff --git a/backend/consensus/worker_service.py b/backend/consensus/worker_service.py index 7418e4bc0..a27487eb6 100644 --- a/backend/consensus/worker_service.py +++ b/backend/consensus/worker_service.py @@ -20,7 +20,6 @@ from backend.protocol_rpc.configuration import GlobalConfiguration from backend.rollup.consensus_service import ConsensusService import backend.validators as validators -from backend.database_handler.models import Base from loguru import logger from backend.protocol_rpc.app_lifespan import create_genvm_manager @@ -609,7 +608,6 @@ def health_check(): except Exception as e: # Log the error but don't fail the health check logger.error(f"Error parsing blocked_at timestamp: {e}") - pass current_txs.append(tx) return { diff --git a/backend/database_handler/chain_snapshot.py b/backend/database_handler/chain_snapshot.py index ea8c4c4ad..6afb8a6dc 100644 --- a/backend/database_handler/chain_snapshot.py +++ b/backend/database_handler/chain_snapshot.py @@ -1,7 +1,7 @@ # database_handler/chain_snapshot.py from typing import List -from sqlalchemy.orm import Session, selectinload, load_only +from sqlalchemy.orm import Session, selectinload from collections import defaultdict from backend.database_handler.transactions_processor import ( @@ -9,7 +9,6 @@ Transactions, ) from .transactions_processor import TransactionsProcessor -from backend.database_handler.validators_registry import ValidatorsRegistry class ChainSnapshot: diff --git a/backend/database_handler/contract_processor.py b/backend/database_handler/contract_processor.py index 49bbf82c2..32d1886c7 100644 --- a/backend/database_handler/contract_processor.py +++ b/backend/database_handler/contract_processor.py @@ -1,6 +1,5 @@ # database_handler/contract_processor.py from .models import CurrentState -from .contract_snapshot import ContractSnapshot from sqlalchemy.orm import Session diff --git a/backend/database_handler/migration/versions/3bc34e44eb72_add_providers_unique_constraint.py b/backend/database_handler/migration/versions/3bc34e44eb72_add_providers_unique_constraint.py index f1b7cc9c2..cb55f1238 100644 --- a/backend/database_handler/migration/versions/3bc34e44eb72_add_providers_unique_constraint.py +++ b/backend/database_handler/migration/versions/3bc34e44eb72_add_providers_unique_constraint.py @@ -9,7 +9,6 @@ from typing import Sequence, Union from alembic import op -import sqlalchemy as sa # revision identifiers, used by Alembic. diff --git a/backend/database_handler/migration/versions/67943badcbe9_add_activated_status.py b/backend/database_handler/migration/versions/67943badcbe9_add_activated_status.py index bbf6066d5..253c68349 100644 --- a/backend/database_handler/migration/versions/67943badcbe9_add_activated_status.py +++ b/backend/database_handler/migration/versions/67943badcbe9_add_activated_status.py @@ -10,7 +10,6 @@ from alembic import op import sqlalchemy as sa -from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. diff --git a/backend/database_handler/migration/versions/6fd3e2cea05b_add_default_to_llm_providers.py b/backend/database_handler/migration/versions/6fd3e2cea05b_add_default_to_llm_providers.py index 6983cfff4..b76aa8d22 100644 --- a/backend/database_handler/migration/versions/6fd3e2cea05b_add_default_to_llm_providers.py +++ b/backend/database_handler/migration/versions/6fd3e2cea05b_add_default_to_llm_providers.py @@ -10,7 +10,6 @@ from alembic import op import sqlalchemy as sa -from sqlalchemy.orm import Session from sqlalchemy import table, column from backend.node.create_nodes.providers import get_default_providers diff --git a/backend/database_handler/migration/versions/99015c5b5b78_add_snapshot_table.py b/backend/database_handler/migration/versions/99015c5b5b78_add_snapshot_table.py index d6c2c1577..ddfd1e137 100644 --- a/backend/database_handler/migration/versions/99015c5b5b78_add_snapshot_table.py +++ b/backend/database_handler/migration/versions/99015c5b5b78_add_snapshot_table.py @@ -10,7 +10,6 @@ from alembic import op import sqlalchemy as sa -from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision: str = "99015c5b5b78" diff --git a/backend/database_handler/migration/versions/ab256b41602a_remove_invalid_models.py b/backend/database_handler/migration/versions/ab256b41602a_remove_invalid_models.py index 7b62a22b1..0d0ebd8f0 100644 --- a/backend/database_handler/migration/versions/ab256b41602a_remove_invalid_models.py +++ b/backend/database_handler/migration/versions/ab256b41602a_remove_invalid_models.py @@ -9,7 +9,6 @@ from typing import Sequence, Union from alembic import op -import sqlalchemy as sa # revision identifiers, used by Alembic. diff --git a/backend/database_handler/migration/versions/db38e78684a8_add_providers_table.py b/backend/database_handler/migration/versions/db38e78684a8_add_providers_table.py index 60f83f2b3..e4eb2a7fa 100644 --- a/backend/database_handler/migration/versions/db38e78684a8_add_providers_table.py +++ b/backend/database_handler/migration/versions/db38e78684a8_add_providers_table.py @@ -10,10 +10,8 @@ from alembic import op import sqlalchemy as sa -from sqlalchemy.orm import sessionmaker from sqlalchemy.dialects import postgresql -from backend.database_handler.llm_providers import LLMProviderRegistry # revision identifiers, used by Alembic. revision: str = "db38e78684a8" diff --git a/backend/database_handler/transactions_processor.py b/backend/database_handler/transactions_processor.py index c22311161..e602f79a8 100644 --- a/backend/database_handler/transactions_processor.py +++ b/backend/database_handler/transactions_processor.py @@ -15,7 +15,6 @@ import time from backend.domain.types import TransactionType from web3 import Web3 -import os from backend.consensus.types import ConsensusRound from backend.consensus.utils import determine_consensus_from_votes from backend.rollup.web3_pool import Web3ConnectionPool diff --git a/backend/domain/types.py b/backend/domain/types.py index 5e8d49cec..af4cd7132 100644 --- a/backend/domain/types.py +++ b/backend/domain/types.py @@ -4,7 +4,6 @@ from dataclasses import dataclass, field import datetime -import decimal from enum import Enum, IntEnum import os from backend.database_handler.models import TransactionStatus diff --git a/backend/node/base.py b/backend/node/base.py index cf47f9a70..229d253d6 100644 --- a/backend/node/base.py +++ b/backend/node/base.py @@ -1,5 +1,3 @@ -from contextlib import redirect_stdout -from dataclasses import asdict import datetime import functools import json @@ -22,7 +20,6 @@ from backend.database_handler.contract_snapshot import ContractSnapshot from backend.node.types import Receipt, ExecutionMode, Vote, ExecutionResultStatus from backend.protocol_rpc.message_handler.base import IMessageHandler -from .genvm.origin import base_host from .genvm.origin import logger as genvm_logger from .genvm.origin import public_abi diff --git a/backend/node/genvm/base.py b/backend/node/genvm/base.py index 9927bda4b..fea64efe5 100644 --- a/backend/node/genvm/base.py +++ b/backend/node/genvm/base.py @@ -24,11 +24,9 @@ import base64 import asyncio import socket -import logging import backend.node.genvm.origin.base_host as genvmhost import collections.abc import functools -import datetime import abc import time import copy @@ -41,7 +39,6 @@ from dataclasses import dataclass from .origin.public_abi import * -from .origin.host_fns import Errors from .origin import base_host from .origin import logger as genvm_logger from .error_codes import ( @@ -303,7 +300,7 @@ def provide_result( error_code=error_code, ) elif res.result_kind == ResultCode.INTERNAL_ERROR: - from loguru import logger as _ilog + pass error_ctx = None error_str = str(res.result_data) diff --git a/backend/node/genvm/origin/base_host.py b/backend/node/genvm/origin/base_host.py index d856de290..ea4c16e22 100644 --- a/backend/node/genvm/origin/base_host.py +++ b/backend/node/genvm/origin/base_host.py @@ -8,19 +8,14 @@ import enum import socket import typing -import collections.abc import asyncio -import os -import sys import abc -import json import time import aiohttp from dataclasses import dataclass -from pathlib import Path from .calldata import Address from . import calldata as gvm_calldata diff --git a/backend/node/genvm/origin/host_fns.py b/backend/node/genvm/origin/host_fns.py index b47b103df..cd7e5dd84 100644 --- a/backend/node/genvm/origin/host_fns.py +++ b/backend/node/genvm/origin/host_fns.py @@ -1,7 +1,6 @@ # This file is auto-generated. Do not edit! -from enum import IntEnum, StrEnum -import typing +from enum import IntEnum class Methods(IntEnum): diff --git a/backend/protocol_rpc/app_lifespan.py b/backend/protocol_rpc/app_lifespan.py index 92b8bf9fc..0688a5495 100644 --- a/backend/protocol_rpc/app_lifespan.py +++ b/backend/protocol_rpc/app_lifespan.py @@ -314,7 +314,7 @@ def get_session() -> Session: # Import registers RPC methods via decorators (module import has side effects). logger.info("[STARTUP] Registering RPC methods") - from backend.protocol_rpc import rpc_methods + from backend.protocol_rpc import rpc_methods # noqa: F401 rpc_method_count = 0 for definition in rpc.to_list(): diff --git a/backend/protocol_rpc/broadcast.py b/backend/protocol_rpc/broadcast.py index 07274fec9..10c7dc98a 100644 --- a/backend/protocol_rpc/broadcast.py +++ b/backend/protocol_rpc/broadcast.py @@ -6,7 +6,6 @@ from collections import defaultdict from contextlib import AbstractAsyncContextManager from dataclasses import dataclass -from types import SimpleNamespace from typing import Dict, Iterable diff --git a/backend/protocol_rpc/calls_intercept/__init__.py b/backend/protocol_rpc/calls_intercept/__init__.py index 34e838096..67b62f32a 100644 --- a/backend/protocol_rpc/calls_intercept/__init__.py +++ b/backend/protocol_rpc/calls_intercept/__init__.py @@ -8,9 +8,7 @@ class CallHandler(ABC): @abstractmethod def can_handle(self, data: str) -> bool: """Check if this handler can process the given call data.""" - pass @abstractmethod def handle(self, transactions_processor: TransactionsProcessor, data: str) -> str: """Handle the contract call and return the result.""" - pass diff --git a/backend/protocol_rpc/contract_linter.py b/backend/protocol_rpc/contract_linter.py index b1ad72434..3337d5022 100644 --- a/backend/protocol_rpc/contract_linter.py +++ b/backend/protocol_rpc/contract_linter.py @@ -3,7 +3,7 @@ Provides validation and linting for GenLayer smart contracts. """ -from typing import Dict, List, Any, Optional +from typing import Dict, Any from backend.protocol_rpc.exceptions import JSONRPCError @@ -12,7 +12,6 @@ class ContractLinter: def __init__(self): """Initialize the ContractLinter.""" - pass def lint_contract( self, source_code: str, filename: str = "contract.py" @@ -38,7 +37,6 @@ def lint_contract( try: from genvm_linter.linter import GenVMLinter - from genvm_linter.rules import Severity linter = GenVMLinter() results = linter.lint_source(source_code, filename) diff --git a/backend/protocol_rpc/endpoints.py b/backend/protocol_rpc/endpoints.py index 08360d9e1..348f053b6 100644 --- a/backend/protocol_rpc/endpoints.py +++ b/backend/protocol_rpc/endpoints.py @@ -27,7 +27,6 @@ from backend.database_handler.accounts_manager import AccountsManager from backend.database_handler.validators_registry import ( ValidatorsRegistry, - ModifiableValidatorsRegistry, ) from backend.node.create_nodes.create_nodes import ( diff --git a/backend/protocol_rpc/explorer/queries.py b/backend/protocol_rpc/explorer/queries.py index c8b5e9efb..f2d5fa1e9 100644 --- a/backend/protocol_rpc/explorer/queries.py +++ b/backend/protocol_rpc/explorer/queries.py @@ -5,7 +5,7 @@ from datetime import datetime, timedelta, timezone from typing import Optional -from sqlalchemy import func, or_, text +from sqlalchemy import func, or_ from sqlalchemy.orm import Session, defer from backend.database_handler.models import ( diff --git a/backend/protocol_rpc/fastapi_endpoint_generator.py b/backend/protocol_rpc/fastapi_endpoint_generator.py index 7accf702f..1004a1b1b 100644 --- a/backend/protocol_rpc/fastapi_endpoint_generator.py +++ b/backend/protocol_rpc/fastapi_endpoint_generator.py @@ -9,7 +9,7 @@ import collections.abc import dataclasses import base64 -from functools import partial, wraps +from functools import partial from typing import Callable, Dict, Any, Optional from backend.protocol_rpc.message_handler.fastapi_handler import MessageHandler diff --git a/backend/protocol_rpc/fastapi_rpc_handler.py b/backend/protocol_rpc/fastapi_rpc_handler.py index 9c6fe9bd5..8bc5336a7 100644 --- a/backend/protocol_rpc/fastapi_rpc_handler.py +++ b/backend/protocol_rpc/fastapi_rpc_handler.py @@ -2,8 +2,6 @@ FastAPI RPC handler that uses the endpoint generator for proper registration. """ -import asyncio -import inspect from typing import Any, Dict, List, Optional, Union from pydantic import BaseModel, ConfigDict from sqlalchemy.orm import Session diff --git a/backend/protocol_rpc/fastapi_server.py b/backend/protocol_rpc/fastapi_server.py index 9260c395f..20e0b67c7 100644 --- a/backend/protocol_rpc/fastapi_server.py +++ b/backend/protocol_rpc/fastapi_server.py @@ -8,7 +8,6 @@ from fastapi import Depends, FastAPI, Request, Response, WebSocket from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse -from fastapi.staticfiles import StaticFiles from starlette.requests import ClientDisconnect # Load environment variables early so SENTRY_DSN is available for initialization diff --git a/backend/protocol_rpc/message_handler/fastapi_handler.py b/backend/protocol_rpc/message_handler/fastapi_handler.py index 70a50b56c..9084a16b4 100644 --- a/backend/protocol_rpc/message_handler/fastapi_handler.py +++ b/backend/protocol_rpc/message_handler/fastapi_handler.py @@ -4,7 +4,6 @@ import json import os import sys -import traceback from functools import wraps from typing import Any diff --git a/backend/protocol_rpc/message_handler/worker_handler.py b/backend/protocol_rpc/message_handler/worker_handler.py index 591152087..cd24a20b7 100644 --- a/backend/protocol_rpc/message_handler/worker_handler.py +++ b/backend/protocol_rpc/message_handler/worker_handler.py @@ -5,7 +5,6 @@ """ import os -import json import asyncio from typing import Optional import aiohttp diff --git a/backend/protocol_rpc/rpc_endpoint_manager.py b/backend/protocol_rpc/rpc_endpoint_manager.py index a126809d3..7ac71bb4d 100644 --- a/backend/protocol_rpc/rpc_endpoint_manager.py +++ b/backend/protocol_rpc/rpc_endpoint_manager.py @@ -3,7 +3,6 @@ from __future__ import annotations import inspect -import json import traceback from contextlib import AsyncExitStack from dataclasses import dataclass, field diff --git a/backend/protocol_rpc/transactions_parser.py b/backend/protocol_rpc/transactions_parser.py index ef7076de8..3502d8d6d 100644 --- a/backend/protocol_rpc/transactions_parser.py +++ b/backend/protocol_rpc/transactions_parser.py @@ -1,7 +1,7 @@ # rpc/transaction_utils.py import rlp -from rlp.sedes import text, binary, big_endian_int +from rlp.sedes import binary, big_endian_int from rlp.exceptions import DeserializationError, SerializationError from eth_account import Account from eth_account._utils.legacy_transactions import Transaction diff --git a/backend/protocol_rpc/validators_init.py b/backend/protocol_rpc/validators_init.py index 1929eb8b5..1f012af45 100644 --- a/backend/protocol_rpc/validators_init.py +++ b/backend/protocol_rpc/validators_init.py @@ -110,7 +110,7 @@ async def initialize_validators( # Import necessary dependencies for validator creation from backend.database_handler.accounts_manager import AccountsManager - from backend.domain.types import Validator, LLMProvider + from backend.domain.types import Validator from backend.node.create_nodes.providers import get_default_provider_for accounts_manager = AccountsManager(db_session) diff --git a/backend/rollup/consensus_service.py b/backend/rollup/consensus_service.py index d8e86b2bd..89b814e95 100644 --- a/backend/rollup/consensus_service.py +++ b/backend/rollup/consensus_service.py @@ -1,6 +1,4 @@ import json -import os -from web3 import Web3 from eth_utils import keccak, to_bytes, to_hex from typing import Optional, Dict, Any from pathlib import Path diff --git a/backend/validators/__init__.py b/backend/validators/__init__.py index 184984097..bff1328d5 100644 --- a/backend/validators/__init__.py +++ b/backend/validators/__init__.py @@ -4,12 +4,10 @@ import typing import contextlib import dataclasses -import logging import os import random from copy import deepcopy -from pathlib import Path import backend.database_handler.validators_registry as vr from sqlalchemy.orm import Session diff --git a/scripts/update_error_transactions_metrics.py b/scripts/update_error_transactions_metrics.py index 2905ea64e..8bcedf223 100755 --- a/scripts/update_error_transactions_metrics.py +++ b/scripts/update_error_transactions_metrics.py @@ -46,7 +46,7 @@ import json import sys import time -from datetime import datetime, timedelta +from datetime import datetime from typing import Optional import psycopg2 diff --git a/tests/common/request.py b/tests/common/request.py index 754946aac..bc3494073 100644 --- a/tests/common/request.py +++ b/tests/common/request.py @@ -9,7 +9,7 @@ from eth_abi import encode from web3 import Web3 import base64 -from tests.common.transactions import sign_transaction, encode_transaction_data +from tests.common.transactions import sign_transaction import backend.node.genvm.origin.calldata as calldata diff --git a/tests/common/transactions.py b/tests/common/transactions.py index d5a802ccd..75ede2796 100644 --- a/tests/common/transactions.py +++ b/tests/common/transactions.py @@ -1,7 +1,6 @@ from eth_account import Account from eth_utils import to_hex import rlp -from eth_account._utils.legacy_transactions import Transaction def serialize_one(data: bytes | str) -> bytes: diff --git a/tests/db-sqlalchemy/accounts_manager_test.py b/tests/db-sqlalchemy/accounts_manager_test.py index 4dd432d98..329818bae 100644 --- a/tests/db-sqlalchemy/accounts_manager_test.py +++ b/tests/db-sqlalchemy/accounts_manager_test.py @@ -8,7 +8,6 @@ from backend.database_handler.accounts_manager import AccountsManager from backend.database_handler.errors import AccountNotFoundError -from backend.database_handler.transactions_processor import TransactionsProcessor @pytest.fixture diff --git a/tests/db-sqlalchemy/explorer_queries_test.py b/tests/db-sqlalchemy/explorer_queries_test.py index 62abe1edb..e350d64b9 100644 --- a/tests/db-sqlalchemy/explorer_queries_test.py +++ b/tests/db-sqlalchemy/explorer_queries_test.py @@ -7,7 +7,6 @@ import base64 -import pytest from sqlalchemy.orm import Session from backend.database_handler.models import ( diff --git a/tests/db-sqlalchemy/snapshot_manager_test.py b/tests/db-sqlalchemy/snapshot_manager_test.py index 432128724..10eb42140 100644 --- a/tests/db-sqlalchemy/snapshot_manager_test.py +++ b/tests/db-sqlalchemy/snapshot_manager_test.py @@ -1,5 +1,4 @@ from datetime import datetime -import time import pytest from sqlalchemy.orm import Session diff --git a/tests/db-sqlalchemy/transactions_processor_test.py b/tests/db-sqlalchemy/transactions_processor_test.py index bbcae2930..64a36b244 100644 --- a/tests/db-sqlalchemy/transactions_processor_test.py +++ b/tests/db-sqlalchemy/transactions_processor_test.py @@ -1,4 +1,3 @@ -from sqlalchemy.orm import Session from sqlalchemy import text import pytest from unittest.mock import patch, MagicMock @@ -8,8 +7,6 @@ from web3 import Web3 from web3.providers import BaseProvider -from backend.database_handler.chain_snapshot import ChainSnapshot -from backend.database_handler.models import Transactions from backend.database_handler.transactions_processor import ( TransactionStatus, TransactionsProcessor, @@ -106,8 +103,6 @@ def test_transactions_processor( # Override the web3 instance in the transactions_processor with our mock transactions_processor.web3 = mock_env_and_web3_connected - import time - from_address = "0x9F0e84243496AcFB3Cd99D02eA59673c05901501" to_address = "0xAcec3A6d871C25F591aBd4fC24054e524BBbF794" data = {"key": "value"} @@ -205,7 +200,7 @@ def test_transactions_processor( def test_get_highest_timestamp(transactions_processor: TransactionsProcessor): - import time + pass # Initially should return 0 when no transactions exist assert transactions_processor.get_highest_timestamp() == 0 diff --git a/tests/direct/test_genvm_smoke_direct.py b/tests/direct/test_genvm_smoke_direct.py index cc120c038..e0a83cdc5 100644 --- a/tests/direct/test_genvm_smoke_direct.py +++ b/tests/direct/test_genvm_smoke_direct.py @@ -1,7 +1,5 @@ from pathlib import Path -import pytest - def test_genvm_smoke_direct_mode(direct_vm, direct_deploy, direct_alice): """ diff --git a/tests/integration/icontracts/contracts/intelligent_oracle.py b/tests/integration/icontracts/contracts/intelligent_oracle.py index 8a2b9fa97..f5af7de7c 100644 --- a/tests/integration/icontracts/contracts/intelligent_oracle.py +++ b/tests/integration/icontracts/contracts/intelligent_oracle.py @@ -3,7 +3,7 @@ import json from enum import Enum -from datetime import datetime, timezone +from datetime import datetime from urllib.parse import urlparse from genlayer import * diff --git a/tests/integration/icontracts/tests/test_multi_file_contract.py b/tests/integration/icontracts/tests/test_multi_file_contract.py index 47a87eeea..703056809 100644 --- a/tests/integration/icontracts/tests/test_multi_file_contract.py +++ b/tests/integration/icontracts/tests/test_multi_file_contract.py @@ -1,5 +1,4 @@ from gltest import get_contract_factory -from gltest.assertions import tx_execution_succeeded from gltest.types import TransactionStatus diff --git a/tests/load/deploy_contract/test_wizard_of_coin.py b/tests/load/deploy_contract/test_wizard_of_coin.py index 8b8c7a7a7..2f6035a8c 100755 --- a/tests/load/deploy_contract/test_wizard_of_coin.py +++ b/tests/load/deploy_contract/test_wizard_of_coin.py @@ -5,7 +5,6 @@ """ import requests -import json from pathlib import Path from genlayer_py import create_client, create_account, localnet import time diff --git a/tests/load/deploy_contract/wizard_deploy.py b/tests/load/deploy_contract/wizard_deploy.py index 57c4d665d..348dc2569 100755 --- a/tests/load/deploy_contract/wizard_deploy.py +++ b/tests/load/deploy_contract/wizard_deploy.py @@ -4,7 +4,6 @@ """ import requests -import json import sys from pathlib import Path from genlayer_py import create_client, create_account, localnet diff --git a/tests/load/deploy_contract/wizard_deploy_and_read.py b/tests/load/deploy_contract/wizard_deploy_and_read.py index 6a008ab9b..f7dbe5b37 100755 --- a/tests/load/deploy_contract/wizard_deploy_and_read.py +++ b/tests/load/deploy_contract/wizard_deploy_and_read.py @@ -4,7 +4,6 @@ """ import requests -import json from pathlib import Path from genlayer_py import create_client, create_account, localnet import time diff --git a/tests/load/script_archive_unused/analyze_transactions.py b/tests/load/script_archive_unused/analyze_transactions.py index 12b432f04..66611947e 100644 --- a/tests/load/script_archive_unused/analyze_transactions.py +++ b/tests/load/script_archive_unused/analyze_transactions.py @@ -3,8 +3,6 @@ import rlp from hexbytes import HexBytes -from eth_utils import to_hex -from eth_abi.abi import decode # UI-generated transaction (successful) ui_tx_hex = "0xf907aa038084ffffffff94b7278a61aa25c888815afc32ad3cc52ff24fe57580b9074427241a99000000000000000000000000701a6b9abaf65a0e1d4b24fa875cafa5edb3220500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000667f90664b90657232076302e312e300a23207b2022446570656e6473223a202270792d67656e6c617965723a6c617465737422207d0a66726f6d2067656e6c6179657220696d706f7274202a0a0a696d706f7274206a736f6e0a0a0a636c6173732057697a6172644f66436f696e28676c2e436f6e7472616374293a0a20202020686176655f636f696e3a20626f6f6c0a0a20202020646566205f5f696e69745f5f2873656c662c20686176655f636f696e3a20626f6f6c293a0a202020202020202073656c662e686176655f636f696e203d20686176655f636f696e0a0a2020202040676c2e7075626c69632e77726974650a202020206465662061736b5f666f725f636f696e2873656c662c20726571756573743a2073747229202d3e204e6f6e653a0a20202020202020206966206e6f742073656c662e686176655f636f696e3a0a20202020202020202020202072657475726e0a0a202020202020202070726f6d7074203d20662222220a596f752061726520612077697a6172642c20616e6420796f7520686f6c642061206d61676963616c20636f696e2e0a4d616e7920616476656e7475726572732077696c6c20636f6d6520616e642074727920746f2067657420796f7520746f2067697665207468656d2074686520636f696e2e0a446f206e6f7420756e64657220616e792063697263756d7374616e6365732067697665207468656d2074686520636f696e2e0a0a41206e657720616476656e747572657220617070726f61636865732e2e2e0a416476656e74757265723a207b726571756573747d0a0a466972737420636865636b20696620796f7520686176652074686520636f696e2e0a686176655f636f696e3a207b73656c662e686176655f636f696e7d0a5468656e2c20646f206e6f742067697665207468656d2074686520636f696e2e0a0a526573706f6e64207573696e67204f4e4c592074686520666f6c6c6f77696e6720666f726d61743a0a7b7b0a22726561736f6e696e67223a207374722c0a22676976655f636f696e223a20626f6f6c0a7d7d0a4974206973206d616e6461746f7279207468617420796f7520726573706f6e64206f6e6c79207573696e6720746865204a534f4e20666f726d61742061626f76652c0a6e6f7468696e6720656c73652e20446f6e277420696e636c75646520616e79206f7468657220776f726473206f7220636861726163746572732c0a796f7572206f7574707574206d757374206265206f6e6c79204a534f4e20776974686f757420616e7920666f726d617474696e6720707265666978206f72207375666669782e0a5468697320726573756c742073686f756c6420626520706572666563746c7920706172736561626c652062792061204a534f4e2070617273657220776974686f7574206572726f72732e0a2222220a0a2020202020202020646566206765745f77697a6172645f616e7377657228293a0a202020202020202020202020726573756c74203d20676c2e6e6f6e6465742e657865635f70726f6d70742870726f6d7074290a202020202020202020202020726573756c74203d20726573756c742e7265706c61636528226060606a736f6e222c202222292e7265706c6163652822606060222c202222290a2020202020202020202020207072696e7428726573756c74290a20202020202020202020202072657475726e20726573756c740a0a2020202020202020726573756c74203d20676c2e65715f7072696e6369706c652e70726f6d70745f636f6d7061726174697665280a2020202020202020202020206765745f77697a6172645f616e737765722c20225468652076616c7565206f6620676976655f636f696e2068617320746f206d61746368220a2020202020202020290a20202020202020207061727365645f726573756c74203d206a736f6e2e6c6f61647328726573756c74290a2020202020202020617373657274206973696e7374616e6365287061727365645f726573756c745b22676976655f636f696e225d2c20626f6f6c290a202020202020202073656c662e686176655f636f696e203d206e6f74207061727365645f726573756c745b22676976655f636f696e225d0a0a2020202040676c2e7075626c69632e766965770a20202020646566206765745f686176655f636f696e2873656c6629202d3e20626f6f6c3a0a202020202020202072657475726e2073656c662e686176655f636f696e880e04617267730d1000000000000000000000000000000000000000000000000000008301e481a042b5540969b5303bedb372df244ad1517703f1fcc7afe28fd5ab7f388f586bbaa068135ff5cfc447528423c9c03bf65a2eb7f524124f1ab517d4a419b0291d363f" diff --git a/tests/load/script_archive_unused/deploy_contract_example.py b/tests/load/script_archive_unused/deploy_contract_example.py index 53641cde5..6827cd402 100644 --- a/tests/load/script_archive_unused/deploy_contract_example.py +++ b/tests/load/script_archive_unused/deploy_contract_example.py @@ -5,7 +5,6 @@ """ import sys -import os from datetime import datetime, timezone # Add genlayer-py to path @@ -116,7 +115,6 @@ def deploy_campaign_contract(client): # For GenLayer, we need to get the transaction details to find the contract address import requests - import json # Make RPC call to get transaction by hash try: diff --git a/tests/load/script_archive_unused/deploy_wizard_of_coin.py b/tests/load/script_archive_unused/deploy_wizard_of_coin.py index 584a2bc28..044ce9bb2 100644 --- a/tests/load/script_archive_unused/deploy_wizard_of_coin.py +++ b/tests/load/script_archive_unused/deploy_wizard_of_coin.py @@ -6,10 +6,8 @@ import sys import os -import json import time import requests -from datetime import datetime # Import genlayer_py from genlayer_py import create_client, create_account diff --git a/tests/load/script_archive_unused/generate_correct_deployment_tx.py b/tests/load/script_archive_unused/generate_correct_deployment_tx.py index b8b50d3ad..789514ef5 100755 --- a/tests/load/script_archive_unused/generate_correct_deployment_tx.py +++ b/tests/load/script_archive_unused/generate_correct_deployment_tx.py @@ -7,7 +7,6 @@ import os import sys import requests -import json from eth_account import Account from eth_utils.conversions import to_hex from eth_utils.address import to_checksum_address diff --git a/tests/load/script_archive_unused/generate_deployment_tx_ui_format.py b/tests/load/script_archive_unused/generate_deployment_tx_ui_format.py index d266363a3..6d52396aa 100644 --- a/tests/load/script_archive_unused/generate_deployment_tx_ui_format.py +++ b/tests/load/script_archive_unused/generate_deployment_tx_ui_format.py @@ -7,11 +7,9 @@ import os import sys import requests -import json from eth_account import Account from eth_utils.conversions import to_hex from eth_utils.address import to_checksum_address -from web3 import Web3 import rlp from pathlib import Path diff --git a/tests/load/script_archive_unused/generate_raw_transaction.py b/tests/load/script_archive_unused/generate_raw_transaction.py index 3dd63d9f0..a304ef617 100755 --- a/tests/load/script_archive_unused/generate_raw_transaction.py +++ b/tests/load/script_archive_unused/generate_raw_transaction.py @@ -7,7 +7,6 @@ import os import sys import requests -import json from eth_account import Account from eth_utils.conversions import to_hex from eth_utils.address import to_checksum_address diff --git a/tests/load/script_archive_unused/generate_raw_transaction_fixed.py b/tests/load/script_archive_unused/generate_raw_transaction_fixed.py index f8e1b263d..142c928e9 100644 --- a/tests/load/script_archive_unused/generate_raw_transaction_fixed.py +++ b/tests/load/script_archive_unused/generate_raw_transaction_fixed.py @@ -7,7 +7,6 @@ import os import sys import requests -import json from eth_account import Account from eth_utils.conversions import to_hex from eth_utils.address import to_checksum_address diff --git a/tests/load/script_archive_unused/generate_ui_compatible_tx.py b/tests/load/script_archive_unused/generate_ui_compatible_tx.py index 257e9750f..29f2a4c7c 100755 --- a/tests/load/script_archive_unused/generate_ui_compatible_tx.py +++ b/tests/load/script_archive_unused/generate_ui_compatible_tx.py @@ -7,7 +7,6 @@ import os import sys import requests -import json from eth_account import Account from eth_utils.conversions import to_hex from eth_utils.address import to_checksum_address diff --git a/tests/test_linter_endpoint.py b/tests/test_linter_endpoint.py index 9a21f6d27..20f88ad1b 100644 --- a/tests/test_linter_endpoint.py +++ b/tests/test_linter_endpoint.py @@ -5,7 +5,6 @@ """ import requests -import json # Test contract with various issues TEST_CONTRACT_WITH_ISSUES = """# Missing magic comment diff --git a/tests/unit/consensus/test_decisions_accepted.py b/tests/unit/consensus/test_decisions_accepted.py index d3ec7ba31..52e757673 100644 --- a/tests/unit/consensus/test_decisions_accepted.py +++ b/tests/unit/consensus/test_decisions_accepted.py @@ -4,7 +4,6 @@ Each test verifies the exact list of effects returned for a specific branch. """ -import pytest from backend.consensus.decisions import decide_accepted, decide_finalizing from backend.consensus.effects import ( AddTimestampEffect, diff --git a/tests/unit/consensus/test_decisions_caller_helpers.py b/tests/unit/consensus/test_decisions_caller_helpers.py index 8867d71c4..d8beedab3 100644 --- a/tests/unit/consensus/test_decisions_caller_helpers.py +++ b/tests/unit/consensus/test_decisions_caller_helpers.py @@ -3,7 +3,6 @@ Tests call pure functions directly — no mocks, no async, no context objects. """ -import pytest from backend.consensus.decisions import ( should_rollback_after_accepted, has_appeal_capacity, diff --git a/tests/unit/consensus/test_decisions_pending_proposing_committing.py b/tests/unit/consensus/test_decisions_pending_proposing_committing.py index 1cb833e51..669d1c9fc 100644 --- a/tests/unit/consensus/test_decisions_pending_proposing_committing.py +++ b/tests/unit/consensus/test_decisions_pending_proposing_committing.py @@ -3,7 +3,6 @@ Tests call pure functions directly — no mocks, no async, no context objects. """ -import pytest from backend.consensus.decisions import ( decide_pending_pre, decide_pending_activate, diff --git a/tests/unit/consensus/test_decisions_terminal.py b/tests/unit/consensus/test_decisions_terminal.py index 6b5b67969..2823cae8f 100644 --- a/tests/unit/consensus/test_decisions_terminal.py +++ b/tests/unit/consensus/test_decisions_terminal.py @@ -4,7 +4,6 @@ Each test verifies the exact list of effects returned for a specific branch. """ -import pytest from backend.consensus.decisions import ( decide_undetermined, decide_leader_timeout, diff --git a/tests/unit/consensus/test_effect_executor.py b/tests/unit/consensus/test_effect_executor.py index 1235434b0..3920c0ca2 100644 --- a/tests/unit/consensus/test_effect_executor.py +++ b/tests/unit/consensus/test_effect_executor.py @@ -1,7 +1,7 @@ """Tests for EffectExecutor — verifies effects are dispatched to the correct service methods.""" import pytest -from unittest.mock import MagicMock, AsyncMock, patch +from unittest.mock import MagicMock, AsyncMock from types import SimpleNamespace from backend.consensus.effects import ( diff --git a/tests/unit/consensus/test_effects.py b/tests/unit/consensus/test_effects.py index ed4c5d4e9..67cec64b1 100644 --- a/tests/unit/consensus/test_effects.py +++ b/tests/unit/consensus/test_effects.py @@ -11,22 +11,12 @@ RegisterContractEffect, UpdateContractStateEffect, InsertTriggeredTransactionEffect, - UpdateConsensusHistoryEffect, - SetTransactionResultEffect, SetAppealEffect, - SetAppealUndeterminedEffect, - SetAppealLeaderTimeoutEffect, - SetAppealValidatorsTimeoutEffect, SetAppealFailedEffect, - SetAppealProcessingTimeEffect, - ResetAppealProcessingTimeEffect, SetTimestampAppealEffect, - SetTimestampAwaitingFinalizationEffect, SetContractSnapshotEffect, SetLeaderTimeoutValidatorsEffect, ResetRotationCountEffect, - IncreaseRotationCountEffect, - SetTimestampLastVoteEffect, ) diff --git a/tests/unit/consensus/test_helpers.py b/tests/unit/consensus/test_helpers.py index af00e6032..a4c129154 100644 --- a/tests/unit/consensus/test_helpers.py +++ b/tests/unit/consensus/test_helpers.py @@ -1,7 +1,6 @@ from collections import defaultdict from typing import Callable from unittest.mock import AsyncMock, Mock, MagicMock -from pathlib import Path import time import threading import pytest diff --git a/tests/unit/test_contract_not_found_handling.py b/tests/unit/test_contract_not_found_handling.py index 450f4cacd..108c2e8ca 100644 --- a/tests/unit/test_contract_not_found_handling.py +++ b/tests/unit/test_contract_not_found_handling.py @@ -11,7 +11,7 @@ from sqlalchemy.orm import Session from backend.database_handler.errors import ContractNotFoundError -from backend.database_handler.models import Transactions, TransactionStatus +from backend.database_handler.models import TransactionStatus class TestContractNotFoundError: diff --git a/tests/unit/test_create_nodes.py b/tests/unit/test_create_nodes.py index bb0a2fd82..b5831f176 100644 --- a/tests/unit/test_create_nodes.py +++ b/tests/unit/test_create_nodes.py @@ -1,4 +1,3 @@ -import asyncio from typing import Callable, Awaitable import pytest from backend.domain.types import LLMProvider diff --git a/tests/unit/test_error_codes.py b/tests/unit/test_error_codes.py index 53a3d5405..43cbff39f 100644 --- a/tests/unit/test_error_codes.py +++ b/tests/unit/test_error_codes.py @@ -1,6 +1,5 @@ """Unit tests for GenVM error code extraction.""" -import pytest from backend.node.genvm.error_codes import ( GenVMErrorCode, extract_error_code, diff --git a/tests/unit/test_execution_mode.py b/tests/unit/test_execution_mode.py index ec390c819..4b1d45ade 100644 --- a/tests/unit/test_execution_mode.py +++ b/tests/unit/test_execution_mode.py @@ -9,7 +9,7 @@ """ import pytest -from unittest.mock import Mock, MagicMock, patch +from unittest.mock import Mock from rlp import encode from backend.domain.types import ( @@ -20,8 +20,6 @@ ) from backend.protocol_rpc.transactions_parser import ( TransactionParser, - DecodedMethodSendData, - DecodedDeploymentData, EXECUTION_MODE_INT_TO_STR, EXECUTION_MODE_STR_TO_INT, ) diff --git a/tests/unit/test_fallback_validator_model_host_data.py b/tests/unit/test_fallback_validator_model_host_data.py index 2e308928c..13951f881 100644 --- a/tests/unit/test_fallback_validator_model_host_data.py +++ b/tests/unit/test_fallback_validator_model_host_data.py @@ -3,7 +3,6 @@ from backend.node.base import LLMConfig import pytest from unittest.mock import AsyncMock, Mock -from pathlib import Path import types import backend.domain.types as domain diff --git a/tests/unit/test_genvm_retry.py b/tests/unit/test_genvm_retry.py index 74e6764bc..52d2fe213 100644 --- a/tests/unit/test_genvm_retry.py +++ b/tests/unit/test_genvm_retry.py @@ -3,7 +3,6 @@ """ from unittest.mock import patch -import pytest import backend.node.genvm.base as base_host diff --git a/tests/unit/test_genvm_retry_integration.py b/tests/unit/test_genvm_retry_integration.py index 4c4b4fb67..288db2249 100644 --- a/tests/unit/test_genvm_retry_integration.py +++ b/tests/unit/test_genvm_retry_integration.py @@ -6,10 +6,8 @@ Those are in test_worker_health_degradation.py """ -import asyncio -from unittest.mock import patch, MagicMock, AsyncMock +from unittest.mock import patch import pytest -import aiohttp import backend.node.genvm.base as base_host diff --git a/tests/unit/test_node_execution_time.py b/tests/unit/test_node_execution_time.py index 84e9c9781..ddc7c382e 100644 --- a/tests/unit/test_node_execution_time.py +++ b/tests/unit/test_node_execution_time.py @@ -1,6 +1,4 @@ from datetime import datetime, timezone -import functools -import json from unittest.mock import Mock, patch, AsyncMock import pytest from backend.node.types import ( @@ -11,7 +9,6 @@ ExecutionResult, ExecutionReturn, ) -import backend.node.genvm.base as genvm_base import backend.node.base as node_base from backend.node.base import Node from backend.domain.types import Validator, LLMProvider diff --git a/tests/unit/test_rate_limiter.py b/tests/unit/test_rate_limiter.py index fb8568dfc..3d2a18983 100644 --- a/tests/unit/test_rate_limiter.py +++ b/tests/unit/test_rate_limiter.py @@ -1,12 +1,9 @@ """Unit tests for RateLimiterService.""" -import hashlib -import time - import pytest from unittest.mock import AsyncMock, MagicMock, patch -from backend.protocol_rpc.rate_limiter import RateLimiterService, TierLimits +from backend.protocol_rpc.rate_limiter import RateLimiterService from backend.protocol_rpc.exceptions import RateLimitExceeded diff --git a/tests/unit/test_types.py b/tests/unit/test_types.py index 5ba63ca1d..13f216ccb 100644 --- a/tests/unit/test_types.py +++ b/tests/unit/test_types.py @@ -1,4 +1,3 @@ -from dataclasses import asdict from backend.domain.types import LLMProvider, Validator diff --git a/tests/unit/test_worker_health_degradation.py b/tests/unit/test_worker_health_degradation.py index 3c099f111..184802167 100644 --- a/tests/unit/test_worker_health_degradation.py +++ b/tests/unit/test_worker_health_degradation.py @@ -2,7 +2,6 @@ Tests for worker health degradation based on GenVM consecutive failures """ -import pytest from unittest.mock import patch, MagicMock # Import the module-level functions and variables diff --git a/uvicorn_config.py b/uvicorn_config.py index 28493467c..2540b2ab2 100644 --- a/uvicorn_config.py +++ b/uvicorn_config.py @@ -3,7 +3,6 @@ """ import os -import multiprocessing # Server socket bind = f"0.0.0.0:{os.getenv('RPCPORT', '4000')}"