diff --git a/test_libs/pyspec/eth2spec/test/helpers/deposits.py b/test_libs/pyspec/eth2spec/test/helpers/deposits.py index ca8b23361..eea019e8b 100644 --- a/test_libs/pyspec/eth2spec/test/helpers/deposits.py +++ b/test_libs/pyspec/eth2spec/test/helpers/deposits.py @@ -60,7 +60,7 @@ def build_deposit(spec, return deposit, root, deposit_data_leaves -def prepare_genesis_deposits(spec, genesis_validator_count, signed=False): +def prepare_genesis_deposits(spec, genesis_validator_count, amount, signed=False): genesis_deposit_data_list = [] deposit_data_leaves = [] for validator_index in range(genesis_validator_count): @@ -71,7 +71,7 @@ def prepare_genesis_deposits(spec, genesis_validator_count, signed=False): deposit_data = spec.DepositData( pubkey=pubkey, withdrawal_credentials=withdrawal_credentials, - amount=spec.MAX_EFFECTIVE_BALANCE, + amount=amount, ) if signed: sign_deposit_data(spec, deposit_data, privkey) # state=None @@ -84,7 +84,7 @@ def prepare_genesis_deposits(spec, genesis_validator_count, signed=False): genesis_deposits = ( spec.Deposit(proof=list(get_merkle_proof(tree, item_index=index)), data=deposit_data) - for index, deposit_data in enumerate(genesis_deposit_data_list) + for index, deposit_data in enumerate(genesis_deposit_data_list) ) return genesis_deposits, root diff --git a/test_libs/pyspec/eth2spec/test/sanity/test_genesis.py b/test_libs/pyspec/eth2spec/test/sanity/test_genesis.py index d6b3bf940..7e5fd5db4 100644 --- a/test_libs/pyspec/eth2spec/test/sanity/test_genesis.py +++ b/test_libs/pyspec/eth2spec/test/sanity/test_genesis.py @@ -8,7 +8,7 @@ from eth2spec.test.helpers.deposits import ( @spec_state_test def test_is_genesis_trigger_false(spec, state): deposit_count = 2 - genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count) + genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count, spec.MAX_EFFECTIVE_BALANCE) genesis_time = 1234 is_triggered = spec.is_genesis_trigger(genesis_deposits, genesis_time, deposit_root) @@ -21,7 +21,7 @@ def test_is_genesis_trigger_false(spec, state): @spec_state_test def test_is_genesis_trigger_true(spec, state): deposit_count = spec.GENESIS_ACTIVE_VALIDATOR_COUNT - genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count) + genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count, spec.MAX_EFFECTIVE_BALANCE) genesis_time = 1234 is_triggered = spec.is_genesis_trigger(genesis_deposits, genesis_time, deposit_root) @@ -29,12 +29,26 @@ def test_is_genesis_trigger_true(spec, state): yield is_triggered +@with_phases(['phase0']) +@spec_state_test +def test_is_genesis_trigger_not_enough_balance(spec, state): + deposit_count = spec.GENESIS_ACTIVE_VALIDATOR_COUNT + genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count, spec.MAX_EFFECTIVE_BALANCE - 1) + genesis_time = 1234 + yield genesis_deposits + yield genesis_time + + is_triggered = spec.is_genesis_trigger(genesis_deposits, genesis_time, deposit_root) + assert is_triggered is False + + yield is_triggered + @with_phases(['phase0']) @spec_state_test def test_genesis(spec, state): deposit_count = spec.GENESIS_ACTIVE_VALIDATOR_COUNT - genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count) + genesis_deposits, deposit_root = prepare_genesis_deposits(spec, deposit_count, spec.MAX_EFFECTIVE_BALANCE) genesis_time = 1234 yield genesis_deposits