Merge branch 'dev' into deposit_contract

This commit is contained in:
Hsiao-Wei Wang 2019-05-30 10:02:09 +08:00
commit 2cd0dee661
No known key found for this signature in database
GPG Key ID: 95B070122902DEA4
6 changed files with 21 additions and 7 deletions

View File

@ -13,9 +13,17 @@ from typing import (
NewType,
Tuple,
)
from eth2spec.utils.minimal_ssz import *
from eth2spec.utils.minimal_ssz import (
SSZType,
hash_tree_root,
signing_root,
)
from eth2spec.utils.hash_function import hash
from eth2spec.utils.bls import *
from eth2spec.utils.bls import (
bls_aggregate_pubkeys,
bls_verify,
bls_verify_multiple,
)
# stub, will get overwritten by real var

View File

@ -1776,7 +1776,8 @@ def process_deposit(state: BeaconState, deposit: Deposit) -> None:
validator_pubkeys = [v.pubkey for v in state.validator_registry]
if pubkey not in validator_pubkeys:
# Verify the deposit signature (proof of possession).
# Invalid signatures are allowed by the deposit contract, and hence included on-chain, but must not be processed.
# Invalid signatures are allowed by the deposit contract,
# and hence included on-chain, but must not be processed.
# Note: deposits are valid across forks, hence the deposit domain is retrieved directly from `bls_domain`
if not bls_verify(
pubkey, signing_root(deposit.data), deposit.data.signature, bls_domain(DOMAIN_DEPOSIT)

View File

@ -89,7 +89,7 @@ def test_invalid_signature(state):
transfer = get_valid_transfer(state)
# un-activate so validator can transfer
state.validator_registry[transfer.sender].activation_eligibility_epoch = spec.FAR_FUTURE_EPOCH
yield from run_transfer_processing(state, transfer, False)
@ -140,7 +140,13 @@ def test_insufficient_balance(state):
def test_no_dust_sender(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, signed=True)
transfer = get_valid_transfer(
state,
sender_index=sender_index,
amount=balance - spec.MIN_DEPOSIT_AMOUNT + 1,
fee=0,
signed=True,
)
# un-activate so validator can transfer
state.validator_registry[transfer.sender].activation_epoch = spec.FAR_FUTURE_EPOCH

View File

@ -3,6 +3,7 @@ from eth2spec.phase0 import spec
# We import pytest only when it's present, i.e. when we are running tests.
# The test-cases themselves can be generated without installing pytest.
def module_exists(module_name):
try:
__import__(module_name)

View File

@ -77,4 +77,3 @@ def build_empty_block(state, slot=None, signed=False):
def build_empty_block_for_next_slot(state, signed=False):
return build_empty_block(state, state.slot + 1, signed=signed)

View File

@ -55,4 +55,3 @@ def test_over_epoch_boundary(state):
yield 'slots', slots
process_slots(state, state.slot + slots)
yield 'post', state