diff --git a/eth2/state_processing/specs/example.yml b/eth2/state_processing/specs/example.yml index 95b749bc4..982f0b0dd 100644 --- a/eth2/state_processing/specs/example.yml +++ b/eth2/state_processing/specs/example.yml @@ -1,205 +1,395 @@ -title: Sanity tests -summary: Basic sanity checks from phase 0 spec pythonization. All tests are run with - `verify_signatures` as set to False. +title: Sanity tests -- small config -- 32 validators +summary: Basic sanity checks from phase 0 spec pythonization using a small state configuration and 32 validators. + All tests are run with `verify_signatures` as set to False. + Tests generated via https://github.com/ethereum/research/blob/master/spec_pythonizer/sanity_check.py test_suite: beacon_state -fork: tchaikovsky -version: v0.5.0 +fork: phase0-0.5.0 test_cases: - name: test_empty_block_transition - config: {SHARD_COUNT: 8, TARGET_COMMITTEE_SIZE: 4, MAX_BALANCE_CHURN_QUOTIENT: 32, - MAX_INDICES_PER_SLASHABLE_VOTE: 4096, MAX_EXIT_DEQUEUES_PER_EPOCH: 4, SHUFFLE_ROUND_COUNT: 90, - DEPOSIT_CONTRACT_TREE_DEPTH: 32, MIN_DEPOSIT_AMOUNT: 1000000000, MAX_DEPOSIT_AMOUNT: 32000000000, - FORK_CHOICE_BALANCE_INCREMENT: 1000000000, EJECTION_BALANCE: 16000000000, GENESIS_FORK_VERSION: 0, - GENESIS_SLOT: 4294967296, GENESIS_EPOCH: 536870912, GENESIS_START_SHARD: 0, BLS_WITHDRAWAL_PREFIX_BYTE: 0, - SECONDS_PER_SLOT: 6, MIN_ATTESTATION_INCLUSION_DELAY: 2, SLOTS_PER_EPOCH: 8, MIN_SEED_LOOKAHEAD: 1, - ACTIVATION_EXIT_DELAY: 4, EPOCHS_PER_ETH1_VOTING_PERIOD: 16, SLOTS_PER_HISTORICAL_ROOT: 64, - MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256, PERSISTENT_COMMITTEE_PERIOD: 2048, LATEST_RANDAO_MIXES_LENGTH: 64, - LATEST_ACTIVE_INDEX_ROOTS_LENGTH: 64, LATEST_SLASHED_EXIT_LENGTH: 64, BASE_REWARD_QUOTIENT: 32, - WHISTLEBLOWER_REWARD_QUOTIENT: 512, ATTESTATION_INCLUSION_REWARD_QUOTIENT: 8, - INACTIVITY_PENALTY_QUOTIENT: 16777216, MIN_PENALTY_QUOTIENT: 32, MAX_PROPOSER_SLASHINGS: 16, - MAX_ATTESTER_SLASHINGS: 1, MAX_ATTESTATIONS: 128, MAX_DEPOSITS: 16, MAX_VOLUNTARY_EXITS: 16, - MAX_TRANSFERS: 16, DOMAIN_BEACON_BLOCK: 0, DOMAIN_RANDAO: 1, DOMAIN_ATTESTATION: 2, - DOMAIN_DEPOSIT: 3, DOMAIN_VOLUNTARY_EXIT: 4, DOMAIN_TRANSFER: 5} + config: + SHARD_COUNT: 8 + TARGET_COMMITTEE_SIZE: 4 + MAX_BALANCE_CHURN_QUOTIENT: 32 + MAX_INDICES_PER_SLASHABLE_VOTE: 4096 + MAX_EXIT_DEQUEUES_PER_EPOCH: 4 + SHUFFLE_ROUND_COUNT: 90 + DEPOSIT_CONTRACT_TREE_DEPTH: 32 + MIN_DEPOSIT_AMOUNT: 1000000000 + MAX_DEPOSIT_AMOUNT: 32000000000 + FORK_CHOICE_BALANCE_INCREMENT: 1000000000 + EJECTION_BALANCE: 16000000000 + GENESIS_FORK_VERSION: 0 + GENESIS_SLOT: 4294967296 + GENESIS_EPOCH: 536870912 + GENESIS_START_SHARD: 0 + BLS_WITHDRAWAL_PREFIX_BYTE: '0x00' + SECONDS_PER_SLOT: 6 + MIN_ATTESTATION_INCLUSION_DELAY: 2 + SLOTS_PER_EPOCH: 8 + MIN_SEED_LOOKAHEAD: 1 + ACTIVATION_EXIT_DELAY: 4 + EPOCHS_PER_ETH1_VOTING_PERIOD: 16 + SLOTS_PER_HISTORICAL_ROOT: 64 + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 + PERSISTENT_COMMITTEE_PERIOD: 2048 + LATEST_RANDAO_MIXES_LENGTH: 64 + LATEST_ACTIVE_INDEX_ROOTS_LENGTH: 64 + LATEST_SLASHED_EXIT_LENGTH: 64 + BASE_REWARD_QUOTIENT: 32 + WHISTLEBLOWER_REWARD_QUOTIENT: 512 + ATTESTATION_INCLUSION_REWARD_QUOTIENT: 8 + INACTIVITY_PENALTY_QUOTIENT: 16777216 + MIN_PENALTY_QUOTIENT: 32 + MAX_PROPOSER_SLASHINGS: 16 + MAX_ATTESTER_SLASHINGS: 1 + MAX_ATTESTATIONS: 128 + MAX_DEPOSITS: 16 + MAX_VOLUNTARY_EXITS: 16 + MAX_TRANSFERS: 16 + DOMAIN_BEACON_BLOCK: 0 + DOMAIN_RANDAO: 1 + DOMAIN_ATTESTATION: 2 + DOMAIN_DEPOSIT: 3 + DOMAIN_VOLUNTARY_EXIT: 4 + DOMAIN_TRANSFER: 5 verify_signatures: false initial_state: slot: 4294967296 genesis_time: 0 - fork: {previous_version: 0, current_version: 0, epoch: 536870912} + fork: + previous_version: '0x00000000' + current_version: '0x00000000' + epoch: 536870912 validator_registry: - - {pubkey: '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x1e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - - {pubkey: '0x1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', - withdrawal_credentials: '0x2222222222222222222222222222222222222222222222222222222222222222', - activation_epoch: 536870912, exit_epoch: 18446744073709551615, withdrawable_epoch: 18446744073709551615, - initiated_exit: false, slashed: false} - validator_balances: [32000000000, 32000000000, 32000000000, 32000000000, 32000000000, - 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, - 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, - 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, - 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, 32000000000, - 32000000000, 32000000000, 32000000000] + - pubkey: '0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000001' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000002' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x89ece308f9d1f0131765212deca99697b112d61f9be9a5f1f3780a51335b3ff981747a0b2ca2179b96d2c0c9024e5224' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000003' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xac9b60d5afcbd5663a8a44b7c5a02f19e9a77ab0a35bd65809bb5c67ec582c897feb04decc694b13e08587f3ff9b5b60' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000004' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xb0e7791fb972fe014159aa33a98622da3cdc98ff707965e536d8636b5fcc5ac7a91a8c46e59a00dca575af0f18fb13dc' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000005' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xa6e82f6da4520f85c5d27d8f329eccfa05944fd1096b20734c894966d12a9e2a9a9744529d7212d33883113a0cadb909' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000006' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xb928f3beb93519eecf0145da903b40a4c97dca00b21f12ac0df3be9116ef2ef27b2ae6bcd4c5bc2d54ef5a70627efcb7' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000007' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xa85ae765588126f5e860d019c0e26235f567a9c0c0b2d8ff30f3e8d436b1082596e5e7462d20f5be3764fd473e57f9cf' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000008' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x99cdf3807146e68e041314ca93e1fee0991224ec2a74beb2866816fd0826ce7b6263ee31e953a86d1b72cc2215a57793' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000009' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xaf81da25ecf1c84b577fefbedd61077a81dc43b00304015b2b596ab67f00e41c86bb00ebd0f90d4b125eb0539891aeed' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000000a' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x80fd75ebcc0a21649e3177bcce15426da0e4f25d6828fbf4038d4d7ed3bd4421de3ef61d70f794687b12b2d571971a55' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000000b' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x8345dd80ffef0eaec8920e39ebb7f5e9ae9c1d6179e9129b705923df7830c67f3690cbc48649d4079eadf5397339580c' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000000c' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x851f8a0b82a6d86202a61cbc3b0f3db7d19650b914587bde4715ccd372e1e40cab95517779d840416e1679c84a6db24e' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000000d' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x99bef05aaba1ea467fcbc9c420f5e3153c9d2b5f9bf2c7e2e7f6946f854043627b45b008607b9a9108bb96f3c1c089d3' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000000e' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x8d9e19b3f4c7c233a6112e5397309f9812a4f61f754f11dd3dcb8b07d55a7b1dfea65f19a1488a14fef9a41495083582' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000000f' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xa73eb991aa22cdb794da6fcde55a427f0a4df5a4a70de23a988b5e5fc8c4d844f66d990273267a54dd21579b7ba6a086' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000010' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xb098f178f84fc753a76bb63709e9be91eec3ff5f7f3a5f4836f34fe8a1a6d6c5578d8fd820573cef3a01e2bfef3eaf3a' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000011' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x9252a4ac3529f8b2b6e8189b95a60b8865f07f9a9b73f98d5df708511d3f68632c4c7d1e2b03e6b1d1e2c01839752ada' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000012' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xb271205227c7aa27f45f20b3ba380dfea8b51efae91fd32e552774c99e2a1237aa59c0c43f52aad99bba3783ea2f36a4' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000013' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xa272e9d1d50a4aea7d8f0583948090d0888be5777f2846800b8281139cd4aa9eee05f89b069857a3e77ccfaae1615f9c' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000014' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x9780e853f8ce7eda772c6691d25e220ca1d2ab0db51a7824b700620f7ac94c06639e91c98bb6abd78128f0ec845df8ef' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000015' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xab48aa2cc6f4a0bb63b5d67be54ac3aed10326dda304c5aeb9e942b40d6e7610478377680ab90e092ef1895e62786008' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000016' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x8c8b694b04d98a749a0763c72fc020ef61b2bb3f63ebb182cb2e568f6a8b9ca3ae013ae78317599e7e7ba2a528ec754a' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000017' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x9717182463fbe215168e6762abcbb55c5c65290f2b5a2af616f8a6f50d625b46164178a11622d21913efdfa4b800648d' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000018' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xacb58c81ae0cae2e9d4d446b730922239923c345744eee58efaadb36e9a0925545b18a987acf0bad469035b291e37269' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000019' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x81ccc19e3b938ec2405099e90022a4218baa5082a3ca0974b24be0bc8b07e5fffaed64bef0d02c4dbfb6a307829afc5c' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000001a' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xab83dfefb120fab7665a607d749ef1765fbb3cc0ba5827a20a135402c09d987c701ddb5b60f0f5495026817e8ab6ea2e' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000001b' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xb6ad11e5d15f77c1143b1697344911b9c590110fdd8dd09df2e58bfd757269169deefe8be3544d4e049fb3776fb0bcfb' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000001c' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0x8515e7f61ca0470e165a44d247a23f17f24bf6e37185467bedb7981c1003ea70bbec875703f793dd8d11e56afa7f74ba' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000001d' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xad84464b3966ec5bede84aa487facfca7823af383715078da03b387cc2f5d5597cdd7d025aa07db00a38b953bdeb6e3f' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000001e' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xb29043a7273d0a2dbc2b747dcf6a5eccbd7ccb44b2d72e985537b117929bc3fd3a99001481327788ad040b4077c47c0d' + withdrawal_credentials: '0x000000000000000000000000000000000000000000000000000000000000001f' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + - pubkey: '0xa72841987e4f219d54f2b6a9eac5fe6e78704644753c3579e776a3691bc123743f8c63770ed0f72a71e9e964dbf58f43' + withdrawal_credentials: '0x0000000000000000000000000000000000000000000000000000000000000020' + activation_epoch: 536870912 + exit_epoch: 18446744073709551615 + withdrawable_epoch: 18446744073709551615 + initiated_exit: false + slashed: false + validator_balances: + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 + - 32000000000 validator_registry_update_epoch: 536870912 - latest_randao_mixes: ['0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000'] + latest_randao_mixes: + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' previous_shuffling_start_shard: 0 current_shuffling_start_shard: 0 previous_shuffling_epoch: 536870912 current_shuffling_epoch: 536870912 previous_shuffling_seed: '0x0000000000000000000000000000000000000000000000000000000000000000' - current_shuffling_seed: '0x94ab448e948e6d501a2b48c1e9a0946f871100969f6fa70a990acf2348c9b185' + current_shuffling_seed: '0x7a81d831e99dc63f9f10d4abce84c26473d4c2f65ec4acf9000684059473b072' previous_epoch_attestations: [] current_epoch_attestations: [] previous_justified_epoch: 536870912 @@ -210,133 +400,303 @@ test_cases: finalized_epoch: 536870912 finalized_root: '0x0000000000000000000000000000000000000000000000000000000000000000' latest_crosslinks: - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - - {epoch: 536870912, crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000'} - latest_block_roots: ['0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000'] - latest_state_roots: ['0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000', - '0x0000000000000000000000000000000000000000000000000000000000000000'] - latest_active_index_roots: ['0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42', - '0xf6b8ca96e524598ba62d563347f5aea6ce2d81d644e2788687e5a92844df1b42'] - latest_slashed_balances: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - latest_block_header: {slot: 4294967296, previous_block_root: '0x0000000000000000000000000000000000000000000000000000000000000000', - state_root: '0x0000000000000000000000000000000000000000000000000000000000000000', - block_body_root: '0x5359b62990beb1d78e1cec479f5a4d80af84709886a8e16c535dff0556dc0e2d', - signature: '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'} + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + - epoch: 536870912 + crosslink_data_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + latest_block_roots: + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + latest_state_roots: + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + - '0x0000000000000000000000000000000000000000000000000000000000000000' + latest_active_index_roots: + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + - '0x429a7560eb31fa5d1192496997a78ffc590e70f5b39220abff4420298061501a' + latest_slashed_balances: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + latest_block_header: + slot: 4294967296 + previous_block_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + state_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + block_body_root: '0x13f2001ff0ee4a528b3c43f63d70a997aefca990ed8eada2223ee6ec3807f7cc' + signature: '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' historical_roots: [] - latest_eth1_data: {deposit_root: '0xb05de6a9059df0c9a2ab5f76708d256941dfe9eb89e6fda549b30713087d2a5e', - block_hash: '0x0000000000000000000000000000000000000000000000000000000000000000'} + latest_eth1_data: + deposit_root: '0x826d25bfcb9161aabc799844c5176f7b3444dc5288856f65e0b8060560488912' + block_hash: '0x0000000000000000000000000000000000000000000000000000000000000000' eth1_data_votes: [] deposit_index: 32 blocks: - slot: 4294967297 - previous_block_root: '0x92ed652508d2b4c109a857107101716b18e257e7ce0d199d4b16232956e9e27e' + previous_block_root: '0x2befbd4b4fe8c91f3059082c8048e3376a9b7fb309e93044fac32b7cc8849773' state_root: '0x0000000000000000000000000000000000000000000000000000000000000000' body: randao_reveal: '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' - eth1_data: {deposit_root: '0x0000000000000000000000000000000000000000000000000000000000000000', - block_hash: '0x0000000000000000000000000000000000000000000000000000000000000000'} + eth1_data: + deposit_root: '0x0000000000000000000000000000000000000000000000000000000000000000' + block_hash: '0x0000000000000000000000000000000000000000000000000000000000000000' proposer_slashings: [] attester_slashings: [] attestations: [] @@ -344,4 +704,5 @@ test_cases: voluntary_exits: [] transfers: [] signature: '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' - expected_state: {slot: 4294967297} + expected_state: + slot: 4294967297 diff --git a/eth2/state_processing/tests/tests.rs b/eth2/state_processing/tests/tests.rs index 9cee7b34c..ae5b4c145 100644 --- a/eth2/state_processing/tests/tests.rs +++ b/eth2/state_processing/tests/tests.rs @@ -20,7 +20,6 @@ pub struct TestDoc { } #[test] -#[ignore] fn yaml() { use serde_yaml; use std::{fs::File, io::prelude::*, path::PathBuf}; diff --git a/eth2/types/Cargo.toml b/eth2/types/Cargo.toml index 27aef19d6..6b6c23746 100644 --- a/eth2/types/Cargo.toml +++ b/eth2/types/Cargo.toml @@ -10,6 +10,7 @@ boolean-bitfield = { path = "../utils/boolean-bitfield" } dirs = "1.0" ethereum-types = "0.5" hashing = { path = "../utils/hashing" } +hex = "0.3" honey-badger-split = { path = "../utils/honey-badger-split" } int_to_bytes = { path = "../utils/int_to_bytes" } log = "0.4" diff --git a/eth2/types/src/chain_spec.rs b/eth2/types/src/chain_spec.rs index cfb88bcb8..0f1db2aa4 100644 --- a/eth2/types/src/chain_spec.rs +++ b/eth2/types/src/chain_spec.rs @@ -2,6 +2,7 @@ use crate::*; use bls::Signature; use int_to_bytes::int_to_bytes4; use serde_derive::Deserialize; +use test_utils::u8_from_hex_str; const GWEI: u64 = 1_000_000_000; @@ -57,6 +58,7 @@ pub struct ChainSpec { pub far_future_epoch: Epoch, pub zero_hash: Hash256, pub empty_signature: Signature, + #[serde(deserialize_with = "u8_from_hex_str")] pub bls_withdrawal_prefix_byte: u8, /* diff --git a/eth2/types/src/fork.rs b/eth2/types/src/fork.rs index b780b95ef..f6ef96b88 100644 --- a/eth2/types/src/fork.rs +++ b/eth2/types/src/fork.rs @@ -1,4 +1,4 @@ -use crate::{test_utils::TestRandom, ChainSpec, Epoch}; +use crate::{test_utils::{fork_from_hex_str, TestRandom}, ChainSpec, Epoch}; use int_to_bytes::int_to_bytes4; use rand::RngCore; use serde_derive::{Deserialize, Serialize}; @@ -12,7 +12,9 @@ use test_random_derive::TestRandom; Debug, Clone, PartialEq, Default, Serialize, Deserialize, Encode, Decode, TreeHash, TestRandom, )] pub struct Fork { + #[serde(deserialize_with = "fork_from_hex_str")] pub previous_version: [u8; 4], + #[serde(deserialize_with = "fork_from_hex_str")] pub current_version: [u8; 4], pub epoch: Epoch, } diff --git a/eth2/types/src/test_utils/mod.rs b/eth2/types/src/test_utils/mod.rs index bc8da0548..018b70d15 100644 --- a/eth2/types/src/test_utils/mod.rs +++ b/eth2/types/src/test_utils/mod.rs @@ -2,6 +2,7 @@ mod macros; mod generate_deterministic_keypairs; mod keypairs_file; +mod serde_utils; mod test_random; mod testing_attestation_builder; mod testing_attestation_data_builder; @@ -17,6 +18,7 @@ mod testing_voluntary_exit_builder; pub use generate_deterministic_keypairs::generate_deterministic_keypairs; pub use keypairs_file::KeypairsFile; pub use rand::{prng::XorShiftRng, SeedableRng}; +pub use serde_utils::{fork_from_hex_str, u8_from_hex_str}; pub use test_random::TestRandom; pub use testing_attestation_builder::TestingAttestationBuilder; pub use testing_attestation_data_builder::TestingAttestationDataBuilder; diff --git a/eth2/types/src/test_utils/serde_utils.rs b/eth2/types/src/test_utils/serde_utils.rs new file mode 100644 index 000000000..bcc34b150 --- /dev/null +++ b/eth2/types/src/test_utils/serde_utils.rs @@ -0,0 +1,28 @@ +use serde::{Deserialize, Deserializer}; +use serde::de::Error; + +pub fn u8_from_hex_str<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let s: String = Deserialize::deserialize(deserializer)?; + + u8::from_str_radix(&s.as_str()[2..], 16).map_err(D::Error::custom) +} + +pub fn fork_from_hex_str<'de, D>(deserializer: D) -> Result<[u8; 4], D::Error> +where + D: Deserializer<'de>, +{ + let s: String = Deserialize::deserialize(deserializer)?; + let mut array = [0 as u8; 4]; + let decoded: Vec = hex::decode(&s.as_str()[2..]).map_err(D::Error::custom)?; + + for (i, item) in array.iter_mut().enumerate() { + if i > decoded.len() { + break; + } + *item = decoded[i]; + } + Ok(array) +} diff --git a/eth2/utils/bls/src/serde_vistors.rs b/eth2/utils/bls/src/serde_vistors.rs index 55eadb883..aa9bdd1ae 100644 --- a/eth2/utils/bls/src/serde_vistors.rs +++ b/eth2/utils/bls/src/serde_vistors.rs @@ -8,13 +8,13 @@ impl<'de> Visitor<'de> for HexVisitor { type Value = Vec; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str("a hex string (without 0x prefix)") + formatter.write_str("a hex string (irrelevant of prefix)") } fn visit_str(self, value: &str) -> Result where E: de::Error, { - Ok(hex::decode(value).map_err(|e| de::Error::custom(format!("invalid hex ({:?})", e)))?) + Ok(hex::decode(value.trim_start_matches("0x")).map_err(|e| de::Error::custom(format!("invalid hex ({:?})", e)))?) } } diff --git a/eth2/utils/bls/src/signature.rs b/eth2/utils/bls/src/signature.rs index 47598bc66..d2aac3fac 100644 --- a/eth2/utils/bls/src/signature.rs +++ b/eth2/utils/bls/src/signature.rs @@ -73,7 +73,7 @@ impl Encodable for Signature { impl Decodable for Signature { fn ssz_decode(bytes: &[u8], i: usize) -> Result<(Self, usize), DecodeError> { let (sig_bytes, i) = decode_ssz_list(bytes, i)?; - let raw_sig = RawSignature::from_bytes(&sig_bytes).map_err(|_| DecodeError::TooShort)?; + let raw_sig = RawSignature::from_bytes(&sig_bytes).map_err(|_| DecodeError::Invalid)?; Ok((Signature(raw_sig), i)) } }