1.6 KiB
Genesis creation testing
Tests the initialization of a genesis state based on Eth1 data.
Test case format
eth1.yaml
eth1_block_hash: Bytes32 -- A `Bytes32` hex encoded, with prefix 0x. The root of the Eth1 block. E.g. "0x4242424242424242424242424242424242424242424242424242424242424242"
eth1_timestamp: int -- An integer. The timestamp of the block, in seconds.
meta.yaml
A yaml file to help read the deposit count:
description: string -- Optional. Description of test case, purely for debugging purposes.
deposits_count: int -- Amount of deposits.
execution_payload_header: bool -- `execution_payload_header` field is filled or not. If `true`, `execution_payload_header.ssz_snappy` file exists.
deposits_<index>.ssz_snappy
A series of files, with <index>
in range [0, deposits_count)
. Deposits need to be processed in order.
Each file is a SSZ-snappy encoded Deposit
object.
execution_payload_header.ssz_snappy
Note: Param added only for the Merge and subsequent forks.
The execution payload header that state is initialized with. An SSZ-snappy encoded BeaconState
object.
state.ssz_snappy
The expected genesis state. An SSZ-snappy encoded BeaconState
object.
Processing
To process this test, build a genesis state with the provided eth1_block_hash
, eth1_timestamp
and deposits
:
initialize_beacon_state_from_eth1(eth1_block_hash, eth1_timestamp, deposits)
,
as described in the Beacon Chain specification.
Condition
The resulting state should match the expected state
.