Skip to content

Commit

Permalink
Fix reporting unused_validators for DVT
Browse files Browse the repository at this point in the history
  • Loading branch information
mksh committed Oct 31, 2024
1 parent c5cff06 commit ab2a7e5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 2 deletions.
6 changes: 5 additions & 1 deletion src/commands/start_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from src.validators.keystores.load import load_keystore
from src.validators.relayer import RelayerAdapter, create_relayer_adapter
from src.validators.tasks import ValidatorsTask, load_genesis_validators
from src.validators.typings import DepositData, ValidatorsRegistrationMode
from src.validators.typings import DepositData, RelayerTypes, ValidatorsRegistrationMode
from src.validators.utils import load_deposit_data

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -49,6 +49,10 @@ async def start_base() -> None:
deposit_data: DepositData | None = None
relayer_adapter: RelayerAdapter | None = None

# Override dvt setting for API setups running with DVT relayer
if settings.relayer_type == RelayerTypes.DVT:
settings.runs_dvt_setup = True

# load keystore and deposit data
if settings.validators_registration_mode == ValidatorsRegistrationMode.AUTO:
keystore = await load_keystore()
Expand Down
4 changes: 4 additions & 0 deletions src/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ class Settings(metaclass=Singleton):
'DISABLE_DEPOSIT_DATA_WARNINGS', default=False, cast=bool
)

runs_dvt_setup: bool = decouple_config(
'RUNS_DVT_SETUP', default=False, cast=bool,
)

min_validators_registration: int

# pylint: disable-next=too-many-arguments,too-many-locals,too-many-statements
Expand Down
4 changes: 3 additions & 1 deletion src/validators/execution.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,9 @@ async def update_unused_validator_keys_metric(

validators: int = 0
for validator in deposit_data.validators:
if validator.public_key not in keystore:
# This check is skipped for DVT, since keystore contains
# key shares and not original public keys
if validator.public_key not in keystore and not settings.runs_dvt_setup:
continue

if NetworkValidatorCrud().is_validator_registered(validator.public_key):
Expand Down

0 comments on commit ab2a7e5

Please sign in to comment.