def test_revealer_is_slashed(spec, state):
    randao_key_reveal = get_valid_early_derived_secret_reveal(
        spec, state, spec.get_current_epoch(state))
    state.validators[randao_key_reveal.revealed_index].slashed = True

    yield from run_early_derived_secret_reveal_processing(
        spec, state, randao_key_reveal, False)
Example #2
0
def test_early_derived_secret_reveal(spec, state):
    transition_to_valid_shard_slot(spec, state)
    block = build_empty_block(spec, state, slot=state.slot + 1)
    early_derived_secret_reveal = get_valid_early_derived_secret_reveal(spec, state)
    block.body.early_derived_secret_reveals = [early_derived_secret_reveal]

    yield from run_beacon_block(spec, state, block)
def test_double_reveal(spec, state):
    epoch = spec.get_current_epoch(state) + spec.RANDAO_PENALTY_EPOCHS
    randao_key_reveal1 = get_valid_early_derived_secret_reveal(
        spec,
        state,
        epoch,
    )
    _, _, _ = dict(run_early_derived_secret_reveal_processing(spec, state, randao_key_reveal1))

    randao_key_reveal2 = get_valid_early_derived_secret_reveal(
        spec,
        state,
        epoch,
    )

    yield from run_early_derived_secret_reveal_processing(spec, state, randao_key_reveal2, False)
def test_reveal_with_custody_padding_minus_one(spec, state):
    randao_key_reveal = get_valid_early_derived_secret_reveal(
        spec,
        state,
        spec.get_current_epoch(state) + spec.CUSTODY_PERIOD_TO_RANDAO_PADDING - 1,
    )
    yield from run_early_derived_secret_reveal_processing(spec, state, randao_key_reveal, True)
def test_reveal_from_past_epoch(spec, state):
    next_epoch_via_block(spec, state)
    randao_key_reveal = get_valid_early_derived_secret_reveal(
        spec, state,
        spec.get_current_epoch(state) - 1)

    yield from run_early_derived_secret_reveal_processing(
        spec, state, randao_key_reveal, False)
def test_far_future_epoch(spec, state):
    randao_key_reveal = get_valid_early_derived_secret_reveal(
        spec,
        state,
        spec.get_current_epoch(state) + spec.EARLY_DERIVED_SECRET_PENALTY_MAX_FUTURE_EPOCHS,
    )

    yield from run_early_derived_secret_reveal_processing(spec, state, randao_key_reveal, False)
def test_double_reveal(spec, state):
    randao_key_reveal1 = get_valid_early_derived_secret_reveal(
        spec,
        state,
        spec.get_current_epoch(state) + spec.RANDAO_PENALTY_EPOCHS + 1,
    )
    res = dict(
        run_early_derived_secret_reveal_processing(spec, state,
                                                   randao_key_reveal1))
    pre_state = res['pre']
    yield 'pre', pre_state
    intermediate_state = res['post']

    randao_key_reveal2 = get_valid_early_derived_secret_reveal(
        spec,
        intermediate_state,
        spec.get_current_epoch(pre_state) + spec.RANDAO_PENALTY_EPOCHS + 1,
    )
    res = dict(
        run_early_derived_secret_reveal_processing(spec, intermediate_state,
                                                   randao_key_reveal2, False))
    post_state = res['post']
    yield 'randao_key_reveal', [randao_key_reveal1, randao_key_reveal2]
    yield 'post', post_state
def test_reveal_from_current_epoch(spec, state):
    randao_key_reveal = get_valid_early_derived_secret_reveal(
        spec, state, spec.get_current_epoch(state))

    yield from run_early_derived_secret_reveal_processing(
        spec, state, randao_key_reveal, False)
def test_success(spec, state):
    randao_key_reveal = get_valid_early_derived_secret_reveal(spec, state)

    yield from run_early_derived_secret_reveal_processing(
        spec, state, randao_key_reveal)