mirror of
https://github.com/status-im/eth2.0-specs.git
synced 2025-01-22 00:20:28 +00:00
Always use GENESIS_FORK_VERSION
to sign BLSToExecutionChange
message
This commit is contained in:
parent
fc6bdade50
commit
730a7afe49
@ -472,7 +472,8 @@ def process_bls_to_execution_change(state: BeaconState,
|
|||||||
assert validator.withdrawal_credentials[:1] == BLS_WITHDRAWAL_PREFIX
|
assert validator.withdrawal_credentials[:1] == BLS_WITHDRAWAL_PREFIX
|
||||||
assert validator.withdrawal_credentials[1:] == hash(address_change.from_bls_pubkey)[1:]
|
assert validator.withdrawal_credentials[1:] == hash(address_change.from_bls_pubkey)[1:]
|
||||||
|
|
||||||
domain = get_domain(state, DOMAIN_BLS_TO_EXECUTION_CHANGE)
|
# Fork-agnostic domain since address changes are valid across forks
|
||||||
|
domain = compute_domain(DOMAIN_BLS_TO_EXECUTION_CHANGE, genesis_validators_root=state.genesis_validators_root)
|
||||||
signing_root = compute_signing_root(address_change, domain)
|
signing_root = compute_signing_root(address_change, domain)
|
||||||
assert bls.Verify(address_change.from_bls_pubkey, signing_root, signed_address_change.signature)
|
assert bls.Verify(address_change.from_bls_pubkey, signing_root, signed_address_change.signature)
|
||||||
|
|
||||||
|
@ -177,16 +177,21 @@ def test_invalid_bad_signature(spec, state):
|
|||||||
@with_capella_and_later
|
@with_capella_and_later
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
@always_bls
|
@always_bls
|
||||||
def test_current_fork_version(spec, state):
|
def test_genesis_fork_version(spec, state):
|
||||||
"""
|
signed_address_change = get_signed_address_change(spec, state, fork_version=spec.config.GENESIS_FORK_VERSION)
|
||||||
It should be identical to the `test_success` test case.
|
|
||||||
It is just for comparing with `test_invalid_previous_fork_version`.
|
|
||||||
"""
|
|
||||||
signed_address_change = get_signed_address_change(spec, state, fork_version=state.fork.current_version)
|
|
||||||
|
|
||||||
yield from run_bls_to_execution_change_processing(spec, state, signed_address_change)
|
yield from run_bls_to_execution_change_processing(spec, state, signed_address_change)
|
||||||
|
|
||||||
|
|
||||||
|
@with_capella_and_later
|
||||||
|
@spec_state_test
|
||||||
|
@always_bls
|
||||||
|
def test_invalid_current_fork_version(spec, state):
|
||||||
|
signed_address_change = get_signed_address_change(spec, state, fork_version=state.fork.current_version)
|
||||||
|
|
||||||
|
yield from run_bls_to_execution_change_processing(spec, state, signed_address_change, valid=False)
|
||||||
|
|
||||||
|
|
||||||
@with_capella_and_later
|
@with_capella_and_later
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
@always_bls
|
@always_bls
|
||||||
|
@ -17,10 +17,10 @@ def get_signed_address_change(spec, state, validator_index=None, withdrawal_pubk
|
|||||||
if to_execution_address is None:
|
if to_execution_address is None:
|
||||||
to_execution_address = b'\x42' * 20
|
to_execution_address = b'\x42' * 20
|
||||||
|
|
||||||
if fork_version is None:
|
domain = spec.compute_domain(
|
||||||
domain = spec.get_domain(state, spec.DOMAIN_BLS_TO_EXECUTION_CHANGE)
|
spec.DOMAIN_BLS_TO_EXECUTION_CHANGE,
|
||||||
else:
|
fork_version=fork_version,
|
||||||
domain = spec.compute_domain(spec.DOMAIN_BLS_TO_EXECUTION_CHANGE, fork_version, state.genesis_validators_root)
|
genesis_validators_root=state.genesis_validators_root)
|
||||||
|
|
||||||
address_change = spec.BLSToExecutionChange(
|
address_change = spec.BLSToExecutionChange(
|
||||||
validator_index=validator_index,
|
validator_index=validator_index,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user