Ejemplo n.º 1
0
def test_set_validator_slashed(
    genesis_state, is_already_slashed, validator_count, pubkeys, config
):
    some_future_epoch = config.GENESIS_EPOCH + random.randrange(1, 2 ** 32)

    assert len(genesis_state.validators) > 0
    some_validator = genesis_state.validators[0]

    if is_already_slashed:
        some_validator = some_validator.mset(
            "slashed", True, "withdrawable_epoch", some_future_epoch
        )
        assert some_validator.slashed
        assert some_validator.withdrawable_epoch == some_future_epoch
    else:
        assert not some_validator.slashed

    slashed_validator = _set_validator_slashed(
        some_validator, some_future_epoch, config.EPOCHS_PER_SLASHINGS_VECTOR
    )
    assert slashed_validator.slashed
    assert slashed_validator.withdrawable_epoch == max(
        slashed_validator.withdrawable_epoch,
        some_future_epoch + config.EPOCHS_PER_SLASHINGS_VECTOR,
    )
Ejemplo n.º 2
0
def test_set_validator_slashed(genesis_state, is_already_slashed,
                               validator_count, pubkeys, config):
    some_future_epoch = config.GENESIS_EPOCH + random.randint(1, 2**32)

    assert len(genesis_state.validators) > 0
    some_validator = genesis_state.validators[0]

    if is_already_slashed:
        some_validator = some_validator.copy(
            slashed=True,
            withdrawable_epoch=some_future_epoch,
        )
        assert some_validator.slashed
        assert some_validator.withdrawable_epoch == some_future_epoch
    else:
        assert not some_validator.slashed

    slashed_validator = _set_validator_slashed(some_validator,
                                               some_future_epoch)
    assert slashed_validator.slashed
    assert slashed_validator.withdrawable_epoch == some_future_epoch