├── .bazelrc ├── .bazelversion ├── .buildkite-bazelrc ├── .codecov.yml ├── .deepsource.toml ├── .dockerignore ├── .gitattributes ├── .github ├── CODEOWNERS ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── discussion.md │ ├── feature_flag.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md ├── actions │ └── gomodtidy │ │ ├── Dockerfile │ │ ├── action.yml │ │ └── entrypoint.sh ├── no-response.yml ├── stale.yml └── workflows │ ├── go.yml │ └── horusec.yaml ├── .gitignore ├── .golangci.yml ├── .policy.yml ├── .travis.yml ├── .well-known ├── security.pub └── security.txt ├── BUILD.bazel ├── CONTRIBUTING.md ├── DEPENDENCIES.md ├── INTEROP.md ├── LICENSE.md ├── README.md ├── SECURITY.md ├── TERMS_OF_SERVICE.md ├── WORKSPACE ├── api ├── client │ ├── beacon │ │ ├── BUILD.bazel │ │ ├── checkpoint.go │ │ ├── checkpoint_test.go │ │ ├── client.go │ │ ├── client_test.go │ │ ├── doc.go │ │ └── errors.go │ └── builder │ │ ├── BUILD.bazel │ │ ├── bid.go │ │ ├── client.go │ │ ├── client_test.go │ │ ├── errors.go │ │ ├── testdata │ │ ├── blinded-block-capella.json │ │ ├── blinded-block.json │ │ ├── execution-payload-capella.json │ │ └── execution-payload.json │ │ ├── testing │ │ ├── BUILD.bazel │ │ └── mock.go │ │ ├── types.go │ │ └── types_test.go ├── gateway │ ├── BUILD.bazel │ ├── apimiddleware │ │ ├── BUILD.bazel │ │ ├── api_middleware.go │ │ ├── log.go │ │ ├── param_handling.go │ │ ├── param_handling_test.go │ │ ├── process_field.go │ │ ├── process_request.go │ │ ├── process_request_test.go │ │ └── structs.go │ ├── gateway.go │ ├── gateway_test.go │ ├── log.go │ ├── modifiers.go │ └── options.go ├── grpc │ ├── BUILD.bazel │ ├── grpcutils.go │ ├── grpcutils_test.go │ └── parameters.go └── pagination │ ├── BUILD.bazel │ ├── pagination.go │ └── pagination_test.go ├── async ├── BUILD.bazel ├── abool │ ├── BUILD.bazel │ ├── abool.go │ └── abool_test.go ├── benchmark_test.go ├── debounce.go ├── debounce_test.go ├── event │ ├── BUILD.bazel │ ├── example_feed_test.go │ ├── example_scope_test.go │ ├── example_subscription_test.go │ ├── feed.go │ ├── feed_test.go │ ├── subscription.go │ └── subscription_test.go ├── every.go ├── every_test.go ├── multilock.go ├── multilock_test.go ├── scatter.go └── scatter_test.go ├── bazel.sh ├── beacon-chain ├── BUILD.bazel ├── README.md ├── blockchain │ ├── BUILD.bazel │ ├── blockchain_test.go │ ├── chain_info.go │ ├── chain_info_forkchoice.go │ ├── chain_info_norace_test.go │ ├── chain_info_test.go │ ├── checktags_test.go │ ├── error.go │ ├── error_test.go │ ├── execution_engine.go │ ├── execution_engine_test.go │ ├── forkchoice_update_execution.go │ ├── forkchoice_update_execution_test.go │ ├── head.go │ ├── head_sync_committee_info.go │ ├── head_sync_committee_info_test.go │ ├── head_test.go │ ├── init_sync_process_block.go │ ├── init_sync_process_block_test.go │ ├── init_test.go │ ├── log.go │ ├── log_test.go │ ├── merge_ascii_art.go │ ├── metrics.go │ ├── metrics_test.go │ ├── mock_test.go │ ├── options.go │ ├── pow_block.go │ ├── pow_block_test.go │ ├── process_attestation.go │ ├── process_attestation_helpers.go │ ├── process_attestation_test.go │ ├── process_block.go │ ├── process_block_helpers.go │ ├── process_block_test.go │ ├── receive_attestation.go │ ├── receive_attestation_test.go │ ├── receive_block.go │ ├── receive_block_test.go │ ├── service.go │ ├── service_norace_test.go │ ├── service_test.go │ ├── testing │ │ ├── BUILD.bazel │ │ └── mock.go │ ├── weak_subjectivity_checks.go │ └── weak_subjectivity_checks_test.go ├── builder │ ├── BUILD.bazel │ ├── metric.go │ ├── option.go │ ├── service.go │ ├── service_test.go │ └── testing │ │ ├── BUILD.bazel │ │ └── mock.go ├── cache │ ├── BUILD.bazel │ ├── active_balance.go │ ├── active_balance_disabled.go │ ├── active_balance_test.go │ ├── attestation_data.go │ ├── attestation_data_test.go │ ├── cache_test.go │ ├── checkpoint_state.go │ ├── checkpoint_state_test.go │ ├── committee.go │ ├── committee_disabled.go │ ├── committee_fuzz_test.go │ ├── committee_test.go │ ├── committees.go │ ├── common.go │ ├── depositcache │ │ ├── BUILD.bazel │ │ ├── deposits_cache.go │ │ ├── deposits_cache_test.go │ │ ├── log.go │ │ ├── pending_deposits.go │ │ └── pending_deposits_test.go │ ├── depositsnapshot │ │ ├── BUILD.bazel │ │ ├── deposit_tree.go │ │ ├── deposit_tree_snapshot.go │ │ ├── deposit_tree_snapshot_test.go │ │ ├── merkle_tree.go │ │ ├── merkle_tree_test.go │ │ ├── spec_test.go │ │ └── zerohashes.gen.go │ ├── doc.go │ ├── error.go │ ├── payload_id.go │ ├── payload_id_test.go │ ├── proposer_indices.go │ ├── proposer_indices_disabled.go │ ├── proposer_indices_test.go │ ├── proposer_indices_type.go │ ├── skip_slot_cache.go │ ├── skip_slot_cache_test.go │ ├── subnet_ids.go │ ├── subnet_ids_test.go │ ├── sync_committee.go │ ├── sync_committee_disabled.go │ ├── sync_committee_head_state.go │ ├── sync_committee_head_state_test.go │ ├── sync_committee_test.go │ ├── sync_subnet_ids.go │ └── sync_subnet_ids_test.go ├── core │ ├── altair │ │ ├── BUILD.bazel │ │ ├── attestation.go │ │ ├── attestation_test.go │ │ ├── block.go │ │ ├── block_test.go │ │ ├── deposit.go │ │ ├── deposit_fuzz_test.go │ │ ├── deposit_test.go │ │ ├── epoch_precompute.go │ │ ├── epoch_precompute_test.go │ │ ├── epoch_spec.go │ │ ├── epoch_spec_test.go │ │ ├── exports_test.go │ │ ├── reward.go │ │ ├── reward_test.go │ │ ├── sync_committee.go │ │ ├── sync_committee_test.go │ │ ├── transition.go │ │ ├── transition_test.go │ │ ├── upgrade.go │ │ └── upgrade_test.go │ ├── blocks │ │ ├── BUILD.bazel │ │ ├── attestation.go │ │ ├── attestation_regression_test.go │ │ ├── attestation_test.go │ │ ├── attester_slashing.go │ │ ├── attester_slashing_test.go │ │ ├── block_operations_fuzz_test.go │ │ ├── block_regression_test.go │ │ ├── deposit.go │ │ ├── deposit_test.go │ │ ├── error.go │ │ ├── eth1_data.go │ │ ├── eth1_data_test.go │ │ ├── exit.go │ │ ├── exit_test.go │ │ ├── exports_test.go │ │ ├── genesis.go │ │ ├── genesis_test.go │ │ ├── header.go │ │ ├── header_test.go │ │ ├── log.go │ │ ├── payload.go │ │ ├── payload_test.go │ │ ├── proposer_slashing.go │ │ ├── proposer_slashing_regression_test.go │ │ ├── proposer_slashing_test.go │ │ ├── randao.go │ │ ├── randao_test.go │ │ ├── signature.go │ │ ├── signature_test.go │ │ ├── testdata │ │ │ ├── beaconfuzz_78_attestation.ssz │ │ │ ├── beaconfuzz_78_beacon.ssz │ │ │ ├── beaconfuzz_91_beacon.ssz │ │ │ └── beaconfuzz_91_proposer_slashing.ssz │ │ ├── withdrawals.go │ │ └── withdrawals_test.go │ ├── capella │ │ ├── BUILD.bazel │ │ ├── upgrade.go │ │ └── upgrade_test.go │ ├── epoch │ │ ├── BUILD.bazel │ │ ├── epoch_processing.go │ │ ├── epoch_processing_fuzz_test.go │ │ ├── epoch_processing_test.go │ │ └── precompute │ │ │ ├── BUILD.bazel │ │ │ ├── attestation.go │ │ │ ├── attestation_test.go │ │ │ ├── justification_finalization.go │ │ │ ├── justification_finalization_test.go │ │ │ ├── new.go │ │ │ ├── new_test.go │ │ │ ├── precompute_test.go │ │ │ ├── reward_penalty.go │ │ │ ├── reward_penalty_test.go │ │ │ ├── slashing.go │ │ │ ├── slashing_test.go │ │ │ └── type.go │ ├── execution │ │ ├── BUILD.bazel │ │ ├── upgrade.go │ │ └── upgrade_test.go │ ├── feed │ │ ├── BUILD.bazel │ │ ├── block │ │ │ ├── BUILD.bazel │ │ │ ├── events.go │ │ │ └── notifier.go │ │ ├── event.go │ │ ├── operation │ │ │ ├── BUILD.bazel │ │ │ ├── events.go │ │ │ └── notifier.go │ │ └── state │ │ │ ├── BUILD.bazel │ │ │ ├── events.go │ │ │ └── notifier.go │ ├── helpers │ │ ├── BUILD.bazel │ │ ├── attestation.go │ │ ├── attestation_test.go │ │ ├── beacon_committee.go │ │ ├── beacon_committee_test.go │ │ ├── block.go │ │ ├── block_test.go │ │ ├── genesis.go │ │ ├── metrics.go │ │ ├── randao.go │ │ ├── randao_test.go │ │ ├── rewards_penalties.go │ │ ├── rewards_penalties_test.go │ │ ├── shuffle.go │ │ ├── shuffle_test.go │ │ ├── sync_committee.go │ │ ├── sync_committee_test.go │ │ ├── validators.go │ │ ├── validators_test.go │ │ ├── weak_subjectivity.go │ │ └── weak_subjectivity_test.go │ ├── signing │ │ ├── BUILD.bazel │ │ ├── domain.go │ │ ├── domain_test.go │ │ ├── signature.go │ │ ├── signature_test.go │ │ ├── signing_root.go │ │ └── signing_root_test.go │ ├── time │ │ ├── BUILD.bazel │ │ ├── slot_epoch.go │ │ └── slot_epoch_test.go │ ├── transition │ │ ├── BUILD.bazel │ │ ├── altair_transition_no_verify_sig_test.go │ │ ├── bellatrix_transition_no_verify_sig_test.go │ │ ├── benchmarks_test.go │ │ ├── interop │ │ │ ├── BUILD.bazel │ │ │ ├── log.go │ │ │ ├── write_block_to_disk.go │ │ │ └── write_state_to_disk.go │ │ ├── log.go │ │ ├── skip_slot_cache.go │ │ ├── skip_slot_cache_test.go │ │ ├── state-bellatrix.go │ │ ├── state.go │ │ ├── state_fuzz_test.go │ │ ├── state_test.go │ │ ├── stateutils │ │ │ ├── BUILD.bazel │ │ │ ├── validator_index_map.go │ │ │ └── validator_index_map_test.go │ │ ├── trailing_slot_state_cache.go │ │ ├── trailing_slot_state_cache_test.go │ │ ├── transition.go │ │ ├── transition_fuzz_test.go │ │ ├── transition_no_verify_sig.go │ │ ├── transition_no_verify_sig_test.go │ │ └── transition_test.go │ └── validators │ │ ├── BUILD.bazel │ │ ├── validator.go │ │ └── validator_test.go ├── db │ ├── BUILD.bazel │ ├── alias.go │ ├── db.go │ ├── db_test.go │ ├── errors.go │ ├── filters │ │ ├── BUILD.bazel │ │ ├── filter.go │ │ └── filter_test.go │ ├── iface │ │ ├── BUILD.bazel │ │ ├── errors.go │ │ └── interface.go │ ├── kv │ │ ├── BUILD.bazel │ │ ├── archived_point.go │ │ ├── archived_point_test.go │ │ ├── backup.go │ │ ├── backup_test.go │ │ ├── blocks.go │ │ ├── blocks_test.go │ │ ├── checkpoint.go │ │ ├── checkpoint_test.go │ │ ├── deposit_contract.go │ │ ├── deposit_contract_test.go │ │ ├── encoding.go │ │ ├── encoding_test.go │ │ ├── error.go │ │ ├── execution_chain.go │ │ ├── execution_chain_test.go │ │ ├── finalized_block_roots.go │ │ ├── finalized_block_roots_test.go │ │ ├── genesis.go │ │ ├── genesis_test.go │ │ ├── init_test.go │ │ ├── key.go │ │ ├── kv.go │ │ ├── kv_test.go │ │ ├── log.go │ │ ├── migration.go │ │ ├── migration_archived_index.go │ │ ├── migration_archived_index_test.go │ │ ├── migration_block_slot_index.go │ │ ├── migration_block_slot_index_test.go │ │ ├── migration_state_validators.go │ │ ├── migration_state_validators_test.go │ │ ├── schema.go │ │ ├── state.go │ │ ├── state_summary.go │ │ ├── state_summary_cache.go │ │ ├── state_summary_test.go │ │ ├── state_test.go │ │ ├── testdata │ │ │ ├── altona.genesis.ssz │ │ │ ├── capella_genesis.ssz │ │ │ └── mainnet.genesis.ssz │ │ ├── utils.go │ │ ├── utils_test.go │ │ ├── validated_checkpoint.go │ │ ├── validated_checkpoint_test.go │ │ ├── wss.go │ │ └── wss_test.go │ ├── log.go │ ├── restore.go │ ├── restore_test.go │ ├── slasherkv │ │ ├── BUILD.bazel │ │ ├── kv.go │ │ ├── kv_test.go │ │ ├── log.go │ │ ├── metrics.go │ │ ├── pruning.go │ │ ├── pruning_test.go │ │ ├── schema.go │ │ ├── slasher.go │ │ ├── slasher_test.go │ │ └── slasherkv_test.go │ └── testing │ │ ├── BUILD.bazel │ │ └── setup_db.go ├── deterministic-genesis │ ├── BUILD.bazel │ ├── log.go │ └── service.go ├── execution │ ├── BUILD.bazel │ ├── block_cache.go │ ├── block_cache_test.go │ ├── block_reader.go │ ├── block_reader_test.go │ ├── check_transition_config.go │ ├── check_transition_config_test.go │ ├── deposit.go │ ├── deposit_test.go │ ├── engine_client.go │ ├── engine_client_fuzz_test.go │ ├── engine_client_test.go │ ├── errors.go │ ├── execution_chain_test.go │ ├── init_test.go │ ├── log.go │ ├── log_processing.go │ ├── log_processing_test.go │ ├── metrics.go │ ├── options.go │ ├── prometheus.go │ ├── prometheus_test.go │ ├── provider.go │ ├── provider_test.go │ ├── rpc_connection.go │ ├── service.go │ ├── service_test.go │ ├── testdata │ │ └── fuzz │ │ │ ├── FuzzExchangeTransitionConfiguration │ │ │ ├── 8093511184ad3e258aa13b957e75ff26c7fae64672dae0c0bc0a9fa5b61a05e7 │ │ │ └── fe012d83ce9f615dc9c351e781f97ed05d1118c6a363a8471f95ea97bbb9842f │ │ │ ├── FuzzExecutionBlock │ │ │ ├── 1bf482da2882aa46b362d7e5f304fcc6f9d907eeae168cfb8036b387268f868f │ │ │ ├── 4448e6f5eccdfd2f5acea73e8b44f817a0161a6a │ │ │ ├── 8093511184ad3e258aa13b957e75ff26c7fae64672dae0c0bc0a9fa5b61a05e7 │ │ │ ├── a6e0f2c1343001ffc6f50b6758a8bc01229624ea6a3798f696b7f75d37ed1b2c │ │ │ └── f1c138c4b044e6691ee21d7dcbaa49f235e3bf085af1f11eeea2f7a6b401952b │ │ │ ├── FuzzExecutionPayload │ │ │ ├── 100722c8124711a78513977bf46b7efc49c3219fff556ba4e5fca40825097e41 │ │ │ ├── 41784bc5bdb982cfc2d08e901aef27c3aff6604b506658bc52a25fade49b1f4e │ │ │ ├── 527c135d6108092428e79c0f4649292c433148aec13371aff07dbc679f4f6a90 │ │ │ ├── 83bfaa74d6d90c81a32fabfe3b7767556ed68b07b41c9b71c3c8adcf513623d5 │ │ │ ├── 8664c701ef3242a177be72eadef6c3a68465e15ca39f569ce56442181ab2771e │ │ │ ├── 970ac64975387437edb15f7aa06e7d420d7f2b16a2b8348749020ca172332512 │ │ │ ├── 9f2b178e755b4330641370a05be5ba6a7db96c0b8d6650f64ab0aaa2982124e8 │ │ │ └── b9490d64fb5ca3b43302c100b160125420b15130fa17d4b7e29c67267c97ec96 │ │ │ └── FuzzForkChoiceResponse │ │ │ └── 2d0486b744e252db538db5a44bfd6e6e22ff2723 │ ├── testing │ │ ├── BUILD.bazel │ │ ├── genesis.go │ │ ├── mock_engine_client.go │ │ ├── mock_execution_chain.go │ │ └── mock_faulty_powchain.go │ └── types │ │ ├── BUILD.bazel │ │ ├── eth1_types.go │ │ └── eth1_types_test.go ├── forkchoice │ ├── BUILD.bazel │ ├── doc.go │ ├── doubly-linked-tree │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ ├── errors.go │ │ ├── ffg_update_test.go │ │ ├── forkchoice.go │ │ ├── forkchoice_test.go │ │ ├── metrics.go │ │ ├── no_vote_test.go │ │ ├── node.go │ │ ├── node_test.go │ │ ├── on_tick.go │ │ ├── on_tick_test.go │ │ ├── optimistic_sync.go │ │ ├── optimistic_sync_test.go │ │ ├── proposer_boost.go │ │ ├── proposer_boost_test.go │ │ ├── reorg_late_blocks.go │ │ ├── reorg_late_blocks_test.go │ │ ├── store.go │ │ ├── store_test.go │ │ ├── types.go │ │ ├── unrealized_justification.go │ │ ├── unrealized_justification_test.go │ │ └── vote_test.go │ ├── error.go │ ├── interfaces.go │ └── types │ │ ├── BUILD.bazel │ │ └── types.go ├── gateway │ ├── BUILD.bazel │ ├── helpers.go │ └── helpers_test.go ├── monitor │ ├── BUILD.bazel │ ├── doc.go │ ├── metrics.go │ ├── process_attestation.go │ ├── process_attestation_test.go │ ├── process_block.go │ ├── process_block_test.go │ ├── process_exit.go │ ├── process_exit_test.go │ ├── process_sync_committee.go │ ├── process_sync_committee_test.go │ ├── service.go │ └── service_test.go ├── node │ ├── BUILD.bazel │ ├── config.go │ ├── config_test.go │ ├── log.go │ ├── node.go │ ├── node_test.go │ ├── options.go │ ├── prometheus.go │ └── registration │ │ ├── BUILD.bazel │ │ ├── log.go │ │ ├── p2p.go │ │ └── p2p_test.go ├── operations │ ├── attestations │ │ ├── BUILD.bazel │ │ ├── kv │ │ │ ├── BUILD.bazel │ │ │ ├── aggregated.go │ │ │ ├── aggregated_test.go │ │ │ ├── benchmark_test.go │ │ │ ├── block.go │ │ │ ├── block_test.go │ │ │ ├── forkchoice.go │ │ │ ├── forkchoice_test.go │ │ │ ├── kv.go │ │ │ ├── seen_bits.go │ │ │ ├── seen_bits_test.go │ │ │ ├── unaggregated.go │ │ │ └── unaggregated_test.go │ │ ├── log.go │ │ ├── metrics.go │ │ ├── mock │ │ │ ├── BUILD.bazel │ │ │ └── mock.go │ │ ├── pool.go │ │ ├── pool_test.go │ │ ├── prepare_forkchoice.go │ │ ├── prepare_forkchoice_test.go │ │ ├── prune_expired.go │ │ ├── prune_expired_test.go │ │ ├── service.go │ │ └── service_test.go │ ├── blstoexec │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ ├── mock │ │ │ ├── BUILD.bazel │ │ │ └── mock.go │ │ ├── pool.go │ │ └── pool_test.go │ ├── slashings │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ ├── log.go │ │ ├── metrics.go │ │ ├── mock │ │ │ ├── BUILD.bazel │ │ │ └── mock.go │ │ ├── service.go │ │ ├── service_attester_test.go │ │ ├── service_proposer_test.go │ │ ├── service_test.go │ │ └── types.go │ ├── synccommittee │ │ ├── BUILD.bazel │ │ ├── contribution.go │ │ ├── contribution_test.go │ │ ├── error.go │ │ ├── kv.go │ │ ├── message.go │ │ ├── message_test.go │ │ ├── metric.go │ │ └── pool.go │ └── voluntaryexits │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ ├── mock │ │ ├── BUILD.bazel │ │ └── mock.go │ │ ├── pool.go │ │ └── pool_test.go ├── p2p │ ├── BUILD.bazel │ ├── addr_factory.go │ ├── addr_factory_test.go │ ├── broadcaster.go │ ├── broadcaster_test.go │ ├── config.go │ ├── connection_gater.go │ ├── connection_gater_test.go │ ├── dial_relay_node.go │ ├── dial_relay_node_test.go │ ├── discovery.go │ ├── discovery_test.go │ ├── doc.go │ ├── encoder │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ ├── network_encoding.go │ │ ├── snappy_test.go │ │ ├── ssz.go │ │ ├── ssz_test.go │ │ ├── varint.go │ │ └── varint_test.go │ ├── fork.go │ ├── fork_test.go │ ├── fork_watcher.go │ ├── gossip_scoring_params.go │ ├── gossip_scoring_params_test.go │ ├── gossip_topic_mappings.go │ ├── gossip_topic_mappings_test.go │ ├── handshake.go │ ├── info.go │ ├── interfaces.go │ ├── iterator.go │ ├── log.go │ ├── message_id.go │ ├── message_id_test.go │ ├── monitoring.go │ ├── options.go │ ├── options_test.go │ ├── parameter_test.go │ ├── peers │ │ ├── BUILD.bazel │ │ ├── benchmark_test.go │ │ ├── log.go │ │ ├── peerdata │ │ │ ├── BUILD.bazel │ │ │ ├── store.go │ │ │ └── store_test.go │ │ ├── peers_test.go │ │ ├── scorers │ │ │ ├── BUILD.bazel │ │ │ ├── bad_responses.go │ │ │ ├── bad_responses_test.go │ │ │ ├── block_providers.go │ │ │ ├── block_providers_test.go │ │ │ ├── gossip_scorer.go │ │ │ ├── gossip_scorer_test.go │ │ │ ├── peer_status.go │ │ │ ├── peer_status_test.go │ │ │ ├── scorers_test.go │ │ │ ├── service.go │ │ │ └── service_test.go │ │ ├── status.go │ │ └── status_test.go │ ├── pubsub.go │ ├── pubsub_filter.go │ ├── pubsub_filter_test.go │ ├── pubsub_fuzz_test.go │ ├── pubsub_test.go │ ├── pubsub_tracer.go │ ├── rpc_topic_mappings.go │ ├── rpc_topic_mappings_test.go │ ├── sender.go │ ├── sender_test.go │ ├── service.go │ ├── service_test.go │ ├── subnets.go │ ├── subnets_test.go │ ├── testing │ │ ├── BUILD.bazel │ │ ├── fuzz_p2p.go │ │ ├── mock_broadcaster.go │ │ ├── mock_host.go │ │ ├── mock_metadataprovider.go │ │ ├── mock_peermanager.go │ │ ├── mock_peersprovider.go │ │ └── p2p.go │ ├── topics.go │ ├── types │ │ ├── BUILD.bazel │ │ ├── object_mapping.go │ │ ├── object_mapping_test.go │ │ ├── rpc_errors.go │ │ ├── rpc_goodbye_codes.go │ │ ├── types.go │ │ └── types_test.go │ ├── utils.go │ ├── utils_test.go │ └── watch_peers.go ├── package │ ├── BUILD.bazel │ ├── beacon-chain.yaml │ ├── postinst.sh │ ├── preinst.sh │ └── prysm-beacon-chain.service ├── rpc │ ├── BUILD.bazel │ ├── apimiddleware │ │ ├── BUILD.bazel │ │ ├── custom_handlers.go │ │ ├── custom_handlers_test.go │ │ ├── custom_hooks.go │ │ ├── custom_hooks_test.go │ │ ├── endpoint_factory.go │ │ ├── structs.go │ │ ├── structs_marshalling.go │ │ └── structs_marshalling_test.go │ ├── eth │ │ ├── beacon │ │ │ ├── BUILD.bazel │ │ │ ├── blinded_blocks.go │ │ │ ├── blinded_blocks_test.go │ │ │ ├── blocks.go │ │ │ ├── blocks_test.go │ │ │ ├── config.go │ │ │ ├── config_test.go │ │ │ ├── init_test.go │ │ │ ├── log.go │ │ │ ├── pool.go │ │ │ ├── pool_test.go │ │ │ ├── server.go │ │ │ ├── server_test.go │ │ │ ├── state.go │ │ │ ├── state_test.go │ │ │ ├── sync_committee.go │ │ │ ├── sync_committee_test.go │ │ │ ├── validator.go │ │ │ └── validator_test.go │ │ ├── debug │ │ │ ├── BUILD.bazel │ │ │ ├── debug.go │ │ │ ├── debug_test.go │ │ │ └── server.go │ │ ├── events │ │ │ ├── BUILD.bazel │ │ │ ├── events.go │ │ │ ├── events_test.go │ │ │ └── server.go │ │ ├── helpers │ │ │ ├── BUILD.bazel │ │ │ ├── error_handling.go │ │ │ ├── sync.go │ │ │ ├── sync_test.go │ │ │ ├── validator_status.go │ │ │ └── validator_status_test.go │ │ ├── node │ │ │ ├── BUILD.bazel │ │ │ ├── node.go │ │ │ ├── node_test.go │ │ │ ├── server.go │ │ │ └── server_test.go │ │ └── validator │ │ │ ├── BUILD.bazel │ │ │ ├── server.go │ │ │ ├── validator.go │ │ │ └── validator_test.go │ ├── log.go │ ├── prysm │ │ └── v1alpha1 │ │ │ ├── beacon │ │ │ ├── BUILD.bazel │ │ │ ├── assignments.go │ │ │ ├── assignments_test.go │ │ │ ├── attestations.go │ │ │ ├── attestations_test.go │ │ │ ├── beacon_test.go │ │ │ ├── blocks.go │ │ │ ├── blocks_test.go │ │ │ ├── committees.go │ │ │ ├── committees_test.go │ │ │ ├── config.go │ │ │ ├── config_test.go │ │ │ ├── init_test.go │ │ │ ├── log.go │ │ │ ├── server.go │ │ │ ├── slashings.go │ │ │ ├── slashings_test.go │ │ │ ├── validators.go │ │ │ ├── validators_stream.go │ │ │ ├── validators_stream_test.go │ │ │ └── validators_test.go │ │ │ ├── debug │ │ │ ├── BUILD.bazel │ │ │ ├── block.go │ │ │ ├── block_test.go │ │ │ ├── p2p.go │ │ │ ├── p2p_test.go │ │ │ ├── server.go │ │ │ ├── state.go │ │ │ └── state_test.go │ │ │ ├── node │ │ │ ├── BUILD.bazel │ │ │ ├── server.go │ │ │ └── server_test.go │ │ │ ├── slasher │ │ │ ├── BUILD.bazel │ │ │ ├── attestations.go │ │ │ ├── attestations_test.go │ │ │ ├── blocks.go │ │ │ ├── server.go │ │ │ └── server_test.go │ │ │ └── validator │ │ │ ├── BUILD.bazel │ │ │ ├── aggregator.go │ │ │ ├── aggregator_test.go │ │ │ ├── assignments.go │ │ │ ├── assignments_test.go │ │ │ ├── attester.go │ │ │ ├── attester_mainnet_test.go │ │ │ ├── attester_test.go │ │ │ ├── blocks.go │ │ │ ├── blocks_test.go │ │ │ ├── exit.go │ │ │ ├── exit_test.go │ │ │ ├── log.go │ │ │ ├── proposer.go │ │ │ ├── proposer_altair.go │ │ │ ├── proposer_altair_test.go │ │ │ ├── proposer_attestations.go │ │ │ ├── proposer_attestations_test.go │ │ │ ├── proposer_bellatrix.go │ │ │ ├── proposer_bellatrix_test.go │ │ │ ├── proposer_builder.go │ │ │ ├── proposer_builder_test.go │ │ │ ├── proposer_capella.go │ │ │ ├── proposer_capella_test.go │ │ │ ├── proposer_deposits.go │ │ │ ├── proposer_deposits_test.go │ │ │ ├── proposer_empty_block.go │ │ │ ├── proposer_empty_block_test.go │ │ │ ├── proposer_eth1data.go │ │ │ ├── proposer_execution_payload.go │ │ │ ├── proposer_execution_payload_test.go │ │ │ ├── proposer_exits.go │ │ │ ├── proposer_exits_test.go │ │ │ ├── proposer_slashings.go │ │ │ ├── proposer_slashings_test.go │ │ │ ├── proposer_sync_aggregate.go │ │ │ ├── proposer_sync_aggregate_test.go │ │ │ ├── proposer_test.go │ │ │ ├── proposer_utils_bench_test.go │ │ │ ├── server.go │ │ │ ├── server_mainnet_test.go │ │ │ ├── server_test.go │ │ │ ├── status.go │ │ │ ├── status_mainnet_test.go │ │ │ ├── status_test.go │ │ │ ├── sync_committee.go │ │ │ ├── sync_committee_test.go │ │ │ └── validator_test.go │ ├── service.go │ ├── service_test.go │ ├── statefetcher │ │ ├── BUILD.bazel │ │ ├── fetcher.go │ │ └── fetcher_test.go │ └── testutil │ │ ├── BUILD.bazel │ │ ├── mock_exec_chain_info_fetcher.go │ │ ├── mock_genesis_timefetcher.go │ │ └── mock_state_fetcher.go ├── server │ ├── BUILD.bazel │ ├── log.go │ └── main.go ├── slasher │ ├── BUILD.bazel │ ├── chunks.go │ ├── chunks_test.go │ ├── detect_attestations.go │ ├── detect_attestations_test.go │ ├── detect_blocks.go │ ├── detect_blocks_test.go │ ├── doc.go │ ├── helpers.go │ ├── helpers_test.go │ ├── log.go │ ├── metrics.go │ ├── mock │ │ ├── BUILD.bazel │ │ └── mock_slashing_checker.go │ ├── params.go │ ├── params_test.go │ ├── process_slashings.go │ ├── process_slashings_test.go │ ├── queue.go │ ├── queue_test.go │ ├── receive.go │ ├── receive_test.go │ ├── rpc.go │ ├── rpc_test.go │ ├── service.go │ ├── service_test.go │ └── types │ │ ├── BUILD.bazel │ │ └── types.go ├── state │ ├── BUILD.bazel │ ├── error.go │ ├── fieldtrie │ │ ├── BUILD.bazel │ │ ├── field_trie.go │ │ ├── field_trie_helpers.go │ │ ├── field_trie_test.go │ │ ├── helpers_test.go │ │ └── testdata │ │ │ └── fuzz │ │ │ └── FuzzFieldTrie │ │ │ └── c1898b8d556154d8a9d00cf2a64226dd5d76f33e27c373df2c409670db9b4877 │ ├── genesis │ │ ├── BUILD.bazel │ │ ├── genesis.go │ │ ├── genesis_test.go │ │ └── mainnet.ssz.snappy │ ├── interfaces.go │ ├── prometheus.go │ ├── state-native │ │ ├── BUILD.bazel │ │ ├── beacon_state_mainnet.go │ │ ├── beacon_state_minimal.go │ │ ├── custom-types │ │ │ ├── BUILD.bazel │ │ │ ├── block_roots.go │ │ │ ├── block_roots_test.go │ │ │ ├── historical_roots.go │ │ │ ├── historical_roots_test.go │ │ │ ├── randao_mixes.go │ │ │ ├── randao_mixes_test.go │ │ │ ├── state_roots.go │ │ │ └── state_roots_test.go │ │ ├── doc.go │ │ ├── error.go │ │ ├── getters_attestation.go │ │ ├── getters_attestation_test.go │ │ ├── getters_block.go │ │ ├── getters_block_test.go │ │ ├── getters_checkpoint.go │ │ ├── getters_checkpoint_test.go │ │ ├── getters_eth1.go │ │ ├── getters_misc.go │ │ ├── getters_participation.go │ │ ├── getters_participation_test.go │ │ ├── getters_payload_header.go │ │ ├── getters_randao.go │ │ ├── getters_state.go │ │ ├── getters_sync_committee.go │ │ ├── getters_test.go │ │ ├── getters_validator.go │ │ ├── getters_validator_test.go │ │ ├── getters_withdrawal.go │ │ ├── getters_withdrawal_test.go │ │ ├── hasher.go │ │ ├── hasher_test.go │ │ ├── proofs.go │ │ ├── proofs_test.go │ │ ├── readonly_validator.go │ │ ├── readonly_validator_test.go │ │ ├── references_test.go │ │ ├── setters_attestation.go │ │ ├── setters_attestation_test.go │ │ ├── setters_block.go │ │ ├── setters_checkpoint.go │ │ ├── setters_eth1.go │ │ ├── setters_misc.go │ │ ├── setters_participation.go │ │ ├── setters_payload_header.go │ │ ├── setters_randao.go │ │ ├── setters_state.go │ │ ├── setters_sync_committee.go │ │ ├── setters_validator.go │ │ ├── setters_withdrawal.go │ │ ├── setters_withdrawal_test.go │ │ ├── spec_parameters.go │ │ ├── ssz.go │ │ ├── state_fuzz_test.go │ │ ├── state_test.go │ │ ├── state_trie.go │ │ ├── state_trie_test.go │ │ ├── types.go │ │ ├── types │ │ │ ├── BUILD.bazel │ │ │ └── types.go │ │ └── types_test.go │ ├── stategen │ │ ├── BUILD.bazel │ │ ├── cacher.go │ │ ├── epoch_boundary_state_cache.go │ │ ├── epoch_boundary_state_cache_test.go │ │ ├── errors.go │ │ ├── getter.go │ │ ├── getter_test.go │ │ ├── history.go │ │ ├── history_test.go │ │ ├── hot_state_cache.go │ │ ├── hot_state_cache_test.go │ │ ├── init_test.go │ │ ├── log.go │ │ ├── metrics.go │ │ ├── migrate.go │ │ ├── migrate_test.go │ │ ├── mock │ │ │ ├── BUILD.bazel │ │ │ ├── mock.go │ │ │ └── replayer.go │ │ ├── mock_test.go │ │ ├── replay.go │ │ ├── replay_test.go │ │ ├── replayer.go │ │ ├── replayer_test.go │ │ ├── service.go │ │ ├── service_test.go │ │ ├── setter.go │ │ └── setter_test.go │ ├── stateutil │ │ ├── BUILD.bazel │ │ ├── benchmark_test.go │ │ ├── block_header_root.go │ │ ├── eth1_root.go │ │ ├── field_root_attestation.go │ │ ├── field_root_eth1.go │ │ ├── field_root_test.go │ │ ├── field_root_validator.go │ │ ├── field_root_validator_test.go │ │ ├── field_root_vector.go │ │ ├── historical_summaries_root.go │ │ ├── participation_bit_root.go │ │ ├── pending_attestation_root.go │ │ ├── reference.go │ │ ├── reference_bench_test.go │ │ ├── state_root_test.go │ │ ├── sync_committee.root.go │ │ ├── trie_helpers.go │ │ ├── trie_helpers_test.go │ │ ├── unrealized_justification.go │ │ ├── unrealized_justification_test.go │ │ ├── validator_map_handler.go │ │ ├── validator_root.go │ │ └── validator_root_test.go │ └── testing │ │ ├── BUILD.bazel │ │ ├── getters.go │ │ ├── getters_block.go │ │ ├── getters_checkpoint.go │ │ └── getters_validator.go └── sync │ ├── BUILD.bazel │ ├── backfill │ ├── BUILD.bazel │ ├── status.go │ └── status_test.go │ ├── batch_verifier.go │ ├── batch_verifier_test.go │ ├── broadcast_bls_changes.go │ ├── broadcast_bls_changes_test.go │ ├── checkpoint │ ├── BUILD.bazel │ ├── api.go │ └── file.go │ ├── context.go │ ├── context_test.go │ ├── deadlines.go │ ├── decode_pubsub.go │ ├── decode_pubsub_test.go │ ├── doc.go │ ├── error.go │ ├── error_test.go │ ├── fork_watcher.go │ ├── fork_watcher_test.go │ ├── fuzz_exports.go │ ├── genesis │ ├── BUILD.bazel │ ├── api.go │ └── file.go │ ├── initial-sync │ ├── BUILD.bazel │ ├── blocks_fetcher.go │ ├── blocks_fetcher_peers.go │ ├── blocks_fetcher_peers_test.go │ ├── blocks_fetcher_test.go │ ├── blocks_fetcher_utils.go │ ├── blocks_fetcher_utils_test.go │ ├── blocks_queue.go │ ├── blocks_queue_test.go │ ├── blocks_queue_utils.go │ ├── fsm.go │ ├── fsm_benchmark_test.go │ ├── fsm_test.go │ ├── initial_sync_test.go │ ├── log.go │ ├── round_robin.go │ ├── round_robin_test.go │ ├── service.go │ ├── service_test.go │ └── testing │ │ ├── BUILD.bazel │ │ └── mock.go │ ├── log.go │ ├── metrics.go │ ├── options.go │ ├── pending_attestations_queue.go │ ├── pending_attestations_queue_test.go │ ├── pending_blocks_queue.go │ ├── pending_blocks_queue_test.go │ ├── rate_limiter.go │ ├── rate_limiter_test.go │ ├── rpc.go │ ├── rpc_beacon_blocks_by_range.go │ ├── rpc_beacon_blocks_by_range_test.go │ ├── rpc_beacon_blocks_by_root.go │ ├── rpc_beacon_blocks_by_root_test.go │ ├── rpc_chunked_response.go │ ├── rpc_chunked_response_test.go │ ├── rpc_goodbye.go │ ├── rpc_goodbye_test.go │ ├── rpc_metadata.go │ ├── rpc_metadata_test.go │ ├── rpc_ping.go │ ├── rpc_ping_test.go │ ├── rpc_send_request.go │ ├── rpc_send_request_test.go │ ├── rpc_status.go │ ├── rpc_status_test.go │ ├── rpc_test.go │ ├── service.go │ ├── service_test.go │ ├── subscriber.go │ ├── subscriber_beacon_aggregate_proof.go │ ├── subscriber_beacon_aggregate_proof_test.go │ ├── subscriber_beacon_attestation.go │ ├── subscriber_beacon_blocks.go │ ├── subscriber_beacon_blocks_test.go │ ├── subscriber_bls_to_execution_change.go │ ├── subscriber_handlers.go │ ├── subscriber_sync_committee_message.go │ ├── subscriber_sync_contribution_proof.go │ ├── subscriber_test.go │ ├── subscription_topic_handler.go │ ├── subscription_topic_handler_test.go │ ├── sync_fuzz_test.go │ ├── sync_test.go │ ├── utils.go │ ├── utils_test.go │ ├── validate_aggregate_proof.go │ ├── validate_aggregate_proof_test.go │ ├── validate_attester_slashing.go │ ├── validate_attester_slashing_test.go │ ├── validate_beacon_attestation.go │ ├── validate_beacon_attestation_test.go │ ├── validate_beacon_blocks.go │ ├── validate_beacon_blocks_test.go │ ├── validate_bls_to_execution_change.go │ ├── validate_bls_to_execution_change_test.go │ ├── validate_proposer_slashing.go │ ├── validate_proposer_slashing_test.go │ ├── validate_sync_committee_message.go │ ├── validate_sync_committee_message_test.go │ ├── validate_sync_contribution_proof.go │ ├── validate_sync_contribution_proof_test.go │ ├── validate_voluntary_exit.go │ └── validate_voluntary_exit_test.go ├── build ├── bazel │ ├── BUILD.bazel │ ├── bazel.go │ ├── bazel_test.go │ ├── data_path.go │ └── non_bazel.go └── bazelrc │ ├── convenience.bazelrc │ ├── correctness.bazelrc │ ├── cross.bazelrc │ ├── debug.bazelrc │ └── performance.bazelrc ├── cache └── lru │ ├── BUILD.bazel │ ├── lru_wrpr.go │ └── lru_wrpr_test.go ├── cmd ├── BUILD.bazel ├── beacon-chain │ ├── BUILD.bazel │ ├── blockchain │ │ ├── BUILD.bazel │ │ └── options.go │ ├── db │ │ ├── BUILD.bazel │ │ └── db.go │ ├── execution │ │ ├── BUILD.bazel │ │ ├── options.go │ │ └── options_test.go │ ├── flags │ │ ├── BUILD.bazel │ │ ├── api_module.go │ │ ├── api_module_test.go │ │ ├── base.go │ │ ├── config.go │ │ ├── interop.go │ │ └── log.go │ ├── jwt │ │ ├── BUILD.bazel │ │ ├── jwt.go │ │ └── jwt_test.go │ ├── log.go │ ├── main.go │ ├── sync │ │ ├── checkpoint │ │ │ ├── BUILD.bazel │ │ │ └── options.go │ │ └── genesis │ │ │ ├── BUILD.bazel │ │ │ └── options.go │ ├── usage.go │ └── usage_test.go ├── client-stats │ ├── BUILD.bazel │ ├── flags │ │ ├── BUILD.bazel │ │ └── flags.go │ ├── log.go │ ├── main.go │ └── usage.go ├── config.go ├── config_test.go ├── defaults.go ├── flags.go ├── flags │ ├── BUILD.bazel │ └── enum.go ├── flags_test.go ├── helpers.go ├── helpers_test.go ├── mock │ ├── BUILD.bazel │ └── password_reader_mock.go ├── password_reader.go ├── prysmctl │ ├── BUILD.bazel │ ├── checkpointsync │ │ ├── BUILD.bazel │ │ ├── cmd.go │ │ └── download.go │ ├── db │ │ ├── BUILD.bazel │ │ ├── buckets.go │ │ ├── cmd.go │ │ └── query.go │ ├── deprecated │ │ ├── BUILD.bazel │ │ ├── checkpoint │ │ │ ├── BUILD.bazel │ │ │ ├── checkpoint.go │ │ │ ├── latest.go │ │ │ └── save.go │ │ └── cmd.go │ ├── main.go │ ├── p2p │ │ ├── BUILD.bazel │ │ ├── client.go │ │ ├── handler.go │ │ ├── handshake.go │ │ ├── log.go │ │ ├── mock_chain.go │ │ ├── p2p.go │ │ ├── peers.go │ │ └── request_blocks.go │ ├── testnet │ │ ├── BUILD.bazel │ │ ├── generate_genesis.go │ │ ├── generate_genesis_test.go │ │ └── testnet.go │ ├── validator │ │ ├── BUILD.bazel │ │ ├── cmd.go │ │ ├── testdata │ │ │ ├── change-operations-multiple.json │ │ │ ├── change-operations-multiple_notfound.json │ │ │ ├── change-operations.json │ │ │ └── staking-cli-change-operations-multiple.json │ │ ├── withdraw.go │ │ └── withdraw_test.go │ └── weaksubjectivity │ │ ├── BUILD.bazel │ │ ├── checkpoint.go │ │ └── cmd.go ├── validator │ ├── BUILD.bazel │ ├── accounts │ │ ├── BUILD.bazel │ │ ├── accounts.go │ │ ├── backup.go │ │ ├── backup_test.go │ │ ├── delete.go │ │ ├── delete_test.go │ │ ├── exit.go │ │ ├── exit_test.go │ │ ├── import.go │ │ ├── import_test.go │ │ ├── list.go │ │ ├── wallet_utils.go │ │ └── wallet_utils_test.go │ ├── db │ │ ├── BUILD.bazel │ │ └── db.go │ ├── flags │ │ ├── BUILD.bazel │ │ ├── flags.go │ │ ├── flags_test.go │ │ └── interop.go │ ├── log.go │ ├── main.go │ ├── slashing-protection │ │ ├── BUILD.bazel │ │ ├── export.go │ │ ├── import.go │ │ ├── import_export_test.go │ │ ├── log.go │ │ └── slashing-protection.go │ ├── usage.go │ ├── usage_test.go │ ├── wallet │ │ ├── BUILD.bazel │ │ ├── create.go │ │ ├── create_test.go │ │ ├── recover.go │ │ ├── recover_test.go │ │ └── wallet.go │ └── web │ │ ├── BUILD.bazel │ │ ├── log.go │ │ └── web.go └── wrap_flags.go ├── config ├── BUILD.bazel ├── features │ ├── BUILD.bazel │ ├── README.md │ ├── config.go │ ├── config_test.go │ ├── deprecated_flags.go │ ├── deprecated_flags_test.go │ ├── filter_flags.go │ └── flags.go ├── fieldparams │ ├── BUILD.bazel │ ├── common_test.go │ ├── mainnet.go │ ├── mainnet_test.go │ ├── minimal.go │ └── minimal_test.go ├── params │ ├── BUILD.bazel │ ├── checktags_test.go │ ├── config.go │ ├── config_test.go │ ├── config_utils_develop.go │ ├── config_utils_prod.go │ ├── configset.go │ ├── configset_test.go │ ├── init.go │ ├── interop.go │ ├── io_config.go │ ├── loader.go │ ├── loader_test.go │ ├── mainnet_config.go │ ├── minimal_config.go │ ├── network_config.go │ ├── testdata │ │ └── e2e_config.yaml │ ├── testnet_config_test.go │ ├── testnet_e2e_config.go │ ├── testnet_prater_config.go │ ├── testnet_prater_config_test.go │ ├── testnet_sepolia_config.go │ ├── testutils.go │ ├── testutils_develop.go │ └── values.go └── validator │ └── service │ ├── BUILD.bazel │ └── proposer-settings.go ├── consensus-types ├── blocks │ ├── BUILD.bazel │ ├── execution.go │ ├── execution_test.go │ ├── factory.go │ ├── factory_test.go │ ├── getters.go │ ├── getters_test.go │ ├── proto.go │ ├── proto_test.go │ ├── setters.go │ ├── testing │ │ ├── BUILD.bazel │ │ ├── factory.go │ │ └── mutator.go │ └── types.go ├── interfaces │ ├── BUILD.bazel │ ├── beacon_block.go │ ├── utils.go │ └── utils_test.go ├── mock │ ├── BUILD.bazel │ └── block.go ├── payload-attribute │ ├── BUILD.bazel │ ├── getters.go │ ├── getters_test.go │ ├── interface.go │ └── types.go ├── primitives │ ├── BUILD.bazel │ ├── committee_index.go │ ├── committee_index_test.go │ ├── domain.go │ ├── domain_test.go │ ├── epoch.go │ ├── epoch_test.go │ ├── slot.go │ ├── slot_test.go │ ├── sszbytes.go │ ├── sszbytes_test.go │ ├── sszuint64.go │ ├── sszuint64_test.go │ ├── validator.go │ └── validator_test.go └── wrapper │ ├── BUILD.bazel │ └── metadata.go ├── container ├── doubly-linked-list │ ├── BUILD.bazel │ ├── list.go │ └── list_test.go ├── leaky-bucket │ ├── BUILD.bazel │ ├── LICENSE │ ├── collector.go │ ├── collector_test.go │ ├── heap.go │ ├── heap_test.go │ ├── leakybucket.go │ └── leakybucket_test.go ├── queue │ ├── BUILD.bazel │ ├── LICENSE │ ├── priority_queue.go │ └── priority_queue_test.go ├── slice │ ├── BUILD.bazel │ ├── doc.go │ ├── slice.go │ └── slice_test.go ├── thread-safe │ ├── BUILD.bazel │ ├── map.go │ └── map_test.go └── trie │ ├── BUILD.bazel │ ├── sparse_merkle.go │ ├── sparse_merkle_test.go │ ├── sparse_merkle_trie_fuzz_test.go │ ├── testdata │ └── fuzz │ │ ├── FuzzSparseMerkleTrie_HashTreeRoot │ │ └── 5838cdfae7b16cde2707c04599b62223e7bade8dafdd8a1c53b8f881e8f79d99 │ │ ├── FuzzSparseMerkleTrie_Insert │ │ ├── d863478086b8f8e8c854ec74d4d5360ffbe979064b58f619eb3d5fddfdae64c8 │ │ └── fuzzbuzz-97663548a1e2280a081745e5fa25c289f7121c0b │ │ ├── FuzzSparseMerkleTrie_MerkleProof │ │ └── ec4893c52de558dbac9a850e4266850e109a9e6bc6bab59953b2a30027f66a93 │ │ └── FuzzSparseMerkleTrie_VerifyMerkleProofWithDepth │ │ └── 826f574b1f684ccfa610c2db07e0dc5ecfe453c6c95e4597476616ba0358c236 │ └── zerohashes.go ├── contracts └── deposit │ ├── BUILD.bazel │ ├── README.md │ ├── abi.json │ ├── bytecode.bin │ ├── contract.go │ ├── contract_test.go │ ├── deposit.go │ ├── deposit_contract.sol │ ├── deposit_test.go │ ├── deposit_tree_test.go │ ├── helper.go │ ├── logs.go │ └── mock │ ├── BUILD.bazel │ └── mock.go ├── crypto ├── bls │ ├── BUILD.bazel │ ├── bls.go │ ├── bls_test.go │ ├── blst │ │ ├── BUILD.bazel │ │ ├── aliases.go │ │ ├── bls_benchmark_test.go │ │ ├── doc.go │ │ ├── init.go │ │ ├── public_key.go │ │ ├── public_key_test.go │ │ ├── secret_key.go │ │ ├── secret_key_test.go │ │ ├── signature.go │ │ ├── signature_test.go │ │ └── stub.go │ ├── common │ │ ├── BUILD.bazel │ │ ├── constants.go │ │ ├── error.go │ │ ├── interface.go │ │ └── mock │ │ │ ├── BUILD.bazel │ │ │ └── interface_mock.go │ ├── constants.go │ ├── error.go │ ├── herumi │ │ ├── BUILD.bazel │ │ └── init.go │ ├── interface.go │ ├── signature_batch.go │ └── signature_batch_test.go ├── ecdsa │ ├── BUILD.bazel │ ├── utils.go │ └── utils_test.go ├── hash │ ├── BUILD.bazel │ ├── hash.go │ ├── hash_test.go │ └── htr │ │ ├── BUILD.bazel │ │ └── hashtree.go ├── keystore │ ├── BUILD.bazel │ ├── keccak256.go │ ├── key.go │ ├── key_test.go │ ├── keystore.go │ ├── keystore_test.go │ └── utils.go └── rand │ ├── BUILD.bazel │ ├── rand.go │ └── rand_test.go ├── deps.bzl ├── encoding ├── bytesutil │ ├── BUILD.bazel │ ├── bits.go │ ├── bits_test.go │ ├── bytes.go │ ├── bytes_go120.go │ ├── bytes_legacy.go │ ├── bytes_test.go │ ├── eth_types.go │ ├── eth_types_test.go │ ├── hex.go │ ├── hex_test.go │ ├── integers.go │ └── integers_test.go └── ssz │ ├── BUILD.bazel │ ├── detect │ ├── BUILD.bazel │ ├── configfork.go │ ├── configfork_test.go │ ├── fieldspec.go │ └── fieldspec_test.go │ ├── equality │ ├── BUILD.bazel │ ├── deep_equal.go │ └── deep_equal_test.go │ ├── export_test.go │ ├── hashers.go │ ├── hashers_test.go │ ├── helpers.go │ ├── helpers_test.go │ ├── htrutils.go │ ├── htrutils_fuzz_test.go │ ├── htrutils_test.go │ ├── merkleize.go │ └── merkleize_test.go ├── fuzzbuzz.yaml ├── go.mod ├── go.sum ├── hack ├── README.md ├── beacon-node-api │ ├── README.md │ └── beacon-node-api.postman-collection.json ├── check-todo.sh ├── check_gazelle.sh ├── ci-coverage.sh ├── codecov.sh ├── common.sh ├── coverage.sh ├── interop_start.sh ├── keymanager-api │ ├── README.md │ └── keymanager-api.postman_collection.json ├── mirror-ethereumapis.sh ├── tag-versioned-docker-images.sh ├── update-go-pbs.sh ├── update-go-ssz.sh ├── update-mockgen.sh ├── upload-github-release-asset.sh ├── workspace_status.sh └── workspace_status_ci.sh ├── io ├── file │ ├── BUILD.bazel │ ├── fileutil.go │ └── fileutil_test.go ├── logs │ ├── BUILD.bazel │ ├── logutil.go │ ├── logutil_test.go │ ├── stream.go │ └── stream_test.go └── prompt │ ├── BUILD.bazel │ ├── prompt.go │ ├── validate.go │ └── validate_test.go ├── math ├── BUILD.bazel ├── math_helper.go └── math_helper_test.go ├── monitoring ├── backup │ ├── BUILD.bazel │ └── http_backup_handler.go ├── clientstats │ ├── BUILD.bazel │ ├── README.md │ ├── interfaces.go │ ├── scrapers.go │ ├── scrapers_test.go │ ├── types.go │ └── updaters.go ├── journald │ ├── BUILD.bazel │ ├── journald.go │ └── journald_linux.go ├── progress │ ├── BUILD.bazel │ └── progress.go ├── prometheus │ ├── BUILD.bazel │ ├── README.md │ ├── content_negotiation.go │ ├── logrus_collector.go │ ├── logrus_collector_test.go │ ├── service.go │ ├── service_test.go │ └── simple_server.go └── tracing │ ├── BUILD.bazel │ ├── README.md │ ├── errors.go │ ├── recovery_interceptor_option.go │ └── tracer.go ├── network ├── BUILD.bazel ├── auth.go ├── auth_test.go ├── authorization │ ├── BUILD.bazel │ └── authorization_method.go ├── endpoint.go ├── endpoint_test.go ├── external_ip.go ├── external_ip_test.go └── forks │ ├── BUILD.bazel │ ├── errors.go │ ├── fork.go │ ├── fork_test.go │ ├── ordered.go │ └── ordered_test.go ├── nogo_config.json ├── proto ├── BUILD.bazel ├── README.md ├── builder │ ├── BUILD.bazel │ ├── builder.pb.go │ ├── builder.proto │ ├── generated.ssz.go │ ├── json_marshal_unmarshal.go │ └── json_marshal_unmarshal_test.go ├── engine │ └── v1 │ │ ├── BUILD.bazel │ │ ├── execution_engine.pb.go │ │ ├── execution_engine.proto │ │ ├── generated.ssz.go │ │ ├── json_marshal_unmarshal.go │ │ └── json_marshal_unmarshal_test.go ├── eth │ ├── LICENSE │ ├── ext │ │ ├── BUILD.bazel │ │ ├── options.pb.go │ │ └── options.proto │ ├── service │ │ ├── BUILD.bazel │ │ ├── beacon_chain_service.pb.go │ │ ├── beacon_chain_service.pb.gw.go │ │ ├── beacon_chain_service.proto │ │ ├── beacon_debug_service.pb.go │ │ ├── beacon_debug_service.pb.gw.go │ │ ├── beacon_debug_service.proto │ │ ├── events_service.pb.go │ │ ├── events_service.pb.gw.go │ │ ├── events_service.proto │ │ ├── key_management.pb.go │ │ ├── key_management.pb.gw.go │ │ ├── key_management.proto │ │ ├── node_service.pb.go │ │ ├── node_service.pb.gw.go │ │ ├── node_service.proto │ │ ├── validator_service.pb.go │ │ ├── validator_service.pb.gw.go │ │ └── validator_service.proto │ ├── v1 │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── attestation.pb.go │ │ ├── attestation.pb.gw.go │ │ ├── attestation.proto │ │ ├── beacon_block.pb.go │ │ ├── beacon_block.pb.gw.go │ │ ├── beacon_block.proto │ │ ├── beacon_chain.pb.go │ │ ├── beacon_chain.pb.gw.go │ │ ├── beacon_chain.proto │ │ ├── beacon_state.pb.go │ │ ├── beacon_state.pb.gw.go │ │ ├── beacon_state.proto │ │ ├── events.pb.go │ │ ├── events.pb.gw.go │ │ ├── events.proto │ │ ├── generated.ssz.go │ │ ├── node.pb.go │ │ ├── node.pb.gw.go │ │ ├── node.proto │ │ ├── testdata │ │ │ └── invalid-offset.attestation.ssz │ │ ├── validator.pb.go │ │ ├── validator.pb.gw.go │ │ └── validator.proto │ └── v2 │ │ ├── BUILD.bazel │ │ ├── beacon_block.pb.go │ │ ├── beacon_block.pb.gw.go │ │ ├── beacon_block.proto │ │ ├── beacon_chain.pb.go │ │ ├── beacon_chain.pb.gw.go │ │ ├── beacon_chain.proto │ │ ├── beacon_state.pb.go │ │ ├── beacon_state.pb.gw.go │ │ ├── beacon_state.proto │ │ ├── generated.ssz.go │ │ ├── ssz.pb.go │ │ ├── ssz.pb.gw.go │ │ ├── ssz.proto │ │ ├── sync_committee.pb.go │ │ ├── sync_committee.pb.gw.go │ │ ├── sync_committee.proto │ │ ├── validator.pb.go │ │ ├── validator.pb.gw.go │ │ ├── validator.proto │ │ ├── version.pb.go │ │ ├── version.pb.gw.go │ │ ├── version.proto │ │ ├── withdrawals.pb.go │ │ ├── withdrawals.pb.gw.go │ │ └── withdrawals.proto ├── migration │ ├── BUILD.bazel │ ├── enums.go │ ├── enums_test.go │ ├── v1alpha1_to_v1.go │ ├── v1alpha1_to_v1_test.go │ ├── v1alpha1_to_v2.go │ └── v1alpha1_to_v2_test.go ├── prysm │ ├── BUILD.bazel │ └── v1alpha1 │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── attestation.pb.go │ │ ├── attestation.pb.gw.go │ │ ├── attestation.proto │ │ ├── attestation │ │ ├── BUILD.bazel │ │ ├── aggregation │ │ │ ├── BUILD.bazel │ │ │ ├── aggregation.go │ │ │ ├── attestations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestations.go │ │ │ │ ├── attestations_test.go │ │ │ │ ├── maxcover.go │ │ │ │ └── maxcover_test.go │ │ │ ├── maxcover.go │ │ │ ├── maxcover_bench_test.go │ │ │ ├── maxcover_test.go │ │ │ ├── sync_contribution │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── contribution.go │ │ │ │ ├── naive.go │ │ │ │ └── naive_test.go │ │ │ └── testing │ │ │ │ ├── BUILD.bazel │ │ │ │ └── bitlistutils.go │ │ ├── attestation_utils.go │ │ └── attestation_utils_test.go │ │ ├── beacon_block.pb.go │ │ ├── beacon_block.pb.gw.go │ │ ├── beacon_block.proto │ │ ├── beacon_chain.pb.go │ │ ├── beacon_chain.pb.gw.go │ │ ├── beacon_chain.proto │ │ ├── beacon_state.pb.go │ │ ├── beacon_state.pb.gw.go │ │ ├── beacon_state.proto │ │ ├── cloners.go │ │ ├── cloners_test.go │ │ ├── debug.pb.go │ │ ├── debug.pb.gw.go │ │ ├── debug.proto │ │ ├── finalized_block_root_container.pb.go │ │ ├── finalized_block_root_container.pb.gw.go │ │ ├── finalized_block_root_container.proto │ │ ├── generated.ssz.go │ │ ├── health.pb.go │ │ ├── health.pb.gw.go │ │ ├── health.proto │ │ ├── metadata │ │ ├── BUILD.bazel │ │ └── metadata_interfaces.go │ │ ├── node.pb.go │ │ ├── node.pb.gw.go │ │ ├── node.proto │ │ ├── p2p_messages.pb.go │ │ ├── p2p_messages.pb.gw.go │ │ ├── p2p_messages.proto │ │ ├── powchain.pb.go │ │ ├── powchain.pb.gw.go │ │ ├── powchain.proto │ │ ├── slasher.pb.go │ │ ├── slasher.pb.gw.go │ │ ├── slasher.proto │ │ ├── slashings │ │ ├── BUILD.bazel │ │ ├── double_votes.go │ │ ├── double_votes_test.go │ │ ├── surround_votes.go │ │ └── surround_votes_test.go │ │ ├── swagger.proto │ │ ├── swagger.swagger.json │ │ ├── swagger_description.md │ │ ├── sync_committee.pb.go │ │ ├── sync_committee.pb.gw.go │ │ ├── sync_committee.proto │ │ ├── sync_committee_mainnet.go │ │ ├── sync_committee_minimal.go │ │ ├── validator-client │ │ ├── BUILD.bazel │ │ ├── interface.go │ │ ├── keymanager.pb.go │ │ ├── keymanager.pb.gw.go │ │ ├── keymanager.proto │ │ ├── web_api.pb.go │ │ ├── web_api.pb.gw.go │ │ └── web_api.proto │ │ ├── validator.pb.go │ │ ├── validator.pb.gw.go │ │ ├── validator.proto │ │ ├── withdrawals.pb.go │ │ ├── withdrawals.pb.gw.go │ │ └── withdrawals.proto ├── ssz_proto_library.bzl └── testing │ ├── BUILD.bazel │ ├── gocast.go │ ├── tags_test.go │ ├── test.pb.go │ └── test.proto ├── prysm.bat ├── prysm.ps1 ├── prysm.sh ├── runtime ├── BUILD.bazel ├── debug │ ├── BUILD.bazel │ ├── cgo_symbolizer.go │ ├── debug.go │ └── maxprocs_metric.go ├── fdlimits │ ├── BUILD.bazel │ ├── fdlimits.go │ └── fdlimits_test.go ├── interop │ ├── BUILD.bazel │ ├── generate_genesis_state.go │ ├── generate_genesis_state_bellatrix.go │ ├── generate_genesis_state_bellatrix_test.go │ ├── generate_genesis_state_test.go │ ├── generate_keys.go │ ├── generate_keys_test.go │ ├── keygen_test_vector.yaml │ └── premined_genesis_state.go ├── logging │ └── logrus-prefixed-formatter │ │ ├── BUILD.bazel │ │ ├── LICENSE │ │ ├── README.md │ │ ├── formatter.go │ │ ├── formatter_test.go │ │ └── logrus_prefixed_formatter_suite_test.go ├── maxprocs │ ├── BUILD.bazel │ └── maxprocs.go ├── messagehandler │ ├── BUILD.bazel │ ├── messagehandler.go │ └── messagehandler_test.go ├── prereqs │ ├── BUILD.bazel │ ├── prereq.go │ └── prereq_test.go ├── service_registry.go ├── service_registry_test.go ├── tos │ ├── BUILD.bazel │ ├── tos.go │ └── tos_test.go └── version │ ├── BUILD.bazel │ ├── fork.go │ ├── fork_test.go │ ├── metrics.go │ └── version.go ├── service-account.json.enc ├── testing ├── assert │ ├── BUILD.bazel │ └── assertions.go ├── assertions │ ├── BUILD.bazel │ ├── assertions.go │ └── assertions_test.go ├── benchmark │ ├── BUILD.bazel │ ├── README.md │ ├── benchmark_files │ │ ├── BUILD.bazel │ │ ├── bState1Epoch-128Atts-16384Vals.ssz │ │ ├── bState2Epochs-128Atts-16384Vals.ssz │ │ └── fullBlock-128Atts-16384Vals.ssz │ ├── pregen.go │ └── pregen_test.go ├── bls │ ├── BUILD.bazel │ ├── aggregate_test.go │ ├── aggregate_test.yaml.go │ ├── aggregate_verify_test.go │ ├── aggregate_verify_test.yaml.go │ ├── batch_verify_test.go │ ├── batch_verify_test.yaml.go │ ├── deserialization_G1_test.go │ ├── deserialization_G1_test.yaml.go │ ├── deserialization_G2_test.go │ ├── deserialization_G2_test.yaml.go │ ├── fast_aggregate_verify_test.go │ ├── fast_aggregate_verify_test.yaml.go │ ├── hash_to_G2_test.go │ ├── hash_to_G2_test.yaml.go │ ├── sign_test.go │ ├── sign_test.yaml.go │ ├── utils │ │ ├── BUILD.bazel │ │ └── utils.go │ ├── verify_test.go │ └── verify_test.yaml.go ├── endtoend │ ├── BUILD.bazel │ ├── README.md │ ├── component_handler_test.go │ ├── components │ │ ├── BUILD.bazel │ │ ├── beacon_node.go │ │ ├── boot_node.go │ │ ├── eth1 │ │ │ ├── BUILD.bazel │ │ │ ├── depositor.go │ │ │ ├── depositor_test.go │ │ │ ├── helpers.go │ │ │ ├── miner.go │ │ │ ├── node.go │ │ │ ├── node_set.go │ │ │ ├── proxy.go │ │ │ └── transactions.go │ │ ├── lighthouse_beacon.go │ │ ├── lighthouse_validator.go │ │ ├── log.go │ │ ├── tracing_sink.go │ │ ├── validator.go │ │ ├── web3remotesigner.go │ │ └── web3remotesigner_test.go │ ├── deps.bzl │ ├── endtoend_setup_test.go │ ├── endtoend_test.go │ ├── evaluators │ │ ├── BUILD.bazel │ │ ├── api_gateway_v1alpha1.go │ │ ├── api_middleware.go │ │ ├── beaconapi_evaluators │ │ │ ├── BUILD.bazel │ │ │ ├── beacon_api.go │ │ │ ├── beacon_api_verify.go │ │ │ └── util.go │ │ ├── data.go │ │ ├── execution_engine.go │ │ ├── fee_recipient.go │ │ ├── finality.go │ │ ├── fork.go │ │ ├── metrics.go │ │ ├── node.go │ │ ├── operations.go │ │ ├── peers.go │ │ ├── slashing.go │ │ └── validator.go │ ├── fork.go │ ├── geth_deps.go │ ├── helpers │ │ ├── BUILD.bazel │ │ ├── epochTimer.go │ │ ├── helpers.go │ │ └── keystore.go │ ├── lighthouse.BUILD │ ├── mainnet_e2e_test.go │ ├── mainnet_scenario_e2e_test.go │ ├── minimal_e2e_test.go │ ├── minimal_scenario_e2e_test.go │ ├── minimal_slashing_e2e_test.go │ ├── params │ │ ├── BUILD.bazel │ │ ├── const.go │ │ ├── params.go │ │ └── params_test.go │ ├── policies │ │ ├── BUILD.bazel │ │ └── policies.go │ ├── slasher_simulator_e2e_test.go │ ├── static-files │ │ └── eth1 │ │ │ ├── BUILD.bazel │ │ │ └── UTC--2021-12-22T19-14-08.590377700Z--878705ba3f8bc32fcf7f4caa1a35e72af65cf766 │ ├── types │ │ ├── BUILD.bazel │ │ ├── empty.go │ │ ├── fork.go │ │ └── types.go │ └── web3signer.BUILD ├── middleware │ └── engine-api-proxy │ │ ├── BUILD.bazel │ │ ├── options.go │ │ ├── proxy.go │ │ └── proxy_test.go ├── mock │ ├── BUILD.bazel │ ├── beacon_altair_validator_client_mock.go │ ├── beacon_altair_validator_server_mock.go │ ├── beacon_chain_service_mock.go │ ├── beacon_service_mock.go │ ├── beacon_validator_client_mock.go │ ├── beacon_validator_server_mock.go │ ├── event_service_mock.go │ ├── keymanager_mock.go │ ├── node_service_mock.go │ └── slasher_client_mock.go ├── require │ ├── BUILD.bazel │ └── requires.go ├── slasher │ └── simulator │ │ ├── BUILD.bazel │ │ ├── attestation_generator.go │ │ ├── attestation_generator_test.go │ │ ├── block_generator.go │ │ ├── block_generator_test.go │ │ ├── simulator.go │ │ └── simulator_test.go ├── spectest │ ├── README.md │ ├── general │ │ └── phase0 │ │ │ └── bls │ │ │ ├── BUILD.bazel │ │ │ ├── aggregate_test.go │ │ │ ├── aggregate_test.yaml.go │ │ │ ├── aggregate_verify_test.go │ │ │ ├── aggregate_verify_test.yaml.go │ │ │ ├── doc.go │ │ │ ├── fast_aggregate_verify_test.go │ │ │ ├── fast_aggregate_verify_test.yaml.go │ │ │ ├── sign_test.go │ │ │ ├── sign_test.yaml.go │ │ │ ├── verify_test.go │ │ │ └── verify_test.yaml.go │ ├── mainnet │ │ ├── altair │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates_test.go │ │ │ │ ├── eth1_data_reset_test.go │ │ │ │ ├── historical_roots_update_test.go │ │ │ │ ├── inactivity_updates_test.go │ │ │ │ ├── justification_and_finalization_test.go │ │ │ │ ├── participation_flag_updates_test.go │ │ │ │ ├── randao_mixes_reset_test.go │ │ │ │ ├── registry_updates_test.go │ │ │ │ ├── rewards_and_penalties_test.go │ │ │ │ ├── slashings_reset_test.go │ │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality_test.go │ │ │ ├── fork_helper │ │ │ │ ├── BUILD.bazel │ │ │ │ └── upgrade_to_altair_test.go │ │ │ ├── fork_transition │ │ │ │ ├── BUILD.bazel │ │ │ │ └── transition_test.go │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ └── forkchoice_test.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation_test.go │ │ │ │ ├── attester_slashing_test.go │ │ │ │ ├── block_header_test.go │ │ │ │ ├── deposit_test.go │ │ │ │ ├── proposer_slashing_test.go │ │ │ │ ├── sync_committee_test.go │ │ │ │ └── voluntary_exit_test.go │ │ │ ├── random │ │ │ │ ├── BUILD.bazel │ │ │ │ └── random_test.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── blocks_test.go │ │ │ │ └── slots_test.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static_test.go │ │ ├── bellatrix │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates_test.go │ │ │ │ ├── eth1_data_reset_test.go │ │ │ │ ├── historical_roots_update_test.go │ │ │ │ ├── inactivity_updates_test.go │ │ │ │ ├── justification_and_finalization_test.go │ │ │ │ ├── participation_flag_updates_test.go │ │ │ │ ├── randao_mixes_reset_test.go │ │ │ │ ├── registry_updates_test.go │ │ │ │ ├── rewards_and_penalties_test.go │ │ │ │ ├── slashings_reset_test.go │ │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality_test.go │ │ │ ├── fork_helper │ │ │ │ ├── BUILD.bazel │ │ │ │ └── upgrade_to_altair_test.go │ │ │ ├── fork_transition │ │ │ │ ├── BUILD.bazel │ │ │ │ └── transition_test.go │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ └── forkchoice_test.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation_test.go │ │ │ │ ├── attester_slashing_test.go │ │ │ │ ├── block_header_test.go │ │ │ │ ├── deposit_test.go │ │ │ │ ├── proposer_slashing_test.go │ │ │ │ ├── sync_committee_test.go │ │ │ │ └── voluntary_exit_test.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── blocks_test.go │ │ │ │ └── slots_test.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static_test.go │ │ ├── capella │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates_test.go │ │ │ │ ├── eth1_data_reset_test.go │ │ │ │ ├── historical_summaries_update_test.go │ │ │ │ ├── inactivity_updates_test.go │ │ │ │ ├── justification_and_finalization_test.go │ │ │ │ ├── participation_flag_updates_test.go │ │ │ │ ├── randao_mixes_reset_test.go │ │ │ │ ├── registry_updates_test.go │ │ │ │ ├── rewards_and_penalties_test.go │ │ │ │ ├── slashings_reset_test.go │ │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality_test.go │ │ │ ├── fork_helper │ │ │ │ ├── BUILD.bazel │ │ │ │ └── upgrade_to_capella_test.go │ │ │ ├── fork_transition │ │ │ │ ├── BUILD.bazel │ │ │ │ └── transition_test.go │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ └── forkchoice_test.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation_test.go │ │ │ │ ├── attester_slashing_test.go │ │ │ │ ├── block_header_test.go │ │ │ │ ├── deposit_test.go │ │ │ │ ├── proposer_slashing_test.go │ │ │ │ ├── sync_committee_test.go │ │ │ │ └── voluntary_exit_test.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── blocks_test.go │ │ │ │ └── slots_test.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static_test.go │ │ └── phase0 │ │ │ ├── epoch_processing │ │ │ ├── BUILD.bazel │ │ │ ├── effective_balance_updates_test.go │ │ │ ├── epoch_processing_test.go │ │ │ ├── eth1_data_reset_test.go │ │ │ ├── historical_roots_update_test.go │ │ │ ├── justification_and_finalization_test.go │ │ │ ├── participation_record_updates_test.go │ │ │ ├── randao_mixes_reset_test.go │ │ │ ├── registry_updates_test.go │ │ │ ├── rewards_and_penalties_test.go │ │ │ ├── slashings_reset_test.go │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ ├── BUILD.bazel │ │ │ └── finality_test.go │ │ │ ├── operations │ │ │ ├── BUILD.bazel │ │ │ ├── attestation_test.go │ │ │ ├── attester_slashing_test.go │ │ │ ├── block_header_test.go │ │ │ ├── deposit_test.go │ │ │ ├── proposer_slashing_test.go │ │ │ └── voluntary_exit_test.go │ │ │ ├── random │ │ │ ├── BUILD.bazel │ │ │ └── random_test.go │ │ │ ├── rewards │ │ │ ├── BUILD.bazel │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ ├── BUILD.bazel │ │ │ ├── blocks_test.go │ │ │ └── slots_test.go │ │ │ ├── shuffling │ │ │ └── core │ │ │ │ └── shuffle │ │ │ │ ├── BUILD.bazel │ │ │ │ └── shuffle_test.go │ │ │ └── ssz_static │ │ │ ├── BUILD.bazel │ │ │ └── ssz_static_test.go │ ├── minimal │ │ ├── altair │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates_test.go │ │ │ │ ├── eth1_data_reset_test.go │ │ │ │ ├── historical_roots_update_test.go │ │ │ │ ├── inactivity_updates_test.go │ │ │ │ ├── justification_and_finalization_test.go │ │ │ │ ├── participation_flag_updates_test.go │ │ │ │ ├── randao_mixes_reset_test.go │ │ │ │ ├── registry_updates_test.go │ │ │ │ ├── rewards_and_penalties_test.go │ │ │ │ ├── slashings_reset_test.go │ │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality_test.go │ │ │ ├── fork │ │ │ │ ├── BUILD.bazel │ │ │ │ └── upgrade_to_altair_test.go │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ └── forkchoice_test.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation_test.go │ │ │ │ ├── attester_slashing_test.go │ │ │ │ ├── block_header_test.go │ │ │ │ ├── deposit_test.go │ │ │ │ ├── proposer_slashing_test.go │ │ │ │ ├── sync_committee_test.go │ │ │ │ └── voluntary_exit_test.go │ │ │ ├── random │ │ │ │ ├── BUILD.bazel │ │ │ │ └── random_test.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── blocks_test.go │ │ │ │ └── slots_test.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static_test.go │ │ ├── bellatrix │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates_test.go │ │ │ │ ├── eth1_data_reset_test.go │ │ │ │ ├── historical_roots_update_test.go │ │ │ │ ├── inactivity_updates_test.go │ │ │ │ ├── justification_and_finalization_test.go │ │ │ │ ├── participation_flag_updates_test.go │ │ │ │ ├── randao_mixes_reset_test.go │ │ │ │ ├── registry_updates_test.go │ │ │ │ ├── rewards_and_penalties_test.go │ │ │ │ ├── slashings_reset_test.go │ │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality_test.go │ │ │ ├── fork │ │ │ │ ├── BUILD.bazel │ │ │ │ └── upgrade_to_altair_test.go │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ └── forkchoice_test.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation_test.go │ │ │ │ ├── attester_slashing_test.go │ │ │ │ ├── block_header_test.go │ │ │ │ ├── deposit_test.go │ │ │ │ ├── proposer_slashing_test.go │ │ │ │ ├── sync_committee_test.go │ │ │ │ └── voluntary_exit_test.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── blocks_test.go │ │ │ │ └── slots_test.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static_test.go │ │ ├── capella │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates_test.go │ │ │ │ ├── eth1_data_reset_test.go │ │ │ │ ├── historical_roots_summaries_test.go │ │ │ │ ├── inactivity_updates_test.go │ │ │ │ ├── justification_and_finalization_test.go │ │ │ │ ├── participation_flag_updates_test.go │ │ │ │ ├── randao_mixes_reset_test.go │ │ │ │ ├── registry_updates_test.go │ │ │ │ ├── rewards_and_penalties_test.go │ │ │ │ ├── slashings_reset_test.go │ │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality_test.go │ │ │ ├── fork │ │ │ │ ├── BUILD.bazel │ │ │ │ └── upgrade_to_capella_test.go │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ └── forkchoice_test.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation_test.go │ │ │ │ ├── attester_slashing_test.go │ │ │ │ ├── block_header_test.go │ │ │ │ ├── bls_to_execution_change_test.go │ │ │ │ ├── deposit_test.go │ │ │ │ ├── proposer_slashing_test.go │ │ │ │ ├── sync_committee_test.go │ │ │ │ ├── voluntary_exit_test.go │ │ │ │ └── withdrawals_test.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── blocks_test.go │ │ │ │ └── slots_test.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static_test.go │ │ └── phase0 │ │ │ ├── epoch_processing │ │ │ ├── BUILD.bazel │ │ │ ├── effective_balance_updates_test.go │ │ │ ├── epoch_processing_test.go │ │ │ ├── eth1_data_reset_test.go │ │ │ ├── historical_roots_update_test.go │ │ │ ├── justification_and_finalization_test.go │ │ │ ├── participation_record_updates_test.go │ │ │ ├── randao_mixes_reset_test.go │ │ │ ├── registry_updates_test.go │ │ │ ├── rewards_and_penalties_test.go │ │ │ ├── slashings_reset_test.go │ │ │ └── slashings_test.go │ │ │ ├── finality │ │ │ ├── BUILD.bazel │ │ │ └── finality_test.go │ │ │ ├── operations │ │ │ ├── BUILD.bazel │ │ │ ├── attestation_test.go │ │ │ ├── attester_slashing_test.go │ │ │ ├── block_header_test.go │ │ │ ├── deposit_test.go │ │ │ ├── proposer_slashing_test.go │ │ │ └── voluntary_exit_test.go │ │ │ ├── random │ │ │ ├── BUILD.bazel │ │ │ └── random_test.go │ │ │ ├── rewards │ │ │ ├── BUILD.bazel │ │ │ └── rewards_test.go │ │ │ ├── sanity │ │ │ ├── BUILD.bazel │ │ │ ├── blocks_test.go │ │ │ └── slots_test.go │ │ │ ├── shuffling │ │ │ └── core │ │ │ │ └── shuffle │ │ │ │ ├── BUILD.bazel │ │ │ │ └── shuffle_test.go │ │ │ └── ssz_static │ │ │ ├── BUILD.bazel │ │ │ └── ssz_static_test.go │ ├── shared │ │ ├── altair │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates.go │ │ │ │ ├── eth1_data_reset.go │ │ │ │ ├── helpers.go │ │ │ │ ├── historical_roots_update.go │ │ │ │ ├── inactivity_updates.go │ │ │ │ ├── justification_and_finalization.go │ │ │ │ ├── participation_flag_updates.go │ │ │ │ ├── randao_mixes_reset.go │ │ │ │ ├── registry_updates.go │ │ │ │ ├── rewards_and_penalties.go │ │ │ │ ├── slashings.go │ │ │ │ └── slashings_reset.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality.go │ │ │ ├── fork │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── transition.go │ │ │ │ └── upgrade_to_altair.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation.go │ │ │ │ ├── attester_slashing.go │ │ │ │ ├── block_header.go │ │ │ │ ├── deposit.go │ │ │ │ ├── helpers.go │ │ │ │ ├── proposer_slashing.go │ │ │ │ ├── sync_committee.go │ │ │ │ └── voluntary_exit.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_penalties.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── block_processing.go │ │ │ │ ├── block_processing.yaml.go │ │ │ │ └── slot_processing.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static.go │ │ ├── bellatrix │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates.go │ │ │ │ ├── eth1_data_reset.go │ │ │ │ ├── helpers.go │ │ │ │ ├── historical_roots_update.go │ │ │ │ ├── inactivity_updates.go │ │ │ │ ├── justification_and_finalization.go │ │ │ │ ├── participation_flag_updates.go │ │ │ │ ├── randao_mixes_reset.go │ │ │ │ ├── registry_updates.go │ │ │ │ ├── rewards_and_penalties.go │ │ │ │ ├── slashings.go │ │ │ │ └── slashings_reset.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality.go │ │ │ ├── fork │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── transition.go │ │ │ │ └── upgrade_to_bellatrix.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation.go │ │ │ │ ├── attester_slashing.go │ │ │ │ ├── block_header.go │ │ │ │ ├── deposit.go │ │ │ │ ├── helpers.go │ │ │ │ ├── proposer_slashing.go │ │ │ │ ├── sync_committee.go │ │ │ │ └── voluntary_exit.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_penalties.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── block_processing.go │ │ │ │ ├── block_processing.yaml.go │ │ │ │ └── slot_processing.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static.go │ │ ├── capella │ │ │ ├── epoch_processing │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── effective_balance_updates.go │ │ │ │ ├── eth1_data_reset.go │ │ │ │ ├── helpers.go │ │ │ │ ├── historical_summaries_update.go │ │ │ │ ├── inactivity_updates.go │ │ │ │ ├── justification_and_finalization.go │ │ │ │ ├── participation_flag_updates.go │ │ │ │ ├── randao_mixes_reset.go │ │ │ │ ├── registry_updates.go │ │ │ │ ├── rewards_and_penalties.go │ │ │ │ ├── slashings.go │ │ │ │ └── slashings_reset.go │ │ │ ├── finality │ │ │ │ ├── BUILD.bazel │ │ │ │ └── finality.go │ │ │ ├── fork │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── transition.go │ │ │ │ └── upgrade_to_capella.go │ │ │ ├── operations │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── attestation.go │ │ │ │ ├── attester_slashing.go │ │ │ │ ├── block_header.go │ │ │ │ ├── bls_to_execution_changes.go │ │ │ │ ├── deposit.go │ │ │ │ ├── helpers.go │ │ │ │ ├── proposer_slashing.go │ │ │ │ ├── sync_committee.go │ │ │ │ ├── voluntary_exit.go │ │ │ │ └── withdrawals.go │ │ │ ├── rewards │ │ │ │ ├── BUILD.bazel │ │ │ │ └── rewards_penalties.go │ │ │ ├── sanity │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── block_processing.go │ │ │ │ ├── block_processing.yaml.go │ │ │ │ └── slot_processing.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ └── ssz_static.go │ │ ├── common │ │ │ ├── forkchoice │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── builder.go │ │ │ │ ├── builder_test.go │ │ │ │ ├── runner.go │ │ │ │ ├── service.go │ │ │ │ └── type.go │ │ │ └── ssz_static │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── ssz_static.go │ │ │ │ ├── ssz_static_example_test.go │ │ │ │ └── types.go │ │ └── phase0 │ │ │ ├── epoch_processing │ │ │ ├── BUILD.bazel │ │ │ ├── effective_balance_updates.go │ │ │ ├── eth1_data_reset.go │ │ │ ├── helpers.go │ │ │ ├── historical_roots_update.go │ │ │ ├── justification_and_finalization.go │ │ │ ├── participation_record_updates.go │ │ │ ├── randao_mixes_reset.go │ │ │ ├── registry_updates.go │ │ │ ├── rewards_and_penalties.go │ │ │ ├── slashings.go │ │ │ └── slashings_reset.go │ │ │ ├── finality │ │ │ ├── BUILD.bazel │ │ │ └── runner.go │ │ │ ├── operations │ │ │ ├── BUILD.bazel │ │ │ ├── attestation.go │ │ │ ├── attester_slashing.go │ │ │ ├── block_header.go │ │ │ ├── deposit.go │ │ │ ├── helpers.go │ │ │ ├── proposer_slashing.go │ │ │ └── voluntary_exit.go │ │ │ ├── rewards │ │ │ ├── BUILD.bazel │ │ │ └── rewards_penalties.go │ │ │ ├── sanity │ │ │ ├── BUILD.bazel │ │ │ ├── block_processing.go │ │ │ ├── block_processing.yaml.go │ │ │ └── slot_processing.go │ │ │ ├── shuffling │ │ │ └── core │ │ │ │ └── shuffle │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── shuffle.go │ │ │ │ └── shuffle_test_format.go │ │ │ └── ssz_static │ │ │ ├── BUILD.bazel │ │ │ └── ssz_static.go │ └── utils │ │ ├── BUILD.bazel │ │ ├── config.go │ │ ├── config_test.go │ │ └── utils.go ├── spectypes │ └── BUILD.bazel ├── util │ ├── BUILD.bazel │ ├── altair.go │ ├── attestation.go │ ├── attestation_test.go │ ├── bazel.go │ ├── bellatrix.go │ ├── bellatrix_state.go │ ├── bellatrix_state_test.go │ ├── block.go │ ├── block_test.go │ ├── capella_block.go │ ├── capella_block_test.go │ ├── capella_state.go │ ├── deposits.go │ ├── deposits_test.go │ ├── helpers.go │ ├── helpers_test.go │ ├── merge.go │ ├── premine-state.go │ ├── state.go │ ├── state_test.go │ ├── sync_aggregate.go │ ├── sync_committee.go │ └── wait_timeout.go └── validator-mock │ ├── BUILD.bazel │ ├── beacon_chain_client_mock.go │ ├── node_client_mock.go │ ├── slasher_client_mock.go │ └── validator_client_mock.go ├── third_party ├── BUILD.bazel ├── README.md ├── blst │ └── blst.BUILD ├── com_github_datadog_zstd.patch ├── com_github_ethereum_go_ethereum_secp256k1.patch ├── com_github_gogo_protobuf-equal.patch ├── com_github_prysmaticlabs_ethereumapis-tags.patch ├── herumi │ ├── BUILD.bazel │ ├── bls.BUILD │ ├── bls_eth_go_binary.BUILD │ ├── herumi.bzl │ ├── mcl.BUILD │ └── mcl_darwin_arm64_base64.o ├── io_bazel_rules_go_test.patch └── usb │ ├── AUTHORS │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── hid_disabled.go │ ├── raw_disabled.go │ ├── usb.go │ ├── usb_disabled.go │ └── usb_test.go ├── time ├── BUILD.bazel ├── mclock │ ├── BUILD.bazel │ └── mclock.go ├── slots │ ├── BUILD.bazel │ ├── countdown.go │ ├── countdown_test.go │ ├── slotticker.go │ ├── slotticker_test.go │ ├── slottime.go │ ├── slottime_test.go │ ├── slotutil_test.go │ └── testing │ │ ├── BUILD.bazel │ │ ├── mock.go │ │ └── mock_test.go └── utils.go ├── tools ├── BUILD.bazel ├── analyzers │ ├── README.md │ ├── comparesame │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ └── compare_len.go │ ├── cryptorand │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ ├── custom_import.go │ │ │ └── rand_new.go │ ├── errcheck │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ └── embedded_walker_test.go │ ├── featureconfig │ │ ├── BUILD.bazel │ │ └── analyzer.go │ ├── gocognit │ │ ├── BUILD.bazel │ │ ├── CognitiveComplexity.pdf │ │ ├── README.md │ │ └── analyzer.go │ ├── ineffassign │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ ├── ineffassign.go │ │ └── testdata │ │ │ └── ctx_assignment.go │ ├── interfacechecker │ │ ├── BUILD.bazel │ │ └── analyzer.go │ ├── logruswitherror │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ └── src │ │ │ └── a │ │ │ └── a.go │ ├── maligned │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ └── maligned.go │ ├── nop │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ └── no_op.go │ ├── properpermissions │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ ├── custom_imports.go │ │ │ └── regular_imports.go │ ├── recursivelock │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ ├── badlockswithmethods.go │ │ │ ├── badlockswithstructs.go │ │ │ ├── complexlocks.go │ │ │ ├── globallocks.go │ │ │ ├── nonrlocks.go │ │ │ └── types.go │ ├── shadowpredecl │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ └── shadow.go │ ├── slicedirect │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ │ └── slice.go │ └── uintcast │ │ ├── BUILD.bazel │ │ ├── analyzer.go │ │ ├── analyzer_test.go │ │ └── testdata │ │ └── data.go ├── beacon-fuzz │ ├── BUILD.bazel │ └── main.go ├── benchmark-files-gen │ ├── BUILD.bazel │ └── main.go ├── blocktree │ ├── BUILD.bazel │ └── main.go ├── bootnode │ ├── BUILD.bazel │ ├── bootnode.go │ └── bootnode_test.go ├── build_settings.bzl ├── cross-toolchain │ ├── BUILD.bazel │ ├── Dockerfile │ ├── README.md │ ├── cc_toolchain.BUILD.bazel.tpl │ ├── cc_toolchain_config_linux_arm64.bzl.tpl │ ├── cc_toolchain_config_osx.bzl.tpl │ ├── cc_toolchain_config_windows.bzl.tpl │ ├── common_osxcross.sh │ ├── configs │ │ ├── LICENSE │ │ ├── cc │ │ │ ├── BUILD │ │ │ ├── WORKSPACE │ │ │ ├── armeabi_cc_toolchain_config.bzl │ │ │ ├── builtin_include_directory_paths │ │ │ ├── cc_toolchain_config.bzl │ │ │ ├── cc_wrapper.sh │ │ │ ├── module.modulemap │ │ │ └── tools │ │ │ │ └── cpp │ │ │ │ └── empty.cc │ │ ├── config │ │ │ └── BUILD │ │ └── java │ │ │ └── BUILD │ ├── cpp_env_clang.json │ ├── install_clang_cross.sh │ ├── install_osxcross.sh │ ├── link_osxcross.sh │ └── prysm_toolchains.bzl ├── enr-calculator │ ├── BUILD.bazel │ ├── README.md │ └── main.go ├── eth1exporter │ ├── BUILD.bazel │ └── main.go ├── eth1voting │ ├── BUILD.bazel │ ├── README.md │ ├── main.go │ └── votes.go ├── exploredb │ ├── BUILD.bazel │ └── main.go ├── extractor │ ├── BUILD.bazel │ └── main.go ├── forkchecker │ ├── BUILD.bazel │ └── forkchecker.go ├── go │ ├── BUILD.bazel │ └── def.bzl ├── go_image.bzl ├── gocovmerge │ ├── BUILD.bazel │ └── main.go ├── http-request-sink │ ├── BUILD.bazel │ ├── main.go │ └── main_test.go ├── interop │ ├── convert-keys │ │ ├── BUILD.bazel │ │ └── main.go │ ├── export-genesis │ │ ├── BUILD.bazel │ │ └── main.go │ └── split-keys │ │ ├── BUILD.bazel │ │ ├── main.go │ │ └── main_test.go ├── keystores │ ├── BUILD.bazel │ ├── main.go │ └── main_test.go ├── pcli │ ├── BUILD.bazel │ ├── README.md │ └── main.go ├── replay-http │ ├── BUILD.bazel │ └── main.go ├── specs-checker │ ├── BUILD.bazel │ ├── README.md │ ├── check.go │ ├── data │ │ ├── extra.md │ │ ├── specs │ │ │ └── phase0 │ │ │ │ ├── beacon-chain.md │ │ │ │ ├── fork-choice.md │ │ │ │ ├── validator.md │ │ │ │ └── weak-subjectivity.md │ │ └── ssz │ │ │ └── merkle-proofs.md │ ├── download.go │ └── main.go ├── ssz.bzl ├── target_migration.bzl └── unencrypted-keys-gen │ ├── BUILD.bazel │ ├── README.md │ ├── keygen │ ├── BUILD.bazel │ └── keygen.go │ ├── main.go │ └── main_test.go └── validator ├── BUILD.bazel ├── README.md ├── accounts ├── BUILD.bazel ├── accounts.go ├── accounts_backup.go ├── accounts_delete.go ├── accounts_exit.go ├── accounts_exit_test.go ├── accounts_helper.go ├── accounts_import.go ├── accounts_import_test.go ├── accounts_list.go ├── accounts_list_test.go ├── cli_manager.go ├── cli_options.go ├── doc.go ├── iface │ ├── BUILD.bazel │ └── wallet.go ├── log.go ├── petnames │ ├── BUILD.bazel │ └── names.go ├── testdata │ └── fuzz │ │ └── FuzzValidateMnemonic │ │ └── 0258716f94e00f9df0da869fd97f9e0d0c6ac83eb528677d918f0ac9be5f4b8d ├── testing │ ├── BUILD.bazel │ └── mock.go ├── userprompt │ ├── BUILD.bazel │ ├── log.go │ └── prompt.go ├── wallet │ ├── BUILD.bazel │ ├── log.go │ ├── wallet.go │ └── wallet_test.go ├── wallet_create.go ├── wallet_recover.go ├── wallet_recover_fuzz_test.go └── wallet_recover_test.go ├── client ├── BUILD.bazel ├── aggregate.go ├── aggregate_test.go ├── attest.go ├── attest_protect.go ├── attest_protect_test.go ├── attest_test.go ├── beacon-api │ ├── BUILD.bazel │ ├── activation.go │ ├── activation_test.go │ ├── attestation_data.go │ ├── attestation_data_test.go │ ├── beacon_api_beacon_chain_client.go │ ├── beacon_api_helpers.go │ ├── beacon_api_helpers_test.go │ ├── beacon_api_node_client.go │ ├── beacon_api_slasher_client.go │ ├── beacon_api_validator_client.go │ ├── beacon_api_validator_client_test.go │ ├── beacon_block_converter.go │ ├── beacon_block_converter_test.go │ ├── beacon_block_json_helpers.go │ ├── beacon_block_json_helpers_test.go │ ├── beacon_block_proto_helpers.go │ ├── beacon_block_proto_helpers_test.go │ ├── domain_data.go │ ├── domain_data_test.go │ ├── doppelganger.go │ ├── doppelganger_test.go │ ├── duties.go │ ├── duties_test.go │ ├── genesis.go │ ├── genesis_test.go │ ├── get_beacon_block.go │ ├── get_beacon_block_test.go │ ├── index.go │ ├── index_test.go │ ├── json_rest_handler.go │ ├── json_rest_handler_test.go │ ├── log.go │ ├── mock │ │ ├── BUILD.bazel │ │ ├── beacon_block_converter_mock.go │ │ ├── duties_mock.go │ │ ├── genesis_mock.go │ │ ├── json_rest_handler_mock.go │ │ └── state_validators_mock.go │ ├── prepare_beacon_proposer.go │ ├── prepare_beacon_proposer_test.go │ ├── propose_attestation.go │ ├── propose_attestation_test.go │ ├── propose_beacon_block.go │ ├── propose_beacon_block_altair_test.go │ ├── propose_beacon_block_bellatrix_test.go │ ├── propose_beacon_block_blinded_bellatrix_test.go │ ├── propose_beacon_block_blinded_capella_test.go │ ├── propose_beacon_block_capella_test.go │ ├── propose_beacon_block_phase0_test.go │ ├── propose_beacon_block_test.go │ ├── propose_exit.go │ ├── propose_exit_test.go │ ├── registration.go │ ├── registration_test.go │ ├── state_validators.go │ ├── state_validators_test.go │ ├── status.go │ ├── status_test.go │ ├── stream_blocks.go │ ├── stream_blocks_test.go │ ├── submit_aggregate_selection_proof.go │ ├── submit_aggregate_selection_proof_test.go │ ├── submit_signed_aggregate_proof.go │ ├── submit_signed_aggregate_proof_test.go │ ├── submit_signed_contribution_and_proof.go │ ├── submit_signed_contribution_and_proof_test.go │ ├── subscribe_committee_subnets.go │ ├── subscribe_committee_subnets_test.go │ ├── sync_committee.go │ ├── sync_committee_test.go │ ├── test-helpers │ │ ├── BUILD.bazel │ │ ├── altair_beacon_block_test_helpers.go │ │ ├── bellatrix_beacon_block_test_helpers.go │ │ ├── capella_beacon_block_test_helpers.go │ │ ├── phase0_beacon_block_test_helpers.go │ │ └── test_helpers.go │ └── wait_for_chain_start_test.go ├── beacon-chain-client-factory │ ├── BUILD.bazel │ └── beacon_chain_client_factory.go ├── grpc-api │ ├── BUILD.bazel │ ├── grpc_beacon_chain_client.go │ ├── grpc_node_client.go │ ├── grpc_slasher_client.go │ ├── grpc_validator_client.go │ └── grpc_validator_client_test.go ├── iface │ ├── BUILD.bazel │ ├── beacon_chain_client.go │ ├── node_client.go │ ├── slasher_client.go │ ├── validator.go │ └── validator_client.go ├── key_reload.go ├── key_reload_test.go ├── log.go ├── metrics.go ├── metrics_test.go ├── multiple_endpoints_grpc_resolver.go ├── node-client-factory │ ├── BUILD.bazel │ └── node_client_factory.go ├── propose.go ├── propose_protect.go ├── propose_protect_test.go ├── propose_test.go ├── registration.go ├── registration_test.go ├── runner.go ├── runner_test.go ├── service.go ├── service_test.go ├── slasher-client-factory │ ├── BUILD.bazel │ └── slasher_client_factory.go ├── slashing_protection_interchange_test.go ├── sync_committee.go ├── sync_committee_test.go ├── testutil │ ├── BUILD.bazel │ ├── helper.go │ └── mock_validator.go ├── validator-client-factory │ ├── BUILD.bazel │ └── validator_client_factory.go ├── validator.go ├── validator_test.go ├── wait_for_activation.go └── wait_for_activation_test.go ├── db ├── BUILD.bazel ├── alias.go ├── iface │ ├── BUILD.bazel │ └── interface.go ├── kv │ ├── BUILD.bazel │ ├── attester_protection.go │ ├── attester_protection_test.go │ ├── backup.go │ ├── backup_test.go │ ├── db.go │ ├── deprecated_attester_protection.go │ ├── deprecated_attester_protection_test.go │ ├── eip_blacklisted_keys.go │ ├── eip_blacklisted_keys_test.go │ ├── genesis.go │ ├── genesis_test.go │ ├── graffiti.go │ ├── graffiti_test.go │ ├── kv_test.go │ ├── log.go │ ├── migration.go │ ├── migration_optimal_attester_protection.go │ ├── migration_optimal_attester_protection_test.go │ ├── migration_source_target_epochs_bucket.go │ ├── migration_source_target_epochs_bucket_test.go │ ├── proposer_protection.go │ ├── proposer_protection_test.go │ ├── prune_attester_protection.go │ ├── prune_attester_protection_test.go │ └── schema.go ├── log.go ├── migrate.go ├── migrate_test.go ├── restore.go ├── restore_test.go └── testing │ ├── BUILD.bazel │ ├── setup_db.go │ └── setup_db_test.go ├── graffiti ├── BUILD.bazel ├── log.go ├── parse_graffiti.go └── parse_graffiti_test.go ├── helpers ├── BUILD.bazel └── node_connection.go ├── keymanager ├── BUILD.bazel ├── constants.go ├── derived │ ├── BUILD.bazel │ ├── eip_test.go │ ├── keymanager.go │ ├── keymanager_test.go │ ├── log.go │ ├── mnemonic.go │ └── mnemonic_test.go ├── local │ ├── BUILD.bazel │ ├── backup.go │ ├── backup_test.go │ ├── delete.go │ ├── delete_test.go │ ├── doc.go │ ├── errors.go │ ├── import.go │ ├── import_test.go │ ├── keymanager.go │ ├── keymanager_test.go │ ├── log.go │ ├── refresh.go │ └── refresh_test.go ├── remote-web3signer │ ├── BUILD.bazel │ ├── README.md │ ├── internal │ │ ├── BUILD.bazel │ │ ├── client.go │ │ ├── client_test.go │ │ ├── log.go │ │ └── metrics.go │ ├── keymanager.go │ ├── keymanager_test.go │ ├── metrics.go │ └── v1 │ │ ├── BUILD.bazel │ │ ├── custom_mappers.go │ │ ├── custom_mappers_test.go │ │ ├── mock │ │ ├── BUILD.bazel │ │ └── mocks.go │ │ ├── requests.go │ │ ├── requests_test.go │ │ └── web3signer_types.go ├── types.go └── types_test.go ├── node ├── BUILD.bazel ├── log.go ├── node.go ├── node_test.go └── testdata │ ├── bad-gas-value-proposer-settings.json │ ├── bad-prepare-beacon-proposer-config.json │ ├── good-prepare-beacon-proposer-config-badchecksum.json │ ├── good-prepare-beacon-proposer-config-multiple.json │ ├── good-prepare-beacon-proposer-config.json │ └── good-prepare-beacon-proposer-config.yaml ├── package ├── BUILD.bazel ├── postinst.sh ├── preinst.sh ├── prysm-validator.service └── validator.yaml ├── rpc ├── BUILD.bazel ├── accounts.go ├── accounts_test.go ├── apimiddleware │ ├── BUILD.bazel │ ├── endpoint_factory.go │ ├── structs.go │ └── structs_test.go ├── auth_token.go ├── auth_token_test.go ├── beacon.go ├── beacon_test.go ├── health.go ├── health_test.go ├── intercepter.go ├── intercepter_test.go ├── log.go ├── server.go ├── server_test.go ├── slashing.go ├── slashing_test.go ├── standard_api.go ├── standard_api_test.go ├── wallet.go └── wallet_test.go ├── slashing-protection-history ├── BUILD.bazel ├── doc.go ├── export.go ├── export_test.go ├── format │ ├── BUILD.bazel │ └── format.go ├── helpers.go ├── helpers_test.go ├── import.go ├── import_test.go ├── log.go └── round_trip_test.go ├── testing ├── BUILD.bazel ├── constants.go ├── mock_protector.go ├── mock_slasher.go └── protection_history.go └── web ├── BUILD.bazel ├── doc.go ├── handler.go ├── handler_test.go ├── headers.go ├── log.go └── site_data.go /.bazelversion: -------------------------------------------------------------------------------- 1 | 6.1.0 2 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | bazel-* 2 | .git 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | *.sol linguist-language=Solidity 4 | 5 | # Ignore diff on generated code 6 | *.pb.go linguist-generated=true 7 | *_mock.go linguist-generated=true 8 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Automatically require code review from core-team. 2 | * @prysmaticlabs/core-team 3 | 4 | # Starlark code owners 5 | *.bzl @prestonvanloon 6 | 7 | # Anyone on prylabs team can approve dependency updates. 8 | deps.bzl @prysmaticlabs/core-team -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://gitcoin.co/grants/24/prysm-by-prysmatic-labs 2 | -------------------------------------------------------------------------------- /.github/actions/gomodtidy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:alpine 2 | 3 | COPY entrypoint.sh /entrypoint.sh 4 | 5 | ENTRYPOINT ["/entrypoint.sh"] 6 | -------------------------------------------------------------------------------- /.github/actions/gomodtidy/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Go mod tidy checker' 2 | description: 'Checks that `go mod tidy` has been applied.' 3 | runs: 4 | using: 'docker' 5 | image: 'Dockerfile' 6 | -------------------------------------------------------------------------------- /api/client/beacon/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package beacon provides a client for interacting with the standard Eth Beacon Node API. 3 | Interactive swagger documentation for the API is available here: https://ethereum.github.io/beacon-APIs/ 4 | */ 5 | package beacon 6 | -------------------------------------------------------------------------------- /api/gateway/apimiddleware/log.go: -------------------------------------------------------------------------------- 1 | package apimiddleware 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "apimiddleware") 6 | -------------------------------------------------------------------------------- /api/gateway/log.go: -------------------------------------------------------------------------------- 1 | package gateway 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "gateway") 6 | -------------------------------------------------------------------------------- /api/grpc/parameters.go: -------------------------------------------------------------------------------- 1 | package grpc 2 | 3 | // CustomErrorMetadataKey is the name of the metadata key storing additional error information. 4 | // Metadata value is expected to be a byte-encoded JSON object. 5 | const CustomErrorMetadataKey = "Custom-Error" 6 | 7 | // HttpCodeMetadataKey is the key to use when setting custom HTTP status codes in gRPC metadata. 8 | const HttpCodeMetadataKey = "X-Http-Code" 9 | -------------------------------------------------------------------------------- /async/abool/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library", "go_test") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["abool.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/async/abool", 7 | visibility = ["//visibility:public"], 8 | ) 9 | 10 | go_test( 11 | name = "go_default_test", 12 | srcs = ["abool_test.go"], 13 | embed = [":go_default_library"], 14 | ) 15 | -------------------------------------------------------------------------------- /bazel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script serves as a wrapper around bazel to limit the scope of environment variables that 4 | # may change the action output. Using this script should result in a higher cache hit ratio for 5 | # cached actions with a more heremtic build. 6 | 7 | env -i \ 8 | PATH=/usr/bin:/bin \ 9 | HOME="$HOME" \ 10 | GOOGLE_APPLICATION_CREDENTIALS="$GOOGLE_APPLICATION_CREDENTIALS" \ 11 | bazel "$@" 12 | -------------------------------------------------------------------------------- /beacon-chain/blockchain/blockchain_test.go: -------------------------------------------------------------------------------- 1 | package blockchain 2 | 3 | import ( 4 | "io" 5 | "testing" 6 | 7 | "github.com/sirupsen/logrus" 8 | ) 9 | 10 | func TestMain(m *testing.M) { 11 | logrus.SetLevel(logrus.DebugLevel) 12 | logrus.SetOutput(io.Discard) 13 | 14 | m.Run() 15 | } 16 | -------------------------------------------------------------------------------- /beacon-chain/blockchain/checktags_test.go: -------------------------------------------------------------------------------- 1 | //go:build !develop 2 | 3 | package blockchain 4 | 5 | func init() { 6 | log.Fatal("Tests in this package require extra build tag: re-run with `-tags develop`") 7 | } 8 | -------------------------------------------------------------------------------- /beacon-chain/blockchain/init_test.go: -------------------------------------------------------------------------------- 1 | package blockchain 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/config/params" 5 | ) 6 | 7 | func init() { 8 | // Override network name so that hardcoded genesis files are not loaded. 9 | if err := params.SetActive(params.MainnetTestConfig()); err != nil { 10 | panic(err) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/cache/cache_test.go: -------------------------------------------------------------------------------- 1 | package cache 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestMain(m *testing.M) { 8 | m.Run() 9 | } 10 | -------------------------------------------------------------------------------- /beacon-chain/cache/depositcache/log.go: -------------------------------------------------------------------------------- 1 | package depositcache 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "depositcache") 6 | -------------------------------------------------------------------------------- /beacon-chain/cache/doc.go: -------------------------------------------------------------------------------- 1 | // Package cache includes all important caches for the runtime 2 | // of an Ethereum Beacon Node, ensuring the node does not spend 3 | // resources computing duplicate operations such as committee 4 | // calculations for validators during the same epoch, etc. 5 | package cache 6 | -------------------------------------------------------------------------------- /beacon-chain/core/altair/exports_test.go: -------------------------------------------------------------------------------- 1 | package altair 2 | 3 | var ProcessSyncAggregateEported = processSyncAggregate 4 | -------------------------------------------------------------------------------- /beacon-chain/core/blocks/error.go: -------------------------------------------------------------------------------- 1 | package blocks 2 | 3 | import "github.com/pkg/errors" 4 | 5 | var errNilSignedWithdrawalMessage = errors.New("nil SignedBLSToExecutionChange message") 6 | var errNilWithdrawalMessage = errors.New("nil BLSToExecutionChange message") 7 | var errInvalidBLSPrefix = errors.New("withdrawal credential prefix is not a BLS prefix") 8 | var errInvalidWithdrawalCredentials = errors.New("withdrawal credentials do not match") 9 | -------------------------------------------------------------------------------- /beacon-chain/core/blocks/exports_test.go: -------------------------------------------------------------------------------- 1 | package blocks 2 | 3 | var ProcessBLSToExecutionChange = processBLSToExecutionChange 4 | -------------------------------------------------------------------------------- /beacon-chain/core/blocks/log.go: -------------------------------------------------------------------------------- 1 | package blocks 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "blocks") 6 | -------------------------------------------------------------------------------- /beacon-chain/core/blocks/testdata/beaconfuzz_78_attestation.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/core/blocks/testdata/beaconfuzz_78_attestation.ssz -------------------------------------------------------------------------------- /beacon-chain/core/blocks/testdata/beaconfuzz_78_beacon.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/core/blocks/testdata/beaconfuzz_78_beacon.ssz -------------------------------------------------------------------------------- /beacon-chain/core/blocks/testdata/beaconfuzz_91_beacon.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/core/blocks/testdata/beaconfuzz_91_beacon.ssz -------------------------------------------------------------------------------- /beacon-chain/core/blocks/testdata/beaconfuzz_91_proposer_slashing.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/core/blocks/testdata/beaconfuzz_91_proposer_slashing.ssz -------------------------------------------------------------------------------- /beacon-chain/core/epoch/precompute/precompute_test.go: -------------------------------------------------------------------------------- 1 | package precompute 2 | 3 | var ComputeCheckpoints = computeCheckpoints 4 | -------------------------------------------------------------------------------- /beacon-chain/core/feed/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["event.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/feed", 7 | visibility = [ 8 | "//beacon-chain:__subpackages__", 9 | "//testing/slasher/simulator:__subpackages__", 10 | ], 11 | ) 12 | -------------------------------------------------------------------------------- /beacon-chain/core/feed/block/notifier.go: -------------------------------------------------------------------------------- 1 | package block 2 | 3 | import "github.com/prysmaticlabs/prysm/v4/async/event" 4 | 5 | // Notifier interface defines the methods of the service that provides block updates to consumers. 6 | type Notifier interface { 7 | BlockFeed() *event.Feed 8 | } 9 | -------------------------------------------------------------------------------- /beacon-chain/core/feed/operation/notifier.go: -------------------------------------------------------------------------------- 1 | package operation 2 | 3 | import "github.com/prysmaticlabs/prysm/v4/async/event" 4 | 5 | // Notifier interface defines the methods of the service that provides beacon block operation updates to consumers. 6 | type Notifier interface { 7 | OperationFeed() *event.Feed 8 | } 9 | -------------------------------------------------------------------------------- /beacon-chain/core/feed/state/notifier.go: -------------------------------------------------------------------------------- 1 | package state 2 | 3 | import "github.com/prysmaticlabs/prysm/v4/async/event" 4 | 5 | // Notifier interface defines the methods of the service that provides state updates to consumers. 6 | type Notifier interface { 7 | StateFeed() *event.Feed 8 | } 9 | -------------------------------------------------------------------------------- /beacon-chain/core/transition/interop/log.go: -------------------------------------------------------------------------------- 1 | // Package interop contains useful utilities for persisting 2 | // ssz-encoded states and blocks to disk during each state 3 | // transition for development purposes. 4 | package interop 5 | 6 | import ( 7 | "github.com/sirupsen/logrus" 8 | ) 9 | 10 | var log = logrus.WithField("prefix", "interop") 11 | -------------------------------------------------------------------------------- /beacon-chain/core/transition/log.go: -------------------------------------------------------------------------------- 1 | package transition 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "state") 6 | -------------------------------------------------------------------------------- /beacon-chain/db/db_test.go: -------------------------------------------------------------------------------- 1 | package db 2 | 3 | import "github.com/prysmaticlabs/prysm/v4/beacon-chain/db/kv" 4 | 5 | var _ Database = (*kv.Store)(nil) 6 | -------------------------------------------------------------------------------- /beacon-chain/db/iface/errors.go: -------------------------------------------------------------------------------- 1 | package iface 2 | 3 | import ( 4 | "errors" 5 | ) 6 | 7 | var ( 8 | // ErrExistingGenesisState is an error when the user attempts to save a different genesis state 9 | // when one already exists in a database. 10 | ErrExistingGenesisState = errors.New("genesis state exists already in the DB") 11 | ) 12 | -------------------------------------------------------------------------------- /beacon-chain/db/kv/encoding_test.go: -------------------------------------------------------------------------------- 1 | package kv 2 | 3 | import ( 4 | "context" 5 | "testing" 6 | 7 | testpb "github.com/prysmaticlabs/prysm/v4/proto/testing" 8 | "github.com/prysmaticlabs/prysm/v4/testing/require" 9 | ) 10 | 11 | func Test_encode_handlesNilFromFunction(t *testing.T) { 12 | foo := func() *testpb.Puzzle { 13 | return nil 14 | } 15 | _, err := encode(context.Background(), foo()) 16 | require.ErrorContains(t, "cannot encode nil message", err) 17 | } 18 | -------------------------------------------------------------------------------- /beacon-chain/db/kv/init_test.go: -------------------------------------------------------------------------------- 1 | package kv 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/config/params" 5 | ) 6 | 7 | func init() { 8 | // Override network name so that hardcoded genesis files are not loaded. 9 | if err := params.SetActive(params.MainnetTestConfig()); err != nil { 10 | panic(err) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/db/kv/log.go: -------------------------------------------------------------------------------- 1 | package kv 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "db") 6 | -------------------------------------------------------------------------------- /beacon-chain/db/kv/testdata/altona.genesis.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/db/kv/testdata/altona.genesis.ssz -------------------------------------------------------------------------------- /beacon-chain/db/kv/testdata/capella_genesis.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/db/kv/testdata/capella_genesis.ssz -------------------------------------------------------------------------------- /beacon-chain/db/kv/testdata/mainnet.genesis.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/db/kv/testdata/mainnet.genesis.ssz -------------------------------------------------------------------------------- /beacon-chain/db/log.go: -------------------------------------------------------------------------------- 1 | package db 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "db") 6 | -------------------------------------------------------------------------------- /beacon-chain/db/slasherkv/log.go: -------------------------------------------------------------------------------- 1 | package slasherkv 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "slasherdb") 6 | -------------------------------------------------------------------------------- /beacon-chain/db/slasherkv/slasherkv_test.go: -------------------------------------------------------------------------------- 1 | package slasherkv 2 | 3 | import ( 4 | "io" 5 | "testing" 6 | 7 | "github.com/sirupsen/logrus" 8 | ) 9 | 10 | func TestMain(m *testing.M) { 11 | logrus.SetLevel(logrus.DebugLevel) 12 | logrus.SetOutput(io.Discard) 13 | m.Run() 14 | } 15 | -------------------------------------------------------------------------------- /beacon-chain/deterministic-genesis/log.go: -------------------------------------------------------------------------------- 1 | package interopcoldstart 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.WithField("prefix", "deterministic-genesis") 8 | -------------------------------------------------------------------------------- /beacon-chain/execution/execution_chain_test.go: -------------------------------------------------------------------------------- 1 | package execution 2 | 3 | import ( 4 | "io" 5 | "testing" 6 | 7 | "github.com/sirupsen/logrus" 8 | ) 9 | 10 | func TestMain(m *testing.M) { 11 | logrus.SetLevel(logrus.DebugLevel) 12 | logrus.SetOutput(io.Discard) 13 | 14 | m.Run() 15 | } 16 | -------------------------------------------------------------------------------- /beacon-chain/execution/init_test.go: -------------------------------------------------------------------------------- 1 | package execution 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/config/params" 5 | ) 6 | 7 | func init() { 8 | // Override network name so that hardcoded genesis files are not loaded. 9 | if err := params.SetActive(params.MainnetTestConfig()); err != nil { 10 | panic(err) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/execution/log.go: -------------------------------------------------------------------------------- 1 | package execution 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "powchain") 6 | -------------------------------------------------------------------------------- /beacon-chain/execution/testdata/fuzz/FuzzExchangeTransitionConfiguration/8093511184ad3e258aa13b957e75ff26c7fae64672dae0c0bc0a9fa5b61a05e7: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("{}") 3 | -------------------------------------------------------------------------------- /beacon-chain/execution/testdata/fuzz/FuzzExchangeTransitionConfiguration/fe012d83ce9f615dc9c351e781f97ed05d1118c6a363a8471f95ea97bbb9842f: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("{\"terminAlTotAlDiffiCultY\":\"0\"}") 3 | -------------------------------------------------------------------------------- /beacon-chain/execution/testdata/fuzz/FuzzExecutionBlock/8093511184ad3e258aa13b957e75ff26c7fae64672dae0c0bc0a9fa5b61a05e7: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("{}") 3 | -------------------------------------------------------------------------------- /beacon-chain/execution/testdata/fuzz/FuzzExecutionPayload/41784bc5bdb982cfc2d08e901aef27c3aff6604b506658bc52a25fade49b1f4e: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("{\"BAseFeePerGAs\":\"0X0\"}") 3 | -------------------------------------------------------------------------------- /beacon-chain/execution/testdata/fuzz/FuzzExecutionPayload/8664c701ef3242a177be72eadef6c3a68465e15ca39f569ce56442181ab2771e: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("{\"pArentHAsh\":\"\",\"feeReCipient\":\"\",\"stAteRoot\":\"\",\"reCeiptsRoot\":\"\",\"logsBloom\":\"\",\"prevRAndAo\":\"\",\"eXtrADAtA\":\"\",\"BAseFeePerGAs\":\"0X0\",\"BloCkHAsh\":\"\",\"trAnsACtions\":[]}") 3 | -------------------------------------------------------------------------------- /beacon-chain/execution/testdata/fuzz/FuzzForkChoiceResponse/2d0486b744e252db538db5a44bfd6e6e22ff2723: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("{\"0000000000000\":{},\"pAYloAdId\":\"\"}") -------------------------------------------------------------------------------- /beacon-chain/forkchoice/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package forkchoice implements the service to support fork choice for the Ethereum beacon chain. This contains the 3 | necessary components to track latest validators votes, and balances. Then a store object to be used 4 | to calculate head. High level fork choice summary: 5 | https://notes.ethereum.org/@vbuterin/rkhCgQteN?type=view#LMD-GHOST-fork-choice-rule 6 | */ 7 | package forkchoice 8 | -------------------------------------------------------------------------------- /beacon-chain/forkchoice/doubly-linked-tree/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package doublylinkedtree implements eth2 LMD GHOST fork choice using the doubly linked proto array node structure. 3 | */ 4 | package doublylinkedtree 5 | -------------------------------------------------------------------------------- /beacon-chain/forkchoice/error.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import "github.com/pkg/errors" 4 | 5 | var ErrUnknownCommonAncestor = errors.New("unknown common ancestor") 6 | -------------------------------------------------------------------------------- /beacon-chain/monitor/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package monitor defines a runtime service which receives 3 | notifications triggered by events related to performance of tracked 4 | validating keys. It then logs and emits metrics for a user to keep finely 5 | detailed performance measures. 6 | */ 7 | package monitor 8 | -------------------------------------------------------------------------------- /beacon-chain/node/log.go: -------------------------------------------------------------------------------- 1 | package node 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "node") 6 | -------------------------------------------------------------------------------- /beacon-chain/node/registration/log.go: -------------------------------------------------------------------------------- 1 | package registration 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "registration") 6 | -------------------------------------------------------------------------------- /beacon-chain/operations/attestations/log.go: -------------------------------------------------------------------------------- 1 | package attestations 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.WithField("prefix", "pool/attestations") 8 | -------------------------------------------------------------------------------- /beacon-chain/operations/attestations/pool_test.go: -------------------------------------------------------------------------------- 1 | package attestations 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/beacon-chain/operations/attestations/kv" 5 | ) 6 | 7 | var _ Pool = (*kv.AttCaches)(nil) 8 | -------------------------------------------------------------------------------- /beacon-chain/operations/slashings/doc.go: -------------------------------------------------------------------------------- 1 | // Package slashings defines an in-memory pool of received 2 | // slashing events by the beacon node, handling their lifecycle 3 | // and performing integrity checks before serving them as objects 4 | // for validators to include in blocks. 5 | package slashings 6 | -------------------------------------------------------------------------------- /beacon-chain/operations/slashings/log.go: -------------------------------------------------------------------------------- 1 | package slashings 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.WithField("prefix", "pool/slashings") 8 | -------------------------------------------------------------------------------- /beacon-chain/operations/synccommittee/error.go: -------------------------------------------------------------------------------- 1 | package synccommittee 2 | 3 | import "github.com/pkg/errors" 4 | 5 | var ( 6 | errNilMessage = errors.New("sync committee message is nil") 7 | errNilContribution = errors.New("sync committee contribution is nil") 8 | ) 9 | -------------------------------------------------------------------------------- /beacon-chain/operations/voluntaryexits/doc.go: -------------------------------------------------------------------------------- 1 | // Package voluntaryexits defines an in-memory pool of received 2 | // voluntary exit events by the beacon node, handling their lifecycle 3 | // and performing integrity checks before serving them as objects 4 | // for validators to include in blocks. 5 | package voluntaryexits 6 | -------------------------------------------------------------------------------- /beacon-chain/p2p/encoder/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package encoder allows for registering custom data encoders for information 3 | sent as raw bytes over the wire via p2p to other nodes. Examples of encoders 4 | are SSZ (SimpleSerialize), SSZ with Snappy compression, among others. Providing 5 | an abstract interface for these encoders allows for future flexibility of 6 | Ethereum beacon node p2p. 7 | */ 8 | package encoder 9 | -------------------------------------------------------------------------------- /beacon-chain/p2p/peers/benchmark_test.go: -------------------------------------------------------------------------------- 1 | package peers 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/go-bitfield" 7 | ) 8 | 9 | func Benchmark_retrieveIndicesFromBitfield(b *testing.B) { 10 | bv := bitfield.NewBitvector64() 11 | for i := uint64(0); i < bv.Len(); i++ { 12 | bv.SetBitAt(i, true) 13 | } 14 | b.ResetTimer() 15 | for i := 0; i < b.N; i++ { 16 | indicesFromBitfield(bv) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /beacon-chain/p2p/peers/log.go: -------------------------------------------------------------------------------- 1 | package peers 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "peers") 6 | -------------------------------------------------------------------------------- /beacon-chain/package/postinst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | chown prysm-beacon:prysm-beacon /etc/prysm/beacon-chain.yaml -------------------------------------------------------------------------------- /beacon-chain/package/preinst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | SERVICE_USER=prysm-beacon 6 | 7 | # Create the service account, if needed 8 | getent passwd $SERVICE_USER > /dev/null || useradd -s /bin/false --no-create-home --system --user-group $SERVICE_USER 9 | 10 | # Create directories 11 | mkdir -p /etc/prysm 12 | mkdir -p /var/lib/prysm 13 | install -d -m 0700 -o $SERVICE_USER -g $SERVICE_USER /var/lib/prysm/beacon-chain -------------------------------------------------------------------------------- /beacon-chain/rpc/eth/beacon/init_test.go: -------------------------------------------------------------------------------- 1 | package beacon 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/config/params" 5 | ) 6 | 7 | func init() { 8 | // Override network name so that hardcoded genesis files are not loaded. 9 | if err := params.SetActive(params.MainnetTestConfig()); err != nil { 10 | panic(err) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/rpc/eth/beacon/log.go: -------------------------------------------------------------------------------- 1 | package beacon 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "rpc/beaconv1") 6 | -------------------------------------------------------------------------------- /beacon-chain/rpc/eth/beacon/server_test.go: -------------------------------------------------------------------------------- 1 | package beacon 2 | 3 | import ethpbservice "github.com/prysmaticlabs/prysm/v4/proto/eth/service" 4 | 5 | var _ ethpbservice.BeaconChainServer = (*Server)(nil) 6 | -------------------------------------------------------------------------------- /beacon-chain/rpc/eth/node/server_test.go: -------------------------------------------------------------------------------- 1 | package node 2 | 3 | import ( 4 | ethpbservice "github.com/prysmaticlabs/prysm/v4/proto/eth/service" 5 | ) 6 | 7 | var _ ethpbservice.BeaconNodeServer = (*Server)(nil) 8 | -------------------------------------------------------------------------------- /beacon-chain/rpc/log.go: -------------------------------------------------------------------------------- 1 | package rpc 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "rpc") 6 | -------------------------------------------------------------------------------- /beacon-chain/rpc/prysm/v1alpha1/beacon/init_test.go: -------------------------------------------------------------------------------- 1 | package beacon 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/config/params" 5 | ) 6 | 7 | func init() { 8 | // Override network name so that hardcoded genesis files are not loaded. 9 | if err := params.SetActive(params.MainnetTestConfig()); err != nil { 10 | panic(err) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/rpc/prysm/v1alpha1/beacon/log.go: -------------------------------------------------------------------------------- 1 | package beacon 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "rpc") 6 | -------------------------------------------------------------------------------- /beacon-chain/rpc/prysm/v1alpha1/slasher/server.go: -------------------------------------------------------------------------------- 1 | // Package slasher defines a gRPC server implementation of a slasher service 2 | // which allows for checking if attestations or blocks are slashable. 3 | package slasher 4 | 5 | import ( 6 | slasherservice "github.com/prysmaticlabs/prysm/v4/beacon-chain/slasher" 7 | ) 8 | 9 | // Server defines a server implementation of the gRPC slasher service. 10 | type Server struct { 11 | SlashingChecker slasherservice.SlashingChecker 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/rpc/prysm/v1alpha1/validator/log.go: -------------------------------------------------------------------------------- 1 | package validator 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "rpc/validator") 6 | -------------------------------------------------------------------------------- /beacon-chain/server/log.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.New() 6 | -------------------------------------------------------------------------------- /beacon-chain/slasher/log.go: -------------------------------------------------------------------------------- 1 | package slasher 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "slasher") 6 | -------------------------------------------------------------------------------- /beacon-chain/slasher/types/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["types.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/beacon-chain/slasher/types", 7 | visibility = ["//beacon-chain:__subpackages__"], 8 | deps = [ 9 | "//consensus-types/primitives:go_default_library", 10 | "//proto/prysm/v1alpha1:go_default_library", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /beacon-chain/state/error.go: -------------------------------------------------------------------------------- 1 | package state 2 | 3 | import "errors" 4 | 5 | var ( 6 | // ErrNilValidatorsInState returns when accessing validators in the state while the state has a 7 | // nil slice for the validators field. 8 | ErrNilValidatorsInState = errors.New("state has nil validator slice") 9 | ) 10 | -------------------------------------------------------------------------------- /beacon-chain/state/fieldtrie/testdata/fuzz/FuzzFieldTrie/c1898b8d556154d8a9d00cf2a64226dd5d76f33e27c373df2c409670db9b4877: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | int(5) 3 | int(0) 4 | []byte("") 5 | uint64(8234) 6 | -------------------------------------------------------------------------------- /beacon-chain/state/genesis/mainnet.ssz.snappy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/beacon-chain/state/genesis/mainnet.ssz.snappy -------------------------------------------------------------------------------- /beacon-chain/state/prometheus.go: -------------------------------------------------------------------------------- 1 | package state 2 | 3 | import ( 4 | "github.com/prometheus/client_golang/prometheus" 5 | "github.com/prometheus/client_golang/prometheus/promauto" 6 | ) 7 | 8 | var ( 9 | StateCount = promauto.NewGauge(prometheus.GaugeOpts{ 10 | Name: "beacon_state_count", 11 | Help: "Count the number of active beacon state objects.", 12 | }) 13 | ) 14 | -------------------------------------------------------------------------------- /beacon-chain/state/state-native/error.go: -------------------------------------------------------------------------------- 1 | package state_native 2 | 3 | import "errors" 4 | 5 | var ErrNilParticipation = errors.New("nil epoch participation in state") 6 | -------------------------------------------------------------------------------- /beacon-chain/state/state-native/ssz.go: -------------------------------------------------------------------------------- 1 | package state_native 2 | 3 | import ( 4 | "github.com/pkg/errors" 5 | ssz "github.com/prysmaticlabs/fastssz" 6 | ) 7 | 8 | var errAssertionFailed = errors.New("failed to convert interface to proto state") 9 | 10 | func (b *BeaconState) MarshalSSZ() ([]byte, error) { 11 | proto := b.ToProto() 12 | 13 | s, ok := proto.(ssz.Marshaler) 14 | if !ok { 15 | return nil, errAssertionFailed 16 | } 17 | return s.MarshalSSZ() 18 | } 19 | -------------------------------------------------------------------------------- /beacon-chain/state/state-native/types/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["types.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/beacon-chain/state/state-native/types", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_pkg_errors//:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /beacon-chain/state/stategen/errors.go: -------------------------------------------------------------------------------- 1 | package stategen 2 | 3 | import "errors" 4 | 5 | var errUnknownBoundaryState = errors.New("unknown boundary state") 6 | var errUnknownState = errors.New("unknown state") 7 | var errUnknownBlock = errors.New("unknown block") 8 | 9 | // errNilState returns when we have obtained a nil state from stategen 10 | var errNilState = errors.New("nil state from stategen") 11 | -------------------------------------------------------------------------------- /beacon-chain/state/stategen/init_test.go: -------------------------------------------------------------------------------- 1 | package stategen 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/config/params" 5 | ) 6 | 7 | func init() { 8 | // Override network name so that hardcoded genesis files are not loaded. 9 | if err := params.SetActive(params.MainnetTestConfig()); err != nil { 10 | panic(err) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /beacon-chain/state/stategen/log.go: -------------------------------------------------------------------------------- 1 | package stategen 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "state-gen") 6 | -------------------------------------------------------------------------------- /beacon-chain/state/stateutil/reference_bench_test.go: -------------------------------------------------------------------------------- 1 | package stateutil 2 | 3 | import ( 4 | "math" 5 | "testing" 6 | ) 7 | 8 | func BenchmarkReference_MinusRef(b *testing.B) { 9 | ref := &Reference{ 10 | refs: math.MaxUint64, 11 | } 12 | for i := 0; i < b.N; i++ { 13 | ref.MinusRef() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /beacon-chain/sync/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package sync TODO(3147): Add details on how sync works. 3 | */ 4 | package sync 5 | -------------------------------------------------------------------------------- /beacon-chain/sync/initial-sync/log.go: -------------------------------------------------------------------------------- 1 | package initialsync 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.WithField("prefix", "initial-sync") 8 | -------------------------------------------------------------------------------- /beacon-chain/sync/initial-sync/testing/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | testonly = True, 6 | srcs = ["mock.go"], 7 | importpath = "github.com/prysmaticlabs/prysm/v4/beacon-chain/sync/initial-sync/testing", 8 | visibility = [ 9 | "//beacon-chain:__subpackages__", 10 | ], 11 | ) 12 | -------------------------------------------------------------------------------- /beacon-chain/sync/log.go: -------------------------------------------------------------------------------- 1 | package sync 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "sync") 6 | -------------------------------------------------------------------------------- /build/bazel/bazel_test.go: -------------------------------------------------------------------------------- 1 | package bazel_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/build/bazel" 7 | ) 8 | 9 | func TestBuildWithBazel(t *testing.T) { 10 | if !bazel.BuiltWithBazel() { 11 | t.Error("not built with Bazel") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /cmd/beacon-chain/flags/log.go: -------------------------------------------------------------------------------- 1 | package flags 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "flags") 6 | -------------------------------------------------------------------------------- /cmd/beacon-chain/log.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "main") 6 | -------------------------------------------------------------------------------- /cmd/client-stats/flags/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["flags.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/cmd/client-stats/flags", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_urfave_cli_v2//:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /cmd/client-stats/log.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "main") 6 | -------------------------------------------------------------------------------- /cmd/flags/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["enum.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/cmd/flags", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_urfave_cli_v2//:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /cmd/mock/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | testonly = True, 6 | srcs = ["password_reader_mock.go"], 7 | importpath = "github.com/prysmaticlabs/prysm/v4/cmd/mock", 8 | visibility = ["//visibility:public"], 9 | deps = ["@com_github_golang_mock//gomock:go_default_library"], 10 | ) 11 | -------------------------------------------------------------------------------- /cmd/prysmctl/checkpointsync/cmd.go: -------------------------------------------------------------------------------- 1 | package checkpointsync 2 | 3 | import "github.com/urfave/cli/v2" 4 | 5 | var Commands = []*cli.Command{ 6 | { 7 | Name: "checkpoint-sync", 8 | Aliases: []string{"cpt-sync"}, 9 | Usage: "commands for managing checkpoint sync", 10 | Subcommands: []*cli.Command{ 11 | downloadCmd, 12 | }, 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /cmd/prysmctl/db/cmd.go: -------------------------------------------------------------------------------- 1 | package db 2 | 3 | import "github.com/urfave/cli/v2" 4 | 5 | var Commands = []*cli.Command{ 6 | { 7 | Name: "db", 8 | Usage: "commands to work with the prysm beacon db", 9 | Subcommands: []*cli.Command{ 10 | queryCmd, 11 | bucketsCmd, 12 | }, 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /cmd/prysmctl/deprecated/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["cmd.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/cmd/prysmctl/deprecated", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "//cmd/prysmctl/deprecated/checkpoint:go_default_library", 10 | "@com_github_urfave_cli_v2//:go_default_library", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /cmd/prysmctl/deprecated/checkpoint/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = [ 6 | "checkpoint.go", 7 | "latest.go", 8 | "save.go", 9 | ], 10 | importpath = "github.com/prysmaticlabs/prysm/v4/cmd/prysmctl/deprecated/checkpoint", 11 | visibility = ["//visibility:public"], 12 | deps = ["@com_github_urfave_cli_v2//:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /cmd/prysmctl/deprecated/checkpoint/checkpoint.go: -------------------------------------------------------------------------------- 1 | package checkpoint 2 | 3 | import "github.com/urfave/cli/v2" 4 | 5 | var Commands = []*cli.Command{ 6 | { 7 | Name: "checkpoint", 8 | Aliases: []string{"cpt"}, 9 | Usage: "deprecated", 10 | Subcommands: []*cli.Command{ 11 | checkpointCmd, 12 | saveCmd, 13 | }, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /cmd/prysmctl/deprecated/cmd.go: -------------------------------------------------------------------------------- 1 | package deprecated 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/cmd/prysmctl/deprecated/checkpoint" 5 | "github.com/urfave/cli/v2" 6 | ) 7 | 8 | var Commands = []*cli.Command{} 9 | 10 | func init() { 11 | Commands = append(Commands, checkpoint.Commands...) 12 | } 13 | -------------------------------------------------------------------------------- /cmd/prysmctl/p2p/log.go: -------------------------------------------------------------------------------- 1 | package p2p 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "prysmctl-p2p") 6 | -------------------------------------------------------------------------------- /cmd/prysmctl/p2p/p2p.go: -------------------------------------------------------------------------------- 1 | package p2p 2 | 3 | import "github.com/urfave/cli/v2" 4 | 5 | var Commands = []*cli.Command{ 6 | { 7 | Name: "p2p", 8 | Usage: "commands for interacting with beacon nodes via p2p", 9 | Subcommands: []*cli.Command{ 10 | { 11 | Name: "send", 12 | Usage: "commands for sending p2p rpc requests to beacon nodes", 13 | Subcommands: []*cli.Command{requestBlocksCmd}, 14 | }, 15 | }, 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /cmd/prysmctl/testnet/testnet.go: -------------------------------------------------------------------------------- 1 | package testnet 2 | 3 | import "github.com/urfave/cli/v2" 4 | 5 | var Commands = []*cli.Command{ 6 | { 7 | Name: "testnet", 8 | Usage: "commands for dealing with Ethereum beacon chain testnets", 9 | Subcommands: []*cli.Command{ 10 | generateGenesisStateCmd, 11 | }, 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /cmd/prysmctl/validator/testdata/change-operations.json: -------------------------------------------------------------------------------- 1 | [{"message":{"validator_index":"1","from_bls_pubkey":"0xb89bebc699769726a318c8e9971bd3171297c61aea4a6578a7a4f94b547dcba5bac16a89108b6b6a1fe3695d1a874a0b","to_execution_address":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"},"signature":"0xa97103e15d3dbdaa75fb15cea782e4a11329eea77d155864ec682d7907b3b70c7771960bef7be1b1c4e08fe735888b950c1a22053f6049b35736f48e6dd018392efa3896c9e427ea4e100e86e9131b5ea2673388a4bf188407a630ba405b7dc5"}] -------------------------------------------------------------------------------- /cmd/prysmctl/weaksubjectivity/cmd.go: -------------------------------------------------------------------------------- 1 | package weaksubjectivity 2 | 3 | import "github.com/urfave/cli/v2" 4 | 5 | var Commands = []*cli.Command{ 6 | { 7 | Name: "weak-subjectivity", 8 | Aliases: []string{"ws"}, 9 | Usage: "commands dealing with weak subjectivity", 10 | Subcommands: []*cli.Command{ 11 | checkpointCmd, 12 | }, 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /cmd/validator/log.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "main") 6 | -------------------------------------------------------------------------------- /cmd/validator/slashing-protection/log.go: -------------------------------------------------------------------------------- 1 | package historycmd 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "historycmd") 6 | -------------------------------------------------------------------------------- /cmd/validator/web/log.go: -------------------------------------------------------------------------------- 1 | package web 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "web") 6 | -------------------------------------------------------------------------------- /config/BUILD.bazel: -------------------------------------------------------------------------------- 1 | config_setting( 2 | name = "mainnet", 3 | flag_values = { 4 | "//proto:network": "mainnet", 5 | }, 6 | ) 7 | 8 | config_setting( 9 | name = "minimal", 10 | flag_values = { 11 | "//proto:network": "minimal", 12 | }, 13 | ) 14 | -------------------------------------------------------------------------------- /config/params/checktags_test.go: -------------------------------------------------------------------------------- 1 | //go:build !develop 2 | 3 | package params_test 4 | 5 | import ( 6 | log "github.com/sirupsen/logrus" 7 | ) 8 | 9 | func init() { 10 | log.Fatal("Tests in this package require extra build tag: re-run with `-tags develop`") 11 | } 12 | -------------------------------------------------------------------------------- /config/params/values.go: -------------------------------------------------------------------------------- 1 | package params 2 | 3 | const ( 4 | DevnetName = "devnet" 5 | EndToEndName = "end-to-end" 6 | EndToEndMainnetName = "end-to-end-mainnet" 7 | InteropName = "interop" 8 | MainnetName = "mainnet" 9 | MainnetTestName = "mainnet-test" 10 | MinimalName = "minimal" 11 | PraterName = "prater" 12 | GoerliName = "goerli" 13 | SepoliaName = "sepolia" 14 | ) 15 | -------------------------------------------------------------------------------- /config/validator/service/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["proposer-settings.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/config/validator/service", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "//config/fieldparams:go_default_library", 10 | "@com_github_ethereum_go_ethereum//common:go_default_library", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /consensus-types/payload-attribute/interface.go: -------------------------------------------------------------------------------- 1 | package payloadattribute 2 | 3 | import ( 4 | enginev1 "github.com/prysmaticlabs/prysm/v4/proto/engine/v1" 5 | ) 6 | 7 | type Attributer interface { 8 | Version() int 9 | PrevRandao() []byte 10 | Timestamps() uint64 11 | SuggestedFeeRecipient() []byte 12 | Withdrawals() ([]*enginev1.Withdrawal, error) 13 | PbV1() (*enginev1.PayloadAttributes, error) 14 | PbV2() (*enginev1.PayloadAttributesV2, error) 15 | } 16 | -------------------------------------------------------------------------------- /container/slice/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package slice implements set operations for specified data type 3 | 4 | Currently types which are tested and supported are: 5 | 6 | []uint32 7 | []int32 8 | []string 9 | []float32 10 | []uint64 11 | []int64 12 | []string 13 | []float64 14 | 15 | Intersection, Union, Not , IsIn are the operations which are supported on slices 16 | */ 17 | package slice 18 | -------------------------------------------------------------------------------- /container/trie/testdata/fuzz/FuzzSparseMerkleTrie_HashTreeRoot/5838cdfae7b16cde2707c04599b62223e7bade8dafdd8a1c53b8f881e8f79d99: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("") 3 | -------------------------------------------------------------------------------- /container/trie/testdata/fuzz/FuzzSparseMerkleTrie_Insert/d863478086b8f8e8c854ec74d4d5360ffbe979064b58f619eb3d5fddfdae64c8: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("") 3 | []byte("0") 4 | int(41) 5 | -------------------------------------------------------------------------------- /container/trie/testdata/fuzz/FuzzSparseMerkleTrie_Insert/fuzzbuzz-97663548a1e2280a081745e5fa25c289f7121c0b: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("\b\x03\x12\"2 00000000000000000000000000000000\x12\"2 00000000000000000000000000000000\x12\x00") 3 | []byte("") 4 | int(0) 5 | -------------------------------------------------------------------------------- /container/trie/testdata/fuzz/FuzzSparseMerkleTrie_MerkleProof/ec4893c52de558dbac9a850e4266850e109a9e6bc6bab59953b2a30027f66a93: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | []byte("") 3 | int(63) 4 | -------------------------------------------------------------------------------- /crypto/bls/blst/aliases.go: -------------------------------------------------------------------------------- 1 | //go:build ((linux && amd64) || (linux && arm64) || (darwin && amd64) || (darwin && arm64) || (windows && amd64)) && !blst_disabled 2 | 3 | package blst 4 | 5 | import blst "github.com/supranational/blst/bindings/go" 6 | 7 | // Internal types for blst. 8 | type blstPublicKey = blst.P1Affine 9 | type blstSignature = blst.P2Affine 10 | type blstAggregateSignature = blst.P2Aggregate 11 | type blstAggregatePublicKey = blst.P1Aggregate 12 | -------------------------------------------------------------------------------- /crypto/bls/blst/doc.go: -------------------------------------------------------------------------------- 1 | // Package blst implements a go-wrapper around a library implementing the 2 | // the BLS12-381 curve and signature scheme. This package exposes a public API for 3 | // verifying and aggregating BLS signatures used by Ethereum. 4 | // 5 | // This implementation uses the library written by Supranational, blst. 6 | package blst 7 | -------------------------------------------------------------------------------- /crypto/bls/blst/init.go: -------------------------------------------------------------------------------- 1 | //go:build ((linux && amd64) || (linux && arm64) || (darwin && amd64) || (darwin && arm64) || (windows && amd64)) && !blst_disabled 2 | 3 | package blst 4 | 5 | import ( 6 | "runtime" 7 | 8 | blst "github.com/supranational/blst/bindings/go" 9 | ) 10 | 11 | func init() { 12 | // Reserve 1 core for general application work 13 | maxProcs := runtime.GOMAXPROCS(0) - 1 14 | if maxProcs <= 0 { 15 | maxProcs = 1 16 | } 17 | blst.SetMaxProcs(maxProcs) 18 | } 19 | -------------------------------------------------------------------------------- /crypto/bls/common/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = [ 6 | "constants.go", 7 | "error.go", 8 | "interface.go", 9 | ], 10 | importpath = "github.com/prysmaticlabs/prysm/v4/crypto/bls/common", 11 | visibility = ["//visibility:public"], 12 | deps = ["//config/fieldparams:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /crypto/bls/common/mock/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["interface_mock.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/crypto/bls/common/mock", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "//crypto/bls/common:go_default_library", 10 | "@com_github_golang_mock//gomock:go_default_library", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /crypto/bls/constants.go: -------------------------------------------------------------------------------- 1 | package bls 2 | 3 | // DomainByteLength length of domain byte array. 4 | const DomainByteLength = 4 5 | 6 | // CurveOrder for the BLS12-381 curve. 7 | const CurveOrder = "52435875175126190479447740508185965837690552500527637822603658699938581184513" 8 | -------------------------------------------------------------------------------- /crypto/bls/error.go: -------------------------------------------------------------------------------- 1 | package bls 2 | -------------------------------------------------------------------------------- /crypto/bls/interface.go: -------------------------------------------------------------------------------- 1 | package bls 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/crypto/bls/common" 5 | ) 6 | 7 | // PublicKey represents a BLS public key. 8 | type PublicKey = common.PublicKey 9 | 10 | // SecretKey represents a BLS secret or private key. 11 | type SecretKey = common.SecretKey 12 | 13 | // Signature represents a BLS signature. 14 | type Signature = common.Signature 15 | -------------------------------------------------------------------------------- /crypto/hash/htr/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["hashtree.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/crypto/hash/htr", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_prysmaticlabs_gohashtree//:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /crypto/keystore/keccak256.go: -------------------------------------------------------------------------------- 1 | package keystore 2 | 3 | import ( 4 | "golang.org/x/crypto/sha3" 5 | ) 6 | 7 | // Keccak256 calculates and returns the Keccak256 hash of the input data. 8 | func Keccak256(data ...[]byte) []byte { 9 | d := sha3.NewLegacyKeccak256() 10 | for _, b := range data { 11 | // #nosec G104 12 | d.Write(b) 13 | } 14 | return d.Sum(nil) 15 | } 16 | -------------------------------------------------------------------------------- /crypto/rand/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library", "go_test") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["rand.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/crypto/rand", 7 | visibility = ["//visibility:public"], 8 | ) 9 | 10 | go_test( 11 | name = "go_default_test", 12 | srcs = ["rand_test.go"], 13 | embed = [":go_default_library"], 14 | ) 15 | -------------------------------------------------------------------------------- /encoding/bytesutil/hex.go: -------------------------------------------------------------------------------- 1 | package bytesutil 2 | 3 | import "regexp" 4 | 5 | var hexRegex = regexp.MustCompile("^0x[0-9a-fA-F]+$") 6 | 7 | // IsHex checks whether the byte array is a hex number prefixed with '0x'. 8 | func IsHex(b []byte) bool { 9 | if b == nil { 10 | return false 11 | } 12 | return hexRegex.Match(b) 13 | } 14 | -------------------------------------------------------------------------------- /encoding/ssz/export_test.go: -------------------------------------------------------------------------------- 1 | package ssz 2 | 3 | var WithdrawalRoot = withdrawalRoot 4 | -------------------------------------------------------------------------------- /fuzzbuzz.yaml: -------------------------------------------------------------------------------- 1 | base: 2 | language: go 3 | version: 1.19 4 | build_tags: 5 | - fuzz 6 | - develop 7 | -------------------------------------------------------------------------------- /hack/workspace_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Note: The STABLE_ prefix will force a relink when the value changes when using rules_go x_defs. 4 | 5 | echo STABLE_GIT_COMMIT "$(git rev-parse HEAD)" 6 | echo DATE "$(date --rfc-3339=seconds --utc)" 7 | echo DATE_UNIX "$(date --utc +%s)" 8 | echo DOCKER_TAG "$(git rev-parse --abbrev-ref HEAD)-$(git rev-parse --short=6 HEAD)" 9 | echo STABLE_GIT_TAG "$(git describe --tags --abbrev=0)" 10 | -------------------------------------------------------------------------------- /hack/workspace_status_ci.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Note: The STABLE_ prefix will force a relink when the value changes when using rules_go x_defs. 4 | 5 | echo STABLE_GIT_COMMIT "continuous-integration" 6 | echo DATE "now" 7 | echo DATE_UNIX "0" 8 | echo DOCKER_TAG "ci-foo" 9 | echo STABLE_GIT_TAG "c1000deadbeef" 10 | -------------------------------------------------------------------------------- /monitoring/backup/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["http_backup_handler.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/monitoring/backup", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_sirupsen_logrus//:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /monitoring/journald/journald.go: -------------------------------------------------------------------------------- 1 | //go:build !linux 2 | 3 | package journald 4 | 5 | import ( 6 | "fmt" 7 | ) 8 | 9 | // Enable returns an error on non-Linux systems 10 | func Enable() error { 11 | return fmt.Errorf("journald is not supported in this platform") 12 | } 13 | -------------------------------------------------------------------------------- /monitoring/journald/journald_linux.go: -------------------------------------------------------------------------------- 1 | //go:build linux 2 | 3 | package journald 4 | 5 | import ( 6 | "github.com/wercker/journalhook" 7 | ) 8 | 9 | // Enable enables the journald logrus hook 10 | func Enable() error { 11 | journalhook.Enable() 12 | return nil 13 | } 14 | -------------------------------------------------------------------------------- /monitoring/progress/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["progress.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/monitoring/progress", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "@com_github_k0kubun_go_ansi//:go_default_library", 10 | "@com_github_schollz_progressbar_v3//:go_default_library", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /network/authorization/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["authorization_method.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/network/authorization", 7 | visibility = ["//visibility:public"], 8 | ) 9 | -------------------------------------------------------------------------------- /network/authorization/authorization_method.go: -------------------------------------------------------------------------------- 1 | package authorization 2 | 3 | // AuthorizationMethod is an authorization method such as 'Basic' or 'Bearer'. 4 | type AuthorizationMethod uint8 5 | 6 | const ( 7 | // None represents no authorization method. 8 | None AuthorizationMethod = iota 9 | // Basic represents Basic Authentication. 10 | Basic 11 | // Bearer represents Bearer Authentication (token authentication). 12 | Bearer 13 | ) 14 | -------------------------------------------------------------------------------- /proto/README.md: -------------------------------------------------------------------------------- 1 | # Prysm Protocol Buffers 2 | 3 | This package defines common protobuf messages and services used by Prysm. For now, we are checking in all generated code to support native go dependency management. 4 | -------------------------------------------------------------------------------- /proto/eth/v1/README.md: -------------------------------------------------------------------------------- 1 | # gRPC Gateway 2 | 3 | This package is contains generated files for applications that wish to use eth/v1alpha as a 4 | [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway). -------------------------------------------------------------------------------- /proto/eth/v1/attestation.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v1/beacon_block.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v1/beacon_chain.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v1/beacon_state.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v1/events.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v1/node.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v1/testdata/invalid-offset.attestation.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/proto/eth/v1/testdata/invalid-offset.attestation.ssz -------------------------------------------------------------------------------- /proto/eth/v1/validator.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/beacon_block.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/beacon_chain.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/beacon_state.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/ssz.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/sync_committee.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/validator.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/version.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/eth/v2/withdrawals.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/README.md: -------------------------------------------------------------------------------- 1 | # gRPC Gateway 2 | 3 | This package is contains generated files for applications that wish to use eth/v1alpha as a 4 | [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway). -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/attestation.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/beacon_block.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/beacon_state.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/finalized_block_root_container.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/p2p_messages.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/powchain.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/sync_committee.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/sync_committee_mainnet.go: -------------------------------------------------------------------------------- 1 | //go:build !minimal 2 | 3 | package eth 4 | 5 | import ( 6 | "github.com/prysmaticlabs/go-bitfield" 7 | ) 8 | 9 | func NewSyncCommitteeAggregationBits() bitfield.Bitvector128 { 10 | return bitfield.NewBitvector128() 11 | } 12 | 13 | func ConvertToSyncContributionBitVector(b []byte) bitfield.Bitvector128 { 14 | return b 15 | } 16 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/sync_committee_minimal.go: -------------------------------------------------------------------------------- 1 | //go:build minimal 2 | 3 | package eth 4 | 5 | import ( 6 | "github.com/prysmaticlabs/go-bitfield" 7 | ) 8 | 9 | func NewSyncCommitteeAggregationBits() bitfield.Bitvector8 { 10 | return bitfield.NewBitvector8() 11 | } 12 | 13 | func ConvertToSyncContributionBitVector(b []byte) bitfield.Bitvector8 { 14 | return b 15 | } 16 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/validator-client/interface.go: -------------------------------------------------------------------------------- 1 | package validatorpb 2 | 3 | // SignRequestObject exports the private isSignRequest_Object interface. 4 | type SignRequestObject interface { 5 | isSignRequest_Object 6 | } 7 | -------------------------------------------------------------------------------- /proto/prysm/v1alpha1/withdrawals.pb.gw.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package ignore 5 | -------------------------------------------------------------------------------- /proto/testing/gocast.go: -------------------------------------------------------------------------------- 1 | //go:build tools 2 | 3 | package testing 4 | 5 | // Trick go mod into requiring protoc-gen-go-cast and therefore Gazelle won't prune it. 6 | import ( 7 | _ "github.com/prysmaticlabs/protoc-gen-go-cast" 8 | ) 9 | -------------------------------------------------------------------------------- /runtime/debug/cgo_symbolizer.go: -------------------------------------------------------------------------------- 1 | //go:build cgosymbolizer_enabled 2 | 3 | package debug 4 | 5 | import ( 6 | // Using this file with this imported library configures the process to 7 | // expose cgo symbols when possible. Use --config=cgo_symbolizer to make use of 8 | // this feature. 9 | _ "github.com/ianlancetaylor/cgosymbolizer" 10 | ) 11 | -------------------------------------------------------------------------------- /runtime/debug/maxprocs_metric.go: -------------------------------------------------------------------------------- 1 | package debug 2 | 3 | import ( 4 | "runtime" 5 | 6 | "github.com/prometheus/client_golang/prometheus" 7 | "github.com/prometheus/client_golang/prometheus/promauto" 8 | ) 9 | 10 | var ( 11 | _ = promauto.NewGaugeFunc(prometheus.GaugeOpts{ 12 | Name: "go_maxprocs", 13 | Help: "The result of runtime.GOMAXPROCS(0)", 14 | }, func() float64 { 15 | return float64(runtime.GOMAXPROCS(0)) 16 | }) 17 | ) 18 | -------------------------------------------------------------------------------- /runtime/maxprocs/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["maxprocs.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/runtime/maxprocs", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "@com_github_sirupsen_logrus//:go_default_library", 10 | "@org_uber_go_automaxprocs//maxprocs:go_default_library", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /runtime/version/metrics.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | import ( 4 | "github.com/prometheus/client_golang/prometheus" 5 | "github.com/prometheus/client_golang/prometheus/promauto" 6 | ) 7 | 8 | var prysmInfo = promauto.NewGauge(prometheus.GaugeOpts{ 9 | Name: "prysm_version", 10 | ConstLabels: prometheus.Labels{ 11 | "version": gitTag, 12 | "commit": gitCommit, 13 | "buildDate": buildDateUnix}, 14 | }) 15 | 16 | func init() { 17 | prysmInfo.Set(float64(1)) 18 | } 19 | -------------------------------------------------------------------------------- /service-account.json.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/service-account.json.enc -------------------------------------------------------------------------------- /testing/assert/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | testonly = True, 6 | srcs = ["assertions.go"], 7 | importpath = "github.com/prysmaticlabs/prysm/v4/testing/assert", 8 | visibility = ["//visibility:public"], 9 | deps = [ 10 | "//testing/assertions:go_default_library", 11 | "@com_github_sirupsen_logrus//hooks/test:go_default_library", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/benchmark/benchmark_files/BUILD.bazel: -------------------------------------------------------------------------------- 1 | filegroup( 2 | name = "benchmark_data", 3 | srcs = glob([ 4 | "*.ssz", 5 | ]), 6 | visibility = [ 7 | "//beacon-chain/core/transition:__pkg__", 8 | "//testing/benchmark:__subpackages__", 9 | ], 10 | ) 11 | -------------------------------------------------------------------------------- /testing/benchmark/benchmark_files/bState1Epoch-128Atts-16384Vals.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/testing/benchmark/benchmark_files/bState1Epoch-128Atts-16384Vals.ssz -------------------------------------------------------------------------------- /testing/benchmark/benchmark_files/bState2Epochs-128Atts-16384Vals.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/testing/benchmark/benchmark_files/bState2Epochs-128Atts-16384Vals.ssz -------------------------------------------------------------------------------- /testing/benchmark/benchmark_files/fullBlock-128Atts-16384Vals.ssz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/testing/benchmark/benchmark_files/fullBlock-128Atts-16384Vals.ssz -------------------------------------------------------------------------------- /testing/bls/aggregate_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: aggregate.yaml 3 | 4 | package bls 5 | 6 | type AggregateTest struct { 7 | Input []string `json:"input"` 8 | Output string `json:"output" ssz:"size=96"` 9 | } 10 | -------------------------------------------------------------------------------- /testing/bls/aggregate_verify_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: aggregate_verify.yaml 3 | 4 | package bls 5 | 6 | type AggregateVerifyTest struct { 7 | Input struct { 8 | Pubkeys []string `json:"pubkeys"` 9 | Messages []string `json:"messages"` 10 | Signature string `json:"signature"` 11 | } `json:"input"` 12 | Output bool `json:"output"` 13 | } 14 | -------------------------------------------------------------------------------- /testing/bls/batch_verify_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: batch_verify.yaml 3 | 4 | package bls 5 | 6 | type BatchVerifyTest struct { 7 | Input struct { 8 | Pubkeys []string `json:"pubkeys"` 9 | Messages []string `json:"messages"` 10 | Signatures []string `json:"signatures"` 11 | } `json:"input"` 12 | Output bool `json:"output"` 13 | } 14 | -------------------------------------------------------------------------------- /testing/bls/deserialization_G1_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: hash_to_G2.yaml 3 | 4 | package bls 5 | 6 | type DeserializationG1Test struct { 7 | Input struct { 8 | Pubkey string `json:"pubkey"` 9 | } `json:"input"` 10 | Output bool `json:"output"` 11 | } 12 | -------------------------------------------------------------------------------- /testing/bls/deserialization_G2_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: hash_to_G2.yaml 3 | 4 | package bls 5 | 6 | type DeserializationG2Test struct { 7 | Input struct { 8 | Signature string `json:"signature"` 9 | } `json:"input"` 10 | Output bool `json:"output"` 11 | } 12 | -------------------------------------------------------------------------------- /testing/bls/hash_to_G2_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: hash_to_G2.yaml 3 | 4 | package bls 5 | 6 | type HashToG2Test struct { 7 | Input struct { 8 | Message string `json:"msg"` 9 | } `json:"input"` 10 | Output struct { 11 | X string `json:"x"` 12 | Y string `json:"y"` 13 | } `json:"output"` 14 | } 15 | -------------------------------------------------------------------------------- /testing/bls/sign_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: sign_msg.yaml 3 | 4 | package bls 5 | 6 | type SignMsgTest struct { 7 | Input struct { 8 | Privkey string `json:"privkey"` 9 | Message string `json:"message"` 10 | } `json:"input"` 11 | Output string `json:"output"` 12 | } 13 | -------------------------------------------------------------------------------- /testing/bls/verify_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: verify.yaml 3 | 4 | package bls 5 | 6 | type VerifyMsgTest struct { 7 | Input struct { 8 | Pubkey string `json:"pubkey"` 9 | Message string `json:"message"` 10 | Signature string `json:"signature"` 11 | } `json:"input"` 12 | Output bool `json:"output"` 13 | } 14 | -------------------------------------------------------------------------------- /testing/endtoend/components/log.go: -------------------------------------------------------------------------------- 1 | package components 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.WithField("prefix", "components") 8 | 9 | func init() { 10 | logrus.SetReportCaller(true) 11 | } 12 | -------------------------------------------------------------------------------- /testing/endtoend/fork.go: -------------------------------------------------------------------------------- 1 | package endtoend 2 | -------------------------------------------------------------------------------- /testing/endtoend/lighthouse.BUILD: -------------------------------------------------------------------------------- 1 | sh_binary( 2 | name = "lighthouse_bin", 3 | srcs = [ 4 | "lighthouse", 5 | ], 6 | visibility = ["//visibility:public"], 7 | ) -------------------------------------------------------------------------------- /testing/endtoend/minimal_e2e_test.go: -------------------------------------------------------------------------------- 1 | package endtoend 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/endtoend/types" 8 | ) 9 | 10 | func TestEndToEnd_MinimalConfig(t *testing.T) { 11 | r := e2eMinimal(t, version.Phase0, types.WithCheckpointSync()) 12 | r.run() 13 | } 14 | -------------------------------------------------------------------------------- /testing/endtoend/policies/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["policies.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/testing/endtoend/policies", 7 | visibility = ["//visibility:public"], 8 | deps = ["//consensus-types/primitives:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /testing/endtoend/static-files/eth1/BUILD.bazel: -------------------------------------------------------------------------------- 1 | filegroup( 2 | name = "eth1data", 3 | srcs = [ 4 | "UTC--2021-12-22T19-14-08.590377700Z--878705ba3f8bc32fcf7f4caa1a35e72af65cf766", 5 | ], 6 | visibility = ["//testing/endtoend:__subpackages__"], 7 | ) 8 | -------------------------------------------------------------------------------- /testing/endtoend/web3signer.BUILD: -------------------------------------------------------------------------------- 1 | sh_binary( 2 | name = "web3signer", 3 | srcs = [ 4 | "bin/web3signer", 5 | ], 6 | visibility = ["//visibility:public"], 7 | ) 8 | -------------------------------------------------------------------------------- /testing/require/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | testonly = True, 6 | srcs = ["requires.go"], 7 | importpath = "github.com/prysmaticlabs/prysm/v4/testing/require", 8 | visibility = ["//visibility:public"], 9 | deps = [ 10 | "//testing/assertions:go_default_library", 11 | "@com_github_sirupsen_logrus//hooks/test:go_default_library", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/general/phase0/bls/aggregate_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: aggregate.yaml 3 | 4 | package bls 5 | 6 | type AggregateTest struct { 7 | Input []string `json:"input"` 8 | Output string `json:"output" ssz:"size=96"` 9 | } 10 | -------------------------------------------------------------------------------- /testing/spectest/general/phase0/bls/aggregate_verify_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: aggregate_verify.yaml 3 | 4 | package bls 5 | 6 | type AggregateVerifyTest struct { 7 | Input struct { 8 | Pubkeys []string `json:"pubkeys"` 9 | Messages []string `json:"messages"` 10 | Signature string `json:"signature"` 11 | } `json:"input"` 12 | Output bool `json:"output"` 13 | } 14 | -------------------------------------------------------------------------------- /testing/spectest/general/phase0/bls/doc.go: -------------------------------------------------------------------------------- 1 | // Package bls includes tests to ensure conformity with the Ethereum BLS cryptography specification. 2 | // See https://github.com/ethereum/consensus-spec-tests/tree/master/tests/general/phase0/bls for details. 3 | package bls 4 | -------------------------------------------------------------------------------- /testing/spectest/general/phase0/bls/sign_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: sign_msg.yaml 3 | 4 | package bls 5 | 6 | type SignMsgTest struct { 7 | Input struct { 8 | Privkey string `json:"privkey"` 9 | Message string `json:"message"` 10 | } `json:"input"` 11 | Output string `json:"output"` 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/general/phase0/bls/verify_test.yaml.go: -------------------------------------------------------------------------------- 1 | // Code generated by yaml_to_go. DO NOT EDIT. 2 | // source: verify.yaml 3 | 4 | package bls 5 | 6 | type VerifyMsgTest struct { 7 | Input struct { 8 | Pubkey string `json:"pubkey"` 9 | Message string `json:"message"` 10 | Signature string `json:"signature"` 11 | } `json:"input"` 12 | Output bool `json:"output"` 13 | } 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/historical_roots_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_HistoricalRootsUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalRootsUpdateTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/inactivity_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_InactivityUpdates(t *testing.T) { 10 | epoch_processing.RunInactivityUpdatesTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/participation_flag_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_ParticipationFlag(t *testing.T) { 10 | epoch_processing.RunParticipationFlagUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Altair_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/finality/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["finality_test.go"], 8 | data = glob(["*.yaml"]) + [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | shard_count = 4, 12 | tags = ["spectest"], 13 | deps = ["//testing/spectest/shared/altair/finality:go_default_library"], 14 | ) 15 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/finality" 7 | ) 8 | 9 | func TestMainnet_Altair_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/fork_helper/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["upgrade_to_altair_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | shard_count = 4, 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/altair/fork:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/fork_helper/upgrade_to_altair_test.go: -------------------------------------------------------------------------------- 1 | package fork_helper 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/fork" 7 | ) 8 | 9 | func TestMainnet_Altair_UpgradeToAltair(t *testing.T) { 10 | fork.RunUpgradeToAltair(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/fork_transition/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | timeout = "short", 6 | srcs = ["transition_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/altair/fork:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/fork_transition/transition_test.go: -------------------------------------------------------------------------------- 1 | package fork_transition 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/fork" 7 | ) 8 | 9 | func TestMainnet_Altair_Transition(t *testing.T) { 10 | fork.RunForkTransitionTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/forkchoice/forkchoice_test.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/common/forkchoice" 8 | ) 9 | 10 | func TestMainnet_Altair_Forkchoice(t *testing.T) { 11 | forkchoice.Run(t, "mainnet", version.Altair) 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/sync_committee_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_SyncCommittee(t *testing.T) { 10 | operations.RunSyncCommitteeTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMainnet_Altair_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/random/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["random_test.go"], 8 | data = glob(["*.yaml"]) + [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/altair/sanity:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/random/random_test.go: -------------------------------------------------------------------------------- 1 | package random 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/sanity" 7 | ) 8 | 9 | func TestMainnet_Altair_Random(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "mainnet", "random/random/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/rewards/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["rewards_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/altair/rewards:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/rewards" 7 | ) 8 | 9 | func TestMainnet_Altair_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/sanity" 7 | ) 8 | 9 | func TestMainnet_Altair_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "mainnet", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/sanity" 7 | ) 8 | 9 | func TestMainnet_Altair_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/ssz_static/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["ssz_static_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/altair/ssz_static:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/altair/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/ssz_static" 7 | ) 8 | 9 | func TestMainnet_Altair_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/historical_roots_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_HistoricalRootsUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalRootsUpdateTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/inactivity_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_InactivityUpdates(t *testing.T) { 10 | epoch_processing.RunInactivityUpdatesTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/participation_flag_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_ParticipationFlag(t *testing.T) { 10 | epoch_processing.RunParticipationFlagUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/finality/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["finality_test.go"], 8 | data = glob(["*.yaml"]) + [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | shard_count = 4, 12 | tags = ["spectest"], 13 | deps = ["//testing/spectest/shared/bellatrix/finality:go_default_library"], 14 | ) 15 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/finality" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/fork_helper/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["upgrade_to_altair_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | shard_count = 4, 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/bellatrix/fork:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/fork_helper/upgrade_to_altair_test.go: -------------------------------------------------------------------------------- 1 | package fork_helper 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/fork" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_UpgradeToBellatrix(t *testing.T) { 10 | fork.RunUpgradeToBellatrix(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/fork_transition/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["transition_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/bellatrix/fork:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/fork_transition/transition_test.go: -------------------------------------------------------------------------------- 1 | package fork_transition 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/fork" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Transition(t *testing.T) { 10 | fork.RunForkTransitionTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/forkchoice/forkchoice_test.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/common/forkchoice" 8 | ) 9 | 10 | func TestMainnet_Bellatrix_Forkchoice(t *testing.T) { 11 | forkchoice.Run(t, "mainnet", version.Bellatrix) 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/sync_committee_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_SyncCommittee(t *testing.T) { 10 | operations.RunSyncCommitteeTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/rewards/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["rewards_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/bellatrix/rewards:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/rewards" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/sanity" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "mainnet", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/sanity" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/ssz_static/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["ssz_static_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/bellatrix/ssz_static:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/bellatrix/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/ssz_static" 7 | ) 8 | 9 | func TestMainnet_Bellatrix_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/historical_summaries_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_HistoricalSummariesUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalSummariesUpdateTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/inactivity_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_InactivityUpdates(t *testing.T) { 10 | epoch_processing.RunInactivityUpdatesTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/participation_flag_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_ParticipationFlag(t *testing.T) { 10 | epoch_processing.RunParticipationFlagUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Capella_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/finality/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["finality_test.go"], 8 | data = [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | shard_count = 1, 12 | tags = ["spectest"], 13 | deps = ["//testing/spectest/shared/capella/finality:go_default_library"], 14 | ) 15 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/finality" 7 | ) 8 | 9 | func TestMainnet_Capella_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/fork_helper/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["upgrade_to_capella_test.go"], 7 | data = [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | shard_count = 1, 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/capella/fork:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/fork_helper/upgrade_to_capella_test.go: -------------------------------------------------------------------------------- 1 | package fork_helper 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/fork" 7 | ) 8 | 9 | func TestMainnet_Capella_UpgradeToCapella(t *testing.T) { 10 | fork.RunUpgradeToCapella(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/fork_transition/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["transition_test.go"], 7 | data = [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/capella/fork:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/fork_transition/transition_test.go: -------------------------------------------------------------------------------- 1 | package fork_transition 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/fork" 7 | ) 8 | 9 | func TestMainnet_Capella_Transition(t *testing.T) { 10 | fork.RunForkTransitionTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/forkchoice/forkchoice_test.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/common/forkchoice" 8 | ) 9 | 10 | func TestMainnet_Capella_Forkchoice(t *testing.T) { 11 | forkchoice.Run(t, "mainnet", version.Capella) 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/sync_committee_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_SyncCommittee(t *testing.T) { 10 | operations.RunSyncCommitteeTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMainnet_Capella_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/rewards/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["rewards_test.go"], 7 | data = [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/capella/rewards:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/rewards" 7 | ) 8 | 9 | func TestMainnet_Capella_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/sanity/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = [ 8 | "blocks_test.go", 9 | "slots_test.go", 10 | ], 11 | data = [ 12 | "@consensus_spec_tests_mainnet//:test_data", 13 | ], 14 | tags = ["spectest"], 15 | deps = ["//testing/spectest/shared/capella/sanity:go_default_library"], 16 | ) 17 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/sanity" 7 | ) 8 | 9 | func TestMainnet_Capella_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "mainnet", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/sanity" 7 | ) 8 | 9 | func TestMainnet_Capella_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/ssz_static/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["ssz_static_test.go"], 7 | data = [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/capella/ssz_static:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/capella/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/ssz_static" 7 | ) 8 | 9 | func TestMainnet_Capella_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/epoch_processing_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/config/params" 7 | ) 8 | 9 | func TestMain(m *testing.M) { 10 | prevConfig := params.BeaconConfig().Copy() 11 | defer params.OverrideBeaconConfig(prevConfig) 12 | c := params.BeaconConfig().Copy() 13 | c.MinGenesisActiveValidatorCount = 16384 14 | params.OverrideBeaconConfig(c) 15 | 16 | m.Run() 17 | } 18 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/historical_roots_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_HistoricalRootsUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalRootsUpdateTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/participation_record_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_ParticipationRecordUpdates(t *testing.T) { 10 | epoch_processing.RunParticipationRecordUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMainnet_Phase0_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/finality/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["finality_test.go"], 8 | data = glob(["*.yaml"]) + [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | shard_count = 4, 12 | tags = ["spectest"], 13 | deps = ["//testing/spectest/shared/phase0/finality:go_default_library"], 14 | ) 15 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/finality" 7 | ) 8 | 9 | func TestMainnet_Phase0_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMainnet_Phase0_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMainnet_Phase0_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMainnet_Phase0_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMainnet_Phase0_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMainnet_Phase0_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMainnet_Phase0_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/random/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["random_test.go"], 8 | data = glob(["*.yaml"]) + [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/phase0/sanity:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/random/random_test.go: -------------------------------------------------------------------------------- 1 | package random 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/sanity" 7 | ) 8 | 9 | func TestMainnet_Phase0_Random(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "mainnet", "random/random/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/rewards/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["rewards_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/phase0/rewards:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/rewards" 7 | ) 8 | 9 | func TestMainnet_Phase0_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/sanity" 7 | ) 8 | 9 | func TestMainnet_Phase0_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "mainnet", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/sanity" 7 | ) 8 | 9 | func TestMainnet_Phase0_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/shuffling/core/shuffle/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "medium", 6 | timeout = "short", 7 | srcs = ["shuffle_test.go"], 8 | data = glob(["*.yaml"]) + [ 9 | "@consensus_spec_tests_mainnet//:test_data", 10 | ], 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/phase0/shuffling/core/shuffle:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/shuffling/core/shuffle/shuffle_test.go: -------------------------------------------------------------------------------- 1 | package shuffle 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/shuffling/core/shuffle" 7 | ) 8 | 9 | func TestMainnet_Phase0_Shuffling_Core_Shuffle(t *testing.T) { 10 | shuffle.RunShuffleTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/ssz_static/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["ssz_static_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_mainnet//:test_data", 9 | ], 10 | tags = ["spectest"], 11 | deps = ["//testing/spectest/shared/phase0/ssz_static:go_default_library"], 12 | ) 13 | -------------------------------------------------------------------------------- /testing/spectest/mainnet/phase0/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/ssz_static" 7 | ) 8 | 9 | func TestMainnet_Phase0_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "mainnet") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/historical_roots_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_HistoricalRootsUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalRootsUpdateTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/inactivity_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_InactivityUpdates(t *testing.T) { 10 | epoch_processing.RunInactivityUpdatesTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/participation_flag_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_ParticipationFlag(t *testing.T) { 10 | epoch_processing.RunParticipationFlagUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Altair_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/finality" 7 | ) 8 | 9 | func TestMinimal_Altair_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/fork/upgrade_to_altair_test.go: -------------------------------------------------------------------------------- 1 | package fork 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/fork" 7 | ) 8 | 9 | func TestMinimal_Altair_UpgradeToAltair(t *testing.T) { 10 | fork.RunUpgradeToAltair(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/forkchoice/forkchoice_test.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/common/forkchoice" 8 | ) 9 | 10 | func TestMinimal_Altair_Forkchoice(t *testing.T) { 11 | forkchoice.Run(t, "minimal", version.Altair) 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/sync_committee_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_SyncCommittee(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/operations" 7 | ) 8 | 9 | func TestMinimal_Altair_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/random/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["random_test.go"], 7 | data = glob(["*.yaml"]) + [ 8 | "@consensus_spec_tests_minimal//:test_data", 9 | ], 10 | eth_network = "minimal", 11 | tags = ["spectest"], 12 | deps = ["//testing/spectest/shared/altair/sanity:go_default_library"], 13 | ) 14 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/random/random_test.go: -------------------------------------------------------------------------------- 1 | package random 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/sanity" 7 | ) 8 | 9 | func TestMinimal_Altair_Random(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "minimal", "random/random/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/rewards" 7 | ) 8 | 9 | func TestMinimal_Altair_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/sanity" 7 | ) 8 | 9 | func TestMinimal_Altair_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "minimal", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/sanity" 7 | ) 8 | 9 | func TestMinimal_Altair_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/altair/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/altair/ssz_static" 7 | ) 8 | 9 | func TestMinimal_Altair_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/historical_roots_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_HistoricalRootsUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalRootsUpdateTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/inactivity_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_InactivityUpdates(t *testing.T) { 10 | epoch_processing.RunInactivityUpdatesTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/participation_flag_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_ParticipationFlag(t *testing.T) { 10 | epoch_processing.RunParticipationFlagUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/finality" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/fork/upgrade_to_altair_test.go: -------------------------------------------------------------------------------- 1 | package fork 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/fork" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_UpgradeToBellatrix(t *testing.T) { 10 | fork.RunUpgradeToBellatrix(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/forkchoice/forkchoice_test.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/common/forkchoice" 8 | ) 9 | 10 | func TestMinimal_Bellatrix_Forkchoice(t *testing.T) { 11 | forkchoice.Run(t, "minimal", version.Bellatrix) 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/sync_committee_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_SyncCommittee(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/operations" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/rewards" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/sanity" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "minimal", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/sanity" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/bellatrix/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/bellatrix/ssz_static" 7 | ) 8 | 9 | func TestMinimal_Bellatrix_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/historical_roots_summaries_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_HistoricalSummariesUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalSummariesUpdateTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/inactivity_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_InactivityUpdates(t *testing.T) { 10 | epoch_processing.RunInactivityUpdatesTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/participation_flag_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_ParticipationFlag(t *testing.T) { 10 | epoch_processing.RunParticipationFlagUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Capella_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/finality" 7 | ) 8 | 9 | func TestMinimal_Capella_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/fork/upgrade_to_capella_test.go: -------------------------------------------------------------------------------- 1 | package fork 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/fork" 7 | ) 8 | 9 | func TestMinimal_Capella_UpgradeToCapella(t *testing.T) { 10 | fork.RunUpgradeToCapella(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/forkchoice/forkchoice_test.go: -------------------------------------------------------------------------------- 1 | package forkchoice 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/runtime/version" 7 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/common/forkchoice" 8 | ) 9 | 10 | func TestMinimal_Capella_Forkchoice(t *testing.T) { 11 | forkchoice.Run(t, "minimal", version.Capella) 12 | } 13 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/bls_to_execution_change_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_BLSToExecutionChange(t *testing.T) { 10 | operations.RunBLSToExecutionChangeTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/sync_committee_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_SyncCommittee(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/operations/withdrawals_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/operations" 7 | ) 8 | 9 | func TestMinimal_Capella_Operations_Withdrawals(t *testing.T) { 10 | operations.RunWithdrawalsTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/rewards/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_test") 2 | 3 | go_test( 4 | name = "go_default_test", 5 | size = "small", 6 | srcs = ["rewards_test.go"], 7 | data = [ 8 | "@consensus_spec_tests_minimal//:test_data", 9 | ], 10 | eth_network = "minimal", 11 | tags = [ 12 | "minimal", 13 | "spectest", 14 | ], 15 | deps = ["//testing/spectest/shared/capella/rewards:go_default_library"], 16 | ) 17 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/rewards" 7 | ) 8 | 9 | func TestMinimal_Capella_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/sanity" 7 | ) 8 | 9 | func TestMinimal_Capella_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "minimal", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/sanity" 7 | ) 8 | 9 | func TestMinimal_Capella_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/capella/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/capella/ssz_static" 7 | ) 8 | 9 | func TestMinimal_Capella_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/effective_balance_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_EffectiveBalanceUpdates(t *testing.T) { 10 | epoch_processing.RunEffectiveBalanceUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/epoch_processing_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/config/params" 7 | ) 8 | 9 | func TestMain(m *testing.M) { 10 | prevConfig := params.BeaconConfig().Copy() 11 | defer params.OverrideBeaconConfig(prevConfig) 12 | c := params.BeaconConfig().Copy() 13 | c.MinGenesisActiveValidatorCount = 16384 14 | params.OverrideBeaconConfig(c) 15 | 16 | m.Run() 17 | } 18 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/eth1_data_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_Eth1DataReset(t *testing.T) { 10 | epoch_processing.RunEth1DataResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/historical_roots_update_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_HistoricalRootsUpdate(t *testing.T) { 10 | epoch_processing.RunHistoricalRootsUpdateTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/justification_and_finalization_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_JustificationAndFinalization(t *testing.T) { 10 | epoch_processing.RunJustificationAndFinalizationTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/participation_record_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_ParticipationRecordUpdates(t *testing.T) { 10 | epoch_processing.RunParticipationRecordUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/randao_mixes_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_RandaoMixesReset(t *testing.T) { 10 | epoch_processing.RunRandaoMixesResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/registry_updates_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_ResetRegistryUpdates(t *testing.T) { 10 | epoch_processing.RunRegistryUpdatesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/rewards_and_penalties_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_RewardsAndPenalties(t *testing.T) { 10 | epoch_processing.RunRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/slashings_reset_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_SlashingsReset(t *testing.T) { 10 | epoch_processing.RunSlashingsResetTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/epoch_processing/slashings_test.go: -------------------------------------------------------------------------------- 1 | package epoch_processing 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/epoch_processing" 7 | ) 8 | 9 | func TestMinimal_Phase0_EpochProcessing_Slashings(t *testing.T) { 10 | epoch_processing.RunSlashingsTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/finality/finality_test.go: -------------------------------------------------------------------------------- 1 | package finality 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/finality" 7 | ) 8 | 9 | func TestMinimal_Phase0_Finality(t *testing.T) { 10 | finality.RunFinalityTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/operations/attestation_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMinimal_Phase0_Operations_Attestation(t *testing.T) { 10 | operations.RunAttestationTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/operations/attester_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMinimal_Phase0_Operations_AttesterSlashing(t *testing.T) { 10 | operations.RunAttesterSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/operations/block_header_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMinimal_Phase0_Operations_BlockHeader(t *testing.T) { 10 | operations.RunBlockHeaderTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/operations/deposit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMinimal_Phase0_Operations_Deposit(t *testing.T) { 10 | operations.RunDepositTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/operations/proposer_slashing_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMinimal_Phase0_Operations_ProposerSlashing(t *testing.T) { 10 | operations.RunProposerSlashingTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/operations/voluntary_exit_test.go: -------------------------------------------------------------------------------- 1 | package operations 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/operations" 7 | ) 8 | 9 | func TestMinimal_Phase0_Operations_VoluntaryExit(t *testing.T) { 10 | operations.RunVoluntaryExitTest(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/random/random_test.go: -------------------------------------------------------------------------------- 1 | package random 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/sanity" 7 | ) 8 | 9 | func TestMinimal_Phase0_Random(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "minimal", "random/random/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/rewards/rewards_test.go: -------------------------------------------------------------------------------- 1 | package rewards 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/rewards" 7 | ) 8 | 9 | func TestMinimal_Phase0_Rewards(t *testing.T) { 10 | rewards.RunPrecomputeRewardsAndPenaltiesTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/sanity/blocks_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/sanity" 7 | ) 8 | 9 | func TestMinimal_Phase0_Sanity_Blocks(t *testing.T) { 10 | sanity.RunBlockProcessingTest(t, "minimal", "sanity/blocks/pyspec_tests") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/sanity/slots_test.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/sanity" 7 | ) 8 | 9 | func TestMinimal_Phase0_Sanity_Slots(t *testing.T) { 10 | sanity.RunSlotProcessingTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/shuffling/core/shuffle/shuffle_test.go: -------------------------------------------------------------------------------- 1 | package shuffle 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/shuffling/core/shuffle" 7 | ) 8 | 9 | func TestMinimal_Phase0_Shuffling_Core_Shuffle(t *testing.T) { 10 | shuffle.RunShuffleTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/minimal/phase0/ssz_static/ssz_static_test.go: -------------------------------------------------------------------------------- 1 | package ssz_static 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/testing/spectest/shared/phase0/ssz_static" 7 | ) 8 | 9 | func TestMinimal_Phase0_SSZStatic(t *testing.T) { 10 | ssz_static.RunSSZStaticTests(t, "minimal") 11 | } 12 | -------------------------------------------------------------------------------- /testing/spectest/shared/altair/sanity/block_processing.yaml.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | // SanityConfig -- 4 | type SanityConfig struct { 5 | BlocksCount int `json:"blocks_count"` 6 | } 7 | -------------------------------------------------------------------------------- /testing/spectest/shared/bellatrix/sanity/block_processing.yaml.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | // SanityConfig -- 4 | type SanityConfig struct { 5 | BlocksCount int `json:"blocks_count"` 6 | } 7 | -------------------------------------------------------------------------------- /testing/spectest/shared/capella/sanity/block_processing.yaml.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | // SanityConfig -- 4 | type SanityConfig struct { 5 | BlocksCount int `json:"blocks_count"` 6 | } 7 | -------------------------------------------------------------------------------- /testing/spectest/shared/phase0/sanity/block_processing.yaml.go: -------------------------------------------------------------------------------- 1 | package sanity 2 | 3 | // SanityConfig -- 4 | type SanityConfig struct { 5 | BlocksCount int `json:"blocks_count"` 6 | } 7 | -------------------------------------------------------------------------------- /testing/spectest/shared/phase0/shuffling/core/shuffle/shuffle_test_format.go: -------------------------------------------------------------------------------- 1 | package shuffle 2 | 3 | import "github.com/prysmaticlabs/prysm/v4/consensus-types/primitives" 4 | 5 | // ShuffleTestCase -- 6 | type ShuffleTestCase struct { 7 | Seed string `yaml:"seed"` 8 | Count uint64 `yaml:"count"` 9 | Mapping []primitives.ValidatorIndex `yaml:"mapping"` 10 | } 11 | -------------------------------------------------------------------------------- /testing/spectypes/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | -------------------------------------------------------------------------------- /third_party/BUILD.bazel: -------------------------------------------------------------------------------- 1 | exports_files(glob(["*.patch"])) 2 | -------------------------------------------------------------------------------- /third_party/com_github_prysmaticlabs_ethereumapis-tags.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/third_party/com_github_prysmaticlabs_ethereumapis-tags.patch -------------------------------------------------------------------------------- /third_party/herumi/BUILD.bazel: -------------------------------------------------------------------------------- 1 | exports_files(["mcl_darwin_arm64_base64.o"]) 2 | -------------------------------------------------------------------------------- /third_party/herumi/bls.BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | exports_files(["src/bls_c384_256.cpp", "src/bls_c_impl.hpp"]) 4 | -------------------------------------------------------------------------------- /third_party/herumi/mcl_darwin_arm64_base64.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/third_party/herumi/mcl_darwin_arm64_base64.o -------------------------------------------------------------------------------- /third_party/usb/AUTHORS: -------------------------------------------------------------------------------- 1 | Felix Lange 2 | Guillaume Ballet 3 | Jakob Weisblat 4 | Martin Holst Swende 5 | Mateusz Mikołajczyk 6 | Péter Szilágyi 7 | Rosen Penev 8 | -------------------------------------------------------------------------------- /third_party/usb/README.md: -------------------------------------------------------------------------------- 1 | # usb 2 | 3 | This is a copy of github.com/karalabe/usb, except that it is fully disabled. 4 | 5 | The current karalabe/usb library requires a bit of handwritten cc_library targets. 6 | This library isn't used in Prysm anyway, so it is disabled for now. -------------------------------------------------------------------------------- /time/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["utils.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/time", 7 | visibility = ["//visibility:public"], 8 | ) 9 | -------------------------------------------------------------------------------- /time/mclock/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["mclock.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/time/mclock", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_aristanetworks_goarista//monotime:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /time/slots/slotutil_test.go: -------------------------------------------------------------------------------- 1 | package slots 2 | 3 | import ( 4 | "io" 5 | "testing" 6 | 7 | "github.com/sirupsen/logrus" 8 | ) 9 | 10 | func TestMain(m *testing.M) { 11 | logrus.SetLevel(logrus.DebugLevel) 12 | logrus.SetOutput(io.Discard) 13 | 14 | m.Run() 15 | } 16 | -------------------------------------------------------------------------------- /time/slots/testing/mock_test.go: -------------------------------------------------------------------------------- 1 | package testing 2 | 3 | import ( 4 | "github.com/prysmaticlabs/prysm/v4/time/slots" 5 | ) 6 | 7 | var _ slots.Ticker = (*MockTicker)(nil) 8 | -------------------------------------------------------------------------------- /time/utils.go: -------------------------------------------------------------------------------- 1 | // Package time is a wrapper around the go standard time library. 2 | package time 3 | 4 | import ( 5 | "time" 6 | ) 7 | 8 | // Since returns the duration since t. 9 | func Since(t time.Time) time.Duration { 10 | return Now().Sub(t) 11 | } 12 | 13 | // Until returns the duration until t. 14 | func Until(t time.Time) time.Duration { 15 | return t.Sub(Now()) 16 | } 17 | 18 | // Now returns the current local time. 19 | func Now() time.Time { 20 | return time.Now() 21 | } 22 | -------------------------------------------------------------------------------- /tools/analyzers/README.md: -------------------------------------------------------------------------------- 1 | # Running analyzer unit tests 2 | 3 | Analyzers' unit tests are ignored in bazel's build files, and therefore are not being triggered as part of the CI 4 | pipeline. Because of this they should be invoked manually when writing a new analyzer or making changes to an existing 5 | one. Otherwise, any issues will go unnoticed during the CI build. 6 | 7 | The easiest way to run all unit tests for all analyzers is `go test ./tools/analyzers/...` -------------------------------------------------------------------------------- /tools/analyzers/gocognit/CognitiveComplexity.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/tools/analyzers/gocognit/CognitiveComplexity.pdf -------------------------------------------------------------------------------- /tools/analyzers/ineffassign/testdata/ctx_assignment.go: -------------------------------------------------------------------------------- 1 | package testdata 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | ) 7 | 8 | // This returns the head state. 9 | // It does a full copy on head state for immutability. 10 | func headState(ctx context.Context) { 11 | ctx, span := StartSpan(ctx, "blockChain.headState") 12 | fmt.Print(span) 13 | return 14 | } 15 | 16 | // StartSpan -- 17 | func StartSpan(ctx context.Context, name string) (context.Context, int) { 18 | return ctx, 42 19 | } 20 | -------------------------------------------------------------------------------- /tools/analyzers/nop/analyzer_test.go: -------------------------------------------------------------------------------- 1 | package nop 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/prysmaticlabs/prysm/v4/build/bazel" 7 | "golang.org/x/tools/go/analysis/analysistest" 8 | ) 9 | 10 | func init() { 11 | if bazel.BuiltWithBazel() { 12 | bazel.SetGoEnv() 13 | } 14 | } 15 | 16 | func TestAnalyzer(t *testing.T) { 17 | testdata := bazel.TestDataPath(t) 18 | analysistest.TestData = func() string { return testdata } 19 | analysistest.Run(t, testdata, Analyzer) 20 | } 21 | -------------------------------------------------------------------------------- /tools/build_settings.bzl: -------------------------------------------------------------------------------- 1 | BaseImageProvider = provider(fields = ["type"]) 2 | 3 | def _impl(ctx): 4 | return BaseImageProvider(type = ctx.build_setting_value) 5 | 6 | base_image = rule( 7 | implementation = _impl, 8 | build_setting = config.string(flag = True), 9 | ) 10 | -------------------------------------------------------------------------------- /tools/cross-toolchain/BUILD.bazel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/tools/cross-toolchain/BUILD.bazel -------------------------------------------------------------------------------- /tools/cross-toolchain/common_osxcross.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -eu 3 | 4 | OSXCROSS_REPO=tpoechtrager/osxcross 5 | OSXCROSS_SHA1=17bb5e2d0a46533c1dd525cf4e9a80d88bd9f00e 6 | OSX_SDK=MacOSX12.3.sdk 7 | OSX_SDK_SUM=ae92043c991873bbecd716f8a3ea1d1623698dc556843d590d7ca9be76f28414 -------------------------------------------------------------------------------- /tools/cross-toolchain/configs/cc/WORKSPACE: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT: automatically generated WORKSPACE file for cc_autoconf rule 2 | workspace(name = "local_config_cc") 3 | -------------------------------------------------------------------------------- /tools/cross-toolchain/configs/cc/tools/cpp/empty.cc: -------------------------------------------------------------------------------- 1 | int main() {} -------------------------------------------------------------------------------- /tools/cross-toolchain/cpp_env_clang.json: -------------------------------------------------------------------------------- 1 | { 2 | "BAZEL_COMPILER": "clang", 3 | "BAZEL_LINKLIBS": "-l%:libstdc++.a", 4 | "BAZEL_LINKOPTS": "-lm:-static-libgcc", 5 | "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", 6 | "GCOV": "llvm-profdata", 7 | "CC": "clang", 8 | "CXX": "clang++" 9 | } -------------------------------------------------------------------------------- /tools/go/BUILD.bazel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flashbots/prysm/cecd2d9cbb9bd32187dcdc8167fe72b77d48eebe/tools/go/BUILD.bazel -------------------------------------------------------------------------------- /tools/target_migration.bzl: -------------------------------------------------------------------------------- 1 | def moved_targets(targets, new_package): 2 | for target in targets: 3 | native.alias( 4 | name=target[1:], 5 | actual=new_package+target, 6 | deprecation="This target has moved to %s%s"%(new_package,target), 7 | tags = ["manual"], 8 | ) 9 | -------------------------------------------------------------------------------- /tools/unencrypted-keys-gen/keygen/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["keygen.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/tools/unencrypted-keys-gen/keygen", 7 | visibility = ["//visibility:public"], 8 | deps = ["@com_github_sirupsen_logrus//:go_default_library"], 9 | ) 10 | -------------------------------------------------------------------------------- /validator/accounts/doc.go: -------------------------------------------------------------------------------- 1 | // Package accounts defines a new model for accounts management in Prysm, using best 2 | // practices for user security, UX, and extensibility via different wallet types 3 | // including HD wallets, imported (non-HD) wallets, and remote-signing capable configurations. This model 4 | // is compliant with the EIP-2333, EIP-2334, and EIP-2335 standards for key management in Ethereum. 5 | package accounts 6 | -------------------------------------------------------------------------------- /validator/accounts/log.go: -------------------------------------------------------------------------------- 1 | package accounts 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "accounts") 6 | -------------------------------------------------------------------------------- /validator/accounts/testdata/fuzz/FuzzValidateMnemonic/0258716f94e00f9df0da869fd97f9e0d0c6ac83eb528677d918f0ac9be5f4b8d: -------------------------------------------------------------------------------- 1 | go test fuzz v1 2 | string("0 ") 3 | -------------------------------------------------------------------------------- /validator/accounts/userprompt/log.go: -------------------------------------------------------------------------------- 1 | package userprompt 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "userprompt") 6 | -------------------------------------------------------------------------------- /validator/accounts/wallet/log.go: -------------------------------------------------------------------------------- 1 | package wallet 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "wallet") 6 | -------------------------------------------------------------------------------- /validator/client/beacon-api/log.go: -------------------------------------------------------------------------------- 1 | package beacon_api 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "beacon-api") 6 | -------------------------------------------------------------------------------- /validator/client/iface/slasher_client.go: -------------------------------------------------------------------------------- 1 | package iface 2 | 3 | import ( 4 | "context" 5 | 6 | ethpb "github.com/prysmaticlabs/prysm/v4/proto/prysm/v1alpha1" 7 | ) 8 | 9 | type SlasherClient interface { 10 | IsSlashableAttestation(ctx context.Context, in *ethpb.IndexedAttestation) (*ethpb.AttesterSlashingResponse, error) 11 | IsSlashableBlock(ctx context.Context, in *ethpb.SignedBeaconBlockHeader) (*ethpb.ProposerSlashingResponse, error) 12 | } 13 | -------------------------------------------------------------------------------- /validator/db/alias.go: -------------------------------------------------------------------------------- 1 | package db 2 | 3 | import "github.com/prysmaticlabs/prysm/v4/validator/db/iface" 4 | 5 | // Database defines the necessary methods for Prysm's validator client backend which may be implemented by any 6 | // key-value or relational database in practice. This is the full database interface which should 7 | // not be used often. Prefer a more restrictive interface in this package. 8 | type Database = iface.ValidatorDB 9 | -------------------------------------------------------------------------------- /validator/db/kv/log.go: -------------------------------------------------------------------------------- 1 | package kv 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "db") 6 | -------------------------------------------------------------------------------- /validator/db/log.go: -------------------------------------------------------------------------------- 1 | package db 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "db") 6 | -------------------------------------------------------------------------------- /validator/graffiti/log.go: -------------------------------------------------------------------------------- 1 | package graffiti 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "graffiti") 6 | -------------------------------------------------------------------------------- /validator/helpers/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["node_connection.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/validator/helpers", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "@org_golang_google_grpc//:go_default_library", 10 | ], 11 | ) 12 | -------------------------------------------------------------------------------- /validator/keymanager/constants.go: -------------------------------------------------------------------------------- 1 | package keymanager 2 | 3 | // KeysReloaded is a "key reloaded" message. 4 | const KeysReloaded = "Reloaded validator keys into keymanager" 5 | -------------------------------------------------------------------------------- /validator/keymanager/derived/log.go: -------------------------------------------------------------------------------- 1 | package derived 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "derived-keymanager") 6 | -------------------------------------------------------------------------------- /validator/keymanager/local/errors.go: -------------------------------------------------------------------------------- 1 | package local 2 | 3 | import "errors" 4 | 5 | var ( 6 | ErrNoPasswords = errors.New("no passwords provided for keystores") 7 | ErrMismatchedNumPasswords = errors.New("number of passwords does not match number of keystores") 8 | ) 9 | -------------------------------------------------------------------------------- /validator/keymanager/local/log.go: -------------------------------------------------------------------------------- 1 | package local 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "local-keymanager") 6 | -------------------------------------------------------------------------------- /validator/keymanager/remote-web3signer/internal/log.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.WithField("prefix", "remote_web3signer_internal") 8 | -------------------------------------------------------------------------------- /validator/node/log.go: -------------------------------------------------------------------------------- 1 | package node 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "node") 6 | -------------------------------------------------------------------------------- /validator/node/testdata/bad-prepare-beacon-proposer-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "proposer_config": { 3 | "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { 4 | 5 | -------------------------------------------------------------------------------- /validator/node/testdata/good-prepare-beacon-proposer-config-badchecksum.json: -------------------------------------------------------------------------------- 1 | { 2 | "proposer_config": { 3 | "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { 4 | "fee_recipient": "0xae967917c465db8578ca9024c205720b1a3651A9" 5 | } 6 | }, 7 | "default_config": { 8 | "fee_recipient": "0xae967917c465db8578ca9024c205720b1a3651A9" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /validator/node/testdata/good-prepare-beacon-proposer-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "proposer_config": { 3 | "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { 4 | "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3" 5 | } 6 | }, 7 | "default_config": { 8 | "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /validator/node/testdata/good-prepare-beacon-proposer-config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | proposer_config: 3 | '0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a': 4 | fee_recipient: '0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3' 5 | builder: 6 | enabled: true 7 | gas_limit: 40000000 8 | default_config: 9 | fee_recipient: '0x6e35733c5af9B61374A128e6F85f553aF09ff89A' 10 | builder: 11 | enabled: false 12 | gas_limit: '30000000' -------------------------------------------------------------------------------- /validator/package/postinst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | chown prysm-validator:prysm-validator /etc/prysm/validator.yaml -------------------------------------------------------------------------------- /validator/package/preinst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | SERVICE_USER=prysm-validator 6 | 7 | # Create the service account, if needed 8 | getent passwd $SERVICE_USER > /dev/null || useradd -s /bin/false --no-create-home --system --user-group $SERVICE_USER 9 | 10 | # Create directories 11 | mkdir -p /etc/prysm 12 | mkdir -p /var/lib/prysm 13 | install -d -m 0700 -o $SERVICE_USER -g $SERVICE_USER /var/lib/prysm/validator -------------------------------------------------------------------------------- /validator/rpc/log.go: -------------------------------------------------------------------------------- 1 | package rpc 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "rpc") 6 | -------------------------------------------------------------------------------- /validator/rpc/server_test.go: -------------------------------------------------------------------------------- 1 | package rpc 2 | 3 | import ( 4 | pb "github.com/prysmaticlabs/prysm/v4/proto/prysm/v1alpha1/validator-client" 5 | ) 6 | 7 | var _ pb.AuthServer = (*Server)(nil) 8 | -------------------------------------------------------------------------------- /validator/slashing-protection-history/doc.go: -------------------------------------------------------------------------------- 1 | // Package history defines methods to parse, import, and export slashing protection data 2 | // from a standard JSON file according to EIP-3076 https://eips.ethereum.org/EIPS/eip-3076. This format 3 | // is critical to allow safe interoperability between Ethereum consensus clients. 4 | package history 5 | -------------------------------------------------------------------------------- /validator/slashing-protection-history/format/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@prysm//tools/go:def.bzl", "go_library") 2 | 3 | go_library( 4 | name = "go_default_library", 5 | srcs = ["format.go"], 6 | importpath = "github.com/prysmaticlabs/prysm/v4/validator/slashing-protection-history/format", 7 | visibility = ["//visibility:public"], 8 | ) 9 | -------------------------------------------------------------------------------- /validator/slashing-protection-history/log.go: -------------------------------------------------------------------------------- 1 | package history 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "slashing-protection-history") 6 | -------------------------------------------------------------------------------- /validator/testing/constants.go: -------------------------------------------------------------------------------- 1 | package testing 2 | 3 | // TestMnemonic -- 4 | const TestMnemonic = "tumble turn jewel sudden social great water general cabin jacket bounce dry flip monster advance problem social half flee inform century chicken hard reason" 5 | -------------------------------------------------------------------------------- /validator/web/doc.go: -------------------------------------------------------------------------------- 1 | // Package web is the service to serve the Prysm web UI. See https://github.com/prysmaticlabs/prysm-web-ui 2 | package web 3 | -------------------------------------------------------------------------------- /validator/web/log.go: -------------------------------------------------------------------------------- 1 | package web 2 | 3 | import "github.com/sirupsen/logrus" 4 | 5 | var log = logrus.WithField("prefix", "prysm-web") 6 | --------------------------------------------------------------------------------