Fork fix and tests
This commit is contained in:
parent
666967502b
commit
4185c00d23
|
@ -72,28 +72,7 @@ an irregular state change is made to upgrade to Electra.
|
|||
```python
|
||||
def upgrade_to_electra(pre: deneb.BeaconState) -> BeaconState:
|
||||
epoch = deneb.get_current_epoch(pre)
|
||||
latest_execution_payload_header = ExecutionPayloadHeader(
|
||||
parent_hash=pre.latest_execution_payload_header.parent_hash,
|
||||
fee_recipient=pre.latest_execution_payload_header.fee_recipient,
|
||||
state_root=pre.latest_execution_payload_header.state_root,
|
||||
receipts_root=pre.latest_execution_payload_header.receipts_root,
|
||||
logs_bloom=pre.latest_execution_payload_header.logs_bloom,
|
||||
prev_randao=pre.latest_execution_payload_header.prev_randao,
|
||||
block_number=pre.latest_execution_payload_header.block_number,
|
||||
gas_limit=pre.latest_execution_payload_header.gas_limit,
|
||||
gas_used=pre.latest_execution_payload_header.gas_used,
|
||||
timestamp=pre.latest_execution_payload_header.timestamp,
|
||||
extra_data=pre.latest_execution_payload_header.extra_data,
|
||||
base_fee_per_gas=pre.latest_execution_payload_header.base_fee_per_gas,
|
||||
block_hash=pre.latest_execution_payload_header.block_hash,
|
||||
transactions_root=pre.latest_execution_payload_header.transactions_root,
|
||||
withdrawals_root=pre.latest_execution_payload_header.withdrawals_root,
|
||||
blob_gas_used=pre.latest_execution_payload_header.blob_gas_used,
|
||||
excess_blob_gas=pre.latest_execution_payload_header.excess_blob_gas,
|
||||
deposit_requests_root=Root(), # [New in Electra:EIP6110]
|
||||
withdrawal_requests_root=Root(), # [New in Electra:EIP7002]
|
||||
consolidation_requests_root=Root(), # [New in Electra:EIP7251]
|
||||
)
|
||||
latest_execution_payload_header = pre.latest_execution_payload_header
|
||||
|
||||
exit_epochs = [v.exit_epoch for v in pre.validators if v.exit_epoch != FAR_FUTURE_EPOCH]
|
||||
if not exit_epochs:
|
||||
|
|
|
@ -38,13 +38,14 @@ def run_fork_test(post_spec, pre_state):
|
|||
'next_withdrawal_index', 'next_withdrawal_validator_index',
|
||||
# Deep history valid from Capella onwards
|
||||
'historical_summaries',
|
||||
'latest_execution_payload_header'
|
||||
|
||||
]
|
||||
for field in stable_fields:
|
||||
assert getattr(pre_state, field) == getattr(post_state, field)
|
||||
|
||||
# Modified fields
|
||||
modified_fields = ['fork', 'latest_execution_payload_header']
|
||||
modified_fields = ['fork']
|
||||
for field in modified_fields:
|
||||
assert getattr(pre_state, field) != getattr(post_state, field)
|
||||
|
||||
|
|
|
@ -7,12 +7,7 @@ from eth2spec.test.helpers.keys import privkeys
|
|||
from eth2spec.utils.ssz.ssz_impl import hash_tree_root
|
||||
from eth2spec.debug.random_value import get_random_bytes_list
|
||||
from eth2spec.test.helpers.withdrawals import get_expected_withdrawals
|
||||
from eth2spec.test.helpers.forks import (
|
||||
is_post_capella,
|
||||
is_post_deneb,
|
||||
is_post_electra,
|
||||
is_post_eip7732,
|
||||
)
|
||||
from eth2spec.test.helpers.forks import is_post_capella, is_post_deneb, is_post_eip7732
|
||||
|
||||
|
||||
def get_execution_payload_header(spec, execution_payload):
|
||||
|
@ -201,7 +196,6 @@ def compute_el_block_hash(spec, payload, pre_state):
|
|||
|
||||
withdrawals_trie_root = None
|
||||
parent_beacon_block_root = None
|
||||
requests_trie_root = None
|
||||
|
||||
if is_post_capella(spec):
|
||||
withdrawals_encoded = [get_withdrawal_rlp(withdrawal) for withdrawal in payload.withdrawals]
|
||||
|
|
|
@ -66,14 +66,11 @@ def get_sample_genesis_execution_payload_header(spec,
|
|||
transactions_trie_root = bytes.fromhex("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")
|
||||
withdrawals_trie_root = None
|
||||
parent_beacon_block_root = None
|
||||
requests_trie_root = None
|
||||
|
||||
if is_post_capella(spec):
|
||||
withdrawals_trie_root = bytes.fromhex("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")
|
||||
if is_post_deneb(spec):
|
||||
parent_beacon_block_root = bytes.fromhex("0000000000000000000000000000000000000000000000000000000000000000")
|
||||
if is_post_electra(spec):
|
||||
requests_trie_root = bytes.fromhex("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")
|
||||
|
||||
payload_header.block_hash = compute_el_header_block_hash(
|
||||
spec,
|
||||
|
@ -81,7 +78,6 @@ def get_sample_genesis_execution_payload_header(spec,
|
|||
transactions_trie_root,
|
||||
withdrawals_trie_root,
|
||||
parent_beacon_block_root,
|
||||
requests_trie_root,
|
||||
)
|
||||
return payload_header
|
||||
|
||||
|
|
Loading…
Reference in New Issue