def test_success_non_activated(state): transfer = get_valid_transfer(state) # un-activate so validator can transfer state.validator_registry[ transfer.sender].activation_eligibility_epoch = spec.FAR_FUTURE_EPOCH pre_state, post_state = run_transfer_processing(state, transfer) return pre_state, transfer, post_state
def test_incorrect_slot(state): transfer = get_valid_transfer(state, slot=state.slot + 1) # un-activate so validator can transfer state.validator_registry[ transfer.sender].activation_epoch = spec.FAR_FUTURE_EPOCH pre_state, post_state = run_transfer_processing(state, transfer, False) return pre_state, transfer, post_state
def test_success_withdrawable(state): next_epoch(state) transfer = get_valid_transfer(state) # withdrawable_epoch in past so can transfer state.validator_registry[ transfer.sender].withdrawable_epoch = get_current_epoch(state) - 1 pre_state, post_state = run_transfer_processing(state, transfer) return pre_state, transfer, post_state
def test_invalid_pubkey(state): transfer = get_valid_transfer(state) state.validator_registry[ transfer.sender].withdrawal_credentials = spec.ZERO_HASH # un-activate so validator can transfer state.validator_registry[ transfer.sender].activation_epoch = spec.FAR_FUTURE_EPOCH pre_state, post_state = run_transfer_processing(state, transfer, False) return pre_state, transfer, post_state
def test_active_but_transfer_past_effective_balance(state): sender_index = get_active_validator_indices(state, get_current_epoch(state))[-1] amount = spec.MAX_EFFECTIVE_BALANCE // 32 state.balances[sender_index] = spec.MAX_EFFECTIVE_BALANCE transfer = get_valid_transfer(state, sender_index=sender_index, amount=amount, fee=0) pre_state, post_state = run_transfer_processing(state, transfer, False) return pre_state, transfer, post_state
def test_no_dust(state): sender_index = get_active_validator_indices(state, get_current_epoch(state))[-1] balance = state.balances[sender_index] transfer = get_valid_transfer(state, sender_index=sender_index, amount=balance - spec.MIN_DEPOSIT_AMOUNT + 1, fee=0) # un-activate so validator can transfer state.validator_registry[ transfer.sender].activation_epoch = spec.FAR_FUTURE_EPOCH pre_state, post_state = run_transfer_processing(state, transfer, False) return pre_state, transfer, post_state
def test_insufficient_balance(state): sender_index = get_active_validator_indices(state, get_current_epoch(state))[-1] amount = spec.MAX_EFFECTIVE_BALANCE state.balances[sender_index] = spec.MAX_EFFECTIVE_BALANCE transfer = get_valid_transfer(state, sender_index=sender_index, amount=amount + 1, fee=0) # un-activate so validator can transfer state.validator_registry[ transfer.sender].activation_epoch = spec.FAR_FUTURE_EPOCH pre_state, post_state = run_transfer_processing(state, transfer, False) return pre_state, transfer, post_state